{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/@vladmandic/human/dist/human.esm.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./src/assets/mobile-option.png","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./src/components/doc/ViewDoc.vue?6337","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./src/components/voice/index.js","webpack:///./src/assets/otp-option.png","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./src/components/doc/ViewDoc.vue?b4d8","webpack:///src/components/doc/ViewDoc.vue","webpack:///./src/components/doc/ViewDoc.vue?4e73","webpack:///./src/components/doc/ViewDoc.vue?8ac5","webpack:///./src/assets/sign-option.png"],"names":["$","$values","values","target","stat","O","$reduce","left","arrayMethodIsStrict","arrayMethodUsesToLength","CHROME_VERSION","IS_NODE","STRICT_METHOD","USES_TO_LENGTH","1","CHROME_BUG","proto","forced","reduce","callbackfn","this","arguments","length","undefined","notARegExp","requireObjectCoercible","correctIsRegExpLogic","includes","searchString","String","indexOf","__defProp","Object","defineProperty","__defNormalProp","obj","key","value","enumerable","configurable","writable","__export","all2","name","get","__publicField","__accessCheck","member","msg","has","TypeError","__privateGet","getter","call","__privateAdd","WeakSet","add","set","__privateSet","setter","tfjs_esm_exports","Abs","Xs","Acos","Wo","Acosh","Uo","AdadeltaOptimizer","np","AdagradOptimizer","sp","AdamOptimizer","ap","AdamaxOptimizer","ip","Add","uo","AddN","Go","All","Ho","Any","Ko","ArgMax","Ys","ArgMin","Qs","Asin","qo","Asinh","jo","Atan","Xo","Atan2","Qo","Atanh","Yo","AvgPool","Zo","AvgPool3D","Zs","AvgPool3DGrad","Ai","AvgPoolGrad","Di","BackendWasm","pm","BatchMatMul","Jo","BatchToSpaceND","Js","Bincount","en","BitwiseAnd","ja","BroadcastArgs","ea","BroadcastTo","Bce","Cast","bo","Ceil","tn","ClipByValue","Co","Complex","Fi","ComplexAbs","Pi","Concat","ta","Conv2D","rn","Conv2DBackpropFilter","Oi","Conv2DBackpropInput","on","Conv3D","nn","Conv3DBackpropFilterV2","Xa","Conv3DBackpropInputV2","sn","Cos","an","Cosh","un","CropAndResize","ln","Cumprod","pn","Cumsum","cn","DataStorage","zo","DenseBincount","ra","DepthToSpace","mn","DepthwiseConv2dNative","dn","DepthwiseConv2dNativeBackpropFilter","Mi","DepthwiseConv2dNativeBackpropInput","Li","Diag","oa","Dilation2D","fn","Dilation2DBackpropFilter","zi","Dilation2DBackpropInput","Bi","Draw","Pu","ENV","nw","Einsum","Vi","Elu","gn","EluGrad","Ya","Environment","hl","Equal","yn","Erf","xn","Exp","bn","ExpandDims","na","Expm1","Cn","FFT","Wi","Fill","sa","FlipLeftRight","wn","Floor","Sn","FloorDiv","In","FromPixels","Mu","FusedBatchNorm","vn","FusedConv2D","vo","FusedDepthwiseConv2D","ko","GPGPUContext","kp","GatherNd","kn","GatherV2","aa","GraphModel","Bl","Greater","Nn","GreaterEqual","Tn","IFFT","Ui","Identity","wo","Imag","Gi","IsFinite","_n","IsInf","$n","IsNan","En","KernelBackend","ao","LRN","zn","LRNGrad","Qa","LeakyRelu","Rn","Less","Dn","LessEqual","An","LinSpace","Fn","Log","Pn","Log1p","On","LogSoftmax","zce","LogicalAnd","Mn","LogicalNot","Ln","LogicalOr","Bn","LogicalXor","$0","LowerBound","Vce","MathBackendCPU","xu","MathBackendWebGL","wu","MatrixBandPart","Wce","Max","Vn","MaxPool","Un","MaxPool3D","ia","MaxPool3DGrad","Ki","MaxPoolGrad","Hi","MaxPoolWithArgmax","ua","Maximum","Wn","Mean","Gn","Min","Hn","Minimum","Kn","MirrorPad","qn","Mod","jn","MomentumOptimizer","up","Multinomial","Xn","Multiply","Yn","Neg","pa","NonMaxSuppressionV3","Zn","NonMaxSuppressionV4","Za","NonMaxSuppressionV5","Jn","NotEqual","Qn","OP_SCOPE_SUFFIX","kw","OneHot","es","OnesLike","ca","Optimizer","Nr","OptimizerConstructors","Pl","Pack","la","PadV2","ts","Pool","Uce","Pow","rs","Prelu","os","Prod","ns","RMSPropOptimizer","pp","RaggedGather","Qp","RaggedRange","Zp","RaggedTensorToTensor","Jp","Range","ma","Rank","hw","Real","qi","RealDiv","hn","Reciprocal","ss","Reduction","Rt","Relu","as","Relu6","ps","Reshape","da","ResizeBilinear","us","ResizeBilinearGrad","ei","ResizeNearestNeighbor","is","ResizeNearestNeighborGrad","Ja","Reverse","cs","RotateWithOffset","As","Round","ls","Rsqrt","ms","SGDOptimizer","mi","ScatterNd","ds","SearchSorted","hs","Select","fa","Selu","gs","Sigmoid","Cs","Sign","bs","Sin","xs","Sinh","ys","Slice","ha","Softmax","vs","Softplus","ws","SpaceToBatchND","ga","SparseFillEmptyRows","ji","SparseReshape","ti","SparseSegmentMean","ya","SparseSegmentSum","ba","SparseToDense","ks","SplitV","xa","Sqrt","Ss","Square","Xi","SquaredDifference","Ns","StaticRegexReplace","Ou","Step","So","StridedSlice","Ts","StringNGrams","Ca","StringSplit","Yi","StringToHashBucketFast","Qi","Sub","_s","Sum","Is","Tan","$s","Tanh","Es","Tensor","ut","TensorBuffer","tt","TensorScatterUpdate","fs","Tile","po","TopK","Rs","Transform","Ds","Transpose","co","Unique","Zi","Unpack","wa","UnsortedSegmentSum","Ji","UpperBound","Gce","Variable","oi","WebGPUBackend","Tu","ZerosLike","Sa","_FusedMatMul","Io","abs","Jt","acos","kk","acosh","Nk","Ce","addN","Tk","all","_k","any","$k","argMax","Ek","argMin","Rk","asin","Dk","asinh","Ak","atan","Fk","atan2","Pk","atanh","Ok","avgPool","fd","avgPool3d","Bk","backend","vde","backend_util","w","basicLSTMCell","zk","batchNorm","au","batchNorm2d","Wk","batchNorm3d","Uk","batchNorm4d","Gk","batchToSpaceND","hd","bincount","gd","bitwiseAnd","Hk","booleanMaskAsync","E6","broadcastArgs","Kk","broadcastTo","iu","broadcast_util","Ir","browser","oT","buffer","me","cast","We","ceil","qk","clipByValue","jk","clone","Ur","complex","Er","concat","bt","concat1d","Xk","concat2d","Yk","concat3d","Qk","concat4d","Zk","conv1d","Jk","conv2d","uu","conv2dTranspose","e2","conv3d","t2","conv3dTranspose","o2","copyRegisteredKernels","Zce","cos","n2","cosh","s2","cosineWindow","Rl","cumprod","a2","cumsum","i2","customGrad","vr","denseBincount","u2","deprecationWarn","Pw","depthToSpace","p2","depthwiseConv2d","lc","deregisterOp","A5","device_util","ou","diag","c2","dilation2d","l2","disableDeprecationWarnings","dde","dispose","Mt","disposeVariables","fde","div","je","divNoNan","d2","dot","f2","dropout","W6","einsum","pu","elu","Cd","enableDebugMode","mde","enableProdMode","lde","enclosingPowerOfTwo","Qw","engine","pr","ensureShape","h2","env","A","equal","bd","erf","g2","euclideanNorm","b2","exp","$o","expandDims","Ms","expm1","C2","eye","wd","fft","fc","fill","Ea","findBackend","Sde","findBackendFactory","Ide","floor","Sd","floorDiv","dd","forceHalfFloat","MD","fused","Zw","gather","Id","gatherND","z6","gather_util","af","getBackend","Cde","getGradient","iw","getKernel","tc","getKernelsForBackend","Ym","getThreadsCount","Zse","gpgpu_util","cv","grad","AK","grads","FK","greater","qu","greaterEqual","vd","ifft","Ju","imag","lu","image","Kj","inTopKAsync","G6","io","fi","irfft","Kd","isFinite","w2","isInf","S2","isNaN","I2","keep","Rr","kernel_impls","Wt","leakyRelu","kd","less","_l","lessEqual","mc","linalg","qj","linspace","v2","loadGraphModel","$8","loadGraphModelSync","E8","localResponseNormalization","k2","log","pi","log1p","Nd","logSigmoid","N2","logSoftmax","T2","logSumExp","$d","logicalAnd","ju","logicalNot","Ed","logicalOr","Rd","logicalXor","_2","losses","jj","lowerBound","$2","matMul","Ze","math","JN","max","Ra","maxPool","Ad","maxPool3d","E2","maxPoolWithArgmax","R2","maximum","Fd","mean","Xu","memory","hde","meshgrid","D2","min","Tl","minimum","Yu","mirrorPad","A2","mod","F2","moments","P2","movingAverage","A6","mul","se","multiRNNCell","O2","multinomial","M2","neg","cr","nextFrame","pS","norm","Ku","notEqual","Pd","oneHot","El","ones","Da","onesLike","L2","op","N","outerProduct","B2","pad","Aa","pad1d","z2","pad2d","V2","pad3d","W2","pad4d","U2","pool","G2","pow","ui","prelu","Md","print","md","prod","H2","profile","gde","raggedGather","K2","raggedRange","q2","raggedTensorToTensor","j2","rand","X2","randomGamma","g1","randomNormal","Ud","randomStandardNormal","x1","randomUniform","dc","randomUniformInt","y1","range","mu","ready","bde","real","ci","reciprocal","b1","registerBackend","su","registerGradient","Xce","registerKernel","ri","registerOp","D5","relu","du","relu6","Gd","removeBackend","wde","reshape","W","reverse","mo","reverse1d","C1","reverse2d","w1","reverse3d","S1","reverse4d","I1","rfft","hc","round","Hd","rsqrt","v1","scalar","ke","scatterND","P6","scatter_util","hu","searchSorted","$l","selu","k1","separableConv2d","N1","serialization","WN","setBackend","yde","setPlatform","kde","setThreadsCount","Qse","setWasmPath","Xse","setWasmPaths","Yse","setWebGLContext","vI","setdiff1dAsync","T1","shared","Tc","sigmoid","$a","sign","_1","signal","Hj","sin","$1","sinh","E1","slice","Xe","slice1d","R1","slice2d","D1","slice3d","A1","slice4d","F1","slice_util","ct","softmax","P1","softplus","_d","spaceToBatchND","Od","sparse","Xj","sparseToDense","L6","spectral","Gj","split","li","sqrt","Dr","square","er","squaredDifference","qd","squeeze","gc","stack","kr","step","jd","stridedSlice","O1","string","Yj","sub","Te","sum","ot","sumOutType","ni","tan","M1","tanh","Nl","tensor","ur","tensor1d","tr","tensor2d","fu","tensor3d","Xd","tensor4d","L1","tensor5d","B1","tensor6d","z1","tensorScatterUpdate","W1","tensor_util","ek","test_util","h1","tidy","De","tile","cu","time","xde","topk","U1","train","TGe","transpose","yc","truncatedNormal","G1","unique","H1","unregisterGradient","Qce","unregisterKernel","Yce","unsortedSegmentSum","K1","unstack","fo","upcastType","dt","upperBound","q1","util","y","valueAndGrad","PK","valueAndGrads","OK","variable","j1","variableGrads","zw","version","Ace","version_converter","D8","version_core","_X","version_cpu","cY","version_wasm","Jse","version_webgl","s9","webgl","Cat","webgl_util","Ac","webgpu_util","Yv","where","lo","whereAsync","Qd","zeros","Gr","zerosLike","Ht","wG","create","QC","SG","getOwnPropertyDescriptor","IG","getOwnPropertyNames","vG","getPrototypeOf","kG","prototype","hasOwnProperty","qt","r","t8","exports","qe","e","NG","o","n","Kp","__esModule","V0","tle","z0","Nt","No","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","Wr","__isLong__","isLong","R0","D0","Bu","Tt","To","Lu","_o","O0","B0","F0","Vr","L0","oc","fromInt","fromNumber","fromBits","Zm","Math","cw","Error","RangeError","substring","s","a","i","p","parseInt","u","Fs","fromString","fromValue","A0","XG","P0","ZERO","UZERO","rc","ONE","M0","UONE","pw","NEG_ONE","MAX_VALUE","MAX_UNSIGNED_VALUE","MIN_VALUE","de","toInt","toNumber","toString","isZero","isNegative","eq","c","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","eqz","isPositive","isOdd","isEven","equals","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","negate","not","l","m","d","subtract","multiply","get_high","f","divide","div_u","div_s","toUnsigned","shru","shr","shl","LN2","modulo","rem_u","rem_s","rem","and","or","xor","shiftLeft","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","fromBytes","fromBytesLE","fromBytesBE","Ik","vk","Q2","Y2","Vw","next","s0","s1","state","int32","double","quick","charCodeAt","amd","alea","define","J2","Z2","Ww","x","z","xor128","t1","e1","Uw","v","xorwow","o1","r1","Gw","push","Date","xorshift7","n1","Hw","h","g","X","xor4096","i1","a1","Kw","b","tychei","u1","c1","p1","Ld","C","S","k","_","entropy","E","R","D","P","M","pass","L","global","j","B","randomBytes","crypto","msCrypto","getRandomValues","navigator","plugins","screen","fromCharCode","apply","random","self","qw","Y2e","l1","vq","kq","Nq","Tq","_q","$q","Qu","Bv","zv","RB","DB","AB","FB","Wg","Wv","Vv","document","currentScript","src","__filename","oe","Ge","_t","mt","it","Lr","Lt","nr","Promise","F","V","process","listeners","uncaughtException","unhandledRejection","assign","window","importScripts","versions","node","ENVIRONMENT_IS_PTHREAD","locateFile","Eu","dirname","__dirname","ue","zp","URL","normalize","readFileSync","Ee","readFile","Be","Le","argv","replace","Bo","exitCode","exit","inspect","console","error","Worker","location","href","substr","lastIndexOf","XMLHttpRequest","open","send","responseText","responseType","response","onload","status","onerror","title","performance","bind","warn","writeSync","U","printErr","thisProgram","quit","Atomics","load","store","compareExchange","wasmBinary","ee","noExitRuntime","$u","ie","be","_e","ve","TextDecoder","Fe","decode","SharedArrayBuffer","subarray","Ne","Pt","so","Pe","st","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","Uint16Array","HEAPU32","Uint32Array","HEAPF32","Float32Array","HEAPF64","Float64Array","sr","INITIAL_MEMORY","wasmMemory","Memory","initial","byteLength","ar","ro","oo","hr","Ks","preRun","sl","shift","ul","Yt","Ua","postRun","l0","unshift","al","Ti","Bp","Ga","Cy","monitorRunDependencies","wm","clearInterval","onAbort","RuntimeError","gr","wy","Sm","startsWith","Im","Sy","fetch","credentials","then","ok","arrayBuffer","catch","resolve","Iy","Om","wasi_snapshot_preview1","asm","Dy","_emscripten_tls_init","__indirect_function_table","__wasm_call_ctors","Me","unusedWorkers","forEach","Ka","loadWasmModuleToWorker","instance","module","instantiate","instantiateStreaming","instantiateWasm","vm","message","vy","pthreads","terminate","jC","runningWorkers","splice","pthread_ptr","ky","postMessage","cmd","il","returnWorkerToPool","Ny","getNewWorker","start_routine","startRoutine","arg","runPthread","ref","transferList","loaded","Nm","_i","terminateAllThreads","onExit","Ty","_m","Tm","_y","tlsInitFunctions","init","initWorker","initMainThread","allocateUnusedWorker","setExitStatus","unref","receiveObjectTransfer","threadInitTLS","onmessage","data","currentProxiedOperationCallerThread","targetThread","Wm","pl","queue","thread","threadId","text","alert","handler","args","filename","lineno","handlers","urlOrBlob","mainScriptUrlOrBlob","wasmModule","pop","$y","b0","Um","PThread","establishStackSpace","Vp","Ey","Ry","y0","Ay","h0","Fy","$m","Em","Py","invokeEntryPoint","cl","Oy","My","x0","Ly","setTimeout","By","zy","Ru","shown","Vy","Wy","now","Rm","Uy","Gy","copyWithin","Hy","cpus","hardwareConcurrency","Ky","XC","Gm","g0","executeNotifiedProxyingQueue","hrtime","timeOrigin","ll","qy","rb","jy","grow","Xy","Yy","Dm","Am","Qy","Zy","Fm","Pm","Jy","eb","Br","Hp","S0","array","w0","YC","CG","tb","every","Hm","Km","qm","__emscripten_init_main_thread_js","__emscripten_thread_cleanup","__pthread_create_js","_emscripten_default_pthread_stack_size","_emscripten_get_now_is_monotonic","_emscripten_notify_task_queue","_emscripten_set_offscreencanvas_size","abort","emscripten_check_blocking_allowed","emscripten_date_now","emscripten_get_heap_max","emscripten_get_now","emscripten_memcpy_big","emscripten_num_logical_cores","emscripten_receive_on_main_thread_js","emscripten_resize_heap","emscripten_unwind_to_js_event_loop","fd_close","fd_seek","fd_write","___wasm_call_ctors","_init","_init_with_threads_count","init_with_threads_count","_get_threads_count","get_threads_count","_register_tensor","register_tensor","_dispose_data","dispose_data","_dispose","_Abs","_Acos","_Acosh","_Add","_AddN","_All","_Any","_ArgMax","_ArgMin","_Asin","_Asinh","_Atan","_Atan2","_Atanh","_AvgPool","_AvgPool3D","_AvgPool3DGrad","_AvgPoolGrad","_BatchMatMul","_Bincount","_BitwiseAnd","_Ceil","_ClipByValue","_Conv2D","_Conv2DBackpropInput","_Conv3D","_Conv3DBackpropFilterV2","_Conv3DBackpropInputV2","_Cos","_Cosh","_CropAndResize","_Cumprod","_Cumsum","_DenseBincount","_DepthToSpace","_DepthwiseConv2dNative","_Diag","_Dilation2D","_Dilation2DBackpropFilter","_Dilation2DBackpropInput","_Elu","_EluGrad","_Equal","_Erf","_Exp","_Expm1","_FlipLeftRight","_Floor","_FloorDiv","_FusedBatchNorm","_FusedConv2D","_FusedDepthwiseConv2D","_Gather","Gather","_GatherNd","_Greater","_GreaterEqual","_IsFinite","_IsInf","_IsNan","_LRN","_LRNGrad","_LeakyRelu","_Less","_LessEqual","_LinSpace","_Log","_Log1p","_LogicalAnd","_LogicalNot","_LogicalOr","_LogicalXor","_Max","_MaxPool","_MaxPool3D","_MaxPool3DGrad","_MaxPoolGrad","_MaxPoolWithArgmax","_Maximum","_Mean","_Min","_Minimum","_MirrorPad","_Mod","_Multinomial","_Multiply","_Neg","_NonMaxSuppressionV3","_NonMaxSuppressionV4","_NonMaxSuppressionV5","_NotEqual","_OneHot","_PadV2","_Pow","_Prelu","_Prod","_RealDiv","_Reciprocal","_Relu","_Relu6","_ResizeBilinear","_ResizeBilinearGrad","_ResizeNearestNeighbor","_ResizeNearestNeighborGrad","_Reverse","_RotateWithOffset","_Round","_Rsqrt","_ScatterNd","_SearchSorted","_SelectV2","SelectV2","_Selu","_Sigmoid","_Sign","_Sin","_Sinh","_Softmax","_Softplus","_SparseFillEmptyRows","_SparseReshape","_SparseSegmentReduction","SparseSegmentReduction","_SparseToDense","_Sqrt","_Square","_SquaredDifference","_Step","_StridedSlice","_Sub","_Sum","_Tan","_Tanh","_TensorScatterUpdate","_Tile","_TopK","_Transform","_Transpose","__FusedMatMul","_malloc","malloc","_free","free","__emscripten_tls_init","_pthread_self","pthread_self","___errno_location","__errno_location","__emscripten_thread_init","_emscripten_thread_init","__emscripten_thread_crashed","_emscripten_thread_crashed","_emscripten_main_thread_process_queued_calls","emscripten_main_thread_process_queued_calls","_emscripten_main_browser_thread_id","emscripten_main_browser_thread_id","_emscripten_run_in_main_runtime_thread_js","emscripten_run_in_main_runtime_thread_js","_emscripten_dispatch_to_thread_","emscripten_dispatch_to_thread_","__emscripten_proxy_execute_task_queue","_emscripten_proxy_execute_task_queue","__emscripten_thread_free_data","_emscripten_thread_free_data","__emscripten_thread_exit","_emscripten_thread_exit","_emscripten_stack_set_limits","emscripten_stack_set_limits","stackSave","stackRestore","stackAlloc","dynCall_iijjiiii","dynCall_jiji","C0","startWorker","setStatus","calledRun","onRuntimeInitialized","keepRuntimeAlive","cwrap","ExitStatus","preInit","filter","WasmBackendModule","bG","removeListener","WasmBackendModuleThreadedSimd","OB","UFt","PB","wasmWorkerContents","MB","Ug","Gv","Uv","K","ae","$e","at","$t","J","re","Et","Qe","Ke","Gt","no","q","Y","xt","to","Wa","m0","d0","br","$i","Vm","ml","Ha","zm","Mm","dl","qC","Lm","Wp","Up","Gp","Bm","KC","dataMover","WeakMap","dataIdsCount","moveData","delete","zr","floatPrecision","I0","jm","TG","qp","_G","$G","EG","RG","Number","yt","Cr","He","DG","ZC","qa","AG","FG","PG","Au","repeat","OG","MG","Ei","map","JC","Array","isArray","sort","newShape","keptDims","ew","Xm","tw","rw","LG","jp","ow","Vo","v0","k0","Ri","Uint8ClampedArray","qs","constructor","Xp","js","N0","Du","BG","from","fl","Yp","zG","wt","isInteger","VG","WG","Fu","T0","flags","flagRegistry","urlFlags","getQueryParams","GG","populateURLFlags","platform","getBool","platformName","evaluationFn","setHook","evaluateFlag","search","KG","HG","join","decodeURIComponent","toLowerCase","sw","_0","aw","qG","_tfGlobals","Map","gl","Ia","jG","ec","xl","uw","entries","done","kernelName","backendName","Qm","arraysEqual","arraysEqualWithNull","assert","assertNonNegativeIntegerDimensions","assertNonNull","assertShapesMatch","bytesFromStringArray","bytesPerElement","checkConversionForErrors","clamp","computeStrides","convertBackendValuesAndArrayBuffer","createScalarValue","t4","createShuffledIndices","decodeString","sc","distSquared","encodeString","tu","o4","fingerPrint64","e4","flatten","Ps","getArrayFromDType","getTypedArrayFromDType","hasEncodingLoss","hexToLong","yl","indexToLoc","inferDtype","inferFromImplicitShape","isBoolean","isFunction","isInt","isNumber","isPromise","isScalarShape","isString","isTypedArray","Ot","isValidDtype","locToIndex","makeOnesTypedArray","makeZerosNestedTypedArray","makeZerosTypedArray","nearestDivisor","nearestLargerEven","Wu","parseAxisParam","randUniform","repeatedTry","rightPad","shuffle","shuffleCombo","sizeFromShape","sizeToSquarishShape","squeezeShape","swap","toNestedArray","toTypedArray","nc","mw","Vu","default","U0","zu","wr","lw","G0","St","W0","Qt","eu","YG","Jm","QG","ZG","JG","r4","encode","keys","test","ed","backendTimer","logger","dw","timerAvailable","dataSync","kernelMs","n4","dtype","outputs","inputs","timeMs","extraInfo","getExtraProfileInfo","logKernelProfile","rank","size","shape","H0","id","K0","gradient","q0","bl","fw","j0","s4","td","wl","Cl","parseFloat","toFixed","X0","strides","Os","makeTensor","ac","Y0","Q0","Z0","kept","isDisposedInternal","dataId","rankType","throwIfDisposed","read","readToGPU","readSync","isDisposed","kerasMask","disposeTensor","makeVariable","i4","Symbol","hasInstance","super","trainable","incRef","disposeVariable","Function","gw","xw","yw","bw","assertTypesMatch","Cw","getTensorsInContainer","Sl","isTensorInList","p4","makeTypesMatch","Oe","R3","R4","R5","R6","float32","bool","complex64","u4","rd","texture","WebGLTexture","od","GPUBuffer","some","J0","Set","c4","ww","nd","registeredVariables","nextTapeNodeId","numBytes","numTensors","numStringTensors","numDataBuffers","gradientDepth","kernelDepth","scopeStack","numDataMovesStack","nextScopeId","tensorInfo","profiling","activeProfile","newBytes","newTensors","peakBytes","kernels","result","ru","registry","registryFactory","pendingBackendInitId","pendingBackendInit","backendInstance","getSortedBackends","initializeBackend","success","asyncInit","initializeBackendsAndReturnBest","factory","priority","setupRegisteredKernels","profiler","setupFunc","disposeFunc","disposeRegisteredKernels","refCount","disposeData","move","shouldCheckForMemLeaks","scopedRun","startScope","endScope","nextTensorId","nextVariableId","T","runKernel","addTapeNode","activeScope","runKernelFunc","attrs","numDataIds","isTapeOn","kernelFunc","checkKernelForMemLeak","makeTensorFromTensorInfo","getTensorsForGradient","saveTensorsForBackwardMode","forwardFunc","backwardsFunc","profileKernel","bytesAdded","totalBytesSnapshot","tensorsAdded","totalTensorsSnapshot","inputShapes","outputShapes","kernelTimeMs","inputsToSave","outputsToSave","saveAllInputs","write","trackTensor","bytes","track","removeDataId","unreliable","reasons","saved","gradFunc","activeTape","scopeId","startTape","endTape","l4","m4","wallMs","reset","Sw","_tfengine","Iw","d4","f4","h4","product","userAgent","vendor","opera","userAgentData","mobile","vw","WorkerGlobalScope","isBrowser","isMobile","mockIsMobile","$r","ir","channels","height","width","rk","tk","si","registerFlag","endsWith","g4","complex_","Sr","createTensorFromGPUData","Il","float16","uint16","uint8","jt","shards","previousShardIndex","bufferUniformSize","start","end","ArrayBuffer","findShardForByte","x4","sd","async","nk","group","y4","specs","ad","quantization","scale","S4","JSON","stringify","Nw","Buffer","Blob","atob","btoa","sk","ak","byteOffset","ik","Tw","trim","modelTopology","format","generatedBy","convertedBy","weightsManifest","signature","userDefinedMetadata","modelInitializer","initializerSignature","trainingConfig","_w","weightSpecs","weightData","ic","va","dateSaved","modelTopologyType","modelTopologyBytes","weightSpecsBytes","weightDataBytes","ud","weights","b4","C4","w4","ft","saveRouters","loadRouters","getInstance","getHandlers","uk","registerSaveRouter","pk","registerLoadRouter","ck","getSaveHandlers","lk","getLoadHandlers","$w","Ew","Uu","nu","mk","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","Rw","createObjectStore","keyPath","ka","modelPath","databaseAction","onupgradeneeded","onsuccess","transaction","objectStore","close","modelArtifacts","oncomplete","put","modelArtifactsInfo","URL_SCHEME","dk","I4","v4","pd","getAll","ai","uc","fk","k4","N4","T4","_4","hk","info","topology","modelMetadata","gk","localStorage","removeItem","$4","E4","Na","LS","setItem","parse","getItem","xk","cd","pc","Zt","managers","ld","getSchemes","scheme","path","yk","getManager","removeModel","save","bk","listModels","Ck","wk","Sk","Dw","messageName","functionRefs","handledMessageCount","hasEventListener","textEncoder","TextEncoder","index","addEventListener","source","stopPropagation","registerManager","Aw","D4","importFetch","Fw","types","isFloat32Array","isInt32Array","isUint8Array","isUint8ClampedArray","A4","cast_","F4","clone_","P4","O4","add_","M4","floorDiv_","L4","div_","B4","mul_","z4","abs_","V4","acos_","W4","acosh_","U4","addN_","G4","axis","keepDims","all_","H4","any_","K4","argMax_","q4","argMin_","j4","asin_","X4","asinh_","Y4","atan_","Q4","atan2_","Z4","atanh_","J4","Lk","Hu","Mw","vl","eH","Ow","Mk","cc","padInfo","outHeight","outWidth","oH","batchSize","dataFormat","inHeight","inWidth","inChannels","outChannels","strideHeight","strideWidth","filterHeight","filterWidth","effectiveFilterHeight","effectiveFilterWidth","dilationHeight","dilationWidth","inShape","outShape","filterShape","outDepth","nH","inDepth","strideDepth","filterDepth","effectiveFilterDepth","dilationDepth","tH","Lw","kl","rH","top","bottom","right","type","front","back","trunc","Gu","xr","Ta","Bt","sH","reshape_","aH","filterSize","dimRoundingMode","avgPool_","iH","avgPool3d_","uH","concat_","pH","transposeA","transposeB","matMul_","cH","sigmoid_","lH","begin","slice_","mH","tanh_","dH","basicLSTMCell_","fH","blockShape","crops","batchToSpaceND_","Vk","hH","offset","variance","varianceEpsilon","batchNorm_","gH","batchNorm2d_","xH","batchNorm3d_","yH","batchNorm4d_","bH","bincount_","CH","bitwiseAnd_","wH","broadcastArgs_","SH","reps","broadcastTo_","IH","ceil_","vH","clipValueMin","clipValueMax","clipByValue_","kH","concat1d_","NH","concat2d_","TH","concat3d_","_H","concat4d_","$H","dilations","conv2d_","EH","conv1d_","RH","dy","inputShape","xd","conv2DBackpropInput_","DH","conv2dTranspose_","AH","conv3d_","FH","r2","conv3DBackpropInput_","PH","conv3dTranspose_","OH","cos_","MH","cosh_","LH","exclusive","cumprod_","BH","cumsum_","zH","binaryOutput","denseBincount_","VH","blockSize","depthToSpace_","WH","depthwiseConv2d_","UH","diag_","GH","dilation2d_","m2","yd","rt","HH","assertAndGetBroadcastShape","getBroadcastDims","getReductionAxes","equal_","KH","condition","t","where_","qH","zerosLike_","jH","divNoNan_","XH","dot_","YH","equation","einsum_","QH","elu_","ZH","ensureShape_","JH","erf_","Bw","x2","eK","ii","tK","rK","oK","nK","aK","reductionIndices","max_","iK","min_","uK","pow_","pK","sqrt_","cK","square_","lK","sum_","mK","y2","norm_","dK","euclideanNorm_","fK","exp_","hK","input","dim","expandDims_","gK","expm1_","xK","tile_","yK","toTensor","eye_","bK","floor_","CK","indices","batchDims","gather_","wK","greater_","SK","greaterEqual_","IK","imag_","vK","isFinite_","kK","isInf_","NK","isNaN_","TK","alpha","leakyRelu_","_K","less_","$K","lessEqual_","stop","num","EK","depthRadius","bias","beta","localResponseNormalization_","RK","log_","DK","log1p_","gradients","Td","MK","neg_","LK","softplus_","BK","logSigmoid_","zK","sub_","VK","logSoftmax_","WK","logSumExp_","UK","logicalAnd_","GK","logicalNot_","HK","logicalOr_","KK","logicalXor_","Dd","qK","sortedSequence","side","searchSorted_","jK","maxPool_","XK","maxPool3d_","YK","includeBatchInIndex","indexes","maxPoolWithArgmax_","QK","maximum_","ZK","mean_","indexing","JK","minimum_","paddings","mode","mirrorPad_","tq","mod_","rq","moments_","oq","multiRNNCell_","nq","logits","numSamples","seed","normalized","multinomial_","sq","notEqual_","aq","depth","onValue","offValue","oneHot_","iq","onesLike_","uq","outerProduct_","pq","constantValue","pad_","cq","pad1d_","lq","pad2d_","mq","pad3d_","dq","pad4d_","fq","spaceToBatchND_","hq","xq","gq","pool_","yq","prelu_","bq","prod_","Cq","paramsNestedSplits","paramsDenseValues","outputRaggedRank","outputNestedSplits","outputDenseValues","raggedGather_","wq","starts","limits","deltas","rtNestedSplits","rtDenseValues","raggedRange_","Sq","defaultValue","rowPartitionTensors","rowPartitionTypes","raggedTensorToTensor_","Iq","rand_","Wd","TEST_EPSILON_FLOAT16","m1","createVideoElement","Oq","encodeStrings","f1","expectArrayBuffersEqual","Pq","expectArraysClose","Rq","expectArraysEqual","Aq","expectNumbersClose","d1","expectPromiseToFail","Dq","expectValuesInRange","Fq","play","Mq","testEpsilon","Bd","Eq","jw","Xw","expect","nothing","fail","createElement","playsInline","muted","loop","style","position","preload","appendChild","requestVideoFrameCallback","Zu","stdDev","nextVal","NaN","truncated","upper","lower","isValidTruncated","convertValue","zd","randu","randn","nextValue","Vd","canReturnFloat","Lq","randomGamma_","Bq","randomNormal_","zq","randomStandardNormal_","Vq","randomUniform_","Wq","randomUniformInt_","Uq","real_","Gq","reciprocal_","Hq","relu_","Kq","relu6_","qq","dims","reverse_","jq","reverse1d_","Xq","reverse2d_","Yq","reverse3d_","Qq","reverse4d_","Zq","round_","Jq","rsqrt_","e6","selu_","t6","separableConv2d_","r6","o6","sign_","n6","sin_","s6","sinh_","a6","slice1d_","i6","slice2d_","u6","slice3d_","p6","slice4d_","c6","softmax_","l6","fft_","m6","ifft_","d6","irfft_","f6","numOrSizeSplits","split_","h6","rfft_","g6","squaredDifference_","x6","squeeze_","y6","stack_","b6","step_","C6","beginMask","endMask","ellipsisMask","newAxisMask","shrinkAxisMask","stridedSlice_","w6","tan_","Yw","xc","V1","sliceRank","numUpdates","sliceSize","outputSize","S6","updates","calculateShapes","validateInput","validateUpdateShape","tensorScatterUpdate_","I6","sorted","topk_","v6","truncatedNormal_","k6","unique_","N6","segmentIds","numSegments","unsortedSegmentSum_","T6","unstack_","Yd","_6","$6","perm","transpose_","D6","movingAverage_","F6","scatterND_","X1","M6","sparseIndices","sparseValues","outputShape","sparseToDense_","B6","params","gatherND_","Y1","V6","dropout_","PI","U6","H6","Z1","tN","rN","Q1","conv2DBackpropFilter_","ep","tp","rp","K6","activation","preluActivationWeights","leakyreluAlpha","fusedConv2d_","q6","J1","depthwiseConv2dNativeBackpropFilter_","j6","eN","depthwiseConv2dNativeBackpropInput_","X6","fusedDepthwiseConv2d_","Y6","fusedMatMul_","Q6","oN","hammingWindow_","Z6","Zd","hannWindow_","J6","Jd","frame_","ej","nN","stft_","tj","boxes","boxInd","method","extrapolationValue","cropSize","sN","cropAndResize_","rj","aN","flipLeftRight_","oj","iN","grayscaleToRGB_","nj","uN","rgbToGrayscale_","sj","radians","fillValue","center","pN","rotateWithOffset_","Eo","NEGATIVE_INFINITY","maxOutputSize","iouThreshold","scoreThreshold","softNmsSigma","aj","scores","cN","nonMaxSuppression_","lN","ij","pj","uj","ef","Jw","tf","rf","score","boxIndex","suppressBeginIndex","mN","cj","lj","selectedIndices","selectedScores","validOutputs","mj","dN","dj","fN","nonMaxSuppressionWithScore_","fj","hN","hj","padToMaxOutputSize","gN","nonMaxSuppressionPadded_","gj","xN","xj","images","alignCorners","halfPixelCenters","yN","resizeBilinear_","yj","bN","resizeNearestNeighbor_","bj","Cj","CN","threshold_","wj","transforms","interpolation","fillMode","wN","transform_","Sj","SN","bandPart_","Ij","IN","gramSchmidt_","vj","vN","kN","qr_","kj","SUM_BY_NONZERO_WEIGHTS","NONE","SUM","MEAN","lr","computeWeightedLoss_","Nj","NN","absoluteDifference_","Tj","TN","cosineDistance_","_j","_N","hingeLoss_","$j","$N","huberLoss_","Ej","EN","logLoss_","Rj","RN","meanSquaredError_","Dj","Aj","DN","sigmoidCrossEntropy_","Fj","Pj","AN","softmaxCrossEntropy_","Oj","denseShape","outputIndices","outputValues","emptyRowIndicator","reverseIndexMap","FN","sparseFillEmptyRows_","Mj","inputIndices","PN","sparseReshape_","Lj","ON","sparseSegmentMean_","Bj","MN","sparseSegmentSum_","zj","separator","nGramWidths","leftPad","padWidth","preserveShortSequences","dataSplits","nGrams","nGramsSplits","LN","stringNGrams_","Vj","skipEmpty","delimiter","BN","stringSplit_","Wj","numBuckets","zN","stringToHashBucketFast_","Uj","pattern","rewrite","replaceGlobal","VN","staticRegexReplace_","hammingWindow","hannWindow","frame","stft","flipLeftRight","grayscaleToRGB","resizeNearestNeighbor","resizeBilinear","rgbToGrayscale","rotateWithOffset","cropAndResize","nonMaxSuppression","nonMaxSuppressionAsync","nonMaxSuppressionWithScore","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPadded","nonMaxSuppressionPaddedAsync","threshold","transform","bandPart","gramSchmidt","qr","absoluteDifference","computeWeightedLoss","cosineDistance","hingeLoss","huberLoss","logLoss","meanSquaredError","sigmoidCrossEntropy","softmaxCrossEntropy","sparseFillEmptyRows","sparseReshape","sparseSegmentMean","sparseSegmentSum","stringNGrams","stringSplit","stringToHashBucketFast","staticRegexReplace","Serializable","Dl","SerializationMap","Fa","getRegisteredName","Zj","registerClass","tS","Qj","eS","className","classNameMap","getMap","fromConfig","register","computeGradients","applyGradients","iterations_","iterations","getClassName","minimize","learningRate","rho","epsilon","accumulatedGrads","accumulatedUpdates","originalName","incrementIterations","saveIterations","extractIterations","initialAccumulatorValue","beta1","beta2","accumulatedFirstMoment","accumulatedSecondMoment","accBeta1","accBeta2","decay","accumulatedWeightedInfNorm","iteration","setLearningRate","momentum","useNesterov","accumulations","accumulatedMeanSquares","accumulatedMoments","accumulatedMeanGrads","centered","Jj","UN","CompositeArrayBuffer","browserFiles","HN","browserHTTPRequest","jN","concatenateArrayBuffers","copyModel","decodeWeights","encodeWeights","fromMemory","XN","fromMemorySync","iS","getModelArtifactsForJSON","getModelArtifactsForJSONSync","getModelArtifactsInfoForJSON","getWeightSpecs","http","nf","isHTTPScheme","of","loadWeights","KN","moveModel","weightsLoaderFactory","sS","withSaveHandler","YN","withSaveHandlerSync","QN","eX","tX","rX","GN","di","modelJsonFileName","weightDataFileName","createObjectURL","paths","modelJsonAnchor","download","dispatchEvent","MouseEvent","weightDataAnchor","rS","jsonFile","weightsFiles","FileReader","readAsText","checkManifestAndWeightFiles","loadWeightsFile","readAsArrayBuffer","oX","nX","oS","nS","fetchFunc","requestInit","isBinary","onProgress","manifestEntry","groupOffset","sizeBytes","sX","aX","Al","DEFAULT_METHOD","weightPathPrefix","weightUrlConverter","body","FormData","append","responses","json","iX","match","URL_SCHEME_REGEX","qN","Fl","sf","saveHandler","aS","uX","confusionMatrix","ZN","cp","confusionMatrix_","draw","gX","fromPixels","xX","fromPixelsAsync","dX","toPixels","hX","eT","tT","ImageData","HTMLVideoElement","HTMLImageElement","getContext","ImageBitmap","pixels","numChannels","videoWidth","videoHeight","getImageData","OffscreenCanvas","OffscreenCanvasRenderingContext2D","willReadFrequently","canvas","drawImage","pX","cX","lX","mX","createImageBitmap","premultiplyAlpha","rT","fX","putImageData","imageOptions","options","fromPixels_","nT","prepareAndValidate","assertParamsValid","bX","computeFlatOffset","vX","computeOutShape","wX","getNormalizedAxes","SX","isSliceContinous","IX","maskToAxes","CX","parseSliceParams","kX","sliceInfo","NX","startForAxis","mT","startIndicesWithElidedDims","pT","stopForAxis","dT","stopIndicesWithElidedDims","cT","stridesForAxis","lT","stridesWithElidedDims","aT","uS","yX","iT","uT","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","numAddAxisAfterEllipsis","beginValid","endValid","TX","sT","finalShapeGatherIndices","finalShapeSparse","finalShape","isIdentity","sliceDim0","isSimpleSlice","finalShapeGatherIndicesSparse","inputShapeGatherIndicesSparse","$X","requestAnimationFrame","setImmediate","Pa","EX","RX","DX","AX","FIRST_DIM_SIZE","VALUE_ROWIDS","ROW_LENGTHS","ROW_SPLITS","ROW_LIMITS","ROW_STARTS","FX","PX","ERF_A1","KX","ERF_A2","qX","ERF_A3","jX","ERF_A4","XX","ERF_A5","YX","ERF_P","HX","PARALLELIZE_THRESHOLD","uf","RowPartitionType","SELU_SCALE","GX","SELU_SCALEALPHA","UX","applyActivation","assertAxesAreInnerMostDims","assertParamsConsistent","assignToTypedArray","r5","axesAreInnerMostDims","checkEinsumDimSizes","u5","checkPadOnDimRoundingMode","combineLocations","combineRaggedTensorToTensorShapes","complexWithEvenIndex","JX","complexWithOddIndex","e5","computeConv2DInfo","computeConv3DInfo","computeDefaultPad","computeDilation2DInfo","computeOptimalWindowSize","OX","computeOutAndReduceShapes","computePool2DInfo","computePool3DInfo","convertConv2DDataFormat","decodeEinsumEquation","a5","eitherStridesOrDilationsAreOne","expandShapeToKeepDim","exponent","n5","exponents","o5","fromStringArrayToUint8","$5","fromUint8ToStringArray","_5","getAxesPermutation","getComplexWithIndex","t5","getEinsumComputePath","p5","getEinsumPermutation","i5","getFusedBiasGradient","getFusedDyActivation","getImageCenter","MX","getInnerMostAxes","getPermuted","BX","getRaggedRank","getReshaped","LX","getReshapedPermuted","zX","getRowPartitionTypesHelper","getSliceBeginCoords","VX","getSliceSize","WX","getSparseFillEmptyRowsIndicesDenseShapeMismatch","d5","getSparseFillEmptyRowsNegativeIndexErrorMessage","f5","getSparseFillEmptyRowsOutOfRangeIndexErrorMessage","h5","getSparseReshapeEmptyTensorZeroOutputDimErrorMessage","y5","getSparseReshapeInputOutputMismatchErrorMessage","C5","getSparseReshapeInputOutputMultipleErrorMessage","b5","getSparseReshapeMultipleNegativeOneOutputDimErrorMessage","g5","getSparseReshapeNegativeOutputDimErrorMessage","x5","getSparseSegmentReductionIndicesOutOfRangeErrorMessage","v5","getSparseSegmentReductionNegativeSegmentIdsErrorMessage","w5","getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage","S5","getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage","I5","getUndoAxesPermutation","isIdentityPermutation","c5","mergeRealAndImagArrays","QX","prepareSplitSize","m5","segment_util","lS","shouldFuse","splitRealAndImagArrays","ZX","stridesOrDilationsArePositive","tupleValuesAreOne","validateDefaultValueShape","cS","s5","fT","hT","allDims","summedDims","idDims","permutationIndices","l5","steps","k5","N5","T5","outerSize","dimSize","collectGatherOpShapeInfo","segOpComputeOptimalWindowSize","nonMaxSuppressionV3Impl","nonMaxSuppressionV4Impl","nonMaxSuppressionV5Impl","whereImpl","ho","gT","E5","DT_INVALID","DT_FLOAT","DT_DOUBLE","DT_INT32","DT_UINT8","DT_INT16","DT_INT8","DT_STRING","DT_COMPLEX64","DT_INT64","DT_BOOL","DT_QINT8","DT_QUINT8","DT_QINT32","DT_BFLOAT16","DT_QINT16","DT_QUINT16","DT_UINT16","DT_COMPLEX128","DT_HALF","DT_RESOURCE","DT_VARIANT","DT_UINT32","DT_UINT64","DT_FLOAT_REF","DT_DOUBLE_REF","DT_INT32_REF","DT_UINT8_REF","DT_INT16_REF","DT_INT8_REF","DT_STRING_REF","DT_COMPLEX64_REF","DT_INT64_REF","DT_BOOL_REF","DT_QINT8_REF","DT_QUINT8_REF","DT_QINT32_REF","DT_BFLOAT16_REF","DT_QINT16_REF","DT_QUINT16_REF","DT_UINT16_REF","DT_COMPLEX128_REF","DT_HALF_REF","DT_RESOURCE_REF","DT_VARIANT_REF","DT_UINT32_REF","DT_UINT64_REF","LEGACY","CheckpointFormatVersion","dS","tfOpName","category","customExecutor","pf","I","inputParams","inputIndexStart","inputIndexEnd","inputNames","zt","attrParams","Tr","getHashTableHandleByName","currentContextIds","find","cf","fS","currentContextId","Ls","parseNodeNameCache","Ol","Bs","hS","F5","tfName","notSupported","gS","P5","xS","O5","yS","M5","bS","L5","CS","B5","wS","z5","SS","V5","IS","W5","vS","U5","kS","G5","NS","H5","TS","K5","_S","q5","$S","j5","ES","X5","RS","Y5","DS","Q5","AS","Z5","tfDeprecatedName","Ml","_instance","opMappers","mapNode","mapSignatureEntries","children","signatureKey","library","function","mapFunction","nodes","placeholders","functions","initNodes","attr","rawAttrs","lf","yf","df","xf","mf","Cf","gf","bf","ff","hf","xT","nodeDef","inputArg","FS","ret","outputArg","defaultOutput","mapArgsToSignature","methodName","mapArgToTensorInfo","J5","yT","func","list","bT","unknownRank","wf","tensorMap","context","getInput","getAttr","Je","CT","wT","Hr","ST","bc","Sf","If","maxSize","elementShape","identicalElementShapes","dynamicSize","clearAfterRead","tensors","closed_","idTensor","cleared","written","readMany","writeMany","hi","elementDtype","maxNumElements","IT","vT","kT","NT","TT","functionMap","executeFunctionAsync","tensorArrayMap","tensorListMap","enterFrame","exitFrame","nextIteration","addTensorArray","getTensorArray","scatter","clearAndClose","getTensorList","addTensorList","pushBack","popBack","resize","_T","toUpperCase","stride","biasArg","preluArg","activationFunc","$T","ET","PS","RT","DT","AT","vf","handle","keyDType","valueDType","clear","checkKeyAndValueTensor","findWithDefault","FT","addHashTable","getHashTableById","import","tensorSize","PT","OT","MT","LT","BT","zT","VT","WT","UT","GT","HT","OS","Ll","weightMap","rootContext","frameName","iterationId","contexts","lastId","generateCurrentContextIds","_currentContextIds","contextIdforContexts","newFrame","MS","gu","k8","N8","usedNodes","missingInputs","dynamicNode","syncInputs","KT","POSITIVE_INFINITY","C8","w8","Cc","qT","S8","I8","v8","lp","parent","weightIds","_weightIds","functionExecutorMap","_functionExecutorMap","_weightMap","_resourceManager","_inputs","_outputs","_functions","graph","compiledMap","SEPARATOR","keepIntermediateTensors","_initNodes","_signature","orderedNodes","nodeLiveUntilMap","cloneAndKeepTensor","fromEntries","cloneTensorList","disposeIntermediateTensors","mapInputs","checkInputs","checkInputShapeAndType","mapOutputs","checkOutputs","getCompilationKey","compile","clonedTensorsMap","cloneTensorMap","getFrozenTensorIds","checkTensorForDisposalWithNodeLiveUntilInfo","_executeAsync","executeWithControlFlow","outputNodes","currentContext","processStack","checkTensorForDisposal","processChildNodes","kf","hashTableNameToHandle","hashTableMap","T8","_8","executor","inputNodes","artifacts","structuredOutputKeys","modelUrl","loadOptions","resourceManager","findIOHandler","loadSync","producer","minConsumer","transformGraph","convertTensorMapToTensorsMap","initializer","execute","addStructuredOutputNames","executeAsync","resourceId","resourceIdToCapturedInput","setResourceIdToCapturedInput","executeInitializerGraph","normalizeInputs","normalizeOutputs","executeInitializerGraphAsync","getIntermediateTensors","fromTFHub","R8","Q","A8","nextDataId","firstUse","complexTensorInfos","makeTensorInfo","addImpl","zS","bincountImpl","Ic","bincountReduceImpl","Nf","bitwiseAndImpl","VS","castImpl","BS","ceilImpl","WS","concatImpl","mp","equalImpl","US","expImpl","HS","expm1Impl","qS","floorDivImpl","XS","floorImpl","jS","gatherNdImpl","Tf","gatherV2Impl","_f","greaterEqualImpl","QS","greaterImpl","YS","lessEqualImpl","JS","lessImpl","ZS","linSpaceImpl","$f","logImpl","eI","maxImpl","Ef","maximumImpl","tI","minimumImpl","rI","multiplyImpl","zl","negImpl","oI","notEqualImpl","nI","prodImpl","sI","raggedGatherImpl","Rf","raggedRangeImpl","Df","raggedTensorToTensorImpl","Af","rangeImpl","fp","rsqrtImpl","aI","scatterImpl","zs","sigmoidImpl","v_","simpleAbsImpl","sliceImpl","hp","sparseFillEmptyRowsImpl","Ff","sparseReshapeImpl","Pf","sparseSegmentReductionImpl","Nc","sqrtImpl","T_","squaredDifferenceImpl","uI","staticRegexReplaceImpl","pI","stridedSliceImpl","Of","stringNGramsImpl","gp","stringSplitImpl","xp","stringToHashBucketFastImpl","yp","subImpl","lI","tileImpl","Mf","topKImpl","Lf","transposeImpl","vc","uniqueImpl","bp","F8","makeOutput","jT","ze","Kt","XT","wc","mr","YT","Ro","QT","Do","disposeIntermediateTensorInfo","ZT","Ye","Sc","P8","Oa","JT","O8","e_","Xt","Ie","Ar","M8","t_","vals","GS","r_","KS","o_","L8","n_","B8","s_","z8","a_","V8","i_","W8","u_","U8","p_","G8","c_","H8","l_","K8","m_","q8","d_","j8","dp","f_","X8","h_","Y8","g_","It","x_","outVals","outDtype","Q8","y_","Z8","J8","eY","outSplits","valueSlices","numValues","tY","b_","rY","oY","C_","Ao","kc","shapeShape","valuesShape","valuesDType","defaultValueShape","rowPartitionValues","rowPartitionValuesShapes","raggedRank","getRowPartitionTensor","getRowPartitionTypeByDimension","getMaxWidthValueRowID","getMaxWidthRowSplit","S_","tensorShapeFromTensor","getMaxWidth","calculateOutputIndexValueRowID","calculateOutputIndexRowSplit","getFirstDimensionSize","calculateOutputSize","calculateFirstParentOutputIndex","calculateOutputIndex","setOutput","w_","compute","nY","I_","iI","k_","Fo","N_","sY","__","aY","$_","RegExp","iY","E_","cI","preserveShort","getPadWidth","getNumNGrams","createNGrams","uY","pY","Vl","R_","Wl","D_","mI","A_","dI","F_","lY","fI","P_","hI","O_","gI","M_","Cp","Ve","L_","xI","B_","mY","z_","dY","V_","fY","W_","hY","U_","gY","G_","xY","H_","yY","K_","bY","q_","CY","j_","wY","X_","SY","Y_","IY","vY","Q_","kY","Z_","_c","Bf","zf","J_","NY","e$","TY","t$","_Y","bufferSync","r$","$Y","o$","EY","n$","RY","s$","DY","a$","AY","i$","FY","u$","PY","hypot","p$","Ma","c$","yu","l$","yI","m$","OY","d$","MY","f$","LY","h$","BY","g$","zY","x$","VY","y$","WY","b$","UY","C$","GY","w$","HY","S$","KY","I$","qY","v$","bI","k$","jY","N$","XY","T$","YY","_$","$$","E$","R$","QY","contextOptions","contextType","contextAttributes","D$","gi","A$","ZY","F$","JY","P$","eQ","tQ","rQ","oQ","nQ","sQ","aQ","O$","$c","M$","iQ","Ul","Gl","Vf","uQ","pQ","CI","cQ","lQ","L$","Hl","mQ","B$","z$","dQ","V$","fQ","W$","hQ","U$","gQ","G$","xQ","H$","yQ","K$","bQ","q$","CQ","j$","wQ","X$","SQ","Y$","IQ","vQ","Q$","kQ","Z$","NQ","TQ","J$","_Q","eE","$Q","tE","wI","rE","EQ","oE","RQ","nE","DQ","sE","AQ","output","aE","iE","uE","FQ","pE","PQ","cE","OQ","lE","MQ","LQ","mE","fE","SI","dE","BQ","hE","zQ","VQ","gE","WQ","UQ","xE","GQ","HQ","yE","KQ","bE","Kl","CE","wE","SE","II","IE","qQ","Wf","jQ","XQ","vE","YQ","kE","QQ","NE","ZQ","TE","JQ","_E","e7","$E","t7","EE","r7","RE","o7","DE","n7","AE","s7","FE","PE","a7","OE","i7","ME","u7","p7","LE","c7","BE","l7","zE","m7","d7","f7","VE","h7","WE","g7","UE","x7","GE","y7","HE","b7","KE","C7","qE","w7","jE","S7","XE","I7","YE","v7","QE","k7","ZE","N7","JE","eR","T7","tR","_7","rR","$7","oR","E7","nR","R7","sR","D7","aR","A7","iR","F7","uR","P7","pR","O7","cR","M7","lR","W7","U7","mR","L7","B7","V7","z7","ql","G7","dR","H7","fR","K7","hR","q7","assertNotComplex","Vs","bindCanvasToFramebuffer","rZ","bindColorTextureToFramebuffer","Ql","bindTextureToProgramUniformSampler","BI","bindTextureUnit","bR","bindVertexBufferToProgramAttribute","jf","callAndCheck","ce","canBeRepresented","TI","createFragmentShader","$I","createFramebuffer","OI","createProgram","EI","createStaticIndexBuffer","AI","createStaticVertexBuffer","DI","createTexture","FI","createVertexShader","_I","getBatchDim","yi","getExtensionOrThrow","Ec","getFramebufferErrorMessage","CR","getMaxTexturesInShader","WI","getNumChannels","eZ","getProgramUniformLocation","LI","getProgramUniformLocationOrThrow","MI","getRowsCols","bi","getShapeAs3D","Dc","getTextureShapeFromLogicalShape","zI","getWebGLDisjointQueryTimerVersion","UI","getWebGLErrorMessage","yR","getWebGLMaxTextureSize","VI","hasExtension","isCapableOfRenderingToFloatTexture","GI","isDownloadFloatTextureEnabled","HI","isReshapeFree","Cu","isWebGLFenceEnabled","KI","isWebGLVersionEnabled","Yf","linkProgram","RI","logShaderSourceAndInfoLog","qf","resetMaxTextureSize","oZ","resetMaxTexturesInShader","nZ","unbindColorTextureFromFramebuffer","Xf","unbindTextureUnit","tZ","validateFramebuffer","Rc","validateProgram","Yl","validateTextureSize","bu","dr","rr","wp","Uf","antialias","premultipliedAlpha","preserveDrawingBuffer","stencil","failIfMajorPerformanceCaveat","Kr","X7","isContextLost","disable","DEPTH_TEST","STENCIL_TEST","BLEND","DITHER","POLYGON_OFFSET_FILL","SAMPLE_COVERAGE","enable","SCISSOR_TEST","CULL_FACE","cullFace","BACK","j7","preventDefault","Sp","gR","jl","La","xR","Xl","getNumber","R32F","R16F","RGBA16F","RGBA32F","RED","HALF_FLOAT","FLOAT","RGBA8","RGBA","HALF_FLOAT_OES","internalFormatFloat","internalFormatHalfFloat","internalFormatPackedHalfFloat","internalFormatPackedFloat","textureFormatFloat","downloadTextureFormat","downloadUnpackNumChannels","defaultNumChannels","textureTypeHalfFloat","textureTypeFloat","Y7","getError","NO_ERROR","DENSE","SHARED_BATCH","RENDER","UPLOAD","PIXELS","DOWNLOAD","UNPACKED_FLOAT16","UNPACKED_FLOAT32","PACKED_4X1_UNSIGNED_BYTE","PACKED_2X2_FLOAT32","PACKED_2X2_FLOAT16","Q7","Z7","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","INVALID_FRAMEBUFFER_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","xi","getExtension","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","FRAGMENT_SHADER","Hf","Kf","J7","exec","getProgramParameter","LINK_STATUS","getProgramInfoLog","VALIDATE_STATUS","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","ELEMENT_ARRAY_BUFFER","getAttribLocation","vertexAttribPointer","enableVertexAttribArray","wR","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","getUniformLocation","uniform1i","bindFramebuffer","FRAMEBUFFER","viewport","scissor","framebufferTexture2D","COLOR_ATTACHMENT0","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","MAX_COMBINED_TEXTURE_IMAGE_UNITS","Gf","getParameter","MAX_TEXTURE_SIZE","MAX_TEXTURE_IMAGE_UNITS","NI","sZ","texImage2D","deleteTexture","deleteFramebuffer","fenceSync","Se","vt","attribute","varyingVs","varyingFs","texture2D","defineOutput","defineSpecialNaN","defineSpecialInf","defineRound","Ws","Ip","aZ","SR","Fc","Pc","Qf","IR","vR","shapeInfo","logicalShape","isUniform","enableShapeUniforms","uniformShape","Zf","packedInputs","texShape","customUniforms","arrayIndex","iZ","cZ","dZ","isPacked","uZ","mZ","pZ","lZ","xZ","userCode","Mc","$Z","RZ","AZ","PZ","MZ","LZ","BZ","kR","_Z","EZ","DZ","FZ","OZ","zZ","VZ","NR","yZ","NZ","CZ","SZ","bZ","TZ","wZ","IZ","vZ","kZ","fZ","hZ","gZ","vp","charAt","Lc","Bc","zc","flatOffset","Re","useSqueezeShape","_R","texData","variableNames","program","fragmentShader","webGLProgram","inShapeInfos","outShapeInfo","variablesLocations","customUniformLocations","infLoc","nanLoc","outShapeLocation","outShapeStridesLocation","outTexShapeLocation","buildVao","qI","uniform","TR","$R","setOutputPackedMatrixTexture","setOutputMatrixTexture","setProgram","bindVertexArray","vao","uniform1f","uniform1iv","uniform2iv","uniform3iv","uniform4iv","uniform2i","uniformValues","uniform1fv","setInputMatrixTexture","uniform2fv","uniform3fv","uniform4fv","executeProgram","ER","pt","Jf","packedOutput","outPackingScheme","eh","th","outTexUsage","rh","GZ","G","Zl","oh","jI","XI","YI","Jl","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texStorage2D","nh","QI","sh","ZI","ah","JI","UNSIGNED_BYTE","ih","ev","uh","tv","rv","ov","texSubImage2D","nv","sv","PIXEL_PACK_BUFFER","STREAM_READ","readPixels","av","getBufferSubData","iv","uv","pv","bindVertexProgramAttributeStreams","createBufferFromOutputTexture","createFloat16MatrixTexture","createFloat16PackedMatrixTexture","createFloat32MatrixTexture","createIndexBuffer","createPackedMatrixTexture","createUnsignedBytesMatrixTexture","createVertexBuffer","downloadByteEncodedFloatMatrixFromOutputTexture","downloadFloat32MatrixFromBuffer","downloadMatrixFromPackedOutputTexture","downloadPackedMatrixFromBuffer","getInternalFormatForFloat16MatrixTexture","getInternalFormatForFloat16PackedMatrixTexture","getInternalFormatForFloat32MatrixTexture","getInternalFormatForPackedMatrixTexture","getInternalFormatForUnsignedBytesMatrixTexture","uploadDenseMatrixToTexture","uploadPixelDataToTexture","outputTexture","disposed","itemsToPoll","createVertexArray","deleteVertexArray","getVertexArray","VERTEX_ARRAY_BINDING","createVertexArrayOES","bindVertexArrayOES","deleteVertexArrayOES","VERTEX_ARRAY_BINDING_OES","parallelCompilationExtension","textureFloatExtension","textureHalfFloatExtension","colorBufferFloatExtension","colorBufferHalfFloatExtension","vertexBuffer","indexBuffer","framebuffer","textureConfig","finish","deleteBuffer","downloadMatrixDriver","bindTextureToFrameBuffer","unbindTextureToFrameBuffer","createFence","pollFence","SYNC_GPU_COMMANDS_COMPLETE","flush","clientWaitSync","ALREADY_SIGNALED","CONDITION_SATISFIED","beginQuery","endQuery","isQueryAvailable","query","isFencePassed","vertexShader","attachShader","debug","deleteProgram","useProgram","throwIfNoProgram","setOutputMatrixTextureDriver","setOutputMatrixWriteRegionDriver","debugValidate","drawElements","TRIANGLES","UNSIGNED_SHORT","disjointQueryTimerExtension","getQueryTimerExtension","getQueryTimerExtensionWebGL2","createQuery","TIME_ELAPSED_EXT","getQueryTimerExtensionWebGL1","createQueryEXT","beginQueryEXT","endQueryEXT","getQueryTime","getQueryParameter","QUERY_RESULT","getQueryObjectEXT","QUERY_RESULT_EXT","QUERY_RESULT_AVAILABLE","disjoint","GPU_DISJOINT_EXT","QUERY_RESULT_AVAILABLE_EXT","addItemToPoll","HZ","isDoneFn","resolveFn","setTimeoutCustom","pollItems","RR","ph","DR","AR","FR","PR","OR","MR","LR","BR","zR","VR","WR","UR","GR","HR","KR","qR","jR","XR","YR","QR","ZR","JR","eD","tD","rD","oD","nD","sD","aD","iD","uD","ch","pD","cD","lD","lh","mD","dD","fD","hD","gD","xD","yD","bD","CD","Np","wD","lv","Dt","SD","mh","getOutOfBoundsCondition","getSetup","getOutput","getSourceCoordsArr","Vc","KZ","dh","gpgpu","numUsedTextures","numFreeTextures","_numBytesAllocated","_numBytesFree","freeTextures","usedTextures","logEnabled","vD","kD","ID","deleteMatrixTexture","qZ","jZ","XZ","Ut","ND","mv","TD","_D","$D","Ba","ED","DD","AD","FD","PD","OD","Fr","fh","QZ","ZZ","JZ","hh","e9","t9","r9","o9","devicePixelRatio","pendingRead","pendingDisposal","dataRefCount","numBytesInGPU","uploadWaitMs","downloadWaitMs","lastGlFlushTime","warnedAboutMemory","pendingDeletes","binaryCache","gpgpuCreatedLocally","textureManager","numMBBeforeWarning","runWebGLProgram","checkNumericalProblems","usage","convertAndCacheOnCPU","activeTimers","getValuesFromTexture","createBufferFromTexture","createAndWaitForFence","customTexShape","tensorRef","downloadMatrixFromPackedTexture","programTimersStack","numBytesInGPUAllocated","numBytesAllocated","numBytesInGPUFree","numBytesFree","startMs","endMs","waitForQueryAndGetTime","releaseGPUData","origDataId","computeBytes","releaseTexture","uploadToGPU","compileAndRun","shouldExecuteOnCPU","packedUnaryOp","unpackTensor","packTensor","packedReshape","getAndSaveBinary","startTimer","endTimer","HTMLCanvasElement","remove","floatPrecisionValue","getTexture","acquireTexture","n9","checkCompletion_","checkCompletionAsync_","COMPLETION_STATUS_KHR","isTexture","writeTexture","makeTensorFromDataId","Wc","Pr","Xr","jr","supportsBroadcasting","At","LD","Or","BD","dv","fv","a9","zD","hv","gv","i9","VD","Po","xe","opSnippet","packedOpSnippet","cpuKernelImpl","nt","checkOutOfBounds","supportsComplex","Ci","Uc","xv","REAL","IMAG","em","WD","tm","UD","GD","te","HD","rm","windowSize","inSize","outSize","toPrecision","gh","p9","Yr","xh","c9","yh","Su","KD","Tp","qD","Ct","jD","yv","_p","l9","XD","YD","m9","QD","d9","f9","ZD","h9","g9","JD","eA","x9","tA","bh","Ch","wh","rA","y9","oA","b9","nA","Sh","Ih","sA","aA","vh","C9","iA","w9","uA","S9","I9","pA","v9","k9","cA","N9","T9","lA","_9","$9","E9","mA","R9","D9","dA","Us","Iu","A9","fA","F9","hA","kh","Nh","P9","gA","O9","xA","M9","yA","Th","_h","L9","bA","$h","B9","bv","Eh","z9","Gs","CA","V9","wA","W9","SA","U9","G9","H9","IA","K9","vA","q9","Cv","kA","wi","NA","j9","TA","wv","_A","$A","X9","EA","Rh","Dh","Y9","RA","Ah","DA","Q9","AA","Fh","Oh","Ph","$p","FA","Gc","tensors2D","Z9","Sv","PA","Hc","Mh","Kc","Lh","Bh","zh","convInfo","Vh","J9","OA","Wh","Uh","Gh","Hh","eJ","MA","Kh","tJ","LA","rJ","BA","oJ","zA","nJ","Ep","VA","sJ","aJ","iJ","WA","uJ","pJ","UA","qh","cJ","GA","om","HA","KA","jh","log2","lJ","qA","mJ","jA","dJ","XA","Xh","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","fJ","YA","qc","jc","hJ","QA","Yh","Qh","gJ","ZA","xJ","JA","Zh","yJ","eF","Jh","bJ","tF","CJ","rF","wJ","SJ","IJ","oF","vJ","kJ","NJ","nF","TJ","_J","$J","sF","EJ","RJ","aF","DJ","AJ","Iv","iF","eg","uF","pF","FJ","cF","nm","tg","PJ","lF","rg","Si","Xc","mF","og","dF","fF","OJ","hF","MJ","LJ","BJ","gF","ng","sg","xF","zJ","vv","VJ","yF","WJ","bF","ag","sliceDim","paramsShape","UJ","CF","ig","GJ","kv","wF","HJ","KJ","qJ","SF","jJ","XJ","YJ","IF","QJ","vF","ZJ","JJ","kF","eee","tee","NF","ree","oee","TF","nee","see","aee","_F","iee","uee","pee","$F","cee","EF","lee","mee","dee","RF","fee","hee","DF","gee","xee","yee","AF","bee","Cee","FF","wee","See","Iee","PF","ug","pg","vee","OF","cg","kee","MF","LF","Nv","BF","Nee","Tee","_ee","zF","$ee","VF","Eee","WF","lg","mg","Ree","UF","Dee","GF","HF","KF","qF","jF","Aee","XF","Fee","Pee","Oee","YF","dg","fg","Mee","QF","Lee","Bee","zee","ZF","hg","Vee","Wee","Tv","JF","e3","_v","t3","$v","r3","Uee","o3","Gee","Hee","Kee","n3","qee","jee","s3","Xee","Yee","a3","Qee","Zee","i3","gg","Jee","u3","sm","p3","c3","l3","ete","m3","xg","yg","Ev","d3","tte","rte","ote","f3","nte","h3","ste","g3","ate","x3","ite","y3","Rv","b3","ute","pte","C3","cte","mte","w3","dte","fte","hte","S3","bg","Cg","I3","wg","xte","v3","Sg","Ig","yte","k3","vg","bte","N3","kg","Ng","Cte","T3","Tg","_3","wte","Ste","$3","Ite","vte","E3","vu","_g","kte","$g","Nte","D3","Eg","Tte","A3","_te","$te","F3","Ete","Rte","Dte","P3","Ate","Fte","O3","Pte","Ote","Mte","M3","Lte","Bte","L3","zte","Vte","B3","Wte","z3","Ute","V3","Gte","W3","Hte","U3","Kte","G3","qte","H3","jte","K3","q3","Xte","j3","Yte","Qte","X3","Y3","Zte","Q3","Jte","Z3","ere","J3","Rg","tre","eP","rre","tP","ore","rP","nre","oP","sre","are","nP","ire","ure","sP","pre","aP","Dg","cre","Dv","iP","Ag","Fg","Rp","uP","lre","pP","Pg","mre","cP","dre","lP","fre","mP","Og","hre","we","ku","fP","dP","gre","xre","wasm","yre","dataIdMap","linear","leakyrelu","hP","he","gP","xP","yP","Ue","CP","bre","bP","Cre","wre","wP","Dp","typedArrayFromHeap","IP","SP","Sre","go","vre","Ire","kP","vP","_r","transposed","originalAxes","axes","inputWasTransposed","kre","Nre","TP","NP","Tre","_re","_P","Mg","OP","$P","EP","RP","DP","AP","FP","PP","$re","Ere","LP","MP","Rre","Dre","zP","BP","Are","Fre","WP","VP","Pre","Ore","UP","Vt","HP","GP","Mre","Lre","KP","Oo","stringBytes","Bre","zre","Vre","qP","Wre","XP","jP","Ure","Gre","YP","Hre","QP","Kre","ZP","Mr","tO","JP","eO","qre","jre","rO","Av","nO","oO","Xre","Yre","aO","sO","Qre","Zre","uO","iO","Jre","eoe","cO","pO","toe","roe","mO","lO","ooe","noe","Fv","gO","dO","fO","hO","soe","aoe","bilinear","nearest","yO","xO","ioe","uoe","CO","bO","poe","coe","SO","wO","loe","moe","vO","IO","doe","foe","NO","kO","hoe","goe","_O","TO","xoe","yoe","EO","$O","boe","Coe","DO","RO","woe","Soe","FO","AO","Ioe","voe","MO","PO","OO","koe","Noe","LO","Toe","BO","zO","VO","Lg","WO","UO","Pv","HO","GO","_oe","$oe","XO","KO","qO","Eoe","jO","Roe","Doe","QO","YO","Aoe","Foe","JO","ZO","Poe","Ooe","tM","eM","Moe","Loe","oM","rM","Boe","zoe","cM","nM","Voe","sM","Woe","aM","iM","uM","pM","Uoe","Goe","fM","lM","Hoe","mM","Koe","dM","qoe","joe","SM","hM","gM","xM","Xoe","yM","bM","Yoe","CM","Qoe","wM","Zoe","Joe","vM","IM","ene","tne","NM","kM","rne","one","$M","TM","nne","_M","sne","ane","RM","EM","ine","une","AM","DM","pne","cne","PM","FM","lne","mne","MM","OM","dne","fne","BM","LM","hne","gne","VM","zM","xne","yne","Ov","GM","WM","bne","UM","Cne","wne","reflect","symmetric","KM","HM","Sne","Mv","jM","qM","Ine","vne","JM","XM","YM","kne","QM","ZM","Yc","pSelectedIndices","selectedSize","pSelectedScores","pValidOutputs","Nne","Tne","tL","eL","_ne","$ne","oL","rL","Ene","Rne","aL","nL","Dne","sL","Ane","Fne","iL","Pne","uL","One","cL","pL","Mne","Lne","mL","Bg","Bne","lL","zne","Vne","fL","dL","Wne","Une","wL","hL","Gne","gL","Hne","xL","yL","bL","CL","Kne","qne","IL","SL","jne","Xne","kL","vL","Yne","Qne","TL","NL","Zne","Jne","$L","_L","ese","tse","RL","EL","rse","ose","PL","DL","AL","FL","nse","sse","ML","OL","ase","ise","BL","LL","use","pse","WL","zL","VL","cse","lse","UL","GL","HL","KL","qL","mse","XL","jL","dse","fse","QL","YL","hse","gse","JL","ZL","zg","Vg","xse","eB","yse","rB","tB","bse","Cse","oB","wse","uB","nB","sB","aB","Sse","iB","Ise","vse","cB","pB","kse","Nse","lB","Tse","mB","_se","dB","$se","gB","fB","Ese","hB","Rse","Dse","CB","xB","yB","bB","Ase","Fse","SB","wB","Pse","Ose","vB","IB","Mse","NB","Lse","kB","Bse","zse","TB","Vse","_B","Wse","$B","Use","EB","Gse","Lv","validate","MessageChannel","port1","Kv","zB","qv","LB","Hse","dataIdNextNumber","tfjs","initWithThreadsCount","WB","Hv","memoryOffset","registerTensor","qse","Kse","BB","Gg","im","VB","getAsync","am","jv","um","jse","eae","xo","Hg","architecture","intelGPUGeneration","getIntelGPUGeneration","isIntel","Kg","device","numUsedBuffers","numFreeBuffers","freeBuffers","usedBuffers","numBytesUsed","UB","mappedAtCreation","destroy","qg","HB","GB","KB","Ii","Qr","FROM_PIXELS","DRAW","YB","rae","createShaderModule","code","label","shaderKey","groupEnd","createComputePipelineAsync","entryPoint","layout","createComputePipeline","Ae","ht","Mo","qB","tae","workgroupSize","outputComponent","ZB","pixelsOpType","Nu","XB","jB","cm","getUserCode","uniforms","cae","atomic","variableComponents","iae","dispatchLayout","oae","uae","pae","aae","QB","nae","sae","dispatch","GPUBytesPerElement","jg","MatMulProgramType","Lo","fm","computeDispatch","H","computeWorkPerThreadForConv2d","mm","computeWorkgroupInfoForMatMul","Xv","computeWorkgroupSizeForConv2d","lm","flatDispatchLayout","isWebGPUSupported","dm","tilesFitEvenlyIntoShape","mae","Ap","elementsPerThread","gpu","MatMulReduceProgram","MatMulSplitKProgram","MatMulSmallOutputSizeProgram","MatMulPackedProgram","MatMulMax","fe","dae","fae","maxComputeWorkgroupsPerDimension","cbrt","commandQueueOwnedIds","dispatchCountInPass","tensorDataPendingDisposal","queryResolveBuffer","querySet","querySetCount","stagingPendingDisposal","uniformPendingDisposal","hasReadSyncWarned","hasTimestampQueryWarned","pipelineCache","commandEncoder","computePassEncoder","adapterInfo","supportTimestampQuery","features","thresholdToIncreaseWorkgroups","bufferManager","dummyCanvas","dummyContext","configure","releaseResource","numBytesAllocatedInGPU","resource","external","releaseBuffer","GPUTexture","submit","createCommandEncoder","acquireBuffer","GPUBufferUsage","COPY_DST","MAP_READ","ensureCommandEncoderReady","endComputePassEncoder","copyBufferToBuffer","submitQueue","mapAsync","GPUMapMode","READ","getMappedRange","unmap","getCurrentTexture","GPUTextureUsage","alphaMode","copyBufferToTexture","bytesPerRow","clearRect","getBufferData","zeroCopy","STORAGE","COPY_SRC","copyBuffer","createView","mapState","MAP_WRITE","UNIFORM","writeBuffer","pipeline","recordAndSubmit","tensorToBinding","makeUniforms","createBindGroup","getBindGroupLayout","binding","createQuerySet","count","timestampWrites","queryIndex","beginComputePass","setPipeline","setBindGroup","dispatchWorkgroups","QUERY_RESOLVE","resolveQuerySet","BigUint64Array","powerPreference","requestAdapter","requiredFeatures","requiredLimits","maxComputeWorkgroupStorageSize","maxStorageBufferBindingSize","maxBufferSize","maxComputeWorkgroupSizeX","maxComputeInvocationsPerWorkgroup","requestDevice","requestAdapterInfo","ADD","ATAN2","COMPLEX_MULTIPLY_IMAG","COMPLEX_MULTIPLY_REAL","DIV","ELU_DER","EQUAL","FLOOR_DIV","GREATER","GREATER_EQUAL","LESS","LESS_EQUAL","LOGICAL_AND","LOGICAL_OR","MAX","MIN","MOD","MUL","NOT_EQUAL","POW","PRELU","SQUARED_DIFFERENCE","SUB","Z","hae","gae","xae","yae","bae","Cae","wae","Sae","Iae","vae","kae","Nae","Tae","_ae","$ae","Eae","Rae","Dae","Aae","Fae","Pae","Oae","Mae","Lae","Bae","zae","Vae","Wae","Uae","Qc","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","CEIL","COS","COSH","ELU","ERF","EXP","EXPM1","FLOOR","IS_FINITE","IS_INF","IS_NAN","LINEAR","LOG","LOG1P","LOGICAL_NOT","NEG","RELU","RELU6","LEAKYRELU","RECIPROCAL","ROUND","RSQRT","SELU","SIGMOID","SIGN","SIN","SINH","SOFTPLUS","SQRT","SQUARE","STEP","TAN","TANH","TO_INT","Gae","Hae","Kae","qae","jae","Xae","Yae","Qae","Zae","Jae","eie","tie","rie","oie","nie","sie","aie","iie","uie","pie","cie","lie","mie","die","fie","hie","gie","xie","yie","bie","Cie","wie","Sie","Iie","vie","kie","Nie","Tie","_ie","$ie","Eie","Rie","Die","Aie","Fie","vi","fr","Zr","Qv","hm","Pie","Oie","Fp","JB","Mie","Pp","Lie","Bie","Xg","isVec4","isVectorA","sequentialAccessByThreads","addBias","hasPreluActivationWeights","fitAOuter","fitBOuter","fitInner","getShapeFit","tileInner","zie","Yg","Vie","Qg","Zg","splitedDimInner","Jg","ex","kt","runWebGPUProgram","ez","pe","tz","Op","Wie","rz","gm","ki","useSharedMemoryWithA","useSharedMemoryWithB","lastDimensionSize","Ft","oz","yo","nz","Jr","ye","opType","et","sz","az","iz","uz","pz","cz","lz","mz","dz","fz","hz","gz","xz","yz","bz","Cz","wz","Sz","Iz","vz","kz","Nz","Tz","_z","$z","Ez","Rz","Dz","Az","Fz","Pz","Oz","Mz","Lz","HPt","Uie","Bz","Gie","zz","Hie","Vz","Kie","Wz","tx","workPerThread","qie","Uz","rx","ox","newDim","Zv","yr","Gz","nx","reduceType","jie","eo","Xie","Hz","Yie","Kz","Zc","Qie","qz","Zie","jz","Jie","Xz","eue","Yz","tue","Qz","rue","Zz","oue","Jz","sx","za","poolType","computePositions","flattenPositions","includeBatchIndex","_u","Jv","eV","e0","tV","ax","nue","rV","sue","oV","ix","ux","aue","nV","iue","sV","uue","aV","px","pue","t0","Hs","iV","cue","uV","lue","mue","Jc","hasWeights","due","pV","cx","fue","cV","r0","lV","Ni","mV","dV","o0","fV","hue","hV","lx","mx","gue","gV","dx","xV","xue","yV","fx","offsetLength","Mp","bV","el","maxStorageBuffersPerShaderStage","yue","n0","CV","bue","hx","isChannelsLast","innerElementSize","tileAOuter","tileBOuter","gx","xx","yx","Cue","wue","bx","Sue","wV","Cx","wx","Sx","Ix","Iue","SV","vue","vx","kue","IV","kx","Nue","vV","Tue","kV","_ue","Lp","NV","$ue","TV","Eue","_V","Nx","methodId","cropHeightBiggerThan1","cropWidthBiggerThan1","Rue","$V","xm","EV","RV","Tx","Due","DV","Aue","AV","Fue","FV","_x","Pue","PV","$x","hasPreluActivation","tl","virtualWidth","rl","Oue","OV","Ex","Rx","Mue","MV","Lue","LV","Dx","Bue","BV","Ax","zue","zV","Fx","Px","Vue","VV","Wue","WV","Ox","textureFormat","Uue","STORAGE_BINDING","UV","GV","a0","HV","Gue","KV","Hue","qV","Kue","jV","que","XV","jue","YV","Xue","QV","Mx","ZV","Yue","JV","ym","component","Lx","Que","ol","eW","Bx","tW","Zue","rW","Jue","oW","zx","importVideo","nW","epe","i0","importExternalTexture","RENDER_ATTACHMENT","TEXTURE_BINDING","copyExternalImageToTexture","Vx","offsetShape","scaleShape","sW","tpe","aW","rpe","iW","Wx","ope","uW","Ux","aShape","npe","u0","pW","spe","cW","ape","lW","ipe","mW","upe","dW","ppe","fW","cpe","hW","lpe","gW","mpe","xW","dpe","yW","Gx","fpe","bW","hpe","CW","gpe","wW","xpe","SW","ype","IW","bpe","vW","kW","Hx","Kx","maxAllowRadius","elementsPerWorkgroup","Cpe","NW","qx","wpe","TW","Spe","_W","Ipe","$W","vpe","EW","jx","Xx","kpe","RW","Npe","DW","Tpe","AW","_pe","FW","$pe","PW","Yx","xShape","OW","Epe","MW","Qx","Zx","p0","LW","Rpe","BW","Dpe","zW","Ape","VW","Fpe","WW","Jx","Ppe","UW","bm","GW","HW","KW","Ope","qW","c0","ey","Mpe","jW","Lpe","XW","Bpe","YW","zpe","QW","Vpe","ZW","Wpe","JW","Upe","eU","Gpe","tU","Hpe","rU","ty","Kpe","oU","ry","qpe","nU","oy","jpe","sU","ny","Xpe","aU","sy","Ype","iU","ay","fillSnippet","uU","Qpe","pU","Zpe","cU","Va","sumDupeIndices","sliceDimGreaterThanOne","updatesRank","indicesRank","Jpe","lU","iy","ece","mU","uy","cRank","tce","dU","rce","fU","oce","hU","nce","gU","sce","xU","ace","yU","ice","bU","py","paddedXShape","uce","CU","cy","ly","my","pce","wU","cce","SU","fy","lce","Cm","IU","mce","vU","dce","kU","fce","NU","TU","hce","_U","gce","$U","hy","xce","EU","yce","RU","bce","DU","Cce","AU","wce","FU","Sce","PU","gy","xy","nl","OU","Ice","MU","yy","vce","LU","kce","BU","by","Nce","zU","Tce","VU","_ce","$ce","Ece","Rce","Dce","dt2","ts2","getHours","padStart","getMinutes","getSeconds","getMilliseconds","folder","file","skipJoin","toLocaleLowerCase","bigint","defaults","config3","msgs","defined","reason","same","expected","mergeDeep","objects","isObject","prev","pVal","oVal","config","modelBasePath","cacheModels","validateModels","wasmPath","wasmPlatformFetch","warmup","cacheSensitivity","skipAllowed","deallocate","softwareKernels","enabled","equalization","flip","return","autoBrightness","brightness","contrast","sharpness","blur","saturation","negative","sepia","vintage","kodachrome","technicolor","polaroid","pixelate","gesture","face","detector","rotation","maxDetected","skipFrames","skipTime","minConfidence","minSize","mask","mesh","keepInvalid","attention","iris","emotion","description","antispoof","liveness","hand","landmarks","skeleton","object","segmentation","ratio","vertexIdentity","colorMatrixWithAlpha","colorMatrixWithoutAlpha","convolution","collect","prefix","collection","match2","GLProgram","gl2","vertexSource","fragmentSource","shader","GLImageFilter","drawCount","sourceTexture","lastInChain","currentFramebufferIndex","tempFramebuffers","filterChain","currentProgram","fxcanvas","shaderProgramCache","INTERMEDIATE","vertices","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","createFramebufferTexture","fbo","renderbuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","getTempFramebuffer","index2","flipY","drawArrays","floatSize","BYTES_PER_ELEMENT","vertSize","colorMatrix","matrix","amount","y8","desaturate","v10","lumR","lumG","lumB","desaturateLuminance","brownie","vintagePinhole","shiftToBGR","pixelSizeX","pixelSizeY","uniform2f","detectEdges","sobelX","sobelY","sharpen","emboss","size2","blurSizeX","blurSizeY","histogramEqualization","inputImage","rgb3","absMax","channel","maxValue","maxRange","factor","final","enh","fx2","_canvas","_image","_imageData","inCanvas","outCanvas","tmpCanvas","last","inputSum","cacheDiff","sumMethod","inputTensor","worker","Canvas","globalThis","copy","outputCanvas","ctx","process2","getTensor","_a","_b","_c2","Image","HTMLMediaElement","tensor2","readyState","originalWidth","originalHeight","targetWidth","targetHeight","inCtx","translate","setTransform","supported","arr","tempCanvas","tempCtx","tempData","casted","maxVal","skip","skipFrame","diff","squared","diffSum","diffRelative","input1","input2","Env","simd","multithread","renderer","adapter","model","offscreen","agent","raw","platformMatch","arch","val","backends","tensorflow","TF_Version","isUsingGpuDevice","VERSION","VENDOR","RENDERER","SHADING_LANGUAGE_VERSION","webgpu","kernel","cpu","WebCam","devices","mediaDevices","enumerateDevices","kind","webcamConfig","crop","element","el2","getElementById","requestedConstraints","audio","video","facingMode","resizeMode","ideal","deviceId","stream","paused","pause","getUserMedia","err","srcObject","onloadeddata","settings","constraints","capabilities","getVideoTracks","getCapabilities","getConstraints","getSettings","models_exports","affectnet_mobilenet","age","anti_spoofing","blazeface","blazeface_back","blazeface_front","blazepose_detector","blazepose_full","blazepose_heavy","blazepose_lite","centernet","models_default","efficientpose","efficientpose_i_lite","efficientpose_ii_lite","efficientpose_iv","faceboxes","facemesh","facemesh_attention","facemesh_attention_pinto","facemesh_detection_full","facemesh_detection_short","faceres","faceres_deep","gear","gear_e1","gear_e2","gender","gender_ssrnet_imdb","handdetect","handlandmark_full","handlandmark_lite","handlandmark_sparse","handskeleton","handtrack","insightface_efficientnet_b0","insightface_ghostnet_strides1","insightface_ghostnet_strides2","insightface_mobilenet_emore","insightface_mobilenet_swish","meet","mobileface","mobilefacenet","models","movenet_lightning","movenet_multipose","movenet_thunder","nanodet","nanodet_e","nanodet_g","nanodet_m","nanodet_t","posenet","rvm","selfie","cacheSupported","verbose","modelStats","httpHandler","url","init4","setModelLoadOptions","loadModel","_d2","modelPathSegments","shortModelName","cachedModelName","sizeFromManifest","sizeLoadedWeights","sizeDesired","inCache","cachedModels","tfLoadOptions","model23","saveResult","config2","extensions","webGLattr","desynchronized","getSupportedExtensions","glv2","emit","kernelConfig","newKernelConfig","WEBGL_VERSION","current","constants","tf255","tf1","tf2","tf05","tf127","rgb","getBestBackend","updateBackend","registerCustomOps","newKernels","kernelMod","op2","kernelFloorMod","kernelRotateWithOffset","defaultFlags","check","force","timeStamp","available","CANVAS2D_WILL_READ_FREQUENTLY","WEBGL_USE_SHAPES_UNIFORMS","WEBGL_EXP_CONV","newFlags","updatedFlags","initBackend","fakeOps","kernelNames","param","draw_exports","canvas2","init2","options2","person","getCanvasContext","rad2deg","theta","str","colorDepth","opt","useDepth","color","labels","startX","startY","localOptions2","line","lineHeight","shadowColor","fillStyle","fillText","labelColor","point","beginPath","arc","pointSize","rect","lineWidth","useCurves","cx2","cy2","ellipse","moveTo","roundRect","lineTo","quadraticCurveTo","closePath","stroke","lines","points","pt2","strokeStyle","fillPolygons","curves","xc2","yc2","arrow","radius","angle","font","drawPoints","drawLabels","drawBoxes","drawAttention","drawGestures","drawPolygons","drawGaze","faceLabels","bodyLabels","bodyPartLabels","objectLabels","handLabels","fingerLabels","gestureLabels","meshAnnotations","silhouette","lipsUpperOuter","lipsLowerOuter","lipsUpperInner","lipsLowerInner","lipsLowerSemiOuter","lipsUpperSemiOuter","lipsLowerSemiInner","lipsUpperSemiInner","rightEyeUpper0","rightEyeLower0","rightEyeUpper1","rightEyeLower1","rightEyeUpper2","rightEyeLower2","rightEyeLower3","rightEyebrowUpper","rightEyebrowLower","rightEyeIris","leftEyeUpper0","leftEyeLower0","leftEyeUpper1","leftEyeLower1","leftEyeUpper2","leftEyeLower2","leftEyeLower3","leftEyebrowUpper","leftEyebrowLower","leftEyeIris","midwayBetweenEyes","noseTip","noseBottom","noseRightCorner","noseLeftCorner","rightCheek","leftCheek","meshLandmarks","mouth","symmetryLine","blazeFaceLandmarks","leftEye","rightEye","nose","leftEar","rightEar","irisIndices","UV468","TRI468","VTX68","VTX33","VTX7","connectionsToIndices","connections","connection","pairsLips","pairsLeftEye","pairsLeftEyebrow","pairsLeftIris","pairsRightEye","pairsRightEyebrow","pairsRightIris","pairsFaceContour","LIPS_CONNECTIONS","LEFT_EYE_CONNECTIONS","LEFT_EYEBROW_CONNECTIONS","LEFT_IRIS_CONNECTIONS","RIGHT_EYE_CONNECTIONS","RIGHT_EYEBROW_CONNECTIONS","RIGHT_IRIS_CONNECTIONS","FACE_OVAL_CONNECTIONS","connectionsToIndices2","localOptions","MEDIAPIPE_FACE_MESH_KEYPOINTS_BY_CONTOUR","lips","leftEyebrow","leftIris","rightEyebrow","rightIris","faceOval","indexLabelPairs","flat","LANDMARKS_REFINEMENT_LIPS_CONFIG","LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG","LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG","_f2","_g2","_h2","genderScore","distance","live","emotion2","roll","yaw","pitch","gaze","bearing","box","drawIrisElipse","annotations","sizeX","sizeY","drawGazeSpheres","Path2D","valX","valY","pathV","pathH","drawGazeArrows","strength","leftGaze","rightGaze","drawFacePolygons","drawFacePoints","drawFaceBoxes","inCanvas2","drawOptions","lineJoin","keypoints","part","connected4","addHandLine","middle","ring","pinky","thumb","what","who","defaultLabels","bodyPart","finger","drawTime","promise","perfadd","blazeposecoords_exports","connected","kpt","anchorTensor","shoulders","hips","leftLegUpper","leftLegLower","leftFoot","leftTorso","leftArmUpper","leftArmLower","leftHand","leftHandPinky","leftHandIndex","leftHandThumb","leftEyeOutline","rightLegUpper","rightLegLower","rightFoot","rightTorso","rightArmUpper","rightArmLower","rightHand","rightHandPinky","rightHandIndex","rightHandThumb","rightEyeOutline","inputSize","numLayers","createAnchors","anchors3","layerId","anchorCount","lastSameStrideLayer","featureMapHeight","featureMapWidth","anchorId","loadDetector","modelSignature","tensorShape","model2","cropFactor","decodeBoxes","boxesTensor","anchor","xCenter","yCenter","xMin","yMin","xMax","yMax","decodeResults","logitsTensor","outputSize2","detectedBoxes","nms","boxRaw","detectedBox","detectBoxes","res","logitsRaw","boxesRaw","calc","coords","dist","scaleFact","newBox","inputSize2","skipped","cache","padding","lastTime","loadDetect","loadPose","prepareImage","cropBox","cropped","rescaleKeypoints","kpt4","positionRaw","fixKeypoints","leftPalm","leftWrist","leftIndex","rightPalm","rightWrist","rightIndex","detectLandmarks","heatmap","world","poseflag","poseScore","distances","keypointsRelative","presence","adjScore","distance2","kpts","annotations2","pt0","pt1","body4","predict","preparedImage","preparedBox","bodyResult","model3","labels2","class","inputSize3","last2","lastTime2","skipped2","process3","results","detections","classes","id2","classVal","predict2","objectT","efficientposecoords_exports","connected2","kpt2","model4","leftLeg","rightLeg","torso","leftArm","rightArm","head","lastTime3","cache2","skipped3","load2","max2d","minScore","reshaped","newScore","coordinates","predict3","enhance2","resT","x8","y10","partScore","curr","xRaw","yRaw","getBoxSize","endPoint","startPoint","getBoxCenter","clampBox","getRawBox","scaleBoxCoordinates","confidence","cutAndResize","w10","cutBox","enlargeBox","halfSize","squarifyBox","centers","calculateLandmarksBoundingBox","fixedRotationMatrix","normalizeRadians","computeRotation","point1","point2","buildTranslationMatrix","v12","v22","getColumnFrom2DArr","columnIndex","column","multiplyTransformMatrices","mat1","mat2","row","col","buildRotationMatrix","cosA","sinA","rotationMatrix","translationMatrix","translationTimesRotation","negativeTranslationMatrix","invertTransformMatrix","rotationComponent","translationComponent","invertedTranslation","rotatePoint","homogeneousCoordinate","generateAnchors","inputSize10","spec","anchors","gridRows","gridCols","anchorsNum","gridY","anchorY","gridX","anchorX","transformRawCoords","coordsRaw","boxSize","coordsScaled","coord","largeAngle","coordsRotationMatrix","coordsRotated","inverseRotationMatrix","boxCenter","offsets","correctFaceRotation","rotate","face4","centerRaw","rotated","model5","model6","findFaceCenter","calculateFaceBox","previousBox","calculatedBox","keypointsCount","faceBoxScaleFactor","inputSize4","inputSizeT","load3","decodeBoxes2","boxOutputs","boxStarts","boxSizes","boxSizesNormalized","centersNormalized","halfBoxSize","ends","startNormalized","endNormalized","getBoxes","resized","concat384","concat512","batch","bbox","rawBox","scaledBox","enlargedBox","squaredBox","inputSize5","irisEnlarge","leftOutline","rightOutline","eyeLandmarks","leftBounds","rightBounds","irisLandmarks","upperCenter","lowerCenter","numCoordinates","load4","replaceIrisCoords","rawCoords","newCoords","originalIndices","getLeftToRightEyeDepthDifference","leftEyeZ","rightEyeZ","getEyeBox","eyeInnerCornerIndex","eyeOuterCornerIndex","meshSize","flipped","getEyeCoords","eyeData","eyeBox","eyeBoxSize","eyeRawCoords","getAdjustedIrisCoords","irisCoords","direction","upperCenterZ","lowerCenterZ","averageZ","augmentIris","leftEyeBox","leftEyeBoxSize","leftEyeCrop","rightEyeBox","rightEyeBoxSize","rightEyeCrop","combined","eyePredictions","eyePredictionsData","leftEyeData","leftEyeRawCoords","leftIrisRawCoords","rightEyeData","rightEyeRawCoords","rightIrisRawCoords","leftToRightEyeDepthDifference","adjustedLeftIrisCoords","adjustedRightIrisCoords","augment","_j2","irisL","eyeL","irisR","eyeR","irisLDepth","irisRDepth","cache3","timestamp","model7","inputSize6","predict4","faces","newCache","meshRaw","boxScore","faceScore","equilized","confidenceT","faceConfidence","meshT","coordsReshaped","load5","model8","model9","triangulation","uvmap","last3","lastCount","lastTime4","skipped4","load6","predict5","idx","count2","_a2","_b2","grayscale","grayscaleSub","grayscaleMul","last4","lastTime5","lastCount2","skipped5","load7","enhance","cropval","predict6","descriptor","enhanced","genderT","gender2","argmax","ageIdx","ageT","desc","model10","expandFact","insidePoly","polygon","inside","model11","cached","skipped6","lastCount3","lastTime6","load8","predict7","model12","cached2","skipped7","lastCount4","lastTime7","load9","predict8","model13","last5","raceNames","ageWeights","lastCount5","lastTime8","skipped8","load10","predict9","race","ageDistribution","ageSorted","age2","model14","last6","lastCount6","lastTime9","skipped9","load11","modelPathAge","predict10","_c3","model15","last7","lastCount7","lastTime10","skipped10","rgb2","load12","modelPathGender","predict11","_a3","_b3","normalize2","red","green","blue","redNorm","greenNorm","blueNorm","model16","last8","lastCount8","lastTime11","skipped11","load13","predict12","last9","lastCount9","lastTime12","skipped12","load14","predict13","calculateGaze","offsetIris","eyeRatio","irisCenter","eyeCenter","eyeSize","eyeDiff","calculateFaceAngle","imageSize","subVectors","crossVectors","rotationMatrixToEulerAngle","r00","_r01","_r02","r10","r11","r12","r20","r21","r22","thetaX","thetaY","thetaZ","pts","yAxis","xAxis","zAxis","calculateCameraDistance","irisSize","cameraDistance","detectFace","_k2","_l2","_n2","_p2","_r2","_s2","_u2","_v2","_w2","ageRes","gearRes","genderRes","emotionRes","mobilefacenetRes","insightfaceRes","antispoofRes","livenessRes","descRes","faceRes","analyze","masked","ssrnet","embedding","Finger","nameMapping","0","2","3","4","pointsMapping","getName","getPoints","FingerCurl","none","half","full","FingerDirection","verticalUp","verticalDown","horizontalLeft","horizontalRight","diagonalUpRight","diagonalUpLeft","diagonalDownRight","diagonalDownLeft","5","6","7","FingerGesture","curls","directions","weightsRelative","curl","weight","total","detectedCurls","detectedDirections","fingerIdx","detectedCurl","expectedCurls","expectedCurl","detectedDirection","expectedDirections","expectedDirection","ThumbsUp","Victory","Point","MiddleFinger","OpenPalm","fingergesture_default","options3","HALF_CURL_START_LIMIT","NO_CURL_START_LIMIT","DISTANCE_VOTE_POWER","SINGLE_ANGLE_VOTE_POWER","TOTAL_ANGLE_VOTE_POWER","calculateSlope","point1x","point1y","point2x","point2y","slope","getSlopes","slopeXY","slopeYZ","angleOrientationAt","weightageAt","isVertical","isDiagonal","isHorizontal","estimateFingerCurl","midPoint","start_mid_x_dist","start_end_x_dist","mid_end_x_dist","start_mid_y_dist","start_end_y_dist","mid_end_y_dist","start_mid_z_dist","start_end_z_dist","mid_end_z_dist","start_mid_dist","start_end_dist","mid_end_dist","cos_in","fingerCurl","angleOfCurve","estimateHorizontalDirection","max_dist_x","estimatedDirection","estimateVerticalDirection","max_dist_y","estimateDiagonalDirection","reqd_vertical_direction","reqd_horizontal_direction","calculateFingerDirection","fingerSlopes","voteVertical","voteDiagonal","voteHorizontal","start_end_x_y_dist_ratio","max_dist","calc_start_point_x","calc_start_point_y","calc_end_point_x","calc_end_point_y","calcStartPoint","calcEndPoint","totalAngle","votes","fingerSlope","fingerVotes","estimate","slopesXY","slopesYZ","fingerCurls","fingerDirections","slopeAtXY","slopeAtYZ","point22","slopes","pointIndexAt","fingerPointsAt","fingerCurled","fingerPosition","estimatorRes","poses","gesture2","matchAgainst","body2","gestures","leftShoulder","rightShoulder","face2","zDiff","xDiff","openLeft","openRight","mouthOpen","chinDepth","iris2","sizeXLeft","sizeYLeft","areaLeft","sizeXRight","sizeYRight","areaRight","difference","leftIrisCenterX","rightIrisCenterX","rightIrisCenterY","leftIrisCenterY","hand2","fingers","pos","closest","best","highest","pose","getBoxSize2","getBoxCenter2","cutBoxFromImageAndResize","scaleBoxCoordinates2","palmLandmarks","scaledCoord","enlargeBox2","newHalfSize","squarifyBox2","maxEdge","normalizeRadians2","computeRotation2","buildTranslationMatrix2","dot2","getColumnFrom2DArr2","multiplyTransformMatrices2","buildRotationMatrix2","invertTransformMatrix2","rotatePoint2","handDetectorModel","handPoseModel","handPipeline","anchors2","HandDetector","anchorsTensor","inputSizeTensor","doubleInputSizeTensor","boxOffsets","boxCenterPoints","halfBoxSizes","startPoints","endPoints","rawPalmLandmarks","batched","predictions","normalizeBoxes","hands","normalizeLandmarks","hand3","scaled","palmBoxEnlargeFactor","handBoxEnlargeFactor","palmLandmarkIds","palmLandmarksPalmBase","palmLandmarksMiddleFingerBase","lastTime13","HandPipeline","handDetector","handPoseModel2","storedBoxes","detectedHands","xs2","ys2","rotatedPalmLandmarks","boxAroundPalm","boundingBox","boxAroundHand","box2","scaleFactor","originalBoxCenter","useFreshBox","currentBox","palmCenter","palmCenterNormalized","rotatedImage","getBoxForPalmLandmarks","croppedInput","handImage","keypointsReshaped","nextBoundingBox","getBoxForHandLandmarks","boxConfidence","fingerConfidence","topLeft","bottomRight","enlarged","meshAnnotations2","palm","initPipeline","predict14","estimateHands","fingerScore","loadDetect2","loadSkeleton","models2","modelOutputNodes","inputSize7","faceIndex","boxExpandFact","maxDetectorResolution","detectorExpandFact","skipped13","lastTime14","cache4","fingerMap","base","loadDetect3","loadSkeleton2","detectHands","ratio2","rawScores","rawBoxes","classScores","filtered","classNum","nmsIndex","boxSlice","boxYX","boxData","boxFull","detectFingers","boxCrop","rawScore","coordsData","coordsNorm","predict15","skipTimeExtended","skipFrameExtended","handBox","oldCache","boxKpt","boxScale","boxScaleRaw","empty","persons","movenetcoords_exports","connected3","horizontal","kpt3","relative","vertical","model17","bufferedResult","interpolateTime","calc2","newResult","_x2","_z2","t02","elapsed","bufferedFactor","newBoxCoord","newKpt","_d3","_e2","_f3","_g3","_h3","_i2","kp2","landmark","newPersons","t12","interpolate","load15","predict16","rgba","bgRaw","fgRaw","expand","match_exports","descriptor1","descriptor2","options4","order","multiplier","similarity","normalizeDistance","root","clamp2","descriptors","lowestDistance","normalizedSimilarity","models_exports2","Models","validateModel","model18","maxJitter","cache5","bodyParts","pair","findIndex","tmp","higher","compare2","leftTo","rightTo","distanceLeft","distanceRight","jitter","padInput","rescaleBody","rescaledBoxes","model19","inputSize8","skipped14","cache6","bodies","load16","parseSinglePose","parseMultiPose","boxNorm","predict17","last10","lastTime15","skipped15","inputSize9","scaleBox","load17","process4","strideSize","baseSize","scoresT","featuresT","boxesMaxT","boxIdxT","boxIdx","boxOffset","nmsBoxes","nmsScores","nmsIdx","_val","predict18","resizeT","normT","transposeT","partNames","partIds","jointName","connectedPartNames","poseChain","jointNameA","jointNameB","getBoundingBox","maxX","maxY","minX","minY","scalePoses","inputResolutionHeight","inputResolutionWidth","scaleY","scaleX","scalePose","scaledPoses","model20","MaxHeap","maxSize2","getElementValue","priorityQueue","numberOfElements","swim","exchange","sink","getValueAt","getOffsetPoint","keypoint","getImageCoords","outputStride2","heatmapY","heatmapX","squaredDistance","y12","x12","y22","x22","dy2","dx2","addVectors","model21","poseNetOutputs","localMaximumRadius","outputStride","squaredNmsRadius","traverse","edgeId","sourceKeypoint","targetId","displacements","offsetRefineStep","getDisplacement","getStridedIndexNearPoint","height2","width2","sourceKeypointIndices","displacement","displacedPoint","targetKeypoint","targetKeypointIndices","offsetPoint","targetKeyPointIndices","decodePose","displacementsFwd","displacementsBwd","tuples","parentJoinName","childJoinName","edgesFwd","childJointId","edgesBwd","parentJointId","numParts","numEdges","rootPoint","edge","sourceId","scoreIsMaximumInLocalWindow","keypointId","localMaximum","yStart","yEnd","yCurrent","xStart","xEnd","xCurrent","buildPartWithScoreQueue","minConfidence2","numKeypoints","enqueue","withinRadius","correspondingKeypoint","getInstanceScore","existingPoses","notOverlappedKeypointScores","dequeue","rootImageCoords","predict19","results3d","buffers","decoded","load18","outputNodes2","init3","r1i","r2i","r3i","r4i","downsample_ratio","load19","model22","getRGBA","fgr","pha","getState","predict20","r1o","r2o","r3o","r4o","load20","predict21","simpleOps","ignoreOps","ops","missing","currentInstance","totalSizeFromManifest","totalSizeWeights","totalSizeLoading","percentageLoaded","numLoadedModels","numDefinedModels","_A2","ssrnetage","ssrnetgender","insightface","blazepose","blazeposedetect","movenet","models3","stats","join2","person2","extractXY","_numTensors","_analyzeMemoryLeaks","_checkSanity","_sanity","_loops","face3","body3","warmupBitmap","b64toBlob","base64","res2","blob","bitmap","detect","warmupCanvas","img","canvas3","naturalWidth","naturalHeight","warmupNode","atob2","decodeJpeg","expanded","runInference","runCompile","ENGINE_COMPILE_ONLY","backendType","webGLBackend","numTensorsStart","compiledModels","modelName","numTensorsEnd","userConfig","Human","currentTensors","previousTensors","leaked","event","events","Event","tfVersion","seal","EventTarget","faceTriangulation","faceUVMap","envTemp","currentBackend","processed","firstImageTensor","secondImageTensor","loadModels","ms2","kernelArr","perc","timeStart","inputProcess","totalFrames","cachedFrames","cacheCheck","bodyRes","handRes","objectRes","bodyConfig","handConfig","gestureRes","run","delay","sleep","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","DESCRIPTORS","objectKeys","toIndexedObject","propertyIsEnumerable","createMethod","TO_ENTRIES","toObject","toAbsoluteIndex","toLength","argumentsLength","endPos","toInteger","arraySpeciesCreate","createProperty","ACCESSORS","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","len","actualStart","nativeKeys","fails","FAILS_ON_PRIMITIVES","speakMessage","Speak","synthesis","speechSynthesis","getVoices","voices","onvoiceschanged","updatedVoices","playAudio","voice","lang","utterance","SpeechSynthesisUtterance","speak","$includes","addToUnscopables","aFunction","IndexedObject","IS_RIGHT","that","memo","$map","getOwnPropertyDescriptorModule","sham","nativeGetOwnPropertyDescriptor","FORCED","render","_vm","$createElement","_self","staticClass","pdf_name","finishLoading","scopedSlots","proxy","page","numPages","$event","pagesSignatures","signaturesForShow","item","imageWidth","imageHeight","xPosition","yPosition","draggable","onDrag","onResize","refInFor","pdfLoaded","loadedRatio","isLoading","sign_button","titleUnderline","showManualSignatureEditableItems","getTotalSignaturesCount","pageObject","pageIndex","signatureIndex","removeSignature","pageNumber","directives","rawName","modifiers","signText","allowSignatures","onFirmarBtnClick","getFirmarBtnText","rejectText","$bvModal","show","saveText","saveLocation","marginButton","pdf_created","hash","staticStyle","backToList","showModalSignatureBio","disabledOption2S","openDigitalCertificate","showModalOTP","sendOTP","callback","$$v","codeOTP","expression","verifyOTP","onCanceleSignatureBio","action","smile_step","neutral_step","ValidateTELoading","onPlay","isValidFace","onBegin","minWidth","undoSign","saveSign","docDetailsLoading","askData","errors","askedUserData","$set","documentId","lastName","saveAskedData","rejectDocumentDetails","saveRejectDocument","fillSignaturePositionsWithServerValues","hide","downloadPdf","onSaveSignature","onSendOtpCode","staticRenderFns","pageWidth","pageHeight","signatures","variant"],"mappings":"qGAAA,IAAIA,EAAI,EAAQ,QACZC,EAAU,EAAQ,QAAgCC,OAItDF,EAAE,CAAEG,OAAQ,SAAUC,MAAM,GAAQ,CAClCF,OAAQ,SAAgBG,GACtB,OAAOJ,EAAQI,O,oCCNnB,IAAIL,EAAI,EAAQ,QACZM,EAAU,EAAQ,QAA6BC,KAC/CC,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAClCC,EAAiB,EAAQ,QACzBC,EAAU,EAAQ,QAElBC,EAAgBJ,EAAoB,UACpCK,EAAiBJ,EAAwB,SAAU,CAAEK,EAAG,IAGxDC,GAAcJ,GAAWD,EAAiB,IAAMA,EAAiB,GAIrEV,EAAE,CAAEG,OAAQ,QAASa,OAAO,EAAMC,QAASL,IAAkBC,GAAkBE,GAAc,CAC3FG,OAAQ,SAAgBC,GACtB,OAAOb,EAAQc,KAAMD,EAAYE,UAAUC,OAAQD,UAAUC,OAAS,EAAID,UAAU,QAAKE,O,kCCjB7F,IAAIvB,EAAI,EAAQ,QACZwB,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QACjCC,EAAuB,EAAQ,QAInC1B,EAAE,CAAEG,OAAQ,SAAUa,OAAO,EAAMC,QAASS,EAAqB,aAAe,CAC9EC,SAAU,SAAkBC,GAC1B,SAAUC,OAAOJ,EAAuBL,OACrCU,QAAQN,EAAWI,GAAeP,UAAUC,OAAS,EAAID,UAAU,QAAKE,O,qCCX/E,wDAMA,IAAIQ,EAAYC,OAAOC,eACnBC,EAAkB,CAACC,EAAKC,EAAKC,IAAUD,KAAOD,EAAMJ,EAAUI,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACtJI,EAAW,CAACtC,EAAQuC,KACtB,IAAK,IAAIC,KAAQD,EACfX,EAAU5B,EAAQwC,EAAM,CAAEC,IAAKF,EAAKC,GAAOL,YAAY,KAEvDO,EAAgB,CAACV,EAAKC,EAAKC,KAC7BH,EAAgBC,EAAoB,kBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GACxDA,GAELS,EAAgB,CAACX,EAAKY,EAAQC,KAChC,IAAKD,EAAOE,IAAId,GACd,MAAMe,UAAU,UAAYF,IAE5BG,EAAe,CAAChB,EAAKY,EAAQK,KAC/BN,EAAcX,EAAKY,EAAQ,2BACpBK,EAASA,EAAOC,KAAKlB,GAAOY,EAAOH,IAAIT,IAE5CmB,EAAe,CAACnB,EAAKY,EAAQV,KAC/B,GAAIU,EAAOE,IAAId,GACb,MAAMe,UAAU,qDAClBH,aAAkBQ,QAAUR,EAAOS,IAAIrB,GAAOY,EAAOU,IAAItB,EAAKE,IAE5DqB,EAAe,CAACvB,EAAKY,EAAQV,EAAOsB,KACtCb,EAAcX,EAAKY,EAAQ,0BAC3BY,EAASA,EAAON,KAAKlB,EAAKE,GAASU,EAAOU,IAAItB,EAAKE,GAC5CA,GAILuB,EAAmB,GACvBnB,EAASmB,EAAkB,CACzBC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,kBAAmB,IAAMC,GACzBC,iBAAkB,IAAMC,GACxBC,cAAe,IAAMC,GACrBC,gBAAiB,IAAMC,GACvBC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,OAAQ,IAAMC,GACdC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,cAAe,IAAMC,GACrBC,YAAa,IAAMC,GACnBC,YAAa,IAAMC,GACnBC,YAAa,IAAMC,GACnBC,eAAgB,IAAMC,GACtBC,SAAU,IAAMC,GAChBC,WAAY,IAAMC,GAClBC,cAAe,IAAMC,GACrBC,YAAa,IAAMC,GACnBC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,YAAa,IAAMC,GACnBC,QAAS,IAAMC,GACfC,WAAY,IAAMC,GAClBC,OAAQ,IAAMC,GACdC,OAAQ,IAAMC,GACdC,qBAAsB,IAAMC,GAC5BC,oBAAqB,IAAMC,GAC3BC,OAAQ,IAAMC,GACdC,uBAAwB,IAAMC,GAC9BC,sBAAuB,IAAMC,GAC7BC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,cAAe,IAAMC,GACrBC,QAAS,IAAMC,GACfC,OAAQ,IAAMC,GACdC,YAAa,IAAMC,EACnBC,cAAe,IAAMC,GACrBC,aAAc,IAAMC,GACpBC,sBAAuB,IAAMC,GAC7BC,oCAAqC,IAAMC,GAC3CC,mCAAoC,IAAMC,GAC1CC,KAAM,IAAMC,GACZC,WAAY,IAAMC,GAClBC,yBAA0B,IAAMC,GAChCC,wBAAyB,IAAMC,GAC/BC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,OAAQ,IAAMC,GACdC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,YAAa,IAAMC,GACnBC,MAAO,IAAMC,GACbC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,WAAY,IAAMC,GAClBC,MAAO,IAAMC,GACbC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,cAAe,IAAMC,GACrBC,MAAO,IAAMC,GACbC,SAAU,IAAMC,GAChBC,WAAY,IAAMC,GAClBC,eAAgB,IAAMC,GACtBC,YAAa,IAAMC,GACnBC,qBAAsB,IAAMC,GAC5BC,aAAc,IAAMC,GACpBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,WAAY,IAAMC,GAClBC,QAAS,IAAMC,GACfC,aAAc,IAAMC,GACpBC,KAAM,IAAMC,GACZC,SAAU,IAAMC,GAChBC,KAAM,IAAMC,GACZC,SAAU,IAAMC,GAChBC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,cAAe,IAAMC,EACrBC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,UAAW,IAAMC,GACjBC,SAAU,IAAMC,GAChBC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,UAAW,IAAMC,GACjBC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,eAAgB,IAAMC,GACtBC,iBAAkB,IAAMC,GACxBC,eAAgB,IAAMC,GACtBC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,cAAe,IAAMC,GACrBC,YAAa,IAAMC,GACnBC,kBAAmB,IAAMC,GACzBC,QAAS,IAAMC,GACfC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,IAAK,IAAMC,GACXC,kBAAmB,IAAMC,GACzBC,YAAa,IAAMC,GACnBC,SAAU,IAAMC,GAChBC,IAAK,IAAMC,GACXC,oBAAqB,IAAMC,GAC3BC,oBAAqB,IAAMC,GAC3BC,oBAAqB,IAAMC,GAC3BC,SAAU,IAAMC,GAChBC,gBAAiB,IAAMC,GACvBC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,UAAW,IAAMC,GACjBC,sBAAuB,IAAMC,GAC7BC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,iBAAkB,IAAMC,GACxBC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,qBAAsB,IAAMC,GAC5BC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,QAAS,IAAMC,GACfC,WAAY,IAAMC,GAClBC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,eAAgB,IAAMC,GACtBC,mBAAoB,IAAMC,GAC1BC,sBAAuB,IAAMC,GAC7BC,0BAA2B,IAAMC,GACjCC,QAAS,IAAMC,GACfC,iBAAkB,IAAMC,GACxBC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,aAAc,IAAMC,GACpBC,UAAW,IAAMC,GACjBC,aAAc,IAAMC,GACpBC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,QAAS,IAAMC,GACfC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,SAAU,IAAMC,GAChBC,eAAgB,IAAMC,GACtBC,oBAAqB,IAAMC,GAC3BC,cAAe,IAAMC,GACrBC,kBAAmB,IAAMC,GACzBC,iBAAkB,IAAMC,GACxBC,cAAe,IAAMC,GACrBC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,kBAAmB,IAAMC,GACzBC,mBAAoB,IAAMC,GAC1BC,KAAM,IAAMC,GACZC,aAAc,IAAMC,GACpBC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,uBAAwB,IAAMC,GAC9BC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,aAAc,IAAMC,GACpBC,oBAAqB,IAAMC,GAC3BC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,UAAW,IAAMC,GACjBC,UAAW,IAAMC,GACjBC,OAAQ,IAAMC,GACdC,OAAQ,IAAMC,GACdC,mBAAoB,IAAMC,GAC1BC,WAAY,IAAMC,GAClBC,SAAU,IAAMC,GAChBC,cAAe,IAAMC,GACrBC,UAAW,IAAMC,GACjBC,aAAc,IAAMC,GACpBC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbpa,IAAK,IAAMqa,GACXC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,OAAQ,IAAMC,GACdC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,QAAS,IAAMC,GACfC,aAAc,IAAMC,GACpBC,cAAe,IAAMC,GACrBC,UAAW,IAAMC,GACjBC,YAAa,IAAMC,GACnBC,YAAa,IAAMC,GACnBC,YAAa,IAAMC,GACnBC,eAAgB,IAAMC,GACtBC,SAAU,IAAMC,GAChBC,WAAY,IAAMC,GAClBC,iBAAkB,IAAMC,GACxBC,cAAe,IAAMC,GACrBC,YAAa,IAAMC,GACnBC,eAAgB,IAAMC,GACtBC,QAAS,IAAMC,GACfC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,YAAa,IAAMC,GACnBC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,OAAQ,IAAMC,GACdC,OAAQ,IAAMC,GACdC,gBAAiB,IAAMC,GACvBC,OAAQ,IAAMC,GACdC,gBAAiB,IAAMC,GACvBC,sBAAuB,IAAMC,GAC7BC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,aAAc,IAAMC,GACpBC,QAAS,IAAMC,GACfC,OAAQ,IAAMC,GACdC,WAAY,IAAMC,GAClBC,cAAe,IAAMC,GACrBC,gBAAiB,IAAMC,GACvBC,aAAc,IAAMC,GACpBC,gBAAiB,IAAMC,GACvBC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,KAAM,IAAMC,GACZC,WAAY,IAAMC,GAClBC,2BAA4B,IAAMC,GAClCC,QAAS,IAAMC,GACfC,iBAAkB,IAAMC,GACxBC,IAAK,IAAMC,GACXC,SAAU,IAAMC,GAChBC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,OAAQ,IAAMC,GACdC,IAAK,IAAMC,GACXC,gBAAiB,IAAMC,GACvBC,eAAgB,IAAMC,GACtBC,oBAAqB,IAAMC,GAC3BC,OAAQ,IAAMC,GACdC,YAAa,IAAMC,GACnBC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,IAAK,IAAMC,GACXC,cAAe,IAAMC,GACrBC,IAAK,IAAMC,GACXC,WAAY,IAAMC,GAClBC,MAAO,IAAMC,GACbC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,YAAa,IAAMC,GACnBC,mBAAoB,IAAMC,GAC1BC,MAAO,IAAMC,GACbC,SAAU,IAAMC,GAChBC,eAAgB,IAAMC,GACtBC,MAAO,IAAMC,GACbC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,YAAa,IAAMC,GACnBC,WAAY,IAAMC,GAClBC,YAAa,IAAMC,GACnBC,UAAW,IAAMC,GACjBC,qBAAsB,IAAMC,GAC5BC,gBAAiB,IAAMC,GACvBC,WAAY,IAAMC,GAClBC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,aAAc,IAAMC,GACpBC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,YAAa,IAAMC,GACnBC,GAAI,IAAMC,GACVC,MAAO,IAAMC,GACbC,SAAU,IAAMC,GAChBC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,aAAc,IAAMC,GACpBC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,UAAW,IAAMC,GACjBC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,eAAgB,IAAMC,GACtBC,mBAAoB,IAAMC,GAC1BC,2BAA4B,IAAMC,GAClCC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,UAAW,IAAMC,GACjBC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,UAAW,IAAMC,GACjBC,WAAY,IAAMC,GAClBC,OAAQ,IAAMC,GACdC,WAAY,IAAMC,GAClBC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,kBAAmB,IAAMC,GACzBC,QAAS,IAAMC,GACfC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,IAAK,IAAMC,GACXC,QAAS,IAAMC,GACfC,cAAe,IAAMC,GACrBC,IAAK,IAAMC,GACXC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,IAAK,IAAMC,GACXC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,SAAU,IAAMC,GAChBC,OAAQ,IAAMC,GACdC,KAAM,IAAMC,GACZC,SAAU,IAAMC,GAChBC,GAAI,IAAMC,GACVC,aAAc,IAAMC,GACpBC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,IAAK,IAAMC,GACXC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,QAAS,IAAMC,GACfC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,qBAAsB,IAAMC,GAC5BC,KAAM,IAAMC,GACZC,YAAa,IAAMC,GACnBC,aAAc,IAAMC,GACpBC,qBAAsB,IAAMC,GAC5BC,cAAe,IAAMC,GACrBC,iBAAkB,IAAMC,GACxBC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,WAAY,IAAMC,GAClBC,gBAAiB,IAAMC,GACvBC,iBAAkB,IAAMC,GACxBC,eAAgB,IAAMC,GACtBC,WAAY,IAAMC,GAClBC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,cAAe,IAAMC,GACrBC,QAAS,IAAMC,GACfC,QAAS,IAAMC,GACfC,UAAW,IAAMC,GACjBC,UAAW,IAAMC,GACjBC,UAAW,IAAMC,GACjBC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,MAAO,IAAMC,GACbC,OAAQ,IAAMC,GACdC,UAAW,IAAMC,GACjBC,aAAc,IAAMC,GACpBC,aAAc,IAAMC,GACpBC,KAAM,IAAMC,GACZC,gBAAiB,IAAMC,GACvBC,cAAe,IAAMC,GACrBC,WAAY,IAAMC,GAClBC,YAAa,IAAMC,GACnBC,gBAAiB,IAAMC,GACvBC,YAAa,IAAMC,GACnBC,aAAc,IAAMC,GACpBC,gBAAiB,IAAMC,GACvBC,eAAgB,IAAMC,GACtBC,OAAQ,IAAMC,GACdC,QAAS,IAAMC,GACfC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,QAAS,IAAMC,GACfC,QAAS,IAAMC,GACfC,QAAS,IAAMC,GACfC,QAAS,IAAMC,GACfC,WAAY,IAAMC,GAClBC,QAAS,IAAMC,GACfC,SAAU,IAAMC,GAChBC,eAAgB,IAAMC,GACtBC,OAAQ,IAAMC,GACdC,cAAe,IAAMC,GACrBC,SAAU,IAAMC,GAChBC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,kBAAmB,IAAMC,GACzBC,QAAS,IAAMC,GACfC,MAAO,IAAMC,GACbC,KAAM,IAAMC,GACZC,aAAc,IAAMC,GACpBC,OAAQ,IAAMC,GACdC,IAAK,IAAMC,GACXC,IAAK,IAAMC,GACXC,WAAY,IAAMC,GAClBC,IAAK,IAAMC,GACXC,KAAM,IAAMC,GACZC,OAAQ,IAAMC,GACdC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,SAAU,IAAMC,GAChBC,oBAAqB,IAAMC,GAC3BC,YAAa,IAAMC,GACnBC,UAAW,IAAMC,GACjBC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,KAAM,IAAMC,GACZC,MAAO,IAAMC,GACbC,UAAW,IAAMC,GACjBC,gBAAiB,IAAMC,GACvBC,OAAQ,IAAMC,GACdC,mBAAoB,IAAMC,GAC1BC,iBAAkB,IAAMC,GACxBC,mBAAoB,IAAMC,GAC1BC,QAAS,IAAMC,GACfC,WAAY,IAAMC,GAClBC,WAAY,IAAMC,GAClBC,KAAM,IAAMC,GACZC,aAAc,IAAMC,GACpBC,cAAe,IAAMC,GACrBC,SAAU,IAAMC,GAChBC,cAAe,IAAMC,GACrBC,QAAS,IAAMC,IACfC,kBAAmB,IAAMC,GACzBC,aAAc,IAAMC,GACpBC,YAAa,IAAMC,GACnBC,aAAc,IAAMC,GACpBC,cAAe,IAAMC,GACrBC,MAAO,IAAMC,GACbC,WAAY,IAAMC,GAClBC,YAAa,IAAMC,GACnBC,MAAO,IAAMC,GACbC,WAAY,IAAMC,GAClBC,MAAO,IAAMC,GACbC,UAAW,IAAMC,KAEnB,IAAIC,EAAK5/B,OAAO6/B,OACZC,EAAK9/B,OAAOC,eACZ8/B,EAAK//B,OAAOggC,yBACZC,EAAKjgC,OAAOkgC,oBACZC,EAAKngC,OAAOogC,eACZC,EAAKrgC,OAAOsgC,UAAUC,eACtBC,EAAK,CAACC,EAAGC,IAAO,KAAOA,GAAMD,GAAGC,EAAK,CAAEC,QAAS,KAAMA,QAASD,GAAKA,EAAGC,SACvEC,EAAK,CAACH,EAAGC,KACX,IAAK,IAAIG,KAAKH,EACZZ,EAAGW,EAAGI,EAAG,CAAEjgC,IAAK8/B,EAAGG,GAAIvgC,YAAY,KAEnCwgC,EAAK,CAACL,EAAGC,EAAIG,EAAGE,KAClB,GAAIL,GAAmB,iBAANA,GAA+B,mBAANA,EACxC,IAAK,IAAIM,KAAKf,EAAGS,IACdL,EAAGh/B,KAAKo/B,EAAGO,IAAMA,IAAMH,GAAKf,EAAGW,EAAGO,EAAG,CAAEpgC,IAAK,IAAM8/B,EAAGM,GAAI1gC,aAAcygC,EAAIhB,EAAGW,EAAIM,KAAOD,EAAEzgC,aAChG,OAAOmgC,GAELQ,EAAK,CAACR,EAAGC,EAAIG,KAAOA,EAAS,MAALJ,EAAYb,EAAGO,EAAGM,IAAM,GAAIK,GAAGJ,GAAOD,GAAMA,EAAES,WAAgEL,EAAnDf,EAAGe,EAAG,UAAW,CAAExgC,MAAOogC,EAAGngC,YAAY,IAAamgC,IACzIU,EAAKX,EAAG,CAACY,EAAKC,KAChBA,EAAGV,QAAUW,EACb,IAAIC,EAAK,KACT,IACEA,EAAK,IAAIC,YAAYC,SAAS,IAAID,YAAYE,OAAO,IAAIC,WAAW,CAAC,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,GAAI,EAAG,IAAK,MAAO,IAAIhB,QAC1sC,MAAOF,IAET,SAASa,EAAGb,EAAGC,EAAIG,GACjBzhC,KAAKwiC,IAAU,EAAJnB,EAAOrhC,KAAKyiC,KAAY,EAALnB,EAAQthC,KAAK0iC,WAAajB,EAI1D,SAASkB,EAAGtB,GACV,OAA+B,KAAvBA,GAAKA,EAAEuB,YAHjBV,EAAGhB,UAAU0B,WACbhiC,OAAOC,eAAeqhC,EAAGhB,UAAW,aAAc,CAAEjgC,OAAO,IAI3DihC,EAAGW,OAASF,EACZ,IAAIG,EAAK,GAAIC,EAAK,GAClB,SAASC,EAAG3B,EAAGC,GACb,IAAIG,EAAGE,EAAGC,EACV,OAAON,GAAMD,KAAO,GAAIO,EAAI,GAAKP,GAAKA,EAAI,OAASM,EAAIoB,EAAG1B,GAAIM,GAAKA,GAAKF,EAAIwB,EAAG5B,GAAQ,EAAJA,GAAS,GAAK,EAAI,GAAG,GAAOO,IAAMmB,EAAG1B,GAAKI,GAAIA,KAAOJ,GAAK,GAAIO,GAAK,KAAOP,GAAKA,EAAI,OAASM,EAAImB,EAAGzB,GAAIM,GAAKA,GAAKF,EAAIwB,EAAG5B,EAAGA,EAAI,GAAK,EAAI,GAAG,GAAQO,IAAMkB,EAAGzB,GAAKI,GAAIA,IAG1P,SAASyB,EAAG7B,EAAGC,GACb,GAAIlX,MAAMiX,GACR,OAAOC,EAAK6B,EAAKC,EACnB,GAAI9B,EAAI,CACN,GAAID,EAAI,EACN,OAAO8B,EACT,GAAI9B,GAAKgC,EACP,OAAOC,MACJ,CACL,GAAIjC,IAAMkC,EACR,OAAOC,EACT,GAAInC,EAAI,GAAKkC,EACX,OAAOE,EAEX,OAAOpC,EAAI,EAAI6B,GAAI7B,EAAGC,GAAIhS,MAAQ2T,EAAG5B,EAAIqC,EAAK,EAAGrC,EAAIqC,EAAK,EAAGpC,GAG/D,SAAS2B,EAAG5B,EAAGC,EAAIG,GACjB,OAAO,IAAIS,EAAGb,EAAGC,EAAIG,GAnBvBS,EAAGyB,QAAUX,EAiBbd,EAAG0B,WAAaV,EAIhBhB,EAAG2B,SAAWZ,EACd,IAAIa,EAAKC,KAAK3S,IACd,SAAS4S,EAAG3C,EAAGC,EAAIG,GACjB,GAAiB,IAAbJ,EAAEnhC,OACJ,MAAM+jC,MAAM,gBACd,GAAU,QAAN5C,GAAqB,aAANA,GAA0B,cAANA,GAA2B,cAANA,EAC1D,OAAO+B,EACT,GAAiB,iBAAN9B,GAAkBG,EAAIH,EAAIA,GAAK,GAASA,IAAOA,EAAIG,EAAIA,GAAK,GAAIA,EAAI,GAAK,GAAKA,EACvF,MAAMyC,WAAW,SACnB,IAAIvC,EACJ,IAAKA,EAAIN,EAAE3gC,QAAQ,MAAQ,EACzB,MAAMujC,MAAM,mBACd,GAAU,IAANtC,EACF,OAAOqC,EAAG3C,EAAE8C,UAAU,GAAI7C,EAAIG,GAAGnS,MACnC,IAAK,IAAIsS,EAAIsB,EAAGY,EAAGrC,EAAG,IAAK2C,EAAIhB,EAAIiB,EAAI,EAAGA,EAAIhD,EAAEnhC,OAAQmkC,GAAK,EAAG,CAC9D,IAAIC,EAAIP,KAAK3V,IAAI,EAAGiT,EAAEnhC,OAASmkC,GAAIE,EAAIC,SAASnD,EAAE8C,UAAUE,EAAGA,EAAIC,GAAI7C,GACvE,GAAI6C,EAAI,EAAG,CACT,IAAIG,EAAIvB,EAAGY,EAAGrC,EAAG6C,IACjBF,EAAIA,EAAEpV,IAAIyV,GAAGriC,IAAI8gC,EAAGqB,SAEpBH,EAAIA,EAAEpV,IAAI4S,GAAIwC,EAAIA,EAAEhiC,IAAI8gC,EAAGqB,IAE/B,OAAOH,EAAE1B,SAAWpB,EAAI8C,EAG1B,SAASM,EAAGrD,EAAGC,GACb,MAAmB,iBAALD,EAAgB6B,EAAG7B,EAAGC,GAAkB,iBAALD,EAAgB2C,EAAG3C,EAAGC,GAAM2B,EAAG5B,EAAEmB,IAAKnB,EAAEoB,KAAmB,kBAANnB,EAAkBA,EAAKD,EAAEqB,UAFjIR,EAAGyC,WAAaX,EAIhB9B,EAAG0C,UAAYF,EACf,IAAIG,EAAK,MAAOC,EAAK,GAAK,GAAIpB,EAAKmB,EAAKA,EAAIxB,EAAKK,EAAKA,EAAIH,EAAKF,EAAK,EAAG0B,EAAK/B,EAAG8B,GAAK1B,EAAKJ,EAAG,GAC5Fd,EAAG8C,KAAO5B,EACV,IAAID,EAAKH,EAAG,GAAG,GACfd,EAAG+C,MAAQ9B,EACX,IAAI+B,EAAKlC,EAAG,GACZd,EAAGiD,IAAMD,EACT,IAAIE,EAAKpC,EAAG,GAAG,GACfd,EAAGmD,KAAOD,EACV,IAAIE,EAAKtC,GAAI,GACbd,EAAGqD,QAAUD,EACb,IAAI7B,EAAKR,GAAI,EAAG,YAAY,GAC5Bf,EAAGsD,UAAY/B,EACf,IAAIH,EAAKL,GAAI,GAAI,GAAG,GACpBf,EAAGuD,mBAAqBnC,EACxB,IAAIE,EAAKP,EAAG,GAAI,YAAY,GAC5Bf,EAAGwD,UAAYlC,EACf,IAAImC,EAAKzD,EAAGhB,UACZyE,EAAGC,MAAQ,WACT,OAAO5lC,KAAK0iC,SAAW1iC,KAAKwiC,MAAQ,EAAIxiC,KAAKwiC,KAE/CmD,EAAGE,SAAW,WACZ,OAAO7lC,KAAK0iC,UAAY1iC,KAAKyiC,OAAS,GAAKiB,GAAM1jC,KAAKwiC,MAAQ,GAAKxiC,KAAKyiC,KAAOiB,GAAM1jC,KAAKwiC,MAAQ,IAEpGmD,EAAGG,SAAW,SAASxE,GACrB,GAAIA,EAAKA,GAAM,GAAIA,EAAK,GAAK,GAAKA,EAChC,MAAM4C,WAAW,SACnB,GAAIlkC,KAAK+lC,SACP,MAAO,IACT,GAAI/lC,KAAKgmC,aACP,IAAIhmC,KAAKimC,GAAGzC,GAAK,CACf,IAAI/B,EAAIyB,EAAG5B,GAAKK,EAAI3hC,KAAKokB,IAAIqd,GAAIG,EAAID,EAAE3S,IAAIyS,GAAG/G,IAAI16B,MAClD,OAAO2hC,EAAEmE,SAASxE,GAAMM,EAAEgE,QAAQE,SAASxE,GAE3C,MAAO,IAAMthC,KAAKsvB,MAAMwW,SAASxE,GACrC,IAAK,IAAI8C,EAAIlB,EAAGY,EAAGxC,EAAI,GAAIthC,KAAK0iC,UAAW2B,EAAIrkC,KAAMskC,EAAI,KAAQ,CAC/D,IAAIC,EAAIF,EAAEjgB,IAAIggB,GAAIK,EAAIJ,EAAE3J,IAAI6J,EAAEvV,IAAIoV,IAAIwB,UAAY,EAAGM,EAAIzB,EAAEqB,SAASxE,GACpE,GAAI+C,EAAIE,EAAGF,EAAE0B,SACX,OAAOG,EAAI5B,EACb,KAAO4B,EAAEhmC,OAAS,GAChBgmC,EAAI,IAAMA,EACZ5B,EAAI,GAAK4B,EAAI5B,IAGjBqB,EAAGQ,YAAc,WACf,OAAOnmC,KAAKyiC,MAEdkD,EAAGS,oBAAsB,WACvB,OAAOpmC,KAAKyiC,OAAS,GAEvBkD,EAAGU,WAAa,WACd,OAAOrmC,KAAKwiC,KAEdmD,EAAGW,mBAAqB,WACtB,OAAOtmC,KAAKwiC,MAAQ,GAEtBmD,EAAGY,cAAgB,WACjB,GAAIvmC,KAAKgmC,aACP,OAAOhmC,KAAKimC,GAAGzC,GAAM,GAAKxjC,KAAKsvB,MAAMiX,gBACvC,IAAK,IAAIjF,EAAkB,GAAbthC,KAAKyiC,KAAYziC,KAAKyiC,KAAOziC,KAAKwiC,IAAKf,EAAI,GAAIA,EAAI,KAAOH,EAAK,GAAKG,GAAIA,KAEtF,OAAoB,GAAbzhC,KAAKyiC,KAAYhB,EAAI,GAAKA,EAAI,GAEvCkE,EAAGI,OAAS,WACV,OAAqB,IAAd/lC,KAAKyiC,MAA2B,IAAbziC,KAAKwiC,KAEjCmD,EAAGa,IAAMb,EAAGI,OACZJ,EAAGK,WAAa,WACd,OAAQhmC,KAAK0iC,UAAY1iC,KAAKyiC,KAAO,GAEvCkD,EAAGc,WAAa,WACd,OAAOzmC,KAAK0iC,UAAY1iC,KAAKyiC,MAAQ,GAEvCkD,EAAGe,MAAQ,WACT,OAA0B,KAAP,EAAX1mC,KAAKwiC,MAEfmD,EAAGgB,OAAS,WACV,OAA0B,KAAP,EAAX3mC,KAAKwiC,MAEfmD,EAAGiB,OAAS,SAAStF,GACnB,OAAOqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,KAAMthC,KAAK0iC,WAAapB,EAAGoB,UAAY1iC,KAAKyiC,OAAS,KAAO,GAAKnB,EAAGmB,OAAS,KAAO,KAAYziC,KAAKyiC,OAASnB,EAAGmB,MAAQziC,KAAKwiC,MAAQlB,EAAGkB,MAErKmD,EAAGM,GAAKN,EAAGiB,OACXjB,EAAGkB,UAAY,SAASvF,GACtB,OAAQthC,KAAKimC,GAAG3E,IAElBqE,EAAGmB,IAAMnB,EAAGkB,UACZlB,EAAGoB,GAAKpB,EAAGkB,UACXlB,EAAGqB,SAAW,SAAS1F,GACrB,OAAOthC,KAAKinC,KAAK3F,GAAM,GAEzBqE,EAAGuB,GAAKvB,EAAGqB,SACXrB,EAAGwB,gBAAkB,SAAS7F,GAC5B,OAAOthC,KAAKinC,KAAK3F,IAAO,GAE1BqE,EAAGyB,IAAMzB,EAAGwB,gBACZxB,EAAG0B,GAAK1B,EAAGwB,gBACXxB,EAAG2B,YAAc,SAAShG,GACxB,OAAOthC,KAAKinC,KAAK3F,GAAM,GAEzBqE,EAAG4B,GAAK5B,EAAG2B,YACX3B,EAAG6B,mBAAqB,SAASlG,GAC/B,OAAOthC,KAAKinC,KAAK3F,IAAO,GAE1BqE,EAAG8B,IAAM9B,EAAG6B,mBACZ7B,EAAG+B,GAAK/B,EAAG6B,mBACX7B,EAAGgC,QAAU,SAASrG,GACpB,GAAIqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAMthC,KAAKimC,GAAG3E,GACnC,OAAO,EACT,IAAIG,EAAIzhC,KAAKgmC,aAAcrE,EAAIL,EAAG0E,aAClC,OAAOvE,IAAME,GAAK,GAAKF,GAAKE,EAAI,EAAI3hC,KAAK0iC,SAAWpB,EAAGmB,OAAS,EAAIziC,KAAKyiC,OAAS,GAAKnB,EAAGmB,OAASziC,KAAKyiC,MAAQnB,EAAGkB,MAAQ,EAAIxiC,KAAKwiC,MAAQ,GAAK,EAAI,EAAIxiC,KAAK06B,IAAI4G,GAAI0E,cAAgB,EAAI,GAE5LL,EAAGsB,KAAOtB,EAAGgC,QACbhC,EAAGiC,OAAS,WACV,OAAQ5nC,KAAK0iC,UAAY1iC,KAAKimC,GAAGzC,GAAMA,EAAKxjC,KAAK6nC,MAAMzlC,IAAI8iC,IAE7DS,EAAGrW,IAAMqW,EAAGiC,OACZjC,EAAGvjC,IAAM,SAASk/B,GAChBqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IACnB,IAAIG,EAAIzhC,KAAKyiC,OAAS,GAAId,EAAgB,MAAZ3hC,KAAKyiC,KAAcb,EAAI5hC,KAAKwiC,MAAQ,GAAI4B,EAAe,MAAXpkC,KAAKwiC,IAAa6B,EAAI/C,EAAGmB,OAAS,GAAI6B,EAAc,MAAVhD,EAAGmB,KAAc8B,EAAIjD,EAAGkB,MAAQ,GAAIiC,EAAa,MAATnD,EAAGkB,IAAa0D,EAAI,EAAG4B,EAAI,EAAGC,EAAI,EAAGC,EAAI,EACrM,OAAOA,GAAK5D,EAAIK,EAAGsD,GAAKC,IAAM,GAAIA,GAAK,MAAOD,GAAKnG,EAAI2C,EAAGuD,GAAKC,IAAM,GAAIA,GAAK,MAAOD,GAAKnG,EAAI2C,EAAG4B,GAAK4B,IAAM,GAAIA,GAAK,MAAO5B,GAAKzE,EAAI4C,EAAG6B,GAAK,MAAOjD,EAAG8E,GAAK,GAAKC,EAAG9B,GAAK,GAAK4B,EAAG9nC,KAAK0iC,WAExLiD,EAAGsC,SAAW,SAAS3G,GACrB,OAAOqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAMthC,KAAKoC,IAAIk/B,EAAGhS,QAE9CqW,EAAGjL,IAAMiL,EAAGsC,SACZtC,EAAGuC,SAAW,SAAS5G,GACrB,GAAIthC,KAAK+lC,SACP,OAAO3C,EACT,GAAIT,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAMa,EAAI,CAC/B,IAAIV,EAAIU,EAAGnT,IAAIhvB,KAAKwiC,IAAKxiC,KAAKyiC,KAAMnB,EAAGkB,IAAKlB,EAAGmB,MAC/C,OAAOQ,EAAGxB,EAAGU,EAAGgG,WAAYnoC,KAAK0iC,UAEnC,GAAIpB,EAAGyE,SACL,OAAO3C,EACT,GAAIpjC,KAAKimC,GAAGzC,GACV,OAAOlC,EAAGoF,QAAUlD,EAAKJ,EAC3B,GAAI9B,EAAG2E,GAAGzC,GACR,OAAOxjC,KAAK0mC,QAAUlD,EAAKJ,EAC7B,GAAIpjC,KAAKgmC,aACP,OAAO1E,EAAG0E,aAAehmC,KAAKsvB,MAAMN,IAAIsS,EAAGhS,OAAStvB,KAAKsvB,MAAMN,IAAIsS,GAAIhS,MACzE,GAAIgS,EAAG0E,aACL,OAAOhmC,KAAKgvB,IAAIsS,EAAGhS,OAAOA,MAC5B,GAAItvB,KAAKknC,GAAGnC,IAAOzD,EAAG4F,GAAGnC,GACvB,OAAO7B,EAAGljC,KAAK6lC,WAAavE,EAAGuE,WAAY7lC,KAAK0iC,UAClD,IAAIf,EAAI3hC,KAAKyiC,OAAS,GAAIb,EAAgB,MAAZ5hC,KAAKyiC,KAAc2B,EAAIpkC,KAAKwiC,MAAQ,GAAI6B,EAAe,MAAXrkC,KAAKwiC,IAAa8B,EAAIhD,EAAGmB,OAAS,GAAI8B,EAAc,MAAVjD,EAAGmB,KAAcgC,EAAInD,EAAGkB,MAAQ,GAAI0D,EAAa,MAAT5E,EAAGkB,IAAasF,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGI,EAAI,EACrM,OAAOA,GAAK/D,EAAI6B,EAAG8B,GAAKI,IAAM,GAAIA,GAAK,MAAOJ,GAAK5D,EAAI8B,EAAG6B,GAAKC,IAAM,GAAIA,GAAK,MAAOA,GAAK3D,EAAII,EAAGsD,GAAKC,IAAM,GAAIA,GAAK,MAAOD,GAAKnG,EAAIsE,EAAG4B,GAAKC,IAAM,GAAIA,GAAK,MAAOA,GAAK3D,EAAIK,EAAGqD,GAAKC,IAAM,GAAIA,GAAK,MAAOA,GAAK1D,EAAIE,EAAGuD,GAAKC,IAAM,GAAIA,GAAK,MAAOD,GAAKnG,EAAIuE,EAAItE,EAAI6C,EAAIL,EAAIG,EAAIF,EAAIC,EAAGwD,GAAK,MAAO7E,EAAG+E,GAAK,GAAKI,EAAGN,GAAK,GAAKC,EAAG/nC,KAAK0iC,WAErUiD,EAAG3W,IAAM2W,EAAGuC,SACZvC,EAAG0C,OAAS,SAAS/G,GACnB,GAAIqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAMA,EAAGyE,SAC9B,MAAM9B,MAAM,oBACd,GAAI9B,EAAI,CACN,IAAKniC,KAAK0iC,WAA2B,aAAf1iC,KAAKyiC,OAAoC,IAAZnB,EAAGkB,MAA2B,IAAblB,EAAGmB,KACrE,OAAOziC,KACT,IAAIyhC,GAAKzhC,KAAK0iC,SAAWP,EAAGmG,MAAQnG,EAAGoG,OAAOvoC,KAAKwiC,IAAKxiC,KAAKyiC,KAAMnB,EAAGkB,IAAKlB,EAAGmB,MAC9E,OAAOQ,EAAGxB,EAAGU,EAAGgG,WAAYnoC,KAAK0iC,UAEnC,GAAI1iC,KAAK+lC,SACP,OAAO/lC,KAAK0iC,SAAWS,EAAKC,EAC9B,IAAIzB,EAAGC,EAAGwC,EACV,GAAIpkC,KAAK0iC,SAAU,CACjB,GAAIpB,EAAGoB,WAAapB,EAAKA,EAAGkH,cAAelH,EAAGiG,GAAGvnC,MAC/C,OAAOmjC,EACT,GAAI7B,EAAGiG,GAAGvnC,KAAKyoC,KAAK,IAClB,OAAOrD,EACThB,EAAIjB,MACC,CACL,GAAInjC,KAAKimC,GAAGzC,GAAK,CACf,GAAIlC,EAAG2E,GAAGf,IAAO5D,EAAG2E,GAAGX,GACrB,OAAO9B,EACT,GAAIlC,EAAG2E,GAAGzC,GACR,OAAO0B,EACT,IAAIb,EAAIrkC,KAAK0oC,IAAI,GACjB,OAAO/G,EAAI0C,EAAEjgB,IAAIkd,GAAIqH,IAAI,GAAIhH,EAAEsE,GAAG7C,GAAM9B,EAAG0E,aAAed,EAAKI,GAAM1D,EAAI5hC,KAAK06B,IAAI4G,EAAGtS,IAAI2S,IAAKyC,EAAIzC,EAAEv/B,IAAIw/B,EAAExd,IAAIkd,IAAM8C,GAC/G,GAAI9C,EAAG2E,GAAGzC,GACf,OAAOxjC,KAAK0iC,SAAWS,EAAKC,EAC9B,GAAIpjC,KAAKgmC,aACP,OAAO1E,EAAG0E,aAAehmC,KAAKsvB,MAAMlL,IAAIkd,EAAGhS,OAAStvB,KAAKsvB,MAAMlL,IAAIkd,GAAIhS,MACzE,GAAIgS,EAAG0E,aACL,OAAOhmC,KAAKokB,IAAIkd,EAAGhS,OAAOA,MAC5B8U,EAAIhB,EAEN,IAAKxB,EAAI5hC,KAAM4hC,EAAE6F,IAAInG,IAAO,CAC1BK,EAAIoC,KAAK3W,IAAI,EAAG2W,KAAK7c,MAAM0a,EAAEiE,WAAavE,EAAGuE,aAC7C,IAAK,IAAIvB,EAAIP,KAAK3jB,KAAK2jB,KAAKrY,IAAIiW,GAAKoC,KAAK6E,KAAMrE,EAAID,GAAK,GAAK,EAAIR,EAAG,EAAGQ,EAAI,IAAKG,EAAIvB,EAAGvB,GAAIuE,EAAIzB,EAAEzV,IAAIsS,GAAK4E,EAAEF,cAAgBE,EAAEqB,GAAG3F,IAChID,GAAK4C,EAAGE,EAAIvB,EAAGvB,EAAG3hC,KAAK0iC,UAAWwD,EAAIzB,EAAEzV,IAAIsS,GAC9CmD,EAAEsB,WAAatB,EAAIS,GAAKd,EAAIA,EAAEhiC,IAAIqiC,GAAI7C,EAAIA,EAAElH,IAAIwL,GAElD,OAAO9B,GAETuB,EAAGvhB,IAAMuhB,EAAG0C,OACZ1C,EAAGkD,OAAS,SAASvH,GACnB,GAAIqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAMa,EAAI,CAC/B,IAAIV,GAAKzhC,KAAK0iC,SAAWP,EAAG2G,MAAQ3G,EAAG4G,OAAO/oC,KAAKwiC,IAAKxiC,KAAKyiC,KAAMnB,EAAGkB,IAAKlB,EAAGmB,MAC9E,OAAOQ,EAAGxB,EAAGU,EAAGgG,WAAYnoC,KAAK0iC,UAEnC,OAAO1iC,KAAK06B,IAAI16B,KAAKokB,IAAIkd,GAAItS,IAAIsS,KAEnCqE,EAAGjX,IAAMiX,EAAGkD,OACZlD,EAAGqD,IAAMrD,EAAGkD,OACZlD,EAAGkC,IAAM,WACP,OAAO5E,GAAIjjC,KAAKwiC,KAAMxiC,KAAKyiC,KAAMziC,KAAK0iC,WAExCiD,EAAGsD,IAAM,SAAS3H,GAChB,OAAOqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAM2B,EAAGjjC,KAAKwiC,IAAMlB,EAAGkB,IAAKxiC,KAAKyiC,KAAOnB,EAAGmB,KAAMziC,KAAK0iC,WAElFiD,EAAGuD,GAAK,SAAS5H,GACf,OAAOqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAM2B,EAAGjjC,KAAKwiC,IAAMlB,EAAGkB,IAAKxiC,KAAKyiC,KAAOnB,EAAGmB,KAAMziC,KAAK0iC,WAElFiD,EAAGwD,IAAM,SAAS7H,GAChB,OAAOqB,EAAGrB,KAAQA,EAAKoD,EAAGpD,IAAM2B,EAAGjjC,KAAKwiC,IAAMlB,EAAGkB,IAAKxiC,KAAKyiC,KAAOnB,EAAGmB,KAAMziC,KAAK0iC,WAElFiD,EAAGyD,UAAY,SAAS9H,GACtB,OAAOqB,EAAGrB,KAAQA,EAAKA,EAAGsE,SAAyB,KAAdtE,GAAM,IAAYthC,KAAOshC,EAAK,GAAK2B,EAAGjjC,KAAKwiC,KAAOlB,EAAIthC,KAAKyiC,MAAQnB,EAAKthC,KAAKwiC,MAAQ,GAAKlB,EAAIthC,KAAK0iC,UAAYO,EAAG,EAAGjjC,KAAKwiC,KAAOlB,EAAK,GAAIthC,KAAK0iC,WAEtLiD,EAAGgD,IAAMhD,EAAGyD,UACZzD,EAAG0D,WAAa,SAAS/H,GACvB,OAAOqB,EAAGrB,KAAQA,EAAKA,EAAGsE,SAAyB,KAAdtE,GAAM,IAAYthC,KAAOshC,EAAK,GAAK2B,EAAGjjC,KAAKwiC,MAAQlB,EAAKthC,KAAKyiC,MAAQ,GAAKnB,EAAIthC,KAAKyiC,MAAQnB,EAAIthC,KAAK0iC,UAAYO,EAAGjjC,KAAKyiC,MAAQnB,EAAK,GAAIthC,KAAKyiC,MAAQ,EAAI,GAAK,EAAGziC,KAAK0iC,WAE9MiD,EAAG+C,IAAM/C,EAAG0D,WACZ1D,EAAG2D,mBAAqB,SAAShI,GAC/B,GAAIqB,EAAGrB,KAAQA,EAAKA,EAAGsE,SAAUtE,GAAM,GAAW,IAAPA,EACzC,OAAOthC,KACT,IAAIyhC,EAAIzhC,KAAKyiC,KACb,GAAInB,EAAK,GAAI,CACX,IAAIK,EAAI3hC,KAAKwiC,IACb,OAAOS,EAAGtB,IAAML,EAAKG,GAAK,GAAKH,EAAIG,IAAMH,EAAIthC,KAAK0iC,UAElD,OAAmBO,EAAL,KAAP3B,EAAeG,EAA0BA,IAAMH,EAAK,GAAlC,EAAGthC,KAAK0iC,WAErCiD,EAAG8C,KAAO9C,EAAG2D,mBACb3D,EAAG4D,MAAQ5D,EAAG2D,mBACd3D,EAAG6D,SAAW,WACZ,OAAOxpC,KAAK0iC,SAAWO,EAAGjjC,KAAKwiC,IAAKxiC,KAAKyiC,MAAM,GAASziC,MAE1D2lC,EAAG6C,WAAa,WACd,OAAOxoC,KAAK0iC,SAAW1iC,KAAOijC,EAAGjjC,KAAKwiC,IAAKxiC,KAAKyiC,MAAM,IAExDkD,EAAG8D,QAAU,SAASnI,GACpB,OAAOA,EAAKthC,KAAK0pC,YAAc1pC,KAAK2pC,aAEtChE,EAAG+D,UAAY,WACb,IAAIpI,EAAKthC,KAAKyiC,KAAMhB,EAAIzhC,KAAKwiC,IAC7B,MAAO,CAAK,IAAJf,EAASA,IAAM,EAAI,IAAKA,IAAM,GAAK,IAAKA,IAAM,GAAS,IAALH,EAAUA,IAAO,EAAI,IAAKA,IAAO,GAAK,IAAKA,IAAO,KAE9GqE,EAAGgE,UAAY,WACb,IAAIrI,EAAKthC,KAAKyiC,KAAMhB,EAAIzhC,KAAKwiC,IAC7B,MAAO,CAAClB,IAAO,GAAIA,IAAO,GAAK,IAAKA,IAAO,EAAI,IAAU,IAALA,EAAUG,IAAM,GAAIA,IAAM,GAAK,IAAKA,IAAM,EAAI,IAAS,IAAJA,IAEzGS,EAAG0H,UAAY,SAAStI,EAAIG,EAAGE,GAC7B,OAAOA,EAAIO,EAAG2H,YAAYvI,EAAIG,GAAKS,EAAG4H,YAAYxI,EAAIG,IAExDS,EAAG2H,YAAc,SAASvI,EAAIG,GAC5B,OAAO,IAAIS,EAAGZ,EAAG,GAAKA,EAAG,IAAM,EAAIA,EAAG,IAAM,GAAKA,EAAG,IAAM,GAAIA,EAAG,GAAKA,EAAG,IAAM,EAAIA,EAAG,IAAM,GAAKA,EAAG,IAAM,GAAIG,IAEhHS,EAAG4H,YAAc,SAASxI,EAAIG,GAC5B,OAAO,IAAIS,EAAGZ,EAAG,IAAM,GAAKA,EAAG,IAAM,GAAKA,EAAG,IAAM,EAAIA,EAAG,GAAIA,EAAG,IAAM,GAAKA,EAAG,IAAM,GAAKA,EAAG,IAAM,EAAIA,EAAG,GAAIG,MAG9GsI,EAAK3I,EAAG,QAER4I,EAAK5I,EAAG,QAER6I,EAAK7I,EAAG,CAAC8I,EAAIC,MACf,SAAU9I,EAAGC,EAAIG,GACf,SAASE,EAAE2C,GACT,IAAIC,EAAIvkC,KAAMykC,EAAIJ,IAClBE,EAAE6F,KAAO,WACP,IAAIlE,EAAI,QAAU3B,EAAE8F,GAAW,uBAAN9F,EAAE2B,EAC3B,OAAO3B,EAAE8F,GAAK9F,EAAE+F,GAAI/F,EAAE+F,GAAK/F,EAAEliB,GAAIkiB,EAAEliB,GAAK6jB,GAAK3B,EAAE2B,EAAQ,EAAJA,IAClD3B,EAAE2B,EAAI,EAAG3B,EAAE8F,GAAK5F,EAAE,KAAMF,EAAE+F,GAAK7F,EAAE,KAAMF,EAAEliB,GAAKoiB,EAAE,KAAMF,EAAE8F,IAAM5F,EAAEH,GAAIC,EAAE8F,GAAK,IAAM9F,EAAE8F,IAAM,GAAI9F,EAAE+F,IAAM7F,EAAEH,GAAIC,EAAE+F,GAAK,IAAM/F,EAAE+F,IAAM,GAAI/F,EAAEliB,IAAMoiB,EAAEH,GAAIC,EAAEliB,GAAK,IAAMkiB,EAAEliB,IAAM,GAAIoiB,EAAI,KAEpL,SAAS7C,EAAE0C,EAAGC,GACZ,OAAOA,EAAE2B,EAAI5B,EAAE4B,EAAG3B,EAAE8F,GAAK/F,EAAE+F,GAAI9F,EAAE+F,GAAKhG,EAAEgG,GAAI/F,EAAEliB,GAAKiiB,EAAEjiB,GAAIkiB,EAE3D,SAASH,EAAEE,EAAGC,GACZ,IAAIE,EAAI,IAAI9C,EAAE2C,GAAI4B,EAAI3B,GAAKA,EAAEgG,MAAOzC,EAAIrD,EAAE2F,KAC1C,OAAOtC,EAAE0C,MAAQ,WACf,OAAkB,WAAX/F,EAAE2F,OAAsB,GAC9BtC,EAAE2C,OAAS,WACZ,OAAO3C,IAA4B,uBAAf,QAANA,IAAgB,IAC7BA,EAAE4C,MAAQ5C,EAAG5B,IAAkB,iBAALA,GAAiBtE,EAAEsE,EAAGzB,GAAIqD,EAAEyC,MAAQ,WAC/D,OAAO3I,EAAE6C,EAAG,MACVqD,EAEN,SAASzD,IACP,IAAIC,EAAI,WAAYC,EAAI,SAASE,GAC/BA,EAAIhkC,OAAOgkC,GACX,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAEvkC,OAAQgmC,IAAK,CACjC5B,GAAKG,EAAEkG,WAAWzE,GAClB,IAAI4B,EAAI,mBAAsBxD,EAC9BA,EAAIwD,IAAM,EAAGA,GAAKxD,EAAGwD,GAAKxD,EAAGA,EAAIwD,IAAM,EAAGA,GAAKxD,EAAGA,GAAS,WAAJwD,EAEzD,OAAmB,wBAAXxD,IAAM,IAEhB,OAAOC,EAETjD,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAK6qC,KAAOzG,GAnCnB,CAoCG8F,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAVW,QAAwBA,UAEjEC,EAAK3J,EAAG,CAAC4J,EAAIC,MACf,SAAU5J,EAAGC,EAAIG,GACf,SAASE,EAAE0C,GACT,IAAIC,EAAItkC,KAAMukC,EAAI,GAClBD,EAAE4G,EAAI,EAAG5G,EAAEjG,EAAI,EAAGiG,EAAE6G,EAAI,EAAG7G,EAAEjmB,EAAI,EAAGimB,EAAE8F,KAAO,WAC3C,IAAIlE,EAAI5B,EAAE4G,EAAI5G,EAAE4G,GAAK,GACrB,OAAO5G,EAAE4G,EAAI5G,EAAEjG,EAAGiG,EAAEjG,EAAIiG,EAAE6G,EAAG7G,EAAE6G,EAAI7G,EAAEjmB,EAAGimB,EAAEjmB,GAAKimB,EAAEjmB,IAAM,GAAK6nB,EAAIA,IAAM,GACrE7B,KAAW,EAAJA,GAASC,EAAE4G,EAAI7G,EAAIE,GAAKF,EAClC,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAErkC,OAAS,GAAIukC,IACjCH,EAAE4G,GAAuB,EAAlB3G,EAAEoG,WAAWlG,GAAQH,EAAE8F,OAElC,SAASxI,EAAEyC,EAAGC,GACZ,OAAOA,EAAE4G,EAAI7G,EAAE6G,EAAG5G,EAAEjG,EAAIgG,EAAEhG,EAAGiG,EAAE6G,EAAI9G,EAAE8G,EAAG7G,EAAEjmB,EAAIgmB,EAAEhmB,EAAGimB,EAErD,SAASF,EAAEC,EAAGC,GACZ,IAAIC,EAAI,IAAI5C,EAAE0C,GAAII,EAAIH,GAAKA,EAAEiG,MAAOrE,EAAI,WACtC,OAAQ3B,EAAE6F,SAAW,GAAK,YAE5B,OAAOlE,EAAEuE,OAAS,WAChB,GACE,IAAI3C,EAAIvD,EAAE6F,SAAW,GAAIrC,GAAKxD,EAAE6F,SAAW,GAAK,WAAYpC,GAAKF,EAAIC,IAAM,GAAK,UACrE,IAANC,GACP,OAAOA,GACN9B,EAAEsE,MAAQjG,EAAE6F,KAAMlE,EAAEwE,MAAQxE,EAAGzB,IAAkB,iBAALA,GAAiB7C,EAAE6C,EAAGF,GAAI2B,EAAEqE,MAAQ,WACjF,OAAO3I,EAAE2C,EAAG,MACV2B,EAEN5E,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAKorC,OAAShH,GA5BrB,CA6BG4G,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAVH,QAAwBA,UAEjEO,EAAKjK,EAAG,CAACkK,EAAIC,MACf,SAAUlK,EAAGC,EAAIG,GACf,SAASE,EAAE0C,GACT,IAAIC,EAAItkC,KAAMukC,EAAI,GAClBD,EAAE8F,KAAO,WACP,IAAIlE,EAAI5B,EAAE4G,EAAI5G,EAAE4G,IAAM,EACtB,OAAO5G,EAAE4G,EAAI5G,EAAEjG,EAAGiG,EAAEjG,EAAIiG,EAAE6G,EAAG7G,EAAE6G,EAAI7G,EAAEjmB,EAAGimB,EAAEjmB,EAAIimB,EAAEkH,GAAIlH,EAAE0D,EAAI1D,EAAE0D,EAAI,OAAS,IAAM1D,EAAEkH,EAAIlH,EAAEkH,EAAIlH,EAAEkH,GAAK,EAAKtF,EAAIA,GAAK,GAAM,GACrH5B,EAAE4G,EAAI,EAAG5G,EAAEjG,EAAI,EAAGiG,EAAE6G,EAAI,EAAG7G,EAAEjmB,EAAI,EAAGimB,EAAEkH,EAAI,EAAGnH,KAAW,EAAJA,GAASC,EAAE4G,EAAI7G,EAAIE,GAAKF,EAC/E,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAErkC,OAAS,GAAIukC,IACjCH,EAAE4G,GAAuB,EAAlB3G,EAAEoG,WAAWlG,GAAQA,GAAKF,EAAErkC,SAAWokC,EAAE0D,EAAI1D,EAAE4G,GAAK,GAAK5G,EAAE4G,IAAM,GAAI5G,EAAE8F,OAElF,SAASxI,EAAEyC,EAAGC,GACZ,OAAOA,EAAE4G,EAAI7G,EAAE6G,EAAG5G,EAAEjG,EAAIgG,EAAEhG,EAAGiG,EAAE6G,EAAI9G,EAAE8G,EAAG7G,EAAEjmB,EAAIgmB,EAAEhmB,EAAGimB,EAAEkH,EAAInH,EAAEmH,EAAGlH,EAAE0D,EAAI3D,EAAE2D,EAAG1D,EAE3E,SAASF,EAAEC,EAAGC,GACZ,IAAIC,EAAI,IAAI5C,EAAE0C,GAAII,EAAIH,GAAKA,EAAEiG,MAAOrE,EAAI,WACtC,OAAQ3B,EAAE6F,SAAW,GAAK,YAE5B,OAAOlE,EAAEuE,OAAS,WAChB,GACE,IAAI3C,EAAIvD,EAAE6F,SAAW,GAAIrC,GAAKxD,EAAE6F,SAAW,GAAK,WAAYpC,GAAKF,EAAIC,IAAM,GAAK,UACrE,IAANC,GACP,OAAOA,GACN9B,EAAEsE,MAAQjG,EAAE6F,KAAMlE,EAAEwE,MAAQxE,EAAGzB,IAAkB,iBAALA,GAAiB7C,EAAE6C,EAAGF,GAAI2B,EAAEqE,MAAQ,WACjF,OAAO3I,EAAE2C,EAAG,MACV2B,EAEN5E,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAKyrC,OAASrH,GA5BrB,CA6BGkH,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAVT,QAAwBA,UAEjEY,EAAKtK,EAAG,CAACuK,EAAIC,MACf,SAAUvK,EAAGC,EAAIG,GACf,SAASE,EAAE0C,GACT,IAAIC,EAAItkC,KAKR,SAASukC,EAAEE,EAAGyB,GACZ,IAAI4B,EAAME,EAAI,GACd,GAAI9B,KAAW,EAAJA,GACL8B,EAAE,GAAK9B,OAEX,IAAKA,EAAI,GAAKA,EAAG4B,EAAI,EAAGA,EAAI5B,EAAEhmC,SAAU4nC,EACtCE,EAAM,EAAJF,GAASE,EAAM,EAAJF,IAAU,GAAK5B,EAAEyE,WAAW7C,GAAKE,EAAEF,EAAI,EAAI,IAAM,GAClE,KAAOE,EAAE9nC,OAAS,GAChB8nC,EAAE6D,KAAK,GACT,IAAK/D,EAAI,EAAGA,EAAI,GAAc,IAATE,EAAEF,KAAYA,GAEnC,IAAU,GAALA,EAAaE,EAAE,IAAM,EAAQA,EAAEF,GAAIrD,EAAEyG,EAAIlD,EAAGvD,EAAEH,EAAI,EAAGwD,EAAI,IAAKA,EAAI,IAAKA,EAC1ErD,EAAE2F,OAhBN9F,EAAE8F,KAAO,WACP,IAAsBtC,EAAGC,EAArBtD,EAAIH,EAAE4G,EAAGhF,EAAI5B,EAAEA,EACnB,OAAOwD,EAAIrD,EAAEyB,GAAI4B,GAAKA,IAAM,EAAGC,EAAID,EAAIA,GAAK,GAAIA,EAAIrD,EAAEyB,EAAI,EAAI,GAAI6B,GAAKD,EAAIA,IAAM,GAAIA,EAAIrD,EAAEyB,EAAI,EAAI,GAAI6B,GAAKD,EAAIA,IAAM,EAAGA,EAAIrD,EAAEyB,EAAI,EAAI,GAAI6B,GAAKD,EAAIA,GAAK,EAAGA,EAAIrD,EAAEyB,EAAI,EAAI,GAAI4B,GAAQA,GAAK,GAAIC,GAAKD,EAAIA,GAAK,EAAGrD,EAAEyB,GAAK6B,EAAGzD,EAAEA,EAAI4B,EAAI,EAAI,EAAG6B,GAgB7OxD,EAAED,EAAGD,GAEP,SAASzC,EAAEyC,EAAGC,GACZ,OAAOA,EAAE4G,EAAI7G,EAAE6G,EAAElT,QAASsM,EAAEA,EAAID,EAAEC,EAAGA,EAEvC,SAASF,EAAEC,EAAGC,GACP,MAALD,IAAcA,GAAqB,IAAIyH,MACvC,IAAIvH,EAAI,IAAI5C,EAAE0C,GAAII,EAAIH,GAAKA,EAAEiG,MAAOrE,EAAI,WACtC,OAAQ3B,EAAE6F,SAAW,GAAK,YAE5B,OAAOlE,EAAEuE,OAAS,WAChB,GACE,IAAI3C,EAAIvD,EAAE6F,SAAW,GAAIrC,GAAKxD,EAAE6F,SAAW,GAAK,WAAYpC,GAAKF,EAAIC,IAAM,GAAK,UACrE,IAANC,GACP,OAAOA,GACN9B,EAAEsE,MAAQjG,EAAE6F,KAAMlE,EAAEwE,MAAQxE,EAAGzB,IAAMA,EAAEyG,GAAKtJ,EAAE6C,EAAGF,GAAI2B,EAAEqE,MAAQ,WAChE,OAAO3I,EAAE2C,EAAG,MACV2B,EAEN5E,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAK+rC,UAAY3H,GA1CxB,CA2CGuH,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAVd,QAAwBA,UAEjER,EAAKlJ,EAAG,CAAC4K,EAAIC,MACf,SAAU5K,EAAGC,EAAIG,GACf,SAASE,EAAE0C,GACT,IAAIC,EAAItkC,KAKR,SAASukC,EAAEE,EAAGyB,GACZ,IAAI4B,EAAGC,EAAGC,EAAGI,EAAG8D,EAAGC,EAAI,GAAIjB,EAAI,IAC/B,IAAKhF,KAAW,EAAJA,IAAU6B,EAAI7B,EAAGA,EAAI,OAASA,GAAQ,KAAM6B,EAAI,EAAGmD,EAAInH,KAAK3W,IAAI8d,EAAGhF,EAAEhmC,SAAU8nC,EAAI,EAAGI,GAAK,GAAIA,EAAI8C,IAAK9C,EAClHlC,IAAM6B,GAAK7B,EAAEyE,YAAYvC,EAAI,IAAMlC,EAAEhmC,SAAgB,IAANkoC,IAAY8D,EAAInE,GAAIA,GAAKA,GAAK,GAAIA,GAAKA,IAAM,GAAIA,GAAKA,GAAK,EAAGA,GAAKA,IAAM,GAAIK,GAAK,IAAM8D,EAAIA,EAAI,WAAa,EAAGpE,EAAIqE,EAAM,IAAJ/D,IAAYL,EAAImE,EAAGlE,EAAS,GAALF,EAASE,EAAI,EAAI,GAC/M,IAAKA,GAAK,MAAQmE,EAAyB,KAAtBjG,GAAKA,EAAEhmC,QAAU,KAAa,GAAI8nC,EAAI,IAAKI,EAAI,IAASA,EAAI,IAAKA,EACpFL,EAAIoE,EAAEnE,EAAI,GAAK,KAAMF,EAAIqE,EAAEnE,EAAIA,EAAI,EAAI,KAAMD,GAAKA,GAAK,GAAID,GAAKA,GAAK,GAAIC,GAAKA,IAAM,GAAID,GAAKA,IAAM,GAAIqE,EAAEnE,GAAKD,EAAID,EACpHrD,EAAEpmB,EAAI6tB,EAAGzH,EAAE2H,EAAID,EAAG1H,EAAEH,EAAI0D,EAV1B1D,EAAE8F,KAAO,WACP,IAA+BrC,EAAGC,EAA9BvD,EAAIH,EAAEjmB,EAAG6nB,EAAI5B,EAAE8H,EAAGtE,EAAIxD,EAAEA,EAC5B,OAAOA,EAAEjmB,EAAIomB,EAAIA,EAAI,WAAa,EAAGuD,EAAI9B,EAAE4B,EAAI,GAAK,KAAMC,EAAI7B,EAAE4B,EAAIA,EAAI,EAAI,KAAME,GAAKA,GAAK,GAAID,GAAKA,GAAK,GAAIC,GAAKA,IAAM,GAAID,GAAKA,IAAM,GAAIC,EAAI9B,EAAE4B,GAAKE,EAAID,EAAGzD,EAAEA,EAAIwD,EAAGE,GAAKvD,EAAIA,IAAM,IAAM,GAU9LF,EAAED,EAAGD,GAEP,SAASzC,EAAEyC,EAAGC,GACZ,OAAOA,EAAEA,EAAID,EAAEC,EAAGA,EAAEjmB,EAAIgmB,EAAEhmB,EAAGimB,EAAE8H,EAAI/H,EAAE+H,EAAEpU,QAASsM,EAElD,SAASF,EAAEC,EAAGC,GACP,MAALD,IAAcA,GAAqB,IAAIyH,MACvC,IAAIvH,EAAI,IAAI5C,EAAE0C,GAAII,EAAIH,GAAKA,EAAEiG,MAAOrE,EAAI,WACtC,OAAQ3B,EAAE6F,SAAW,GAAK,YAE5B,OAAOlE,EAAEuE,OAAS,WAChB,GACE,IAAI3C,EAAIvD,EAAE6F,SAAW,GAAIrC,GAAKxD,EAAE6F,SAAW,GAAK,WAAYpC,GAAKF,EAAIC,IAAM,GAAK,UACrE,IAANC,GACP,OAAOA,GACN9B,EAAEsE,MAAQjG,EAAE6F,KAAMlE,EAAEwE,MAAQxE,EAAGzB,IAAMA,EAAE2H,GAAKxK,EAAE6C,EAAGF,GAAI2B,EAAEqE,MAAQ,WAChE,OAAO3I,EAAE2C,EAAG,MACV2B,EAEN5E,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAKqsC,QAAUjI,GApCtB,CAqCG4H,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAVnB,QAAwBA,UAEjEwB,EAAKlL,EAAG,CAACmL,EAAIC,MACf,SAAUnL,EAAGC,EAAIG,GACf,SAASE,EAAE0C,GACT,IAAIC,EAAItkC,KAAMukC,EAAI,GAClBD,EAAE8F,KAAO,WACP,IAAIlE,EAAI5B,EAAEmI,EAAG3E,EAAIxD,EAAE4B,EAAG6B,EAAIzD,EAAE0D,EAAGA,EAAI1D,EAAED,EACrC,OAAO6B,EAAIA,GAAK,GAAKA,IAAM,EAAI4B,EAAGA,EAAIA,EAAIC,EAAI,EAAGA,EAAIA,GAAK,GAAKA,IAAM,EAAIC,EAAGA,EAAIA,EAAI9B,EAAI,EAAG5B,EAAEmI,EAAIvG,EAAIA,GAAK,GAAKA,IAAM,GAAK4B,EAAGxD,EAAE4B,EAAI4B,EAAIA,EAAIC,EAAI,EAAGzD,EAAE0D,EAAID,GAAK,GAAKD,IAAM,GAAKE,EAAG1D,EAAED,EAAI2D,EAAI9B,EAAI,GAC7L5B,EAAED,EAAI,EAAGC,EAAEmI,EAAI,EAAGnI,EAAE4B,GAAK,WAAY5B,EAAE0D,EAAI,WAAY3D,IAAMN,KAAK7c,MAAMmd,IAAMC,EAAED,EAAIA,EAAI,WAAa,EAAGC,EAAEmI,EAAQ,EAAJpI,GAASE,GAAKF,EAC/H,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAErkC,OAAS,GAAIukC,IACjCH,EAAEmI,GAAuB,EAAlBlI,EAAEoG,WAAWlG,GAAQH,EAAE8F,OAElC,SAASxI,EAAEyC,EAAGC,GACZ,OAAOA,EAAED,EAAIA,EAAEA,EAAGC,EAAEmI,EAAIpI,EAAEoI,EAAGnI,EAAE4B,EAAI7B,EAAE6B,EAAG5B,EAAE0D,EAAI3D,EAAE2D,EAAG1D,EAErD,SAASF,EAAEC,EAAGC,GACZ,IAAIC,EAAI,IAAI5C,EAAE0C,GAAII,EAAIH,GAAKA,EAAEiG,MAAOrE,EAAI,WACtC,OAAQ3B,EAAE6F,SAAW,GAAK,YAE5B,OAAOlE,EAAEuE,OAAS,WAChB,GACE,IAAI3C,EAAIvD,EAAE6F,SAAW,GAAIrC,GAAKxD,EAAE6F,SAAW,GAAK,WAAYpC,GAAKF,EAAIC,IAAM,GAAK,UACrE,IAANC,GACP,OAAOA,GACN9B,EAAEsE,MAAQjG,EAAE6F,KAAMlE,EAAEwE,MAAQxE,EAAGzB,IAAkB,iBAALA,GAAiB7C,EAAE6C,EAAGF,GAAI2B,EAAEqE,MAAQ,WACjF,OAAO3I,EAAE2C,EAAG,MACV2B,EAEN5E,GAAMA,EAAGC,QAAUD,EAAGC,QAAU6C,EAAI3C,GAAKA,EAAEmJ,IAAMnJ,GAAE,WACjD,OAAO2C,KACJpkC,KAAK0sC,OAAStI,GA5BrB,CA6BGmI,EAAiB,iBAANC,GAAkBA,EAAqB,mBAAV1B,QAAwBA,UAEjE6B,EAAKvL,EAAG,QAERwL,EAAKxL,EAAG,CAACyL,EAAIC,MACf,SAAUzL,EAAGC,EAAIG,GACf,IAAkGqG,EAA9FnG,EAAI,IAAKC,EAAI,EAAGwC,EAAI,GAAIC,EAAI,SAAUC,EAAI7C,EAAErQ,IAAIuQ,EAAGC,GAAI2C,EAAI9C,EAAErQ,IAAI,EAAGgT,GAAIK,EAAQ,EAAJF,EAAO2B,EAAIvE,EAAI,EAC/F,SAASoG,EAAEgF,EAAGC,EAAGC,GACf,IAAIC,EAAI,GACRF,EAAS,GAALA,EAAY,CAAEG,SAAS,GAASH,GAAK,GACzC,IAAII,EAAIjB,EAAED,EAAEc,EAAEG,QAAU,CAACJ,EAAGN,EAAEnL,IAAY,MAALyL,EAAY7B,IAAM6B,EAAG,GAAIG,GAAIG,EAAI,IAAIrF,EAAEkF,GAAII,EAAI,WAClF,IAAK,IAAIC,EAAIF,EAAElB,EAAEvK,GAAI3iC,EAAIqlC,EAAGkJ,EAAI,EAAGD,EAAIhJ,GACrCgJ,GAAKA,EAAIC,GAAK7L,EAAG1iC,GAAK0iC,EAAG6L,EAAIH,EAAElB,EAAE,GACnC,KAAOoB,GAAK9I,GACV8I,GAAK,EAAGtuC,GAAK,EAAGuuC,KAAO,EACzB,OAAQD,EAAIC,GAAKvuC,GAEnB,OAAOquC,EAAE9C,MAAQ,WACf,OAAgB,EAAT6C,EAAElB,EAAE,IACVmB,EAAE5C,MAAQ,WACX,OAAO2C,EAAElB,EAAE,GAAK,YACfmB,EAAE7C,OAAS6C,EAAGnB,EAAEM,EAAEY,EAAEL,GAAI1L,IAAM0L,EAAES,MAAQR,GAAK,SAASM,EAAGtuC,EAAGuuC,EAAGE,GAChE,OAAOA,IAAMA,EAAEV,GAAK5E,EAAEsF,EAAGL,GAAIE,EAAEhD,MAAQ,WACrC,OAAOnC,EAAEiF,EAAG,MACVG,GAAK/L,EAAE4C,GAAKkJ,EAAGtuC,GAAKsuC,IACvBD,EAAGF,EAAG,WAAYJ,EAAIA,EAAEW,OAAS3tC,MAAQyhC,EAAGuL,EAAEzC,OAEnD,SAASvC,EAAE+E,GACT,IAAIC,EAAGC,EAAIF,EAAE7sC,OAAQgtC,EAAIltC,KAAMotC,EAAI,EAAGC,EAAIH,EAAE5I,EAAI4I,EAAEU,EAAI,EAAGN,EAAIJ,EAAEF,EAAI,GACnE,IAAKC,IAAMF,EAAI,CAACE,MAAOG,EAAIzL,GACzB2L,EAAEF,GAAKA,IACT,IAAKA,EAAI,EAAGA,EAAIzL,EAAGyL,IACjBE,EAAEF,GAAKE,EAAED,EAAInH,EAAImH,EAAIN,EAAEK,EAAIH,IAAMD,EAAIM,EAAEF,KAAME,EAAED,GAAKL,GACrDE,EAAEf,EAAI,SAASoB,GACd,IAAK,IAAItuC,EAAGuuC,EAAI,EAAGE,EAAIR,EAAE5I,EAAGuJ,EAAIX,EAAEU,EAAGzC,EAAI+B,EAAEF,EAAGO,KAC5CtuC,EAAIksC,EAAEuC,EAAIxH,EAAIwH,EAAI,GAAIF,EAAIA,EAAI7L,EAAIwJ,EAAEjF,GAAKiF,EAAEuC,GAAKvC,EAAE0C,EAAI3H,EAAI2H,EAAI5uC,KAAOksC,EAAE0C,GAAK5uC,IAC9E,OAAOiuC,EAAE5I,EAAIoJ,EAAGR,EAAEU,EAAIC,EAAGL,IACxB7L,GAEL,SAASyG,EAAE2E,EAAGC,GACZ,OAAOA,EAAE1I,EAAIyI,EAAEzI,EAAG0I,EAAEY,EAAIb,EAAEa,EAAGZ,EAAEA,EAAID,EAAEC,EAAEhV,QAASgV,EAElD,SAASd,EAAEa,EAAGC,GACZ,IAA0BI,EAAtBH,EAAI,GAAIC,SAAWH,EACvB,GAAIC,GAAU,UAALE,EACP,IAAKE,KAAKL,EACR,IACEE,EAAEpB,KAAKK,EAAEa,EAAEK,GAAIJ,EAAI,IACnB,MAAOK,IAEb,OAAOJ,EAAE/sC,OAAS+sC,EAAS,UAALC,EAAgBH,EAAIA,EAAI,KAEhD,SAASZ,EAAEY,EAAGC,GACZ,IAAK,IAAgBE,EAAZD,EAAIF,EAAI,GAAOK,EAAI,EAAGA,EAAIH,EAAE/sC,QACnC8sC,EAAE9G,EAAIkH,GAAKlH,GAAKgH,GAAgB,GAAXF,EAAE9G,EAAIkH,IAAWH,EAAEtC,WAAWyC,KACrD,OAAOX,EAAEO,GAEX,SAAS9B,IACP,IACE,IAAI6B,EACJ,OAAOjF,IAAMiF,EAAIjF,EAAEgG,aAAef,EAAIA,EAAEpL,IAAMoL,EAAI,IAAIxK,WAAWZ,IAAKN,EAAE0M,QAAU1M,EAAE2M,UAAUC,gBAAgBlB,IAAKN,EAAEM,GACrH,MAAOG,GACP,IAAIF,EAAI3L,EAAE6M,UAAWjB,EAAID,GAAKA,EAAEmB,QAChC,MAAO,EAAkB,IAAIrC,KAAQzK,EAAG4L,EAAG5L,EAAE+M,OAAQ3B,EAAEnL,KAG3D,SAASmL,EAAEM,GACT,OAAOtsC,OAAO4tC,aAAaC,MAAM,EAAGvB,GAEtC,GAAIZ,EAAE1K,EAAE8M,SAAUjN,GAAkB,iBAANwL,GAAkBA,EAAGvL,QAAS,CAC1DuL,EAAGvL,QAAUwG,EACb,IACED,EAAI6E,IACJ,MAAOI,SAGQ,mBAAVjC,QAAwB,UAAaA,QAAO,WACjD,OAAO/C,KACJtG,EAAE,OAAS4C,GAAK0D,GAzEzB,CA0EkB,oBAARyG,KAAsBA,KAAO3B,EAAI,GAAI9I,QAE7C0K,EAAKrN,EAAG,CAACsN,EAAKC,KAChB,IAAIC,EAAK3E,IAAM4E,EAAK9D,IAAM+D,EAAKzD,IAAM0D,EAAKrD,IAAMsD,EAAK1E,IAAM2E,EAAK3C,IAAM4C,EAAKtC,IAC3EsC,EAAGrE,KAAO+D,EACVM,EAAG9D,OAASyD,EACZK,EAAGzD,OAASqD,EACZI,EAAGnD,UAAYgD,EACfG,EAAG7C,QAAU2C,EACbE,EAAGxC,OAASuC,EACZN,EAAGpN,QAAU2N,IAEXC,EAAK/N,EAAG,QAERgO,EAAKhO,EAAG,QAERiO,EAAKjO,EAAG,QAERkO,EAAKlO,EAAG,QAERmO,EAAKnO,EAAG,QAERoO,EAAKpO,EAAG,CAACqO,EAAIC,KACf,IAAIC,EAAK,MACP,IAAItO,EAAuB,oBAAZuO,UAA2BA,SAASC,cAAgBD,SAASC,cAAcC,SAAM,EAChG,OAA4CzO,EAAIA,GAAK0O,EAAa,SAASzO,GAEzE,SAASG,IACP,OAAOuO,EAAGhwB,QAAUiwB,GAAMC,GAAGF,EAAGhwB,QAASmwB,EAE3C,SAASxO,IACP,OAAOqO,EAAGhwB,QAAUiwB,GAAMC,GAAGF,EAAGhwB,QAASowB,EAK3C,SAAShM,IACP,OAAO4L,EAAGhwB,QAAUiwB,GAAMC,GAAGF,EAAGhwB,QAASqwB,EAE3C,SAAShM,IACP,OAAO2L,EAAGhwB,QAAUiwB,GAAMC,GAAGF,EAAGhwB,QAASswB,EAK3C,SAAS/L,IACP,OAAOyL,EAAGhwB,QAAUiwB,GAAMC,GAAGF,EAAGhwB,QAASuwB,EApB3CjP,EAAKA,GAAM,GAsBX,IAA4C4E,EAAG4B,EAI3CC,EAJAtD,EAAiB,oBAANnD,EAAoBA,EAAK,GACxCmD,EAAEvR,MAAQ,IAAIsd,SAAQ,SAASC,EAAGC,GAChCxK,EAAIuK,EAAG3I,EAAI4I,KAGK,oBAAXC,GAA0BA,EAAQC,YAAc7I,EAAI,CAAE8I,kBAAmBF,EAAQC,UAAU,qBAAsBE,mBAAoBH,EAAQC,UAAU,wBAC9J,IAMIxD,EAAGC,EAAGC,EANNtF,EAAIpnC,OAAOmwC,OAAO,GAAItM,GAAI2D,EAAI,GAA0B+D,EAAI,CAACsE,EAAGC,KAClE,MAAMA,GACLxF,EAAqB,iBAAV8F,OAAoBvE,EAA4B,mBAAjBwE,cAA6BlE,EAAsB,iBAAX4D,GAAkD,iBAApBA,EAAQO,UAAwD,iBAAzBP,EAAQO,SAASC,KAAkBnE,EAAIvI,EAAE2M,yBAA0B,EAAOnE,EAAI,GACxO,SAASC,EAAEuD,GACT,OAAOhM,EAAE4M,WAAa5M,EAAE4M,WAAWZ,EAAGxD,GAAKA,EAAIwD,EAGjD,SAASxxC,EAAEwxC,GACLA,aAAaa,IAEjB1D,EAAE,6BAA+B6C,GAEnC,GAAI1D,EAAG,CACL,IAAIS,EAAI2B,IAAMzB,EAAI0B,IAoBlB,IAAIqB,EAnBAxD,EAAJR,EAAQiB,EAAE6D,QAAQtE,GAAK,IAAUuE,EAAY,IAAKpE,EAAI,CAACsD,EAAGe,KAAQf,EAAIgB,GAAGhB,GAAK,IAAIiB,IAAIjB,GAAKhD,EAAEkE,UAAUlB,GAAIlD,EAAEqE,aAAanB,EAAGe,OAAK,EAAS,SAAUnE,EAAKoD,IACxJ,IAAIe,EAAKrE,EAAEsD,GAAG,GACd,OAAOe,EAAGzxB,SAAWyxB,EAAK,IAAIlP,WAAWkP,IAAMA,GAC9CpE,EAAI,CAACqD,EAAGe,EAAIK,KACbpB,EAAIgB,GAAGhB,GAAK,IAAIiB,IAAIjB,GAAKhD,EAAEkE,UAAUlB,GAAIlD,EAAEuE,SAASrB,GAAG,SAASsB,EAAIC,GAClED,EAAKF,EAAGE,GAAMP,EAAGQ,EAAGjyB,YAErB2wB,EAAQuB,KAAKhyC,OAAS,GAAUywC,EAAQuB,KAAK,GAAGC,QAAQ,MAAO,KAAO/J,EAAIuI,EAAQuB,KAAKla,MAAM,GAAI2Y,EAAQvpC,GAAG,qBAAqB,SAASspC,GAC3I,KAAMA,aAAaY,IACjB,MAAMZ,KACNC,EAAQvpC,GAAG,sBAAsB,SAASspC,GAC5C,MAAMA,KACJvE,EAAI,CAACuE,EAAGe,KACV,GAAIW,KACF,MAAMzB,EAAQ0B,SAAW3B,EAAGe,EAC9BxyC,EAAEwyC,GAAKd,EAAQ2B,KAAK5B,IACnBjM,EAAE8N,QAAU,WACb,MAAO,8BAGT,IACE9B,EAAIpB,IACJ,MAAOqB,IACP,MAAM8B,QAAQC,MAAM,2GAA4G/B,GAElI/C,EAAO+E,OAASjC,EAAEiC,YAEjBxH,GAAKuB,KAAOA,EAAIQ,EAAIuB,KAAKmE,SAASC,KAA0B,oBAAZhD,UAA2BA,SAASC,gBAAkB5C,EAAI2C,SAASC,cAAcC,KAAkB,oBAALzO,GAAoBA,IAAM4L,EAAI5L,GAA+B4L,EAAJ,IAAvBA,EAAEvsC,QAAQ,SAAqBusC,EAAE4F,OAAO,EAAG5F,EAAEkF,QAAQ,SAAU,IAAIW,YAAY,KAAO,GAAS,GAAI/F,IAAMK,EAAKqD,IAC7R,IAAIC,EAAI,IAAIqC,eACZ,OAAOrC,EAAEsC,KAAK,MAAOvC,GAAG,GAAQC,EAAEuC,KAAK,MAAOvC,EAAEwC,cAC/CzG,IAAMa,EAAKmD,IACZ,IAAIC,EAAI,IAAIqC,eACZ,OAAOrC,EAAEsC,KAAK,MAAOvC,GAAG,GAAQC,EAAEyC,aAAe,cAAezC,EAAEuC,KAAK,MAAO,IAAI1Q,WAAWmO,EAAE0C,YAC7F/F,EAAI,CAACoD,EAAGC,EAAGe,KACb,IAAIK,EAAK,IAAIiB,eACbjB,EAAGkB,KAAK,MAAOvC,GAAG,GAAOqB,EAAGqB,aAAe,cAAerB,EAAGuB,OAAS,KACnD,KAAbvB,EAAGwB,QAA8B,GAAbxB,EAAGwB,QAAexB,EAAGsB,SAC3C1C,EAAEoB,EAAGsB,UAGP3B,KACCK,EAAGyB,QAAU9B,EAAIK,EAAGmB,KAAK,QACrBxC,GAAMb,SAAS4D,MAAQ/C,GAClC1D,GAA2B,oBAAf0G,cAA+B9F,EAAO8F,YAAcnE,IAAKmE,aACrE,IAAI5F,EAAI2E,QAAQ9mB,IAAIgoB,KAAKlB,SAAUrH,EAAIqH,QAAQmB,KAAKD,KAAKlB,SACzDzF,IAAMc,EAAK4C,GAAMjD,EAAEoG,UAAU,EAAGnD,EAAI,MACtCtF,EAAKsF,GAAMjD,EAAEoG,UAAU,EAAGnD,EAAI,OAE5B,IAAIoD,EAAIpP,EAAEjT,OAASqc,EAAGD,EAAInJ,EAAEqP,UAAY3I,EACxCvqC,OAAOmwC,OAAOtM,EAAGuD,GAAIA,EAAI,KAAMvD,EAAExkC,YAAcmoC,EAAI3D,EAAExkC,WAAYwkC,EAAEsP,aAAoBtP,EAAEsP,YAActP,EAAEuP,OAAS7H,EAAI1H,EAAEuP,MACxH,IAA8EjN,EAA/DkN,QAAQC,KAAUD,QAAQE,MAAYF,QAAQG,gBAC7D3P,EAAE4P,aAAetN,EAAKtC,EAAE4P,YACxB,IAAIC,EAAK7P,EAAE8P,gBAAiB,EACN,iBAAfnS,aAA2BoS,GAAG,mCACrC,IAAIxE,EAAIyE,EAAgBC,EAAZrN,GAAK,EACjB,SAASsN,EAAGlE,EAAGC,GACbD,GAAK+D,GAAG9D,GAEV,IA+DIT,EAAIE,EAAIC,EAAYC,EAAIC,EAAQC,EA/DhCqE,EAA2B,oBAAfC,YAA6B,IAAIA,YAAY,aAAU,EACvE,SAASC,EAAGrE,EAAGC,EAAGe,GAChBf,KAAO,EACP,IAAK,IAAIoB,EAAKpB,EAAIe,EAAIO,EAAKtB,EAAGD,EAAEuB,MAASA,GAAMF,MAC3CE,EACJ,GAAIA,EAAKtB,EAAI,IAAMD,EAAEzwB,QAAU40B,EAC7B,OAAOA,EAAGG,OAAOtE,EAAEzwB,kBAAkBg1B,kBAAoBvE,EAAEzY,MAAM0Y,EAAGsB,GAAMvB,EAAEwE,SAASvE,EAAGsB,IAC1F,IAAK,IAAIC,EAAK,GAAIvB,EAAIsB,GAAM,CAC1B,IAAItK,EAAK+I,EAAEC,KACX,GAAW,IAALhJ,EAAN,CAIA,IAAIwN,EAAc,GAATzE,EAAEC,KACX,GAAkB,MAAR,IAALhJ,GAAL,CAIA,IAAIyN,EAAc,GAAT1E,EAAEC,KACX,GAAwBhJ,EAAN,MAAR,IAALA,IAA8B,GAALA,IAAY,GAAKwN,GAAM,EAAIC,GAAgB,EAALzN,IAAW,GAAKwN,GAAM,GAAKC,GAAM,EAAa,GAAT1E,EAAEC,KAAWhJ,EAAK,MACzHuK,GAAMxxC,OAAO4tC,aAAa3G,OACvB,CACH,IAAI0N,EAAK1N,EAAK,MACduK,GAAMxxC,OAAO4tC,aAAa,MAAQ+G,GAAM,GAAI,MAAa,KAALA,SARpDnD,GAAMxxC,OAAO4tC,cAAmB,GAAL3G,IAAY,EAAIwN,QAL3CjD,GAAMxxC,OAAO4tC,aAAa3G,GAgB9B,OAAOuK,EAET,SAASoD,EAAG5E,EAAGC,GACb,OAAOD,KAAO,EAAGA,EAAIqE,EAAGnT,IAAK8O,EAAGC,GAAK,GAEvC,SAAS4E,GAAG7E,EAAGC,EAAGe,EAAIK,GACpB,GAAIL,KAAQ,IAAKK,EAAK,GACpB,OAAO,EACT,IAAK,IAAIE,EAAKP,EAAIQ,EAAKR,EAAKK,EAAK,EAAGpK,EAAK,EAAGA,EAAK+I,EAAEvwC,SAAUwnC,EAAI,CAC/D,IAAIwN,EAAKzE,EAAE9F,WAAWjD,GACtB,GAAIwN,GAAM,OAASA,GAAM,MAAO,CAC9B,IAAIC,EAAK1E,EAAE9F,aAAajD,GACxBwN,EAAK,QAAe,KAALA,IAAc,IAAW,KAALC,EAErC,GAAID,GAAM,IAAK,CACb,GAAIzD,GAAMQ,EACR,MACFvB,EAAEe,MAAS,GAAKyD,OACX,GAAIA,GAAM,KAAM,CACrB,GAAIzD,EAAK,GAAKQ,EACZ,MACFvB,EAAEe,MAAS,GAAK,IAAMyD,GAAM,EAAGxE,EAAEe,MAAS,GAAK,IAAW,GAALyD,OAChD,GAAIA,GAAM,MAAO,CACtB,GAAIzD,EAAK,GAAKQ,EACZ,MACFvB,EAAEe,MAAS,GAAK,IAAMyD,GAAM,GAAIxE,EAAEe,MAAS,GAAK,IAAMyD,GAAM,EAAI,GAAIxE,EAAEe,MAAS,GAAK,IAAW,GAALyD,MACrF,CACL,GAAIzD,EAAK,GAAKQ,EACZ,MACFvB,EAAEe,MAAS,GAAK,IAAMyD,GAAM,GAAIxE,EAAEe,MAAS,GAAK,IAAMyD,GAAM,GAAK,GAAIxE,EAAEe,MAAS,GAAK,IAAMyD,GAAM,EAAI,GAAIxE,EAAEe,MAAS,GAAK,IAAW,GAALyD,GAGnI,OAAOxE,EAAEe,IAAO,GAAK,EAAGA,EAAKO,EAE/B,SAAS9K,GAAGuJ,EAAGC,EAAGe,GAChB,OAAO6D,GAAG7E,EAAG9O,IAAK+O,EAAGe,GAIvB,SAASvB,GAAGO,GACVR,EAAKQ,EAAGhM,EAAE8Q,MAAQpF,EAAK,IAAIqF,UAAU/E,GAAIhM,EAAEgR,OAAc,IAAIC,WAAWjF,GAAIhM,EAAEkR,OAAStF,EAAK,IAAIuF,WAAWnF,GAAIhM,EAAEoR,OAASzF,EAAK,IAAI7N,WAAWkO,GAAIhM,EAAEqR,QAAe,IAAIC,YAAYtF,GAAIhM,EAAEuR,QAAU1F,EAAK,IAAI2F,YAAYxF,GAAIhM,EAAEyR,QAAe,IAAIC,aAAa1F,GAAIhM,EAAE2R,QAAU7F,EAAK,IAAI8F,aAAa5F,GAFtSzD,IAAMiD,EAAKxL,EAAEzkB,QAIb,IAAIs2B,GAAK7R,EAAE8R,gBAAkB,SAC7B,GAAIvJ,EACFgD,EAAKvL,EAAE+R,WAAYvG,EAAKxL,EAAEzkB,YACvB,GAAIykB,EAAE+R,WACTxG,EAAKvL,EAAE+R,gBACJ,GAAIxG,EAAK,IAAI5N,YAAYqU,OAAO,CAAEC,QAASJ,GAAK,MAAO1oB,QAAS,MAAOwJ,QAAQ,MAAW4Y,EAAGhwB,kBAAkBg1B,mBAClH,MAAMpH,EAAE,+NAAgOb,GAAKa,EAAE,6GAA8G3J,MAAM,cACrW+L,IAAOC,EAAKD,EAAGhwB,QAASs2B,GAAKrG,EAAG0G,WAAYzG,GAAGD,GAC/C,IAAI2G,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAC/B,SAAS3E,KACP,OAAOkC,EAET,SAAS0C,KACP,GAAIvS,EAAEwS,OACJ,IAAwB,mBAAZxS,EAAEwS,SAAyBxS,EAAEwS,OAAS,CAACxS,EAAEwS,SAAUxS,EAAEwS,OAAO/2C,QACtEg3C,GAAGzS,EAAEwS,OAAOE,SAChBC,GAAGP,IAEL,SAASQ,MACF,GAAOrK,GAAKoK,GAAGN,IAEtB,SAASQ,KACP,IAAKtK,EAAG,CACN,GAAIvI,EAAE8S,QACJ,IAAyB,mBAAb9S,EAAE8S,UAA0B9S,EAAE8S,QAAU,CAAC9S,EAAE8S,UAAW9S,EAAE8S,QAAQr3C,QAC1Es3C,GAAG/S,EAAE8S,QAAQJ,SACjBC,GAAGL,KAGP,SAASG,GAAGzG,GACVoG,GAAGY,QAAQhH,GAEb,SAASiH,GAAGjH,GACVqG,GAAGW,QAAQhH,GAEb,SAAS+G,GAAG/G,GACVsG,GAAGU,QAAQhH,GAEb,IAAIkH,GAAK,EAAGC,GAAK,KAAMC,GAAK,KAC5B,SAASC,GAAGrH,GACVkH,KAAMlT,EAAEsT,wBAA0BtT,EAAEsT,uBAAuBJ,IAE7D,SAASK,GAAGvH,GACV,GAAIkH,KAAMlT,EAAEsT,wBAA0BtT,EAAEsT,uBAAuBJ,IAAW,GAANA,KAAmB,OAAPC,KAAgBK,cAAcL,IAAKA,GAAK,MAAOC,IAAK,CAClI,IAAInH,EAAImH,GACRA,GAAK,KAAMnH,KAGf,SAAS8D,GAAG/D,GACVhM,EAAEyT,SAAWzT,EAAEyT,QAAQzH,GAAIA,EAAI,WAAaA,EAAI,IAAK7C,EAAE6C,GAAIpJ,GAAK,EAAMqN,EAAK,EAAGjE,GAAK,2CACnF,IAAIC,EAAI,IAAItO,YAAY+V,aAAa1H,GACrC,MAAM3I,EAAE4I,GAAIA,EAEd,IAOI0H,GAPAC,GAAK,wCACT,SAASC,GAAG7H,GACV,OAAOA,EAAE8H,WAAWF,IAEtB,SAAS3G,GAAGjB,GACV,OAAOA,EAAE8H,WAAW,WAItB,SAASC,GAAG/H,GACV,IACE,GAAIA,GAAK2H,IAAMrR,EACb,OAAO,IAAIxE,WAAWwE,GACxB,GAAIuG,EACF,OAAOA,EAAEmD,GACX,KAAM,kDACN,MAAOC,IACP8D,GAAG9D,KAGP,SAAS+H,KACP,IAAK1R,IAAOmE,GAAKuB,GAAI,CACnB,GAAoB,mBAATiM,QAAwBhH,GAAG0G,IACpC,OAAOM,MAAMN,GAAI,CAAEO,YAAa,gBAAiBC,MAAK,SAASnI,GAC7D,IAAKA,EAAEoI,GACL,KAAM,uCAAyCT,GAAK,IACtD,OAAO3H,EAAEqI,iBACRC,OAAM,WACP,OAAOP,GAAGJ,OAEd,GAAI/K,EACF,OAAO,IAAImD,SAAQ,SAASC,EAAGC,GAC7BrD,EAAE+K,IAAI,SAAS3G,GACbhB,EAAE,IAAIlO,WAAWkP,MAChBf,MAGT,OAAOF,QAAQwI,UAAUJ,MAAK,WAC5B,OAAOJ,GAAGJ,OAGd,SAASa,KACP,IAAIxI,EAAI,CAAE/qB,IAAKwzB,GAAIC,uBAAwBD,IAC3C,SAASxI,EAAEhJ,EAAIwN,GACb,IAAIC,EAAKzN,EAAGnG,QACZ,GAAIkD,EAAE2U,IAAMjE,EAAIkE,GAAG5U,EAAE2U,IAAIE,sBAAuB1C,GAAKnS,EAAE2U,IAAIG,0BAA2B7B,GAAGjT,EAAE2U,IAAII,mBAAoB/E,EAAKS,GAAKlI,EAAG,CAC9H,IAAIoI,EAAKqE,GAAGC,cAAcx5C,OAC1Bu5C,GAAGC,cAAcC,SAAQ,SAASC,GAChCH,GAAGI,uBAAuBD,GAAI,aAC1BxE,GAAM4C,GAAG,2BAMnB,SAASvG,EAAG/J,GACVgJ,EAAEhJ,EAAGoS,SAAUpS,EAAGqS,QAEpB,SAASjI,EAAGpK,GACV,OAAO+Q,KAAKG,MAAK,SAAS1D,GACxB,OAAO9S,YAAY4X,YAAY9E,EAAIzE,MAClCmI,MAAK,SAAS1D,GACf,OAAOA,KACN0D,KAAKlR,GAAI,SAASwN,GACnBtH,EAAE,0CAA4CsH,GAAKV,GAAGU,MAG1D,SAASlD,IACP,OAAQjL,GAAiD,mBAApC3E,YAAY6X,sBAAuC3B,GAAGF,KAAQ1G,GAAG0G,KAAQrL,GAAqB,mBAAT2L,MAKrG5G,EAAGL,GALwHiH,MAAMN,GAAI,CAAEO,YAAa,gBAAiBC,MAAK,SAASlR,GACtL,IAAIwN,EAAK9S,YAAY6X,qBAAqBvS,EAAI+I,GAC9C,OAAOyE,EAAG0D,KAAKnH,GAAI,SAAS0D,GAC1B,OAAOvH,EAAE,kCAAoCuH,GAAKvH,EAAE,6CAA8CkE,EAAGL,SAI3G,GArBAzE,GAAK8K,GAAG,oBAqBJrT,EAAEyV,gBACJ,IACE,IAAIjI,EAAKxN,EAAEyV,gBAAgBzJ,EAAGC,GAC9B,OAAOuB,EACP,MAAOvK,GACPkG,EAAE,sDAAwDlG,GAAKI,EAAEJ,GAErE,OAAOsK,IAAK+G,MAAMjR,GAAI,GA1ExBsQ,GAAK,uCAAwCE,GAAGF,MAAQA,GAAKlL,EAAEkL,KA4E/D,IAAY+B,GAAK,GACjB,SAAS7I,GAAGb,GACVzwC,KAAKuB,KAAO,aAAcvB,KAAKo6C,QAAU,gCAAkC3J,EAAI,IAAKzwC,KAAKszC,OAAS7C,EAEpG,SAAS4J,GAAG5J,GACV,IAAIC,EAAI+I,GAAGa,SAAS7J,UACbgJ,GAAGa,SAAS7J,GAAIC,EAAE6J,YAAaC,GAAG/J,GAAIgJ,GAAGgB,eAAeC,OAAOjB,GAAGgB,eAAe/5C,QAAQgwC,GAAI,GAAIA,EAAEiK,YAAc,EAE1H,SAASC,GAAGnK,GACV,IAAIC,EAAI+I,GAAGa,SAAS7J,GACpBC,EAAEmK,YAAY,CAAEC,IAAK,WAEvB,SAASC,GAAGtK,GACV,IAAIC,EAAI+I,GAAGa,SAAS7J,GACpBkE,EAAGjE,GAAI+I,GAAGuB,mBAAmBtK,GAE/B,SAASuK,GAAGxK,GACV,IAAIC,EAAI+I,GAAGyB,eACX,IAAKxK,EACH,OAAO,EACT+I,GAAGgB,eAAe5O,KAAK6E,GAAI+I,GAAGa,SAAS7J,EAAEkK,aAAejK,EAAGA,EAAEiK,YAAclK,EAAEkK,YAC7E,IAAIlJ,EAAK,CAAEqJ,IAAK,MAAOK,cAAe1K,EAAE2K,aAAcC,IAAK5K,EAAE4K,IAAKV,YAAalK,EAAEkK,aACjF,OAAOjK,EAAE4K,WAAa,KACpBvO,GAAK2D,EAAE6K,MAAO7K,EAAEmK,YAAYpJ,EAAIhB,EAAE+K,qBAAsB9K,EAAE4K,YACzD5K,EAAE+K,QAAU/K,EAAE4K,aAAc,EAUjC,SAASI,GAAGjL,GACV,GAAIzD,EACF,OAAO2O,GAAG,EAAG,EAAGlL,GAClBiE,EAAKjE,EAAG2B,OAASqH,GAAGmC,sBAAuBnX,EAAEoX,QAAUpX,EAAEoX,OAAOpL,GAAIpJ,GAAK,GAAO8E,EAAEsE,EAAG,IAAIa,GAAGb,IAE9F,SAASqL,GAAGrL,EAAGC,GACb,GAAIgE,EAAKjE,GAAIC,GAAK1D,EAChB,MAAM+O,GAAGtL,GAAI,SACfiL,GAAGjL,GAEL,IAAIuL,GAAKF,GACT,SAASG,GAAGxL,GACV,GAAIA,aAAaa,IAAW,UAALb,EACrB,OAAOiE,EACTvI,EAAE,EAAGsE,GAEP,IAAIgJ,GAAK,CAAEC,cAAe,GAAIe,eAAgB,GAAIyB,iBAAkB,GAAI5B,SAAU,GAAI6B,KAAM,WAC1FnP,EAAIyM,GAAG2C,aAAe3C,GAAG4C,kBACxBA,eAAgB,WACjB,IAAK,IAAI5L,EAAI,EAAGA,KACdgJ,GAAG6C,wBACJF,WAAY,WACb9H,GAAK,GACJiI,cAAe,SAAS9L,GACzBiE,EAAKjE,GACJmL,oBAAqB,WACtB,IAAK,IAAInL,KAAK7vC,OAAO9B,OAAO26C,GAAGa,UAC7Bb,GAAGuB,mBAAmBvK,GACxB,IAAK,IAAIA,KAAKgJ,GAAGC,cACfjJ,EAAE8J,YACJd,GAAGC,cAAgB,IAClBsB,mBAAoB,SAASvK,GAC9B,IAAIC,EAAID,EAAEkK,mBACHlB,GAAGa,SAAS5J,GAAI+I,GAAGC,cAAc7N,KAAK4E,GAAIgJ,GAAGgB,eAAeC,OAAOjB,GAAGgB,eAAe/5C,QAAQ+vC,GAAI,GAAIA,EAAEkK,YAAc,EAAG5N,GAAK0D,EAAE+L,QAAShC,GAAG9J,IACjJ+L,sBAAuB,SAAShM,KAChCiM,cAAe,WAChBjD,GAAGyC,iBAAiBvC,QAASlJ,GAAMA,MAClCoJ,uBAAwB,SAASpJ,EAAGC,GACrCD,EAAEkM,UAAa1K,IACb,IAAIvK,EAAKuK,EAAG2K,KAAM1H,EAAKxN,EAAGoT,IAC1B,GAAIrK,EAAEkK,cAAgBlB,GAAGoD,oCAAsCpM,EAAEkK,aAAcjT,EAAGoV,cAAgBpV,EAAGoV,cAAgBC,KAAM,CACzH,IAAI5H,EAAKsE,GAAGa,SAAS5S,EAAGoV,cAExB,OADA3H,EAAKA,EAAG0F,YAAYnT,EAAIA,EAAG8T,cAAgB5N,EAAE,0CAA4CsH,EAAK,uBAAyBxN,EAAGoV,aAAe,4CAAwCrD,GAAGoD,yCAAsC,GAGrN,yBAAP3H,EAAgC8H,GAAGtV,EAAGuV,OAAgB,gBAAP/H,EAAuB+F,GAAGvT,GAAa,kBAAPwN,EAAyB6F,GAAGrT,EAAGwV,QAAiB,eAAPhI,EAAsBmF,GAAG3S,EAAGwV,QAAiB,iBAAPhI,EAAwB0F,GAAGlT,EAAGwV,QAAiB,WAAPhI,GAAmBzE,EAAEgL,QAAS,EAAM1O,GAAK0D,EAAE+L,QAAS9L,GAAKA,EAAED,GAAIA,EAAE6K,YAAc7K,EAAE6K,cAAuB,UAAPpG,EAAiBrB,EAAE,UAAYnM,EAAGyV,SAAW,KAAOzV,EAAG0V,MAAe,aAAPlI,EAAoBtH,EAAE,UAAYlG,EAAGyV,SAAW,KAAOzV,EAAG0V,MAAe,UAAPlI,EAAiBmI,MAAM,UAAY3V,EAAGyV,SAAW,KAAOzV,EAAG0V,MAAsB,iBAAd1V,EAAG3oC,OAA4B0xC,EAAEoK,YAAYnT,GAAa,gBAAPwN,EAAuBzQ,EAAEiD,EAAG4V,YAAY5V,EAAG6V,MAAQrI,GAAMtH,EAAE,kCAAoCsH,GAAKuE,GAAGoD,yCAAsC,GAC1qBpM,EAAE8C,QAAWtB,IACd,IAAIvK,EAAK,wBACT,MAAMkG,EAAElG,EAAK,IAAMuK,EAAGuL,SAAW,IAAMvL,EAAGwL,OAAS,KAAOxL,EAAGmI,SAAUnI,GACtElF,IAAM0D,EAAErpC,GAAG,WAAW,SAAS6qC,GAChCxB,EAAEkM,UAAU,CAAEC,KAAM3K,OAClBxB,EAAErpC,GAAG,SAAS,SAAS6qC,GACzBxB,EAAE8C,QAAQtB,MACRxB,EAAErpC,GAAG,gBAAgB,gBAEzB,IAAIqqC,EAAK,GAAIK,EAAK,CAAC,SAAU,UAAW,QAAS,YACjD,IAAK,IAAIE,KAAMF,EACbrN,EAAEtD,eAAe6Q,IAAOP,EAAG5F,KAAKmG,GAClCvB,EAAEoK,YAAY,CAAEC,IAAK,OAAQ4C,SAAUjM,EAAIkM,UAAWlZ,EAAEmZ,qBAAuBvc,EAAGmV,WAAYxG,EAAI6N,WAAYpJ,KAC7G6H,qBAAsB,WACvB,IAAI7L,EAAGC,EAAIxD,EAAE,6CACbuD,EAAI,IAAIiC,OAAOhC,GAAI+I,GAAGC,cAAc7N,KAAK4E,IACxCyK,aAAc,WACf,OAAkC,GAA3BzB,GAAGC,cAAcx5C,SAAgBu5C,GAAG6C,uBAAwB7C,GAAGI,uBAAuBJ,GAAGC,cAAc,KAAMD,GAAGC,cAAcoE,QAGvI,SAAS1G,GAAG3G,GACV,KAAOA,EAAEvwC,OAAS,GAChBuwC,EAAE0G,OAAF1G,CAAUhM,GAEd,SAASsZ,KACP,IAAItN,EAAIsM,KAAMrM,EAAItM,IAAIqM,EAAI,KAAO,GAAIgB,EAAKrN,IAAIqM,EAAI,KAAO,GAAIqB,EAAKpB,EAAIe,EACtEuM,GAAGtN,EAAGoB,GAAKmM,GAAGvN,GAGhB,SAASqL,GAAGtL,GACV,GAAIzD,EACF,OAAO2O,GAAG,EAAG,EAAGlL,GAClB,IACEuL,GAAGvL,GACH,MAAOC,IACPuL,GAAGvL,KAhBPjM,EAAEyZ,QAAUzE,GASZhV,EAAE0Z,oBAAsBJ,GAUxB,IAAIK,GAAK,GACT,SAASC,GAAG5N,GACV,IAAIC,EAAI0N,GAAG3N,GACX,OAAOC,IAAMD,GAAK2N,GAAGl+C,SAAWk+C,GAAGl+C,OAASuwC,EAAI,GAAI2N,GAAG3N,GAAKC,EAAIkG,GAAGp1C,IAAIivC,IAAKC,EAE9E,SAAS4N,GAAG7N,EAAGC,GACb,IAAIe,EAAK4M,GAAG5N,EAAH4N,CAAM3N,GACf0B,KAAOqH,GAAG8C,cAAc9K,GAAM8M,GAAG9M,GAGnC,SAAS4H,GAAG5I,GACVgJ,GAAGyC,iBAAiBrQ,KAAK4E,GAE3B,SAAS+N,GAAG/N,GACVgO,GAAGhO,GAAIhE,EAAG,GAAIvB,GAAIuO,GAAGiD,gBAEvB,SAASgC,GAAGjO,GACVzD,EAAI6N,YAAY,CAAEC,IAAK,gBAAiBoC,OAAQzM,IAAOsK,GAAGtK,GAE5D,SAASkO,GAAGlO,EAAGC,EAAGe,EAAIK,GACpB,OAAO9E,EAAI2O,GAAG,EAAG,EAAGlL,EAAGC,EAAGe,EAAIK,GAAM8M,GAAGnO,EAAGC,EAAGe,EAAIK,GAEnD,SAAS8M,GAAGnO,EAAGC,EAAGe,EAAIK,GACpB,GAAgC,oBAArBkD,kBACT,OAAOpH,EAAE,uFAAwF,EACnG,IAAIoE,EAAK,GAAIC,EAAK,EAClB,GAAIjF,IAAoB,IAAdgF,EAAG9xC,QAAgB+xC,GAC3B,OAAO0M,GAAGlO,EAAGC,EAAGe,EAAIK,GACtB,GAAIG,EACF,OAAOA,EACT,IAAIvK,EAAK,CAAE0T,aAAc3J,EAAIkJ,YAAalK,EAAG4K,IAAKvJ,EAAI0J,aAAcxJ,GACpE,OAAOhF,GAAKtF,EAAGoT,IAAM,cAAeD,YAAYnT,EAAIsK,GAAK,GAAKiJ,GAAGvT,GAEnE,SAASmX,KACP,OAAO,MAzBTpa,EAAEqa,iBAAmBR,GA2BrB,IA0CIS,GA1CAC,IAAK,EACT,SAASC,KACP,OAAOD,GAET,SAAShC,GAAGvM,GACVwD,QAAQE,MAAM/P,IAAKqM,GAAK,EAAG,GAAIsM,MAAQmC,GAAGzO,GAAIwD,QAAQG,gBAAgBhQ,IAAKqM,GAAK,EAAG,EAAG,GAGxF,SAAS0O,GAAG1O,EAAGC,EAAGe,EAAIK,GACpB,GAAIrB,GAAKC,EACP0O,WAAW,IAAMpC,GAAGlL,SACjB,GAAI9E,EACP6N,YAAY,CAAEiC,aAAcrM,EAAGqK,IAAK,uBAAwBmC,MAAOnL,QAChE,CACH,IAAIE,EAAKyH,GAAGa,SAAS7J,GACrB,IAAKuB,EACH,OACFA,EAAG6I,YAAY,CAAEC,IAAK,uBAAwBmC,MAAOnL,IAEvD,OAAO,EAET,SAASuN,GAAG5O,EAAGC,EAAGe,GAChB,OAAQ,EAEV,SAAS6N,KACP9K,GAAG,IAEL,SAAS+K,GAAG9O,GACV8O,GAAGC,QAAUD,GAAGC,MAAQ,IAAKD,GAAGC,MAAM/O,KAAO8O,GAAGC,MAAM/O,GAAK,EAAG1D,IAAM0D,EAAI,YAAcA,GAAI7C,EAAE6C,IAE9F,SAASgP,KACP1S,GAAKN,GAAK8S,GAAG,4IAEf,SAASG,KACP,OAAO5T,KAAK6T,MAEd,SAASC,KACP,OAAO,WAET,SAASC,KACP,OAAOD,KAOT,SAASE,GAAGrP,EAAGC,EAAGe,GAChB9P,IAAIoe,WAAWtP,IAAM,EAAGC,IAAM,EAAGA,EAAIe,IAAO,GAE9C,SAASuO,KACP,OAAOjT,EAAIwC,IAAK0Q,OAAO//C,OAASguC,UAAUgS,oBAE5C,SAASC,GAAG1P,GACV,IAAIC,EAAI0P,KAAM3O,EAAKhB,IACnB,OAAOwN,GAAGvN,GAAIe,EAEhB,SAASkK,GAAGlL,EAAGC,GACb,IAAIe,EAAKxxC,UAAUC,OAAS,EAAG4xC,EAAK7xC,UACpC,OAAOkgD,GAAG,KACR,IAAK,IAAInO,EAAKP,EAAIQ,EAAKoO,GAAQ,EAALrO,GAAStK,EAAKuK,GAAM,EAAGiD,EAAK,EAAGA,EAAKzD,EAAIyD,IAAM,CACtE,IAAIC,EAAKrD,EAAG,EAAIoD,GAChB3Q,IAAImD,EAAKwN,IAAO,GAAKC,EAEvB,OAAOmL,GAAG7P,EAAGuB,EAAIC,EAAIvB,KAzDzBjM,EAAE8b,6BAA+BvD,GAoC7B+B,GAAJhS,EAAS,KACP,IAAI0D,EAAIE,EAAQ6P,SAChB,OAAc,IAAP/P,EAAE,GAAWA,EAAE,GAAK,KACpB,IAAMgD,YAAYgN,WAAahN,YAAYkM,MAqBpD,IAAIe,GAAK,GACT,SAASC,GAAGlQ,EAAGC,EAAGe,GAChBiP,GAAGxgD,OAASwwC,EACZ,IAAK,IAAIoB,EAAKL,GAAM,EAAGO,EAAK,EAAGA,EAAKtB,EAAGsB,IACrC0O,GAAG1O,GAAMzN,IAAIuN,EAAKE,IAAO,GAC3B,IAAIC,EAAKxB,EAAI,EAAG/I,EAAKuK,EAAKkI,IAAI1J,EAAI,GAAKmQ,GAAGnQ,GAC1C,OAAO/I,EAAG4G,MAAM,KAAMoS,IAExB,SAASG,GAAGpQ,GACV,IACE,OAAOT,EAAG8Q,KAAKrQ,EAAIR,EAAG0G,WAAa,QAAU,IAAKzG,GAAGF,EAAGhwB,QAAS,EACjE,MAAO0wB,MAGX,SAASqQ,GAAGtQ,GACV,IAAIC,EAAI/O,IAAIzhC,OACZ,GAAIuwC,KAAU,EAAGA,GAAKC,EACpB,OAAO,EACT,IAAIe,EAAKmO,KACT,GAAInP,EAAIgB,EACN,OAAO,EACT,IAAIK,EAAK,CAACqD,EAAIC,IAAOD,GAAMC,EAAKD,EAAKC,GAAMA,EAC3C,IAAK,IAAIpD,EAAK,EAAGA,GAAM,EAAGA,GAAM,EAAG,CACjC,IAAIC,EAAKvB,GAAK,EAAI,GAAMsB,GACxBC,EAAKlO,KAAK3V,IAAI6jB,EAAIxB,EAAI,WACtB,IAAI/I,EAAK3D,KAAK3V,IAAIqjB,EAAIK,EAAG/N,KAAK3W,IAAIqjB,EAAGwB,GAAK,QAASiD,EAAK2L,GAAGnZ,GAC3D,GAAIwN,EACF,OAAO,EAEX,OAAO,EAET,SAAS8L,KACP,KAAM,SAER,SAASC,GAAGxQ,GACV,OAAOzD,EAAI2O,GAAG,EAAG,EAAGlL,GAAK,GAE3B,SAASyQ,GAAGzQ,EAAGC,EAAGe,EAAIK,EAAIE,GACxB,OAAOhF,EAAI2O,GAAG,EAAG,EAAGlL,EAAGC,EAAGe,EAAIK,EAAIE,GAAM,GAE1C,IAAImP,GAAK,CAAC,KAAM,GAAI,IACpB,SAASC,GAAG3Q,EAAGC,GACb,IAAIe,EAAK0P,GAAG1Q,GACN,IAANC,GAAiB,KAANA,IAAmB,IAAND,EAAUoD,EAAIjG,GAAGkH,EAAGrD,EAAI,IAAKA,EAAGvxC,OAAS,GAAKuxC,EAAG5F,KAAK6E,GAEhF,SAAS2Q,GAAG5Q,EAAGC,EAAGe,EAAIK,GACpB,GAAI9E,EACF,OAAO2O,GAAG,EAAG,EAAGlL,EAAGC,EAAGe,EAAIK,GAC5B,IAAK,IAAIE,EAAK,EAAGC,EAAK,EAAGA,EAAKR,EAAIQ,IAAM,CACtC,IAAIvK,EAAKrD,IAAIqM,IAAM,GAAIwE,EAAK7Q,IAAIqM,EAAI,IAAM,GAC1CA,GAAK,EACL,IAAK,IAAIyE,EAAK,EAAGA,EAAKD,EAAIC,IACxBiM,GAAG3Q,EAAG9O,IAAI+F,EAAKyN,IAAO,IACxBnD,GAAMkD,EAER,OAAO7Q,IAAIyN,IAAO,GAAKE,EAAI,EAE7B,SAASsP,GAAG7Q,GACV,IAAIC,EAAIjM,EAAE,IAAMgM,GAChB,OAAOC,EAET,SAAS6Q,GAAG9Q,EAAGC,GACbjP,IAAIp/B,IAAIouC,EAAGC,IAAM,GAEnB,SAAS8Q,GAAG/Q,EAAGC,EAAGe,EAAIK,EAAIE,GACxB,IAAIC,EAAK,CAAEzX,OAASinB,IAClB,IAAIC,EAAK,EACT,GAAU,MAAND,GAAqB,IAAPA,EAAU,CAC1B,IAAIE,EAAwB,GAAlBF,EAAGvhD,QAAU,GACvBwhD,EAAKrB,GAAGsB,GAAKza,GAAGua,EAAIC,EAAIC,GAE1B,OAAOD,GACNE,MAAQH,IACT,IAAIC,EAAKrB,GAAGoB,EAAGvhD,QACf,OAAOqhD,GAAGE,EAAIC,GAAKA,IAErB,SAASha,EAAG+Z,GACV,MAAa,WAAN/Q,EAAiB2E,EAAGoM,GAAY,YAAN/Q,IAAoB+Q,EAAKA,EAE5D,IAAIvM,EAAKoM,GAAG7Q,GAAI0E,EAAK,GAAIC,EAAK,EAC9B,GAAItD,EACF,IAAK,IAAI8H,EAAK,EAAGA,EAAK9H,EAAG5xC,OAAQ05C,IAAM,CACrC,IAAIiI,EAAK5P,EAAGR,EAAGmI,IACfiI,GAAa,IAAPzM,IAAaA,EAAKgL,MAAOjL,EAAGyE,GAAMiI,EAAG/P,EAAG8H,KAAQzE,EAAGyE,GAAM9H,EAAG8H,GAEtE,IAAIkI,EAAK5M,EAAG5G,MAAM,KAAM6G,GACxB,SAAS4M,EAAGN,GACV,OAAc,IAAPrM,GAAY6I,GAAG7I,GAAK1N,EAAG+Z,GAEhC,OAAOK,EAAKC,EAAGD,GAAKA,EAEtB,SAASE,GAAGvR,EAAGC,EAAGe,EAAIK,GACpBL,EAAKA,GAAM,GACX,IAAIO,EAAKP,EAAGwQ,MAAOva,GAAc,WAAPA,GAA0B,YAAPA,GAAmBuK,EAAW,WAANvB,EACrE,OAAOuB,GAAMD,IAAOF,EAAKwP,GAAG7Q,GAAK,WAC/B,OAAO+Q,GAAG/Q,EAAGC,EAAGe,EAAIxxC,UAAW6xC,IAGnC2H,GAAG0C,OACH,IAwUI+F,GA0BAC,GAMAC,GAxWAxB,GAAK,CAAC,KAAMlF,GAAIK,GAAI4C,GAAIsC,GAAIC,GAAIG,IAAKnI,GAAK,CAAEmJ,iCAAkC7D,GAAI8D,4BAA6B5D,GAAI6D,oBAAqB3D,GAAI4D,uCAAwC3D,GAAI4D,iCAAkCxD,GAAIyD,8BAA+BvD,GAAIwD,qCAAsCtD,GAAIuD,MAAOtD,GAAIuD,kCAAmCpD,GAAIqD,oBAAqBpD,GAAIqD,wBAAyBlD,GAAImD,mBAAoBjE,GAAIkE,sBAAuBnD,GAAIoD,6BAA8BlD,GAAImD,qCAAsCxC,GAAIyC,uBAAwBrC,GAAIsC,mCAAoCrC,GAAI1O,KAAM0J,GAAIsH,SAAUrC,GAAIsC,QAASrC,GAAIsC,SAAUnC,GAAIrzB,OAAQgiB,GAAMvL,EAAE+R,YAoS1pBuG,IApS6qB9D,KAAWxU,EAAEgf,mBAAqB,WAChtB,OAAahf,EAAEgf,mBAAqBhf,EAAE2U,IAAII,mBAAmBlL,MAAM,KAAMruC,YACnEwkC,EAAEif,MAAQ,WAChB,OAAajf,EAAEif,MAAQjf,EAAE2U,IAAI+C,MAAM7N,MAAM,KAAMruC,YACzCwkC,EAAEkf,yBAA2B,WACnC,OAAalf,EAAEkf,yBAA2Blf,EAAE2U,IAAIwK,yBAAyBtV,MAAM,KAAMruC,YAC/EwkC,EAAEof,mBAAqB,WAC7B,OAAapf,EAAEof,mBAAqBpf,EAAE2U,IAAI0K,mBAAmBxV,MAAM,KAAMruC,YACnEwkC,EAAEsf,iBAAmB,WAC3B,OAAatf,EAAEsf,iBAAmBtf,EAAE2U,IAAI4K,iBAAiB1V,MAAM,KAAMruC,YAC/DwkC,EAAEwf,cAAgB,WACxB,OAAaxf,EAAEwf,cAAgBxf,EAAE2U,IAAI8K,cAAc5V,MAAM,KAAMruC,YACzDwkC,EAAE0f,SAAW,WACnB,OAAa1f,EAAE0f,SAAW1f,EAAE2U,IAAIp1B,SAASsqB,MAAM,KAAMruC,YAC/CwkC,EAAE2f,KAAO,WACf,OAAa3f,EAAE2f,KAAO3f,EAAE2U,IAAI32C,KAAK6rC,MAAM,KAAMruC,YACvCwkC,EAAE4f,MAAQ,WAChB,OAAa5f,EAAE4f,MAAQ5f,EAAE2U,IAAIz2C,MAAM2rC,MAAM,KAAMruC,YACzCwkC,EAAE6f,OAAS,WACjB,OAAa7f,EAAE6f,OAAS7f,EAAE2U,IAAIv2C,OAAOyrC,MAAM,KAAMruC,YAC3CwkC,EAAE8f,KAAO,WACf,OAAa9f,EAAE8f,KAAO9f,EAAE2U,IAAI71C,KAAK+qC,MAAM,KAAMruC,YACvCwkC,EAAE+f,MAAQ,WAChB,OAAa/f,EAAE+f,MAAQ/f,EAAE2U,IAAI31C,MAAM6qC,MAAM,KAAMruC,YACzCwkC,EAAEggB,KAAO,WACf,OAAahgB,EAAEggB,KAAOhgB,EAAE2U,IAAIz1C,KAAK2qC,MAAM,KAAMruC,YACvCwkC,EAAEigB,KAAO,WACf,OAAajgB,EAAEigB,KAAOjgB,EAAE2U,IAAIv1C,KAAKyqC,MAAM,KAAMruC,YACvCwkC,EAAEkgB,QAAU,WAClB,OAAalgB,EAAEkgB,QAAUlgB,EAAE2U,IAAIr1C,QAAQuqC,MAAM,KAAMruC,YAC7CwkC,EAAEmgB,QAAU,WAClB,OAAangB,EAAEmgB,QAAUngB,EAAE2U,IAAIn1C,QAAQqqC,MAAM,KAAMruC,YAC7CwkC,EAAEogB,MAAQ,WAChB,OAAapgB,EAAEogB,MAAQpgB,EAAE2U,IAAIj1C,MAAMmqC,MAAM,KAAMruC,YACzCwkC,EAAEqgB,OAAS,WACjB,OAAargB,EAAEqgB,OAASrgB,EAAE2U,IAAI/0C,OAAOiqC,MAAM,KAAMruC,YAC3CwkC,EAAEsgB,MAAQ,WAChB,OAAatgB,EAAEsgB,MAAQtgB,EAAE2U,IAAI70C,MAAM+pC,MAAM,KAAMruC,YACzCwkC,EAAEugB,OAAS,WACjB,OAAavgB,EAAEugB,OAASvgB,EAAE2U,IAAI30C,OAAO6pC,MAAM,KAAMruC,YAC3CwkC,EAAEwgB,OAAS,WACjB,OAAaxgB,EAAEwgB,OAASxgB,EAAE2U,IAAIz0C,OAAO2pC,MAAM,KAAMruC,YAC3CwkC,EAAEygB,SAAW,WACnB,OAAazgB,EAAEygB,SAAWzgB,EAAE2U,IAAIv0C,SAASypC,MAAM,KAAMruC,YAC/CwkC,EAAE0gB,WAAa,WACrB,OAAa1gB,EAAE0gB,WAAa1gB,EAAE2U,IAAIr0C,WAAWupC,MAAM,KAAMruC,YACnDwkC,EAAE2gB,eAAiB,WACzB,OAAa3gB,EAAE2gB,eAAiB3gB,EAAE2U,IAAIn0C,eAAeqpC,MAAM,KAAMruC,YAC3DwkC,EAAE4gB,aAAe,WACvB,OAAa5gB,EAAE4gB,aAAe5gB,EAAE2U,IAAIj0C,aAAampC,MAAM,KAAMruC,YACvDwkC,EAAE6gB,aAAe,WACvB,OAAa7gB,EAAE6gB,aAAe7gB,EAAE2U,IAAI7zC,aAAa+oC,MAAM,KAAMruC,YACvDwkC,EAAE8gB,UAAY,WACpB,OAAa9gB,EAAE8gB,UAAY9gB,EAAE2U,IAAIzzC,UAAU2oC,MAAM,KAAMruC,YACjDwkC,EAAE+gB,YAAc,WACtB,OAAa/gB,EAAE+gB,YAAc/gB,EAAE2U,IAAIvzC,YAAYyoC,MAAM,KAAMruC,YACrDwkC,EAAEghB,MAAQ,WAChB,OAAahhB,EAAEghB,MAAQhhB,EAAE2U,IAAI/yC,MAAMioC,MAAM,KAAMruC,YACzCwkC,EAAEihB,aAAe,WACvB,OAAajhB,EAAEihB,aAAejhB,EAAE2U,IAAI7yC,aAAa+nC,MAAM,KAAMruC,YACvDwkC,EAAEkhB,QAAU,WAClB,OAAalhB,EAAEkhB,QAAUlhB,EAAE2U,IAAIryC,QAAQunC,MAAM,KAAMruC,YAC7CwkC,EAAEmhB,qBAAuB,WAC/B,OAAanhB,EAAEmhB,qBAAuBnhB,EAAE2U,IAAIjyC,qBAAqBmnC,MAAM,KAAMruC,YACvEwkC,EAAEohB,QAAU,WAClB,OAAaphB,EAAEohB,QAAUphB,EAAE2U,IAAI/xC,QAAQinC,MAAM,KAAMruC,YAC7CwkC,EAAEqhB,wBAA0B,WAClC,OAAarhB,EAAEqhB,wBAA0BrhB,EAAE2U,IAAI7xC,wBAAwB+mC,MAAM,KAAMruC,YAC7EwkC,EAAEshB,uBAAyB,WACjC,OAAathB,EAAEshB,uBAAyBthB,EAAE2U,IAAI3xC,uBAAuB6mC,MAAM,KAAMruC,YAC3EwkC,EAAEuhB,KAAO,WACf,OAAavhB,EAAEuhB,KAAOvhB,EAAE2U,IAAIzxC,KAAK2mC,MAAM,KAAMruC,YACvCwkC,EAAEwhB,MAAQ,WAChB,OAAaxhB,EAAEwhB,MAAQxhB,EAAE2U,IAAIvxC,MAAMymC,MAAM,KAAMruC,YACzCwkC,EAAEyhB,eAAiB,WACzB,OAAazhB,EAAEyhB,eAAiBzhB,EAAE2U,IAAIrxC,eAAeumC,MAAM,KAAMruC,YAC3DwkC,EAAE0hB,SAAW,WACnB,OAAa1hB,EAAE0hB,SAAW1hB,EAAE2U,IAAInxC,SAASqmC,MAAM,KAAMruC,YAC/CwkC,EAAE2hB,QAAU,WAClB,OAAa3hB,EAAE2hB,QAAU3hB,EAAE2U,IAAIjxC,QAAQmmC,MAAM,KAAMruC,YAC7CwkC,EAAE4hB,eAAiB,WACzB,OAAa5hB,EAAE4hB,eAAiB5hB,EAAE2U,IAAI7wC,eAAe+lC,MAAM,KAAMruC,YAC3DwkC,EAAE6hB,cAAgB,WACxB,OAAa7hB,EAAE6hB,cAAgB7hB,EAAE2U,IAAI3wC,cAAc6lC,MAAM,KAAMruC,YACzDwkC,EAAE8hB,uBAAyB,WACjC,OAAa9hB,EAAE8hB,uBAAyB9hB,EAAE2U,IAAIzwC,uBAAuB2lC,MAAM,KAAMruC,YAC3EwkC,EAAE+hB,MAAQ,WAChB,OAAa/hB,EAAE+hB,MAAQ/hB,EAAE2U,IAAInwC,MAAMqlC,MAAM,KAAMruC,YACzCwkC,EAAEgiB,YAAc,WACtB,OAAahiB,EAAEgiB,YAAchiB,EAAE2U,IAAIjwC,YAAYmlC,MAAM,KAAMruC,YACrDwkC,EAAEiiB,0BAA4B,WACpC,OAAajiB,EAAEiiB,0BAA4BjiB,EAAE2U,IAAI/vC,0BAA0BilC,MAAM,KAAMruC,YACjFwkC,EAAEkiB,yBAA2B,WACnC,OAAaliB,EAAEkiB,yBAA2BliB,EAAE2U,IAAI7vC,yBAAyB+kC,MAAM,KAAMruC,YAC/EwkC,EAAEmiB,KAAO,WACf,OAAaniB,EAAEmiB,KAAOniB,EAAE2U,IAAIrvC,KAAKukC,MAAM,KAAMruC,YACvCwkC,EAAEoiB,SAAW,WACnB,OAAapiB,EAAEoiB,SAAWpiB,EAAE2U,IAAInvC,SAASqkC,MAAM,KAAMruC,YAC/CwkC,EAAEqiB,OAAS,WACjB,OAAariB,EAAEqiB,OAASriB,EAAE2U,IAAI/uC,OAAOikC,MAAM,KAAMruC,YAC3CwkC,EAAEsiB,KAAO,WACf,OAAatiB,EAAEsiB,KAAOtiB,EAAE2U,IAAI7uC,KAAK+jC,MAAM,KAAMruC,YACvCwkC,EAAEuiB,KAAO,WACf,OAAaviB,EAAEuiB,KAAOviB,EAAE2U,IAAI3uC,KAAK6jC,MAAM,KAAMruC,YACvCwkC,EAAEwiB,OAAS,WACjB,OAAaxiB,EAAEwiB,OAASxiB,EAAE2U,IAAIvuC,OAAOyjC,MAAM,KAAMruC,YAC3CwkC,EAAEyiB,eAAiB,WACzB,OAAaziB,EAAEyiB,eAAiBziB,EAAE2U,IAAIjuC,eAAemjC,MAAM,KAAMruC,YAC3DwkC,EAAE0iB,OAAS,WACjB,OAAa1iB,EAAE0iB,OAAS1iB,EAAE2U,IAAI/tC,OAAOijC,MAAM,KAAMruC,YAC3CwkC,EAAE2iB,UAAY,WACpB,OAAa3iB,EAAE2iB,UAAY3iB,EAAE2U,IAAI7tC,UAAU+iC,MAAM,KAAMruC,YACjDwkC,EAAE4iB,gBAAkB,WAC1B,OAAa5iB,EAAE4iB,gBAAkB5iB,EAAE2U,IAAIztC,gBAAgB2iC,MAAM,KAAMruC,YAC7DwkC,EAAE6iB,aAAe,WACvB,OAAa7iB,EAAE6iB,aAAe7iB,EAAE2U,IAAIvtC,aAAayiC,MAAM,KAAMruC,YACvDwkC,EAAE8iB,sBAAwB,WAChC,OAAa9iB,EAAE8iB,sBAAwB9iB,EAAE2U,IAAIrtC,sBAAsBuiC,MAAM,KAAMruC,YACzEwkC,EAAE+iB,QAAU,WAClB,OAAa/iB,EAAE+iB,QAAU/iB,EAAE2U,IAAIqO,QAAQnZ,MAAM,KAAMruC,YAC7CwkC,EAAEijB,UAAY,WACpB,OAAajjB,EAAEijB,UAAYjjB,EAAE2U,IAAIjtC,UAAUmiC,MAAM,KAAMruC,YACjDwkC,EAAEkjB,SAAW,WACnB,OAAaljB,EAAEkjB,SAAWljB,EAAE2U,IAAI3sC,SAAS6hC,MAAM,KAAMruC,YAC/CwkC,EAAEmjB,cAAgB,WACxB,OAAanjB,EAAEmjB,cAAgBnjB,EAAE2U,IAAIzsC,cAAc2hC,MAAM,KAAMruC,YACzDwkC,EAAEojB,UAAY,WACpB,OAAapjB,EAAEojB,UAAYpjB,EAAE2U,IAAIjsC,UAAUmhC,MAAM,KAAMruC,YACjDwkC,EAAEqjB,OAAS,WACjB,OAAarjB,EAAEqjB,OAASrjB,EAAE2U,IAAI/rC,OAAOihC,MAAM,KAAMruC,YAC3CwkC,EAAEsjB,OAAS,WACjB,OAAatjB,EAAEsjB,OAAStjB,EAAE2U,IAAI7rC,OAAO+gC,MAAM,KAAMruC,YAC3CwkC,EAAEujB,KAAO,WACf,OAAavjB,EAAEujB,KAAOvjB,EAAE2U,IAAIzrC,KAAK2gC,MAAM,KAAMruC,YACvCwkC,EAAEwjB,SAAW,WACnB,OAAaxjB,EAAEwjB,SAAWxjB,EAAE2U,IAAIvrC,SAASygC,MAAM,KAAMruC,YAC/CwkC,EAAEyjB,WAAa,WACrB,OAAazjB,EAAEyjB,WAAazjB,EAAE2U,IAAIrrC,WAAWugC,MAAM,KAAMruC,YACnDwkC,EAAE0jB,MAAQ,WAChB,OAAa1jB,EAAE0jB,MAAQ1jB,EAAE2U,IAAInrC,MAAMqgC,MAAM,KAAMruC,YACzCwkC,EAAE2jB,WAAa,WACrB,OAAa3jB,EAAE2jB,WAAa3jB,EAAE2U,IAAIjrC,WAAWmgC,MAAM,KAAMruC,YACnDwkC,EAAE4jB,UAAY,WACpB,OAAa5jB,EAAE4jB,UAAY5jB,EAAE2U,IAAI/qC,UAAUigC,MAAM,KAAMruC,YACjDwkC,EAAE6jB,KAAO,WACf,OAAa7jB,EAAE6jB,KAAO7jB,EAAE2U,IAAI7qC,KAAK+/B,MAAM,KAAMruC,YACvCwkC,EAAE8jB,OAAS,WACjB,OAAa9jB,EAAE8jB,OAAS9jB,EAAE2U,IAAI3qC,OAAO6/B,MAAM,KAAMruC,YAC3CwkC,EAAE+jB,YAAc,WACtB,OAAa/jB,EAAE+jB,YAAc/jB,EAAE2U,IAAIvqC,YAAYy/B,MAAM,KAAMruC,YACrDwkC,EAAEgkB,YAAc,WACtB,OAAahkB,EAAEgkB,YAAchkB,EAAE2U,IAAIrqC,YAAYu/B,MAAM,KAAMruC,YACrDwkC,EAAEikB,WAAa,WACrB,OAAajkB,EAAEikB,WAAajkB,EAAE2U,IAAInqC,WAAWq/B,MAAM,KAAMruC,YACnDwkC,EAAEkkB,YAAc,WACtB,OAAalkB,EAAEkkB,YAAclkB,EAAE2U,IAAIjqC,YAAYm/B,MAAM,KAAMruC,YACrDwkC,EAAEmkB,KAAO,WACf,OAAankB,EAAEmkB,KAAOnkB,EAAE2U,IAAIvpC,KAAKy+B,MAAM,KAAMruC,YACvCwkC,EAAEokB,SAAW,WACnB,OAAapkB,EAAEokB,SAAWpkB,EAAE2U,IAAIrpC,SAASu+B,MAAM,KAAMruC,YAC/CwkC,EAAEqkB,WAAa,WACrB,OAAarkB,EAAEqkB,WAAarkB,EAAE2U,IAAInpC,WAAWq+B,MAAM,KAAMruC,YACnDwkC,EAAEskB,eAAiB,WACzB,OAAatkB,EAAEskB,eAAiBtkB,EAAE2U,IAAIjpC,eAAem+B,MAAM,KAAMruC,YAC3DwkC,EAAEukB,aAAe,WACvB,OAAavkB,EAAEukB,aAAevkB,EAAE2U,IAAI/oC,aAAai+B,MAAM,KAAMruC,YACvDwkC,EAAEwkB,mBAAqB,WAC7B,OAAaxkB,EAAEwkB,mBAAqBxkB,EAAE2U,IAAI7oC,mBAAmB+9B,MAAM,KAAMruC,YACnEwkC,EAAEykB,SAAW,WACnB,OAAazkB,EAAEykB,SAAWzkB,EAAE2U,IAAI3oC,SAAS69B,MAAM,KAAMruC,YAC/CwkC,EAAE0kB,MAAQ,WAChB,OAAa1kB,EAAE0kB,MAAQ1kB,EAAE2U,IAAIzoC,MAAM29B,MAAM,KAAMruC,YACzCwkC,EAAE2kB,KAAO,WACf,OAAa3kB,EAAE2kB,KAAO3kB,EAAE2U,IAAIvoC,KAAKy9B,MAAM,KAAMruC,YACvCwkC,EAAE4kB,SAAW,WACnB,OAAa5kB,EAAE4kB,SAAW5kB,EAAE2U,IAAIroC,SAASu9B,MAAM,KAAMruC,YAC/CwkC,EAAE6kB,WAAa,WACrB,OAAa7kB,EAAE6kB,WAAa7kB,EAAE2U,IAAInoC,WAAWq9B,MAAM,KAAMruC,YACnDwkC,EAAE8kB,KAAO,WACf,OAAa9kB,EAAE8kB,KAAO9kB,EAAE2U,IAAIjoC,KAAKm9B,MAAM,KAAMruC,YACvCwkC,EAAE+kB,aAAe,WACvB,OAAa/kB,EAAE+kB,aAAe/kB,EAAE2U,IAAI7nC,aAAa+8B,MAAM,KAAMruC,YACvDwkC,EAAEglB,UAAY,WACpB,OAAahlB,EAAEglB,UAAYhlB,EAAE2U,IAAI3nC,UAAU68B,MAAM,KAAMruC,YACjDwkC,EAAEilB,KAAO,WACf,OAAajlB,EAAEilB,KAAOjlB,EAAE2U,IAAIznC,KAAK28B,MAAM,KAAMruC,YACvCwkC,EAAEklB,qBAAuB,WAC/B,OAAallB,EAAEklB,qBAAuBllB,EAAE2U,IAAIvnC,qBAAqBy8B,MAAM,KAAMruC,YACvEwkC,EAAEmlB,qBAAuB,WAC/B,OAAanlB,EAAEmlB,qBAAuBnlB,EAAE2U,IAAIrnC,qBAAqBu8B,MAAM,KAAMruC,YACvEwkC,EAAEolB,qBAAuB,WAC/B,OAAaplB,EAAEolB,qBAAuBplB,EAAE2U,IAAInnC,qBAAqBq8B,MAAM,KAAMruC,YACvEwkC,EAAEqlB,UAAY,WACpB,OAAarlB,EAAEqlB,UAAYrlB,EAAE2U,IAAIjnC,UAAUm8B,MAAM,KAAMruC,YACjDwkC,EAAEslB,QAAU,WAClB,OAAatlB,EAAEslB,QAAUtlB,EAAE2U,IAAI7mC,QAAQ+7B,MAAM,KAAMruC,YAC7CwkC,EAAEulB,OAAS,WACjB,OAAavlB,EAAEulB,OAASvlB,EAAE2U,IAAInmC,OAAOq7B,MAAM,KAAMruC,YAC3CwkC,EAAEwlB,KAAO,WACf,OAAaxlB,EAAEwlB,KAAOxlB,EAAE2U,IAAI/lC,KAAKi7B,MAAM,KAAMruC,YACvCwkC,EAAEylB,OAAS,WACjB,OAAazlB,EAAEylB,OAASzlB,EAAE2U,IAAI7lC,OAAO+6B,MAAM,KAAMruC,YAC3CwkC,EAAE0lB,MAAQ,WAChB,OAAa1lB,EAAE0lB,MAAQ1lB,EAAE2U,IAAI3lC,MAAM66B,MAAM,KAAMruC,YACzCwkC,EAAE2lB,SAAW,WACnB,OAAa3lB,EAAE2lB,SAAW3lB,EAAE2U,IAAI3kC,SAAS65B,MAAM,KAAMruC,YAC/CwkC,EAAE4lB,YAAc,WACtB,OAAa5lB,EAAE4lB,YAAc5lB,EAAE2U,IAAIzkC,YAAY25B,MAAM,KAAMruC,YACrDwkC,EAAE6lB,MAAQ,WAChB,OAAa7lB,EAAE6lB,MAAQ7lB,EAAE2U,IAAIrkC,MAAMu5B,MAAM,KAAMruC,YAC1CwkC,EAAE8lB,OAAS,WAChB,OAAY9lB,EAAE8lB,OAAS9lB,EAAE2U,IAAInkC,OAAOq5B,MAAM,KAAMruC,YAC1CwkC,EAAE+lB,gBAAkB,WAC1B,OAAa/lB,EAAE+lB,gBAAkB/lB,EAAE2U,IAAI/jC,gBAAgBi5B,MAAM,KAAMruC,YAC7DwkC,EAAEgmB,oBAAsB,WAC9B,OAAahmB,EAAEgmB,oBAAsBhmB,EAAE2U,IAAI7jC,oBAAoB+4B,MAAM,KAAMruC,YACrEwkC,EAAEimB,uBAAyB,WACjC,OAAajmB,EAAEimB,uBAAyBjmB,EAAE2U,IAAI3jC,uBAAuB64B,MAAM,KAAMruC,YAC3EwkC,EAAEkmB,2BAA6B,WACrC,OAAalmB,EAAEkmB,2BAA6BlmB,EAAE2U,IAAIzjC,2BAA2B24B,MAAM,KAAMruC,YACnFwkC,EAAEmmB,SAAW,WACnB,OAAanmB,EAAEmmB,SAAWnmB,EAAE2U,IAAIvjC,SAASy4B,MAAM,KAAMruC,YAC/CwkC,EAAEomB,kBAAoB,WAC5B,OAAapmB,EAAEomB,kBAAoBpmB,EAAE2U,IAAIrjC,kBAAkBu4B,MAAM,KAAMruC,YACjEwkC,EAAEqmB,OAAS,WACjB,OAAarmB,EAAEqmB,OAASrmB,EAAE2U,IAAInjC,OAAOq4B,MAAM,KAAMruC,YAC3CwkC,EAAEsmB,OAAS,WACjB,OAAatmB,EAAEsmB,OAAStmB,EAAE2U,IAAIjjC,OAAOm4B,MAAM,KAAMruC,YAC3CwkC,EAAEumB,WAAa,WACrB,OAAavmB,EAAEumB,WAAavmB,EAAE2U,IAAI7iC,WAAW+3B,MAAM,KAAMruC,YACnDwkC,EAAEwmB,cAAgB,WACxB,OAAaxmB,EAAEwmB,cAAgBxmB,EAAE2U,IAAI3iC,cAAc63B,MAAM,KAAMruC,YACzDwkC,EAAEymB,UAAY,WACpB,OAAazmB,EAAEymB,UAAYzmB,EAAE2U,IAAI+R,UAAU7c,MAAM,KAAMruC,YACjDwkC,EAAE2mB,MAAQ,WAChB,OAAa3mB,EAAE2mB,MAAQ3mB,EAAE2U,IAAIviC,MAAMy3B,MAAM,KAAMruC,YACzCwkC,EAAE4mB,SAAW,WACnB,OAAa5mB,EAAE4mB,SAAW5mB,EAAE2U,IAAIriC,SAASu3B,MAAM,KAAMruC,YAC/CwkC,EAAE6mB,MAAQ,WAChB,OAAa7mB,EAAE6mB,MAAQ7mB,EAAE2U,IAAIniC,MAAMq3B,MAAM,KAAMruC,YACzCwkC,EAAE8mB,KAAO,WACf,OAAa9mB,EAAE8mB,KAAO9mB,EAAE2U,IAAIjiC,KAAKm3B,MAAM,KAAMruC,YACvCwkC,EAAE+mB,MAAQ,WAChB,OAAa/mB,EAAE+mB,MAAQ/mB,EAAE2U,IAAI/hC,MAAMi3B,MAAM,KAAMruC,YACzCwkC,EAAEgnB,SAAW,WACnB,OAAahnB,EAAEgnB,SAAWhnB,EAAE2U,IAAI3hC,SAAS62B,MAAM,KAAMruC,YAC/CwkC,EAAEinB,UAAY,WACpB,OAAajnB,EAAEinB,UAAYjnB,EAAE2U,IAAIzhC,UAAU22B,MAAM,KAAMruC,YACjDwkC,EAAEknB,qBAAuB,WAC/B,OAAalnB,EAAEknB,qBAAuBlnB,EAAE2U,IAAIrhC,qBAAqBu2B,MAAM,KAAMruC,YACvEwkC,EAAEmnB,eAAiB,WACzB,OAAannB,EAAEmnB,eAAiBnnB,EAAE2U,IAAInhC,eAAeq2B,MAAM,KAAMruC,YAC3DwkC,EAAEonB,wBAA0B,WAClC,OAAapnB,EAAEonB,wBAA0BpnB,EAAE2U,IAAI0S,wBAAwBxd,MAAM,KAAMruC,YAC7EwkC,EAAEsnB,eAAiB,WACzB,OAAatnB,EAAEsnB,eAAiBtnB,EAAE2U,IAAI7gC,eAAe+1B,MAAM,KAAMruC,YAC3DwkC,EAAEunB,MAAQ,WAChB,OAAavnB,EAAEunB,MAAQvnB,EAAE2U,IAAIzgC,MAAM21B,MAAM,KAAMruC,YACzCwkC,EAAEwnB,QAAU,WAClB,OAAaxnB,EAAEwnB,QAAUxnB,EAAE2U,IAAIvgC,QAAQy1B,MAAM,KAAMruC,YAC7CwkC,EAAEynB,mBAAqB,WAC7B,OAAaznB,EAAEynB,mBAAqBznB,EAAE2U,IAAIrgC,mBAAmBu1B,MAAM,KAAMruC,YACnEwkC,EAAE0nB,MAAQ,WAChB,OAAa1nB,EAAE0nB,MAAQ1nB,EAAE2U,IAAIjgC,MAAMm1B,MAAM,KAAMruC,YACzCwkC,EAAE2nB,cAAgB,WACxB,OAAa3nB,EAAE2nB,cAAgB3nB,EAAE2U,IAAI//B,cAAci1B,MAAM,KAAMruC,YACzDwkC,EAAE4nB,KAAO,WACf,OAAa5nB,EAAE4nB,KAAO5nB,EAAE2U,IAAIv/B,KAAKy0B,MAAM,KAAMruC,YACvCwkC,EAAE6nB,KAAO,WACf,OAAa7nB,EAAE6nB,KAAO7nB,EAAE2U,IAAIr/B,KAAKu0B,MAAM,KAAMruC,YACvCwkC,EAAE8nB,KAAO,WACf,OAAa9nB,EAAE8nB,KAAO9nB,EAAE2U,IAAIn/B,KAAKq0B,MAAM,KAAMruC,YACvCwkC,EAAE+nB,MAAQ,WAChB,OAAa/nB,EAAE+nB,MAAQ/nB,EAAE2U,IAAIj/B,MAAMm0B,MAAM,KAAMruC,YACzCwkC,EAAEgoB,qBAAuB,WAC/B,OAAahoB,EAAEgoB,qBAAuBhoB,EAAE2U,IAAI3+B,qBAAqB6zB,MAAM,KAAMruC,YACvEwkC,EAAEioB,MAAQ,WAChB,OAAajoB,EAAEioB,MAAQjoB,EAAE2U,IAAIz+B,MAAM2zB,MAAM,KAAMruC,YACzCwkC,EAAEkoB,MAAQ,WAChB,OAAaloB,EAAEkoB,MAAQloB,EAAE2U,IAAIv+B,MAAMyzB,MAAM,KAAMruC,YACzCwkC,EAAEmoB,WAAa,WACrB,OAAanoB,EAAEmoB,WAAanoB,EAAE2U,IAAIr+B,WAAWuzB,MAAM,KAAMruC,YACnDwkC,EAAEooB,WAAa,WACrB,OAAapoB,EAAEooB,WAAapoB,EAAE2U,IAAIn+B,WAAWqzB,MAAM,KAAMruC,YACnDwkC,EAAEqoB,cAAgB,WACxB,OAAaroB,EAAEqoB,cAAgBroB,EAAE2U,IAAIn9B,cAAcqyB,MAAM,KAAMruC,YACzDwkC,EAAEsoB,QAAU,WAClB,OAAatoB,EAAEsoB,QAAUtoB,EAAE2U,IAAI4T,QAAQ1e,MAAM,KAAMruC,YAC7CwkC,EAAEwoB,MAAQ,WAChB,OAAaxoB,EAAEwoB,MAAQxoB,EAAE2U,IAAI8T,MAAM5e,MAAM,KAAMruC,YACzCwkC,EAAE0oB,sBAAwB,WAChC,OAAa1oB,EAAE0oB,sBAAwB1oB,EAAE2U,IAAIE,sBAAsBhL,MAAM,KAAMruC,YACzEwkC,EAAE2oB,cAAgB,WACxB,OAAQrQ,GAAKtY,EAAE2oB,cAAgB3oB,EAAE2U,IAAIiU,cAAc/e,MAAM,KAAMruC,aAG9Dw+C,IAFKha,EAAE6oB,kBAAoB,WAC5B,OAAa7oB,EAAE6oB,kBAAoB7oB,EAAE2U,IAAImU,kBAAkBjf,MAAM,KAAMruC,YACjEwkC,EAAE+oB,yBAA2B,WACnC,OAAQ/O,GAAKha,EAAE+oB,yBAA2B/oB,EAAE2U,IAAIqU,yBAAyBnf,MAAM,KAAMruC,aAOpFqgD,IANK7b,EAAEipB,4BAA8B,WACtC,OAAajpB,EAAEipB,4BAA8BjpB,EAAE2U,IAAIuU,4BAA4Brf,MAAM,KAAMruC,YACrFwkC,EAAEmpB,6CAA+C,WACvD,OAAanpB,EAAEmpB,6CAA+CnpB,EAAE2U,IAAIyU,6CAA6Cvf,MAAM,KAAMruC,YACvHwkC,EAAEqpB,mCAAqC,WAC7C,OAAarpB,EAAEqpB,mCAAqCrpB,EAAE2U,IAAI2U,mCAAmCzf,MAAM,KAAMruC,YACnGwkC,EAAEupB,0CAA4C,WACpD,OAAQ1N,GAAK7b,EAAEupB,0CAA4CvpB,EAAE2U,IAAI6U,0CAA0C3f,MAAM,KAAMruC,aAGtHi/C,IAFKza,EAAEypB,gCAAkC,WAC1C,OAAazpB,EAAEypB,gCAAkCzpB,EAAE2U,IAAI+U,gCAAgC7f,MAAM,KAAMruC,YAC7FwkC,EAAE2pB,sCAAwC,WAChD,OAAQlP,GAAKza,EAAE2pB,sCAAwC3pB,EAAE2U,IAAIiV,sCAAsC/f,MAAM,KAAMruC,aAC9Gu6C,GAAK/V,EAAE6pB,8BAAgC,WACxC,OAAQ9T,GAAK/V,EAAE6pB,8BAAgC7pB,EAAE2U,IAAImV,8BAA8BjgB,MAAM,KAAMruC,YAC9Fs+C,GAAK9Z,EAAE+pB,yBAA2B,WACnC,OAAQjQ,GAAK9Z,EAAE+pB,yBAA2B/pB,EAAE2U,IAAIqV,yBAAyBngB,MAAM,KAAMruC,YACpF+9C,GAAKvZ,EAAEiqB,6BAA+B,WACvC,OAAQ1Q,GAAKvZ,EAAEiqB,6BAA+BjqB,EAAE2U,IAAIuV,6BAA6BrgB,MAAM,KAAMruC,YAC5FmgD,GAAK3b,EAAEmqB,UAAY,WACpB,OAAQxO,GAAK3b,EAAEmqB,UAAYnqB,EAAE2U,IAAIwV,WAAWtgB,MAAM,KAAMruC,YACvDg+C,GAAKxZ,EAAEoqB,aAAe,WACvB,OAAQ5Q,GAAKxZ,EAAEoqB,aAAepqB,EAAE2U,IAAIyV,cAAcvgB,MAAM,KAAMruC,YAC7DogD,GAAK5b,EAAEqqB,WAAa,WACrB,OAAQzO,GAAK5b,EAAEqqB,WAAarqB,EAAE2U,IAAI0V,YAAYxgB,MAAM,KAAMruC,YACpDwkC,EAAEsqB,iBAAmB,WAC3B,OAAatqB,EAAEsqB,iBAAmBtqB,EAAE2U,IAAI2V,kBAAkBzgB,MAAM,KAAMruC,YAChEwkC,EAAEuqB,aAAe,WACvB,OAAavqB,EAAEuqB,aAAevqB,EAAE2U,IAAI4V,cAAc1gB,MAAM,KAAMruC,YAOhE,SAASgvD,GAAGxe,GACV,GAAIA,EAAIA,GAAKrI,IAAGuP,GAAK,GAArB,CAEA,GAAI3K,EAEF,OADA9G,EAAEzB,GAAI4S,UAAM6X,YAAYzqB,GAGtBuS,KAAMW,GAAK,IAKflT,EAAE0qB,WAAa1qB,EAAE0qB,UAAU,cAAe/P,YAAW,WACnDA,YAAW,WACT3a,EAAE0qB,UAAU,MACX,GAAIze,MACN,IAAMA,KAPT,SAASA,IACPwR,KAAOA,IAAK,EAAMzd,EAAE2qB,WAAY,GAAO/nB,IAAOgQ,KAAMnR,EAAEzB,GAAIA,EAAE4qB,sBAAwB5qB,EAAE4qB,uBAAwB/X,QAQlH,GAvBA7S,EAAE6qB,iBAAmBld,GAAI3N,EAAE+R,WAAaxG,EAAIvL,EAAE8qB,MAAQvN,GAAIvd,EAAE+qB,WAAale,GAAI7M,EAAEyZ,QAAUzE,GAEzF5B,GAAK,SAASpH,IACZyR,IAAM+M,KAAM/M,KAAOrK,GAAKpH,IAoBtBhM,EAAEgrB,QACJ,IAAyB,mBAAbhrB,EAAEgrB,UAA0BhrB,EAAEgrB,QAAU,CAAChrB,EAAEgrB,UAAWhrB,EAAEgrB,QAAQvvD,OAAS,GACnFukC,EAAEgrB,QAAQ3R,KAAVrZ,GASJ,GARAwqB,KAEAlnB,IAAMoa,GAAK,CAAEtR,kBAAmBF,EAAQC,UAAU,qBAAqB8e,QAAO,SAASjf,GACrF,OAAQ1I,EAAE8I,kBAAkBnwC,QAAQ+vC,IAAM,KACxCK,mBAAoBH,EAAQC,UAAU,sBAAsB8e,QAAO,SAASjf,GAC9E,OAAQ1I,EAAE+I,mBAAmBpwC,QAAQ+vC,IAAM,OAGb,oBAArBkf,kBACTvN,GAAKuN,sBACF,IAAiB,oBAANruB,EAGd,MAAM,IAAI2C,MAAM,yCAFhBme,GAAK9gB,EAGP,GAAI6gB,GAAI,CACN,IAAIyN,GAAKxN,GAAG+B,SACZ/B,GAAG+B,SAAW,WACZyL,KAAMzN,GAAGtR,kBAAkB8I,SAAQ,SAASlJ,GAC1CE,EAAQkf,eAAe,oBAAqBpf,MAC1C0R,GAAGrR,mBAAmB6I,SAAQ,SAASlJ,GACzCE,EAAQkf,eAAe,qBAAsBpf,OAInD,OAAOnP,EAAGpO,QA7+BL,GAg/BI,iBAANuc,GAA+B,iBAANC,EAAiBA,EAAGnO,QAAUoO,EAAsB,mBAAV7E,QAAwB,UAAaA,OAAO,IAAI,WACxH,OAAO6E,KACS,iBAANF,IAAmBA,EAAGqgB,8BAAgCngB,KAEhEogB,EAAK3uB,EAAG,CAAC4uB,EAAKC,KAChBA,EAAG1uB,QAAQ2uB,mBAAqB,ygGAG9BC,EAAK/uB,EAAG,CAACgvB,EAAIC,KACf,IAAIC,EAAK,MACP,IAAIjvB,EAAuB,oBAAZuO,UAA2BA,SAASC,cAAgBD,SAASC,cAAcC,SAAM,EAChG,OAA4CzO,EAAIA,GAAK0O,EAAa,SAASzO,GACzEA,EAAKA,GAAM,GACX,IAA4CK,EAAGC,EAI3CwC,EAJA3C,EAAiB,oBAANH,EAAoBA,EAAK,GACxCG,EAAEvO,MAAQ,IAAIsd,SAAQ,SAAS+f,EAAGC,GAChC7uB,EAAI4uB,EAAG3uB,EAAI4uB,KAGK,oBAAX7f,GAA0BA,EAAQC,YAAcxM,EAAI,CAAEyM,kBAAmBF,EAAQC,UAAU,qBAAsBE,mBAAoBH,EAAQC,UAAU,wBAC9J,IAMI1E,EAAGC,EAAGjB,EANN7G,EAAIzjC,OAAOmwC,OAAO,GAAItP,GAAI6C,EAAI,GAE/B4B,EAAqB,iBAAV8K,OAAoBlJ,EAA4B,mBAAjBmJ,cAA6BlJ,EAAsB,iBAAX4I,GAAkD,iBAApBA,EAAQO,UAAwD,iBAAzBP,EAAQO,SAASC,KAAkBnJ,EAAI,GACjM,SAASI,EAAEmoB,GACT,OAAO9uB,EAAE4P,WAAa5P,EAAE4P,WAAWkf,EAAGvoB,GAAKA,EAAIuoB,EAGjD,SAASxjB,EAAEwjB,GACLA,aAAa3Y,IAEjBxK,EAAE,6BAA+BmjB,GAEnC,GAAIxoB,EAAG,CACL,IAAIiF,EAAImC,IAAMlC,EAAImC,IACdpH,EAAJF,EAAQmF,EAAEsE,QAAQvJ,GAAK,IAAUwJ,EAAY,IAAKtF,EAAI,CAACqkB,EAAGC,KAAQD,EAAIvZ,GAAGuZ,GAAK,IAAI5e,IAAI4e,GAAKtjB,EAAE2E,UAAU2e,GAAIvjB,EAAE6E,aAAa0e,EAAGC,OAAK,EAAS,SAAUtlB,EAAKqlB,IACxJ,IAAIC,EAAKtkB,EAAEqkB,GAAG,GACd,OAAOC,EAAGxwC,SAAWwwC,EAAK,IAAIjuB,WAAWiuB,IAAMA,GAC9CrkB,EAAI,CAACokB,EAAGC,EAAIC,KACbF,EAAIvZ,GAAGuZ,GAAK,IAAI5e,IAAI4e,GAAKtjB,EAAE2E,UAAU2e,GAAIvjB,EAAE+E,SAASwe,GAAG,SAASG,EAAIC,GAClED,EAAKD,EAAGC,GAAMF,EAAGG,EAAG3wC,YAErB2wB,EAAQuB,KAAKhyC,OAAS,GAAUywC,EAAQuB,KAAK,GAAGC,QAAQ,MAAO,KAAO7N,EAAIqM,EAAQuB,KAAKla,MAAM,GAAI2Y,EAAQvpC,GAAG,qBAAqB,SAASmpD,GAC3I,KAAMA,aAAa3Y,IACjB,MAAM2Y,KACN5f,EAAQvpC,GAAG,sBAAsB,SAASmpD,GAC5C,MAAMA,KACA,CAACA,EAAGC,KACV,GAAIpgB,IACF,MAAMO,EAAQ0B,SAAWke,EAAGC,EAC9BzjB,EAAEyjB,GAAK7f,EAAQ2B,KAAKie,IACnB9uB,EAAE8Q,QAAU,WACb,MAAO,mCAGRrM,GAAK4B,KAAOA,EAAIE,EAAIwG,KAAKmE,SAASC,KAA0B,oBAAZhD,UAA2BA,SAASC,gBAAkB7H,EAAI4H,SAASC,cAAcC,KAAMzO,IAAM2G,EAAI3G,GAA+B2G,EAAJ,IAAvBA,EAAEtnC,QAAQ,SAAqBsnC,EAAE6K,OAAO,EAAG7K,EAAEmK,QAAQ,SAAU,IAAIW,YAAY,KAAO,GAAS,GAAI5G,EAAKqkB,IAC5P,IAAIC,EAAK,IAAIzd,eACb,OAAOyd,EAAGxd,KAAK,MAAOud,GAAG,GAAQC,EAAGvd,KAAK,MAAOud,EAAGtd,cAClDpL,IAAMoD,EAAKqlB,IACZ,IAAIC,EAAK,IAAIzd,eACb,OAAOyd,EAAGxd,KAAK,MAAOud,GAAG,GAAQC,EAAGrd,aAAe,cAAeqd,EAAGvd,KAAK,MAAO,IAAI1Q,WAAWiuB,EAAGpd,YACjGjH,EAAI,CAACokB,EAAGC,EAAIC,KACd,IAAIC,EAAK,IAAI3d,eACb2d,EAAG1d,KAAK,MAAOud,GAAG,GAAOG,EAAGvd,aAAe,cAAeud,EAAGrd,OAAS,KACnD,KAAbqd,EAAGpd,QAA8B,GAAbod,EAAGpd,QAAeod,EAAGtd,SAC3Cod,EAAGE,EAAGtd,UAGRqd,KACCC,EAAGnd,QAAUkd,EAAIC,EAAGzd,KAAK,OACtBsd,GAAM3gB,SAAS4D,MAAQ+c,GACjC,IAAIrjB,EAAIzL,EAAEjQ,OAASghB,QAAQ9mB,IAAIgoB,KAAKlB,SAAUpF,EAAI3L,EAAEqS,UAAYtB,QAAQmB,KAAKD,KAAKlB,SAClF5xC,OAAOmwC,OAAOtP,EAAG4C,GAAIA,EAAI,KAAM5C,EAAExhC,YAAcqkC,EAAI7C,EAAExhC,WAAYwhC,EAAEsS,aAAoBtS,EAAEsS,YAActS,EAAEuS,MAAavS,EAAEuS,KACxH,IAAW1G,EACX7L,EAAE4S,aAAe/G,EAAI7L,EAAE4S,YACvB,IAAI9G,EAAI9L,EAAE8S,gBAAiB,EACL,iBAAfnS,aAA2B2U,GAAG,mCACrC,IAAI93C,EAAGuuC,GAAI,EAIX,IA+DIojB,EAAGC,EAAI9pB,EAAgBM,EA/DvB8D,EAA0B,oBAAf0J,YAA6B,IAAIA,YAAY,aAAU,EACtE,SAAShB,EAAE0c,EAAGC,EAAIC,GAChBD,KAAQ,EACR,IAAK,IAAIE,EAAKF,EAAKC,EAAIE,EAAKH,EAAID,EAAEI,MAASA,GAAMD,MAC7CC,EACJ,GAAIA,EAAKH,EAAK,IAAMD,EAAEvwC,QAAUmrB,EAC9B,OAAOA,EAAE4J,OAAOwb,EAAEtb,SAASub,EAAIG,IACjC,IAAK,IAAIG,EAAK,GAAIN,EAAKG,GAAM,CAC3B,IAAII,EAAKR,EAAEC,KACX,GAAW,IAALO,EAAN,CAIA,IAAIC,EAAe,GAAVT,EAAEC,KACX,GAAkB,MAAR,IAALO,GAAL,CAIA,IAAIE,EAAe,GAAVV,EAAEC,KACX,GAAwBO,EAAN,MAAR,IAALA,IAA8B,GAALA,IAAY,GAAKC,GAAM,EAAIC,GAAgB,EAALF,IAAW,GAAKC,GAAM,GAAKC,GAAM,EAAc,GAAVV,EAAEC,KAAYO,EAAK,MAC1HD,GAAMrwD,OAAO4tC,aAAa0iB,OACvB,CACH,IAAIG,EAAKH,EAAK,MACdD,GAAMrwD,OAAO4tC,aAAa,MAAQ6iB,GAAM,GAAI,MAAa,KAALA,SARpDJ,GAAMrwD,OAAO4tC,cAAmB,GAAL0iB,IAAY,EAAIC,QAL3CF,GAAMrwD,OAAO4tC,aAAa0iB,GAgB9B,OAAOD,EAET,SAASljB,EAAE2iB,EAAGC,GACZ,OAAOD,KAAO,EAAGA,EAAI1c,EAAE9M,EAAIwpB,EAAGC,GAAM,GAEtC,SAASW,EAAEZ,EAAGC,EAAIC,EAAIC,GACpB,GAAID,KAAQ,IAAKC,EAAK,GACpB,OAAO,EACT,IAAK,IAAIC,EAAKF,EAAIK,EAAKL,EAAKC,EAAK,EAAGK,EAAK,EAAGA,EAAKR,EAAErwD,SAAU6wD,EAAI,CAC/D,IAAIC,EAAKT,EAAE5lB,WAAWomB,GACtB,GAAIC,GAAM,OAASA,GAAM,MAAO,CAC9B,IAAIC,EAAKV,EAAE5lB,aAAaomB,GACxBC,EAAK,QAAe,KAALA,IAAc,IAAW,KAALC,EAErC,GAAID,GAAM,IAAK,CACb,GAAIP,GAAMK,EACR,MACFN,EAAGC,MAAS,GAAKO,OACZ,GAAIA,GAAM,KAAM,CACrB,GAAIP,EAAK,GAAKK,EACZ,MACFN,EAAGC,MAAS,GAAK,IAAMO,GAAM,EAAGR,EAAGC,MAAS,GAAK,IAAW,GAALO,OAClD,GAAIA,GAAM,MAAO,CACtB,GAAIP,EAAK,GAAKK,EACZ,MACFN,EAAGC,MAAS,GAAK,IAAMO,GAAM,GAAIR,EAAGC,MAAS,GAAK,IAAMO,GAAM,EAAI,GAAIR,EAAGC,MAAS,GAAK,IAAW,GAALO,MACxF,CACL,GAAIP,EAAK,GAAKK,EACZ,MACFN,EAAGC,MAAS,GAAK,IAAMO,GAAM,GAAIR,EAAGC,MAAS,GAAK,IAAMO,GAAM,GAAK,GAAIR,EAAGC,MAAS,GAAK,IAAMO,GAAM,EAAI,GAAIR,EAAGC,MAAS,GAAK,IAAW,GAALO,GAGvI,OAAOR,EAAGC,IAAO,GAAK,EAAGA,EAAKE,EAEhC,SAASS,EAAEb,EAAGC,EAAIC,GAChB,OAAOU,EAAEZ,EAAGxpB,EAAIypB,EAAIC,GAGtB,SAAS7b,EAAG2b,GACVK,EAAIL,EAAG9uB,EAAE8T,MAAQsb,EAAK,IAAIrb,UAAU+a,GAAI9uB,EAAEgU,OAAc,IAAIC,WAAW6a,GAAI9uB,EAAEkU,OAAc,IAAIC,WAAW2a,GAAI9uB,EAAEoU,OAAS9O,EAAK,IAAIxE,WAAWguB,GAAI9uB,EAAEqU,QAAe,IAAIC,YAAYwa,GAAI9uB,EAAEuU,QAAU3O,EAAK,IAAI4O,YAAYsa,GAAI9uB,EAAEyU,QAAe,IAAIC,aAAaoa,GAAI9uB,EAAE2U,QAAe,IAAIC,aAAaka,GAE5R9uB,EAAE8U,eAAX,IAA2CjB,EAAK,GAAIpO,EAAK,GAAI+I,EAAK,GAClE,SAASG,IACP,OAAO7C,EAET,SAAShG,IACP,GAAI9F,EAAEwV,OACJ,IAAwB,mBAAZxV,EAAEwV,SAAyBxV,EAAEwV,OAAS,CAACxV,EAAEwV,SAAUxV,EAAEwV,OAAO/2C,QACtEowC,EAAG7O,EAAEwV,OAAOE,SAChBU,GAAGvC,GAEL,SAAS+b,KACF,EAAMxZ,GAAG3Q,GAEhB,SAASmJ,IACP,GAAI5O,EAAE8V,QACJ,IAAyB,mBAAb9V,EAAE8V,UAA0B9V,EAAE8V,QAAU,CAAC9V,EAAE8V,UAAW9V,EAAE8V,QAAQr3C,QAC1EqwC,EAAG9O,EAAE8V,QAAQJ,SACjBU,GAAG5H,GAEL,SAASK,EAAGigB,GACVjb,EAAGmC,QAAQ8Y,GAEb,SAASe,EAAGf,GACVrpB,EAAGuQ,QAAQ8Y,GAEb,SAAShgB,EAAGggB,GACVtgB,EAAGwH,QAAQ8Y,GAEb,IAAIrgB,EAAK,EAAGoG,EAAK,KAAMM,EAAK,KAC5B,SAASC,EAAG0Z,GACVrgB,IAAMzO,EAAEsW,wBAA0BtW,EAAEsW,uBAAuB7H,GAE7D,SAAS4G,EAAGyZ,GACV,GAAIrgB,IAAMzO,EAAEsW,wBAA0BtW,EAAEsW,uBAAuB7H,GAAW,GAANA,IAAmB,OAAPoG,IAAgB2B,cAAc3B,GAAKA,EAAK,MAAOM,GAAK,CAClI,IAAI4Z,EAAK5Z,EACTA,EAAK,KAAM4Z,KAGf,SAASzZ,GAAGwZ,GACV9uB,EAAEyW,SAAWzW,EAAEyW,QAAQqY,GAAIA,EAAI,WAAaA,EAAI,IAAKnjB,EAAEmjB,GAAI/iB,GAAI,EAAU,EAAG+iB,GAAK,2CACjF,IAAIC,EAAK,IAAIpuB,YAAY+V,aAAaoY,GACtC,MAAM3uB,EAAE4uB,GAAKA,EAEf,IAOInZ,GAPAka,GAAK,wCACT,SAASnf,GAAGme,GACV,OAAOA,EAAEhY,WAAWgZ,IAEtB,SAASva,GAAGuZ,GACV,OAAOA,EAAEhY,WAAW,WAItB,SAASjB,GAAGiZ,GACV,IACE,GAAIA,GAAKlZ,IAAM/J,EACb,OAAO,IAAI/K,WAAW+K,GACxB,GAAIpC,EACF,OAAOA,EAAEqlB,GACX,KAAM,kDACN,MAAOC,GACPzZ,GAAGyZ,IAGP,SAAStZ,KACP,IAAK5J,IAAMpH,GAAK4B,GAAI,CAClB,GAAoB,mBAAT4Q,QAAwB1B,GAAGK,IACpC,OAAOqB,MAAMrB,GAAI,CAAEsB,YAAa,gBAAiBC,MAAK,SAAS2X,GAC7D,IAAKA,EAAE1X,GACL,KAAM,uCAAyCxB,GAAK,IACtD,OAAOkZ,EAAEzX,iBACRC,OAAM,WACP,OAAOzB,GAAGD,OAEd,GAAIlL,EACF,OAAO,IAAIqE,SAAQ,SAAS+f,EAAGC,GAC7BrkB,EAAEkL,IAAI,SAASoZ,GACbF,EAAE,IAAIhuB,WAAWkuB,MAChBD,MAGT,OAAOhgB,QAAQwI,UAAUJ,MAAK,WAC5B,OAAOtB,GAAGD,OAGd,SAASK,KACP,IAAI6Y,EAAI,CAAE7qC,IAAKq1B,GAAI5B,uBAAwB4B,IAC3C,SAASyV,EAAGO,EAAIC,GACd,IAAIC,EAAKF,EAAGxvB,QACZE,EAAE2X,IAAM6X,EAAIhyD,EAAIwiC,EAAE2X,IAAIprB,OAAQ4mB,EAAG31C,EAAE+gB,QAAcyhB,EAAE2X,IAAIG,0BAA2B+X,EAAG7vB,EAAE2X,IAAII,mBAAoB1C,EAAG,oBAGpH,SAAS2Z,EAAGM,GACVP,EAAGO,EAAGjX,UAER,SAAS4W,EAAGK,GACV,OAAO7Z,KAAK0B,MAAK,SAASoY,GACxB,OAAO5uB,YAAY4X,YAAYgX,EAAIT,MAClC3X,MAAK,SAASoY,GACf,OAAOA,KACNpY,KAAKmY,GAAI,SAASC,GACnB5jB,EAAE,0CAA4C4jB,GAAKja,GAAGia,MAG1D,SAASL,IACP,OAAQrjB,GAAgD,mBAApClL,YAAY6X,sBAAuC7H,GAAGiF,KAAQL,GAAGK,KAAQtP,GAAqB,mBAAT2Q,MAKpGgY,EAAGD,GALuH/X,MAAMrB,GAAI,CAAEsB,YAAa,gBAAiBC,MAAK,SAASmY,GACrL,IAAIC,EAAK5uB,YAAY6X,qBAAqB8W,EAAIR,GAC9C,OAAOS,EAAGpY,KAAK6X,GAAI,SAASQ,GAC1B,OAAO7jB,EAAE,kCAAoC6jB,GAAK7jB,EAAE,6CAA8CsjB,EAAGD,SAI3G,GArBA5Z,EAAG,oBAqBCpV,EAAEyY,gBACJ,IACE,IAAI4W,EAAKrvB,EAAEyY,gBAAgBqW,EAAGC,GAC9B,OAAOM,EACP,MAAOC,GACP3jB,EAAE,sDAAwD2jB,GAAKnvB,EAAEmvB,GAErE,OAAOJ,IAAK5X,MAAMnX,GAAI,GAGxB,SAASgW,GAAG2Y,GACVvwD,KAAKuB,KAAO,aAAcvB,KAAKo6C,QAAU,gCAAkCmW,EAAI,IAAKvwD,KAAKszC,OAASid,EAEpG,SAAS1Y,GAAG0Y,GACV,KAAOA,EAAErwD,OAAS,GAChBqwD,EAAEpZ,OAAFoZ,CAAU9uB,GAEd,SAASqW,KACPf,GAAG,IAEL,SAASiB,KACP,OAAO,WAET,SAASxD,KACP,OAAOwD,KAET,SAASK,GAAGkY,EAAGC,EAAIC,GACjB1pB,EAAGgZ,WAAWwQ,IAAM,EAAGC,IAAO,EAAGA,EAAKC,IAAO,GAE/C,SAASnY,GAAGiY,GACV,IACE,OAAOtxD,EAAE6hD,KAAKyP,EAAIK,EAAEja,WAAa,QAAU,IAAK/B,EAAG31C,EAAE+gB,QAAS,EAC9D,MAAOwwC,KAGX,SAAS9e,GAAG6e,GACV,IAAIC,EAAKzpB,EAAG7mC,OACZqwD,KAAU,EACV,IAAIE,EAAKzY,KACT,GAAIuY,EAAIE,EACN,OAAO,EACT,IAAIC,EAAK,CAACO,EAAIC,IAAOD,GAAMC,EAAKD,EAAKC,GAAMA,EAC3C,IAAK,IAAIP,EAAK,EAAGA,GAAM,EAAGA,GAAM,EAAG,CACjC,IAAIG,EAAKN,GAAM,EAAI,GAAMG,GACzBG,EAAK/sB,KAAK3V,IAAI0iC,EAAIP,EAAI,WACtB,IAAIQ,EAAKhtB,KAAK3V,IAAIqiC,EAAIC,EAAG3sB,KAAK3W,IAAImjC,EAAGO,GAAK,QAASE,EAAK1Y,GAAGyY,GAC3D,GAAIC,EACF,OAAO,EAEX,OAAO,EA7GT3Z,GAAK,yBAA0BjF,GAAGiF,MAAQA,GAAKjP,EAAEiP,KAuHjD,SAASmB,GAAG+X,GACV,OAAO,GAET,SAAS9X,GAAG8X,EAAGC,EAAIC,EAAIC,EAAIC,GACzB,OAAO,GAET,IAAI1X,GAAK,CAAC,KAAM,GAAI,IACpB,SAASuY,GAAGjB,EAAGC,GACb,IAAIC,EAAKxX,GAAGsX,GACL,IAAPC,GAAmB,KAAPA,IAAoB,IAAND,EAAUrjB,EAAIE,GAAGyG,EAAE4c,EAAI,IAAKA,EAAGvwD,OAAS,GAAKuwD,EAAG5kB,KAAK2kB,GAEjF,SAASiB,GAAGlB,EAAGC,EAAIC,EAAIC,GACrB,IAAK,IAAIC,EAAK,EAAGG,EAAK,EAAGA,EAAKL,EAAIK,IAAM,CACtC,IAAIC,EAAK1pB,EAAGmpB,IAAO,GAAIQ,EAAK3pB,EAAGmpB,EAAK,IAAM,GAC1CA,GAAM,EACN,IAAK,IAAIS,EAAK,EAAGA,EAAKD,EAAIC,IACxBO,GAAGjB,EAAGxpB,EAAGgqB,EAAKE,IAAO,IACvBN,GAAMK,EAER,OAAO3pB,EAAGqpB,IAAO,GAAKC,EAAI,EAE5B,SAASxW,GAAGoW,GACV,IAAIC,EAAK/uB,EAAE,IAAM8uB,GACjB,OAAOC,EAET,SAASlf,GAAGif,EAAGC,GACbK,EAAGxuD,IAAIkuD,EAAGC,IAAO,GAEnB,SAASnW,GAAGkW,EAAGC,EAAIC,EAAIC,EAAIC,GACzB,IAAIG,EAAK,CAAEt2B,OAASk3B,IAClB,IAAIC,EAAK,EACT,GAAU,MAAND,GAAqB,IAAPA,EAAU,CAC1B,IAAIE,EAAwB,GAAlBF,EAAGxxD,QAAU,GACvByxD,EAAKE,GAAGD,GAAKR,EAAEM,EAAIC,EAAIC,GAEzB,OAAOD,GACN/P,MAAQ8P,IACT,IAAIC,EAAKE,GAAGH,EAAGxxD,QACf,OAAOoxC,GAAGogB,EAAIC,GAAKA,IAErB,SAASZ,EAAGW,GACV,MAAc,WAAPlB,EAAkB5iB,EAAE8jB,GAAa,YAAPlB,IAAqBkB,EAAKA,EAE7D,IAAIV,EAAK7W,GAAGoW,GAAIU,EAAK,GAAIC,EAAK,EAC9B,GAAIR,EACF,IAAK,IAAIoB,EAAK,EAAGA,EAAKpB,EAAGxwD,OAAQ4xD,IAAM,CACrC,IAAIC,EAAKjB,EAAGL,EAAGqB,IACfC,GAAa,IAAPb,IAAaA,EAAKc,MAAOf,EAAGa,GAAMC,EAAGrB,EAAGoB,KAAQb,EAAGa,GAAMpB,EAAGoB,GAEtE,IAAIG,EAAKjB,EAAG1iB,MAAM,KAAM2iB,GACxB,SAASiB,EAAGR,GACV,OAAc,IAAPR,GAAYiB,GAAGjB,GAAKH,EAAGW,GAEhC,OAAOO,EAAKC,EAAGD,GAAKA,EAEtB,SAASrX,GAAG2V,EAAGC,EAAIC,EAAIC,GACrBD,EAAKA,GAAM,GACX,IAAIE,EAAKF,EAAGxO,MAAO8O,GAAc,WAAPA,GAA0B,YAAPA,GAAmBD,EAAY,WAAPN,EACrE,OAAOM,GAAMH,IAAOD,EAAKvW,GAAGoW,GAAK,WAC/B,OAAOlW,GAAGkW,EAAGC,EAAIC,EAAIxwD,UAAWywD,IAGpC,IAgTI0B,GAoBAC,GAMAC,GA1UAvX,GAAK,CAAE6H,MAAO9K,GAAIiL,wBAAyBvO,GAAIyO,sBAAuB5K,GAAI+K,uBAAwB1R,GAAI4R,SAAU9K,GAAI+K,QAAS9K,GAAI+K,SAAUiO,IAoS5IO,IApSuJta,KAAWjW,EAAEgiB,mBAAqB,WAC1L,OAAahiB,EAAEgiB,mBAAqBhiB,EAAE2X,IAAII,mBAAmBlL,MAAM,KAAMruC,YACnEwhC,EAAEiiB,MAAQ,WAChB,OAAajiB,EAAEiiB,MAAQjiB,EAAE2X,IAAI+C,MAAM7N,MAAM,KAAMruC,YACzCwhC,EAAEkiB,yBAA2B,WACnC,OAAaliB,EAAEkiB,yBAA2BliB,EAAE2X,IAAIwK,yBAAyBtV,MAAM,KAAMruC,YAC/EwhC,EAAEoiB,mBAAqB,WAC7B,OAAapiB,EAAEoiB,mBAAqBpiB,EAAE2X,IAAI0K,mBAAmBxV,MAAM,KAAMruC,YACnEwhC,EAAEsiB,iBAAmB,WAC3B,OAAatiB,EAAEsiB,iBAAmBtiB,EAAE2X,IAAI4K,iBAAiB1V,MAAM,KAAMruC,YAC/DwhC,EAAEwiB,cAAgB,WACxB,OAAaxiB,EAAEwiB,cAAgBxiB,EAAE2X,IAAI8K,cAAc5V,MAAM,KAAMruC,YACzDwhC,EAAE0iB,SAAW,WACnB,OAAa1iB,EAAE0iB,SAAW1iB,EAAE2X,IAAIp1B,SAASsqB,MAAM,KAAMruC,YAC/CwhC,EAAE2iB,KAAO,WACf,OAAa3iB,EAAE2iB,KAAO3iB,EAAE2X,IAAI32C,KAAK6rC,MAAM,KAAMruC,YACvCwhC,EAAE4iB,MAAQ,WAChB,OAAa5iB,EAAE4iB,MAAQ5iB,EAAE2X,IAAIz2C,MAAM2rC,MAAM,KAAMruC,YACzCwhC,EAAE6iB,OAAS,WACjB,OAAa7iB,EAAE6iB,OAAS7iB,EAAE2X,IAAIv2C,OAAOyrC,MAAM,KAAMruC,YAC3CwhC,EAAE8iB,KAAO,WACf,OAAa9iB,EAAE8iB,KAAO9iB,EAAE2X,IAAI71C,KAAK+qC,MAAM,KAAMruC,YACvCwhC,EAAE+iB,MAAQ,WAChB,OAAa/iB,EAAE+iB,MAAQ/iB,EAAE2X,IAAI31C,MAAM6qC,MAAM,KAAMruC,YACzCwhC,EAAEgjB,KAAO,WACf,OAAahjB,EAAEgjB,KAAOhjB,EAAE2X,IAAIz1C,KAAK2qC,MAAM,KAAMruC,YACvCwhC,EAAEijB,KAAO,WACf,OAAajjB,EAAEijB,KAAOjjB,EAAE2X,IAAIv1C,KAAKyqC,MAAM,KAAMruC,YACvCwhC,EAAEkjB,QAAU,WAClB,OAAaljB,EAAEkjB,QAAUljB,EAAE2X,IAAIr1C,QAAQuqC,MAAM,KAAMruC,YAC7CwhC,EAAEmjB,QAAU,WAClB,OAAanjB,EAAEmjB,QAAUnjB,EAAE2X,IAAIn1C,QAAQqqC,MAAM,KAAMruC,YAC7CwhC,EAAEojB,MAAQ,WAChB,OAAapjB,EAAEojB,MAAQpjB,EAAE2X,IAAIj1C,MAAMmqC,MAAM,KAAMruC,YACzCwhC,EAAEqjB,OAAS,WACjB,OAAarjB,EAAEqjB,OAASrjB,EAAE2X,IAAI/0C,OAAOiqC,MAAM,KAAMruC,YAC3CwhC,EAAEsjB,MAAQ,WAChB,OAAatjB,EAAEsjB,MAAQtjB,EAAE2X,IAAI70C,MAAM+pC,MAAM,KAAMruC,YACzCwhC,EAAEujB,OAAS,WACjB,OAAavjB,EAAEujB,OAASvjB,EAAE2X,IAAI30C,OAAO6pC,MAAM,KAAMruC,YAC3CwhC,EAAEwjB,OAAS,WACjB,OAAaxjB,EAAEwjB,OAASxjB,EAAE2X,IAAIz0C,OAAO2pC,MAAM,KAAMruC,YAC3CwhC,EAAEyjB,SAAW,WACnB,OAAazjB,EAAEyjB,SAAWzjB,EAAE2X,IAAIv0C,SAASypC,MAAM,KAAMruC,YAC/CwhC,EAAE0jB,WAAa,WACrB,OAAa1jB,EAAE0jB,WAAa1jB,EAAE2X,IAAIr0C,WAAWupC,MAAM,KAAMruC,YACnDwhC,EAAE2jB,eAAiB,WACzB,OAAa3jB,EAAE2jB,eAAiB3jB,EAAE2X,IAAIn0C,eAAeqpC,MAAM,KAAMruC,YAC3DwhC,EAAE4jB,aAAe,WACvB,OAAa5jB,EAAE4jB,aAAe5jB,EAAE2X,IAAIj0C,aAAampC,MAAM,KAAMruC,YACvDwhC,EAAE6jB,aAAe,WACvB,OAAa7jB,EAAE6jB,aAAe7jB,EAAE2X,IAAI7zC,aAAa+oC,MAAM,KAAMruC,YACvDwhC,EAAE8jB,UAAY,WACpB,OAAa9jB,EAAE8jB,UAAY9jB,EAAE2X,IAAIzzC,UAAU2oC,MAAM,KAAMruC,YACjDwhC,EAAE+jB,YAAc,WACtB,OAAa/jB,EAAE+jB,YAAc/jB,EAAE2X,IAAIvzC,YAAYyoC,MAAM,KAAMruC,YACrDwhC,EAAEgkB,MAAQ,WAChB,OAAahkB,EAAEgkB,MAAQhkB,EAAE2X,IAAI/yC,MAAMioC,MAAM,KAAMruC,YACzCwhC,EAAEikB,aAAe,WACvB,OAAajkB,EAAEikB,aAAejkB,EAAE2X,IAAI7yC,aAAa+nC,MAAM,KAAMruC,YACvDwhC,EAAEkkB,QAAU,WAClB,OAAalkB,EAAEkkB,QAAUlkB,EAAE2X,IAAIryC,QAAQunC,MAAM,KAAMruC,YAC7CwhC,EAAEmkB,qBAAuB,WAC/B,OAAankB,EAAEmkB,qBAAuBnkB,EAAE2X,IAAIjyC,qBAAqBmnC,MAAM,KAAMruC,YACvEwhC,EAAEokB,QAAU,WAClB,OAAapkB,EAAEokB,QAAUpkB,EAAE2X,IAAI/xC,QAAQinC,MAAM,KAAMruC,YAC7CwhC,EAAEqkB,wBAA0B,WAClC,OAAarkB,EAAEqkB,wBAA0BrkB,EAAE2X,IAAI7xC,wBAAwB+mC,MAAM,KAAMruC,YAC7EwhC,EAAEskB,uBAAyB,WACjC,OAAatkB,EAAEskB,uBAAyBtkB,EAAE2X,IAAI3xC,uBAAuB6mC,MAAM,KAAMruC,YAC3EwhC,EAAEukB,KAAO,WACf,OAAavkB,EAAEukB,KAAOvkB,EAAE2X,IAAIzxC,KAAK2mC,MAAM,KAAMruC,YACvCwhC,EAAEwkB,MAAQ,WAChB,OAAaxkB,EAAEwkB,MAAQxkB,EAAE2X,IAAIvxC,MAAMymC,MAAM,KAAMruC,YACzCwhC,EAAEykB,eAAiB,WACzB,OAAazkB,EAAEykB,eAAiBzkB,EAAE2X,IAAIrxC,eAAeumC,MAAM,KAAMruC,YAC3DwhC,EAAE0kB,SAAW,WACnB,OAAa1kB,EAAE0kB,SAAW1kB,EAAE2X,IAAInxC,SAASqmC,MAAM,KAAMruC,YAC/CwhC,EAAE2kB,QAAU,WAClB,OAAa3kB,EAAE2kB,QAAU3kB,EAAE2X,IAAIjxC,QAAQmmC,MAAM,KAAMruC,YAC7CwhC,EAAE4kB,eAAiB,WACzB,OAAa5kB,EAAE4kB,eAAiB5kB,EAAE2X,IAAI7wC,eAAe+lC,MAAM,KAAMruC,YAC3DwhC,EAAE6kB,cAAgB,WACxB,OAAa7kB,EAAE6kB,cAAgB7kB,EAAE2X,IAAI3wC,cAAc6lC,MAAM,KAAMruC,YACzDwhC,EAAE8kB,uBAAyB,WACjC,OAAa9kB,EAAE8kB,uBAAyB9kB,EAAE2X,IAAIzwC,uBAAuB2lC,MAAM,KAAMruC,YAC3EwhC,EAAE+kB,MAAQ,WAChB,OAAa/kB,EAAE+kB,MAAQ/kB,EAAE2X,IAAInwC,MAAMqlC,MAAM,KAAMruC,YACzCwhC,EAAEglB,YAAc,WACtB,OAAahlB,EAAEglB,YAAchlB,EAAE2X,IAAIjwC,YAAYmlC,MAAM,KAAMruC,YACrDwhC,EAAEilB,0BAA4B,WACpC,OAAajlB,EAAEilB,0BAA4BjlB,EAAE2X,IAAI/vC,0BAA0BilC,MAAM,KAAMruC,YACjFwhC,EAAEklB,yBAA2B,WACnC,OAAallB,EAAEklB,yBAA2BllB,EAAE2X,IAAI7vC,yBAAyB+kC,MAAM,KAAMruC,YAC/EwhC,EAAEmlB,KAAO,WACf,OAAanlB,EAAEmlB,KAAOnlB,EAAE2X,IAAIrvC,KAAKukC,MAAM,KAAMruC,YACvCwhC,EAAEolB,SAAW,WACnB,OAAaplB,EAAEolB,SAAWplB,EAAE2X,IAAInvC,SAASqkC,MAAM,KAAMruC,YAC/CwhC,EAAEqlB,OAAS,WACjB,OAAarlB,EAAEqlB,OAASrlB,EAAE2X,IAAI/uC,OAAOikC,MAAM,KAAMruC,YAC3CwhC,EAAEslB,KAAO,WACf,OAAatlB,EAAEslB,KAAOtlB,EAAE2X,IAAI7uC,KAAK+jC,MAAM,KAAMruC,YACvCwhC,EAAEulB,KAAO,WACf,OAAavlB,EAAEulB,KAAOvlB,EAAE2X,IAAI3uC,KAAK6jC,MAAM,KAAMruC,YACvCwhC,EAAEwlB,OAAS,WACjB,OAAaxlB,EAAEwlB,OAASxlB,EAAE2X,IAAIvuC,OAAOyjC,MAAM,KAAMruC,YAC3CwhC,EAAEylB,eAAiB,WACzB,OAAazlB,EAAEylB,eAAiBzlB,EAAE2X,IAAIjuC,eAAemjC,MAAM,KAAMruC,YAC3DwhC,EAAE0lB,OAAS,WACjB,OAAa1lB,EAAE0lB,OAAS1lB,EAAE2X,IAAI/tC,OAAOijC,MAAM,KAAMruC,YAC3CwhC,EAAE2lB,UAAY,WACpB,OAAa3lB,EAAE2lB,UAAY3lB,EAAE2X,IAAI7tC,UAAU+iC,MAAM,KAAMruC,YACjDwhC,EAAE4lB,gBAAkB,WAC1B,OAAa5lB,EAAE4lB,gBAAkB5lB,EAAE2X,IAAIztC,gBAAgB2iC,MAAM,KAAMruC,YAC7DwhC,EAAE6lB,aAAe,WACvB,OAAa7lB,EAAE6lB,aAAe7lB,EAAE2X,IAAIvtC,aAAayiC,MAAM,KAAMruC,YACvDwhC,EAAE8lB,sBAAwB,WAChC,OAAa9lB,EAAE8lB,sBAAwB9lB,EAAE2X,IAAIrtC,sBAAsBuiC,MAAM,KAAMruC,YACzEwhC,EAAE+lB,QAAU,WAClB,OAAa/lB,EAAE+lB,QAAU/lB,EAAE2X,IAAIqO,QAAQnZ,MAAM,KAAMruC,YAC7CwhC,EAAEimB,UAAY,WACpB,OAAajmB,EAAEimB,UAAYjmB,EAAE2X,IAAIjtC,UAAUmiC,MAAM,KAAMruC,YACjDwhC,EAAEkmB,SAAW,WACnB,OAAalmB,EAAEkmB,SAAWlmB,EAAE2X,IAAI3sC,SAAS6hC,MAAM,KAAMruC,YAC/CwhC,EAAEmmB,cAAgB,WACxB,OAAanmB,EAAEmmB,cAAgBnmB,EAAE2X,IAAIzsC,cAAc2hC,MAAM,KAAMruC,YACzDwhC,EAAEomB,UAAY,WACpB,OAAapmB,EAAEomB,UAAYpmB,EAAE2X,IAAIjsC,UAAUmhC,MAAM,KAAMruC,YACjDwhC,EAAEqmB,OAAS,WACjB,OAAarmB,EAAEqmB,OAASrmB,EAAE2X,IAAI/rC,OAAOihC,MAAM,KAAMruC,YAC3CwhC,EAAEsmB,OAAS,WACjB,OAAatmB,EAAEsmB,OAAStmB,EAAE2X,IAAI7rC,OAAO+gC,MAAM,KAAMruC,YAC3CwhC,EAAEumB,KAAO,WACf,OAAavmB,EAAEumB,KAAOvmB,EAAE2X,IAAIzrC,KAAK2gC,MAAM,KAAMruC,YACvCwhC,EAAEwmB,SAAW,WACnB,OAAaxmB,EAAEwmB,SAAWxmB,EAAE2X,IAAIvrC,SAASygC,MAAM,KAAMruC,YAC/CwhC,EAAEymB,WAAa,WACrB,OAAazmB,EAAEymB,WAAazmB,EAAE2X,IAAIrrC,WAAWugC,MAAM,KAAMruC,YACnDwhC,EAAE0mB,MAAQ,WAChB,OAAa1mB,EAAE0mB,MAAQ1mB,EAAE2X,IAAInrC,MAAMqgC,MAAM,KAAMruC,YACzCwhC,EAAE2mB,WAAa,WACrB,OAAa3mB,EAAE2mB,WAAa3mB,EAAE2X,IAAIjrC,WAAWmgC,MAAM,KAAMruC,YACnDwhC,EAAE4mB,UAAY,WACpB,OAAa5mB,EAAE4mB,UAAY5mB,EAAE2X,IAAI/qC,UAAUigC,MAAM,KAAMruC,YACjDwhC,EAAE6mB,KAAO,WACf,OAAa7mB,EAAE6mB,KAAO7mB,EAAE2X,IAAI7qC,KAAK+/B,MAAM,KAAMruC,YACvCwhC,EAAE8mB,OAAS,WACjB,OAAa9mB,EAAE8mB,OAAS9mB,EAAE2X,IAAI3qC,OAAO6/B,MAAM,KAAMruC,YAC3CwhC,EAAE+mB,YAAc,WACtB,OAAa/mB,EAAE+mB,YAAc/mB,EAAE2X,IAAIvqC,YAAYy/B,MAAM,KAAMruC,YACrDwhC,EAAEgnB,YAAc,WACtB,OAAahnB,EAAEgnB,YAAchnB,EAAE2X,IAAIrqC,YAAYu/B,MAAM,KAAMruC,YACrDwhC,EAAEinB,WAAa,WACrB,OAAajnB,EAAEinB,WAAajnB,EAAE2X,IAAInqC,WAAWq/B,MAAM,KAAMruC,YACnDwhC,EAAEknB,YAAc,WACtB,OAAalnB,EAAEknB,YAAclnB,EAAE2X,IAAIjqC,YAAYm/B,MAAM,KAAMruC,YACrDwhC,EAAEmnB,KAAO,WACf,OAAannB,EAAEmnB,KAAOnnB,EAAE2X,IAAIvpC,KAAKy+B,MAAM,KAAMruC,YACvCwhC,EAAEonB,SAAW,WACnB,OAAapnB,EAAEonB,SAAWpnB,EAAE2X,IAAIrpC,SAASu+B,MAAM,KAAMruC,YAC/CwhC,EAAEqnB,WAAa,WACrB,OAAarnB,EAAEqnB,WAAarnB,EAAE2X,IAAInpC,WAAWq+B,MAAM,KAAMruC,YACnDwhC,EAAEsnB,eAAiB,WACzB,OAAatnB,EAAEsnB,eAAiBtnB,EAAE2X,IAAIjpC,eAAem+B,MAAM,KAAMruC,YAC3DwhC,EAAEunB,aAAe,WACvB,OAAavnB,EAAEunB,aAAevnB,EAAE2X,IAAI/oC,aAAai+B,MAAM,KAAMruC,YACvDwhC,EAAEwnB,mBAAqB,WAC7B,OAAaxnB,EAAEwnB,mBAAqBxnB,EAAE2X,IAAI7oC,mBAAmB+9B,MAAM,KAAMruC,YACnEwhC,EAAEynB,SAAW,WACnB,OAAaznB,EAAEynB,SAAWznB,EAAE2X,IAAI3oC,SAAS69B,MAAM,KAAMruC,YAC/CwhC,EAAE0nB,MAAQ,WAChB,OAAa1nB,EAAE0nB,MAAQ1nB,EAAE2X,IAAIzoC,MAAM29B,MAAM,KAAMruC,YACzCwhC,EAAE2nB,KAAO,WACf,OAAa3nB,EAAE2nB,KAAO3nB,EAAE2X,IAAIvoC,KAAKy9B,MAAM,KAAMruC,YACvCwhC,EAAE4nB,SAAW,WACnB,OAAa5nB,EAAE4nB,SAAW5nB,EAAE2X,IAAIroC,SAASu9B,MAAM,KAAMruC,YAC/CwhC,EAAE6nB,WAAa,WACrB,OAAa7nB,EAAE6nB,WAAa7nB,EAAE2X,IAAInoC,WAAWq9B,MAAM,KAAMruC,YACnDwhC,EAAE8nB,KAAO,WACf,OAAa9nB,EAAE8nB,KAAO9nB,EAAE2X,IAAIjoC,KAAKm9B,MAAM,KAAMruC,YACvCwhC,EAAE+nB,aAAe,WACvB,OAAa/nB,EAAE+nB,aAAe/nB,EAAE2X,IAAI7nC,aAAa+8B,MAAM,KAAMruC,YACvDwhC,EAAEgoB,UAAY,WACpB,OAAahoB,EAAEgoB,UAAYhoB,EAAE2X,IAAI3nC,UAAU68B,MAAM,KAAMruC,YACjDwhC,EAAEioB,KAAO,WACf,OAAajoB,EAAEioB,KAAOjoB,EAAE2X,IAAIznC,KAAK28B,MAAM,KAAMruC,YACvCwhC,EAAEkoB,qBAAuB,WAC/B,OAAaloB,EAAEkoB,qBAAuBloB,EAAE2X,IAAIvnC,qBAAqBy8B,MAAM,KAAMruC,YACvEwhC,EAAEmoB,qBAAuB,WAC/B,OAAanoB,EAAEmoB,qBAAuBnoB,EAAE2X,IAAIrnC,qBAAqBu8B,MAAM,KAAMruC,YACvEwhC,EAAEooB,qBAAuB,WAC/B,OAAapoB,EAAEooB,qBAAuBpoB,EAAE2X,IAAInnC,qBAAqBq8B,MAAM,KAAMruC,YACvEwhC,EAAEqoB,UAAY,WACpB,OAAaroB,EAAEqoB,UAAYroB,EAAE2X,IAAIjnC,UAAUm8B,MAAM,KAAMruC,YACjDwhC,EAAEsoB,QAAU,WAClB,OAAatoB,EAAEsoB,QAAUtoB,EAAE2X,IAAI7mC,QAAQ+7B,MAAM,KAAMruC,YAC7CwhC,EAAEuoB,OAAS,WACjB,OAAavoB,EAAEuoB,OAASvoB,EAAE2X,IAAInmC,OAAOq7B,MAAM,KAAMruC,YAC3CwhC,EAAEwoB,KAAO,WACf,OAAaxoB,EAAEwoB,KAAOxoB,EAAE2X,IAAI/lC,KAAKi7B,MAAM,KAAMruC,YACvCwhC,EAAEyoB,OAAS,WACjB,OAAazoB,EAAEyoB,OAASzoB,EAAE2X,IAAI7lC,OAAO+6B,MAAM,KAAMruC,YAC3CwhC,EAAE0oB,MAAQ,WAChB,OAAa1oB,EAAE0oB,MAAQ1oB,EAAE2X,IAAI3lC,MAAM66B,MAAM,KAAMruC,YACzCwhC,EAAE2oB,SAAW,WACnB,OAAa3oB,EAAE2oB,SAAW3oB,EAAE2X,IAAI3kC,SAAS65B,MAAM,KAAMruC,YAC/CwhC,EAAE4oB,YAAc,WACtB,OAAa5oB,EAAE4oB,YAAc5oB,EAAE2X,IAAIzkC,YAAY25B,MAAM,KAAMruC,YACrDwhC,EAAE6oB,MAAQ,WAChB,OAAa7oB,EAAE6oB,MAAQ7oB,EAAE2X,IAAIrkC,MAAMu5B,MAAM,KAAMruC,YACzCwhC,EAAE8oB,OAAS,WACjB,OAAa9oB,EAAE8oB,OAAS9oB,EAAE2X,IAAInkC,OAAOq5B,MAAM,KAAMruC,YAC3CwhC,EAAE+oB,gBAAkB,WAC1B,OAAa/oB,EAAE+oB,gBAAkB/oB,EAAE2X,IAAI/jC,gBAAgBi5B,MAAM,KAAMruC,YAC7DwhC,EAAEgpB,oBAAsB,WAC9B,OAAahpB,EAAEgpB,oBAAsBhpB,EAAE2X,IAAI7jC,oBAAoB+4B,MAAM,KAAMruC,YACrEwhC,EAAEipB,uBAAyB,WACjC,OAAajpB,EAAEipB,uBAAyBjpB,EAAE2X,IAAI3jC,uBAAuB64B,MAAM,KAAMruC,YAC3EwhC,EAAEkpB,2BAA6B,WACrC,OAAalpB,EAAEkpB,2BAA6BlpB,EAAE2X,IAAIzjC,2BAA2B24B,MAAM,KAAMruC,YACnFwhC,EAAEmpB,SAAW,WACnB,OAAanpB,EAAEmpB,SAAWnpB,EAAE2X,IAAIvjC,SAASy4B,MAAM,KAAMruC,YAC/CwhC,EAAEopB,kBAAoB,WAC5B,OAAappB,EAAEopB,kBAAoBppB,EAAE2X,IAAIrjC,kBAAkBu4B,MAAM,KAAMruC,YACjEwhC,EAAEqpB,OAAS,WACjB,OAAarpB,EAAEqpB,OAASrpB,EAAE2X,IAAInjC,OAAOq4B,MAAM,KAAMruC,YAC3CwhC,EAAEspB,OAAS,WACjB,OAAatpB,EAAEspB,OAAStpB,EAAE2X,IAAIjjC,OAAOm4B,MAAM,KAAMruC,YAC3CwhC,EAAEupB,WAAa,WACrB,OAAavpB,EAAEupB,WAAavpB,EAAE2X,IAAI7iC,WAAW+3B,MAAM,KAAMruC,YACnDwhC,EAAEwpB,cAAgB,WACxB,OAAaxpB,EAAEwpB,cAAgBxpB,EAAE2X,IAAI3iC,cAAc63B,MAAM,KAAMruC,YACzDwhC,EAAEypB,UAAY,WACpB,OAAazpB,EAAEypB,UAAYzpB,EAAE2X,IAAI+R,UAAU7c,MAAM,KAAMruC,YACjDwhC,EAAE2pB,MAAQ,WAChB,OAAa3pB,EAAE2pB,MAAQ3pB,EAAE2X,IAAIviC,MAAMy3B,MAAM,KAAMruC,YACzCwhC,EAAE4pB,SAAW,WACnB,OAAa5pB,EAAE4pB,SAAW5pB,EAAE2X,IAAIriC,SAASu3B,MAAM,KAAMruC,YAC/CwhC,EAAE6pB,MAAQ,WAChB,OAAa7pB,EAAE6pB,MAAQ7pB,EAAE2X,IAAIniC,MAAMq3B,MAAM,KAAMruC,YACzCwhC,EAAE8pB,KAAO,WACf,OAAa9pB,EAAE8pB,KAAO9pB,EAAE2X,IAAIjiC,KAAKm3B,MAAM,KAAMruC,YACvCwhC,EAAE+pB,MAAQ,WAChB,OAAa/pB,EAAE+pB,MAAQ/pB,EAAE2X,IAAI/hC,MAAMi3B,MAAM,KAAMruC,YACzCwhC,EAAEgqB,SAAW,WACnB,OAAahqB,EAAEgqB,SAAWhqB,EAAE2X,IAAI3hC,SAAS62B,MAAM,KAAMruC,YAC/CwhC,EAAEiqB,UAAY,WACpB,OAAajqB,EAAEiqB,UAAYjqB,EAAE2X,IAAIzhC,UAAU22B,MAAM,KAAMruC,YACjDwhC,EAAEkqB,qBAAuB,WAC/B,OAAalqB,EAAEkqB,qBAAuBlqB,EAAE2X,IAAIrhC,qBAAqBu2B,MAAM,KAAMruC,YACvEwhC,EAAEmqB,eAAiB,WACzB,OAAanqB,EAAEmqB,eAAiBnqB,EAAE2X,IAAInhC,eAAeq2B,MAAM,KAAMruC,YAC3DwhC,EAAEoqB,wBAA0B,WAClC,OAAapqB,EAAEoqB,wBAA0BpqB,EAAE2X,IAAI0S,wBAAwBxd,MAAM,KAAMruC,YAC7EwhC,EAAEsqB,eAAiB,WACzB,OAAatqB,EAAEsqB,eAAiBtqB,EAAE2X,IAAI7gC,eAAe+1B,MAAM,KAAMruC,YAC3DwhC,EAAEuqB,MAAQ,WAChB,OAAavqB,EAAEuqB,MAAQvqB,EAAE2X,IAAIzgC,MAAM21B,MAAM,KAAMruC,YACzCwhC,EAAEwqB,QAAU,WAClB,OAAaxqB,EAAEwqB,QAAUxqB,EAAE2X,IAAIvgC,QAAQy1B,MAAM,KAAMruC,YAC7CwhC,EAAEyqB,mBAAqB,WAC7B,OAAazqB,EAAEyqB,mBAAqBzqB,EAAE2X,IAAIrgC,mBAAmBu1B,MAAM,KAAMruC,YACnEwhC,EAAE0qB,MAAQ,WAChB,OAAa1qB,EAAE0qB,MAAQ1qB,EAAE2X,IAAIjgC,MAAMm1B,MAAM,KAAMruC,YACzCwhC,EAAE2qB,cAAgB,WACxB,OAAa3qB,EAAE2qB,cAAgB3qB,EAAE2X,IAAI//B,cAAci1B,MAAM,KAAMruC,YACzDwhC,EAAE4qB,KAAO,WACf,OAAa5qB,EAAE4qB,KAAO5qB,EAAE2X,IAAIv/B,KAAKy0B,MAAM,KAAMruC,YACvCwhC,EAAE6qB,KAAO,WACf,OAAa7qB,EAAE6qB,KAAO7qB,EAAE2X,IAAIr/B,KAAKu0B,MAAM,KAAMruC,YACvCwhC,EAAE8qB,KAAO,WACf,OAAa9qB,EAAE8qB,KAAO9qB,EAAE2X,IAAIn/B,KAAKq0B,MAAM,KAAMruC,YACvCwhC,EAAE+qB,MAAQ,WAChB,OAAa/qB,EAAE+qB,MAAQ/qB,EAAE2X,IAAIj/B,MAAMm0B,MAAM,KAAMruC,YACzCwhC,EAAEgrB,qBAAuB,WAC/B,OAAahrB,EAAEgrB,qBAAuBhrB,EAAE2X,IAAI3+B,qBAAqB6zB,MAAM,KAAMruC,YACvEwhC,EAAEirB,MAAQ,WAChB,OAAajrB,EAAEirB,MAAQjrB,EAAE2X,IAAIz+B,MAAM2zB,MAAM,KAAMruC,YACzCwhC,EAAEkrB,MAAQ,WAChB,OAAalrB,EAAEkrB,MAAQlrB,EAAE2X,IAAIv+B,MAAMyzB,MAAM,KAAMruC,YACzCwhC,EAAEmrB,WAAa,WACrB,OAAanrB,EAAEmrB,WAAanrB,EAAE2X,IAAIr+B,WAAWuzB,MAAM,KAAMruC,YACnDwhC,EAAEorB,WAAa,WACrB,OAAaprB,EAAEorB,WAAaprB,EAAE2X,IAAIn+B,WAAWqzB,MAAM,KAAMruC,YACnDwhC,EAAEqrB,cAAgB,WACxB,OAAarrB,EAAEqrB,cAAgBrrB,EAAE2X,IAAIn9B,cAAcqyB,MAAM,KAAMruC,YACzDwhC,EAAEsrB,QAAU,WAClB,OAAatrB,EAAEsrB,QAAUtrB,EAAE2X,IAAI4T,QAAQ1e,MAAM,KAAMruC,YAC7CwhC,EAAEwrB,MAAQ,WAChB,OAAaxrB,EAAEwrB,MAAQxrB,EAAE2X,IAAI8T,MAAM5e,MAAM,KAAMruC,YACzCwhC,EAAE6rB,kBAAoB,WAC5B,OAAa7rB,EAAE6rB,kBAAoB7rB,EAAE2X,IAAImU,kBAAkBjf,MAAM,KAAMruC,YACjEwhC,EAAEmtB,UAAY,WACpB,OAAQoD,GAAKvwB,EAAEmtB,UAAYntB,EAAE2X,IAAIwV,WAAWtgB,MAAM,KAAMruC,aACvDkyD,GAAK1wB,EAAEotB,aAAe,WACvB,OAAQsD,GAAK1wB,EAAEotB,aAAeptB,EAAE2X,IAAIyV,cAAcvgB,MAAM,KAAMruC,YAC7D4xD,GAAKpwB,EAAEqtB,WAAa,WACrB,OAAQ+C,GAAKpwB,EAAEqtB,WAAartB,EAAE2X,IAAI0V,YAAYxgB,MAAM,KAAMruC,YACpDwhC,EAAEstB,iBAAmB,WAC3B,OAAattB,EAAEstB,iBAAmBttB,EAAE2X,IAAI2V,kBAAkBzgB,MAAM,KAAMruC,YAChEwhC,EAAEutB,aAAe,WACvB,OAAavtB,EAAEutB,aAAevtB,EAAE2X,IAAI4V,cAAc1gB,MAAM,KAAMruC,YAOhE,SAASsyD,GAAGhC,GAGV,SAASC,IACP4B,KAAOA,IAAK,EAAM3wB,EAAE2tB,WAAY,GAAO5hB,IAAM6jB,IAAM1vB,EAAEF,GAAIA,EAAE4tB,sBAAwB5tB,EAAE4tB,uBAAwBhf,MAH3GkgB,EAAIA,GAAKjsB,EAAG4L,EAAK,IAAM3I,IAAM2I,EAAK,KAKtCzO,EAAE0tB,WAAa1tB,EAAE0tB,UAAU,cAAe/P,YAAW,WACnDA,YAAW,WACT3d,EAAE0tB,UAAU,MACX,GAAIqB,MACN,IAAMA,KAEX,GAjBA/uB,EAAE8tB,MAAQ3U,GAEVhE,EAAK,SAAS2Z,IACZ6B,IAAMG,KAAMH,KAAOxb,EAAK2Z,IActB9uB,EAAEguB,QACJ,IAAyB,mBAAbhuB,EAAEguB,UAA0BhuB,EAAEguB,QAAU,CAAChuB,EAAEguB,UAAWhuB,EAAEguB,QAAQvvD,OAAS,GACnFuhC,EAAEguB,QAAQ3R,KAAVrc,GASJ,GARA8wB,KAEAnuB,IAAMiuB,GAAK,CAAExhB,kBAAmBF,EAAQC,UAAU,qBAAqB8e,QAAO,SAASa,GACrF,OAAQnsB,EAAEyM,kBAAkBnwC,QAAQ6vD,IAAM,KACxCzf,mBAAoBH,EAAQC,UAAU,sBAAsB8e,QAAO,SAASa,GAC9E,OAAQnsB,EAAE0M,mBAAmBpwC,QAAQ6vD,IAAM,OAG5B,oBAANjvB,EACTgxB,GAAKhxB,MACF,IAA4C,oBAAjCwuB,8BAGd,MAAM,IAAI7rB,MAAM,yCAFhBquB,GAAKxC,8BAGP,GAAIuC,GAAI,CACN,IAAIG,GAAKF,GAAGnO,SACZmO,GAAGnO,SAAW,WACZqO,KAAMH,GAAGxhB,kBAAkB8I,SAAQ,SAAS4W,GAC1C5f,EAAQkf,eAAe,oBAAqBU,MAC1C8B,GAAGvhB,mBAAmB6I,SAAQ,SAAS4W,GACzC5f,EAAQkf,eAAe,qBAAsBU,OAInD,OAAOjvB,EAAGpO,QA5sBL,GA+sBI,iBAANk9B,GAA+B,iBAANC,EAAiBA,EAAG9uB,QAAU+uB,EAAsB,mBAAVxlB,QAAwB,UAAaA,OAAO,IAAI,WACxH,OAAOwlB,KACS,iBAANF,IAAmBA,EAAGT,kBAAoBW,KAEpDhoD,EAAK,MACP,YAAYg5B,EAAIG,GACdzhC,KAAKke,QAAUojB,EAAIthC,KAAKyyD,UAAYhxB,EAAGzhC,KAAK48C,KAAuB,IAAI8V,QAAW1yD,KAAK2yD,aAAe,EAExG,IAAIrxB,GACF,OAAOthC,KAAK48C,KAAK/6C,IAAIy/B,IAAOthC,KAAKyyD,UAAUG,SAAS5yD,KAAKke,QAASojB,GAAKthC,KAAK48C,KAAKp7C,IAAI8/B,GAEvF,IAAIA,EAAIG,GACNzhC,KAAK2yD,eAAgB3yD,KAAK48C,KAAKv6C,IAAIi/B,EAAIG,GAEzC,IAAIH,GACF,OAAOthC,KAAK48C,KAAK/6C,IAAIy/B,GAEvB,OAAOA,GACL,OAAOthC,KAAK2yD,eAAgB3yD,KAAK48C,KAAKiW,OAAOvxB,GAE/C,aACE,OAAOthC,KAAK2yD,eAGZjlD,EAAK,MACP,SAAS4zB,GACP,OAAOwxB,EAAG,YAEZ,OAAOxxB,GACL,OAAOwxB,EAAG,UAEZ,iBACE,OAAO,EAET,KAAKxxB,GACH,OAAOwxB,EAAG,QAEZ,KAAKxxB,GACH,OAAOwxB,EAAG,QAEZ,SAASxxB,GACP,OAAOwxB,EAAG,YAEZ,UAAUxxB,EAAIG,GACZ,OAAOqxB,EAAG,aAEZ,aACE,OAAOA,EAAG,cAEZ,YAAYxxB,EAAIG,GACd,OAAOqxB,EAAG,eAEZ,MAAMxxB,EAAIG,EAAGE,GACX,OAAOmxB,EAAG,SAEZ,KAAKxxB,EAAIG,EAAGE,EAAGC,EAAGwC,GAChB,OAAO0uB,EAAG,QAEZ,wBAAwBxxB,EAAIG,EAAGE,GAC7B,OAAOmxB,EAAG,2BAEZ,SACE,OAAOA,EAAG,UAEZ,iBACE,OAAOA,EAAG,kBAEZ,UACE,OAAiC,KAA1B9yD,KAAK+yD,iBAA0B,KAAO,KAE/C,UACE,OAAOD,EAAG,aAGd,SAASA,EAAGzxB,GACV,MAAM,IAAI4C,MAAM,IAAI5C,6HAEtB,SAAS2xB,EAAG3xB,GACV,IAAIC,EAAKD,EAAEnhC,OAAQuhC,EAAI,EACvB,KAAOH,EAAK,GACVG,EAAIsC,KAAKwK,SAAWjN,EAAK,EAAGA,IAAM2xB,EAAG5xB,EAAGC,EAAIG,GAEhD,SAASyxB,EAAG7xB,EAAGC,GACb,GAAID,EAAEnhC,SAAWohC,EAAGphC,OAClB,MAAM,IAAI+jC,MAAM,yEAAyE5C,EAAEnhC,iCAAiCohC,EAAGphC,UACjI,IAAIuhC,EAAIJ,EAAEnhC,OAAQyhC,EAAI,EACtB,KAAOF,EAAI,GACTE,EAAIoC,KAAKwK,SAAW9M,EAAI,EAAGA,IAAKwxB,EAAG5xB,EAAGI,EAAGE,GAAIsxB,EAAG3xB,EAAIG,EAAGE,GAE3D,SAASwxB,EAAG9xB,EAAGC,EAAIG,GACjB,OAAOsC,KAAK3W,IAAIiU,EAAG0C,KAAK3V,IAAIkT,EAAIG,IAElC,SAAS2xB,EAAG/xB,GACV,OAAOA,EAAI,IAAM,EAAIA,EAAIA,EAAI,EAE/B,SAAS4xB,EAAG5xB,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACVD,EAAEC,GAAMD,EAAEI,GAAIJ,EAAEI,GAAKE,EAEvB,SAAS0xB,GAAGhyB,GACV,IAAIC,EAAK,EACT,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAC5BH,GAAMD,EAAEI,GACV,OAAOH,EAET,SAASgyB,GAAGjyB,EAAGC,GACb,IAAIG,EAAIsC,KAAKwK,SACb,OAAOjN,EAAKG,GAAK,EAAIA,GAAKJ,EAE5B,SAASkyB,GAAGlyB,EAAGC,GACb,IAAIG,EAAI,EACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAAK,CACjC,IAAIC,EAAI4xB,OAAOnyB,EAAEM,IAAM6xB,OAAOlyB,EAAGK,IACjCF,GAAKG,EAAIA,EAEX,OAAOH,EAET,SAAS7iC,GAAEyiC,EAAGC,GACZ,IAAKD,EACH,MAAM,IAAI4C,MAAmB,iBAAN3C,EAAiBA,EAAKA,KAEjD,SAASmyB,GAAGpyB,EAAGC,EAAIG,EAAI,IACrB7iC,GAAE80D,GAAGryB,EAAGC,GAAK,IAAMG,EAAI,WAAWJ,SAASC,gBAE7C,SAAS1X,GAAGyX,GACVziC,GAAO,MAALyiC,EAAW,IAAM,iEAErB,SAASsyB,GAAGtyB,GACV,GAAiB,IAAbA,EAAEnhC,OACJ,OAAO,EACT,IAAIohC,EAAKD,EAAE,GACX,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAC5BH,GAAMD,EAAEI,GACV,OAAOH,EAET,SAASsyB,GAAGvyB,GACV,OAAoB,IAAbA,EAAEnhC,OAEX,SAAS2zD,GAAGxyB,EAAGC,GACb,GAAID,IAAMC,EACR,OAAO,EACT,GAAS,MAALD,GAAmB,MAANC,GAAcD,EAAEnhC,SAAWohC,EAAGphC,OAC7C,OAAO,EACT,IAAK,IAAIuhC,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAC5B,GAAa,OAATJ,EAAEI,IAAyB,OAAVH,EAAGG,IAAeJ,EAAEI,KAAOH,EAAGG,GACjD,OAAO,EACX,OAAO,EAET,SAASiyB,GAAGryB,EAAGC,GACb,GAAID,IAAMC,EACR,OAAO,EACT,GAAS,MAALD,GAAmB,MAANC,GAAcD,EAAEnhC,SAAWohC,EAAGphC,OAC7C,OAAO,EACT,IAAK,IAAIuhC,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAC5B,GAAIJ,EAAEI,KAAOH,EAAGG,GACd,OAAO,EACX,OAAO,EAET,SAASqyB,GAAGzyB,GACV,OAAOA,EAAI,IAAM,EAEnB,SAAS0yB,GAAG1yB,GACV,GAAiB,MAAb0C,KAAK7I,KACP,OAAO6I,KAAK7I,KAAKmG,GACnB,GAAIA,IAAM,IACR,OAAO,EACT,GAAIA,KAAM,IACR,OAAQ,EACV,CACE,IAAIC,EAAKyC,KAAK7d,IAAI,EAAImb,GACtB,OAAQC,EAAK,IAAMA,EAAK,IAG5B,SAAS0yB,GAAG3yB,GACV,IAAIC,EAAKyC,KAAK3jB,KAAK2jB,KAAKrK,KAAK2H,IAC7B,MAAO,CAACC,EAAIyC,KAAK3jB,KAAKihB,EAAIC,IAE5B,SAAS2yB,GAAG5yB,GACV,IAAIC,EAAK,IAAI2U,YAAY5U,GACzB,IAAK,IAAII,EAAI,EAAGA,EAAIJ,IAAKI,EACvBH,EAAGG,GAAKA,EACV,OAAOuxB,EAAG1xB,GAAKA,EAEjB,SAAS4yB,GAAG7yB,EAAGC,GACb,OAAOA,GAAMD,EAAEnhC,OAASmhC,EAAIA,EAAI,IAAI8yB,OAAO7yB,EAAKD,EAAEnhC,QAEpD,SAASk0D,GAAG/yB,EAAGC,EAAK,CAACM,GAAM,GAAGH,EAAGE,GAC/B,OAAO,IAAI6O,QAAQ,CAAC5O,EAAGwC,KACrB,IAAIC,EAAI,EAAGC,EAAI,KACb,GAAIjD,IAEF,YADAO,IAGFyC,IACA,IAAIE,EAAIjD,EAAG+C,GACF,MAAL5C,GAAa4C,GAAK5C,EACpB2C,IAGG,MAALzC,EAAYA,EAAE2C,EAAGC,GAAK6a,WAAW9a,EAAGC,IAEtCD,MAGJ,SAAS+vB,GAAGhzB,EAAGC,GACb,IAAIG,EAAI,EAAGE,GAAK,EAChB,IAAK,IAAIyC,EAAI,EAAGA,EAAI/C,EAAEnhC,SAAUkkC,EAC9B,GAAI/C,EAAE+C,IAAM,EACV3C,GAAKJ,EAAE+C,QACJ,IAAc,IAAV/C,EAAE+C,GAAW,CACpB,IAAW,IAAPzC,EACF,MAAMsC,MAAM,yDAAyDtC,aAAayC,KACpFzC,EAAIyC,OACC,GAAI/C,EAAE+C,GAAK,EAChB,MAAMH,MAAM,gCAAgC5C,EAAE+C,aAAaA,KAC/D,IAAW,IAAPzC,EAAU,CACZ,GAAIL,EAAK,GAAKA,IAAOG,EACnB,MAAMwC,MAAM,QAAQ3C,sCAAuCD,KAC7D,OAAOA,EAET,GAAU,IAANI,EACF,MAAMwC,MAAM,qCAAqC5C,gCACnD,GAAIC,EAAKG,IAAM,EACb,MAAMwC,MAAM,wDAAwD3C,OAAQG,KAC9E,IAAIG,EAAIP,EAAErJ,QACV,OAAO4J,EAAED,GAAKL,EAAKG,EAAGG,EAExB,SAAS0yB,GAAGjzB,EAAGC,GACb,IAAIG,EAAIH,EAAGphC,OACX,OAAOmhC,EAAS,MAALA,EAAYC,EAAGizB,IAAI,CAAC5yB,EAAGC,IAAMA,GAAK,GAAGhhB,OAAOygB,GAAIziC,GAAEyiC,EAAE4gB,MAAOtgB,GAAMA,IAAMF,GAAKE,EAAIF,GAAI,IAAM,+CAA+CA,MAAMA,mBAAmBJ,KAAMziC,GAAEyiC,EAAE4gB,MAAOtgB,GAAMmyB,GAAGnyB,IAAK,IAAM,0DAA0DN,GAAMA,EAAEkzB,IAAK5yB,GAAMA,EAAI,EAAIF,EAAIE,EAAIA,GAEjT,SAAS6yB,GAAGnzB,EAAGC,GACb,IAAIG,EAAI,GAAIE,EAAI,GAAIC,EAAU,MAANN,GAAcmzB,MAAMC,QAAQpzB,IAAqB,IAAdA,EAAGphC,OAAckkC,EAAU,MAAN9C,GAAcM,EAAI,KAAO0yB,GAAGhzB,EAAID,GAAGszB,OAAQtwB,EAAI,EAC/H,IAAK,IAAIC,EAAI,EAAGA,EAAIjD,EAAEnhC,SAAUokC,EAAG,CACjC,GAAS,MAALF,EAAW,CACb,GAAIA,EAAEC,KAAOC,GAAc,IAATjD,EAAEiD,GAClB,MAAM,IAAIL,MAAM,sBAAsBK,oBAAoBjD,EAAEiD,iBACrD,MAARF,EAAEC,IAAcD,EAAEC,GAAKC,IAAe,IAATjD,EAAEiD,KAAa7C,EAAEoK,KAAKxK,EAAEiD,IAAK3C,EAAEkK,KAAKvH,IAAKF,EAAEC,IAAMC,GAAKD,IAE7E,IAAThD,EAAEiD,KAAa7C,EAAEoK,KAAKxK,EAAEiD,IAAK3C,EAAEkK,KAAKvH,IAEtC,MAAO,CAAEswB,SAAUnzB,EAAGozB,SAAUlzB,GAElC,SAASmzB,GAAGzzB,EAAGC,GACb,OAAOyzB,GAAG1zB,EAAGC,GAEf,SAASyzB,GAAG1zB,EAAGC,GACb,IAAIG,EAAI,KACR,GAAS,MAALJ,GAAmB,YAANA,EACfI,EAAI,IAAI0U,aAAa7U,QAClB,GAAU,UAAND,EACPI,EAAI,IAAImU,WAAWtU,QAChB,GAAU,SAAND,EACPI,EAAI,IAAIc,WAAWjB,OAChB,IAAU,WAAND,EAGP,MAAM,IAAI4C,MAAM,qBAAqB5C,GAFrCI,EAAI,IAAIgzB,MAAMnzB,GAGhB,OAAOG,EAET,SAASuzB,GAAG3zB,EAAGC,GACb,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAAK,CACjC,IAAIE,EAAIN,EAAEI,GACV,GAAIrX,MAAMuX,KAAO3X,SAAS2X,GACxB,MAAMsC,MAAM,oBAAoB3C,6BAA8BK,OAGpE,SAASszB,GAAG5zB,GACV,MAAa,SAANA,GAAsB,cAANA,GAA2B,YAANA,GAAyB,UAANA,GAAuB,WAANA,EAElF,SAAS6zB,GAAG7zB,EAAGC,GACb,QAAgB,cAAPA,GAA6B,YAAPA,GAA0B,cAAND,GAA4B,UAAPC,GAAwB,YAAND,GAAyB,cAANA,GAA4B,SAAPC,GAAuB,SAAND,GAErJ,SAAS8zB,GAAG9zB,GACV,GAAU,YAANA,GAAyB,UAANA,EACrB,OAAO,EACT,GAAU,cAANA,EACF,OAAO,EACT,GAAU,SAANA,EACF,OAAO,EACT,MAAM,IAAI4C,MAAM,iBAAiB5C,GAEnC,SAAS+zB,GAAG/zB,GACV,GAAS,MAALA,EACF,OAAO,EACT,IAAIC,EAAK,EACT,OAAOD,EAAEsY,QAASlY,GAAMH,GAAMG,EAAEvhC,QAASohC,EAE3C,SAAS+zB,GAAGh0B,GACV,MAAmB,iBAALA,GAAiBA,aAAa5gC,OAE9C,SAAS60D,GAAGj0B,GACV,MAAmB,kBAALA,EAEhB,SAASk0B,GAAGl0B,GACV,MAAmB,iBAALA,EAEhB,SAASm0B,GAAGn0B,GACV,OAAOozB,MAAMC,QAAQrzB,GAAKm0B,GAAGn0B,EAAE,IAAMA,aAAa8U,aAAe,UAAY9U,aAAauU,YAAcvU,aAAakB,YAAclB,aAAao0B,kBAAoB,QAAUF,GAAGl0B,GAAK,UAAYg0B,GAAGh0B,GAAK,SAAWi0B,GAAGj0B,GAAK,OAAS,UAExO,SAASq0B,GAAGr0B,GACV,SAAUA,GAAKA,EAAEs0B,aAAet0B,EAAEp/B,MAAQo/B,EAAEiN,OAE9C,SAASsnB,GAAGv0B,EAAGC,GACb,IAAK,IAAIG,EAAIH,EAAIG,EAAIJ,IAAKI,EACxB,GAAIJ,EAAII,IAAM,EACZ,OAAOA,EACX,OAAOJ,EAET,SAASw0B,GAAGx0B,GACV,IAAIC,EAAKD,EAAEnhC,OACX,GAAIohC,EAAK,EACP,MAAO,GACT,IAAIG,EAAI,IAAIgzB,MAAMnzB,EAAK,GACvBG,EAAEH,EAAK,GAAKD,EAAEC,EAAK,GACnB,IAAK,IAAIK,EAAIL,EAAK,EAAGK,GAAK,IAAKA,EAC7BF,EAAEE,GAAKF,EAAEE,EAAI,GAAKN,EAAEM,EAAI,GAC1B,OAAOF,EAET,SAASq0B,GAAGz0B,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI,IAAI6yB,MACZ,GAAkB,IAAdnzB,EAAGphC,OAAc,CACnB,IAAIkkC,EAAI9C,EAAG,IAAMK,EAAI,EAAI,GACzB,IAAK,IAAI0C,EAAI,EAAGA,EAAID,EAAGC,IACrBzC,EAAEyC,GAAK5C,EAAEJ,EAAIgD,OACV,CACL,IAAID,EAAI9C,EAAG,GAAI+C,EAAI/C,EAAGtJ,MAAM,GAAIsM,EAAID,EAAEvkC,OAAO,CAACykC,EAAGE,IAAMF,EAAIE,IAAM9C,EAAI,EAAI,GACzE,IAAK,IAAI4C,EAAI,EAAGA,EAAIH,EAAGG,IACrB3C,EAAE2C,GAAKuxB,GAAGz0B,EAAIkD,EAAID,EAAGD,EAAG5C,EAAGE,GAE/B,OAAOC,EAET,SAASm0B,GAAG10B,EAAGC,EAAIG,GAAI,GACrB,GAAiB,IAAbJ,EAAEnhC,OACJ,OAAOohC,EAAG,GACZ,IAAIK,EAAIN,EAAEvhC,OAAO,CAAC8hC,EAAGwC,IAAMxC,EAAIwC,IAAM3C,EAAI,EAAI,GAC7C,GAAU,IAANE,EACF,MAAO,GACT,GAAIA,IAAML,EAAGphC,OACX,MAAM,IAAI+jC,MAAM,IAAI5C,oCAAoCC,EAAGphC,SAASuhC,EAAI,wBAA0B,OACpG,OAAOq0B,GAAG,EAAGz0B,EAAGC,EAAIG,GAEtB,SAASu0B,GAAG30B,EAAGC,GACb,GAAImzB,MAAMC,QAAQrzB,GAChB,OAAOA,EACT,GAAW,YAAPC,EACF,OAAOD,aAAa8U,aAAe9U,EAAI,IAAI8U,aAAa9U,GAC1D,GAAW,UAAPC,EACF,OAAOD,aAAauU,WAAavU,EAAI,IAAIuU,WAAWvU,GACtD,GAAW,SAAPC,GAAwB,WAAPA,EACnB,OAAOiB,WAAW0zB,KAAK,IAAIrgB,WAAWvU,IACxC,MAAM,IAAI4C,MAAM,iBAAiB3C,GAEnC,SAAS40B,GAAG70B,EAAGC,GACb,IAAIG,EAAI00B,GAAG90B,EAAGC,GACd,IAAK,IAAIK,EAAI,EAAGA,EAAIF,EAAEvhC,OAAQyhC,IAC5BF,EAAEE,GAAK,EACT,OAAOF,EAET,SAAS00B,GAAG90B,EAAGC,GACb,GAAU,MAANA,GAAqB,YAAPA,GAA2B,cAAPA,EACpC,OAAO,IAAI6U,aAAa9U,GAC1B,GAAW,UAAPC,EACF,OAAO,IAAIsU,WAAWvU,GACxB,GAAW,SAAPC,EACF,OAAO,IAAIiB,WAAWlB,GACxB,MAAM,IAAI4C,MAAM,qBAAqB3C,GAEvC,SAAS80B,GAAG/0B,EAAGC,GACb,IAAIG,EAAIJ,EAAEvhC,OAAO,CAAC6hC,EAAGC,IAAMD,EAAIC,EAAG,GAClC,GAAU,MAANN,GAAqB,YAAPA,EAChB,OAAOy0B,GAAG10B,EAAG,IAAI8U,aAAa1U,IAChC,GAAW,UAAPH,EACF,OAAOy0B,GAAG10B,EAAG,IAAIuU,WAAWnU,IAC9B,GAAW,SAAPH,EACF,OAAOy0B,GAAG10B,EAAG,IAAIkB,WAAWd,IAC9B,MAAM,IAAIwC,MAAM,qBAAqB3C,GAEvC,SAAS+0B,GAAGh1B,GACVA,EAAEsY,QAASrY,IACT1iC,GAAE40D,OAAO8C,UAAUh1B,IAAOA,GAAM,EAAG,IAAM,0EAA0ED,SAGvH,SAASk1B,GAAGl1B,EAAGC,EAAIG,GACjB,GAAW,IAAPH,EACF,OAAO,EACT,GAAW,IAAPA,EACF,OAAOD,EAAE,GACX,IAAIM,EAAIN,EAAEA,EAAEnhC,OAAS,GACrB,IAAK,IAAI0hC,EAAI,EAAGA,EAAIP,EAAEnhC,OAAS,IAAK0hC,EAClCD,GAAKF,EAAEG,GAAKP,EAAEO,GAChB,OAAOD,EAET,SAAS60B,GAAGn1B,EAAGC,EAAIG,GACjB,GAAW,IAAPH,EACF,MAAO,GACT,GAAW,IAAPA,EACF,MAAO,CAACD,GACV,IAAIM,EAAI,IAAI8yB,MAAMnzB,GAClB,IAAK,IAAIM,EAAI,EAAGA,EAAID,EAAEzhC,OAAS,IAAK0hC,EAClCD,EAAEC,GAAKmC,KAAK7c,MAAMma,EAAII,EAAEG,IAAKP,GAAKM,EAAEC,GAAKH,EAAEG,GAC7C,OAAOD,EAAEA,EAAEzhC,OAAS,GAAKmhC,EAAGM,EAE9B,SAAS80B,GAAGp1B,GACV,OAAOA,GAAKA,EAAEuX,MAAyB,mBAAVvX,EAAEuX,KAEjC,IAAI8d,GAAK,YACLtsD,GAAK,MACP,YAAYk3B,GACVthC,KAAK2tC,OAASrM,EAAIthC,KAAK22D,MAAQ,GAAI32D,KAAK42D,aAAe,GAAI52D,KAAK62D,SAAW,GAAI72D,KAAK82D,eAAiBC,GAAI/2D,KAAKg3D,mBAEhH,YAAY11B,EAAIG,GACG,MAAjBzhC,KAAKi3D,WAAqBtxC,KAAIuxC,QAAQ,YAAcvxC,KAAIuxC,QAAQ,SAAW1kB,QAAQmB,KAAK,YAAY3zC,KAAKm3D,oEAAoE71B,OAASthC,KAAKm3D,aAAe71B,EAAIthC,KAAKi3D,SAAWx1B,EAEhO,aAAaH,EAAIG,EAAGE,GAClB,GAAI3hC,KAAK42D,aAAat1B,GAAM,CAAE81B,aAAc31B,EAAG41B,QAAS11B,GAA0B,MAArB3hC,KAAK62D,SAASv1B,GAAa,CACtF,IAAIM,EAAI5hC,KAAK62D,SAASv1B,GACtB3b,KAAIuxC,QAAQ,YAAcvxC,KAAIuxC,QAAQ,SAAW1kB,QAAQmB,KAAK,qCAAqCrS,MAAOM,MAAO5hC,KAAKqC,IAAIi/B,EAAIM,IAGlI,eAAeN,GACb,OAAOA,KAAMthC,KAAK22D,QAA0B32D,KAAK22D,MAAMr1B,SAAYthC,KAAKs3D,aAAah2B,IAA3DthC,KAAK22D,MAAMr1B,GAEvC,IAAIA,GACF,GAAIA,KAAMthC,KAAK22D,MACb,OAAO32D,KAAK22D,MAAMr1B,GACpB,IAAIG,EAAIzhC,KAAKs3D,aAAah2B,GAC1B,GAAIm1B,GAAGh1B,GACL,MAAM,IAAIwC,MAAM,QAAQ3C,uEAC1B,OAAOthC,KAAK22D,MAAMr1B,GAAMG,EAAGzhC,KAAK22D,MAAMr1B,GAExC,UAAUA,GACR,OAAOthC,KAAKwB,IAAI8/B,GAElB,QAAQA,GACN,OAAOthC,KAAKwB,IAAI8/B,GAElB,UAAUA,GACR,OAAOthC,KAAKwB,IAAI8/B,GAElB,WACE,OAAOthC,KAAK22D,MAEd,eACE,OAAO32D,KAAK22D,MAEd,IAAIr1B,EAAIG,GACN,GAA6B,MAAzBzhC,KAAK42D,aAAat1B,GACpB,MAAM,IAAI2C,MAAM,mBAAmB3C,oCACrCthC,KAAK22D,MAAMr1B,GAAMG,EAAoC,MAAjCzhC,KAAK42D,aAAat1B,GAAI+1B,SAAmBr3D,KAAK42D,aAAat1B,GAAI+1B,QAAQ51B,GAE7F,aAAaH,GACX,GAA6B,MAAzBthC,KAAK42D,aAAat1B,GACpB,MAAM,IAAI2C,MAAM,yBAAyB3C,qCAC3C,OAAOthC,KAAK42D,aAAat1B,GAAI81B,eAE/B,SAAS91B,GACPthC,KAAK22D,MAAQ/1D,OAAOmwC,OAAO,GAAIzP,GAEjC,QACEthC,KAAK22D,MAAQ,GAAI32D,KAAK62D,SAAW,GAAI72D,KAAKg3D,mBAE5C,mBACE,GAA0B,oBAAfh3D,KAAK2tC,QAAwD,oBAAxB3tC,KAAK2tC,OAAOgF,UAAiE,oBAA/B3yC,KAAK2tC,OAAOgF,SAAS4kB,OACjH,OACF,IAAIj2B,EAAKthC,KAAK82D,eAAe92D,KAAK2tC,OAAOgF,SAAS4kB,QAClDb,MAAMp1B,GAAMA,EAAGo1B,IAAIl9B,MAAM,KAAKmgB,QAAShY,IACrC,IAAKC,EAAGwC,GAAKzC,EAAEnI,MAAM,KACrBx5B,KAAK62D,SAASj1B,GAAK41B,GAAG51B,EAAGwC,OAI/B,SAAS2yB,GAAG11B,GACV,IAAIC,EAAK,GACT,OAAOD,EAAE8Q,QAAQ,8BAA+B,CAAC1Q,KAAME,KAAO81B,GAAGn2B,EAAIK,EAAE,GAAIA,EAAE,IAAKA,EAAE+1B,KAAK,OAAQp2B,EAEnG,SAASm2B,GAAGp2B,EAAGC,EAAIG,GACjBJ,EAAEs2B,mBAAmBr2B,IAAOq2B,mBAAmBl2B,GAAK,IAEtD,SAAS+1B,GAAGn2B,EAAGC,GACb,IAAIG,EAAIH,EAAGs2B,cACX,MAAa,SAANn2B,GAAsB,UAANA,EAAsB,SAANA,EAAe,KAAIA,IAAQA,GAAKA,EAAIH,EAE7E,SAAS3b,KACP,OAAO/b,GAET,IAIIiuD,GAJAjuD,GAAK,KACT,SAASkuD,GAAGz2B,GACVz3B,GAAKy3B,EAGP,SAAS02B,KACP,GAAU,MAANF,GAAY,CACd,IAAIx2B,EACJ,GAAqB,oBAAV2P,OACT3P,EAAI2P,YACD,GAAqB,oBAAVrD,EACdtM,EAAIsM,OACD,GAAsB,oBAAXgD,EACdtP,EAAIsP,MACD,IAAmB,oBAARnC,KAGd,MAAM,IAAIvK,MAAM,kCAFhB5C,EAAImN,KAGNqpB,GAAKx2B,EAEP,OAAOw2B,GAET,SAASG,KACP,IAAI32B,EAAI02B,KACR,OAAuB,MAAhB12B,EAAE42B,aAAuB52B,EAAE42B,WAA6B,IAAIC,KAAQ72B,EAAE42B,WAE/E,SAASE,GAAG92B,EAAGC,GACb,IAAIG,EAAIu2B,KACR,GAAIv2B,EAAE5/B,IAAIw/B,GACR,OAAOI,EAAEjgC,IAAI6/B,GACf,CACE,IAAIM,EAAIL,IACR,OAAOG,EAAEp/B,IAAIg/B,EAAGM,GAAIF,EAAEjgC,IAAI6/B,IAG9B,IAAI3+B,GAAK,MACLE,GAAK,OACLE,GAAK,QACLU,GAAK,MACLE,GAAK,OACLE,GAAK,MACLE,GAAK,MACLE,GAAK,SACLE,GAAK,SACLE,GAAK,OACLE,GAAK,QACLE,GAAK,OACLI,GAAK,QACLF,GAAK,QACLI,GAAK,UACLM,GAAK,cACLJ,GAAK,YACLE,GAAK,gBACLM,GAAK,cACLE,GAAK,iBACLE,GAAK,WACLE,GAAK,aACLI,GAAM,cACNF,GAAK,gBACLI,GAAK,OACLE,GAAK,OACLE,GAAK,cACLE,GAAK,UACLE,GAAK,aACLE,GAAK,SACLE,GAAK,SACLE,GAAK,uBACLE,GAAK,sBACLE,GAAK,SACLE,GAAK,yBACLE,GAAK,wBACLE,GAAK,MACLE,GAAK,OACLI,GAAK,UACLE,GAAK,SACLJ,GAAK,gBACLQ,GAAK,gBACLE,GAAK,eACLE,GAAK,wBACLE,GAAK,sCACLE,GAAK,qCACLE,GAAK,OACLE,GAAK,aACLI,GAAK,0BACLF,GAAK,2BACLI,GAAK,OACLgL,GAAK,UACL5K,GAAK,SACLE,GAAK,MACLE,GAAK,UACLM,GAAK,MACLF,GAAK,QACLI,GAAK,MACLE,GAAK,aACLE,GAAK,QACLE,GAAK,MACLE,GAAK,OACLE,GAAK,gBACLE,GAAK,QACLE,GAAK,WACLI,GAAK,iBACLU,GAAK,WACLF,GAAK,WACLM,GAAK,UACLE,GAAK,eACLI,GAAK,WACLF,GAAK,OACLI,GAAK,OACLE,GAAK,WACLE,GAAK,QACLE,GAAK,QACLQ,GAAK,YACLE,GAAK,OACLE,GAAK,YACLE,GAAK,WACLE,GAAK,MACLE,GAAK,QACLI,GAAK,aACLE,GAAK,aACLE,GAAK,YACLE,GAAK,aACLR,GAAM,aACNU,GAAM,aACN1B,GAAK,MACLE,GAAK,UACL8B,GAAM,iBACNE,GAAK,MACLY,GAAK,UACLV,GAAK,UACLM,GAAK,cACLJ,GAAK,YACLE,GAAK,gBACLI,GAAK,oBACLI,GAAK,OACLE,GAAK,MACLE,GAAK,UACLE,GAAK,YACLE,GAAK,MACLI,GAAK,cACLE,GAAK,WACLE,GAAK,MACLQ,GAAK,WACLN,GAAK,sBACLE,GAAK,sBACLE,GAAK,sBACLQ,GAAK,WACLF,GAAK,SACLQ,GAAK,OACLE,GAAK,QACLE,GAAM,OACNE,GAAK,MACLE,GAAK,QACLE,GAAK,OACLI,GAAK,eACLE,GAAK,cACLE,GAAK,uBACLE,GAAK,QACLI,GAAK,OACLI,GAAK,aACLI,GAAK,OACLI,GAAK,UACLM,GAAK,wBACLE,GAAK,4BACLN,GAAK,iBACLE,GAAK,qBACLN,GAAK,QACLY,GAAK,UACLI,GAAK,QACLE,GAAK,QACLI,GAAK,YACLkE,GAAK,sBACLhE,GAAK,eACLE,GAAK,SACLE,GAAK,OACLU,GAAK,QACLJ,GAAK,MACLE,GAAK,OACLJ,GAAK,OACLF,GAAK,UACLY,GAAK,WACLgB,GAAK,OACLoB,GAAK,MACLlC,GAAK,iBACLY,GAAK,SACLhB,GAAK,UACLM,GAAK,sBACLE,GAAK,gBACLE,GAAK,oBACLE,GAAK,mBACLE,GAAK,gBACLQ,GAAK,oBACLF,GAAK,SACLI,GAAK,qBACLI,GAAK,eACLE,GAAK,eACLE,GAAK,cACLE,GAAK,yBACLE,GAAK,MACLI,GAAK,MACLE,GAAK,OACLQ,GAAK,OACLE,GAAK,OACLE,GAAK,YACLE,GAAK,YACLE,GAAK,SACLE,GAAK,SACLE,GAAK,qBACLE,GAAM,aACNM,GAAK,YACL5C,GAAK,OACL1N,GAAK,aACLsK,GAAK,mBACLkG,GAAK,eACLpQ,GAAK,cACLE,GAAK,uBACT,SAASosD,MAAM/2B,GACb1b,KAAIuxC,QAAQ,YAAcvxC,KAAIuxC,QAAQ,SAAW1kB,QAAQmB,QAAQtS,GAEnE,SAASg3B,MAAMh3B,GACb1b,KAAIuxC,QAAQ,YAAcvxC,KAAIuxC,QAAQ,SAAW1kB,QAAQ9mB,OAAO2V,GAElE,IAAIi3B,GAAKH,GAAG,iBAAkB,IAAsB,IAAID,KACpDK,GAAKJ,GAAG,eAAgB,IAAsB,IAAID,KACtD,SAAS7vC,GAAGgZ,EAAGC,GACb,IAAIG,EAAI+2B,GAAGn3B,EAAGC,GACd,OAAOg3B,GAAG92D,IAAIigC,GAEhB,SAAStZ,GAAGkZ,GACV,OAAOk3B,GAAG/2D,IAAI6/B,GAEhB,SAAS9Y,GAAG8Y,GACV,IAAIC,EAAKg3B,GAAGG,UAAWh3B,EAAI,GAC3B,OAAW,CACT,IAAMi3B,KAAM/2B,EAAG1gC,MAAO2gC,GAAMN,EAAG8I,OAC/B,GAAIzI,EACF,MACF,IAAKyC,EAAGC,GAAKzC,GAAI0C,GAAKF,EAAE5K,MAAM,KAC9B8K,IAAMjD,GAAKI,EAAEoK,KAAKxH,GAEpB,OAAO5C,EAET,SAAS5N,GAAGwN,GACV,IAAMs3B,WAAYr3B,EAAIs3B,YAAan3B,GAAMJ,EAAGM,EAAI62B,GAAGl3B,EAAIG,GACvD62B,GAAGz2D,IAAI8/B,IAAMy2B,GAAG,eAAe92B,mBAAoBG,4BAA6B62B,GAAGj2D,IAAIs/B,EAAGN,GAE5F,SAAS1N,GAAI0N,GACX,IAAMs3B,WAAYr3B,GAAOD,EACzBk3B,GAAG12D,IAAIy/B,IAAO3b,KAAIuxC,QAAQ,UAAYkB,GAAG,gCAAgC92B,MAAQi3B,GAAGl2D,IAAIi/B,EAAID,GAE9F,SAAS1D,GAAI0D,EAAGC,GACd,IAAIG,EAAI+2B,GAAGn3B,EAAGC,GACd,IAAKg3B,GAAGz2D,IAAI4/B,GACV,MAAM,IAAIwC,MAAM,eAAe5C,mBAAmBC,wBACpDg3B,GAAGzF,OAAOpxB,GAEZ,SAAShE,GAAI4D,GACX,IAAKk3B,GAAG12D,IAAIw/B,GACV,MAAM,IAAI4C,MAAM,iBAAiB5C,oCACnCk3B,GAAG1F,OAAOxxB,GAEZ,SAASpf,GAAIof,EAAGC,GACd/Y,GAAG8Y,GAAGsY,QAAShY,IACb,IAAIC,EAAIhhC,OAAOmwC,OAAO,GAAIpP,EAAG,CAAEi3B,YAAat3B,IAC5CzN,GAAG+N,KAGP,SAAS42B,GAAGn3B,EAAGC,GACb,MAAO,GAAGA,KAAMD,IAElB,IAAIhD,GAAI,GAER,SAASw6B,GAAGx3B,GACV,OAAOA,aAAa8U,cAAgB9U,aAAauU,YAAcvU,aAAakB,YAAclB,aAAao0B,kBAFzGj0B,EAAGnD,GAAG,CAAEy6B,YAAa,IAAMpF,GAAIqF,oBAAqB,IAAMlF,GAAImF,OAAQ,IAAMp6D,GAAGq6D,mCAAoC,IAAM5C,GAAI6C,cAAe,IAAMtvC,GAAIuvC,kBAAmB,IAAM1F,GAAI2F,qBAAsB,IAAMhE,GAAIiE,gBAAiB,IAAMlE,GAAImE,yBAA0B,IAAMtE,GAAIuE,MAAO,IAAMpG,EAAIqG,eAAgB,IAAM3D,GAAI4D,mCAAoC,IAAMzD,GAAI0D,kBAAmB,IAAMC,GAAIC,sBAAuB,IAAM3F,GAAI4F,aAAc,IAAMC,GAAIC,YAAa,IAAMxG,GAAIyG,aAAc,IAAMC,GAAIvhB,MAAO,IAAMwhB,GAAIC,cAAe,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,kBAAmB,IAAMxF,GAAIyF,uBAAwB,IAAM1F,GAAI2F,gBAAiB,IAAMvF,GAAIwF,UAAW,IAAMC,GAAIC,WAAY,IAAMpE,GAAIqE,WAAY,IAAMrF,GAAIsF,uBAAwB,IAAMzG,GAAI0G,UAAW,IAAMzF,GAAI0F,WAAY,IAAMtF,GAAIuF,MAAO,IAAMnH,GAAIoH,SAAU,IAAM3F,GAAI4F,UAAW,IAAM1E,GAAI2E,cAAe,IAAMxH,GAAIyH,SAAU,IAAMhG,GAAIiG,aAAc,IAAMC,GAAIC,aAAc,IAAMvG,GAAIwG,WAAY,IAAMlF,GAAImF,mBAAoB,IAAMxF,GAAIyF,0BAA2B,IAAMvF,GAAIwF,oBAAqB,IAAMzF,GAAI0F,eAAgB,IAAMjG,GAAIkG,kBAAmB,IAAM1I,EAAIzT,IAAK,IAAMoc,GAAIC,eAAgB,IAAM1H,GAAI2H,YAAa,IAAM3I,GAAI4I,YAAa,IAAM9H,GAAI+H,SAAU,IAAMjI,GAAIkI,QAAS,IAAMpJ,EAAIqJ,aAAc,IAAMnJ,EAAIoJ,cAAe,IAAM3I,GAAI4I,oBAAqB,IAAMvI,GAAIwI,aAAc,IAAMhI,GAAI55B,IAAK,IAAMy4B,GAAIoJ,KAAM,IAAMxJ,EAAI/3B,KAAM,IAAM64B,GAAI2I,cAAe,IAAM3G,GAAI4G,aAAc,IAAMC,KAI75C,IAAIC,GAAKh7B,EAAGE,KACR+6B,GAAKD,GAAGE,SAAWF,GACvB,SAASlC,GAAGt5B,GACV,OAAOy7B,GAAGn4B,WAAWtD,GAAG,EAAM,IAEhC,IAAI27B,GAAKrC,GAAG,oBACRsC,GAAKtC,GAAG,oBACRuC,GAAKvC,GAAG,oBACZ,SAASwC,GAAG97B,GACV,OAAOA,EAAE8H,IAAI9H,EAAEoH,KAAK,KAEtB,SAAS20B,GAAG/7B,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAErJ,MAAMsJ,EAAIA,EAAKG,GACzB,OAAOq7B,GAAGlzB,UAAU6qB,MAAMwB,KAAKt0B,IAAI,GAAM,GAE3C,SAAS07B,GAAGh8B,EAAGC,GACb,OAAO87B,GAAG/7B,EAAGC,EAAI,GAEnB,SAASg8B,GAAGj8B,EAAGC,GACb,OAAO87B,GAAG/7B,EAAGC,EAAI,GAEnB,SAASi8B,GAAGl8B,EAAGC,GACb,OAAc,IAAPA,EAAWD,EAAIA,EAAEoH,KAAKnH,GAAI4H,GAAG7H,EAAEsH,IAAI,GAAKrH,IAEjD,SAASk8B,GAAGn8B,EAAGC,EAAIG,EAAIk5B,GAAG,qBACxB,IAAIh5B,EAAIN,EAAE8H,IAAI7H,GAAItS,IAAIyS,GACtBE,EAAIA,EAAEwH,IAAIxH,EAAE8G,KAAK,KACjB,IAAI7G,EAAIN,EAAG6H,IAAIxH,GAAG3S,IAAIyS,GACtB,OAAOG,EAAIA,EAAEuH,IAAIvH,EAAE6G,KAAK,KAAM7G,EAAIA,EAAE5S,IAAIyS,GAAIG,EAE9C,SAAS67B,GAAGp8B,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1BxC,EAAIA,EAAEx/B,IAAIi/B,GAAI+C,EAAIm5B,GAAGn5B,EAAEhiC,IAAIw/B,GAAGx/B,IAAIu/B,GAAI,IACtC,IAAI0C,EAAIzC,EACR,OAAOA,EAAIA,EAAEx/B,IAAIk/B,GAAKM,EAAIA,EAAEx/B,IAAIq/B,GAAI2C,EAAIA,EAAEhiC,IAAIm7D,GAAG37B,EAAG,KAAM,CAACA,EAAEx/B,IAAIu/B,GAAIyC,EAAEhiC,IAAIiiC,IAE7E,SAASq5B,GAAGr8B,EAAGC,EAAIG,EAAGE,GACpB,OAAO87B,GAAGJ,GAAGh8B,EAAGC,GAAK+7B,GAAGh8B,EAAGC,EAAK,GAAI+7B,GAAGh8B,EAAGC,EAAK,IAAK+7B,GAAGh8B,EAAGC,EAAK,IAAKG,EAAGE,GAEzE,SAASg8B,GAAGt8B,EAAGC,EAAKD,EAAEnhC,QACpB,GAAIohC,GAAM,EAAG,CACX,IAAIG,EAAIy7B,GAAG96D,IAAS,EAALk/B,GAASK,EAAI07B,GAAGh8B,EAAG,GAAGj/B,IAAI86D,IAAKt7B,EAAIy7B,GAAGh8B,EAAGC,EAAK,GAAI8C,EAAIm5B,GAAG37B,EAAG,IAAI5S,IAAIyS,GAAGr/B,IAAIu/B,GAAI0C,EAAIk5B,GAAG57B,EAAG,IAAIv/B,IAAIw/B,GAAG5S,IAAIyS,GACvH,OAAO+7B,GAAGp5B,EAAGC,EAAG5C,GAElB,GAAIH,GAAM,EAAG,CACX,IAAIG,EAAIy7B,GAAG96D,IAAS,EAALk/B,GAASK,EAAI27B,GAAGj8B,EAAG,GAClC,OAAOm8B,GAAG77B,EAAEgH,IAAI,GAAGvmC,IAAIk/B,GAAKg8B,GAAGj8B,EAAGC,EAAK,GAAIG,GAE7C,GAAIH,EAAK,EAAG,CACV,IAAIG,EAAIJ,EAAE,GAAIM,EAAIN,EAAEC,GAAM,GAAIM,EAAIP,EAAEC,EAAK,GAAI8C,EAAI3C,GAAKE,GAAK,GAAI0C,EAAI/C,GAAMM,GAAK,GAC9E,OAAOu7B,GAAGD,GAAGluC,IAAIoV,GAAG+E,IAAI6zB,GAAGhuC,IAAIqV,KAAKrV,IAAIkuC,IAE1C,OAAOA,GAET,SAASU,GAAGv8B,EAAGC,EAAKD,EAAEnhC,QACpB,IAAIuhC,EAAIy7B,GAAG96D,IAAS,EAALk/B,GAASK,EAAI07B,GAAGh8B,EAAG,GAAGrS,IAAIiuC,IAAKr7B,EAAIy7B,GAAGh8B,EAAG,GAAI+C,EAAIi5B,GAAGh8B,EAAGC,EAAK,GAAGtS,IAAIyS,GAAI4C,EAAIg5B,GAAGh8B,EAAGC,EAAK,IAAItS,IAAIkuC,IAC7G,OAAOM,GAAGD,GAAG57B,EAAEv/B,IAAIw/B,GAAI,IAAIx/B,IAAIm7D,GAAGn5B,EAAG,KAAKhiC,IAAIiiC,GAAI1C,EAAEv/B,IAAIm7D,GAAG37B,EAAEx/B,IAAI86D,IAAK,KAAK96D,IAAIgiC,GAAI3C,GAErF,SAASo8B,GAAGx8B,EAAGC,EAAKD,EAAEnhC,QACpB,IAAIuhC,EAAIy7B,GAAG96D,IAAS,EAALk/B,GAASK,EAAI07B,GAAGh8B,EAAG,GAAGrS,IAAIkuC,IAAKt7B,EAAIy7B,GAAGh8B,EAAG,GAAI+C,EAAIi5B,GAAGh8B,EAAGC,EAAK,GAAGtS,IAAIyS,GAAI4C,EAAIg5B,GAAGh8B,EAAGC,EAAK,IAAItS,IAAIkuC,IAAK54B,EAAIi5B,GAAG57B,EAAEv/B,IAAIw/B,GAAI,IAAIx/B,IAAIm7D,GAAGn5B,EAAG,KAAKhiC,IAAIiiC,GAAIE,EAAIi5B,GAAGl5B,EAAG3C,EAAEv/B,IAAIm7D,GAAG37B,EAAEx/B,IAAI86D,IAAK,KAAK96D,IAAIgiC,GAAI3C,GAAIgD,EAAI44B,GAAGh8B,EAAG,IAAIrS,IAAIyS,GAAIyE,EAAIm3B,GAAGh8B,EAAG,IAAKyG,EAAIxD,EAAEliC,IAAIi7D,GAAGh8B,EAAGC,EAAK,KAAKtS,IAAIyS,GAAIsG,EAAIxD,EAAEniC,IAAIi7D,GAAGh8B,EAAGC,EAAK,KAAKtS,IAAIyS,GAClT,OAAO+7B,GAAGD,GAAG94B,EAAEriC,IAAI8jC,GAAI,IAAI9jC,IAAIm7D,GAAGz1B,EAAG,KAAK1lC,IAAI2lC,GAAItD,EAAEriC,IAAIm7D,GAAGr3B,EAAE9jC,IAAIu/B,GAAI,KAAKv/B,IAAI0lC,GAAIrG,GAEpF,SAAS24B,GAAG/4B,EAAGC,EAAKD,EAAEnhC,QACpB,IAAIuhC,EAAIq7B,GAAGl5B,WAAW,IAAI,GAC1B,GAAItC,GAAM,GACR,OAAOA,GAAM,GAAKq8B,GAAGt8B,EAAGC,GAAMs8B,GAAGv8B,EAAGC,GACtC,GAAIA,GAAM,GACR,OAAOu8B,GAAGx8B,EAAGC,GACf,IAAIK,EAAIF,EAAGG,EAAIH,EAAEzS,IAAIiuC,IAAI76D,IAAI,KAAMgiC,EAAI+4B,GAAGv7B,EAAE5S,IAAIkuC,IAAI96D,IAAI,MAAM4sB,IAAIkuC,IAAK74B,EAAI,CAACy4B,GAAG73B,MAAO63B,GAAG73B,OAAQX,EAAI,CAACw4B,GAAG73B,MAAO63B,GAAG73B,OACnHtD,EAAIA,EAAE3S,IAAIkuC,IAAI96D,IAAIi7D,GAAGh8B,EAAG,IACxB,IAAIkD,EAAI,EAAGE,EAAoB,IAAfnD,EAAK,GAAK,GAAS4E,EAAIzB,GAAKnD,EAAK,EAAI,IAAM,GAC3D,GACEK,EAAI47B,GAAG57B,EAAEv/B,IAAIw/B,GAAGx/B,IAAIiiC,EAAE,IAAIjiC,IAAIi7D,GAAGh8B,EAAGkD,EAAI,IAAK,IAAIvV,IAAIiuC,IAAKr7B,EAAI27B,GAAG37B,EAAEx/B,IAAIiiC,EAAE,IAAIjiC,IAAIi7D,GAAGh8B,EAAGkD,EAAI,KAAM,IAAIvV,IAAIiuC,IAAKt7B,EAAIA,EAAEwH,IAAI7E,EAAE,IAAK1C,EAAIA,EAAEx/B,IAAIiiC,EAAE,IAAIjiC,IAAIi7D,GAAGh8B,EAAGkD,EAAI,KAAMH,EAAIm5B,GAAGn5B,EAAEhiC,IAAIkiC,EAAE,IAAK,IAAItV,IAAIiuC,IAAK54B,EAAIq5B,GAAGr8B,EAAGkD,EAAGF,EAAE,GAAGrV,IAAIiuC,IAAKt7B,EAAEv/B,IAAIkiC,EAAE,KAAMA,EAAIo5B,GAAGr8B,EAAGkD,EAAI,GAAIH,EAAEhiC,IAAIkiC,EAAE,IAAK1C,EAAEx/B,IAAIi7D,GAAGh8B,EAAGkD,EAAI,OAAQH,EAAGzC,GAAK,CAACA,EAAGyC,GAAIG,GAAK,SACpTA,IAAME,GACb,IAAIqD,EAAIm1B,GAAG76D,IAAIgiC,EAAE6E,IAAI,KAAKN,IAAI,IAC9B,OAAOpE,EAAI2B,EAAG5B,EAAE,GAAKA,EAAE,GAAGliC,IAAIk/B,EAAK,EAAI,IAAK+C,EAAE,GAAKA,EAAE,GAAGjiC,IAAIkiC,EAAE,IAAKA,EAAE,GAAKA,EAAE,GAAGliC,IAAIiiC,EAAE,IAAK1C,EAAI47B,GAAG57B,EAAEv/B,IAAIw/B,GAAGx/B,IAAIiiC,EAAE,IAAIjiC,IAAIi7D,GAAGh8B,EAAGkD,EAAI,IAAK,IAAIvV,IAAI8Y,GAAIlG,EAAI27B,GAAG37B,EAAEx/B,IAAIiiC,EAAE,IAAIjiC,IAAIi7D,GAAGh8B,EAAGkD,EAAI,KAAM,IAAIvV,IAAI8Y,GAAInG,EAAIA,EAAEwH,IAAI7E,EAAE,GAAGtV,IAAI,IAAK4S,EAAIA,EAAEx/B,IAAIiiC,EAAE,GAAGrV,IAAI,GAAG5sB,IAAIi7D,GAAGh8B,EAAGkD,EAAI,MAAOH,EAAIm5B,GAAGn5B,EAAEhiC,IAAIkiC,EAAE,IAAK,IAAItV,IAAI8Y,GAAIzD,EAAIq5B,GAAGr8B,EAAGkD,EAAGF,EAAE,GAAGrV,IAAI8Y,GAAInG,EAAEv/B,IAAIkiC,EAAE,KAAMA,EAAIo5B,GAAGr8B,EAAGkD,EAAI,GAAIH,EAAEhiC,IAAIkiC,EAAE,IAAK1C,EAAEx/B,IAAIi7D,GAAGh8B,EAAGkD,EAAI,OAAQH,EAAGzC,GAAK,CAACA,EAAGyC,GAAIo5B,GAAGA,GAAGn5B,EAAE,GAAIC,EAAE,GAAIwD,GAAG1lC,IAAI+6D,GAAGv7B,GAAG5S,IAAIguC,KAAK56D,IAAIgiC,GAAIo5B,GAAGn5B,EAAE,GAAIC,EAAE,GAAIwD,GAAG1lC,IAAIu/B,GAAImG,GAEpe,SAAS6xB,GAAGt4B,EAAGC,GACb,MAAc,WAAPA,EAAkB24B,GAAG54B,GAAKu7B,GAAG,CAACv7B,GAAIC,GAE3C,SAASw8B,GAAGz8B,EAAGC,GACb,OAAOD,aAAa8U,cAAuB,YAAP7U,GAAoBD,aAAauU,YAAqB,UAAPtU,GAAkBD,aAAakB,YAAqB,SAAPjB,EAElI,SAASs7B,GAAGv7B,EAAGC,GACb,GAAW,WAAPA,EACF,MAAM,IAAI2C,MAAM,6CAClB,GAAIwwB,MAAMC,QAAQrzB,KAAOA,EAAIi5B,GAAGj5B,IAAK1b,KAAIuxC,QAAQ,UAAYlC,GAAG3zB,EAAGC,GAAKw8B,GAAGz8B,EAAGC,GAC5E,OAAOD,EACT,GAAU,MAANC,GAAqB,YAAPA,GAA2B,cAAPA,EACpC,OAAO,IAAI6U,aAAa9U,GAC1B,GAAW,UAAPC,EACF,OAAO,IAAIsU,WAAWvU,GACxB,GAAW,SAAPC,EAAe,CACjB,IAAIG,EAAI,IAAIc,WAAWlB,EAAEnhC,QACzB,IAAK,IAAIyhC,EAAI,EAAGA,EAAIF,EAAEvhC,SAAUyhC,EACT,IAArBoC,KAAK3O,MAAMiM,EAAEM,MAAcF,EAAEE,GAAK,GACpC,OAAOF,EAEP,MAAM,IAAIwC,MAAM,qBAAqB3C,GAEzC,SAASy6B,KACP,OAAOp2C,KAAIsxC,SAAStX,MAEtB,SAASua,GAAG74B,EAAGC,GACb,OAAO3b,KAAIsxC,SAASve,MAAMrX,EAAGC,GAE/B,SAAS24B,GAAG54B,EAAGC,EAAK,SAClB,OAAOA,EAAKA,GAAM,QAAS3b,KAAIsxC,SAAS8G,OAAO18B,EAAGC,GAEpD,SAASw4B,GAAGz4B,EAAGC,EAAK,SAClB,OAAOA,EAAKA,GAAM,QAAS3b,KAAIsxC,SAASliB,OAAO1T,EAAGC,GAEpD,SAASi6B,GAAGl6B,GACV,OAAoC,MAA7B1b,KAAIsxC,SAASqE,aAAuB31C,KAAIsxC,SAASqE,aAAaj6B,GAAKw3B,GAAGx3B,GAE/E,SAASi5B,GAAGj5B,EAAGC,EAAK,GAAIG,GAAI,GAC1B,GAAU,MAANH,IAAeA,EAAK,IAAiB,kBAALD,GAA8B,iBAALA,GAA6B,iBAALA,GAAiBo1B,GAAGp1B,IAAW,MAALA,GAAak6B,GAAGl6B,IAAMI,EACnIH,EAAGuK,KAAKxK,QACL,GAAIozB,MAAMC,QAAQrzB,IAAMk6B,GAAGl6B,GAC9B,IAAK,IAAIM,EAAI,EAAGA,EAAIN,EAAEnhC,SAAUyhC,EAC9B24B,GAAGj5B,EAAEM,GAAIL,EAAIG,OACZ,CACH,IAAIE,GAAK,EACT,IAAK,IAAIC,KAAKhhC,OAAOo9D,KAAK38B,GACxB,qBAAqB48B,KAAKr8B,KAAOD,EAAIoC,KAAK3W,IAAIuU,EAAG6xB,OAAO5xB,KAC1D,IAAK,IAAIA,EAAI,EAAGA,GAAKD,EAAGC,IACtB04B,GAAGj5B,EAAEO,GAAIN,EAAIG,GAEjB,OAAOH,EAET,IAAI48B,GAAK,MACP,YAAY58B,EAAIG,GACdzhC,KAAKm+D,aAAe78B,EAAIthC,KAAKo+D,OAAS38B,EAAQ,MAALA,IAAczhC,KAAKo+D,OAAS,IAAIC,IAE3E,cAAc/8B,EAAIG,EAAGE,GACnB,IAAIC,EAEDyC,EAFID,EAAI,KACTxC,EAAID,KACA2C,EAAIy3B,KACV,GAAI/7D,KAAKm+D,aAAaG,iBACpBj6B,EAAIrkC,KAAKm+D,aAAavhC,KAAKwH,OACxB,CACHA,IACA,IAAK,IAAIK,KAAK7C,EACZ6C,EAAE85B,WACJl6B,EAAImM,QAAQwI,QAAQ,CAAEwlB,SAAUzC,KAAOz3B,IAEzC,GAAI3e,KAAIuxC,QAAQ,gCACd,IAAK,IAAIzyB,EAAI,EAAGA,EAAI7C,EAAE1hC,OAAQukC,IAAK,CACjC,IAAIyB,EAAItE,EAAE6C,GACVyB,EAAE0W,OAAOhE,KAAM9Q,IACb22B,GAAG32B,EAAG5B,EAAEw4B,MAAOp9B,KAGrB,MAAO,CAAEq3B,WAAYr3B,EAAIq9B,QAAS/8B,EAAGg9B,OAAQn9B,EAAGo9B,OAAQx6B,EAAEuU,KAAMnU,GAAMA,EAAE+5B,UAAWM,UAAWz6B,EAAEuU,KAAMnU,GAA+B,MAAzBA,EAAEs6B,oBAA8Bt6B,EAAEs6B,sBAAwB,KAExK,iBAAiBz9B,GACf,IAAMq3B,WAAYl3B,EAAGk9B,QAASh9B,EAAGk9B,OAAQj9B,EAAGg9B,OAAQx6B,EAAG06B,UAAWz6B,GAAM/C,EACxEK,EAAEgY,QAASrV,IACTkM,QAAQ5zB,IAAI,CAAC0nB,EAAEsY,OAAQhb,EAAGyC,IAAIuU,KAAMrU,IAClCvkC,KAAKo+D,OAAOY,iBAAiBv9B,EAAG6C,EAAGC,EAAE,GAAIA,EAAE,GAAIH,EAAGG,EAAE,UAK5D,SAASk6B,GAAGp9B,EAAGC,EAAIG,GACjB,GAAW,YAAPH,EACF,OAAO,EACT,IAAK,IAAIK,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAAK,CACjC,IAAIC,EAAIP,EAAEM,GACV,GAAIvX,MAAMwX,KAAO5X,SAAS4X,GACxB,OAAO4Q,QAAQmB,KAAK,SAAS/R,uBAAuBH,OAAO,EAE/D,OAAO,EAET,IAAI48B,GAAK,MACP,iBAAiB/8B,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC/B,IAAIC,EAAgB,iBAAL1C,EAAgBsyB,GAAMtyB,EAAH,KAAU,GAAKA,EAAE6Q,MAAOlO,EAAI2vB,GAAG5yB,EAAI,IAAKmD,EAAIhD,EAAEw9B,KAAM/4B,EAAIzE,EAAEy9B,KAAMp3B,EAAIosB,GAAGzyB,EAAE09B,MAAMr5B,WAAY,IAAKiC,EAAI,GACtI,IAAK,IAAIC,KAAK5D,EAAG,CACf,IAAIgE,EAAIhE,EAAE4D,GACV,GAAS,MAALI,EAAW,CACb,IAAI8D,EAAI9D,EAAE+2B,OAAS19B,EAAE09B,MAAOhzB,EAAID,EAAEhsC,OAClC6nC,GAAK,GAAGC,MAAMmE,MAAMA,EAAI,EAAID,EAAI,OAGpCsG,QAAQ9mB,IAAI,KAAK6Y,QAAOD,QAAOG,MAAMqD,QAAO5B,QAAO6B,QAAO1D,IAAK,mBAAoB,YAAa,aAAc,gBAAiB,eAAgB,sBAGnJ,SAAS+6B,GAAG/9B,EAAGC,EAAIG,GACjB,IAAIE,EAAI,GAAIC,EAAI,GAChB,IAAK,IAAI2C,EAAI,EAAGA,EAAIjD,EAAGphC,OAAQqkC,IAC7B5C,EAAEL,EAAGiD,GAAG86B,KAAM,EAChB,IAAK,IAAI96B,EAAI,EAAGA,EAAIlD,EAAEnhC,OAAQqkC,IAAK,CACjC,IAAIE,EAAIpD,EAAEkD,GAAI2B,EAAIzB,EAAEm6B,OACpB,IAAK,IAAI92B,KAAK5B,EAAG,CACf,IAAI6B,EAAI7B,EAAE4B,GAAIE,GAAI,EAClB,IAAK,IAAII,EAAI,EAAGA,EAAI9G,EAAGphC,OAAQkoC,IAC7B,GAAIzG,EAAEoG,EAAEs3B,IAAK,CACX56B,EAAEk6B,QAAQhlB,QAASzN,GAAMvK,EAAEuK,EAAEmzB,KAAM,GAAOr3B,GAAI,EAAMpG,EAAE6C,EAAE46B,KAAM,EAC9D,MAEJ,GAAIr3B,EACF,OAGN,IAAI5D,EAAI,GACRA,EAAE3C,EAAE49B,KAAM,EACV,IAAIh7B,EAAI,GACR,IAAK,IAAIE,EAAIlD,EAAEnhC,OAAS,EAAGqkC,GAAK,EAAGA,IAAK,CACtC,IAAIE,EAAIpD,EAAEkD,GAAI2B,EAAIzB,EAAEm6B,OACpB,IAAK,IAAI92B,EAAI,EAAGA,EAAIrD,EAAEk6B,QAAQz+D,OAAQ4nC,IACpC,GAAI1D,EAAEK,EAAEk6B,QAAQ72B,GAAGu3B,IAAK,CACtB,IAAK,IAAIt3B,KAAK7B,EACZ9B,EAAE8B,EAAE6B,GAAGs3B,KAAM,EAAMh7B,EAAEI,EAAE46B,KAAM,EAC/B,OAGN,IAAI/6B,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAIlD,EAAEnhC,OAAQqkC,IAAK,CACjC,IAAIE,EAAIpD,EAAEkD,GACV,GAAI3C,EAAE6C,EAAE46B,KAAOh7B,EAAEI,EAAE46B,IAAK,CACtB,IAAIn5B,EAAI,GACR,IAAK,IAAI6B,KAAKtD,EAAEm6B,OAAQ,CACtB,IAAI52B,EAAIvD,EAAEm6B,OAAO72B,GACjBpG,EAAEqG,EAAEq3B,MAAQn5B,EAAE6B,GAAKC,GAErB,IAAIF,EAAIlnC,OAAOmwC,OAAO,GAAItM,GAC1BqD,EAAE82B,OAAS14B,EAAG4B,EAAE62B,QAAUl6B,EAAEk6B,QAASr6B,EAAEuH,KAAK/D,IAGhD,OAAOxD,EAET,SAASg7B,GAAGj+B,EAAGC,EAAIG,EAAGE,GACpB,IAAK,IAAIC,EAAIN,EAAGphC,OAAS,EAAG0hC,GAAK,EAAGA,IAAK,CACvC,IAAIwC,EAAI9C,EAAGM,GAAIyC,EAAI,GACnB,GAAID,EAAEu6B,QAAQhlB,QAASpV,IACrB,IAAIE,EAAIpD,EAAEkD,EAAE86B,IACP,MAAL56B,EAAYJ,EAAEwH,KAAKpH,GAAKJ,EAAEwH,KAAK,QACf,MAAdzH,EAAEm7B,SACJ,MAAM,IAAIt7B,MAAM,4DAA4DG,EAAEu0B,eAChF,IAAIr0B,EAAIF,EAAEm7B,SAASl7B,GACnB,IAAK,IAAIE,KAAKH,EAAEw6B,OAAQ,CACtB,KAAMr6B,KAAKD,GACT,MAAM,IAAIL,MAAM,iCAAiCM,iCAAiC3jC,OAAOo9D,KAAK15B,OAChG,IAAIG,EAAIhD,EAAE,IAAM6C,EAAEC,MAClB,GAAgB,YAAZE,EAAEi6B,MACJ,MAAM,IAAIz6B,MAAM,4BAA4BG,EAAEu0B,qCAAqCp0B,yCAAyCE,EAAEi6B,UAChI,IAAIx4B,EAAI9B,EAAEw6B,OAAOr6B,GACjB,IAAKmvB,GAAGjvB,EAAE06B,MAAOj5B,EAAEi5B,OACjB,MAAM,IAAIl7B,MAAM,4BAA4BG,EAAEu0B,sCAAsCp0B,iBAAiBE,EAAE06B,wDAAwDj5B,EAAEi5B,UACnK,GAAe,MAAX99B,EAAE6E,EAAEm5B,IACNh+B,EAAE6E,EAAEm5B,IAAM56B,MACP,CACH,IAAIqD,EAAIzG,EAAE6E,EAAEm5B,IACZh+B,EAAE6E,EAAEm5B,IAAM19B,EAAEmG,EAAGrD,GAAIqD,EAAE9jB,aAK7B,IAAIw7C,GAAK,GACLC,GAAK,EACLC,GAAK,EACT,SAASC,GAAGt+B,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIi0B,GAAGv0B,GAAK8C,EAAIw7B,GAAGv+B,EAAGC,EAAIG,EAAGG,GAAIyC,EAAI/C,EAAGphC,OAAQokC,EAAIu7B,GAAGx+B,EAAGC,EAAIG,EAAGG,EAAGwC,GAAIG,EAAI,CAAC,UACjF,OAAO5C,IAAM4C,EAAEsH,KAAK,YAAYpK,GAAM8C,EAAEsH,KAAK,WAAWxH,GAAME,EAAEsH,KAAK,aAAavK,MAAQiD,EAAEsH,KAAK,cAAetH,EAAEsH,KAAKvH,EAAEiwB,IAAK9vB,GAAM,OAASA,GAAGizB,KAAK,OAClJnzB,EAAEmzB,KAAK,MAGZ,SAASkI,GAAGv+B,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI+xB,GAAGryB,GAAK8C,EAAIzC,EAAEA,EAAEzhC,OAAS,GAAImkC,EAAI,IAAIowB,MAAMrwB,GAAGxd,KAAK,GAAI0d,EAAIhD,EAAGphC,OAAQqkC,EAAU,cAAN9C,EAAoBq+B,GAAGz+B,GAAKA,EAC9G,GAAIiD,EAAI,EACN,IAAK,IAAIG,EAAI,EAAGA,EAAI7C,EAAIwC,EAAGK,IAAK,CAC9B,IAAIyB,EAAIzB,EAAIL,EACZ,IAAK,IAAI0D,EAAI,EAAGA,EAAI1D,EAAG0D,IACrBzD,EAAEyD,GAAK/D,KAAK3W,IAAIiX,EAAEyD,GAAIi4B,GAAGx7B,EAAE2B,EAAI4B,GAAI,EAAGrG,GAAGvhC,QAE/C,OAAOmkC,EAET,SAAS07B,GAAG1+B,EAAGC,EAAIG,GACjB,IAAIE,EACJ,OAA0BA,EAAnB8yB,MAAMC,QAAQrzB,GAAS,GAAG2+B,WAAW3+B,EAAE,GAAG4+B,QAAQP,UAAUM,WAAW3+B,EAAE,GAAG4+B,QAAQP,QAAUrK,GAAGh0B,GAAS,IAAIA,KAAa,SAANI,EAAmBy+B,GAAG7+B,GAAS2+B,WAAW3+B,EAAE4+B,QAAQP,KAAK55B,WAAYouB,GAAGvyB,EAAGL,GAEzM,SAAS4+B,GAAG7+B,GACV,OAAa,IAANA,EAAU,QAAU,OAE7B,SAASw+B,GAAGx+B,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,GAC9B,IAAIC,EAAU,cAAN5C,EAAoB,EAAI,EAAG6C,EAAIhD,EAAG,GAAIiD,EAAIjD,EAAGphC,OACrD,GAAU,IAANqkC,EAAS,CACX,GAAU,cAAN9C,EAAmB,CACrB,IAAIyK,EAAI4zB,GAAGz+B,GACX,MAAO,CAAC0+B,GAAG7zB,EAAE,GAAI,EAAGzK,IAEtB,MAAa,SAANA,EAAe,CAACy+B,GAAG7+B,EAAE,KAAO,CAACA,EAAE,GAAGyE,YAE3C,GAAU,IAANvB,EAAS,CACX,GAAID,EAAIk7B,GAAI,CACV,IAAIrzB,EAAIszB,GAAKp7B,EAAG6G,EAAIupB,MAAMwB,KAAK50B,EAAErJ,MAAM,EAAGmU,IAAKM,EAAIgoB,MAAMwB,KAAK50B,EAAErJ,OAAOsM,EAAIm7B,IAAMp7B,EAAGC,EAAID,IACxF,MAAa,cAAN5C,IAAsByJ,EAAI40B,GAAG50B,GAAIuB,EAAIqzB,GAAGrzB,IAAK,CAAC,IAAMvB,EAAEqpB,IAAI,CAACxnB,EAAGC,IAAM+yB,GAAGhzB,EAAGnL,EAAEoL,GAAIvL,IAAIi2B,KAAK,MAAQ,UAAYjrB,EAAE8nB,IAAI,CAACxnB,EAAGC,IAAM+yB,GAAGhzB,EAAGnL,EAAE0C,EAAIm7B,GAAKzyB,GAAIvL,IAAIi2B,KAAK,MAAQ,KAE5K,MAAO,CAAC,KAAa,cAANj2B,EAAoBq+B,GAAGz+B,GAAKozB,MAAMwB,KAAK50B,IAAIkzB,IAAI,CAACpoB,EAAGjB,IAAM60B,GAAG5zB,EAAGvK,EAAEsJ,GAAIzJ,IAAIi2B,KAAK,MAAQ,KAEvG,IAAIjzB,EAAInD,EAAGtJ,MAAM,GAAIkO,EAAIvE,EAAE3J,MAAM,GAAI8P,EAAInG,EAAE,GAAK0C,EAAG0D,EAAI,GACvD,GAAIzD,EAAIk7B,GAAI,CACV,IAAK,IAAItzB,EAAI,EAAGA,EAAIuzB,GAAIvzB,IAAK,CAC3B,IAAIC,EAAID,EAAIpE,EAAGoD,EAAIiB,EAAIrE,EACvBC,EAAE8D,QAAQg0B,GAAGx+B,EAAErJ,MAAMmU,EAAGjB,GAAIzG,EAAGhD,EAAGyE,EAAGtE,GAAG,IAE1CmG,EAAE8D,KAAK,OACP,IAAK,IAAIK,EAAI5H,EAAIm7B,GAAIvzB,EAAI5H,EAAG4H,IAAK,CAC/B,IAAIC,EAAID,EAAIpE,EAAGoD,EAAIiB,EAAIrE,EACvBC,EAAE8D,QAAQg0B,GAAGx+B,EAAErJ,MAAMmU,EAAGjB,GAAIzG,EAAGhD,EAAGyE,EAAGtE,EAAGsK,IAAM5H,EAAI,UAGpD,IAAK,IAAI4H,EAAI,EAAGA,EAAI5H,EAAG4H,IAAK,CAC1B,IAAIC,EAAID,EAAIpE,EAAGoD,EAAIiB,EAAIrE,EACvBC,EAAE8D,QAAQg0B,GAAGx+B,EAAErJ,MAAMmU,EAAGjB,GAAIzG,EAAGhD,EAAGyE,EAAGtE,EAAGsK,IAAM5H,EAAI,IAEtD,IAAI0D,EAAU,IAANzD,EAAU,IAAM,GACxBwD,EAAE,GAAK,KAAOzD,EAAI,EAAIyD,EAAE,GAAKC,EAAI,IACjC,IAAK,IAAIkE,EAAI,EAAGA,EAAInE,EAAE7nC,OAAS,EAAGgsC,IAChCnE,EAAEmE,GAAK,IAAMnE,EAAEmE,GAAKlE,EACtB,IAAII,EAAI,MAER,IAAK,IAAI8D,EAAI,EAAGA,EAAI3H,EAAG2H,IACrB9D,GAAK,KAEP,OAAOL,EAAEA,EAAE7nC,OAAS,GAAK,IAAM6nC,EAAEA,EAAE7nC,OAAS,GAAK,KAAOkkC,EAAI,GAAKgE,GAAIL,EAEvE,SAAS+3B,GAAGz+B,GACV,IAAIC,EAAK,GACT,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,GAAK,EACjCH,EAAGuK,KAAK,CAACxK,EAAEI,GAAIJ,EAAEI,EAAI,KACvB,OAAOH,EAET,IAAI9mB,GAAK,MACP,YAAY8mB,EAAIG,EAAGE,GACjB,GAAI3hC,KAAK0+D,MAAQj9B,EAAGzhC,KAAKm/D,MAAQ79B,EAAGtJ,QAASh4B,KAAKk/D,KAAOvL,GAAGryB,GAAU,MAALK,EAAW,CAC1E,IAAIC,EAAID,EAAEzhC,OACVtB,GAAEgjC,IAAM5hC,KAAKk/D,KAAM,IAAM,qBAAqBt9B,qDAAqD5hC,KAAKk/D,UAE1G,GAAU,cAANz9B,EACF,MAAM,IAAIwC,MAAM,8JAClBjkC,KAAKlB,OAAS6iC,GAAKozB,GAAGtzB,EAAGzhC,KAAKk/D,MAAOl/D,KAAKmgE,QAAUtK,GAAGv0B,GAEzD,IAAIA,KAAOG,GACI,IAAbA,EAAEvhC,SAAiBuhC,EAAI,CAAC,IAAK7iC,GAAE6iC,EAAEvhC,SAAWF,KAAKi/D,KAAM,IAAM,uCAAuCx9B,EAAEvhC,gCAAgCF,KAAKi/D,SAC3I,IAAIt9B,EAAI3hC,KAAKy7D,WAAWh6B,GACxBzhC,KAAKlB,OAAO6iC,GAAKL,EAEnB,OAAOA,GACS,IAAdA,EAAGphC,SAAiBohC,EAAK,CAAC,IAC1B,IAAIG,EAAI,EACR,IAAK,IAAIG,KAAKN,EAAI,CAChB,GAAIM,EAAI,GAAKA,GAAK5hC,KAAKm/D,MAAM19B,GAAI,CAC/B,IAAI2C,EAAI,qCAAqC9C,qBAAsBthC,KAAKm/D,QACxE,MAAM,IAAIl7B,MAAMG,GAElB3C,IAEF,IAAIE,EAAIL,EAAGA,EAAGphC,OAAS,GACvB,IAAK,IAAI0hC,EAAI,EAAGA,EAAIN,EAAGphC,OAAS,IAAK0hC,EACnCD,GAAK3hC,KAAKmgE,QAAQv+B,GAAKN,EAAGM,GAC5B,OAAO5hC,KAAKlB,OAAO6iC,GAErB,WAAWL,GACT,GAAkB,IAAdthC,KAAKi/D,KACP,OAAO,EACT,GAAkB,IAAdj/D,KAAKi/D,KACP,OAAO39B,EAAG,GACZ,IAAIG,EAAIH,EAAGA,EAAGphC,OAAS,GACvB,IAAK,IAAIyhC,EAAI,EAAGA,EAAIL,EAAGphC,OAAS,IAAKyhC,EACnCF,GAAKzhC,KAAKmgE,QAAQx+B,GAAKL,EAAGK,GAC5B,OAAOF,EAET,WAAWH,GACT,GAAkB,IAAdthC,KAAKi/D,KACP,MAAO,GACT,GAAkB,IAAdj/D,KAAKi/D,KACP,MAAO,CAAC39B,GACV,IAAIG,EAAI,IAAIgzB,MAAMz0D,KAAKm/D,MAAMj/D,QAC7B,IAAK,IAAIyhC,EAAI,EAAGA,EAAIF,EAAEvhC,OAAS,IAAKyhC,EAClCF,EAAEE,GAAKoC,KAAK7c,MAAMoa,EAAKthC,KAAKmgE,QAAQx+B,IAAKL,GAAMG,EAAEE,GAAK3hC,KAAKmgE,QAAQx+B,GACrE,OAAOF,EAAEA,EAAEvhC,OAAS,GAAKohC,EAAIG,EAE/B,WACE,OAAOzhC,KAAKm/D,MAAMj/D,OAEpB,WACE,OAAOkgE,KAAKC,WAAWrgE,KAAKlB,OAAQkB,KAAKm/D,MAAOn/D,KAAK0+D,SAGrD0B,GAAK,KACLE,GAAK,KAET,SAASC,GAAGl/B,GACV++B,GAAK/+B,EAEP,SAASm/B,GAAGn/B,GACVi/B,GAAKj/B,EAEP,SAASo/B,GAAGp/B,GACLA,EAEP,IAAI/mB,GAAK,MACP,YAAYgnB,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAK0gE,MAAO,EAAO1gE,KAAK2gE,oBAAqB,EAAO3gE,KAAKm/D,MAAQ79B,EAAGtJ,QAASh4B,KAAK0+D,MAAQj9B,GAAK,UAAWzhC,KAAKk/D,KAAOvL,GAAGryB,GAAKthC,KAAKmgE,QAAUtK,GAAGv0B,GAAKthC,KAAK4gE,OAASj/B,EAAG3hC,KAAKq/D,GAAKz9B,EAAG5hC,KAAK6gE,SAAW7gE,KAAKi/D,KAAO,EAAIj/D,KAAKi/D,KAAKn5B,WAAa,SAE5O,WACE,OAAO9lC,KAAKm/D,MAAMj/D,OAEpB,eACE,IAAIohC,QAAWthC,KAAK48C,OACpB,OAAO0jB,GAAGtgD,OAAOhgB,KAAKm/D,MAAOn/D,KAAK0+D,MAAOp9B,GAE3C,aACE,OAAOg/B,GAAGtgD,OAAOhgB,KAAKm/D,MAAOn/D,KAAK0+D,MAAO1+D,KAAKu+D,YAEhD,cACE,IAAIj9B,QAAWthC,KAAK48C,OACpB,OAAOmZ,GAAG/1D,KAAKm/D,MAAO79B,EAAmB,cAAfthC,KAAK0+D,OAEjC,YACE,OAAO3I,GAAG/1D,KAAKm/D,MAAOn/D,KAAKu+D,WAA2B,cAAfv+D,KAAK0+D,OAE9C,aACE1+D,KAAK8gE,kBACL,IAAIx/B,EAAK8+B,KAAKW,KAAK/gE,KAAK4gE,QACxB,GAAmB,WAAf5gE,KAAK0+D,MAAoB,CAC3B,IAAIj9B,QAAUH,EACd,IACE,OAAOG,EAAE8yB,IAAK5yB,GAAMm4B,GAAGn4B,IACvB,MAAOA,GACP,MAAM,IAAIsC,MAAM,kGAGpB,OAAO3C,EAET,UAAUA,GACR,OAAOthC,KAAK8gE,kBAAmBV,KAAKY,UAAUhhE,KAAK4gE,OAAQt/B,GAE7D,WACEthC,KAAK8gE,kBACL,IAAIx/B,EAAK8+B,KAAKa,SAASjhE,KAAK4gE,QAC5B,GAAmB,WAAf5gE,KAAK0+D,MACP,IACE,OAAOp9B,EAAGizB,IAAK9yB,GAAMq4B,GAAGr4B,IACxB,MAAOA,GACP,MAAM,IAAIwC,MAAM,iGAEpB,OAAO3C,EAET,cACEthC,KAAK8gE,kBACL,IAAIx/B,QAAW8+B,KAAKW,KAAK/gE,KAAK4gE,QAC9B,MAAsB,WAAf5gE,KAAK0+D,MAAqBp9B,EAAK,IAAIiB,WAAWjB,EAAGthB,QAE1D,UACEhgB,KAAKkhE,aAAelhE,KAAKmhE,WAAanhE,KAAKmhE,UAAUn9C,UAAWo8C,KAAKgB,cAAcphE,MAAOA,KAAK2gE,oBAAqB,GAEtH,iBACE,OAAO3gE,KAAK2gE,mBAEd,kBACE,GAAI3gE,KAAKkhE,WACP,MAAM,IAAIj9B,MAAM,uBAEpB,MAAM3C,GAAK,GACT,OAAOg/B,GAAG9uC,MAAMxxB,KAAMshC,GAExB,QACE,OAAOthC,KAAK8gE,kBAAmBR,GAAG9/C,MAAMxgB,MAE1C,SAASshC,GAAK,GACZ,IAAIG,EAAIzhC,KAAKu+D,WACb,OAAOoB,GAAGl+B,EAAGzhC,KAAKm/D,MAAOn/D,KAAK0+D,MAAOp9B,GAEvC,KAAKA,GACH,OAAOthC,KAAK8gE,kBAAmBR,GAAGpgD,KAAKlgB,KAAMshC,GAE/C,SAASA,GAAK,EAAMG,EAAGE,GACrB,OAAO3hC,KAAK8gE,kBAAmBV,KAAKiB,aAAarhE,KAAMshC,EAAIG,EAAGE,KAIlE,SAAS2/B,KACP,OAAOnJ,GAAG,SAAU,IAAM79C,IAF5B1Z,OAAOC,eAAeyZ,GAAIinD,OAAOC,YAAa,CAAEvgE,MAAQogC,KAAQA,GAAe,MAAVA,EAAEub,MAA8B,MAAdvb,EAAEk9B,UAAyC,MAArBl9B,EAAEy/B,kBAI/GQ,KACA,IAAI1lD,GAAK,cAActB,GACrB,YAAYgnB,EAAIG,EAAGE,EAAGC,GACpB6/B,MAAMngC,EAAG69B,MAAO79B,EAAGo9B,MAAOp9B,EAAGs/B,OAAQh/B,GAAI5hC,KAAK0hE,UAAYjgC,EAAGzhC,KAAKuB,KAAOogC,EAE3E,OAAOL,GACL,GAAIA,EAAGo9B,QAAU1+D,KAAK0+D,MACpB,MAAM,IAAIz6B,MAAM,2BAA2B3C,EAAGo9B,8BAA8B1+D,KAAK0+D,qBACnF,IAAKhL,GAAGpyB,EAAG69B,MAAOn/D,KAAKm/D,OACrB,MAAM,IAAIl7B,MAAM,2BAA2B3C,EAAG69B,8BAA8Bn/D,KAAKm/D,qBACnFiB,KAAKgB,cAAcphE,MAAOA,KAAK4gE,OAASt/B,EAAGs/B,OAAQR,KAAKuB,OAAO3hE,KAAM,MAEvE,UACEogE,KAAKwB,gBAAgB5hE,MAAOA,KAAK2gE,oBAAqB,IAG1D//D,OAAOC,eAAe+a,GAAI2lD,OAAOC,YAAa,CAAEvgE,MAAQogC,GAAMA,aAAa/mB,IAAkB,MAAZ+mB,EAAE0P,QAAkB1P,EAAE0P,kBAAkB8wB,WACzH,IAEIvtD,GAIAwtD,GAIAC,GAIAC,GAIAC,GAlBA5lC,GAAK,GACTmF,EAAGnF,GAAI,CAAE6lC,iBAAkB,IAAMC,GAAIC,sBAAuB,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,eAAgB,IAAMC,KAEtH,SAAUphC,GACRA,EAAEyB,GAAK,KAAMzB,EAAElJ,GAAK,KAAMkJ,EAAE1T,GAAK,KAAM0T,EAAEqhC,GAAK,KAAMrhC,EAAEshC,GAAK,KAAMthC,EAAEuhC,GAAK,KAAMvhC,EAAEwhC,GAAK,KADvF,CAEGvuD,KAAOA,GAAK,KAEf,SAAU+sB,GACRA,EAAEyhC,QAAU,UAAWzhC,EAAEmJ,MAAQ,QAASnJ,EAAE0hC,KAAO,QAAS1hC,EAAE2hC,UAAY,YAD5E,CAEGlB,KAAOA,GAAK,KAEf,SAAUzgC,GACRA,EAAEyhC,QAAU,UAAWzhC,EAAEmJ,MAAQ,QAASnJ,EAAE0hC,KAAO,OAAQ1hC,EAAE2hC,UAAY,YAD3E,CAEGjB,KAAOA,GAAK,KAEf,SAAU1gC,GACRA,EAAEyhC,QAAU,UAAWzhC,EAAEmJ,MAAQ,UAAWnJ,EAAE0hC,KAAO,UAAW1hC,EAAE2hC,UAAY,YADhF,CAEGhB,KAAOA,GAAK,KAEf,SAAU3gC,GACRA,EAAEyhC,QAAU,YAAazhC,EAAEmJ,MAAQ,YAAanJ,EAAE0hC,KAAO,YAAa1hC,EAAE2hC,UAAY,YADtF,CAEGf,KAAOA,GAAK,KACf,IAAIgB,GAAK,CAAEH,QAASd,GAAIx3B,MAAOs3B,GAAIiB,KAAMhB,GAAIiB,UAAWf,IACxD,SAAShkC,GAAGoD,EAAGC,GACb,GAAU,WAAND,GAAyB,WAAPC,EAAiB,CACrC,GAAU,WAAND,GAAyB,WAAPC,EACpB,MAAO,SACT,MAAM,IAAI2C,MAAM,kBAAkB5C,UAAUC,KAE9C,OAAO2hC,GAAG5hC,GAAGC,GAEf,SAASvG,GAAGsG,GACV,OAAOpD,GAAGoD,EAAG,SAEf,SAAS6hC,GAAG7hC,GACV,OAAY,MAALA,GAAyB,iBAALA,GAAiB,YAAaA,GAAKA,EAAE8hC,mBAAmBC,aAErF,SAASC,GAAGhiC,GACV,MAA2B,oBAAbiiC,WAAiC,MAALjiC,GAAyB,iBAALA,GAAiB,WAAYA,GAAKA,EAAErhB,kBAAkBsjD,UAEtH,SAASb,GAAGphC,EAAGC,GACb,GAAID,EAAEq9B,QAAUp9B,EAAGo9B,MACjB,MAAO,CAACr9B,EAAGC,GACb,IAAIG,EAAIxD,GAAGoD,EAAEq9B,MAAOp9B,EAAGo9B,OACvB,MAAO,CAACr9B,EAAEnhB,KAAKuhB,GAAIH,EAAGphB,KAAKuhB,IAE7B,SAAS0gC,GAAG9gC,EAAGC,GACb1iC,GAAEyiC,EAAEq9B,QAAUp9B,EAAGo9B,MAAO,IAAM,2BAA2Br9B,EAAEq9B,qBAAqBp9B,EAAGo9B,2BAErF,SAAS6D,GAAGlhC,EAAGC,GACb,OAAOA,EAAGiiC,KAAM9hC,GAAMA,EAAE49B,KAAOh+B,EAAEg+B,IAEnC,SAASgD,GAAGhhC,GACV,IAAIC,EAAK,GACT,OAAOkiC,GAAGniC,EAAGC,EAAoB,IAAImiC,KAAQniC,EAE/C,SAASkiC,GAAGniC,EAAGC,EAAIG,GACjB,GAAS,MAALJ,EACF,OACF,GAAIA,aAAa/mB,GAEf,YADAgnB,EAAGuK,KAAKxK,GAGV,IAAKqiC,GAAGriC,GACN,OACF,IAAIM,EAAIN,EACR,IAAK,IAAIO,KAAKD,EAAG,CACf,IAAIyC,EAAIzC,EAAEC,GACVH,EAAE5/B,IAAIuiC,KAAO3C,EAAEr/B,IAAIgiC,GAAIo/B,GAAGp/B,EAAG9C,EAAIG,KAGrC,SAASiiC,GAAGriC,GACV,OAAOozB,MAAMC,QAAQrzB,IAAkB,iBAALA,EAEpC,SAASsiC,GAAGtiC,GACV,OAAuB,MAAhBA,EAAEs3B,WAEX,IAAIiL,GAAK,MACP,cACE5jE,KAAK6jE,oBAAsB,GAAI7jE,KAAK8jE,eAAiB,EAAG9jE,KAAK+jE,SAAW,EAAG/jE,KAAKgkE,WAAa,EAAGhkE,KAAKikE,iBAAmB,EAAGjkE,KAAKkkE,eAAiB,EAAGlkE,KAAKmkE,cAAgB,EAAGnkE,KAAKokE,YAAc,EAAGpkE,KAAKqkE,WAAa,GAAIrkE,KAAKskE,kBAAoB,GAAItkE,KAAKukE,YAAc,EAAGvkE,KAAKwkE,WAA6B,IAAI9R,QAAW1yD,KAAKykE,WAAY,EAAOzkE,KAAK0kE,cAAgB,CAAEC,SAAU,EAAGC,WAAY,EAAGC,UAAW,EAAGC,QAAS,GAAIC,OAAQ,KAAM,kBAC9a,OAAOtQ,MAAMwB,KAAK,IAAIwN,IAAIzjE,KAAK8kE,QAAQvQ,IAAKjzB,GAAOA,EAAG//B,UAG1D,UACE,IAAK,IAAI+/B,KAAMthC,KAAK6jE,oBAClB7jE,KAAK6jE,oBAAoBviC,GAAItd,YAG/BghD,GAAK,MACP,YAAY1jC,GACVthC,KAAK2J,IAAM23B,EAAIthC,KAAKilE,SAAW,GAAIjlE,KAAKklE,gBAAkB,GAAIllE,KAAKmlE,qBAAuB,EAAGnlE,KAAKuqC,MAAQ,IAAIq5B,GAEhH,cACE,GAA+B,MAA3B5jE,KAAKolE,mBACP,OAAOplE,KAAKolE,mBAAmBxsB,KAAK,QAEtC,GAA4B,MAAxB54C,KAAKqlE,gBACP,OACF,IAAI/jC,EAAKthC,KAAKslE,oBACd,IAAK,IAAI7jC,EAAI,EAAGA,EAAIH,EAAGphC,OAAQuhC,IAAK,CAClC,IAAIE,EAAIL,EAAGG,GACX,SAAUzhC,KAAKulE,kBAAkB5jC,GAAG6jC,QAElC,kBADMxlE,KAAKs2B,WAAWqL,GAI1B,MAAM,IAAIsC,MAAM,0EAElB,cACE,GAA+B,MAA3BjkC,KAAKolE,mBACP,MAAM,IAAInhC,MAAM,YAAYjkC,KAAK44D,kIACnC,GAA4B,MAAxB54D,KAAKqlE,gBAAyB,CAChC,IAAM9jE,KAAM+/B,EAAImkC,UAAWhkC,GAAMzhC,KAAK0lE,kCACtC,GAAIjkC,EACF,MAAM,IAAIwC,MAAM,iCAAiC3C,wHACnDthC,KAAKs2B,WAAWgL,GAElB,OAAOthC,KAAKqlE,gBAEd,eACE,OAAOzkE,OAAOo9D,KAAKh+D,KAAKklE,iBAE1B,YAAY5jC,GACV,KAAMA,KAAMthC,KAAKilE,UACf,MAAI3jC,KAAMthC,KAAKklE,iBAKb,OAAO,KALuB,CAC9B,IAAMO,UAAWhkC,GAAMzhC,KAAKulE,kBAAkBjkC,GAC9C,GAAIG,EACF,OAAO,MAGb,OAAOzhC,KAAKilE,SAAS3jC,GAEvB,mBAAmBA,GACjB,OAAOA,KAAMthC,KAAKklE,gBAAkBllE,KAAKklE,gBAAgB5jC,GAAIqkC,QAAU,KAEzE,gBAAgBrkC,EAAIG,EAAGE,EAAI,GACzB,OAAOL,KAAMthC,KAAKklE,iBAAmB9M,GAAM92B,EAAH,uEAA4E,IAAUthC,KAAKklE,gBAAgB5jC,GAAM,CAAEqkC,QAASlkC,EAAGmkC,SAAUjkC,IAAK,GAExL,iBAAiBL,GACf,GAAgC,MAA5BthC,KAAKklE,gBAAgB5jC,GACvB,MAAM,IAAI2C,MAAM,iBAAiB3C,4BACnC,GAAIthC,KAAK44D,YAAct3B,EAAyB,MAArBthC,KAAKilE,SAAS3jC,GAAa,CACpDthC,KAAKqlE,gBAAkB,KACvB,IAAMG,QAAS/jC,EAAGgkC,UAAW9jC,GAAM3hC,KAAKulE,kBAAkBjkC,GAC1D,KAAMK,QAAUF,EAAIA,GAClB,OAAO,EAEX,OAAOzhC,KAAKqlE,gBAAkBrlE,KAAKilE,SAAS3jC,GAAKthC,KAAK6lE,yBAA0B7lE,KAAK8lE,SAAW,IAAI5H,GAAGl+D,KAAKqlE,kBAAkB,EAEhI,yBACE98C,GAAGvoB,KAAK44D,aAAajf,QAASlY,IACb,MAAfA,EAAEskC,WAAqBtkC,EAAEskC,UAAU/lE,KAAKqlE,mBAG5C,yBAAyB/jC,GACvB/Y,GAAG+Y,GAAIqY,QAAShY,IACG,MAAjBA,EAAEqkC,aAAuBrkC,EAAEqkC,YAAYhmE,KAAKilE,SAAS3jC,MAGzD,kBAAkBA,GAChB,IAAIG,EAAIzhC,KAAKklE,gBAAgB5jC,GAC7B,GAAS,MAALG,EACF,MAAM,IAAIwC,MAAM,6BAA6B3C,6BAC/C,IACE,IAAIK,EAAIF,EAAEkkC,UACV,IAAIhkC,GAAOA,aAAaj0B,GAAwB,mBAAVi0B,EAAEiX,KAItC,OAAO54C,KAAKilE,SAAS3jC,GAAMK,EAAG,CAAE6jC,SAAS,EAAMC,WAAW,GAJA,CAC1D,IAAI7jC,IAAM5hC,KAAKmlE,qBAAsB/gC,EAAIzC,EAAEiX,KAAMvU,KAAMzC,EAAI5hC,KAAKmlE,wBAAgCnlE,KAAKilE,SAAS3jC,GAAM+C,EAAGrkC,KAAKolE,mBAAqB,MAAM,IAAOrsB,MAAO1U,IAAOzC,EAAI5hC,KAAKmlE,uBAAyBnlE,KAAKolE,mBAAqB,KAAMhN,GAAG,6BAA6B92B,YAAc82B,GAAG/zB,EAAEnK,OAASmK,EAAE+V,WAAW,IACvT,OAAOp6C,KAAKolE,mBAAqBhhC,EAAG,CAAEohC,QAASphC,EAAGqhC,WAAW,IAG/D,MAAO9jC,GACP,OAAOy2B,GAAG,6BAA6B92B,YAAc82B,GAAGz2B,EAAEzH,OAASyH,EAAEyY,SAAU,CAAEorB,SAAS,EAAOC,WAAW,IAGhH,cAAcnkC,GACZ,KAAMA,KAAMthC,KAAKklE,iBACf,MAAM,IAAIjhC,MAAS3C,EAAH,kCAClBthC,KAAK44D,cAAgBt3B,GAAiC,MAA3BthC,KAAKolE,oBAA8BplE,KAAKmlE,uBAAwB7jC,KAAMthC,KAAKilE,WAAajlE,KAAKimE,yBAAyB3kC,GAAKthC,KAAKilE,SAAS3jC,GAAItd,iBAAkBhkB,KAAKilE,SAAS3jC,WAAathC,KAAKklE,gBAAgB5jC,GAAKthC,KAAK44D,cAAgBt3B,IAAOthC,KAAKolE,mBAAqB,KAAMplE,KAAK44D,YAAc,KAAM54D,KAAKqlE,gBAAkB,MAE7V,oBACE,GAAiD,IAA7CzkE,OAAOo9D,KAAKh+D,KAAKklE,iBAAiBhlE,OACpC,MAAM,IAAI+jC,MAAM,iCAClB,OAAOrjC,OAAOo9D,KAAKh+D,KAAKklE,iBAAiBvQ,KAAK,CAACrzB,EAAIG,IAAMzhC,KAAKklE,gBAAgBzjC,GAAGmkC,SAAW5lE,KAAKklE,gBAAgB5jC,GAAIskC,UAEvH,kCACE,IAAItkC,EAAKthC,KAAKslE,oBACd,IAAK,IAAI7jC,EAAI,EAAGA,EAAIH,EAAGphC,OAAQuhC,IAAK,CAClC,IAAIE,EAAIL,EAAGG,IAAM+jC,QAAS5jC,EAAG6jC,UAAWrhC,GAAMpkC,KAAKulE,kBAAkB5jC,GACrE,GAAIyC,GAAKxC,EACP,MAAO,CAAErgC,KAAMogC,EAAG8jC,UAAWrhC,GAEjC,MAAM,IAAIH,MAAM,0EAElB,SAAS3C,EAAIG,GACX,IAAIE,EAAI3hC,KAAKuqC,MAAMi6B,WAAWhjE,IAAIigC,GAAIG,EAAID,EAAEzjB,QAASkmB,EAAIpkC,KAAKihE,SAASx/B,GAAI4C,EAAIzC,EAAEskC,SAASzkC,GAC1FG,EAAEukC,YAAY1kC,GAAG,GAAOE,EAAEzjB,QAAUojB,EAAIA,EAAG8kC,KAAK3kC,EAAG2C,EAAGzC,EAAEw9B,MAAOx9B,EAAE+8B,MAAOr6B,GAAIrkC,KAAKqmE,0BAA4BrmE,KAAKuqC,MAAM+5B,kBAAkBtkE,KAAKuqC,MAAM+5B,kBAAkBpkE,OAAS,KAElL,KAAKohC,EAAIG,GACP,IAYIG,EAZAD,EAAI,KACR,GAAS,MAALF,EAAW,CACb,GAAiB,mBAANH,EACT,MAAM,IAAI2C,MAAM,uCAClBxC,EAAIH,MACC,CACL,GAAiB,iBAANA,KAAoBA,aAAc7gC,QAC3C,MAAM,IAAIwjC,MAAM,kFAClB,GAAgB,mBAALxC,EACT,MAAM,IAAIwC,MAAM,kFAClBtC,EAAIL,EAGN,OAAOthC,KAAKsmE,UAAU,IAAMtmE,KAAKumE,WAAW5kC,GAAI,IAAM3hC,KAAKwmE,SAAS5kC,GAAI,KAAOA,EAAIH,IAAKG,aAAa4O,SAAWgC,QAAQC,MAAM,2CAA4C7Q,IAE5K,UAAUN,EAAIG,EAAGE,GACfL,IACA,IACE,IAAIM,EAAID,IACR,OAAOF,IAAKG,EACZ,MAAOA,GACP,MAAMH,IAAKG,GAGf,eACE,OAAOojC,GAAGyB,eAEZ,iBACE,OAAOzB,GAAG0B,iBAEZ,MAAMplC,GACJ,IAAIG,EAAIklC,GAAEC,UAAU55D,GAAI,CAAEk+B,EAAG5J,IAAOK,EAAI,CAAEuJ,EAAG5J,GAAMM,EAAKyC,IAAM,CAAG6G,EAAG,KAClE,IAAI5G,EAAI,UAAWC,EAAI,CAAE2G,EAAG7G,GAAKI,EAAI,CAAEi6B,MAAOp6B,GAC9C,OAAOqiC,GAAEC,UAAUxgE,GAAIm+B,EAAGE,MACtBL,EAAI,GACV,OAAOpkC,KAAK6mE,YAAY7mE,KAAKuqC,MAAMu8B,YAAYvlE,KAAMogC,EAAG,CAACF,GAAIG,EAAGwC,EAAG,IAAK3C,EAE1E,UAAUH,EAAIG,EAAGE,GACf,GAAwB,MAApB3hC,KAAK44D,aAAuB54D,KAAKke,QAAuC,MAA5BmK,GAAGiZ,EAAIthC,KAAK44D,aAC1D,MAAM,IAAI30B,MAAM,WAAW3C,kCAAmCthC,KAAK44D,gBACrE,OAAO54D,KAAK+mE,cAAc,CAAEpO,WAAYr3B,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,IAEhE,yBACE,OAAO3hC,KAAK2J,IAAIutD,QAAQ,WAE1B,sBAAsB51B,EAAIG,EAAGE,GAC3B,IAAIC,EAAI5hC,KAAKke,QAAQ+oD,aAAc7iC,EAAI,EACvCzC,EAAEgY,QAASpV,IACTH,GAAiB,cAAZG,EAAEm6B,MAAwB,EAAI,IAErC,IAAIr6B,EAAIrkC,KAAKuqC,MAAM+5B,kBAAkBtkE,KAAKuqC,MAAM+5B,kBAAkBpkE,OAAS,GAAIokC,EAAI1C,EAAIH,EAAI2C,EAAIC,EAC/F,GAAIC,EAAI,EACN,MAAM,IAAIL,MAAM,YAAYjkC,KAAK44D,6CAA6Ct0B,8BAA8BhD,MAEhH,cAAcA,GACZ,IAAIG,EAEA6C,EAFG3C,EAAI,GAAIC,EAAI5hC,KAAKknE,WAAY9iC,EAAIpkC,KAAKuqC,MAAMw5B,SAAU1/B,EAAIrkC,KAAKuqC,MAAMy5B,WAC5EhkE,KAAKqmE,0BAA4BrmE,KAAKuqC,MAAM+5B,kBAAkBz4B,KAAK,GAE/C,MAApB7rC,KAAK44D,aAAuB54D,KAAKke,QACjC,IAAIqmB,EAAGE,EAAIk/B,GAAGriC,GAAMA,EAAGq3B,WAAuC,MAA1B34D,KAAKuqC,MAAMu8B,YAAsB9mE,KAAKuqC,MAAMu8B,YAAYvlE,KAAO,GACnG,GAAIoiE,GAAGriC,GAAK,CACV,IAAMq3B,WAAYvwB,EAAGw2B,OAAQ1yB,EAAG86B,MAAO76B,GAAM7K,EACzB,MAApBthC,KAAK44D,aAAuB54D,KAAKke,QACjC,IAAIgtB,EAAI7iB,GAAG+f,EAAGpoC,KAAK44D,aACnBh6D,GAAO,MAALssC,EAAW,IAAM,kCAAkC9C,mBAAmBpoC,KAAK44D,gBAAiBt0B,EAAI,KAChG,IAAImI,EAAIzsC,KAAKke,QAAQ+oD,aACrB1iC,EAAI2G,EAAEi8B,WAAW,CAAEvI,OAAQ1yB,EAAG86B,MAAO76B,EAAGjuB,QAASle,KAAKke,UACtD,IAAI6uB,EAAI0nB,MAAMC,QAAQnwB,GAAKA,EAAI,CAACA,GAChCvkC,KAAKqmE,0BAA4BrmE,KAAKonE,sBAAsBh/B,EAAGqE,EAAGM,GAClE,IAAIC,EAAID,EAAEwnB,IAAKtnB,GAAgB,MAAVA,EAAEgyB,KAAehyB,EAAIjtC,KAAKqnE,yBAAyBp6B,IACxE,GAAIrL,EAAG,CACL,IAAIqL,EAAIjtC,KAAKsnE,sBAAsBl/B,EAAG8D,EAAGc,GACzCrL,EAAI3hC,KAAKunE,2BAA2Bt6B,GAEtC,OAAOD,OAEJ,CACL,IAAMw6B,YAAap/B,GAAM9G,EAAI4K,EAAKC,IAChCvK,IAAMD,EAAIwK,EAAEooB,IAAKrpB,GAAMlrC,KAAKsqB,KAAKtqB,KAAKwgB,MAAM0qB,OAE9C5G,EAAI,KACF,IAAI6H,EAAInsC,KAAKke,QAAQ+oD,aACrB1iC,EAAIvkC,KAAKw8B,KAAK,IAAM4L,EAAEpoC,KAAKke,QAASguB,IACpC,IAAIhB,EAAIupB,MAAMC,QAAQnwB,GAAKA,EAAI,CAACA,GAChC,OAAOvkC,KAAKqmE,0BAA4BrmE,KAAKonE,sBAAsB3iC,EAAG0H,EAAGjB,GAAIA,GAGjF,IAAwElD,GAAlE42B,OAAQ14B,EAAG8gC,MAAOl/B,GAAMxG,EAAIyG,EAAI47B,GAAGriC,GAAM,KAAOA,EAAGmmC,cACzD,OAAOznE,KAAKsmE,UAAU,IAAMtmE,KAAKuqC,MAAM65B,cAAe,IAAMpkE,KAAKuqC,MAAM65B,cAAe,KACnFpkE,KAAK2J,IAAIutD,QAAQ,UAAal3D,KAAKuqC,MAAMk6B,WAAuBz8B,EAAIhoC,KAAK8lE,SAAS4B,cAAcjjC,EAAGyB,EAAG,IAAM5B,KAAMtkC,KAAK2J,IAAIutD,QAAQ,UAAYl3D,KAAK8lE,SAAS9G,iBAAiBh3B,GAAIvG,EAAIuG,EAAE22B,SAAnIl9B,EAAI6C,MACxD1C,GAAK5hC,KAAK6mE,YAAYpiC,EAAGyB,EAAGzE,EAAGsG,EAAGpG,EAAGmG,GAAI9nC,KAAKuqC,MAAMk6B,WAAazkE,KAAKuqC,MAAMm6B,cAAcI,QAAQj5B,KAAK,CAAEtqC,KAAMkjC,EAAGkjC,WAAY3nE,KAAKuqC,MAAMw5B,SAAW3/B,EAAGwjC,mBAAoB5nE,KAAKuqC,MAAMw5B,SAAU8D,aAAc7nE,KAAKuqC,MAAMy5B,WAAa3/B,EAAGyjC,qBAAsB9nE,KAAKuqC,MAAMy5B,WAAY+D,YAAannE,OAAOo9D,KAAK93B,GAAGquB,IAAKnsB,GAAc,MAARlC,EAAEkC,GAAalC,EAAEkC,GAAG+2B,MAAQ,MAAO6I,aAAcvmC,EAAE8yB,IAAKnsB,GAAMA,EAAE+2B,OAAQ8I,aAAcjgC,EAAE62B,OAAQC,UAAW92B,EAAE82B,YAAcrK,MAAMC,QAAQnwB,GAAK9C,EAAIA,EAAE,GAEvd,2BAA2BH,GACzB,OAAOA,EAAGizB,IAAK5yB,GAAM3hC,KAAKsqB,KAAKtqB,KAAKwgB,MAAMmhB,KAE5C,sBAAsBL,EAAIG,EAAGE,GAC3B,IAAIC,EAAIzZ,GAAGmZ,GACX,GAAS,MAALM,EAAW,CACb,IAAyD0C,EAArDF,EAAIxC,EAAEsmC,cAAgB,GAAI7jC,EAAIzC,EAAEumC,eAAiB,GACrDvmC,EAAEwmC,eAAiBxpE,GAAE61D,MAAMC,QAAQjzB,GAAI,IAAM,0DAA2D6C,EAAI1jC,OAAOo9D,KAAKv8B,GAAG8yB,IAAK9vB,GAAMhD,EAAEgD,KAAOH,EAAIF,EAAEmwB,IAAK9vB,GAAMhD,EAAEgD,IAClK,IAAIF,EAAI5C,EAAE+tB,OAAO,CAACjrB,EAAGyB,IAAM7B,EAAE6B,IAC7B,OAAO5B,EAAE1jB,OAAO2jB,GAElB,MAAO,GAET,WAAWjD,EAAIG,EAAGE,EAAGC,GACnB,GAAU,MAANN,EACF,MAAM,IAAI2C,MAAM,iDAClBtC,EAAIA,GAAK,UAAWC,EAAIA,GAAK5hC,KAAKke,QAClC,IAAIkmB,EAAI9C,EACF,WAANK,GAAkB0zB,GAAG/zB,EAAG,MAAQ8C,EAAI9C,EAAGizB,IAAKhwB,GAAM01B,GAAG11B,KACrD,IAAIF,EAAIzC,EAAEymC,MAAMjkC,EAAG3C,EAAGE,GAAI2C,EAAI,IAAIhqB,GAAGmnB,EAAGE,EAAG0C,EAAGrkC,KAAKymE,gBACnD,GAAIzmE,KAAKsoE,YAAYhkC,EAAG1C,GAAU,WAAND,EAAgB,CAC1C,IAAI4C,EAAIvkC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI6iC,GAAII,EAAI2wB,GAAGhxB,GAC7CpkC,KAAKuqC,MAAMw5B,UAAYt/B,EAAIF,EAAEgkC,MAAOhkC,EAAEgkC,MAAQ9jC,EAEhD,OAAOH,EAET,qBAAqBhD,EAAIG,EAAGE,EAAGC,GAC7BD,EAAIA,GAAK,UACT,IAAIyC,EAAI,CAAEw8B,OAAQt/B,EAAI69B,MAAO19B,EAAGi9B,MAAO/8B,GACvC,OAAO3hC,KAAKqnE,yBAAyBjjC,EAAGxC,GAE1C,yBAAyBN,EAAIG,GAC3B,IAAMm/B,OAAQj/B,EAAGw9B,MAAOv9B,EAAG88B,MAAOt6B,GAAM9C,EAAI+C,EAAI,IAAI/pB,GAAGsnB,EAAGwC,EAAGzC,EAAG3hC,KAAKymE,gBACrE,OAAOzmE,KAAKsoE,YAAYjkC,EAAG5C,GAAI4C,EAEjC,aAAa/C,EAAIG,GAAI,EAAME,EAAGC,GAC5BD,EAAIA,GAAK3hC,KAAK0mE,iBAAiB5gC,WAAiB,MAALlE,GAAaA,IAAMN,EAAGo9B,QAAUp9B,EAAKA,EAAGphB,KAAK0hB,IACxF,IAAIwC,EAAI,IAAIxoB,GAAG0lB,EAAIG,EAAGE,EAAG3hC,KAAKymE,gBAC9B,GAA8C,MAA1CzmE,KAAKuqC,MAAMs5B,oBAAoBz/B,EAAE7iC,MACnC,MAAM,IAAI0iC,MAAM,sBAAsBG,EAAE7iC,+BAC1C,OAAOvB,KAAKuqC,MAAMs5B,oBAAoBz/B,EAAE7iC,MAAQ6iC,EAAGpkC,KAAK2hE,OAAOv9B,EAAGpkC,KAAKke,SAAUkmB,EAEnF,YAAY9C,EAAIG,GACdzhC,KAAKuqC,MAAMy5B,aAA2B,WAAb1iC,EAAGo9B,OAAsB1+D,KAAKuqC,MAAM05B,mBAC7D,IAAItiC,EAAI,EACK,cAAbL,EAAGo9B,OAAsC,WAAbp9B,EAAGo9B,QAAuB/8B,EAAIL,EAAG49B,KAAO/J,GAAG7zB,EAAGo9B,QAAS1+D,KAAKuqC,MAAMw5B,UAAYpiC,EAAG3hC,KAAKuqC,MAAMi6B,WAAW3iE,IAAIy/B,EAAGs/B,UAAY5gE,KAAKuqC,MAAM25B,iBAAkBlkE,KAAKuqC,MAAMi6B,WAAWniE,IAAIi/B,EAAGs/B,OAAQ,CAAE1iD,QAASujB,GAAKzhC,KAAKke,QAASwgD,MAAOp9B,EAAGo9B,MAAOS,MAAO79B,EAAG69B,MAAOoJ,MAAO5mC,KAAOL,aAAc1lB,IAAM5b,KAAKwoE,MAAMlnC,GAEvU,OAAOA,EAAIG,GACTzhC,KAAKsoE,YAAYhnC,EAAIG,GAAIzhC,KAAKke,QAAQyjD,OAAOrgC,EAAGs/B,QAElD,aAAat/B,EAAIG,GACfzhC,KAAKuqC,MAAMi6B,WAAW3iE,IAAIy/B,IAAOthC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI8/B,GAAIpjB,UAAYujB,IAAMzhC,KAAKuqC,MAAMi6B,WAAW3R,OAAOvxB,GAAKthC,KAAKuqC,MAAM25B,kBAEhI,cAAc5iC,GACZ,IAAKthC,KAAKuqC,MAAMi6B,WAAW3iE,IAAIy/B,EAAGs/B,QAChC,OACF,IAAIn/B,EAAIzhC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI8/B,EAAGs/B,QACrC,GAAI5gE,KAAKuqC,MAAMy5B,aAA2B,WAAb1iC,EAAGo9B,QAAuB1+D,KAAKuqC,MAAM05B,mBAAoBjkE,KAAKuqC,MAAMw5B,UAAYtiC,EAAE8mC,OAAqB,cAAbjnC,EAAGo9B,OAAsC,WAAbp9B,EAAGo9B,MAAoB,CACxK,IAAI/8B,EAAIL,EAAG49B,KAAO/J,GAAG7zB,EAAGo9B,OACxB1+D,KAAKuqC,MAAMw5B,UAAYpiC,EAEzBF,EAAEvjB,QAAQioD,YAAY7kC,EAAGs/B,SAAW5gE,KAAKyoE,aAAannC,EAAGs/B,OAAQn/B,EAAEvjB,SAErE,mBACE,IAAK,IAAIojB,KAAMthC,KAAKuqC,MAAMs5B,oBAAqB,CAC7C,IAAIpiC,EAAIzhC,KAAKuqC,MAAMs5B,oBAAoBviC,GACvCthC,KAAK4hE,gBAAgBngC,IAGzB,gBAAgBH,GACdthC,KAAKohE,cAAc9/B,GAAgD,MAA3CthC,KAAKuqC,MAAMs5B,oBAAoBviC,EAAG//B,cAAwBvB,KAAKuqC,MAAMs5B,oBAAoBviC,EAAG//B,MAEtH,SACE,IAAI+/B,EAAKthC,KAAKke,QAAQ8P,SACtB,OAAOsT,EAAG0iC,WAAahkE,KAAKuqC,MAAMy5B,WAAY1iC,EAAG4iC,eAAiBlkE,KAAKuqC,MAAM25B,eAAgB5iC,EAAGyiC,SAAW/jE,KAAKuqC,MAAMw5B,SAAU/jE,KAAKuqC,MAAM05B,iBAAmB,IAAM3iC,EAAGonC,YAAa,EAAoB,MAAdpnC,EAAGqnC,UAAoBrnC,EAAGqnC,QAAU,IAAKrnC,EAAGqnC,QAAQ98B,KAAK,0EAA2EvK,EAEhU,cAAcA,GACZthC,KAAKuqC,MAAMk6B,WAAY,EACvB,IAAIhjC,EAAIzhC,KAAKuqC,MAAMw5B,SAAUpiC,EAAI3hC,KAAKuqC,MAAMy5B,WAC5ChkE,KAAKuqC,MAAMm6B,cAAcI,QAAU,GAAI9kE,KAAKuqC,MAAMm6B,cAAcK,aAAezjC,IAAMthC,KAAKuqC,MAAMk6B,WAAY,EAAOzkE,KAAKuqC,MAAMm6B,cAAcG,UAAY9gC,KAAK3W,OAAOptB,KAAKuqC,MAAMm6B,cAAcI,QAAQvQ,IAAK3yB,GAAMA,EAAEgmC,qBAAsB5nE,KAAKuqC,MAAMm6B,cAAcC,SAAW3kE,KAAKuqC,MAAMw5B,SAAWtiC,EAAGzhC,KAAKuqC,MAAMm6B,cAAcE,WAAa5kE,KAAKuqC,MAAMy5B,WAAariC,EACnW,IAAK,IAAIC,KAAK5hC,KAAKuqC,MAAMm6B,cAAcI,QACrCljC,EAAEqmC,mBAAqBrmC,EAAEqmC,aAAcrmC,EAAEk9B,gBAAkBl9B,EAAEk9B,UAC/D,OAAO9+D,KAAKuqC,MAAMm6B,cAEpB,WACE,OAAO1kE,KAAKuqC,MAAM45B,cAAgB,GAAgC,IAA3BnkE,KAAKuqC,MAAM65B,YAEpD,YAAY9iC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1B,IAAIC,EAAI,CAAE+6B,GAAIr/D,KAAKuqC,MAAMu5B,iBAAkBnL,WAAYr3B,EAAIs9B,OAAQn9B,EAAGk9B,QAASh9B,EAAGinC,MAAOxkC,GAAKG,EAAIpc,GAAGmZ,GAChG,MAALiD,IAAc3C,EAAI2C,EAAEskC,UAAgB,MAALjnC,IAAc0C,EAAEi7B,SAAY96B,IAAOA,EAAIA,EAAE8vB,IAAI,CAACruB,EAAG4B,KAC9E,GAAS,MAAL5B,EAAW,CACb,IAAI6B,EAAIpG,EAAEmG,GAAIE,EAAImuB,GAAGpuB,EAAEm3B,KAAMn3B,EAAE22B,OAC/B,OAAO1+D,KAAKqgE,WAAWr4B,EAAGD,EAAEo3B,MAAOp3B,EAAE22B,OAEvC,OAAOx4B,IACLtE,EAAE6C,EAAEvkC,OAAS,EAAIukC,EAAIA,EAAE,GAAIL,EAAGC,KAAMrkC,KAAKuqC,MAAMu+B,WAAWj9B,KAAKvH,GAErE,KAAKhD,GACH,OAAOA,EAAGo/B,MAAO,EAAMp/B,EAEzB,YAC+B,IAA7BthC,KAAKuqC,MAAM45B,gBAAwBnkE,KAAKuqC,MAAMu+B,WAAa,IAAK9oE,KAAKuqC,MAAM45B,gBAE7E,UACEnkE,KAAKuqC,MAAM45B,gBAEb,WAAW7iC,GACT,IAAIG,EAAI,CAAE+mC,MAAO,GAAIjnE,KAAM,gBAAiB89D,GAAIr/D,KAAKuqC,MAAMg6B,eAC3DjjC,IAAOG,EAAElgC,KAAO+/B,GAAKthC,KAAKuqC,MAAM85B,WAAWx4B,KAAKpK,GAAIzhC,KAAKuqC,MAAMu8B,YAAcrlC,EAE/E,SAASH,GACP,IAAIG,EAAI4gC,GAAG/gC,GAAKK,EAAI,IAAI8hC,IAAIhiC,EAAE8yB,IAAKnwB,GAAMA,EAAEi7B,KAC3C,IAAK,IAAIj7B,EAAI,EAAGA,EAAIpkC,KAAKuqC,MAAMu8B,YAAY0B,MAAMtoE,OAAQkkC,IAAK,CAC5D,IAAIC,EAAIrkC,KAAKuqC,MAAMu8B,YAAY0B,MAAMpkC,IACpCC,EAAEq8B,OAAS/+B,EAAE9/B,IAAIwiC,EAAEg7B,KAAOh7B,EAAErgB,UAE/B,IAAI4d,EAAI5hC,KAAKuqC,MAAM85B,WAAWvmB,MAC9B99C,KAAKuqC,MAAMu8B,YAA+C,IAAjC9mE,KAAKuqC,MAAM85B,WAAWnkE,OAAe,KAAOF,KAAKuqC,MAAM85B,WAAWrkE,KAAKuqC,MAAM85B,WAAWnkE,OAAS,GAAIuhC,EAAEkY,QAASvV,KACtIA,EAAEs8B,MAAQt8B,EAAE2kC,UAAYnnC,EAAEy9B,IAAMr/D,KAAKwoE,MAAMpkC,KAGhD,UAAU9C,EAAIG,EAAGE,EAAGC,GAAI,GACtB,GAAIhjC,GAAE6iC,EAAEvhC,OAAS,EAAG,IAAM,6CAAmD,MAALyhC,GAAyB,YAAZA,EAAE+8B,MACrF,MAAM,IAAIz6B,MAAM,0CAA0CtC,EAAE+8B,UAC9D,IAAIt6B,EAAIpkC,KAAKsmE,UAAU,IAAMtmE,KAAKgpE,YAAa,IAAMhpE,KAAKipE,UAAW,IAAMjpE,KAAKw8B,KAAK,UAAW8E,IAChG1iC,GAAEwlC,aAAa9pB,GAAI,IAAM,kDACzB,IAAI+pB,EAAI+6B,GAAGp/D,KAAKuqC,MAAMu+B,WAAYrnC,EAAG2C,GACrC,IAAKxC,GAAkB,IAAbyC,EAAEnkC,QAAgBuhC,EAAEvhC,OAAS,EACrC,MAAM,IAAI+jC,MAAM,uIAClB,OAAOjkC,KAAKw8B,KAAK,WAAY,KAC3B,IAAI8H,EAAI,GACRA,EAAEF,EAAEi7B,IAAW,MAAL19B,EAAYunC,GAAG9kC,EAAE+6B,OAASx9B,EAAG29B,GAAGh7B,EAAGD,EAAII,GAAMzkC,KAAKw8B,KAAKiI,GAAI0kC,IACrE,IAAI5kC,EAAI9C,EAAE8yB,IAAK9vB,GAAMH,EAAEG,EAAE46B,KACzB,OAAoC,IAA7Br/D,KAAKuqC,MAAM45B,gBAAwBnkE,KAAKuqC,MAAMu+B,WAAWnvB,QAASlV,IACvE,IAAK,IAAIyB,KAAKzB,EAAEmkC,MACd1iC,EAAEliB,YACFhkB,KAAKuqC,MAAMu+B,WAAa,MAAO,CAAE7nE,MAAOmjC,EAAGtb,MAAOyb,KAG1D,WAAWjD,GACT,OAAO1iC,GAAE82D,GAAGp0B,GAAK,IAAM,qDAAsD,IAAIG,KAC/E7iC,GAAE6iC,EAAEwgB,MAAO3d,GAAMA,aAAahqB,IAAK,IAAM,oEACzC,IAAIqnB,EAAGC,EAAI,GACXH,EAAEkY,QAAQ,CAACrV,EAAGC,KACZ3C,EAAE2C,GAAKD,IAET,IAAIF,EAAI,CAACE,EAAGC,KAAO5C,EAAIL,KAAMG,EAAG8C,GAAI3lC,GAAE+iC,EAAE1gC,iBAAiBqZ,GAAI,IAAM,8FAA+F1b,GAAE82D,GAAG/zB,EAAEknC,UAAW,IAAM,oGAAqGlnC,EAAE1gC,OAAQojC,EAAI,CAACC,EAAGC,KAC/S,IAAIE,EAAI9C,EAAEknC,SAASvkC,EAAGC,GAAI2B,EAAIuuB,MAAMC,QAAQjwB,GAAKA,EAAI,CAACA,GACtD7lC,GAAEsnC,EAAEhmC,SAAWuhC,EAAEvhC,OAAQ,IAAM,uKAAwKtB,GAAEsnC,EAAE+b,MAAOla,GAAMA,aAAaztB,IAAK,IAAM,wIAChP,IAAIwtB,EAAI,GACR,OAAO5B,EAAEyT,QAAQ,CAAC5R,EAAGC,KACnBF,EAAEE,GAAK,IAAMD,IACXD,GAEN,OAAO9nC,KAAK+mE,cAAc,CAAES,YAAapjC,EAAGqjC,cAAepjC,EAAGu6B,OAAQh9B,KAG1E,SAASN,GACP,OAAOthC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI8/B,GAAIpjB,QAAQ+iD,SAAS3/B,GAExD,KAAKA,GACH,OAAOthC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI8/B,GAAIpjB,QAAQ6iD,KAAKz/B,GAEpD,UAAUA,EAAIG,GACZ,OAAOzhC,KAAKuqC,MAAMi6B,WAAWhjE,IAAI8/B,GAAIpjB,QAAQ8iD,UAAU1/B,EAAIG,GAE7D,WAAWH,GACT,IAAIG,EAAIs6B,KAAMp6B,QAAU3hC,KAAKke,QAAQ0e,KAAK0E,GAC1C,OAAOK,EAAEynC,OAASrN,KAAOt6B,EAAGE,EAE9B,MAAML,GACJ,OAAiC,MAA1BthC,KAAKuqC,MAAMu8B,cAAwBxlC,EAAGynC,QAAU/oE,KAAKuqC,MAAMu8B,YAAYzH,GAAIr/D,KAAKuqC,MAAMu8B,YAAY0B,MAAM38B,KAAKvK,IAAMA,EAE5H,0BACE,OAAOthC,KAAKuqC,MAAMs5B,oBAEpB,QACE7jE,KAAKmlE,uBAAwBnlE,KAAKuqC,MAAMvmB,UAAWhkB,KAAK2J,IAAI0/D,QAASrpE,KAAKuqC,MAAQ,IAAIq5B,GACtF,IAAK,IAAItiC,KAAMthC,KAAKilE,SAClBjlE,KAAKimE,yBAAyB3kC,GAAKthC,KAAKilE,SAAS3jC,GAAItd,iBAAkBhkB,KAAKilE,SAAS3jC,GACvFthC,KAAK44D,YAAc,KAAM54D,KAAKqlE,gBAAkB,KAAMrlE,KAAKolE,mBAAqB,OAKpF,SAAS8D,GAAG7nC,GACV,IAAIC,EAAK40B,GAAGvC,GAAGtyB,GAAI,WACnB,OAAOslC,GAAEtG,WAAW/+B,EAAID,EAAG,WAE7B,SAASioC,KACP,IAAIjoC,EAAI02B,KACR,GAAmB,MAAf12B,EAAEkoC,UAAmB,CACvB,IAAIjoC,EAAK,IAAIl3B,GAAGi3B,GAChBA,EAAEkoC,UAAY,IAAIvE,GAAG1jC,GAEvB,OAAOw2B,GAAGz2B,EAAEkoC,UAAU5/D,KAAM42D,GAAG,IAAMl/B,EAAEkoC,WAAYloC,EAAEkoC,UAZvDvE,GAAGyB,aAAe,EAClBzB,GAAG0B,eAAiB,EAapB,IAAIC,GAAI2C,KACR,SAASH,GAAG9nC,EAAGC,GACb,IAAIG,EAAI,CAAE4C,EAAGhD,EAAGoL,EAAGnL,GACnB,OAAOqlC,GAAEC,UAAUpjE,GAAIi+B,GAEzB,IAKI+nC,GALA/lD,GAAK,GAET,SAASgmD,KACP,MAA2B,oBAAbv7B,WAAyC,MAAbA,UAG5C,SAASw7B,GAAGroC,GACVmoC,GAAKnoC,EAEP,SAASsoC,GAAGtoC,GACV,QAAW,IAAPmoC,GACF,OAAOA,GACT,GAAInoC,GAAKooC,KAAM,CACb,GAAIpoC,IAAMA,EAAI6M,WAA0B,gBAAd7M,EAAEuoC,QAC1B,OAAO,EACT,IAAItoC,EAAKD,EAAEwoC,WAAaxoC,EAAEyoC,SAA4B,oBAAV94B,OAAwBA,OAAO+4B,MAAQ,IACnF,IAAKzoC,EAAI,CACP,IAAIG,EAAIJ,EACR,OAAOI,EAAEuoC,eAAiBvoC,EAAEuoC,cAAcC,OAE5C,MAAO,2TAA2ThM,KAAK38B,IAAO,0kDAA0kD28B,KAAK38B,EAAGuR,OAAO,EAAG,IAE56D,OAAO,EAET,SAASq3B,KACP,MAAwB,oBAAVl5B,QAA4C,MAAnBA,OAAOpB,UAAgD,oBAArBu6B,kBAxB3E3oC,EAAG/d,GAAI,CAAE2mD,UAAW,IAAMF,GAAIG,SAAU,IAAMV,GAAIW,aAAc,IAAMZ,KA0BtE,IAAIa,GAAK5kD,KAgBT,SAAS6kD,GAAGnpC,EAAGC,GACb,IAAIG,EAAIJ,EACR,GAAIk6B,GAAGl6B,GACL,MAAc,WAAPC,EAAkB,GAAK,CAACD,EAAEnhC,QACnC,GAAIgjE,GAAG7hC,GAAI,CACT,IAAIO,EAAIP,EAAEopC,UAAY,OACtB,MAAO,CAACppC,EAAEqpC,OAAQrpC,EAAEspC,MAAQ/oC,EAAE1hC,QACzB,GAAImjE,GAAGhiC,GACZ,MAAO,CAACA,EAAErhB,OAAOk/C,MAAc,MAAN59B,EAAa,EAAI6zB,GAAG7zB,KAC/C,IAAKmzB,MAAMC,QAAQrzB,GACjB,MAAO,GACT,IAAIM,EAAI,GACR,KAAO8yB,MAAMC,QAAQjzB,IAAM85B,GAAG95B,IAAa,WAAPH,GAClCK,EAAEkK,KAAKpK,EAAEvhC,QAASuhC,EAAIA,EAAE,GAC1B,OAAOgzB,MAAMC,QAAQrzB,IAAM1b,KAAIuxC,QAAQ,uCAAyC0T,GAAGvpC,EAAGM,EAAG,IAAKA,EAEhG,SAASipC,GAAGvpC,EAAGC,EAAIG,GACjB,GAAIA,EAAIA,GAAK,IAAKgzB,MAAMC,QAAQrzB,KAAOk6B,GAAGl6B,GAExC,YADAziC,GAAgB,IAAd0iC,EAAGphC,OAAc,IAAM,eAAeuhC,EAAEi2B,KAAK,+DAA+Dp2B,EAAG,eAGnH1iC,GAAE0iC,EAAGphC,OAAS,EAAG,IAAM,eAAeuhC,EAAEi2B,KAAK,oDAAoDr2B,EAAEnhC,mBAAoBtB,GAAEyiC,EAAEnhC,SAAWohC,EAAG,GAAI,IAAM,eAAeG,EAAEi2B,KAAK,sBAAsBp2B,EAAG,wBAAwBD,EAAEnhC,mBAC5N,IAAIyhC,EAAIL,EAAGtJ,MAAM,GACjB,IAAK,IAAI4J,EAAI,EAAGA,EAAIP,EAAEnhC,SAAU0hC,EAC9BgpC,GAAGvpC,EAAEO,GAAID,EAAGF,EAAE7gB,OAAOghB,IAEzB,SAASipC,GAAGxpC,EAAGC,EAAIG,EAAGE,GACpB,GAAU,sBAANN,EAA2B,CAC7B,GAAS,MAALA,EACF,MAAM,IAAI4C,MAAM,kCAClB,GAAU,YAAN5C,GAAmBA,IAAMC,GAAY,YAAND,GAA0B,WAAPC,EACpD,MAAM,IAAI2C,MAAM,aAAaxC,iBAAiBE,cAAcN,qBAAqBC,aAGvF,SAASkK,GAAEnK,EAAGC,EAAIG,EAAGE,EAAI,WACvB,GAAIN,aAAa/mB,GACf,OAAOuwD,GAAGlpC,EAAGN,EAAEq9B,MAAOp9B,EAAIG,GAAIJ,EAChC,IAAIO,EAAI4zB,GAAGn0B,GACX,GAAU,WAANO,GAAkB,CAAC,OAAQ,QAAS,WAAWlhC,QAAQihC,IAAM,IAAMC,EAAID,GAAIkpC,GAAGlpC,EAAGC,EAAGN,EAAIG,GAAS,MAALJ,IAAck6B,GAAGl6B,KAAOozB,MAAMC,QAAQrzB,IAAkB,iBAALA,GAA6B,kBAALA,GAA8B,iBAALA,EAAe,CACjN,IAAIkD,EAAS,MAALlD,EAAY,OAASA,EAAEs0B,YAAYp0D,KAC3C,MAAM,IAAI0iC,MAAM,aAAa3C,iBAAkBG,+CAA+C8C,MAEhG,IAAIH,EAAIomC,GAAGnpC,EAAGO,IACb25B,GAAGl6B,KAAOozB,MAAMC,QAAQrzB,KAAOA,EAAI,CAACA,IACrC,IAAIiD,EAAU,WAAN1C,EAAiBg7B,GAAGv7B,EAAGO,GAAK04B,GAAGj5B,EAAG,IAAI,GAC9C,OAAOslC,GAAEtG,WAAW/7B,EAAGF,EAAGxC,GAE5B,SAASkpC,GAAGzpC,EAAGC,EAAIG,EAAGE,EAAI,WACxB,IAAK8yB,MAAMC,QAAQrzB,GACjB,MAAM,IAAI4C,MAAM,YAAY3C,eAAgBG,gDAC9C,OAAOJ,EAAEkzB,IAAI,CAACnwB,EAAGC,IAAMmH,GAAEpH,EAAG,GAAG9C,KAAM+C,KAAM5C,EAAGE,IAjEhD4oC,GAAGQ,aAAa,QAAS,KAAM,EAAQ1pC,IACrCA,GAAKmR,QAAQmB,KAAK,iJAEpB42B,GAAGQ,aAAa,aAAc,IAAMb,MACpCK,GAAGQ,aAAa,UAAW,IAAwB,oBAAXp6B,GAAqD,oBAApBA,EAAQO,UAA2D,oBAAzBP,EAAQO,SAASC,MACpIo5B,GAAGQ,aAAa,YAAa,IAA0B,oBAAb78B,WAAyC,MAAbA,WAA4C,MAAvBA,UAAU27B,WAAqB,SAAS5L,KAAK/vB,UAAU27B,YAAc,aAAa5L,KAAK/vB,UAAU47B,SAC5LS,GAAGQ,aAAa,YAAa,IAA0B,oBAAb78B,WAAyC,MAAbA,WAA4C,MAAvBA,UAAU27B,WAAqB,SAAS5L,KAAK/vB,UAAU27B,YAAc,QAAQ5L,KAAK/vB,UAAU47B,SACvLS,GAAGQ,aAAa,OAAQ,KAAM,GAC9BR,GAAGQ,aAAa,qCAAsC,IAAMR,GAAGrT,QAAQ,UACvEqT,GAAGQ,aAAa,+BAAgC,KAAM,GACtDR,GAAGQ,aAAa,UAAW,KAAM,GACjCR,GAAGQ,aAAa,+BAAgC,IAAMR,GAAGrT,QAAQ,UACjEqT,GAAGQ,aAAa,sBAAuB,KAAM,GAC7CR,GAAGQ,aAAa,wCAAyC,KAAM,GAC/DR,GAAGQ,aAAa,uBAAwB,KAAM,GAqD9C,IAAIz4D,GAAK,OACT,SAAS+d,GAAEgR,GACT,IAAIC,EAAK1gC,OAAOo9D,KAAK38B,GACrB,GAAkB,IAAdC,EAAGphC,OACL,MAAM,IAAI+jC,MAAM,yGAAyG3C,EAAGphC,gBAC9H,IAAIuhC,EAAIH,EAAG,GAAIK,EAAIN,EAAEI,GACrBA,EAAEupC,SAAS,OAASvpC,EAAIA,EAAE0C,UAAU,EAAG1C,EAAEvhC,OAAS,IAAKuhC,GAAQnvB,GAC/D,IAAIsvB,EAAI,IAAIwC,KACVuiC,GAAEJ,WAAW9kC,GACb,IACE,IAAI4C,EAAI1C,KAAKyC,GACb,OAAOqyB,GAAGpyB,IAAMmO,QAAQC,MAAM,2CAA4Ck0B,GAAEH,SAASniC,GAAIA,EACzF,MAAOA,GACP,MAAMsiC,GAAEH,SAAS,MAAOniC,IAG5B,OAAOzjC,OAAOC,eAAe+gC,EAAG,OAAQ,CAAE3gC,MAAOwgC,EAAGtgC,cAAc,IAASygC,EAE7E,SAASqpC,GAAG5pC,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,OAAQ,WAAYM,EAAI6J,GAAElK,EAAI,OAAQ,WACnDmyB,GAAGhyB,EAAE09B,MAAOx9B,EAAEw9B,MAAO,yBAAyB19B,EAAE09B,aAAax9B,EAAEw9B,8CAC/D,IAAIv9B,EAAI,CAAExO,KAAMqO,EAAGnY,KAAMqY,GACzB,OAAOglC,GAAEC,UAAUlgE,GAAIk7B,GAEzB,IAAIjhB,GAAK0P,GAAE,CAAE66C,SAAUD,KACvB,SAASE,GAAG9pC,EAAGC,EAAIG,EAAGE,GACpB,GAAS,MAALA,EACFA,EAAI6zB,GAAGn0B,QACJ,GAAU,cAANM,EACP,MAAM,IAAIsC,MAAM,oFAClB,GAAIo/B,GAAGhiC,IAAM6hC,GAAG7hC,GAAI,CAClB,GAAU,YAANM,GAAyB,UAANA,EACrB,MAAM,IAAIsC,MAAM,2FAA2FtC,MAC7G,OAAOglC,GAAEzoD,QAAQktD,wBAAwB/pC,EAAGC,GAAMG,EAAGE,GAEvD,IAAK45B,GAAGl6B,KAAOozB,MAAMC,QAAQrzB,IAAkB,iBAALA,GAA6B,kBAALA,GAA8B,iBAALA,EACzF,MAAM,IAAI4C,MAAM,4HAClB,GAAU,MAAN3C,EAAY,CACd+0B,GAAG/0B,GACH,IAAIM,EAAI+xB,GAAGryB,GAAK8C,EAAIuvB,GAAGlyB,GACvB7iC,GAAEgjC,IAAMwC,EAAG,IAAM,iCAAiC9C,8BAA+BM,oBAAoBwC,KACrG,IAAK,IAAIC,EAAI,EAAGA,EAAI5C,EAAEvhC,SAAUmkC,EAAG,CACjC,IAAIC,EAAI7C,EAAE4C,GAAIE,EAAIF,IAAM5C,EAAEvhC,OAAS,GAAIokC,IAAMqvB,GAAGryB,EAAGtJ,MAAMqM,IACzDzlC,GAAE6iC,EAAE4C,KAAO/C,EAAG+C,KAAOE,EAAG,IAAM,gDAAgD9C,yCAAyCH,SAG3H,OAAQi6B,GAAGl6B,KAAOozB,MAAMC,QAAQrzB,KAAOA,EAAI,CAACA,IAAKC,EAAKA,GAAMG,EAAGJ,EAAU,WAANM,EAAiBi7B,GAAGv7B,EAAGM,GAAK24B,GAAGj5B,EAAG,IAAI,GAAOslC,GAAEtG,WAAWh/B,EAAGC,EAAIK,GAEtI,SAAStG,GAAGgG,EAAGC,EAAIG,GACjB,IAAIE,EAAI6oC,GAAGnpC,EAAGI,GACd,OAAO0pC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEtB,IAAI4pC,GAAK,CAAEvI,QAAS,EAAGwI,QAAS,EAAG9gC,MAAO,EAAG+gC,OAAQ,EAAGC,MAAO,EAAGzI,KAAM,EAAGC,UAAW,GAClFyI,GAAK,MACP,YAAYnqC,GACV,OAAO,IAAImqC,GAAGnqC,GAAItJ,QAEpB,YAAYsJ,GACV,GAAIthC,KAAK0rE,OAAS,GAAI1rE,KAAK2rE,mBAAqB,EAAS,MAANrqC,IAAeA,aAAcmzB,QAAUnzB,EAAK,CAACA,IAAMA,EAAKA,EAAGizB,IAAK5yB,GAAM45B,GAAG55B,GAAKA,EAAE3hB,OAAS2hB,GAAkB,IAAdL,EAAGphC,QACjJ,OACFF,KAAK4rE,kBAAoBtqC,EAAG,GAAGqV,WAC/B,IAAIlV,EAAI,EACR,IAAK,IAAIE,EAAI,EAAGA,EAAIL,EAAGphC,OAAQyhC,IAAK,CAClC,IAAIC,EAAIN,EAAGK,GACXA,IAAML,EAAGphC,OAAS,GAAK0hC,EAAE+U,aAAe32C,KAAK4rE,oBAAsB5rE,KAAK4rE,uBAAoB,GAC5F,IAAIxnC,EAAI3C,EAAIG,EAAE+U,WACd32C,KAAK0rE,OAAO7/B,KAAK,CAAE7rB,OAAQ4hB,EAAGiqC,MAAOpqC,EAAGqqC,IAAK1nC,IAAM3C,EAAI2C,EAElC,IAAvBpkC,KAAK0rE,OAAOxrE,SAAiBF,KAAK22C,WAAa,GAAI32C,KAAK22C,WAAa32C,KAAK0rE,OAAO1rE,KAAK0rE,OAAOxrE,OAAS,GAAG4rE,IAE3G,MAAMxqC,EAAK,EAAGG,EAAIzhC,KAAK22C,YACrB,GAA2B,IAAvB32C,KAAK0rE,OAAOxrE,OACd,OAAO,IAAI6rE,YAAY,GACzB,GAAIzqC,EAAKlX,MAAMopC,OAAOlyB,IAAO,EAAIA,EAAIG,EAAIrX,MAAMopC,OAAO/xB,IAAM,EAAIA,EAAGH,EAAKyC,KAAK3W,IAAI,EAAGkU,GAAKG,EAAIsC,KAAK3V,IAAIpuB,KAAK22C,WAAYlV,GAAIA,GAAKH,EAC9H,OAAO,IAAIyqC,YAAY,GACzB,IAAIpqC,EAAI3hC,KAAKgsE,iBAAiB1qC,GAC9B,IAAW,IAAPK,EACF,MAAM,IAAIsC,MAAM,uCAAuC3C,GACzD,IAAIM,EAAIH,EAAIH,EAAI8C,EAAI,IAAI2nC,YAAYnqC,GAAIyC,EAAI,IAAI9B,WAAW6B,GAAIE,EAAI,EACnE,IAAK,IAAIC,EAAI5C,EAAG4C,EAAIvkC,KAAK0rE,OAAOxrE,OAAQqkC,IAAK,CAC3C,IAAIE,EAAIzkC,KAAK0rE,OAAOnnC,GAAIuD,EAAIxG,EAAKgD,EAAIG,EAAEonC,MAAO9jC,EAAIzD,EAAG8D,EAAIrE,KAAK3V,IAAIqT,EAAGgD,EAAEqnC,KAAOrnC,EAAEonC,MAAO3/B,EAAI,IAAI3J,WAAWkC,EAAEzkB,OAAQ8nB,EAAGM,EAAIN,GAC3H,GAAIzD,EAAEhiC,IAAI6pC,EAAGnE,GAAIzD,GAAK4H,EAAEhsC,OAAQuhC,EAAIgD,EAAEqnC,IACpC,MAEJ,OAAO1nC,EAET,iBAAiB9C,GACf,GAA2B,IAAvBthC,KAAK0rE,OAAOxrE,QAAgBohC,EAAK,GAAKA,GAAMthC,KAAK22C,WACnD,OAAQ,EACV,GAA8B,MAA1B32C,KAAK4rE,kBACP,OAAO5rE,KAAK2rE,mBAAqB5nC,KAAK7c,MAAMoa,EAAKthC,KAAK4rE,mBAAoB5rE,KAAK2rE,mBACjF,SAASlqC,EAAEG,GACT,OAAON,EAAKM,EAAEiqC,OAAS,EAAIvqC,GAAMM,EAAEkqC,IAAM,EAAI,EAE/C,GAAgD,IAA5CrqC,EAAEzhC,KAAK0rE,OAAO1rE,KAAK2rE,qBACrB,OAAO3rE,KAAK2rE,mBACd,IAAIhqC,EAAIsqC,GAAGjsE,KAAK0rE,OAAQjqC,GACxB,OAAc,IAAPE,GAAY,GAAK3hC,KAAK2rE,mBAAqBhqC,EAAG3hC,KAAK2rE,sBAG9D,SAASM,GAAG5qC,EAAGC,GACb,IAAIG,EAAI,EAAGE,EAAIN,EAAEnhC,OACjB,KAAOuhC,GAAKE,GAAK,CACf,IAAIC,EAAImC,KAAK7c,OAAOya,EAAIF,GAAK,GAAKA,EAAG2C,EAAI9C,EAAGD,EAAEO,IAC9C,GAAU,IAANwC,EACF,OAAOxC,EACTwC,EAAI,EAAIzC,EAAIC,EAAIH,EAAIG,EAAI,EAE1B,OAAQ,EAEV,IAAIsqC,GAAK,EACTC,eAAeC,GAAG/qC,EAAGC,GACnB,IAAIG,EAAI,GAAIE,EAAI,GAAIC,EAAI6yB,MAAMC,QAAQrzB,GAAKA,EAAEkzB,IAAKlwB,GAAMA,EAAE9iC,MAAQX,OAAOo9D,KAAK38B,GAC9E,IAAK,IAAIgD,EAAI,EAAGA,EAAIzC,EAAE1hC,SAAUmkC,EAAG,CACjC,IAAIC,EAAI1C,EAAEyC,GAAIE,EAAIkwB,MAAMC,QAAQrzB,GAAKA,EAAEgD,GAAGjJ,OAASiG,EAAEiD,GACrD,GAAgB,YAAZC,EAAEm6B,OAAmC,UAAZn6B,EAAEm6B,OAAiC,SAAZn6B,EAAEm6B,OAAgC,WAAZn6B,EAAEm6B,OAAkC,cAAZn6B,EAAEm6B,MAClG,MAAM,IAAIz6B,MAAM,gCAAgCK,OAAOC,EAAEm6B,SAC3D,IAAIj6B,EAAI,CAAEljC,KAAM+iC,EAAG66B,MAAO56B,EAAE46B,MAAOT,MAAOn6B,EAAEm6B,OAC5C,GAAgB,WAAZn6B,EAAEm6B,MAAoB,CACxB,IAAIx4B,EAAI,IAAIsK,QAAQ27B,MAAOrkC,IACzB,IAAIC,QAAUxD,EAAEgkC,QAASvgC,EAAID,EAAEjoC,OAAO,CAACqsC,EAAGjB,IAAMiB,EAAIjB,EAAEhrC,OAAQ,GAAKgsE,GAAKnkC,EAAE7nC,OAAQkoC,EAAI,IAAI7F,WAAWyF,GAAIkE,EAAI,EAC7G,IAAK,IAAIC,EAAI,EAAGA,EAAIpE,EAAE7nC,OAAQisC,IAAK,CACjC,IAAIjB,EAAInD,EAAEoE,GAAIM,EAAI,IAAIlK,WAAW,IAAI0T,YAAY,CAAC/K,EAAEhrC,SAAS8f,QAC7DooB,EAAE/lC,IAAIoqC,EAAGP,GAAIA,GAAKggC,GAAI9jC,EAAE/lC,IAAI6oC,EAAGgB,GAAIA,GAAKhB,EAAEhrC,OAE5C4nC,EAAEM,KAEJzG,EAAEkK,KAAK3F,QAEPvE,EAAEkK,KAAKtH,EAAEqY,QACL,MAANtb,IAAemD,EAAE4nC,MAAQ/qC,GAAKG,EAAEoK,KAAKpH,GAEvC,IAAIL,QAAUoM,QAAQ5zB,IAAI+kB,GAC1B,MAAO,CAAEib,KAAM0vB,GAAGloC,GAAImoC,MAAO9qC,GAE/B,SAAS+qC,GAAGnrC,EAAGC,GACb,IAA2BM,EAAvBH,EAAI,IAAIgqC,GAAGpqC,GAAIM,EAAI,GAAOyC,EAAI,EAClC,IAAK,IAAIC,KAAK/C,EAAI,CAChB,IAAqDwG,EAAjDxD,EAAID,EAAE9iC,KAAMgjC,EAAIF,EAAEq6B,MAAOj6B,EAAIJ,EAAE86B,MAAOj5B,EAAIytB,GAAGlvB,GACjD,GAAI,iBAAkBJ,EAAG,CACvB,IAAI0D,EAAI1D,EAAEooC,aACV,GAAgB,UAAZ1kC,EAAE22B,OAAiC,WAAZ32B,EAAE22B,OAC3B,KAAM,QAAS32B,MAAK,UAAWA,GAC7B,MAAM,IAAI9D,MAAM,UAAUI,EAAE9iC,0BAA0BwmC,EAAE22B,gEACrD,IAAgB,YAAZ32B,EAAE22B,MAIX,MAAM,IAAIz6B,MAAM,UAAUI,EAAE9iC,uCAAuCwmC,EAAE22B,+EAHrE,GAAU,YAANn6B,EACF,MAAM,IAAIN,MAAM,UAAUI,EAAE9iC,0BAA0BwmC,EAAE22B,yDAAyDn6B,MAGrH,IAAIyD,EAAIqjC,GAAGtjC,EAAE22B,OAAQt2B,EAAI3G,EAAEzJ,MAAMoM,EAAGA,EAAI8B,EAAI8B,GAAIkE,EAAgB,UAAZnE,EAAE22B,MAAoB,IAAIn8B,WAAW6F,GAAK,IAAI2N,YAAY3N,GAC9G,GAAU,YAAN7D,EACF,GAAgB,UAAZwD,EAAE22B,OAAiC,WAAZ32B,EAAE22B,MAAoB,CAC/C52B,EAAI,IAAIqO,aAAajK,EAAEhsC,QACvB,IAAK,IAAIisC,EAAI,EAAGA,EAAID,EAAEhsC,OAAQisC,IAAK,CACjC,IAAIjB,EAAIgB,EAAEC,GACVrE,EAAEqE,GAAKjB,EAAInD,EAAE2kC,MAAQ3kC,EAAE3Z,SAEpB,IAAgB,YAAZ2Z,EAAE22B,MAGX,MAAM,IAAIz6B,MAAM,iCAAiC8D,EAAE22B,uCAF7C,IAAN98B,IAAiBA,EAAI+qC,MAAO7kC,EAAIlG,EAAEsK,OAGjC,IAAU,UAAN3H,EASP,MAAM,IAAIN,MAAM,gCAAgCK,OAAOC,KARvD,GAAgB,UAAZwD,EAAE22B,OAAiC,WAAZ32B,EAAE22B,MAC3B,MAAM,IAAIz6B,MAAM,iCAAiC8D,EAAE22B,gCACrD52B,EAAI,IAAI8N,WAAW1J,EAAEhsC,QACrB,IAAK,IAAIisC,EAAI,EAAGA,EAAID,EAAEhsC,OAAQisC,IAAK,CACjC,IAAIjB,EAAIgB,EAAEC,GACVrE,EAAEqE,GAAKpI,KAAK3O,MAAM8V,EAAInD,EAAE2kC,MAAQ3kC,EAAE3Z,MAItCgW,GAAK8B,EAAI8B,OACJ,GAAU,WAANzD,EAAgB,CACzB,IAAIwD,EAAI4rB,GAAGtvB,EAAE86B,OACbr3B,EAAI,GACJ,IAAK,IAAIE,EAAI,EAAGA,EAAID,EAAGC,IAAK,CAC1B,IAAII,EAAI,IAAI6N,YAAYxU,EAAEzJ,MAAMoM,EAAGA,EAAI8nC,KAAK,GAC5C9nC,GAAK8nC,GACL,IAAIhgC,EAAI,IAAI3J,WAAWd,EAAEzJ,MAAMoM,EAAGA,EAAIgE,IACtCN,EAAE+D,KAAKK,GAAI9H,GAAKgE,OAEb,CACL,IAAIL,EAAIsjC,GAAG9mC,GAAIyD,EAAIvG,EAAEzJ,MAAMoM,EAAGA,EAAI8B,EAAI6B,GACtC,GAAU,YAANxD,EACFuD,EAAI,IAAIqO,aAAanO,QAClB,GAAU,UAANzD,EACPuD,EAAI,IAAI8N,WAAW5N,QAChB,GAAU,SAANzD,EACPuD,EAAI,IAAIvF,WAAWyF,OAChB,IAAU,cAANzD,EAQP,MAAM,IAAIN,MAAM,gCAAgCK,OAAOC,KAR7B,CAC1BuD,EAAI,IAAIqO,aAAanO,GACrB,IAAII,EAAI,IAAI+N,aAAarO,EAAE5nC,OAAS,GAAIgsC,EAAI,IAAIiK,aAAarO,EAAE5nC,OAAS,GACxE,IAAK,IAAIusC,EAAI,EAAGA,EAAIrE,EAAEloC,OAAQusC,IAC5BrE,EAAEqE,GAAK3E,EAAM,EAAJ2E,GAAQP,EAAEO,GAAK3E,EAAM,EAAJ2E,EAAQ,GACpC,IAAIN,EAAI9Q,GAAG+M,EAAG3D,EAAG,WAAYyG,EAAI7P,GAAG6Q,EAAGzH,EAAG,WAC1C9C,EAAE2C,GAAK3jB,GAAGwrB,EAAGjB,GAAIiB,EAAEnoB,UAAWknB,EAAElnB,WAGlCogB,GAAK8B,EAAI6B,EAEL,cAANxD,IAAsB5C,EAAE2C,GAAKjJ,GAAGyM,EAAGrD,EAAGF,IAExC,OAAO5C,EAET,SAAS2qC,GAAGjrC,GACV,GAAU,OAANA,EACF,MAAM,IAAI4C,MAAM,wBAAwB2oC,KAAKC,UAAUxrC,IACzD,IAAIC,EAAK,EAAGG,EAAI,GAChBJ,EAAEsY,QAASvV,IACT,GAAI9C,GAAM8C,EAAEuS,WAAYlV,EAAEoK,KAAKzH,EAAEuS,aAAevS,EAAEpkB,OAAO22B,WAAavS,EAAI,IAAIA,EAAEuxB,YAAYvxB,MAAOA,aAAa+R,cAAgB/R,aAAawR,YAAcxR,aAAa7B,YACtK,MAAM,IAAI0B,MAAM,mCAAmCG,EAAEuxB,YAAYp0D,QAErE,IAAIogC,EAAI,IAAIY,WAAWjB,GAAKM,EAAI,EAChC,OAAOH,EAAEkY,QAASvV,IAChBzC,EAAEt/B,IAAI,IAAIkgC,WAAW6B,EAAEpkB,QAAS4hB,GAAIA,GAAKwC,EAAEuS,aACzChV,EAAE3hB,OAER,IAAI8sD,GAAsB,oBAAVC,IAAyC,oBAARC,MAAsC,oBAARC,MAAsC,oBAARC,MAC7G,SAASr0B,GAAGxX,GACV,OAAOyrC,GAAKC,EAAOp2B,WAAWtV,EAAG,QAAU,IAAI2rC,KAAK,CAAC3rC,IAAI69B,KAE3D,SAASiO,GAAG9rC,GACV,GAAIyrC,GACF,OAAOC,EAAO9W,KAAK50B,GAAGyE,SAAS,UACjC,IAAIxE,EAAK,IAAIiB,WAAWlB,GAAII,EAAI,GAChC,IAAK,IAAIE,EAAI,EAAGC,EAAIN,EAAGphC,OAAQyhC,EAAIC,EAAGD,IACpCF,GAAKhhC,OAAO4tC,aAAa/M,EAAGK,IAC9B,OAAOurC,KAAKzrC,GAEd,SAAS2rC,GAAG/rC,GACV,GAAIyrC,GAAI,CACN,IAAInrC,EAAIorC,EAAO9W,KAAK50B,EAAG,UACvB,OAAOM,EAAE3hB,OAAOgY,MAAM2J,EAAE0rC,WAAY1rC,EAAE0rC,WAAa1rC,EAAEgV,YAEvD,IAAIrV,EAAK2rC,KAAK5rC,GAAII,EAAI,IAAIc,WAAWjB,EAAGphC,QACxC,IAAK,IAAIyhC,EAAI,EAAGA,EAAIL,EAAGphC,SAAUyhC,EAC/BF,EAAEp/B,IAAI,CAACi/B,EAAGqJ,WAAWhJ,IAAKA,GAC5B,OAAOF,EAAEzhB,OAEX,SAASstD,GAAGjsC,GACV,OAAOoqC,GAAG/T,KAAKr2B,GAEjB,SAASksC,GAAGlsC,GACV,IAAIC,EAAK,IACT,IAAKD,EAAIA,EAAEmsC,OAAQnsC,EAAE2pC,SAAS1pC,IAC5BD,EAAIA,EAAErJ,MAAM,EAAGqJ,EAAEnhC,OAAS,GAC5B,IAAIuhC,EAAIJ,EAAE7H,MAAM8H,GAChB,OAAOG,EAAEA,EAAEvhC,OAAS,GAEtB,SAASm/D,GAAGh+B,EAAGC,GACb,IAAIG,EAAI,CAAEgsC,cAAepsC,EAAEosC,cAAeC,OAAQrsC,EAAEqsC,OAAQC,YAAatsC,EAAEssC,YAAaC,YAAavsC,EAAEusC,YAAaC,gBAAiBvsC,GACrI,OAAsB,MAAfD,EAAEysC,YAAsBrsC,EAAEqsC,UAAYzsC,EAAEysC,WAAqC,MAAzBzsC,EAAE0sC,sBAAgCtsC,EAAEssC,oBAAsB1sC,EAAE0sC,qBAA4C,MAAtB1sC,EAAE2sC,mBAA6BvsC,EAAEusC,iBAAmB3sC,EAAE2sC,kBAA6C,MAA1B3sC,EAAE4sC,uBAAiCxsC,EAAEwsC,qBAAuB5sC,EAAE4sC,sBAA2C,MAApB5sC,EAAE6sC,iBAA2BzsC,EAAEysC,eAAiB7sC,EAAE6sC,gBAAiBzsC,EAEhX,SAAS0sC,GAAG9sC,EAAGC,EAAIG,GACjB,IAAIE,EAAI,CAAE8rC,cAAepsC,EAAEosC,cAAeC,OAAQrsC,EAAEqsC,OAAQC,YAAatsC,EAAEssC,YAAaC,YAAavsC,EAAEusC,aACvG,GAAwB,MAApBvsC,EAAE6sC,iBAA2BvsC,EAAEusC,eAAiB7sC,EAAE6sC,gBAAsC,MAArB7sC,EAAEwsC,gBAAyB,CAChG,IAAKvsC,EACH,MAAM,IAAI2C,MAAM,yDAClB,IAAKxC,EACH,MAAM,IAAIwC,MAAM,wDAClBtC,EAAEysC,YAAc9sC,EAAIK,EAAE0sC,WAAa5sC,EAErC,OAAsB,MAAfJ,EAAEysC,YAAsBnsC,EAAEmsC,UAAYzsC,EAAEysC,WAAqC,MAAzBzsC,EAAE0sC,sBAAgCpsC,EAAEosC,oBAAsB1sC,EAAE0sC,qBAA4C,MAAtB1sC,EAAE2sC,mBAA6BrsC,EAAEqsC,iBAAmB3sC,EAAE2sC,kBAA6C,MAA1B3sC,EAAE4sC,uBAAiCtsC,EAAEssC,qBAAuB5sC,EAAE4sC,sBAAuBtsC,EAE7SwqC,eAAemC,GAAGjtC,EAAGC,GACnB,IAAIG,EAAGE,EACP,OAA4B,MAArBN,EAAEwsC,mBAA6BpsC,EAAGE,SAAWL,EAAGD,EAAEwsC,kBAAmBM,GAAG9sC,EAAGI,EAAGE,GAEvF,SAAS4sC,GAAGltC,GACV,GAAIA,EAAEosC,yBAAyB1B,YAC7B,MAAM,IAAI9nC,MAAM,uDAClB,MAAO,CAAEuqC,UAA2B,IAAI1iC,KAAQ2iC,kBAAmB,OAAQC,mBAAuC,MAAnBrtC,EAAEosC,cAAwB,EAAI50B,GAAG+zB,KAAKC,UAAUxrC,EAAEosC,gBAAiBkB,iBAAmC,MAAjBttC,EAAE+sC,YAAsB,EAAIv1B,GAAG+zB,KAAKC,UAAUxrC,EAAE+sC,cAAeQ,gBAAiC,MAAhBvtC,EAAEgtC,WAAqB,EAAI,IAAI5C,GAAGpqC,EAAEgtC,YAAY13B,YAEtT,SAASk4B,GAAGxtC,GACV,IAAIC,EAAK,GACT,IAAK,IAAIG,KAAKJ,EACZC,EAAGuK,QAAQpK,EAAEqtC,SACf,OAAOxtC,EAET,SAASytC,KACP,IAAI1tC,EAAKI,IACP,IAAIE,EAAIF,GAAK,GAAIG,EAAI,EACrB,OAAa,QAAJD,IACPC,GAAK,QAASD,IAAM,EACtB,OAAOA,IAAM,QAASC,GAAK,UAAWD,EAAIC,GACzCN,EAAK,IAAI2U,YAAY,MACxB3U,EAAG,GAAK,EACR,IAAK,IAAIG,EAAI,EAAGA,EAAI,KAAMA,IACxBH,EAAGG,GAAKJ,EAAEI,GACZ,IAAK,IAAIA,EAAI,KAAMA,EAAI,KAAMA,IAC3BH,EAAGG,GAAK,WAAaA,EAAI,MAAQ,IACnC,OAAOH,EAET,SAAS0tC,KACP,IAAI3tC,EAAI,IAAI4U,YAAY,IACxB5U,EAAE,GAAK,EAAGA,EAAE,IAAM,WAAYA,EAAE,IAAM,WAAYA,EAAE,IAAM,WAC1D,IAAK,IAAIC,EAAK,EAAGA,EAAK,GAAIA,IACxBD,EAAEC,GAAMA,GAAM,GAChB,IAAK,IAAIA,EAAK,GAAIA,EAAK,GAAIA,IACzBD,EAAEC,GAAM,YAAcA,EAAK,IAAM,IACnC,OAAOD,EAET,SAAS4tC,KACP,IAAI5tC,EAAI,IAAI4U,YAAY,IACxB,IAAK,IAAI3U,EAAK,EAAGA,EAAK,GAAIA,IACxBD,EAAEC,GAAM,KACV,OAAOD,EAAE,GAAKA,EAAE,IAAM,EAAGA,EAE3B,SAASsrC,KACP,IAAItrC,EAAI0tC,KAAMztC,EAAK0tC,KAAMvtC,EAAIwtC,KAC7B,OAAQttC,IACN,IAAIC,EAAI,IAAImqC,YAAY,EAAIpqC,EAAEzhC,QAASkkC,EAAI,IAAI6R,YAAYrU,GAC3D,IAAK,IAAIyC,EAAI,EAAGA,EAAI1C,EAAEzhC,OAAQmkC,IAAK,CACjC,IAAIC,EAAI3C,EAAE0C,GAAIE,EAAIlD,EAAEI,EAAE6C,GAAK,KAAW,KAAJA,IAAahD,EAAGgD,GAAK,IACvDF,EAAEC,GAAKE,EAET,OAAO,IAAI4R,aAAavU,IAG5B,IAAIstC,GAAK,MACP,cACElvE,KAAKmvE,YAAc,GAAInvE,KAAKovE,YAAc,GAE5C,qBACE,OAAsB,MAAfF,GAAGp1B,WAAqBo1B,GAAGp1B,SAAW,IAAIo1B,IAAOA,GAAGp1B,SAE7D,0BAA0BxY,GACxB4tC,GAAGG,cAAcF,YAAYtjC,KAAKvK,GAEpC,0BAA0BA,GACxB4tC,GAAGG,cAAcD,YAAYvjC,KAAKvK,GAEpC,uBAAuBA,GACrB,OAAO4tC,GAAGI,YAAYhuC,EAAI,QAE5B,uBAAuBA,EAAIG,GACzB,OAAOytC,GAAGI,YAAYhuC,EAAI,OAAQG,GAEpC,mBAAmBH,EAAIG,EAAGE,GACxB,IAAIC,EAAI,GACR,OAAc,SAANH,EAAeytC,GAAGG,cAAcD,YAAcF,GAAGG,cAAcF,aAAax1B,QAAStV,IAC3F,IAAIC,EAAID,EAAE/C,EAAIK,GACR,OAAN2C,GAAc1C,EAAEiK,KAAKvH,KACnB1C,IAGJ2tC,GAAMluC,GAAM6tC,GAAGM,mBAAmBnuC,GAClCouC,GAAMpuC,GAAM6tC,GAAGQ,mBAAmBruC,GAClCsuC,GAAMtuC,GAAM6tC,GAAGU,gBAAgBvuC,GAC/BwuC,GAAK,CAACxuC,EAAGC,IAAO4tC,GAAGY,gBAAgBzuC,EAAGC,GACtCyuC,GAAK,eACLC,GAAK,EACLC,GAAK,eACLC,GAAK,mBACT,SAASC,KACP,IAAKxqD,KAAIuxC,QAAQ,cACf,MAAM,IAAIjzB,MAAM,2FAClB,IAAI5C,EAAqB,oBAAV2P,OAAwBxC,KAAOwC,OAAQ1P,EAAKD,EAAE+uC,WAAa/uC,EAAEgvC,cAAgBhvC,EAAEivC,iBAAmBjvC,EAAEkvC,aAAelvC,EAAEmvC,cACpI,GAAU,MAANlvC,EACF,MAAM,IAAI2C,MAAM,6DAClB,OAAO3C,EAET,SAASmvC,GAAGpvC,GACV,IAAIC,EAAKD,EAAE0jC,OACXzjC,EAAGovC,kBAAkBT,GAAI,CAAEU,QAAS,cAAgBrvC,EAAGovC,kBAAkBR,GAAI,CAAES,QAAS,cAE1F,IAAIC,GAAK,MACP,YAAYtvC,GACV,GAAIthC,KAAKowE,UAAYD,KAAY,MAAN7uC,IAAeA,EACxC,MAAM,IAAI2C,MAAM,kEAClBjkC,KAAK6wE,UAAYvvC,EAEnB,WAAWA,GACT,GAAIA,EAAGmsC,yBAAyB1B,YAC9B,MAAM,IAAI9nC,MAAM,4FAClB,OAAOjkC,KAAK8wE,eAAe9wE,KAAK6wE,UAAWvvC,GAE7C,aACE,OAAOthC,KAAK8wE,eAAe9wE,KAAK6wE,WAElC,eAAevvC,EAAIG,GACjB,OAAO,IAAI+O,QAAQ,CAAC7O,EAAGC,KACrB,IAAIwC,EAAIpkC,KAAKowE,UAAUp9B,KAAK+8B,GAAIC,IAChC5rC,EAAE2sC,gBAAkB,IAAMN,GAAGrsC,GAAIA,EAAE4sC,UAAY,KAC7C,IAAI3sC,EAAID,EAAE2gC,OACV,GAAS,MAALtjC,EAAW,CACb,IAAI6C,EAAID,EAAE4sC,YAAYhB,GAAI,YAAaxrC,EAAIH,EAAE4sC,YAAYjB,IAAIzuE,IAAIxB,KAAK6wE,WACtEpsC,EAAEusC,UAAY,KACZ,GAAgB,MAAZvsC,EAAEsgC,OACJ,OAAO1gC,EAAE8sC,QAASvvC,EAAE,IAAIqC,MAAM,gCAAgCjkC,KAAK6wE,6BACrElvC,EAAE8C,EAAEsgC,OAAOqM,iBACV3sC,EAAE8O,QAAWrN,IAAO7B,EAAE8sC,QAASvvC,EAAE6C,EAAEgO,QAASnO,EAAE+sC,WAAa,IAAMhtC,EAAE8sC,YACjE,CACL1vC,EAAE4sC,WAAa5C,GAAG/T,KAAKj2B,EAAE4sC,YACzB,IAA0EnoC,EAMtE4B,EANAxD,EAAIiqC,GAAG9sC,GAAI8C,EAAIF,EAAE4sC,YAAYf,GAAI,aAAczrC,EAAIF,EAAE2sC,YAAYhB,IACrE,IACEhqC,EAAIzB,EAAE6sC,IAAI,CAAET,UAAW7wE,KAAK6wE,UAAWU,mBAAoBjtC,IAC3D,MAAOyD,GACP,OAAOnG,EAAEmG,GAGX7B,EAAE8qC,UAAY,KACZlpC,EAAIzD,EAAE4sC,YAAYhB,GAAI,aACtB,IAA2BjoC,EAAvBD,EAAID,EAAEopC,YAAYjB,IACtB,IACEjoC,EAAID,EAAEupC,IAAI,CAAET,UAAW7wE,KAAK6wE,UAAWO,eAAgB3vC,EAAG8vC,mBAAoBjtC,IAC9E,MAAO8D,GACP,OAAOxG,EAAEwG,GAEXJ,EAAEgpC,UAAY,IAAMrvC,EAAE,CAAE4vC,mBAAoBjtC,IAAM0D,EAAEuL,QAAWnL,IAC7D3D,EAAIF,EAAE2sC,YAAYhB,IAClB,IAAIhkC,EAAIzH,EAAEouB,OAAO7yD,KAAK6wE,WACtB3kC,EAAE8kC,UAAY,KAAO3sC,EAAE8sC,QAASvvC,EAAEoG,EAAEyK,QAASvG,EAAEqH,QAAWpH,IAAO9H,EAAE8sC,QAASvvC,EAAEoG,EAAEyK,UAEjFvM,EAAEqN,QAAWxL,IAAO1D,EAAE8sC,QAASvvC,EAAEsE,EAAEuM,QAASlO,EAAE8sC,WAAa,KACvD,MAALvpC,EAAYzD,EAAE8sC,QAAUrpC,EAAEupC,WAAa,IAAMhtC,EAAE8sC,WAGlD/sC,EAAEmP,QAAWlP,GAAMzC,EAAEwC,EAAEqO,WAIhCm+B,GAAGY,WAAa,eAChB,IAAIC,GAAMpwC,GAAM1b,KAAIuxC,QAAQ,gBAAkBzC,MAAMC,QAAQrzB,IAAMA,EAAEkX,WAAWq4B,GAAGY,YAAcE,GAAGrwC,EAAErJ,MAAM44C,GAAGY,WAAWtxE,SAAW,KAGpI,SAASwxE,GAAGrwC,GACV,OAAO,IAAIuvC,GAAGvvC,GAEhB,SAASswC,GAAGtwC,GACV,OAAOA,EAAEkX,WAAWq4B,GAAGY,YAAcnwC,EAAErJ,MAAM44C,GAAGY,WAAWtxE,QAAUmhC,EANvE6tC,GAAGM,mBAAmBiC,IACtBvC,GAAGQ,mBAAmB+B,IAOtB,IAAIG,GAAK,MACP,cACE5xE,KAAKowE,UAAYD,KAEnB,mBACE,OAAO,IAAI3/B,QAAQ,CAAClP,EAAIG,KACtB,IAAIE,EAAI3hC,KAAKowE,UAAUp9B,KAAK+8B,GAAIC,IAChCruC,EAAEovC,gBAAkB,IAAMN,GAAG9uC,GAAIA,EAAEqvC,UAAY,KAC7C,IAAIpvC,EAAID,EAAEojC,OAAQ3gC,EAAIxC,EAAEqvC,YAAYf,GAAI,YAAa5rC,EAAIF,EAAE8sC,YAAYhB,IAAI2B,SAC3EvtC,EAAE0sC,UAAY,KACZ,IAAIzsC,EAAI,GACR,IAAK,IAAIE,KAAKH,EAAEygC,OACdxgC,EAAEE,EAAEosC,WAAapsC,EAAE8sC,mBACrBjwC,EAAGiD,IACFD,EAAEiP,QAAWhP,IAAO3C,EAAEuvC,QAAS1vC,EAAE6C,EAAEmO,QAASrO,EAAEitC,WAAa,IAAMzvC,EAAEuvC,SACrExvC,EAAE4R,QAAW3R,GAAMH,EAAEE,EAAE8Q,SAG9B,kBAAkBnR,GAChB,OAAOA,EAAKqwC,GAAGrwC,GAAK,IAAIkP,QAAQ,CAAC/O,EAAGE,KAClC,IAAIC,EAAI5hC,KAAKowE,UAAUp9B,KAAK+8B,GAAIC,IAChCpuC,EAAEmvC,gBAAkB,IAAMN,GAAG7uC,GAAIA,EAAEovC,UAAY,KAC7C,IAA4FvsC,EAAxFL,EAAIxC,EAAEmjC,OAAQ1gC,EAAID,EAAE6sC,YAAYf,GAAI,aAAc5rC,EAAID,EAAE6sC,YAAYhB,IAAK3rC,EAAID,EAAE9iC,IAAI8/B,GACvFiD,EAAEysC,UAAY,KACZ,GAAgB,MAAZzsC,EAAEwgC,OACJ,OAAO3gC,EAAE+sC,QAASxvC,EAAE,IAAIsC,MAAM,gCAAgC3C,qBAChE,CACE,IAAI4E,EAAI5B,EAAEuuB,OAAOvxB,GAAKwG,EAAI,KACxBrD,EAAIL,EAAE6sC,YAAYhB,GAAI,aACtB,IAAIjoC,EAAIvD,EAAEysC,YAAYjB,IAAIpd,OAAOvxB,GACjC0G,EAAEgpC,UAAY,IAAMvvC,EAAE8C,EAAEwgC,OAAOwM,oBAAqBvpC,EAAEuL,QAAWnL,GAAMzG,EAAE4C,EAAEkO,QAE7EvM,EAAE8qC,UAAYlpC,EAAG5B,EAAEqN,QAAWxL,IAAOD,IAAK1D,EAAE+sC,QAASxvC,EAAE4C,EAAEkO,UAE1DlO,EAAEgP,QAAWrN,IAAO9B,EAAE+sC,QAASxvC,EAAE4C,EAAEkO,QAASpO,EAAEgtC,WAAa,KACvD,MAAL5sC,EAAYL,EAAE+sC,QAAU1sC,EAAE4sC,WAAa,IAAMjtC,EAAE+sC,UAEhDvvC,EAAE2R,QAAWnP,GAAMzC,EAAEC,EAAE6Q,WAI5Bq/B,GAAK,IACLC,GAAK,sBACLC,GAAK,OACLC,GAAK,iBACLC,GAAK,eACLC,GAAK,cACLC,GAAK,iBACT,SAASC,GAAGhxC,GACV,MAAO,CAAEixC,KAAM,CAACP,GAAI1wC,EAAG2wC,IAAIta,KAAKoa,IAAKS,SAAU,CAACR,GAAI1wC,EAAG4wC,IAAIva,KAAKoa,IAAK1D,YAAa,CAAC2D,GAAI1wC,EAAG6wC,IAAIxa,KAAKoa,IAAKzD,WAAY,CAAC0D,GAAI1wC,EAAG8wC,IAAIza,KAAKoa,IAAKU,cAAe,CAACT,GAAI1wC,EAAG+wC,IAAI1a,KAAKoa,KAE5K,SAASW,GAAGpxC,GACV,IAAK,IAAIC,KAAM1gC,OAAO9B,OAAOuiC,GAC3B2P,OAAO0hC,aAAaC,WAAWrxC,GAEnC,SAASsxC,GAAGvxC,GACV,IAAIC,EAAKD,EAAE7H,MAAMs4C,IACjB,GAAIxwC,EAAGphC,OAAS,EACd,MAAM,IAAI+jC,MAAM,uBAAuB5C,GACzC,OAAOC,EAAGtJ,MAAM,EAAGsJ,EAAGphC,OAAS,GAAGw3D,KAAKoa,IAEzC,SAASe,GAAGxxC,GACV,OAAOA,EAAEkX,WAAWu6B,GAAGtB,YAAcnwC,EAAErJ,MAAM86C,GAAGtB,WAAWtxE,QAAUmhC,EAEvE,IAAIyxC,GAAK,MACP,YAAYxxC,GACV,IAAK3b,KAAIuxC,QAAQ,eAAkC,oBAAVlmB,QAAuD,oBAAvBA,OAAO0hC,aAC9E,MAAM,IAAIzuC,MAAM,2DAClB,GAAIjkC,KAAK+yE,GAAK/hC,OAAO0hC,aAAoB,MAANpxC,IAAeA,EAChD,MAAM,IAAI2C,MAAM,sEAClBjkC,KAAK6wE,UAAYvvC,EAAIthC,KAAKg+D,KAAOqU,GAAGryE,KAAK6wE,WAE3C,WAAWvvC,GACT,GAAIA,EAAGmsC,yBAAyB1B,YAC9B,MAAM,IAAI9nC,MAAM,4FAClB,CACE,IAAIxC,EAAImrC,KAAKC,UAAUvrC,EAAGmsC,eAAgB9rC,EAAIirC,KAAKC,UAAUvrC,EAAG8sC,aAAcxsC,EAAI2sC,GAAGjtC,GAAK8C,EAAIqnC,GAAG/T,KAAKp2B,EAAG+sC,YACzG,IACEruE,KAAK+yE,GAAGC,QAAQhzE,KAAKg+D,KAAKsU,KAAM1F,KAAKC,UAAUjrC,IAAK5hC,KAAK+yE,GAAGC,QAAQhzE,KAAKg+D,KAAKuU,SAAU9wC,GAAIzhC,KAAK+yE,GAAGC,QAAQhzE,KAAKg+D,KAAKoQ,YAAazsC,GAAI3hC,KAAK+yE,GAAGC,QAAQhzE,KAAKg+D,KAAKqQ,WAAYlB,GAAG/oC,IAChL,IAAIC,EAAI,CAAEqpC,OAAQpsC,EAAGosC,OAAQC,YAAarsC,EAAGqsC,YAAaC,YAAatsC,EAAGssC,YAAaE,UAA2B,MAAhBxsC,EAAGwsC,UAAoBxsC,EAAGwsC,eAAY,EAAQC,oBAA+C,MAA1BzsC,EAAGysC,oBAA8BzsC,EAAGysC,yBAAsB,EAAQC,iBAAyC,MAAvB1sC,EAAG0sC,iBAA2B1sC,EAAG0sC,sBAAmB,EAAQC,qBAAiD,MAA3B3sC,EAAG2sC,qBAA+B3sC,EAAG2sC,0BAAuB,EAAQC,eAAqC,MAArB5sC,EAAG4sC,eAAyB5sC,EAAG4sC,oBAAiB,GAC/c,OAAOluE,KAAK+yE,GAAGC,QAAQhzE,KAAKg+D,KAAKwU,cAAe5F,KAAKC,UAAUxoC,IAAK,CAAEktC,mBAAoB3vC,GAC1F,MAAOyC,GACP,MAAMouC,GAAGzyE,KAAKg+D,MAAO,IAAI/5B,MAAM,yBAAyBjkC,KAAK6wE,kHAAkHjvC,EAAE8sC,wCAAwC9sC,EAAE+sC,qCAAqC/sC,EAAEgtC,sBAIxQ,aACE,IAAIttC,EAAKsrC,KAAKqG,MAAMjzE,KAAK+yE,GAAGG,QAAQlzE,KAAKg+D,KAAKsU,OAC9C,GAAU,MAANhxC,EACF,MAAM,IAAI2C,MAAM,kDAAkDjkC,KAAK6wE,cACzE,GAA6B,SAAzBvvC,EAAGmtC,kBACL,MAAM,IAAIxqC,MAAM,6EAClB,IAAIxC,EAAI,GAAIE,EAAIirC,KAAKqG,MAAMjzE,KAAK+yE,GAAGG,QAAQlzE,KAAKg+D,KAAKuU,WACrD,GAAS,MAAL5wC,EACF,MAAM,IAAIsC,MAAM,4CAA4CjkC,KAAK6wE,0BACnEpvC,EAAEgsC,cAAgB9rC,EAClB,IAAIC,EAAIgrC,KAAKqG,MAAMjzE,KAAK+yE,GAAGG,QAAQlzE,KAAKg+D,KAAKoQ,cAC7C,GAAS,MAALxsC,EACF,MAAM,IAAIqC,MAAM,gDAAgDjkC,KAAK6wE,2BACvEpvC,EAAE2sC,YAAcxsC,EAChB,IAAIwC,EAAIpkC,KAAK+yE,GAAGG,QAAQlzE,KAAKg+D,KAAKwU,eAClC,GAAS,MAALpuC,EAAW,CACb,IAAIE,EAAIsoC,KAAKqG,MAAM7uC,GACnB3C,EAAEisC,OAASppC,EAAEopC,OAAQjsC,EAAEksC,YAAcrpC,EAAEqpC,YAAalsC,EAAEmsC,YAActpC,EAAEspC,YAA4B,MAAftpC,EAAEwpC,YAAsBrsC,EAAEqsC,UAAYxpC,EAAEwpC,WAAqC,MAAzBxpC,EAAEypC,sBAAgCtsC,EAAEssC,oBAAsBzpC,EAAEypC,qBAA4C,MAAtBzpC,EAAE0pC,mBAA6BvsC,EAAEusC,iBAAmB1pC,EAAE0pC,kBAA6C,MAA1B1pC,EAAE2pC,uBAAiCxsC,EAAEwsC,qBAAuB3pC,EAAE2pC,sBAA2C,MAApB3pC,EAAE4pC,iBAA2BzsC,EAAEysC,eAAiB5pC,EAAE4pC,gBAE3a,IAAI7pC,EAAIrkC,KAAK+yE,GAAGG,QAAQlzE,KAAKg+D,KAAKqQ,YAClC,GAAS,MAALhqC,EACF,MAAM,IAAIJ,MAAM,wDAAwDjkC,KAAK6wE,2BAC/E,OAAOpvC,EAAE4sC,WAAajB,GAAG/oC,GAAI5C,IAGjCqxC,GAAGtB,WAAa,kBAChB,IAAI2B,GAAM9xC,GAAM1b,KAAIuxC,QAAQ,gBAAkBzC,MAAMC,QAAQrzB,IAAMA,EAAEkX,WAAWu6B,GAAGtB,YAAc7O,GAAGthC,EAAErJ,MAAM86C,GAAGtB,WAAWtxE,SAAW,KAGpI,SAASyiE,GAAGthC,GACV,OAAO,IAAIyxC,GAAGzxC,GAHhB6tC,GAAGM,mBAAmB2D,IACtBjE,GAAGQ,mBAAmByD,IAItB,IAAIC,GAAK,MACP,cACEx0E,GAAE+mB,KAAIuxC,QAAQ,cAAe,IAAM,4CAA6Ct4D,GAAmB,oBAAVoyC,QAAuD,oBAAvBA,OAAO0hC,aAA6B,IAAM,2DAA4D1yE,KAAK+yE,GAAK/hC,OAAO0hC,aAElP,mBACE,IAAIpxC,EAAK,GAAIG,EAAIswC,GAAKD,GAAInwC,EAAImwC,GAAKE,GACnC,IAAK,IAAIpwC,EAAI,EAAGA,EAAI5hC,KAAK+yE,GAAG7yE,SAAU0hC,EAAG,CACvC,IAAIwC,EAAIpkC,KAAK+yE,GAAG/xE,IAAI4gC,GACpB,GAAIwC,EAAEmU,WAAW9W,IAAM2C,EAAE4mC,SAASrpC,GAAI,CACpC,IAAI0C,EAAIuuC,GAAGxuC,GACX9C,EAAG+C,GAAKuoC,KAAKqG,MAAMjzE,KAAK+yE,GAAGG,QAAQ9uC,KAGvC,OAAO9C,EAET,kBAAkBA,GAChBA,EAAKuxC,GAAGvxC,GACR,IAAIG,EAAI4wC,GAAG/wC,GACX,GAA+B,MAA3BthC,KAAK+yE,GAAGG,QAAQzxC,EAAE6wC,MACpB,MAAM,IAAIruC,MAAM,8BAA8B3C,MAChD,IAAIK,EAAIirC,KAAKqG,MAAMjzE,KAAK+yE,GAAGG,QAAQzxC,EAAE6wC,OACrC,OAAOG,GAAGhxC,GAAIE,IAGd0xC,GAAK,MACLC,GAAK,MACP,cACEtzE,KAAKuzE,SAAW,GAElB,qBACE,OAAsB,MAAfD,GAAGx5B,WAAqBw5B,GAAGx5B,SAAW,IAAIw5B,IAAOA,GAAGx5B,SAE7D,uBAAuBxY,EAAIG,GACzB7iC,GAAQ,MAAN0iC,EAAY,IAAM,yCAA0CA,EAAG0pC,SAASqI,MAAQ/xC,EAAKA,EAAGtJ,MAAM,EAAGsJ,EAAG5gC,QAAQ2yE,MAAOz0E,GAAE0iC,EAAGphC,OAAS,EAAG,IAAM,uCAC5I,IAAIyhC,EAAI2xC,GAAGjE,cACXzwE,GAAoB,MAAlB+iC,EAAE4xC,SAASjyC,GAAa,IAAM,2DAA2DA,OAASK,EAAE4xC,SAASjyC,GAAMG,EAEvH,kBAAkBH,GAChB,IAAIG,EAAI6xC,GAAGjE,cAAckE,SAASjyC,GAClC,GAAS,MAALG,EACF,MAAM,IAAIwC,MAAM,yCAAyC3C,MAC3D,OAAOG,EAET,oBACE,OAAO7gC,OAAOo9D,KAAKsV,GAAGjE,cAAckE,YAGxC,SAASC,GAAGnyC,GACV,IAAuB,IAAnBA,EAAE3gC,QAAQ2yE,IACZ,MAAM,IAAIpvC,MAAM,6EAA6EqvC,GAAGG,aAAa/b,KAAK,MACpH,MAAO,CAAEgc,OAAQryC,EAAE7H,MAAM65C,IAAI,GAAIM,KAAMtyC,EAAE7H,MAAM65C,IAAI,IAErDlH,eAAeyH,GAAGvyC,EAAGC,EAAIG,GAAI,GAC3B7iC,GAAEyiC,IAAMC,EAAI,IAAM,wCAAwCD,MAC1D,IAAIM,EAAIutC,GAAGY,gBAAgBzuC,GAC3BziC,GAAE+iC,EAAEzhC,OAAS,EAAG,IAAM,kEAAkEmhC,MAAOziC,GAAE+iC,EAAEzhC,OAAS,EAAG,IAAM,yCAAyCyhC,EAAEzhC,wCAAwCmhC,MACxM,IAAIO,EAAID,EAAE,GAAIyC,EAAI8qC,GAAGU,gBAAgBtuC,GACrC1iC,GAAEwlC,EAAElkC,OAAS,EAAG,IAAM,uEAAuEohC,MAAQ1iC,GAAEwlC,EAAElkC,OAAS,EAAG,IAAM,yCAAyCyhC,EAAEzhC,6CAA6CohC,MACnN,IAAI+C,EAAID,EAAE,GAAIE,EAAIkvC,GAAGnyC,GAAGqyC,OAAQnvC,EAAIivC,GAAGnyC,GAAGsyC,KAAMlvC,EAAIH,IAAMkvC,GAAGnyC,GAAGqyC,OAAQxtC,QAAUtE,EAAEsS,OACpFzS,GAAKgD,SAAW6uC,GAAGO,WAAWvvC,GAAGwvC,YAAYvvC,GAC7C,IAAIuD,QAAUzD,EAAE0vC,KAAK7tC,GACrB,OAAOzE,IAAMgD,SAAW6uC,GAAGO,WAAWvvC,GAAGwvC,YAAYvvC,GAAIuD,EAAEypC,mBAE7DpF,eAAe6H,KACb,IAAI3yC,EAAIiyC,GAAGG,aAAcnyC,EAAK,GAC9B,IAAK,IAAIG,KAAKJ,EAAG,CACf,IAAIM,QAAU2xC,GAAGO,WAAWpyC,GAAGwyC,aAC/B,IAAK,IAAIryC,KAAKD,EAAG,CACf,IAAIyC,EAAI3C,EAAI4xC,GAAKzxC,EACjBN,EAAG8C,GAAKzC,EAAEC,IAGd,OAAON,EAET6qC,eAAe+H,GAAG7yC,GAChB,IAAIC,EAAKkyC,GAAGnyC,GACZ,OAAOiyC,GAAGO,WAAWvyC,EAAGoyC,QAAQI,YAAYxyC,EAAGqyC,MAEjDxH,eAAegI,GAAG9yC,EAAGC,GACnB,OAAOsyC,GAAGvyC,EAAGC,GAAI,GAEnB6qC,eAAeiI,GAAG/yC,EAAGC,GACnB,OAAOsyC,GAAGvyC,EAAGC,GAAI,GAEnB,IAAI+yC,GAAK,MACP,cACEr0E,KAAKs0E,YAAc,mBAAoBt0E,KAAKu0E,aAAe,GAAIv0E,KAAKw0E,oBAAsB,EAAGx0E,KAAKy0E,kBAAmB,EAEvH,MAAMnzC,EAAIG,GACR,OAAOiX,MAAMpX,EAAIG,GAEnB,MACE,OAAOgS,YAAYkM,MAErB,OAAOre,EAAIG,GACT,GAAU,UAANA,GAAuB,SAANA,EACnB,MAAM,IAAIwC,MAAM,kDAAkDxC,GACpE,OAA2B,MAApBzhC,KAAK00E,cAAwB10E,KAAK00E,YAAc,IAAIC,aAAgB30E,KAAK00E,YAAY3W,OAAOz8B,GAErG,OAAOA,EAAIG,GACT,OAAO,IAAIoT,YAAYpT,GAAGsT,OAAOzT,GAEnC,iBAAiBA,EAAIG,GACE,oBAAVuP,QAA0BrrB,KAAIuxC,QAAQ,yBAIjDl3D,KAAKu0E,aAAa1oC,KAAKvK,GAAK8d,WAAW,KACrCpO,OAAO6J,YAAY,CAAEt5C,KAAMvB,KAAKs0E,YAAaM,MAAO50E,KAAKu0E,aAAar0E,OAAS,GAAK,MACnFuhC,GAAIzhC,KAAKy0E,mBAAqBz0E,KAAKy0E,kBAAmB,EAAMzjC,OAAO6jC,iBAAiB,UAAYlzC,IACjG,GAAIA,EAAEmzC,SAAW9jC,QAAUrP,EAAEib,KAAKr7C,OAASvB,KAAKs0E,YAAa,CAC3D3yC,EAAEozC,kBACF,IAAInzC,EAAI5hC,KAAKu0E,aAAa5yC,EAAEib,KAAKg4B,OACjChzC,IAAK5hC,KAAKw0E,sBAAuBx0E,KAAKw0E,sBAAwBx0E,KAAKu0E,aAAar0E,SAAWF,KAAKu0E,aAAe,GAAIv0E,KAAKw0E,oBAAsB,MAE/I,KAXDp1B,WAAW9d,EAAIG,GAanB,aAAaH,GACX,OAAOu3B,GAAGv3B,KAGd,GAAI3b,KAAInkB,IAAI,cAAe,CACzBmkB,KAAI6Q,YAAY,UAAW,IAAI69C,IAC/B,IACEf,GAAG0B,gBAAgBlC,GAAGtB,WAAY,IAAI4B,IACtC,MAAO/xC,MAET,IACEiyC,GAAG0B,gBAAgBpE,GAAGY,WAAY,IAAII,IACtC,MAAOvwC,OAGX,IACI4zC,GADAC,GAAK,CAAEC,YAAa,IAAMprC,KAE1BqrC,GAAK,MACP,cACEp1E,KAAKo+B,KAAO4L,IAAMhqC,KAAK00E,YAAc,IAAI10E,KAAKo+B,KAAKu2C,YAErD,MAAMrzC,EAAIG,GACR,OAA2B,MAApB9b,KAAIgoB,OAAO+K,MAAgB/yB,KAAIgoB,OAAO+K,MAAMpX,EAAIG,IAAY,MAANwzC,KAAeA,GAAKC,GAAGC,eAAgBF,GAAG3zC,EAAIG,IAE7G,MACE,IAAIH,EAAKqP,EAAQ6P,SACjB,OAAe,IAARlf,EAAG,GAAWA,EAAG,GAAK,IAE/B,OAAOA,EAAIG,GACT,GAAU,UAANA,GAAuB,SAANA,EACnB,MAAM,IAAIwC,MAAM,sDAAsDxC,GACxE,OAAOzhC,KAAK00E,YAAY3W,OAAOz8B,GAEjC,OAAOA,EAAIG,GACT,OAAqB,IAAdH,EAAGphC,OAAe,GAAK,IAAIF,KAAKo+B,KAAKyW,YAAYpT,GAAGsT,OAAOzT,GAEpE,aAAaA,GACX,OAAOthC,KAAKo+B,KAAKi3C,MAAMC,eAAeh0C,IAAOthC,KAAKo+B,KAAKi3C,MAAME,aAAaj0C,IAAOthC,KAAKo+B,KAAKi3C,MAAMG,aAAal0C,IAAOthC,KAAKo+B,KAAKi3C,MAAMI,oBAAoBn0C,KAI7J,SAASrhB,GAAGohB,EAAGC,EAAK,UAAWG,GAC7B,OAAOH,EAAKA,GAAM,UAAW+0B,GAAGh1B,GAAI,IAAI7mB,GAAG6mB,EAAGC,EAAIG,GAEpD,SAASi0C,GAAGr0C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,QAClB,IAAK4zB,GAAG3zB,GACN,MAAM,IAAI2C,MAAM,mCAAmC3C,GACrD,GAAW,WAAPA,GAA+B,WAAZG,EAAEi9B,OAA6B,WAAPp9B,GAA+B,WAAZG,EAAEi9B,MAClE,MAAM,IAAIz6B,MAAM,yCAClB,IAAItC,EAAI,CAAEuJ,EAAGzJ,GAAKG,EAAI,CAAE88B,MAAOp9B,GAC/B,OAAOqlC,GAAEC,UAAUxgE,GAAIu7B,EAAGC,GAX5Bjc,KAAInkB,IAAI,aAAemkB,KAAInkB,IAAI,eAAiBmkB,KAAI6Q,YAAY,OAAQ,IAAI4+C,IAa5E,IAAIj1D,GAAKkQ,GAAE,CAAEslD,MAAOD,KACpB,SAASE,GAAGv0C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,QAAS,sBAChC,OAAOslC,GAAEC,UAAU55D,GAAIy0B,GAEzB,IAAIhhB,GAAK4P,GAAE,CAAEwlD,OAAQD,KACrB,SAASnkD,GAAG4P,EAAGC,GAAK,GAClBkR,QAAQ9mB,IAAI2V,EAAEyE,SAASxE,IAEzBgoC,KACA,IAAIwM,GAAK,CAAE91D,OAAQC,GAAIC,KAAMC,GAAIK,MAAOC,GAAI+Q,MAAOC,IAEnD,SAAStM,KACPQ,KAAItjB,IAAI,QAAQ,GAElB,SAAS4iB,KACPU,KAAItjB,IAAI,SAAS,GAEnB,SAAS0hB,KACP4B,KAAItjB,IAAI,gCAAgC,GAAQmwC,QAAQmB,KAAK,0DAE/D,SAAS1wB,GAAGoe,GACV1b,KAAIuxC,QAAQ,iCAAmC1kB,QAAQmB,KAAKtS,EAAI,+EAGlE,SAASld,KACPwiD,GAAEziD,mBAEJ,SAASqB,KACP,OAAOohD,GAET,SAAS14C,KACP,OAAO04C,GAAE34C,SAEX,SAAS6D,GAAIwP,GACX,OAAOslC,GAAE/0C,QAAQyP,GAEnB,SAAS5E,GAAG4E,EAAGC,GACb,OAAOqlC,GAAEnqC,KAAK6E,EAAGC,GAEnB,SAASrd,GAAGod,GACVghC,GAAGhhC,GAAGsY,QAASlY,GAAMA,EAAEzd,WAEzB,SAASuG,GAAG8W,GACV,OAAOslC,GAAEr8C,KAAK+W,GAEhB,SAASxE,GAAIwE,GACX,OAAOslC,GAAE/pC,KAAKyE,GAEhB,SAAS9K,GAAI8K,GACX,OAAOslC,GAAErwC,WAAW+K,GAEtB,SAASlO,KACP,OAAOwzC,GAAEzzC,QAEX,SAASjL,KACP,OAAO0+C,GAAE/N,YAEX,SAASvkC,GAAIgN,GACXslC,GAAEvyC,cAAciN,GAElB,SAASta,GAAIsa,GACX,OAAOslC,GAAE7/C,YAAYua,GAEvB,SAASpa,GAAIoa,GACX,OAAOslC,GAAE3/C,mBAAmBqa,GAE9B,SAAS5N,GAAG4N,EAAGC,EAAIG,EAAI,GACrB,OAAOklC,GAAEnzC,gBAAgB6N,EAAGC,EAAIG,GAElC,SAAStjB,KACP,OAAOwoD,GAAEzoD,QAEX,SAASuY,GAAI4K,EAAGC,GACd3b,KAAI6Q,YAAY6K,EAAGC,GAErB,SAASy0C,GAAG10C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,QACxCG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUpjE,GAAIo+B,GArEzB4+B,GAAGsV,IAaHrV,GAAGx9C,IA0DH,IAAIxG,GAAK4T,GAAE,CAAE2lD,KAAMD,KACnB,SAASE,GAAG50C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,YAAaM,EAAI6J,GAAElK,EAAI,IAAK,aAC7CG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUp7D,GAAIo2B,GAEzB,IAAIva,GAAKgJ,GAAE,CAAE6lD,UAAWD,KACxB,SAASE,GAAG90C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,OACzC,IAAKG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAgB,UAAZF,EAAEi9B,OAAiC,UAAZ/8B,EAAE+8B,MAC9C,OAAOr3C,GAAGoa,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GAAKyC,EAAI,GAC5B,OAAOuiC,GAAEC,UAAUlyD,GAAIktB,EAAGwC,GAE5B,IAAI/f,GAAKgM,GAAE,CAAE+lD,KAAMD,KACnB,SAASE,GAAGh1C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,QACxCG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUl1D,GAAIkwB,GAEzB,IAAI3S,GAAKoB,GAAE,CAAEimD,KAAMD,KACnB,SAASE,GAAGl1C,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,IAAK,OACnB,GAAiB,cAAbC,EAAGo9B,MAAuB,CAC5B,IAAIj9B,EAAI,CAAEyJ,EAAG5J,GACb,OAAOqlC,GAAEC,UAAUhgE,GAAI66B,GAClB,CACL,IAAIA,EAAI,CAAEyJ,EAAG5J,GACb,OAAOqlC,GAAEC,UAAUlkE,GAAI++B,IAG3B,IAAIrlB,GAAKiU,GAAE,CAAEmmD,KAAMD,KACnB,SAASE,GAAGp1C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAUhkE,GAAI6+B,GAEzB,IAAInlB,GAAK+T,GAAE,CAAEqmD,MAAOD,KACpB,SAASE,GAAGt1C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAU9jE,GAAI2+B,GAEzB,IAAIjlB,GAAK6T,GAAE,CAAEumD,OAAQD,KACrB,SAASE,GAAGx1C,GACVziC,GAAE61D,MAAMC,QAAQrzB,GAAI,IAAM,8DAA+DziC,GAAEyiC,EAAEnhC,QAAU,EAAG,IAAM,uDAAuDmhC,EAAEnhC,QACzK,IAAIohC,EAAKD,EAAEkzB,IAAI,CAAC3yB,EAAGwC,IAAMoH,GAAE5J,EAAG,UAAUwC,EAAK,SAAU3C,EAAIH,EAAG,GAC9DA,EAAGqY,QAAS/X,IACV,GAAIA,EAAE88B,QAAUj9B,EAAEi9B,MAChB,MAAM,IAAIz6B,MAAM,8DAChB3C,EAAGqY,QAAS/X,IACd,IAAK8xB,GAAG9xB,EAAEu9B,MAAO19B,EAAE09B,OACjB,MAAM,IAAIl7B,MAAM,8DAEpB,IAAItC,EAAIL,EACR,OAAOqlC,GAAEC,UAAUljE,GAAIi+B,GAEzB,IAAIhlB,GAAK0T,GAAE,CAAEymD,MAAOD,KACpB,SAASE,GAAG11C,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,SAAW+C,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GACnE,OAAOklC,GAAEC,UAAUhjE,GAAIg+B,EAAGwC,GAE5B,IAAIvnB,GAAKwT,GAAE,CAAE6mD,KAAMH,KACnB,SAASI,GAAG91C,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,SAAW+C,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GACnE,OAAOklC,GAAEC,UAAU9iE,GAAI89B,EAAGwC,GAE5B,IAAIrnB,GAAKsT,GAAE,CAAE+mD,KAAMD,KACnB,SAASE,GAAGh2C,EAAGC,EAAK,GAClB,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,WAAaO,EAAI,CAAEo1C,KAAM11C,GAChD,OAAOqlC,GAAEC,UAAU5iE,GAAI29B,EAAGC,GAE5B,IAAI3kB,GAAKoT,GAAE,CAAEinD,QAASD,KACtB,SAASE,GAAGl2C,EAAGC,EAAK,GAClB,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,WAAaO,EAAI,CAAEo1C,KAAM11C,GAChD,OAAOqlC,GAAEC,UAAU1iE,GAAIy9B,EAAGC,GAE5B,IAAIzkB,GAAKkT,GAAE,CAAEmnD,QAASD,KACtB,SAASE,GAAGp2C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAUxiE,GAAIq9B,GAEzB,IAAIpkB,GAAKgT,GAAE,CAAEqnD,MAAOD,KACpB,SAASE,GAAGt2C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAUtiE,GAAIm9B,GAEzB,IAAIlkB,GAAK8S,GAAE,CAAEunD,OAAQD,KACrB,SAASE,GAAGx2C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAUpiE,GAAIi9B,GAEzB,IAAIhkB,GAAK4S,GAAE,CAAEynD,MAAOD,KACpB,SAASE,GAAG12C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,SAAUM,EAAI6J,GAAElK,EAAI,IAAK,UAC1CG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUliE,GAAIk9B,GAEzB,IAAIjkB,GAAK0S,GAAE,CAAE2nD,OAAQD,KACrB,SAASE,GAAG52C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAUhiE,GAAI68B,GAEzB,IAAI5jB,GAAKwS,GAAE,CAAE6nD,OAAQD,KACrB,SAASE,GAAG92C,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,OAAQwC,GACnC,IAAIC,EAAIhD,EAAE,GAAIiD,EAAI,IAAIhD,EAAI+C,GAAIE,EAAI6zC,GAAGx2C,GACrC,OAAOy2C,GAAGh3C,EAAGiD,EAAG7C,EAAG2C,EAAGzC,EAAG,KAAM,KAAM4C,GAEvC,SAAS+zC,GAAGj3C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAI,gBACjC,IAAqBI,GAAhBH,EAAGC,GAAKg0C,GAAGj3C,GAChB,GAAU,iBAAN+C,EACFI,EAAI,CAACH,EAAGC,EAAGlD,EAAE,GAAIA,EAAE,QAChB,IAAU,kBAANgD,EAGP,MAAM,IAAIJ,MAAM,sBAAsBI,GAFtCI,EAAI,CAACH,EAAGC,EAAGlD,EAAE,GAAIA,EAAE,IAGrB,OAAOg3C,GAAGh3C,EAAGoD,EAAGhD,EAAGE,EAAGC,EAAGwC,GAAG,EAAOC,GAErC,SAASm0C,GAAGn3C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAI,SACjC,IAAwB6B,EAAG4B,GAAtBxD,EAAGC,EAAGE,GAAKg0C,GAAGn3C,GACnB,GAAU,UAAN+C,EACFyD,EAAI,eAAgB5B,EAAI,CAAC5B,EAAGC,EAAGE,EAAGpD,EAAE,GAAIA,EAAE,QACvC,IAAU,UAANgD,EAGP,MAAM,IAAIJ,MAAM,sBAAsBI,GAFtCyD,EAAI,gBAAiB5B,EAAI,CAAC5B,EAAGC,EAAGE,EAAGpD,EAAE,GAAIA,EAAE,IAG7C,OAAOq3C,GAAGr3C,EAAG6E,EAAGzE,EAAGE,EAAGC,GAAG,EAAOkG,EAAG1D,GAErC,SAASi0C,GAAGh3C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAAI,EAAOC,EAAI,gBAC5C,IAAKC,EAAGE,EAAGyB,EAAG4B,GAAK,EAAE,GAAI,GAAI,GAAI,GACjC,GAAU,iBAANxD,GACDC,EAAGE,EAAGyB,EAAG4B,GAAKzG,MACZ,IAAU,kBAANiD,EAGP,MAAM,IAAIL,MAAM,sBAAsBK,IAFrCC,EAAGuD,EAAGrD,EAAGyB,GAAK7E,EAGjB,IAAgLiM,GAA3KvF,EAAGC,EAAG,CAAEI,GAAK9G,GAAK4K,EAAGC,GAAKosC,GAAG92C,IAAKyJ,EAAGuB,GAAK8rC,GAAG52C,GAAIoL,EAAI4rC,GAAG5wC,EAAGmD,GAAI8B,EAAI2rC,GAAG3wC,EAAGyE,IAAMmsC,QAAS3rC,EAAG4rC,UAAW3rC,EAAG4rC,SAAU1rC,GAAM2rC,GAAGn3C,EAAG6C,EAAGyB,EAAGgG,EAAGC,EAAGY,EAAGC,EAAG5I,EAAGE,GAAI+I,EAAIhJ,EAAI+D,EAAIN,EAAIM,EAC7K,MAAa,kBAAN9D,EAAwBgJ,EAAI,CAAC/I,EAAG8I,EAAGH,EAAGE,GAAW,iBAAN9I,IAAyBgJ,EAAI,CAAC/I,EAAG2I,EAAGE,EAAGC,IAAK,CAAE2rC,UAAWz0C,EAAG00C,WAAY30C,EAAG40C,SAAUz0C,EAAG00C,QAASjzC,EAAGkzC,WAAYtxC,EAAG+wC,UAAW3rC,EAAG4rC,SAAU1rC,EAAGisC,YAAahsC,EAAGurC,QAAS3rC,EAAGqsC,aAAcptC,EAAGqtC,YAAaptC,EAAGqtC,aAAczxC,EAAG0xC,YAAazxC,EAAG0xC,sBAAuB3sC,EAAG4sC,qBAAsB3sC,EAAG4sC,eAAgB1uC,EAAG2uC,cAAeptC,EAAGqtC,QAASz4C,EAAG04C,SAAUzsC,EAAG0sC,YAAa14C,GAE9Z,SAASo3C,GAAGr3C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,EAAOC,EAAI,eAAgBC,GACzD,IAAKC,EAAGE,EAAGyB,EAAG4B,EAAGC,GAAK,EAAE,GAAI,GAAI,GAAI,GAAI,GACxC,GAAU,iBAAN1D,GACDE,EAAGE,EAAGyB,EAAG4B,EAAGC,GAAK1G,MACf,IAAU,kBAANgD,EAGP,MAAM,IAAIJ,MAAM,sBAAsBI,IAFrCE,EAAGwD,EAAGtD,EAAGyB,EAAG4B,GAAKzG,EAGpB,IAA0N8J,GAArNnD,EAAGI,EAAG8D,EAAG,CAAEC,GAAK7K,GAAK4J,EAAGuB,EAAGM,GAAK0rC,GAAGh3C,IAAKuL,EAAGC,EAAGC,GAAKurC,GAAG92C,GAAIyL,EAAIurC,GAAG3wC,EAAGgF,GAAIK,EAAIsrC,GAAGvwC,EAAG6E,GAAIK,EAAIqrC,GAAGzsC,EAAGgB,IAAM0rC,QAASrrC,EAAG0sC,SAAUh7E,EAAG45E,UAAWrrC,EAAGsrC,SAAUprC,GAAMwsC,GAAGt4C,EAAG6C,EAAGyB,EAAG4B,EAAGoD,EAAGuB,EAAGM,EAAGK,EAAGC,EAAGC,EAAGhJ,GAAIuJ,EAAIzJ,EAAI+H,EAAIpE,EAAIoE,EACvN,MAAa,kBAAN9H,EAAwB8G,EAAI,CAAC5G,EAAGsJ,EAAG5uC,EAAGuuC,EAAGE,GAAW,iBAANrJ,IAAyB8G,EAAI,CAAC5G,EAAGtlC,EAAGuuC,EAAGE,EAAGG,IAAK,CAAEmrC,UAAWz0C,EAAG00C,WAAY50C,EAAG81C,QAAS11C,EAAGy0C,SAAUhzC,EAAGizC,QAASrxC,EAAGsxC,WAAYrxC,EAAGkyC,SAAUh7E,EAAG45E,UAAWrrC,EAAGsrC,SAAUprC,EAAG2rC,YAAaxrC,EAAG+qC,QAASrrC,EAAG6sC,YAAalvC,EAAGouC,aAAc7sC,EAAG8sC,YAAaxsC,EAAGstC,YAAaryC,EAAGwxC,aAAcpxC,EAAGqxC,YAAavtC,EAAGouC,qBAAsBltC,EAAGssC,sBAAuBrsC,EAAGssC,qBAAsBrsC,EAAGitC,cAAevtC,EAAG4sC,eAAgB3sC,EAAG4sC,cAAe3sC,EAAG4sC,QAASz4C,EAAG04C,SAAU5uC,EAAG6uC,YAAa14C,GAExgB,SAASk5C,GAAGn5C,EAAGC,EAAIG,EAAGE,EAAGC,GAClB,MAALD,IAAcA,EAAI84C,GAAGp5C,EAAGC,EAAIG,IAC5B,IAAI2C,EAAI/C,EAAE,GAAIgD,EAAIhD,EAAE,GAAIiD,EAAIo2C,IAAIt2C,EAAI9C,EAAK,EAAIK,GAAKF,EAAI,EAAGG,GAAI2C,EAAIm2C,IAAIr2C,EAAI/C,EAAK,EAAIK,GAAKF,EAAI,EAAGG,GAC9F,MAAO,CAAC0C,EAAGC,GAEb,SAASo2C,GAAGt5C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GACrB,MAALxC,IAAcA,EAAI64C,GAAGp5C,EAAGC,EAAG,GAAIK,EAAE,KACjC,IAAI0C,EAAI,CAAC,EAAG,EAAG,EAAG5C,GAClB,IAAK,IAAI6C,EAAI,EAAGA,EAAI,EAAGA,IACrBjD,EAAEiD,GAAK,EAAI1C,GAAKN,EAAGgD,KAAOD,EAAEC,GAAKo2C,IAAIr5C,EAAEiD,GAAKhD,EAAGgD,GAAK,EAAI1C,GAAKD,EAAE2C,GAAK,EAAGF,IACzE,OAAOC,EAET,SAASo2C,GAAGp5C,EAAGC,EAAIG,EAAGE,EAAI,GACxB,IAAIC,EAAI+2C,GAAGr3C,EAAIK,GACf,OAAOoC,KAAK7c,OAAOma,EAAE,IAAMI,EAAI,GAAKA,EAAIG,GAAK,GAE/C,SAAS22C,GAAGl3C,GACV,MAAmB,iBAALA,EAAgB,CAACA,EAAGA,EAAGA,GAAkB,IAAbA,EAAEnhC,OAAe,CAACmhC,EAAE,GAAIA,EAAE,GAAI,GAAKA,EAE/E,SAASo3C,GAAGp3C,GACV,MAAmB,iBAALA,EAAgB,CAACA,EAAGA,EAAGA,GAAKA,EAE5C,SAASs3C,GAAGt3C,EAAGC,GACb,OAAOA,GAAM,EAAID,EAAIA,GAAKA,EAAI,IAAMC,EAAK,GAE3C,SAASy3C,GAAG13C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,GACnC,IAAIE,EAAGyB,EAAG4B,EACV,GAAgB,iBAALzG,EAAe,CACxBoD,EAAI,CAAEm2C,IAAKv5C,EAAGw5C,OAAQx5C,EAAGliC,KAAMkiC,EAAGy5C,MAAOz5C,EAAG05C,KAAY,IAAN15C,EAAU,QAAU,UACtE,IAAI2G,EAAIwyC,GAAG,CAACl5C,EAAIG,GAAI2C,EAAGzC,EAAGN,EAAGiD,GAC7B4B,EAAI8B,EAAE,GAAIF,EAAIE,EAAE,QACX,GAAU,SAAN3G,EAAc,CACvB6E,EAAInC,KAAK3jB,KAAKkhB,EAAKK,GAAImG,EAAI/D,KAAK3jB,KAAKqhB,EAAIG,GACzC,IAAImG,EAAIhE,KAAK3W,IAAI,GAAI8Y,EAAI,GAAKvE,EAAIyC,EAAI9C,GAAK0G,EAAIjE,KAAK3W,IAAI,GAAI0a,EAAI,GAAKlG,EAAIyC,EAAI5C,GAAI2G,EAAIrE,KAAK7c,MAAM6gB,EAAI,GAAImE,EAAInE,EAAIK,EAAG+D,EAAIpI,KAAK7c,MAAM8gB,EAAI,GAAIkD,EAAIlD,EAAImE,EAClJ1H,EAAI,CAAEm2C,IAAKxyC,EAAGyyC,OAAQ3uC,EAAG/sC,KAAMgtC,EAAG2uC,MAAO5vC,EAAG6vC,KAAM,aAC7C,GAAU,UAAN15C,EACToD,EAAI,CAAEm2C,IAAK,EAAGC,OAAQ,EAAG17E,KAAM,EAAG27E,MAAO,EAAGC,KAAM,SAAW70C,EAAInC,KAAK3jB,MAAMkhB,EAAK8C,EAAI,GAAKzC,GAAImG,EAAI/D,KAAK3jB,MAAMqhB,EAAI4C,EAAI,GAAKzC,OACvH,IAAgB,iBAALP,EAId,MAAM4C,MAAM,8BAA8B5C,GAJb,CAC7B,IAAI0G,EAAU,iBAANxD,EAAuBlD,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAI2G,EAAU,iBAANzD,EAAuBlD,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAI+G,EAAU,iBAAN7D,EAAuBlD,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAI6K,EAAU,iBAAN3H,EAAuBlD,EAAE,GAAG,GAAKA,EAAE,GAAG,GACxLoD,EAAI,CAAEm2C,IAAK7yC,EAAG8yC,OAAQ7yC,EAAG7oC,KAAMipC,EAAG0yC,MAAO5uC,EAAG6uC,KAAY,IAANhzC,GAAiB,IAANC,GAAiB,IAANI,GAAiB,IAAN8D,EAAU,QAAU,YAAchG,EAAIw0C,IAAIp5C,EAAK8C,EAAI2D,EAAIC,GAAKrG,EAAI,EAAG2C,GAAIwD,EAAI4yC,IAAIj5C,EAAI4C,EAAI+D,EAAI8D,GAAKtK,EAAI,EAAG0C,IAG5L,MAAO,CAAEs0C,QAASn0C,EAAGo0C,UAAW3yC,EAAG4yC,SAAUhxC,GAE/C,SAASoyC,GAAG74C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACzC,IAAI4B,EAAGC,EAAGC,EAAGI,EACb,GAAU,UAAN/G,IAAkBA,EAAI,GAAgB,iBAALA,EAAe,CAClDyG,EAAI,CAAE8yC,IAAKv5C,EAAGw5C,OAAQx5C,EAAGliC,KAAMkiC,EAAGy5C,MAAOz5C,EAAG25C,MAAO35C,EAAG45C,KAAM55C,EAAG05C,KAAY,IAAN15C,EAAU,QAAU,UACzF,IAAI8K,EAAIwuC,GAAG,CAACr5C,EAAIG,EAAGE,EAAG,GAAI,CAAC2C,EAAGC,EAAGE,GAAI,EAAG,CAAC7C,EAAGwC,EAAGC,GAAIhD,EAAG6E,GACtD6B,EAAIoE,EAAE,GAAInE,EAAImE,EAAE,GAAI/D,EAAI+D,EAAE,OACrB,IAAU,SAAN9K,EAKT,MAAM4C,MAAM,8BAA8B5C,GALnB,CACvB0G,EAAIhE,KAAK3jB,KAAKkhB,EAAKM,GAAIoG,EAAIjE,KAAK3jB,KAAKqhB,EAAI2C,GAAIgE,EAAIrE,KAAK3jB,KAAKuhB,EAAI0C,GAC/D,IAAI6H,GAAKnE,EAAI,GAAKnG,EAAI0C,EAAIhD,EAAI6K,GAAKnE,EAAI,GAAK5D,EAAIG,EAAI9C,EAAGyJ,GAAK9C,EAAI,GAAK/D,EAAII,EAAI9C,EAAG8K,EAAI1I,KAAK7c,MAAMglB,EAAI,GAAIa,EAAIb,EAAIO,EAAGO,EAAIjJ,KAAK7c,MAAMilB,EAAI,GAAIc,EAAId,EAAIa,EAAGE,EAAInJ,KAAK7c,MAAMgkB,EAAI,GAAIkC,EAAIlC,EAAIgC,EACnLpF,EAAI,CAAE8yC,IAAK5tC,EAAG6tC,OAAQ5tC,EAAG9tC,KAAM+tC,EAAG4tC,MAAO1tC,EAAG4tC,MAAOvuC,EAAGwuC,KAAMluC,EAAGguC,KAAM,SAGvE,MAAO,CAAEnC,QAAS9wC,EAAGmyC,SAAUlyC,EAAG8wC,UAAW7wC,EAAG8wC,SAAU1wC,GAE5D,SAASsyC,GAAGr5C,EAAGC,GACb,IAAKA,EACH,OAAOyC,KAAKm3C,MAAM75C,GACpB,OAAQC,GACN,IAAK,QACH,OAAOyC,KAAK3O,MAAMiM,GACpB,IAAK,OACH,OAAO0C,KAAK3jB,KAAKihB,GACnB,IAAK,QACH,OAAO0C,KAAK7c,MAAMma,GACpB,QACE,MAAM,IAAI4C,MAAM,wBAAwB3C,IAG9C,SAAS65C,GAAG95C,GACV,IAAKC,EAAIG,EAAGE,GAAK42C,GAAGl3C,GACpB,OAAc,IAAPC,GAAkB,IAANG,GAAiB,IAANE,EAEhC,SAASy5C,GAAG/5C,EAAGC,GACb,OAAO65C,GAAG95C,IAAM85C,GAAG75C,GAErB,SAAS+5C,GAAGh6C,GACV,OAAOk3C,GAAGl3C,GAAG4gB,MAAO3gB,GAAOA,EAAK,GAElC,SAAS82C,GAAG/2C,GACV,GAAU,SAANA,EACF,MAAO,eACT,GAAU,SAANA,EACF,MAAO,gBACT,MAAM,IAAI4C,MAAM,sBAAsB5C,GAExC,SAASi6C,GAAGj6C,EAAGC,EAAIG,GACjB,GAAS,MAALA,EAAW,CACb,GAAiB,iBAANH,EACT,MAAM2C,MAAM,YAAY5C,wDAAwDI,iBAAiBH,MACnG,GAAiB,iBAANA,EACT1iC,GAAEk1D,GAAGxyB,GAAK,IAAM,YAAYD,wDAAwDI,iBAAiBH,UAClG,IAAiB,iBAANA,EAOd,MAAM2C,MAAM,YAAY5C,iCAAiCC,KANzDA,EAAGqY,QAAShY,IACVA,EAAEgY,QAAS/X,IACThjC,GAAEk1D,GAAGlyB,GAAI,IAAM,YAAYP,wDAAwDI,iBAAiBG,YAO9G,SAAS25C,GAAGl6C,EAAGC,GACb,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,UAAW,sBAAwBO,EAAI,CAAEu9B,MAAO79B,GACvE,OAAOqlC,GAAEC,UAAUxxD,GAAIusB,EAAGC,GAE5B,IAAIrN,GAAIlE,GAAE,CAAEmrD,SAAUD,KACtB,SAASE,GAAGp6C,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAIoH,GAAEnK,EAAG,IAAK,UAAW,WAAYgD,EAAI,EAC7CzlC,GAAEw8E,GAAG35C,EAAG4C,GAAI,IAAM,wEAAwE5C,oBAAoB4C,MAC9G,IAAIC,EAAIF,EAAGG,GAAI,EACJ,IAAXH,EAAE66B,OAAe16B,GAAI,EAAMD,EAAI/P,GAAE6P,EAAG,CAAC,EAAGA,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,MAAOvgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,mDAAmD36B,EAAE26B,SAAUqc,GAAG,UAAW35C,EAAGC,GACrL,IAAI6C,EAAI,CAAEyG,EAAG5G,GAAK4B,EAAI,CAAEw1C,WAAYp6C,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGg6C,gBAAiB/5C,GAAKkG,EAAI6+B,GAAEC,UAAU9hE,GAAI2/B,EAAGyB,GACzG,OAAO4B,EAAI3nB,GAAG2nB,EAAG1D,EAAEs6B,OAAQn6B,EAAIhQ,GAAEuT,EAAG,CAACA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,KAAOr3B,EAE9E,IAAI/pB,GAAKsS,GAAE,CAAEurD,SAAUH,KACvB,SAASI,GAAGx6C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,SAC9B,IAAIC,EAAImH,GAAEnK,EAAG,IAAK,YAAa,WAAYiD,EAAID,EAAGE,GAAI,EAC3C,IAAXF,EAAE46B,OAAe16B,GAAI,EAAMD,EAAI/P,GAAE8P,EAAG,CAAC,EAAGA,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,MAAOvgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,qDAAqD36B,EAAE26B,SAAUrgE,GAAQ,UAANwlC,EAAe,IAAM,gFAAgFA,GAAMxlC,GAAc,iBAAL6iC,GAAiBA,EAAI,GAAKgzB,MAAMC,QAAQjzB,IAAMA,EAAE,GAAK,GAAKA,EAAE,GAAK,GAAKA,EAAE,GAAK,EAAG,IAAM,oDAAoDA,MAAO65C,GAAG,YAAa35C,EAAGC,GAC5c,IAAI6C,EAAI,CAAEyG,EAAG5G,GAAK4B,EAAI,CAAEw1C,WAAYp6C,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGg6C,gBAAiB/5C,EAAGq3C,WAAY70C,GAAK0D,EAAI6+B,GAAEC,UAAU5hE,GAAIy/B,EAAGyB,GACxH,OAAO4B,EAAI3nB,GAAG2nB,EAAGxD,EAAEo6B,OAAQn6B,EAAIhQ,GAAEuT,EAAG,CAACA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,KAAOr3B,EAE1F,IAAI7pB,GAAKoS,GAAE,CAAEyrD,WAAYD,KACzB,SAASE,GAAG16C,EAAGC,EAAK,GAClB1iC,GAAEyiC,EAAEnhC,QAAU,EAAG,IAAM,sCACvB,IAAIuhC,EAAIqpC,GAAGzpC,EAAG,UAAW,SAAU,qBACnC,GAAmB,cAAfI,EAAE,GAAGi9B,OAAyBj9B,EAAEkY,QAASvV,IAC3C,GAAgB,cAAZA,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,4EACCG,EAAEs6B,aACN,IAAbj9B,EAAEvhC,OACJ,OAAOugB,GAAGghB,EAAE,IACd,IAAIE,EAAIF,EAAGG,EAAI,CAAEo1C,KAAM11C,GACvB,OAAOqlC,GAAEC,UAAU9/D,GAAI66B,EAAGC,GAE5B,IAAI/gB,GAAKwP,GAAE,CAAE2rD,QAASD,KACtB,SAASE,GAAG56C,EAAGC,EAAIG,GAAI,EAAOE,GAAI,GAChC,IAAIC,EAAI4J,GAAEnK,EAAG,IAAK,UAAW+C,EAAIoH,GAAElK,EAAI,IAAK,WAC3CM,EAAGwC,GAAKq+B,GAAG7gC,EAAGwC,GACf,IAAIC,EAAI,CAAEA,EAAGzC,EAAG6K,EAAGrI,GAAKE,EAAI,CAAE43C,WAAYz6C,EAAG06C,WAAYx6C,GACzD,OAAOglC,GAAEC,UAAUphE,GAAI6+B,EAAGC,GAE5B,IAAIrX,GAAKoD,GAAE,CAAE+rD,QAASH,KACtB,SAASI,GAAGh7C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UAAW,YAClC,OAAOslC,GAAEC,UAAU5vD,GAAIyqB,GAEzB,IAAIlK,GAAKlH,GAAE,CAAEisD,SAAUD,KACvB,SAASE,GAAGl7C,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,QAAS,qBAC3B,GAAe,IAAXM,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,kCAClB,IAAIrC,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAEo4C,MAAOl7C,EAAI49B,KAAMz9B,GACzC,OAAOklC,GAAEC,UAAUpvD,GAAIoqB,EAAGwC,GAE5B,IAAInM,GAAK5H,GAAE,CAAEosD,OAAQF,KACrB,SAASG,GAAGr7C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,OAAQ,YAC/B,OAAOslC,GAAEC,UAAUxsD,GAAIqnB,GAEzB,IAAItG,GAAK9K,GAAE,CAAEssD,MAAOD,KACpB,SAASE,GAAGv7C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAImH,GAAEnK,EAAG,aAAc,iBAAkBiD,EAAIkH,GAAElK,EAAI,aAAc,iBAAkBiD,EAAIiH,GAAE/J,EAAG,WAAY,iBAAkBgD,EAAI+G,GAAE7J,EAAG,OAAQ,iBAAkBuE,EAAIsF,GAAE5J,EAAG,IAAK,iBAAkBkG,EAAI0D,GAAEpH,EAAG,IAAK,iBAAkB2D,EAAIlnB,GAAG,CAAC4jB,EAAGqD,GAAI,GAAIE,EAAI/a,GAAG8a,EAAGzD,GAAI8D,EAAI3rB,GAAGurB,EAAGzD,GAAI2H,EAAI9D,EAAE+2B,MAAM,GAAIhzB,EAAI/D,EAAE+2B,MAAM,GAAK,EAAGj0B,EAAI,CAACgB,EAAGC,GAAIM,EAAIxU,GAAGmQ,EAAG,CAAC,EAAG,GAAI8C,GAAI6B,EAAI9U,GAAGmQ,EAAG,CAAC,EAAG+D,GAAIjB,GAAI8B,EAAI/U,GAAGmQ,EAAG,CAAC,EAAO,EAAJ+D,GAAQjB,GAAI+B,EAAIhV,GAAGmQ,EAAG,CAAC,EAAO,EAAJ+D,GAAQjB,GAAIgC,EAAIzwB,GAAGwS,GAAGsI,GAAGkV,GAAItR,GAAG4R,IAAK9d,GAAGiX,EAAG3O,GAAG9a,GAAG4nB,EAAG2I,MAAOI,EAAIne,GAAGkM,GAAG+R,GAAI3V,GAAG0V,IAChe,MAAO,CAACC,EAAGE,GAEb,IAAI7uB,GAAK8R,GAAE,CAAEwsD,eAAgBD,KAC7B,SAASE,GAAGz7C,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,kBAAmBO,EAAIN,EAAGxhC,OAAO,CAACwkC,EAAGC,IAAMD,EAAIC,GACjE3lC,GAAE+iC,EAAEs9B,MAAQ,EAAI39B,EAAGphC,OAAQ,IAAM,iBAAiByhC,EAAEs9B,+CAA+C39B,EAAGphC,UAAWtB,GAAE6iC,EAAEvhC,SAAWohC,EAAGphC,OAAQ,IAAM,mBAAmBuhC,EAAEvhC,oDAAoDohC,EAAGphC,UAAWtB,GAAE+iC,EAAEw9B,MAAM,GAAKv9B,IAAM,EAAG,IAAM,yBAAyBD,EAAEw9B,MAAM,wEAAwE79B,EAAGo2B,KAAK,cAAc91B,KACrY,IAAIwC,EAAI,CAAE8G,EAAGvJ,GAAK0C,EAAI,CAAE04C,WAAYz7C,EAAI07C,MAAOv7C,GAC/C,OAAOklC,GAAEC,UAAUlhE,GAAI0+B,EAAGC,GAE5B,IAAIplB,GAAKoR,GAAE,CAAE4sD,gBAAiBH,KAC9B,SAASI,GAAG77C,GACV,IAAIC,EACJ,OAAsCA,EAApB,IAAXD,EAAE49B,MAAyB,IAAX59B,EAAE49B,KAAkB1qC,GAAE8M,EAAG,CAAC,EAAG,EAAG,EAAGA,EAAE69B,OAAoB,IAAX79B,EAAE49B,KAAkB1qC,GAAE8M,EAAG,CAAC,EAAG,EAAGA,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,KAAkB,IAAX99B,EAAE49B,KAAkB1qC,GAAE8M,EAAG,CAAC,EAAGA,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,KAAY99B,EAAGC,EAE9M,SAAS67C,GAAG97C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GACrB,MAALA,IAAcA,EAAI,MAClB,IAAmGK,EAE/FyB,EAFA7B,EAAImH,GAAEnK,EAAG,IAAK,aAAciD,EAAIkH,GAAElK,EAAI,OAAQ,aAAciD,EAAIiH,GAAE/J,EAAG,WAAY,aAChF,MAALG,IAAc6C,EAAI+G,GAAE5J,EAAG,QAAS,cAE3B,MAALD,IAAcuE,EAAIsF,GAAE7J,EAAG,SAAU,cAAe/iC,GAAE0lC,EAAE26B,OAAS16B,EAAE06B,KAAM,IAAM,gFAAiFrgE,GAAO,MAALsnC,GAAa5B,EAAE26B,OAAS/4B,EAAE+4B,KAAM,IAAM,8EAA+ErgE,GAAO,MAAL6lC,GAAaH,EAAE26B,OAASx6B,EAAEw6B,KAAM,IAAM,6EAC3T,IAAIl3B,EAAI,CAAEmD,EAAGgyC,GAAG74C,GAAIqoC,MAAOjoC,EAAG24C,OAAQl3C,EAAGpY,KAAMwW,EAAG+4C,SAAU94C,GAAKyD,EAAI,CAAEs1C,gBAAiBl5C,GAAKgE,EAAIu+B,GAAEC,UAAUh7D,GAAIm8B,EAAGC,GACpH,OAAOzT,GAAE6T,EAAG/D,EAAE86B,OAEhB,IAAI1gD,GAAK4R,GAAE,CAAEktD,WAAYJ,KACzB,SAASK,GAAGn8C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAmGK,EAE/FyB,EAFA7B,EAAImH,GAAEnK,EAAG,IAAK,aAAciD,EAAIkH,GAAElK,EAAI,OAAQ,aAAciD,EAAIiH,GAAE/J,EAAG,WAAY,aAGrF,OAFK,MAALG,IAAc6C,EAAI+G,GAAE5J,EAAG,QAAS,cAEpB,MAALD,IAAcuE,EAAIsF,GAAE7J,EAAG,SAAU,cAAe/iC,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,uDAAuD56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,MAAyB,IAAX36B,EAAE26B,KAAY,IAAM,oEAAoE36B,EAAE26B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,MAAyB,IAAX16B,EAAE06B,KAAY,IAAM,wEAAwE16B,EAAE06B,SAAe,MAALx6B,GAAa7lC,GAAa,IAAX6lC,EAAEw6B,MAAyB,IAAXx6B,EAAEw6B,KAAY,IAAM,qEAAqEx6B,EAAEw6B,SAAe,MAAL/4B,GAAatnC,GAAa,IAAXsnC,EAAE+4B,MAAyB,IAAX/4B,EAAE+4B,KAAY,IAAM,sEAAsE/4B,EAAE+4B,SAAUxgD,GAAG4lB,EAAGC,EAAGC,EAAG2B,EAAGzB,EAAGL,GAE7pB,IAAIzlB,GAAK0R,GAAE,CAAEotD,aAAcD,KAC3B,SAASE,GAAGr8C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAmGK,EAE/FyB,EAFA7B,EAAImH,GAAEnK,EAAG,IAAK,aAAciD,EAAIkH,GAAElK,EAAI,OAAQ,aAAciD,EAAIiH,GAAE/J,EAAG,WAAY,aAGrF,OAFK,MAALG,IAAc6C,EAAI+G,GAAE5J,EAAG,QAAS,cAEpB,MAALD,IAAcuE,EAAIsF,GAAE7J,EAAG,SAAU,cAAe/iC,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,uDAAuD56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,MAAyB,IAAX36B,EAAE26B,KAAY,IAAM,oEAAoE36B,EAAE26B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,MAAyB,IAAX16B,EAAE06B,KAAY,IAAM,wEAAwE16B,EAAE06B,SAAe,MAALx6B,GAAa7lC,GAAa,IAAX6lC,EAAEw6B,MAAyB,IAAXx6B,EAAEw6B,KAAY,IAAM,qEAAqEx6B,EAAEw6B,SAAe,MAAL/4B,GAAatnC,GAAa,IAAXsnC,EAAE+4B,MAAyB,IAAX/4B,EAAE+4B,KAAY,IAAM,sEAAsE/4B,EAAE+4B,SAAUxgD,GAAG4lB,EAAGC,EAAGC,EAAG2B,EAAGzB,EAAGL,GAE7pB,IAAIvlB,GAAKwR,GAAE,CAAEstD,aAAcD,KAC3B,SAASE,GAAGv8C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAmGK,EAE/FyB,EAFA7B,EAAImH,GAAEnK,EAAG,IAAK,aAAciD,EAAIkH,GAAElK,EAAI,OAAQ,aAAciD,EAAIiH,GAAE/J,EAAG,WAAY,aAGrF,OAFK,MAALG,IAAc6C,EAAI+G,GAAE5J,EAAG,QAAS,cAEpB,MAALD,IAAcuE,EAAIsF,GAAE7J,EAAG,SAAU,cAAe/iC,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,uDAAuD56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,MAAyB,IAAX36B,EAAE26B,KAAY,IAAM,oEAAoE36B,EAAE26B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,MAAyB,IAAX16B,EAAE06B,KAAY,IAAM,wEAAwE16B,EAAE06B,SAAe,MAALx6B,GAAa7lC,GAAa,IAAX6lC,EAAEw6B,MAAyB,IAAXx6B,EAAEw6B,KAAY,IAAM,qEAAqEx6B,EAAEw6B,SAAe,MAAL/4B,GAAatnC,GAAa,IAAXsnC,EAAE+4B,MAAyB,IAAX/4B,EAAE+4B,KAAY,IAAM,sEAAsE/4B,EAAE+4B,SAAUxgD,GAAG4lB,EAAGC,EAAGC,EAAG2B,EAAGzB,EAAGL,GAE7pB,IAAIrlB,GAAKsR,GAAE,CAAEwtD,aAAcD,KAC3B,SAASE,GAAGz8C,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,YAAaO,EAAI4J,GAAElK,EAAI,UAAW,YACpD1iC,GAAc,UAAZ+iC,EAAE+8B,MAAmB,IAAM,yDAAyD/8B,EAAE+8B,OAAU9/D,GAAE6iC,GAAK,EAAG,IAAM,sCAAsCA,MAAO7iC,GAAEgjC,EAAEs9B,OAASv9B,EAAEu9B,MAAmB,IAAXt9B,EAAEs9B,KAAY,IAAM,gGAAgGv9B,EAAEw9B,yBAAyBv9B,EAAEu9B,UACvU,IAAI/6B,EAAI,CAAE8G,EAAGvJ,EAAGmtC,QAASltC,GAAKyC,EAAI,CAAE66B,KAAMz9B,GAC1C,OAAOklC,GAAEC,UAAUhhE,GAAIw+B,EAAGC,GAE5B,IAAIllB,GAAKkR,GAAE,CAAE0tD,UAAWD,KACxB,SAASE,GAAG38C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,cAAeM,EAAI6J,GAAElK,EAAI,IAAK,cAChD,IAAKoyB,GAAGjyB,EAAE09B,MAAOx9B,EAAEw9B,OACjB,MAAM,IAAIl7B,MAAM,oDAAoDxC,EAAE09B,aAAax9B,EAAEw9B,SACvF,GAAgB,UAAZ19B,EAAEi9B,OAAiC,UAAZ/8B,EAAE+8B,MAC3B,MAAM,IAAIz6B,MAAM,wEAAwExC,EAAEi9B,wBAAwB/8B,EAAE+8B,SACtH,IAAI98B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU9gE,GAAI87B,GAEzB,IAAIviB,GAAKgR,GAAE,CAAE4tD,YAAaD,KAC1B,SAASE,GAAG78C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,KAAM,gBAAiB,SAAUM,EAAI6J,GAAElK,EAAI,KAAM,gBAAiB,SAC/E,GAAe,IAAXG,EAAEw9B,KACJ,MAAM,IAAIh7B,MAAM,oEAAoExC,EAAEw9B,MACxF,GAAe,IAAXt9B,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,qEAAqEtC,EAAEs9B,MACzF,IAAIr9B,EAAI,CAAEyI,GAAI5I,EAAG6I,GAAI3I,GACrB,OAAOglC,GAAEC,UAAU5gE,GAAI47B,GAEzB,IAAIniB,GAAK4Q,GAAE,CAAE8tD,eAAgBD,KAC7B,SAASE,GAAG/8C,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,cAAe,KAAMM,EAAIF,EAAE09B,MACxC,GAAI9I,GAAG/0B,GAAKA,EAAGphC,OAASuhC,EAAEw9B,KACxB,MAAM,IAAIh7B,MAAM,+BAA+B3C,EAAGphC,uBAAuBuhC,EAAEw9B,SAC7E,GAAI39B,EAAGphC,OAASuhC,EAAEw9B,KAAM,CACtB,IAAIx6B,EAAIhD,EAAE09B,MAAMnnC,QAChB,KAAOyM,EAAEvkC,OAASohC,EAAGphC,QACnBukC,EAAEgT,QAAQ,GACZhW,EAAIlN,GAAEkN,EAAGgD,GAEX,IAAI7C,EAAIH,EAAE09B,MAAO/6B,EAAIqwB,MAAMwB,KAAK30B,GAChC,IAAK,IAAImD,EAAInD,EAAGphC,OAAS,EAAGukC,GAAK,EAAGA,IAClC,GAAI7C,EAAE6C,KAAOnD,EAAGmD,GACdL,EAAEK,GAAK,OACJ,GAAmB,IAAfhD,EAAE09B,MAAM16B,GACf,MAAM,IAAIR,MAAM,mBAAmBtC,8BAA8BL,OACrE,GAAqE,IAAjE8C,EAAEmwB,IAAI,CAAC9vB,EAAGyB,IAAMzB,EAAI,EAAIyB,GAAK,GAAGwpB,OAAQjrB,GAAMA,GAAK,GAAGvkC,OACxD,OAAOugB,GAAGghB,GACZ,IAAI6C,EAAI,CAAE4G,EAAGzJ,GAAK8C,EAAI,CAAE85C,KAAMj6C,GAC9B,OAAOuiC,GAAEC,UAAUhsD,GAAI0pB,EAAGC,GAE5B,IAAI5kB,GAAK0Q,GAAE,CAAEiuD,aAAcF,KAC3B,SAASG,GAAGl9C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,OAAQ,YAC/B,OAAOslC,GAAEC,UAAUtgE,GAAIm7B,GAEzB,IAAIphB,GAAKgQ,GAAE,CAAEmuD,MAAOD,KACpB,SAAS13D,GAAGwa,EAAGC,EAAIG,GACjB40B,GAAGh1B,GAAII,EAAIA,GAAK+zB,GAAGl0B,GACnB,IAAIK,EAAI,CAAEw9B,MAAO99B,EAAGpgC,MAAOqgC,EAAIo9B,MAAOj9B,GACtC,OAAOklC,GAAEC,UAAU17D,GAAI,GAAIy2B,GAE7B,SAAS88C,GAAGp9C,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,eAClB,GAAIziC,GAAE0iC,GAAMG,EAAG,IAAM,uBAAuBH,yCAA0CG,OAAQH,IAAOG,EACnG,OAAO5a,GAAG8a,EAAEw9B,MAAO79B,EAAIK,EAAE+8B,OAC3B,IAAI98B,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAEs6C,aAAcp9C,EAAIq9C,aAAcl9C,GACxD,OAAOklC,GAAEC,UAAUpgE,GAAIo7B,EAAGwC,GAE5B,IAAI7jB,GAAK8P,GAAE,CAAEuuD,aAAcH,KAC3B,SAASI,GAAGx9C,GACV,OAAOxgB,GAAGwgB,EAAG,GAEf,IAAItgB,GAAKsP,GAAE,CAAEyuD,UAAWD,KACxB,SAASE,GAAG19C,EAAGC,GACb,OAAOzgB,GAAGwgB,EAAGC,GAEf,IAAIrgB,GAAKoP,GAAE,CAAE2uD,UAAWD,KACxB,SAASE,GAAG59C,EAAGC,GACb,OAAOzgB,GAAGwgB,EAAGC,GAEf,IAAIngB,GAAKkP,GAAE,CAAE6uD,UAAWD,KACxB,SAASE,GAAG99C,EAAGC,GACb,OAAOzgB,GAAGwgB,EAAGC,GAEf,IAAIjgB,GAAKgP,GAAE,CAAE+uD,UAAWD,KACxB,SAASE,GAAGh+C,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,OAAQwC,EAAI,CAAC,EAAG,GAAIC,GAC/C,IAAIC,EAAIkH,GAAEnK,EAAG,IAAK,SAAU,WAAYkD,EAAIiH,GAAElK,EAAI,SAAU,SAAU,WAAYmD,EAAIH,EAAG4B,GAAI,EAClF,IAAX5B,EAAE26B,OAAe/4B,GAAI,EAAMzB,EAAIlQ,GAAE+P,EAAG,CAAC,EAAGA,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,MAAOvgE,GAAa,IAAX6lC,EAAEw6B,KAAY,IAAM,uDAAuDx6B,EAAEw6B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,wDAAwD16B,EAAE06B,SAAUqc,GAAG,SAAU35C,EAAG0C,GAClR,IAAIyD,EAAU,SAANlG,EAAe6C,EAAE06B,MAAM,GAAK16B,EAAE06B,MAAM,GAC5CvgE,GAAEkpC,IAAMvD,EAAE46B,MAAM,GAAI,IAAM,oCAAoCr3B,wCAAwCvD,EAAE46B,MAAM,OAAQvgE,GAAEw8E,GAAG35C,EAAG2C,GAAI,IAAM,uEAAuE3C,oBAAoB2C,MAAOxlC,GAAEy8E,GAAGj3C,GAAI,IAAM,2DAA4DxlC,GAAEy8E,GAAG55C,GAAI,IAAM,qDACpU,IAAIsG,EAAI,CAAEmD,EAAGzG,EAAGirB,OAAQnrB,GAAKyD,EAAI,CAAEm4B,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAG09C,UAAWl7C,EAAGu3C,gBAAiBt3C,GAAK+D,EAAIu+B,GAAEC,UAAU5/D,GAAI+gC,EAAGC,GACjI,OAAO9B,EAAI3R,GAAE6T,EAAG,CAACA,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,KAAO/2B,EAE1D,IAAI3mB,GAAK4O,GAAE,CAAEkvD,QAASF,KACtB,SAASG,GAAGn+C,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,MAAOwC,EAAI,EAAGC,GACzC,IAAIC,EAAIkH,GAAEnK,EAAG,IAAK,UAAWkD,EAAIiH,GAAElK,EAAI,SAAU,UAAWmD,EAAIH,EAAG4B,GAAI,EAC5D,IAAX5B,EAAE26B,OAAe/4B,GAAI,EAAMzB,EAAIlQ,GAAE+P,EAAG,CAAC,EAAGA,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,MAAOvgE,GAAa,IAAX6lC,EAAEw6B,KAAY,IAAM,uDAAuDx6B,EAAEw6B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,wDAAwD16B,EAAE06B,SAAUqc,GAAG,SAAU35C,EAAG0C,GAAIzlC,GAAE6lC,EAAE06B,MAAM,KAAO56B,EAAE46B,MAAM,GAAI,IAAM,oCAAoC16B,EAAE06B,MAAM,yCAAyC56B,EAAE46B,MAAM,OAAQvgE,GAAEw8E,GAAG35C,EAAG2C,GAAI,IAAM,oEAAoE3C,mBAAmB2C,MAAOxlC,GAAEy8E,GAAGj3C,GAAI,IAAM,2DAA4DxlC,GAAEy8E,GAAG55C,GAAI,IAAM,oDAAqD7iC,GAAQ,QAANgjC,EAAa,IAAM,sCAAsCA,0CAC5sB,IAAIkG,EAAIvT,GAAEgQ,EAAG,CAAC,EAAGA,EAAE46B,MAAM,GAAI56B,EAAE46B,MAAM,GAAI56B,EAAE46B,MAAM,KAAMp3B,EAAIxT,GAAEkQ,EAAG,CAACA,EAAE06B,MAAM,GAAI,EAAG16B,EAAE06B,MAAM,GAAI16B,EAAE06B,MAAM,KAAMhzB,EAAI1qB,GAAGsmB,EAAGD,EAAG,CAAC,EAAGrG,GAAIE,EAAG,OAAQ,CAAC,EAAGyC,GAAIC,GAClJ,OAAW9P,GAAE4X,EAANjG,EAAS,CAACiG,EAAEgzB,MAAM,GAAIhzB,EAAEgzB,MAAM,IAAY,CAAChzB,EAAEgzB,MAAM,GAAIhzB,EAAEgzB,MAAM,GAAIhzB,EAAEgzB,MAAM,KAEpF,IAAI59C,GAAK8O,GAAE,CAAEovD,QAASD,KACtB,SAASE,GAAGr+C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,OAAQC,GACtCzlC,GAAEyiC,EAAEnhC,SAAWohC,EAAG29B,KAAM,IAAM,sBAAsB59B,EAAEnhC,2BAA2BohC,EAAG29B,oBACpF,IAAI36B,EAAIjD,EAAGkD,EAAIjD,EAAImD,GAAI,EACX,IAAZnD,EAAG29B,OAAex6B,GAAI,EAAMF,EAAIhQ,GAAE+M,EAAI,CAAC,EAAGA,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,KAAM76B,EAAI,CAAC,EAAGjD,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAAMziC,GAAe,IAAb0lC,EAAEpkC,OAAc,IAAM,qEAAqEokC,EAAEpkC,WAAYtB,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,4DAA4D16B,EAAE06B,MAASrgE,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,gEAAgEx9B,EAAEw9B,MAC/Y,IAAI/4B,EAAU,SAAN9B,EAAeE,EAAE,GAAKA,EAAE,GAAIwD,EAAU,SAAN1D,EAAeG,EAAE46B,MAAM,GAAK56B,EAAE46B,MAAM,GAC5EvgE,GAAEsnC,IAAMzE,EAAE09B,MAAM,GAAI,IAAM,4CAA4Cj5B,wCAAwCzE,EAAE09B,MAAM,OAAQvgE,GAAEkpC,IAAMrG,EAAE09B,MAAM,GAAI,IAAM,6CAA6Cr3B,yCAAyCrG,EAAE09B,MAAM,OAAQmc,GAAG,iBAAkB15C,EAAGyC,GACtR,IAAI0D,EAAI,CAAE43C,GAAIp7C,EAAGmrB,OAAQjuB,GAAKuG,EAAI,CAAEm4B,QAASx+B,EAAGnR,IAAKoR,EAAGq3C,WAAY70C,EAAGu3C,gBAAiBt3C,EAAGu7C,WAAYt7C,GAAK8D,EAAIu+B,GAAEC,UAAUx/D,GAAI2gC,EAAGC,GACnI,OAAOvD,EAAIlQ,GAAE6T,EAAG,CAACA,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,KAAO/2B,EAE1D,IAAIy3C,GAAKxvD,GAAE,CAAEyvD,qBAAsBJ,KACnC,SAASK,GAAG1+C,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAImH,GAAEnK,EAAG,IAAK,mBAAoBiD,EAAIkH,GAAElK,EAAI,SAAU,mBAC1D,OAAOu+C,GAAGp+C,EAAG4C,EAAGC,EAAG3C,EAAGC,EAAG,OAAQwC,GAEnC,IAAIziB,GAAK0O,GAAE,CAAE2vD,iBAAkBD,KAC/B,SAASE,GAAG5+C,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,QAASwC,EAAI,CAAC,EAAG,EAAG,IAC/C,IAAIC,EAAImH,GAAEnK,EAAG,IAAK,UAAWiD,EAAIkH,GAAElK,EAAI,SAAU,UAAWiD,EAAIF,EAAGI,GAAI,EAC5D,IAAXJ,EAAE46B,OAAex6B,GAAI,EAAMF,EAAIhQ,GAAE8P,EAAG,CAAC,EAAGA,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,MAAOvgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,uDAAuD16B,EAAE06B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,wDAAwD36B,EAAE26B,SAAUrgE,GAAE2lC,EAAE46B,MAAM,KAAO76B,EAAE66B,MAAM,GAAI,IAAM,oCAAoC56B,EAAE46B,MAAM,yCAAyC76B,EAAE66B,MAAM,OAAQvgE,GAAEw8E,GAAG35C,EAAG2C,GAAI,IAAM,uEAAuE3C,oBAAoB2C,MAAOxlC,GAAQ,UAANgjC,EAAe,IAAM,sCAAsCA,4CAA6ChjC,GAAEy8E,GAAGj3C,GAAI,IAAM,2DAA4DxlC,GAAEy8E,GAAG55C,GAAI,IAAM,qDAC9sB,IAAIyE,EAAI,CAAEgF,EAAG3G,EAAGmrB,OAAQprB,GAAKwD,EAAI,CAAEq4B,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAG09C,UAAWl7C,GAAK2D,EAAI4+B,GAAEC,UAAUt/D,GAAI4+B,EAAG4B,GAC7G,OAAOrD,EAAIlQ,GAAEwT,EAAG,CAACA,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,KAAOp3B,EAEtE,IAAIlmB,GAAKwO,GAAE,CAAE6vD,QAASD,KACtB,SAASE,GAAG9+C,EAAGC,EAAIG,EAAGE,EAAGC,GACvBhjC,GAAEyiC,EAAEnhC,SAAWohC,EAAG29B,KAAM,IAAM,sBAAsB59B,EAAEnhC,2BAA2BohC,EAAG29B,oBACpF,IAAI76B,EAAI/C,EAAGgD,EAAI/C,EAAIgD,GAAI,EACX,IAAZhD,EAAG29B,OAAe36B,GAAI,EAAMD,EAAI9P,GAAE+M,EAAI,CAAC,EAAGA,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,KAAM/6B,EAAI,CAAC,EAAG/C,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC5H,IAAIkD,EAAIH,EAAE,GAAIK,EAAIJ,EAAE86B,MAAM,GAC1BvgE,GAAe,IAAbwlC,EAAElkC,OAAc,IAAM,qEAAqEkkC,EAAElkC,WAAYtB,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,4DAA4D56B,EAAE46B,MAASrgE,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,gEAAgEx9B,EAAEw9B,MAASrgE,GAAE2lC,IAAM9C,EAAE09B,MAAM,GAAI,IAAM,4CAA4C56B,wCAAwC9C,EAAE09B,MAAM,OAAQvgE,GAAE6lC,IAAMhD,EAAE09B,MAAM,GAAI,IAAM,6CAA6C16B,yCAAyChD,EAAE09B,MAAM,OAC/hB,IAAIj5B,EAAI,CAAEy5C,GAAIt7C,EAAGqrB,OAAQjuB,GAAKqG,EAAI,CAAEtX,IAAKoR,EAAGu+B,QAASx+B,EAAGi+C,WAAYx7C,GAAK2D,EAAI4+B,GAAEC,UAAUl/D,GAAIw+B,EAAG4B,GAChG,OAAOxD,EAAI/P,GAAEwT,EAAG,CAACA,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,KAAOp3B,EAEtE,IAAIq4C,GAAK/vD,GAAE,CAAEgwD,qBAAsBF,KACnC,SAASG,GAAGj/C,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAIoH,GAAEnK,EAAG,IAAK,mBAAoBgD,EAAImH,GAAElK,EAAI,SAAU,mBAC1D,OAAO8+C,GAAG3+C,EAAG2C,EAAGC,EAAG1C,EAAGC,GAExB,IAAI7f,GAAKsO,GAAE,CAAEkwD,iBAAkBD,KAC/B,SAASE,GAAGn/C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,YAC9B,OAAOslC,GAAEC,UAAUh/D,GAAI65B,GAEzB,IAAItf,GAAKkO,GAAE,CAAEowD,KAAMD,KACnB,SAASE,GAAGr/C,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,OAAQ,YAC/B,OAAOslC,GAAEC,UAAU9+D,GAAI25B,GAEzB,IAAIpf,GAAKgO,GAAE,CAAEswD,MAAOD,KACpB,SAASE,GAAGv/C,EAAGC,EAAK,EAAGG,GAAI,EAAOE,GAAI,GACpC,IAAIyC,EAAI,CAAE8G,EAAGM,GAAEnK,EAAG,IAAK,YAAcgD,EAAI,CAAE2yC,KAAM11C,EAAIu/C,UAAWp/C,EAAGjN,QAASmN,GAC5E,OAAOglC,GAAEC,UAAU1+D,GAAIk8B,EAAGC,GAE5B,IAAI5hB,GAAK4N,GAAE,CAAEywD,SAAUF,KACvB,SAASG,GAAG1/C,EAAGC,EAAK,EAAGG,GAAI,EAAOE,GAAI,GACpC,IAAIyC,EAAI,CAAE8G,EAAGM,GAAEnK,EAAG,IAAK,WAAagD,EAAI,CAAE2yC,KAAM11C,EAAIu/C,UAAWp/C,EAAGjN,QAASmN,GAC3E,OAAOglC,GAAEC,UAAUx+D,GAAIg8B,EAAGC,GAE5B,IAAI1hB,GAAK0N,GAAE,CAAE2wD,QAASD,KACtB,SAASE,GAAG5/C,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI4J,GAAEnK,EAAG,IAAK,iBAAkB+C,EAAIoH,GAAElK,EAAI,UAAW,iBACzD1iC,GAAc,UAAZgjC,EAAE88B,MAAmB,IAAM,8DAA8D98B,EAAE88B,OAAU9/D,GAAEgjC,EAAEq9B,MAAQ,EAAG,IAAM,sEAAsEr9B,EAAEq9B,SAAUrgE,GAAE6iC,GAAK,EAAG,IAAM,sCAAsCA,MAAO7iC,GAAEwlC,EAAE86B,OAASt9B,EAAEs9B,MAAmB,IAAX96B,EAAE86B,KAAY,IAAM,+FAA+Ft9B,EAAEu9B,yBAAyB/6B,EAAE+6B,UAClb,IAAI96B,EAAI,CAAE6G,EAAGtJ,EAAGktC,QAAS1qC,GAAKE,EAAI,CAAE46B,KAAMz9B,EAAGy/C,aAAcv/C,GAC3D,OAAOglC,GAAEC,UAAUp+D,GAAI67B,EAAGC,GAE5B,IAAIvhB,GAAKsN,GAAE,CAAE8wD,eAAgBF,KAC7B,SAASG,GAAG//C,EAAGC,EAAIG,EAAI,QACrB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,eAAgB,WAAYO,EAAU,SAANH,EAAeE,EAAEw9B,MAAM,GAAKx9B,EAAEw9B,MAAM,GAAI/6B,EAAU,SAAN3C,EAAeE,EAAEw9B,MAAM,GAAKx9B,EAAEw9B,MAAM,GAAI96B,EAAU,SAAN5C,EAAeE,EAAEw9B,MAAM,GAAKx9B,EAAEw9B,MAAM,GAC9KvgE,GAAE0iC,EAAK,EAAG,IAAM,sDAAsDA,GAAO1iC,GAAEgjC,EAAIN,GAAM,EAAG,IAAM,oEAC9FM,SAASN,6CACTK,EAAEw9B,SAAUvgE,GAAEwlC,EAAI9C,GAAM,EAAG,IAAM,oEACjC8C,SAAS9C,gDACLK,EAAEw9B,SAAUvgE,GAAEylC,GAAK/C,EAAKA,KAAQ,EAAG,IAAM,8CAA8CA,EAAKA,YAAa+C,uCAAuC1C,EAAEw9B,SAC1J,IAAI76B,EAAI,CAAE4G,EAAGvJ,GAAK4C,EAAI,CAAE88C,UAAW//C,EAAI23C,WAAYx3C,GACnD,OAAOklC,GAAEC,UAAUl+D,GAAI47B,EAAGC,GAE5B,IAAIphB,GAAKkN,GAAE,CAAEixD,cAAeF,KAC5B,SAASG,GAAGlgD,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,OAAQwC,EAAI,CAAC,EAAG,GAAIC,GAC/C,IAAIC,EAAIkH,GAAEnK,EAAG,IAAK,kBAAmB,WAAYkD,EAAIiH,GAAElK,EAAI,SAAU,kBAAmB,WAAYmD,EAAIH,EAAG4B,GAAI,EACpG,IAAX5B,EAAE26B,OAAe/4B,GAAI,EAAMzB,EAAIlQ,GAAE+P,EAAG,CAAC,EAAGA,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,MAAOvgE,GAAa,IAAX6lC,EAAEw6B,KAAY,IAAM,gEAAgEx6B,EAAEw6B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,iEAAiE16B,EAAE06B,SAC1Q,IAAIn3B,EAAU,SAANlG,EAAe6C,EAAE06B,MAAM,GAAK16B,EAAE06B,MAAM,GAC5CvgE,GAAEkpC,IAAMvD,EAAE46B,MAAM,GAAI,IAAM,uDAAuDr3B,oDAAoDvD,EAAE46B,MAAM,OAAQmc,GAAG,kBAAmB35C,EAAG0C,GAC9K,IAAI0D,EAAI,CAAEmD,EAAGzG,EAAGirB,OAAQnrB,GAAKyD,EAAI,CAAEm4B,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAG09C,UAAWl7C,EAAGu3C,gBAAiBt3C,GAAK+D,EAAIu+B,GAAEC,UAAUh+D,GAAIm/B,EAAGC,GACjI,OAAO9B,EAAI3R,GAAE6T,EAAG,CAACA,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,GAAI/2B,EAAE+2B,MAAM,KAAO/2B,EAE1D,IAAI/kB,GAAKgN,GAAE,CAAEmxD,iBAAkBD,KAC/B,SAASE,GAAGpgD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAU19D,GAAIu4B,GAEzB,IAAI9d,GAAK0M,GAAE,CAAEqxD,MAAOD,KACpB,SAASE,GAAGtgD,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,CAAC,EAAG,GAAIwC,EAAI,QACvC,IAAIC,EAAImH,GAAEnK,EAAG,IAAK,cAAeiD,EAAIkH,GAAElK,EAAI,SAAU,cACrD1iC,GAAa,IAAXylC,EAAE46B,MAAyB,IAAX56B,EAAE46B,KAAY,IAAM,gEAAgE56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,4DAA4D36B,EAAE26B,SAAUrgE,GAAQ,SAANwlC,EAAc,IAAM,gFAAgFA,GACtT,IAAIG,EAAIF,EAAGI,GAAI,EACJ,IAAXJ,EAAE46B,OAAe16B,EAAIhQ,GAAE8P,EAAG,CAAC,EAAGA,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,KAAM16B,GAAI,GAAO7lC,GAAE2lC,EAAE46B,MAAM,KAAO76B,EAAE66B,MAAM,GAAI,IAAM,oEAAoE56B,EAAE46B,MAAM,SAAS76B,EAAE66B,MAAM,MAC/M,IAAIj5B,EAAI,CAAEgF,EAAG3G,EAAGmrB,OAAQprB,GAAKwD,EAAI,CAAEq4B,QAAS1+B,EAAGjR,IAAKmR,EAAG29C,UAAW19C,GAAKmG,EAAI4+B,GAAEC,UAAUx9D,GAAI88B,EAAG4B,GAC9F,OAAOrD,EAAIlQ,GAAEwT,EAAG,CAACA,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,GAAIp3B,EAAEo3B,MAAM,KAAOp3B,EAE1D,IAAIlkB,GAAKwM,GAAE,CAAEuxD,YAAaD,KACtB9hE,GAAK,GAET,SAASgiE,GAAGxgD,EAAGC,GACb,IAAIG,EAAIJ,EAAEnhC,OAAQyhC,EAAI,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAGG,IAAK,CAC1B,IAAIwC,EAAI3C,EAAI,EAAIG,EAAGyC,EAAIhD,EAAE+C,IAAM,GAC9B9C,EAAGA,EAAGphC,OAAS,EAAI0hC,IAAM,GAAK,GAAW,IAANyC,GAAW1C,EAAE8V,QAAQrT,GAE3D,OAAOzC,EAET,SAASmgD,GAAGzgD,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIL,EAAGphC,OAAQyhC,IAAK,CAClC,IAAIC,EAAIP,EAAEA,EAAEnhC,OAASyhC,EAAI,GAAIyC,EAAI9C,EAAGphC,OAASyhC,EAAI,EAAG0C,EAAI/C,EAAG8C,IACrD,MAALxC,GAAmB,IAANA,GAAWyC,EAAI,IAAM5C,EAAEgW,QAAQrT,GAE/C,OAAO3C,EAET,SAASsgD,GAAG1gD,EAAGC,GACb,IAAIG,EAAIsC,KAAK3W,IAAIiU,EAAEnhC,OAAQohC,EAAGphC,QAASyhC,EAAI,IAAI8yB,MAAMhzB,GACrD,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAGG,IAAK,CAC1B,IAAIwC,EAAI/C,EAAEA,EAAEnhC,OAAS0hC,EAAI,GACpB,MAALwC,IAAcA,EAAI,GAClB,IAAIC,EAAI/C,EAAGA,EAAGphC,OAAS0hC,EAAI,GAC3B,GAAS,MAALyC,IAAcA,EAAI,GAAU,IAAND,EACxBzC,EAAEF,EAAIG,EAAI,GAAKyC,OACZ,GAAU,IAANA,EACP1C,EAAEF,EAAIG,EAAI,GAAKwC,MACZ,IAAIA,IAAMC,EAAG,CAChB,IAAIC,EAAI,wDAAwDjD,SAASC,KACzE,MAAM2C,MAAMK,GAEZ3C,EAAEF,EAAIG,EAAI,GAAKwC,GAEnB,OAAOzC,EAET,SAASqgD,GAAG3gD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,QAAS,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,QAAS,sBACxEG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUt8D,GAAIs3B,GAvCzBJ,EAAG3hB,GAAI,CAAEoiE,2BAA4B,IAAMF,GAAIG,iBAAkB,IAAML,GAAIM,iBAAkB,IAAML,KAyCnG,IAAIj8D,GAAKwK,GAAE,CAAE+xD,OAAQJ,KACrB,SAASK,GAAGhhD,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAElK,EAAI,IAAK,SAAUM,EAAI4J,GAAE/J,EAAG,IAAK,SAAU2C,EAAIoH,GAAEnK,EAAG,YAAa,QAAS,QAASgD,EAAI09C,GAAGA,GAAG39C,EAAE+6B,MAAOx9B,EAAEw9B,OAAQv9B,EAAEu9B,OAAQ76B,EAAI3kB,GAAGykB,EAAGC,GAAIE,EAAI5kB,GAAGgiB,EAAG0C,GAAII,EAAI9kB,GAAGiiB,EAAGyC,GAAI6B,EAAI,CAAEo8C,UAAWh+C,EAAGi+C,EAAGh+C,EAAG9C,EAAGgD,GAC3M,OAAOkiC,GAAEC,UAAUhwD,GAAIsvB,GAEzB,IAAIjG,GAAK5P,GAAE,CAAEmyD,OAAQH,KACrB,SAASI,GAAGphD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,cACvB,OAAOslC,GAAEC,UAAU5qD,GAAIylB,GAEzB,IAAIlB,GAAKlQ,GAAE,CAAEqyD,WAAYD,KACzB,SAASE,GAAGthD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,QACxCG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAIvd,GAAGod,EAAGE,GAAIyC,EAAI7D,GAAGqB,GAAIyC,EAAIxe,GAAG8b,EAAGyC,GACvC,OAAOnE,GAAGoE,EAAGD,EAAGxC,GAElB,IAAIrd,GAAK8L,GAAE,CAAEuyD,UAAWD,KACxB,SAASE,GAAGxhD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,KAAM,OAAQM,EAAI6J,GAAElK,EAAI,KAAM,OAC3C1iC,IAAc,IAAX6iC,EAAEw9B,MAAyB,IAAXx9B,EAAEw9B,QAA2B,IAAXt9B,EAAEs9B,MAAyB,IAAXt9B,EAAEs9B,MAAa,IAAM,+DAA+Dx9B,EAAEw9B,YAAYt9B,EAAEs9B,SACzJ,IAAIr9B,EAAe,IAAXH,EAAEw9B,KAAax9B,EAAEy9B,KAAOz9B,EAAE09B,MAAM,GAAI/6B,EAAe,IAAXzC,EAAEs9B,KAAat9B,EAAEu9B,KAAOv9B,EAAEw9B,MAAM,GAChF,GAAIvgE,GAAEgjC,IAAMwC,EAAG,IAAM,gEAAgExC,SAASwC,MAAkB,IAAX3C,EAAEw9B,MAAyB,IAAXt9B,EAAEs9B,KAAY,CACjI,IAAI56B,EAAI9P,GAAEkN,EAAG,CAAC,GAAI,IAAK6C,EAAI/P,GAAEoN,EAAG,EAAE,EAAG,IAAK4C,EAAItX,GAAGoX,EAAGC,GACpD,OAAO/P,GAAEgQ,EAAG,IACP,GAAe,IAAX9C,EAAEw9B,MAAyB,IAAXt9B,EAAEs9B,KAAY,CACvC,IAAI56B,EAAI9P,GAAEkN,EAAG,CAAC,GAAI,IAAK6C,EAAI/P,GAAEoN,EAAG,CAACA,EAAEw9B,MAAM,GAAIx9B,EAAEw9B,MAAM,KAAM56B,EAAItX,GAAGoX,EAAGC,GACrE,OAAO/P,GAAEgQ,EAAG,CAACA,EAAE26B,OACV,GAAe,IAAXz9B,EAAEw9B,MAAyB,IAAXt9B,EAAEs9B,KAAY,CACvC,IAAI56B,EAAI9P,GAAEoN,EAAG,EAAE,EAAG,IAAK2C,EAAIrX,GAAGwU,EAAG4C,GACjC,OAAO9P,GAAE+P,EAAG,CAACA,EAAE46B,OACV,CACL,IAAI76B,EAAI9P,GAAEoN,EAAG,CAACA,EAAEw9B,MAAM,GAAIx9B,EAAEw9B,MAAM,KAClC,OAAOlyC,GAAGwU,EAAG4C,IAGjB,IAAI5f,GAAK4L,GAAE,CAAEyyD,KAAMD,KACnB,SAASE,GAAG1hD,KAAMC,GAChB,IAAIG,EAAIH,EAAGizB,IAAI,CAAC3yB,EAAGwC,IAAMoH,GAAE5J,EAAG,UAAUwC,EAAK,WAAYzC,EAAI,CAAEqhD,SAAU3hD,GACzE,OAAOslC,GAAEC,UAAU98D,GAAI23B,EAAGE,GAE5B,IAAI9c,GAAKwL,GAAE,CAAE4yD,QAASF,KACtB,SAASG,GAAG7hD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,YAC9B,OAAOslC,GAAEC,UAAU58D,GAAIy3B,GAEzB,IAAI1c,GAAKsL,GAAE,CAAE8yD,KAAMD,KACnB,SAASE,GAAG/hD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,cAAe,qBACjC,IAAKwyB,GAAGpyB,EAAE09B,MAAO79B,GACf,MAAM,IAAI2C,MAAM,gCAAgCxC,EAAE09B,+CAA+C79B,KACnG,OAAOD,EAET,IAAI5b,GAAK4K,GAAE,CAAEgzD,aAAcD,KAC3B,SAASE,GAAGjiD,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,IAAK,OACnBziC,GAAe,UAAb0iC,EAAGo9B,OAAkC,YAAbp9B,EAAGo9B,MAAqB,IAAM,6CAA2D,UAAbp9B,EAAGo9B,QAAsBp9B,EAAKnhB,GAAGmhB,EAAI,YAC3I,IAAIG,EAAI,CAAEyJ,EAAG5J,GACb,OAAOqlC,GAAEC,UAAUp8D,GAAIi3B,GAEzB,IAAI1b,GAAKsK,GAAE,CAAEkzD,KAAMD,KACnB,SAASE,GAAGniD,EAAGC,GACb,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,SAAUuhC,EAC9B,GAAIJ,EAAEA,EAAEnhC,OAASuhC,EAAI,KAAOH,EAAK,EAAIG,EACnC,OAAO,EACX,OAAO,EAET,SAASgiD,GAAGpiD,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEnhC,OAASohC,EAAGphC,OAAQ0hC,EAAI,GAAIwC,EAAI,EAAGC,EAAI,EACjD,IAAK,IAAIC,EAAI,EAAGA,EAAI3C,EAAG2C,KACH,IAAlB7C,EAAE/gC,QAAQ4jC,GAAY1C,EAAEiK,KAAKxK,EAAE+C,MAAQxC,EAAEiK,KAAKvK,EAAG+C,MACnD,OAAOzC,EAET,SAAS8hD,GAAGriD,EAAGC,GACb,IAAIG,EAAI,GAAIE,EAAIN,EAAEnhC,OAClB,IAAK,IAAIkkC,EAAI,EAAGA,EAAIzC,EAAGyC,KACF,IAAnB9C,EAAG5gC,QAAQ0jC,IAAa3C,EAAEoK,KAAKxK,EAAE+C,IACnC,IAAIxC,EAAIN,EAAGizB,IAAKnwB,GAAM/C,EAAE+C,IACxB,MAAO,CAAC3C,EAAGG,GAEb,SAAS+hD,GAAGtiD,EAAGC,GACb,IAAIG,EAAIH,EAAGizB,IAAK5yB,GAAM,GACtB,OAAO8hD,GAAGpiD,EAAGI,EAAGH,GAElB,SAASsiD,GAAGviD,EAAGC,EAAIG,GACjB7iC,GAAE4kF,GAAGliD,EAAIG,GAAI,IAAM,GAAGJ,qDAAqDC,cAAeG,YAE5F,SAASoiD,GAAGxiD,EAAGC,GACb,GAAIkiD,GAAGniD,EAAGC,GACR,OAAO,KACT,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIL,IAAMK,GACN,IAAlBN,EAAE3gC,QAAQihC,IAAaF,EAAEoK,KAAKlK,GAChC,OAAON,EAAEsY,QAAShY,GAAMF,EAAEoK,KAAKlK,IAAKF,EAEtC,SAASqiD,GAAGziD,GACV,OAAOA,EAAEkzB,IAAI,CAACjzB,EAAIG,IAAM,CAACA,EAAGH,IAAKqzB,KAAK,CAACrzB,EAAIG,IAAMH,EAAG,GAAKG,EAAE,IAAI8yB,IAAKjzB,GAAOA,EAAG,IAEhF,SAASyiD,GAAG1iD,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAIL,EAAKD,EAAGM,EAAIL,IAAMK,EAC7BF,EAAEoK,KAAKlK,GACT,OAAOF,EAET,SAASuiD,GAAG3iD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,QAAU+C,EAAI,CAAE6/C,iBAAkB3iD,EAAI21C,SAAUx1C,GACvE,OAAOklC,GAAEC,UAAU92D,GAAI8xB,EAAGwC,GAE5B,IAAI/W,GAAKgD,GAAE,CAAE6zD,KAAMF,KACnB,SAASG,GAAG9iD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,QAAU+C,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GAC3D,OAAOklC,GAAEC,UAAU91D,GAAI8wB,EAAGwC,GAE5B,IAAI/V,GAAKgC,GAAE,CAAE+zD,KAAMD,KACnB,SAASE,GAAGhjD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,OAAQ,OAAQM,EAAI6J,GAAElK,EAAI,MAAO,QAC7CG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUtzD,GAAIsuB,GAEzB,IAAIvQ,GAAKhB,GAAE,CAAEi0D,KAAMD,KACnB,SAAS5uD,GAAG4L,EAAGC,GACb,IAAKi6B,GAAGl6B,IAAa,WAAPC,GAAmBmzB,MAAMC,QAAQrzB,KAAc,cAAPC,EACpD,MAAM,IAAI2C,MAAM,kFAClB,GAAW,WAAP3C,GAAmBi6B,GAAGl6B,MAAQA,aAAakB,YAC7C,MAAM,IAAI0B,MAAM,6EAClB,OAAOknC,GAAG9pC,EAAG,GAAI,GAAIC,GAEvB,SAASijD,GAAGljD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,OAAQ,YAC/B,OAAOslC,GAAEC,UAAUhuD,GAAI6oB,GAEzB,IAAI9H,GAAKtJ,GAAE,CAAEm0D,MAAOD,KACpB,SAASE,GAAGpjD,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,IAAK,UAAWI,EAAI,GAClC,OAAOklC,GAAEC,UAAU,SAAU,CAAE17B,EAAG5J,GAAMG,GAE1C,IAAI5H,GAAKxJ,GAAE,CAAEq0D,QAASD,KACtB,SAASE,GAAGtjD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,OACN,SAAZM,EAAE+8B,QAAqB/8B,EAAIxhB,GAAGwhB,EAAG,UACjC,IAAIC,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GAC5C,OAAOklC,GAAEC,UAAU5sD,GAAI4nB,EAAGwC,GAE5B,IAAIvJ,GAAKxK,GAAE,CAAEu0D,KAAMD,KACnB,SAASE,GAAGxjD,EAAGC,EAAK,YAAaG,EAAI,KAAME,GAAI,GAC7CN,EAAImK,GAAEnK,EAAG,IAAK,QACd,IAAIO,EAAIkjD,GAAGzjD,EAAGC,EAAIG,GAAI2C,EAAIxC,EAAEu9B,MAC5B,GAAIx9B,EAAG,CACL,IAAI0C,EAAIiwB,GAAG7yB,EAAGJ,EAAE89B,OAChB/6B,EAAIu/C,GAAG/hD,EAAEu9B,MAAO96B,GAElB,OAAO9P,GAAEqN,EAAGwC,GAEd,SAAS0gD,GAAGzjD,EAAGC,EAAIG,EAAI,MACrB,GAAe,IAAXJ,EAAE49B,KACJ,OAAO7iD,GAAGilB,GACZ,GAAe,IAAXA,EAAE49B,MAAoB,OAANx9B,EAClB,OAAOqjD,GAAGvwD,GAAE8M,EAAG,EAAE,IAAKC,EAAIG,GAC5B,GAAe,IAAXJ,EAAE49B,MAA0B,iBAALx9B,GAAiBgzB,MAAMC,QAAQjzB,IAAmB,IAAbA,EAAEvhC,OAAc,CAC9E,GAAW,IAAPohC,EACF,OAAOzG,GAAGze,GAAGilB,GAAII,GACnB,GAAIH,IAAO,IACT,OAAOjU,GAAGjR,GAAGilB,GAAII,GACnB,GAAIH,KAAO,IACT,OAAOjT,GAAGjS,GAAGilB,GAAII,GACnB,GAAW,cAAPH,GAA6B,IAAPA,EACxB,OAAO3H,GAAGkB,GAAGxJ,GAAGjV,GAAGilB,GAAI5L,GAAG,EAAG,UAAWgM,IAC1C,MAAM,IAAIwC,MAAM,qCAAqC3C,GAEvD,GAAImzB,MAAMC,QAAQjzB,IAAmB,IAAbA,EAAEvhC,OAAc,CACtC,GAAW,IAAPohC,EACF,OAAOjU,GAAGwN,GAAGze,GAAGilB,GAAII,EAAE,IAAKA,EAAE,GAAK,GACpC,GAAIH,IAAO,IACT,OAAOjU,GAAGwN,GAAGze,GAAGilB,GAAII,EAAE,IAAKA,EAAE,IAC/B,GAAIH,KAAO,IACT,OAAOjT,GAAGwM,GAAGze,GAAGilB,GAAII,EAAE,IAAKA,EAAE,IAC/B,GAAW,QAAPH,GAAuB,cAAPA,EAClB,OAAO3H,GAAGkB,GAAGhB,GAAGwH,GAAII,IACtB,MAAM,IAAIwC,MAAM,qCAAqC3C,GAEvD,MAAM,IAAI2C,MAAM,gCAAgCxC,GAElD,IAAI9R,GAAKU,GAAE,CAAE00D,MAAOF,KACpB,SAASG,GAAG3jD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,OAAO9R,GAAG0R,EAAG,YAAaC,EAAIG,GAEhC,IAAIxb,GAAKoK,GAAE,CAAE40D,eAAgBD,KAC7B,SAASE,GAAG7jD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,QACvB,OAAOslC,GAAEC,UAAUl8D,GAAI+2B,GAEzB,IAAItb,GAAKkK,GAAE,CAAE80D,KAAMD,KACnB,SAASE,GAAG/jD,EAAGC,EAAK,GAClB,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,aAAc,qBAChCziC,GAAE0iC,GAAMG,EAAEw9B,KAAM,IAAM,sCACtB,IAAIt9B,EAAI,CAAE0jD,MAAO5jD,GAAKG,EAAI,CAAE0jD,IAAKhkD,GACjC,OAAOqlC,GAAEC,UAAUh8D,GAAI+2B,EAAGC,GAE5B,IAAIvb,GAAKgK,GAAE,CAAEk1D,YAAaH,KAC1B,SAASI,GAAGnkD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAU97D,GAAI22B,GAEzB,IAAIlb,GAAK8J,GAAE,CAAEo1D,OAAQD,KACrB,SAASE,GAAGrkD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQ,qBAC1BziC,GAAE6iC,EAAEw9B,OAAS39B,EAAGphC,OAAQ,IAAM,qCAAqCuhC,EAAEw9B,kCAAkC39B,MACvG,IAAIK,EAAI,CAAEuJ,EAAGzJ,GAAKG,EAAI,CAAEy8C,KAAM/8C,GAC9B,OAAOqlC,GAAEC,UAAUhsD,GAAI+mB,EAAGC,GAE5B,IAAIjF,GAAKtM,GAAE,CAAEs1D,MAAOD,KACpB,SAASE,GAAGvkD,EAAGC,EAAIG,EAAGE,EAAI,WAClB,MAANL,IAAeA,EAAKD,GACpB,IAAIO,EAAI3hB,GAAG,CAACohB,EAAGC,GAAKK,GAAIyC,EAAI/C,GAAKC,EAAKD,EAAIC,EAC1C,IAAK,IAAIgD,EAAI,EAAGA,EAAIF,IAAKE,EACvB1C,EAAEv/B,IAAI,EAAGiiC,EAAGA,GACd,IAAID,EAAI9P,GAAEqN,EAAEikD,WAAY,CAACxkD,EAAGC,IAC5B,GAAS,MAALG,EACF,OAAO4C,EACT,GAAiB,IAAb5C,EAAEvhC,OACJ,OAAOy8B,GAAGtW,GAAGge,EAAG,GAAI,CAAC5C,EAAE,GAAI,EAAG,IAChC,GAAiB,IAAbA,EAAEvhC,OACJ,OAAOy8B,GAAGtW,GAAGA,GAAGge,EAAG,GAAI,GAAI,CAAC5C,EAAE,GAAIA,EAAE,GAAI,EAAG,IAC7C,GAAiB,IAAbA,EAAEvhC,OACJ,OAAOy8B,GAAGtW,GAAGA,GAAGA,GAAGge,EAAG,GAAI,GAAI,GAAI,CAAC5C,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,EAAG,IAC1D,MAAM,IAAIwC,MAAM,qEAAqExC,EAAEvhC,YAEzF,IAAIumB,GAAK4J,GAAE,CAAEy1D,KAAMF,KACnB,SAASG,GAAG1kD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,QAAS,YAChC,OAAOslC,GAAEC,UAAUt7D,GAAIm2B,GAEzB,IAAIta,GAAKkJ,GAAE,CAAE21D,OAAQD,KACrB,SAASE,GAAG5kD,EAAGC,EAAIG,EAAI,EAAGE,EAAI,GAC5B,IAAIC,EAAI4J,GAAEnK,EAAG,IAAK,UAAW+C,EAAIoH,GAAElK,EAAI,UAAW,SAAU,SAAU+C,EAAI,CAAE6G,EAAGtJ,EAAGskD,QAAS9hD,GAAKE,EAAI,CAAE0yC,KAAMv1C,EAAG0kD,UAAWxkD,GAC1H,OAAOglC,GAAEC,UAAUt6D,GAAI+3B,EAAGC,GAE5B,IAAI3c,GAAK0I,GAAE,CAAE+1D,QAASH,KACtB,SAASI,GAAGhlD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,UAAW,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,UAAW,sBAC5EG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUl6D,GAAIk1B,GAEzB,IAAI3Y,GAAKoH,GAAE,CAAEi2D,SAAUD,KACvB,SAASE,GAAGllD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,eAAgB,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,eAAgB,sBACtFG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUh6D,GAAIg1B,GAEzB,IAAIzY,GAAKkH,GAAE,CAAEm2D,cAAeD,KAC5B,SAASE,GAAGplD,GACV,IAAII,EAAI,CAAE4jD,MAAO75C,GAAEnK,EAAG,QAAS,SAC/B,OAAOslC,GAAEC,UAAU15D,GAAIu0B,GAEzB,IAAIlY,GAAK8G,GAAE,CAAEq2D,MAAOD,KACpB,SAASE,GAAGtlD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,aACvB,OAAOslC,GAAEC,UAAUx5D,GAAIq0B,GAEzB,IAAIxX,GAAKoG,GAAE,CAAEu2D,UAAWD,KACxB,SAASE,GAAGxlD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAUt5D,GAAIm0B,GAEzB,IAAItX,GAAKkG,GAAE,CAAEy2D,OAAQD,KACrB,SAASE,GAAG1lD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAUp5D,GAAIi0B,GAEzB,IAAIpX,GAAKgG,GAAE,CAAE22D,OAAQD,KACrB,SAASE,GAAG5lD,EAAGC,EAAK,IAClB,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,cAAgBO,EAAI,CAAEslD,MAAO5lD,GACpD,OAAOqlC,GAAEC,UAAU54D,GAAI2zB,EAAGC,GAE5B,IAAIjX,GAAK0F,GAAE,CAAE82D,WAAYF,KACzB,SAASG,GAAG/lD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQ,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,OAAQ,sBACtEG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU14D,GAAI0zB,GAEzB,IAAI/W,GAAKwF,GAAE,CAAEg3D,MAAOD,KACpB,SAASE,GAAGjmD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,YAAa,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,YAAa,sBAChFG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUx4D,GAAIwzB,GAEzB,IAAI7W,GAAKsF,GAAE,CAAEk3D,WAAYD,KACzB,SAASn8D,GAAGkW,EAAGC,EAAIG,GACjB,GAAIA,GAAK,EACP,MAAM,IAAIwC,MAAM,4CAClB,IAAItC,EAAI,CAAEkqC,MAAOxqC,EAAGmmD,KAAMlmD,EAAImmD,IAAKhmD,GACnC,OAAOklC,GAAEC,UAAUt4D,GAAI,GAAIqzB,GAE7B,SAAS+lD,GAAGrmD,EAAGC,EAAK,EAAGG,EAAI,EAAGE,EAAI,EAAGC,EAAI,IACvC,IAAIwC,EAAIoH,GAAEnK,EAAG,IAAK,8BAClBziC,GAAa,IAAXwlC,EAAE66B,MAAyB,IAAX76B,EAAE66B,KAAY,IAAM,2FAClB76B,EAAE66B,SAAUrgE,GAAEk1D,GAAGxyB,GAAK,IAAM,2FAA2FA,MAC3I,IAAI+C,EAAID,EAAGE,GAAI,EACJ,IAAXF,EAAE66B,OAAe36B,GAAI,EAAMD,EAAI9P,GAAE6P,EAAG,CAAC,EAAGA,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,MACxE,IAAI56B,EAAI,CAAE2G,EAAG7G,GAAKI,EAAI,CAAEkjD,YAAarmD,EAAIsmD,KAAMnmD,EAAGylD,MAAOvlD,EAAGkmD,KAAMjmD,GAAKsE,EAAIygC,GAAEC,UAAUh5D,GAAI22B,EAAGE,GAC9F,OAAOH,EAAI/P,GAAE2R,EAAG,CAACA,EAAEi5B,MAAM,GAAIj5B,EAAEi5B,MAAM,GAAIj5B,EAAEi5B,MAAM,KAAOj5B,EAE1D,IAAIza,GAAK4E,GAAE,CAAEy3D,4BAA6BJ,KAC1C,SAASK,GAAG1mD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,YAC9B,OAAOslC,GAAEC,UAAUp4D,GAAIizB,GAEzB,IAAI9V,GAAK0E,GAAE,CAAE23D,KAAMD,KACnB,SAASE,GAAG5mD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAUl4D,GAAI+yB,GAEzB,IAAI5V,GAAKwE,GAAE,CAAE63D,OAAQD,KACrB,SAASp/D,GAAGwY,GACV,OAAOziC,GAAE82D,GAAGr0B,GAAI,IAAM,8CAA+C,CAACC,EAAIG,KACxE,IAAIE,EAAI6J,GAAElK,EAAI,IAAK,UAAW,qBAAsBM,EAAS,MAALH,EAAY+J,GAAE/J,EAAG,KAAM,WAAa,KAC5F,OAAOklC,GAAEnqC,KAAK,KACZ,IAAMv7B,MAAOmjC,EAAGtb,MAAOub,GAAMsiC,GAAEwhB,UAAU,IAAM9mD,EAAEM,GAAI,CAACA,GAAIC,GAC1D,OAAY,MAALA,GAAa6xB,GAAGrvB,EAAE+6B,MAAOv9B,EAAEu9B,MAAO,kFAAmFipB,GAAG/jD,GAAIA,EAAE,MAI3I,SAAStb,GAAGsY,GACV,OAAOziC,GAAE82D,GAAGr0B,GAAI,IAAM,+CAAgD,CAACC,EAAIG,KACzE7iC,GAAE61D,MAAMC,QAAQpzB,GAAK,IAAM,oFAC3B,IAAIK,EAAImpC,GAAGxpC,EAAI,OAAQ,WAAY,qBAAsBM,EAAS,MAALH,EAAY+J,GAAE/J,EAAG,KAAM,YAAc,KAClG,OAAOklC,GAAEnqC,KAAK,KACZ,IAAMv7B,MAAOmjC,EAAGtb,MAAOub,GAAMsiC,GAAEwhB,UAAU,IAAM9mD,KAAKM,GAAIA,EAAGC,GAC3D,OAAY,MAALA,GAAa6xB,GAAGrvB,EAAE+6B,MAAOv9B,EAAEu9B,MAAO,iGAAkGipB,GAAG/jD,GAAIA,KAIxJ,SAAS9F,GAAG8C,GACV,OAAOziC,GAAE82D,GAAGr0B,GAAI,IAAM,sDAAuD,CAACC,EAAIG,KAChF7iC,GAAE0iC,aAAchnB,GAAI,IAAM,uDAAwD1b,GAAO,MAAL6iC,GAAaA,aAAannB,GAAI,IAAM,4DACxH,IAAMwO,MAAO6Y,EAAG1gC,MAAO2gC,GAAM+kC,GAAEwhB,UAAU,IAAM9mD,EAAEC,GAAK,CAACA,GAAKG,GAC5D,OAAO2mD,GAAGzmD,GAAI,CAAE/Y,KAAM+Y,EAAE,GAAI1gC,MAAO2gC,IAGvC,SAASnD,GAAG4C,GACV,OAAOziC,GAAE82D,GAAGr0B,GAAI,IAAM,uDAAwD,CAACC,EAAIG,KACjF7iC,GAAE61D,MAAMC,QAAQpzB,IAAOA,EAAG2gB,MAAOrgB,GAAMA,aAAatnB,IAAK,IAAM,sEAAuE1b,GAAO,MAAL6iC,GAAaA,aAAannB,GAAI,IAAM,gEAC5K,IAAIqnB,EAAIglC,GAAEwhB,UAAU,IAAM9mD,KAAKC,GAAKA,EAAIG,GACxC,OAAY,MAALA,GAAagyB,GAAG9xB,EAAE1gC,MAAMk+D,MAAO19B,EAAE09B,MAAO,yGAA0GipB,GAAGzmD,EAAE7Y,OAAQ6Y,GAG1K,SAAS9C,GAAGwC,EAAGC,GACb1iC,GAAE82D,GAAGr0B,GAAI,IAAM,uDAAwDziC,GAAQ,MAAN0iC,GAAcmzB,MAAMC,QAAQpzB,IAAOA,EAAG2gB,MAAOxd,GAAMA,aAAa7oB,IAAK,IAAM,iFACpJ,IAAI6lB,EAAU,MAANH,EACR,IAAKG,EAAG,CACNH,EAAK,GACL,IAAK,IAAImD,KAAKkiC,GAAE9C,oBACdviC,EAAGuK,KAAK86B,GAAE9C,oBAAoBp/B,IAElC,IAAI9C,EAAIF,EAAIH,EAAGouB,OAAQjrB,IAAOA,EAAEi9B,WAAa,KAAM9/B,EAAIN,EAAGphC,OAC1DohC,EAAKA,EAAGouB,OAAQjrB,GAAMA,EAAEi9B,WAAY9iE,GAAE0iC,EAAGphC,OAAS,EAAG,IAAM,gGAAgG0hC,6BAC3J,IAAIwC,GAAI,GAAQnjC,MAAOojC,EAAGvb,MAAOwb,GAAMqiC,GAAEwhB,UAAU9mD,EAAGC,EAAI,KAAM8C,GAChExlC,GAAE0lC,EAAEi/B,KAAM9+B,GAAW,MAALA,GAAY,IAAM,gMAAiM7lC,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,iFAAiF56B,EAAE46B,eAC5U,IAAI16B,EAAI,GACR,OAAOjD,EAAGqY,QAAQ,CAAClV,EAAGyB,KACZ,MAAR5B,EAAE4B,KAAe3B,EAAEE,EAAEljC,MAAQ+iC,EAAE4B,MACxB,MAALvE,GAAaA,EAAEgY,QAASlV,GAAMF,EAAEE,EAAEljC,MAAQ,MAAO,CAAEN,MAAOojC,EAAGvb,MAAOyb,GAE1E,SAAS1hB,GAAGwe,GACV,OAAOslC,GAAE/jD,WAAWye,GAEtB,SAAS+mD,GAAG/mD,GACV,GAAIA,EAAEquB,OAAQjuB,GAAW,MAALA,GAAWvhC,OAAS,EACtC,MAAM,IAAI+jC,MAAM,4IAGpB,SAASokD,GAAGhnD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,QACvB,OAAOslC,GAAEC,UAAUh1D,GAAI6vB,GAEzB,IAAIlS,GAAKc,GAAE,CAAEi4D,KAAMD,KACnB,SAASE,GAAGlnD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,aACvB,OAAOslC,GAAEC,UAAUhvD,GAAI6pB,GAEzB,IAAI1I,GAAK1I,GAAE,CAAEm4D,UAAWD,KACxB,SAASE,GAAGpnD,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,IAAK,cACnB,OAAOxe,GAAI8e,IAAM,CAAG1gC,MAAOsuB,GAAGwJ,GAAGxJ,GAAGoS,KAAMknC,SAAWxkC,GAAMpV,GAAGoV,EAAG9M,GAAGhI,GAAGoS,OAAhE9e,CAAyEye,GAElF,IAAIvV,GAAKsE,GAAE,CAAEq4D,YAAaD,KAC1B,SAASE,GAAGtnD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,QACxCG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU9sD,GAAI8nB,GAEzB,IAAIjH,GAAKtK,GAAE,CAAEu4D,KAAMD,KACnB,SAASE,GAAGxnD,EAAGC,GAAK,GAClB,IAAIG,EAAI+J,GAAEnK,EAAG,SAAU,cACvB,IAAY,IAARC,IAAcA,EAAKG,EAAEw9B,KAAO,GAAI39B,IAAOG,EAAEw9B,KAAO,EAClD,MAAMh7B,MAAM,gFAAgFxC,EAAEw9B,qBAAqB39B,KACrH,OAAOze,GAAG,CAAC+e,EAAGwC,KACZ,IAAIE,EAAIjX,GAAGuU,EAAGN,GAAI,GAAOiD,EAAI5J,GAAGiH,EAAG0C,GAAIG,EAAI9J,GAAGxa,GAAGokB,EAAG,WAAY5Y,GAAGkP,GAAG1U,GAAGoe,GAAIjD,GAAI,KACjF,OAAO8C,EAAE,CAACK,IAAK,CAAExjC,MAAOwjC,EAAGokC,SAAU,CAAC/gC,EAAGC,KACvC,IAAKC,GAAKD,EAAGK,GAAI,EAAM8D,EAAI/lB,GAAG6hB,GAC9B,OAAOrN,GAAGmN,EAAG7Y,GAAG4L,GAAGiN,EAAGxG,EAAI8G,GAAI8D,OAJ3BrpB,CAMJ4e,GAEL,IAAIxV,GAAKoE,GAAE,CAAEy4D,YAAaD,KAC1B,SAASE,GAAG1nD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,aAAcO,EAAI0yB,GAAGhzB,EAAIK,EAAEw9B,OAAQ/6B,EAAI/W,GAAGsU,EAAGC,GAAG,GAAOyC,EAAI1J,GAAGgH,EAAGyC,GAAIE,EAAIne,GAAGke,GAAIE,EAAI1J,GAAGyJ,EAAG1C,GAAI6C,EAAI9Y,GAAG4Y,GAAI2B,EAAIzpB,GAAG8X,GAAE6P,EAAGK,EAAE06B,OAAQ16B,GACjJ,GAAIhD,EAAG,CACL,IAAIqG,EAAI67C,GAAGz9C,EAAEi5B,MAAOv9B,GACpB,OAAOrN,GAAE2R,EAAG4B,GAEd,OAAO5B,EAET,IAAI/Z,GAAKkE,GAAE,CAAE24D,WAAYD,KACzB,SAASE,GAAG5nD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,aAAc,QAASM,EAAI6J,GAAElK,EAAI,IAAK,aAAc,QACtEygD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACd,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU93D,GAAI8yB,GAEzB,IAAIvV,GAAKgE,GAAE,CAAE64D,YAAaD,KAC1B,SAASE,GAAG9nD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,aAAc,SACrC,OAAOslC,GAAEC,UAAU53D,GAAIyyB,GAEzB,IAAIlV,GAAK8D,GAAE,CAAE+4D,YAAaD,KAC1B,SAASE,GAAGhoD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,YAAa,QAASM,EAAI6J,GAAElK,EAAI,IAAK,YAAa,QACpEygD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACd,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU13D,GAAI0yB,GAEzB,IAAInV,GAAK4D,GAAE,CAAEi5D,WAAYD,KACzB,SAASE,GAAGloD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,aAAc,QAASM,EAAI6J,GAAElK,EAAI,IAAK,aAAc,QACtE,OAAOygD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OAAQ9yC,GAAGI,GAAG4U,EAAGC,GAAK/U,GAAGF,GAAGgV,EAAGC,KAEtD,IAAI3U,GAAK0D,GAAE,CAAEm5D,YAAaD,KACtBE,GAAK,WACT,SAASC,GAAGroD,EAAGC,EAAIG,EAAI,QACrB,IAAIE,EAAI6J,GAAEnK,EAAG,iBAAkB,gBAAiBO,EAAI4J,GAAElK,EAAI,SAAU,gBAAiB8C,EAAIzC,EAAEw9B,MAAMx9B,EAAEw9B,MAAMj/D,OAAS,GAAImkC,EAAIzC,EAAEu9B,MAAMv9B,EAAEu9B,MAAMj/D,OAAS,GAAIokC,EAAI/P,GAAEoN,EAAG,EAAE,EAAGyC,IAAKG,EAAIhQ,GAAEqN,EAAG,EAAE,EAAGyC,IACxL,GAAIC,EAAE26B,KAAO,EACX,MAAM,IAAIh7B,MAAM,wDAClB,GAAIK,EAAE66B,MAAM,KAAO56B,EAAE46B,MAAM,GACzB,MAAM,IAAIl7B,MAAM,kEAClB,GAAI0vB,GAAGpvB,EAAE46B,QAAUsqB,GACjB,MAAM,IAAIxlD,MAAM,qCAAqCwlD,IACvD,GAAInlD,EAAE66B,MAAM,IAAMsqB,GAChB,MAAM,IAAIxlD,MAAM,oCAAoCwlD,iCAAiCnlD,EAAE66B,MAAM,MAC/F,IAAI16B,EAAI,CAAEklD,eAAgBrlD,EAAGxlC,OAAQylC,GAAK2B,EAAI,CAAE0jD,KAAMnoD,GACtD,OAAOklC,GAAEC,UAAUlwD,GAAI+tB,EAAGyB,GAE5B,IAAInQ,GAAK1F,GAAE,CAAEw5D,cAAeH,KAC5B,SAAS38D,GAAGsU,EAAGC,GACb,OAAOvL,GAAGsL,EAAGC,EAAI,QAEnB,SAASwoD,GAAGzoD,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAIoH,GAAEnK,EAAG,IAAK,WAAYgD,EAAI,EAAGC,EAAIF,EAAGG,GAAI,EACrC,IAAXH,EAAE66B,OAAe16B,GAAI,EAAMD,EAAI/P,GAAE6P,EAAG,CAAC,EAAGA,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,MAAOvgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,uDAAuD36B,EAAE26B,SAAUrgE,GAAEw8E,GAAG35C,EAAG4C,GAAI,IAAM,wEAAwE5C,oBAAoB4C,MAAOi3C,GAAG,UAAW35C,EAAGC,GAC9S,IAAI6C,EAAI,CAAEyG,EAAG5G,GAAK4B,EAAI,CAAEw1C,WAAYp6C,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGg6C,gBAAiB/5C,GAAKkG,EAAI6+B,GAAEC,UAAU52D,GAAIy0B,EAAGyB,GACzG,OAAO3B,EAAIhQ,GAAEuT,EAAG,CAACA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,KAAOr3B,EAE1D,IAAIva,GAAK8C,GAAE,CAAE05D,SAAUD,KACvB,SAASE,GAAG3oD,EAAGC,EAAK,CAAC,EAAG,EAAG,GAAIG,EAAGE,EAAGC,EAAGwC,EAAI,SAC1C,IAAIC,EAAImH,GAAEnK,EAAG,IAAK,aAAciD,EAAID,EAAGE,GAAI,EAChC,IAAXF,EAAE46B,OAAe16B,GAAI,EAAMD,EAAI/P,GAAE8P,EAAG,CAAC,EAAGA,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,GAAI96B,EAAE86B,MAAM,MAAOvgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,qDAAqD36B,EAAE26B,SAAUrgE,GAAQ,UAANwlC,EAAe,IAAM,gFAAgFA,GAAMk3C,GAAG,YAAa35C,EAAGC,GAClT,IAAI6C,EAAI,CAAEyG,EAAG5G,GAAK4B,EAAI,CAAEw1C,WAAYp6C,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGg6C,gBAAiB/5C,EAAGq3C,WAAY70C,GAAK0D,EAAI6+B,GAAEC,UAAU12D,GAAIu0B,EAAGyB,GACxH,OAAO3B,EAAIhQ,GAAEuT,EAAG,CAACA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,KAAOr3B,EAEtE,IAAIra,GAAK4C,GAAE,CAAE45D,WAAYD,KACzB,SAASE,GAAG7oD,EAAGC,EAAIG,EAAGE,EAAGC,GAAI,GAC3B,IAAIyC,EAAI,CAAE6G,EAAGM,GAAEnK,EAAG,IAAK,sBAAwBiD,EAAI,CAAEo3C,WAAYp6C,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGwoD,oBAAqBvoD,GAAK2C,EAAIoiC,GAAEC,UAAUp2D,GAAI6zB,EAAGC,GAC1I,MAAO,CAAEygC,OAAQxgC,EAAE,GAAI6lD,QAAS7lD,EAAE,IAEpC,IAAI5W,GAAK0C,GAAE,CAAEg6D,mBAAoBH,KACjC,SAASI,GAAGjpD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAAYM,EAAI6J,GAAElK,EAAI,IAAK,YAC5CG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAgB,SAAZF,EAAEi9B,QAAqBj9B,EAAIthB,GAAGshB,EAAG,SAAUE,EAAIxhB,GAAGwhB,EAAG,UAAWogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjG,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUl2D,GAAIkxB,GAEzB,IAAI/T,GAAKwC,GAAE,CAAEk6D,SAAUD,KACvB,SAASE,GAAGnpD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,SAAW+C,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GAC5D,OAAOklC,GAAEC,UAAUh2D,GAAIgxB,EAAGwC,GAE5B,IAAIrW,GAAKsC,GAAE,CAAEo6D,MAAOD,KACpB,SAASnqD,GAAGgB,EAAGC,EAAK,WAClB,GAAI+0B,GAAGh1B,GAAW,cAAPC,EAAoB,CAC7B,IAAIK,EAAItB,GAAGgB,EAAG,WAAYO,EAAIvB,GAAGgB,EAAG,WACpC,OAAO1gB,GAAGghB,EAAGC,GAEf,IAAIH,EAAI00B,GAAGxC,GAAGtyB,GAAIC,GAClB,OAAOqlC,GAAEtG,WAAW5+B,EAAGJ,EAAGC,GAE5B,SAASrR,GAAGoR,EAAGC,EAAK,WAClB,GAAI+0B,GAAGh1B,GAAW,cAAPC,EAAoB,CAC7B,IAAIK,EAAI1R,GAAGoR,EAAG,WAAYO,EAAIvB,GAAGgB,EAAG,WACpC,OAAO1gB,GAAGghB,EAAGC,GAEf,IAAIH,EAAIy0B,GAAGvC,GAAGtyB,GAAIC,GAClB,OAAOqlC,GAAEtG,WAAW5+B,EAAGJ,EAAGC,GAE5B,SAASnT,GAAGkT,EAAGC,GAAMopD,SAAUjpD,EAAI,MAAS,IAC1C,GAAU,OAANA,GAAoB,OAANA,EAChB,MAAM,IAAI3/B,UAAa2/B,EAAH,8CACtB,QAAU,IAANJ,EACF,MAAO,GACT,IAAIM,EAAI6J,GAAEnK,EAAG,IAAK,WAAYA,aAAa/mB,GAAK+mB,EAAEq9B,MAAQ,WAC1D,QAAW,IAAPp9B,EACF,MAAO,CAACK,GACV,IAAIC,EAAI4J,GAAElK,EAAI,IAAK,WAAYA,aAAchnB,GAAKgnB,EAAGo9B,MAAQ,WAAYt6B,EAAIuvB,GAAGhyB,EAAEw9B,OAAQ96B,EAAIsvB,GAAG/xB,EAAEu9B,OACnG,MAAa,OAAN19B,GAAcE,EAAIpN,GAAEoN,EAAG,CAAC,GAAI,IAAKC,EAAIrN,GAAEqN,EAAG,EAAE,EAAG,IAAK,CAAC3U,GAAGgD,GAAG,CAACoU,EAAG,GAAI1C,EAAE+8B,OAAQ/8B,GAAI1U,GAAG2U,EAAG3R,GAAG,CAAC,EAAGmU,GAAIxC,EAAE88B,WAAa/8B,EAAIpN,GAAEoN,EAAG,EAAE,EAAG,IAAKC,EAAIrN,GAAEqN,EAAG,CAAC,GAAI,IAAK,CAAC3U,GAAG0U,EAAG1R,GAAG,CAAC,EAAGoU,GAAI1C,EAAE+8B,QAASzxC,GAAGgD,GAAG,CAACmU,EAAG,GAAIxC,EAAE88B,OAAQ98B,KAErN,SAAS+oD,GAAGtpD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAAYM,EAAI6J,GAAElK,EAAI,IAAK,YAC5CG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAgB,SAAZF,EAAEi9B,QAAqBj9B,EAAIthB,GAAGshB,EAAG,SAAUE,EAAIxhB,GAAGwhB,EAAG,UAAWogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjG,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAU51D,GAAI4wB,GAEzB,IAAIrT,GAAK8B,GAAE,CAAEu6D,SAAUD,KACvB,SAAS1kD,GAAG5E,EAAGC,EAAIG,GACjB7iC,GAAQ,YAAN6iC,GAAyB,cAANA,EAAmB,IAAM,+DAA+DA,MAC7G,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,aAClB,GAAe,IAAXM,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,kEAClBrlC,GAAE0iC,EAAGphC,SAAWyhC,EAAEs9B,KAAM,IAAM,wCAAwCt9B,EAAEs9B,aAAa39B,EAAGphC,WACxF,IAAI0hC,EAAU,YAANH,EAAkB,EAAI,EAC9B,IAAK,IAAI6C,EAAI,EAAGA,EAAI3C,EAAEs9B,KAAM36B,IAC1B1lC,GAAmB,IAAjB0iC,EAAGgD,GAAGpkC,OAAc,IAAM,yDAA0DtB,GAAE0iC,EAAGgD,GAAG,IAAM,GAAKhD,EAAGgD,GAAG,IAAM3C,EAAEw9B,MAAM76B,GAAK1C,GAAKN,EAAGgD,GAAG,IAAM,GAAKhD,EAAGgD,GAAG,IAAM3C,EAAEw9B,MAAM76B,GAAK1C,EAAG,IAAM,wBAAwB0C,wCAAwC3C,EAAEw9B,MAAM76B,GAAK1C,uCAAuCD,EAAEw9B,SAClT,IAAI/6B,EAAI,CAAEymD,SAAUvpD,EAAIwpD,KAAMrpD,GAAK4C,EAAI,CAAE6G,EAAGvJ,GAC5C,OAAOglC,GAAEC,UAAU11D,GAAImzB,EAAGD,GAE5B,IAAI3V,GAAK4B,GAAE,CAAE06D,WAAY9kD,KACzB,SAAS+kD,GAAG3pD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,OAAQM,EAAI6J,GAAElK,EAAI,IAAK,QACxCG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GACf,IAAIC,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUx1D,GAAIwwB,GAEzB,IAAIjT,GAAK0B,GAAE,CAAE46D,KAAMD,KACnB,SAASE,GAAG7pD,EAAGC,EAAK,KAAMG,GAAI,GAC5BJ,EAAImK,GAAEnK,EAAG,IAAK,WACd,IAAIM,EAAI2yB,GAAGhzB,EAAID,EAAE89B,OAAQv9B,EAAI7T,GAAGsT,EAAGM,EAAGF,GAAI2C,EAAIxC,EAAEu9B,MAChD19B,IAAM2C,EAAIu/C,GAAG/hD,EAAEu9B,MAAOx9B,IACtB,IAAI0C,EAAIxK,GAAGc,GAAGxa,GAAGkhB,EAAG,WAAY9M,GAAEqN,EAAGwC,KAAME,EAAIvW,GAAGsW,EAAG1C,EAAGF,GACxD,MAAO,CAAE3T,KAAM8T,EAAGy7C,SAAU/4C,GAE9B,IAAIzV,GAAKwB,GAAE,CAAE86D,SAAUD,KACvB,SAASE,GAAG/pD,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI4J,GAAElK,EAAI,OAAQ,gBAAiB8C,EAAI0mC,GAAGrpC,EAAG,IAAK,gBAAiB4C,EAAIymC,GAAGnpC,EAAG,IAAK,gBAAiB2C,EAAI1C,EAAG2C,EAAI,GAClH,IAAK,IAAIuD,EAAI,EAAGA,EAAIzG,EAAEnhC,OAAQ4nC,IAAK,CACjC,IAAIC,EAAI1G,EAAEyG,GAAGxD,EAAGF,EAAE0D,GAAIzD,EAAEyD,IACxBvD,EAAEsH,KAAK9D,EAAE,IAAKxD,EAAEsH,KAAK9D,EAAE,IAAKzD,EAAIyD,EAAE,GAEpC,IAAItD,EAAI,GAAIyB,EAAI,GAChB,IAAK,IAAI4B,EAAI,EAAGA,EAAIvD,EAAErkC,OAAQ4nC,GAAK,EACjCrD,EAAEoH,KAAKtH,EAAEuD,IAAK5B,EAAE2F,KAAKtH,EAAEuD,EAAI,IAC7B,MAAO,CAACrD,EAAGyB,GAEb,IAAI/W,GAAKkB,GAAE,CAAEg7D,cAAeD,KAC5B,SAASE,GAAGjqD,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI4J,GAAEnK,EAAG,SAAU,eAAgB+C,EAAIxC,EAAEs9B,KAAM76B,EAAIzC,EAAEq9B,KACzD,GAAI76B,EAAI,EACN,MAAM,IAAIH,MAAM,+DAA+DG,MACjF,GAAIC,EAAI,EACN,MAAM,IAAIJ,MAAM,gDAAgDI,GAClE5C,EAAIA,GAAKsC,KAAKwK,SACd,IAAIhK,EAAI,CAAEgnD,OAAc,IAANlnD,EAAU9P,GAAEqN,EAAG,CAAC,GAAI,IAAMA,GAAK6C,EAAI,CAAE+mD,WAAYlqD,EAAImqD,KAAMhqD,EAAGiqD,WAAY/pD,GAAKuE,EAAIygC,GAAEC,UAAUp1D,GAAI+yB,EAAGE,GACxH,OAAa,IAANJ,EAAU9P,GAAE2R,EAAG,CAACA,EAAEg5B,OAASh5B,EAEpC,IAAI7W,GAAKgB,GAAE,CAAEs7D,aAAcL,KAC3B,SAASM,GAAGvqD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAAY,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,WAAY,sBAC9EG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GACnB,OAAOglC,GAAEC,UAAUx0D,GAAIwvB,GAEzB,IAAI/R,GAAKQ,GAAE,CAAEw7D,UAAWD,KACxB,SAASE,GAAGzqD,EAAGC,EAAIG,EAAI,EAAGE,EAAI,EAAGC,EAAI,SACnC,GAAIN,EAAK,EACP,MAAM,IAAI2C,MAAM,iDAAiD3C,GACnE,IAAI+C,EAAI,CAAE6hD,QAAS16C,GAAEnK,EAAG,UAAW,SAAU,UAAYiD,EAAI,CAAEo6B,MAAO98B,EAAGmqD,MAAOzqD,EAAI0qD,QAASvqD,EAAGwqD,SAAUtqD,GAC1G,OAAOglC,GAAEC,UAAUp0D,GAAI6xB,EAAGC,GAE5B,IAAIvU,GAAKM,GAAE,CAAE67D,QAASJ,KACtB,SAASK,GAAG9qD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,aACvB,OAAOslC,GAAEC,UAAUl0D,GAAI+uB,GAEzB,IAAItR,GAAKE,GAAE,CAAE+7D,UAAWD,KACxB,SAASE,GAAGhrD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,KAAM,gBAAiBM,EAAI6J,GAAElK,EAAI,KAAM,gBACpD1iC,GAAa,IAAX6iC,EAAEw9B,MAAyB,IAAXt9B,EAAEs9B,KAAY,IAAM,+DAA+Dx9B,EAAEw9B,YAAYt9B,EAAEs9B,SACrH,IAAIr9B,EAAIrN,GAAEkN,EAAG,EAAE,EAAG,IAAK2C,EAAI7P,GAAEoN,EAAG,CAAC,GAAI,IACrC,OAAO1U,GAAG2U,EAAGwC,GAEf,IAAI7T,GAAKF,GAAE,CAAEi8D,cAAeD,KAC5B,SAASE,GAAGlrD,EAAGC,EAAIG,EAAI,GACrB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,OAClB,GAAe,IAAXM,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,sDAClB,IAAIrC,EAAI,CAAEipD,SAAUvpD,EAAIkrD,cAAe/qD,GAAK2C,EAAI,CAAE8G,EAAGvJ,GACrD,OAAOglC,GAAEC,UAAU1zD,GAAIkxB,EAAGxC,GAE5B,IAAInR,GAAKJ,GAAE,CAAEo8D,KAAMF,KACnB,SAASG,GAAGrrD,EAAGC,EAAIG,EAAI,GACrB,OAAO7iC,GAAgB,IAAd0iC,EAAGphC,OAAc,IAAM,oDAAqDuwB,GAAG4Q,EAAG,CAACC,GAAKG,GAEnG,IAAI9Q,GAAKN,GAAE,CAAEs8D,OAAQD,KACrB,SAASE,GAAGvrD,EAAGC,EAAIG,EAAI,GACrB,OAAO7iC,GAAgB,IAAd0iC,EAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,OAAc,IAAM,yDAA0DuwB,GAAG4Q,EAAGC,EAAIG,GAElJ,IAAI5Q,GAAKR,GAAE,CAAEw8D,OAAQD,KACrB,SAASE,GAAGzrD,EAAGC,EAAIG,EAAI,GACrB,OAAO7iC,GAAgB,IAAd0iC,EAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,OAAc,IAAM,yDAA0DuwB,GAAG4Q,EAAGC,EAAIG,GAExK,IAAI1Q,GAAKV,GAAE,CAAE08D,OAAQD,KACrB,SAASE,GAAG3rD,EAAGC,EAAIG,EAAI,GACrB,OAAO7iC,GAAgB,IAAd0iC,EAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,QAAiC,IAAjBohC,EAAG,GAAGphC,OAAc,IAAM,yDAA0DuwB,GAAG4Q,EAAGC,EAAIG,GAE9L,IAAIxQ,GAAKZ,GAAE,CAAE48D,OAAQD,KACrB,SAASE,GAAG7rD,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,kBAClBziC,GAAE+iC,EAAEs9B,MAAQ,EAAI39B,EAAGphC,OAAQ,IAAM,cAAcyhC,EAAEs9B,sCAAsC39B,EAAGphC,UAAWtB,GAAE6iC,EAAEvhC,SAAWohC,EAAGphC,OAAQ,IAAM,qBAAqBuhC,EAAEvhC,wCAAwCohC,EAAGphC,UAAWtB,GAAE+iC,EAAEw9B,MAAMr/D,OAAO,CAACukC,EAAGC,EAAGC,IAAMA,EAAI,GAAKA,GAAKjD,EAAGphC,OAASmkC,IAAMC,EAAI7C,EAAE8C,EAAI,GAAG,GAAK9C,EAAE8C,EAAI,GAAG,IAAMjD,EAAGiD,EAAI,KAAO,EAAIF,GAAG,GAAO,IAAM,4BAA4B1C,EAAEw9B,MAAMnnC,MAAM,oBAAoByJ,EAAEqE,+CAA+CxE,EAAGwE,cACrc,IAAIlE,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAE24C,WAAYz7C,EAAIupD,SAAUppD,GAClD,OAAOklC,GAAEC,UAAU9uD,GAAI8pB,EAAGwC,GAE5B,IAAInL,GAAK5I,GAAE,CAAE88D,gBAAiBD,KAC9B,SAASE,GAAG/rD,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GACxB,MAALzC,IAAcA,EAAI,CAAC,EAAG,IAAU,MAALwC,IAAcA,EAAI,GAAU,IAANzC,IAAYA,EAAI,SACjE,IAAI2C,EAAIkH,GAAEnK,EAAG,IAAK,WAAYkD,EAAID,EAAGG,GAAI,EAC9B,IAAXH,EAAE26B,OAAex6B,GAAI,EAAMF,EAAIhQ,GAAE+P,EAAG,CAAC,EAAGA,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,MAAOvgE,GAAEw8E,GAAGh3C,EAAGxC,GAAI,IAAM,qEAAqEwC,oBAAoBxC,MAC1L,IAA2EmG,EAAvE7B,EAAIoyC,GAAG/zC,EAAE46B,MAAO79B,EAAI8C,EAAGxC,EAAGD,GAAImG,EAAI,CAAC5B,EAAE0zC,eAAgB1zC,EAAE2zC,eAC5C9xC,EAAT,SAANpG,EAAmB0rD,GAAG,CAACnnD,EAAEszC,aAActzC,EAAEuzC,aAAc3xC,GAAS,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IAC7E,IAAIE,EAAa,IAATF,EAAE,IAAqB,IAATA,EAAE,IAAWM,EAAG8D,GAAKohD,GAAG,CAACpnD,EAAEgzC,SAAUhzC,EAAEizC,SAAUrxC,EAAGC,GAAIoE,EAAInE,EAAIrG,EAAI,QAASuJ,EAAIlD,EAAIzD,EAAItL,GAAGsL,EAAGuD,EAAGM,GAAI2E,GAAW,QAANtL,EAAc,IAAM1jB,GAAGmtB,EAAG5J,EAAI8C,EAAG+H,EAAG9H,GAAK,IAAM9W,GAAG2d,EAAG5J,EAAI8C,EAAG+H,EAAG9H,MAAO2I,EAAIhF,EAAI+E,EAAI9tB,GAAG8tB,EAAGjF,EAAGoE,GAC5N,OAAOzH,EAAIlQ,GAAEyY,EAAG,CAACA,EAAEmyB,MAAM,GAAInyB,EAAEmyB,MAAM,GAAInyB,EAAEmyB,MAAM,KAAOnyB,EAE1D,SAASsgD,GAAGjsD,EAAGC,EAAIG,GACjB,IAAIE,EAAIF,EAAE8yB,IAAKruB,GAAMA,EAAE,IAAKtE,EAAIH,EAAE8yB,IAAKruB,GAAMA,EAAE,IAAK9B,EAAI/C,EAAEzgB,OAAO+gB,EAAGC,GAAIyC,EAAI/C,EAAGizB,IAAI,CAACruB,EAAG4B,KAAO5B,EAAI9B,EAAE0D,GAAK5B,GAAKA,GAAI5B,EAAI1C,EAAE2yB,IAAI,CAACruB,EAAG4B,IAAM5B,EAAI7B,EAAEyD,IAAKvD,EAAIjD,EAAGizB,IAAI,CAACruB,EAAG4B,IAAM,CAACnG,EAAEmG,GAAIxD,EAAEwD,KAAMrD,EAAInD,EAAGizB,IAAI,CAACruB,EAAG4B,IAAM,CAAC,EAAGzD,EAAEyD,KAChN,MAAO,CAACvD,EAAGE,GAEb,SAAS4oD,GAAGhsD,EAAGC,GACb,IAAIK,EAAIN,EAAEkzB,IAAI,CAAClwB,EAAGC,IAAMD,GAAKA,EAAI,IAAM/C,EAAGgD,GAAK,IAAIiwB,IAAKlwB,GAAMA,EAAI,GAAIzC,EAAID,EAAE4yB,IAAKlwB,GAAMN,KAAK7c,MAAMmd,EAAI,IAAKD,EAAIzC,EAAE4yB,IAAI,CAAClwB,EAAGC,IAAMD,EAAIzC,EAAE0C,IACrI,OAAO3C,EAAE4yB,IAAI,CAAClwB,EAAGC,IAAM,CAAC1C,EAAE0C,GAAIF,EAAEE,KAElC,IAAInT,GAAKd,GAAE,CAAEk9D,MAAOH,KACpB,SAASI,GAAGnsD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,SAAUM,EAAI6J,GAAElK,EAAI,QAAS,SAAUM,EAAI,CAAEsJ,EAAGzJ,EAAGylD,MAAOvlD,GAC5E,OAAOglC,GAAEC,UAAUpzD,GAAIouB,GAEzB,IAAIrQ,GAAKlB,GAAE,CAAEo9D,OAAQD,KACrB,SAASE,GAAGrsD,EAAGC,EAAK,KAAMG,GAAI,GAC5B,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,QACN,SAAZM,EAAE+8B,QAAqB/8B,EAAIxhB,GAAGwhB,EAAG,UACjC,IAAIC,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAE4yC,KAAM11C,EAAI21C,SAAUx1C,GAC5C,OAAOklC,GAAEC,UAAUlzD,GAAIkuB,EAAGwC,GAE5B,IAAIzS,GAAKtB,GAAE,CAAEs9D,MAAOD,KACpB,SAASE,GAAGvsD,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIP,EAAEkzB,IAAI,CAACruB,EAAG4B,IAAM0D,GAAEtF,EAAG,UAAU4B,EAAK,eAAgB,UAAW1D,EAAIoH,GAAElK,EAAI,oBAAqB,gBAAiB+C,EAAImH,GAAE/J,EAAG,UAAW,eAAgB,SAAU6C,EAAI,CAAEupD,mBAAoBjsD,EAAGksD,kBAAmB1pD,EAAG8hD,QAAS7hD,GAAKE,EAAI,CAAEwpD,iBAAkBpsD,GAAK8C,EAAIkiC,GAAEC,UAAU9yD,GAAIwwB,EAAGC,GAC1R,MAAO,CAAEypD,mBAAoBvpD,EAAEzM,MAAM,EAAGyM,EAAEvkC,OAAS,GAAI+tF,kBAAmBxpD,EAAEA,EAAEvkC,OAAS,IAEzF,IAAI6xB,GAAK1B,GAAE,CAAE69D,cAAeN,KAC5B,SAASO,GAAG9sD,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,SAAU,eAAgBO,EAAI4J,GAAElK,EAAI,SAAU,cAAeK,EAAE+8B,OAAQt6B,EAAIoH,GAAE/J,EAAG,SAAU,cAAeE,EAAE+8B,OAAQr6B,EAAI,CAAE+pD,OAAQzsD,EAAG0sD,OAAQzsD,EAAG0sD,OAAQlqD,GAAKE,EAAIqiC,GAAEC,UAAU5yD,GAAIqwB,GAC7L,MAAO,CAAEkqD,eAAgBjqD,EAAE,GAAIkqD,cAAelqD,EAAE,IAElD,IAAIrS,GAAK5B,GAAE,CAAEo+D,aAAcN,KAC3B,SAASO,GAAGrtD,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAIoH,GAAEnK,EAAG,QAAS,uBAAwB,SAAUgD,EAAImH,GAAElK,EAAI,SAAU,wBAAyBgD,EAAIkH,GAAE/J,EAAG,eAAgB,uBAAwB4C,EAAEq6B,OAAQn6B,EAAI5C,EAAE4yB,IAAI,CAACzsB,EAAGC,IAAMyD,GAAE1D,EAAG,UAAUC,EAAK,uBAAwB,UAAWtD,EAAI,CAAE06B,MAAO/6B,EAAGtlC,OAAQulC,EAAGsqD,aAAcrqD,EAAGsqD,oBAAqBrqD,GAAK2B,EAAI,CAAE2oD,kBAAmBjtD,GAC1U,OAAO+kC,GAAEC,UAAU1yD,GAAIuwB,EAAGyB,GAE5B,IAAI/T,GAAK9B,GAAE,CAAEy+D,sBAAuBJ,KACpC,SAASK,GAAG1tD,EAAGC,EAAIG,GACjB40B,GAAGh1B,GACH,IAAIM,EAAIgyB,GAAGtyB,GAAIO,EAAI,KACnB,GAAS,MAALH,GAAmB,YAANA,EACfG,EAAI,IAAIuU,aAAaxU,QAClB,GAAU,UAANF,EACPG,EAAI,IAAIgU,WAAWjU,OAChB,IAAU,SAANF,EAGP,MAAM,IAAIwC,MAAM,qBAAqBxC,GAFrCG,EAAI,IAAIW,WAAWZ,GAGrB,IAAK,IAAIyC,EAAI,EAAGA,EAAIzC,EAAGyC,IACrBxC,EAAEwC,GAAK9C,IACT,OAAOqlC,GAAEtG,WAAWz+B,EAAGP,EAAGI,GAE5B,IAAIpP,GAAKhC,GAAE,CAAE2+D,MAAOD,KAChBE,GAAKptD,EAAG4M,KACRlS,GAAK,GACTiF,EAAGjF,GAAI,CAAE2yD,qBAAsB,IAAMC,GAAIC,mBAAoB,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,wBAAyB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,mBAAoB,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,YAAa,IAAMC,KAC5T,IAAIC,GAAK,KACLrB,GAAK,GACT,SAASQ,GAAGtuD,EAAGC,EAAIG,GACjB,OAAY,MAALA,IAAcA,EAAI8uD,MAAOE,GAAGpvD,EAAGC,EAAI,CAACK,EAAGC,IAAM8uD,GAAG/uD,EAAGC,EAAGH,IAE/D,SAAS8uD,KACP,OAAsC,KAA/B5pB,GAAEzoD,QAAQ60C,iBAA0By9B,GAAKrB,GAElD,SAASsB,GAAGpvD,EAAGC,EAAIG,GACjB,IAAIE,GAAI,EACR,IAAK45B,GAAGl6B,IAAMk6B,GAAGj6B,MAASK,GAAI,GAAQ45B,GAAGl6B,IAAMk6B,GAAGj6B,KAAQK,GAAI,GAAOA,EAAG,CACtE,IAAI0C,EAAIhD,EAAEs0B,YAAYp0D,KAAM+iC,EAAIhD,EAAGq0B,YAAYp0D,KAC/C,GAAI8iC,IAAMC,EACR,MAAM,IAAIL,MAAM,yCAAyCI,gBAAgBC,KAE7E,GAAImwB,MAAMC,QAAQrzB,IAAMozB,MAAMC,QAAQpzB,GAAK,CACzC,IAAI+C,EAAImmC,GAAGnpC,GAAIiD,EAAIkmC,GAAGlpC,GACtB,IAAKoyB,GAAGrvB,EAAGC,GACT,MAAM,IAAIL,MAAM,0CAA0CI,kBAAkBC,MAEhF,IAAI1C,EAAI25B,GAAGl6B,GAAKA,EAAIi5B,GAAGj5B,GAAI+C,EAAIm3B,GAAGj6B,GAAMA,EAAKg5B,GAAGh5B,GAChD,GAAIM,EAAE1hC,SAAWkkC,EAAElkC,OACjB,MAAM,IAAI+jC,MAAM,yCAAyCrC,EAAE1hC,uBAAuBkkC,EAAElkC,sBAC5E0hC,iBACAwC,MACV,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAElkC,SAAUmkC,EAAG,CACjC,IAAIC,EAAI1C,EAAEyC,GAAIE,EAAIH,EAAEC,GACpB,IAAK5C,EAAE6C,EAAGC,GACR,MAAM,IAAIN,MAAM,yBAAyBI,QAAQC,eAAeD,QAAQE,iBAClE3C,iBACAwC,MAEO,oBAAVusD,QAAyBA,SAASC,UAE3C,SAASX,GAAG5uD,EAAGC,GACbD,IAAIuX,KAAK,IAAMtX,EAAGuvD,OAAQ,IAAMvvD,KAAwB,oBAAVqvD,QAAyBA,SAASC,UAElF,SAASf,GAAGxuD,EAAGC,GACb,IAAIG,EAAiB,iBAANH,GAA+B,iBAANA,GAA+B,kBAANA,EAAkB,CAACA,GAAMA,EAC1F,OAAO+zB,GAAGh0B,IAAMg0B,GAAGh0B,EAAE,KAAOg0B,GAAG/zB,IAAO+zB,GAAG/zB,EAAG,IAAMmvD,GAAGpvD,EAAGI,EAAG,CAACE,EAAGC,IAAMD,GAAKC,GAAK6uD,GAAGpvD,EAAGC,EAAI,CAACK,EAAGC,IAAM8uD,GAAG/uD,EAAGC,EAAG,IAE9G,SAASmuD,GAAG1uD,EAAGC,EAAIG,GACjB,GAAS,MAALA,IAAcA,EAAI8uD,OAAQG,GAAGrvD,EAAGC,EAAIG,GACtC,MAAM,IAAIwC,MAAM,8BAA8B5C,mBAAmBC,KAClD,oBAAVqvD,QAAyBA,SAASC,UAE3C,SAASF,GAAGrvD,EAAGC,EAAIG,GACjB,OAAQzX,SAASqX,KAAOrX,SAASsX,MAAelX,MAAMiX,IAAMjX,MAAMkX,IAAOyC,KAAK5nB,IAAIklB,EAAIC,GAAMG,GAE9F,SAAS0uD,GAAG9uD,EAAGC,EAAIG,GACjB,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAC5B,GAAIN,EAAEM,GAAKL,GAAMD,EAAEM,GAAKF,EACtB,MAAM,IAAIwC,MAAM,sBAAsB5C,EAAEM,WAAWL,YAAaG,KAEtE,SAASguD,GAAGpuD,EAAGC,GACb,IAAIG,EAAI,IAAI0U,aAAa9U,GAAIM,EAAI,IAAIwU,aAAa7U,GAClD,GAAIG,EAAEvhC,SAAWyhC,EAAEzhC,OACjB,MAAM,IAAI+jC,MAAM,wCAAwCtC,EAAEzhC,sBAAsBuhC,EAAEvhC,UACpF,IAAK,IAAI0hC,EAAI,EAAGA,EAAID,EAAEzhC,OAAQ0hC,IAC5B,GAAIH,EAAEG,KAAOD,EAAEC,GACb,MAAM,IAAIqC,MAAM,iCAAiCrC,WAAWD,EAAEC,cAAcH,EAAEG,cAEpF,SAAS2tD,GAAGluD,GACV,IAAK,IAAIC,EAAK,EAAGA,EAAKD,EAAEnhC,OAAQohC,IAAM,CACpC,IAAIG,EAAIJ,EAAEC,GACVmzB,MAAMC,QAAQjzB,GAAK8tD,GAAG9tD,GAAKJ,EAAEC,GAAM24B,GAAGx4B,GAExC,OAAOJ,EAET,SAASguD,GAAGhuD,GACV,IAAIC,EAAKsO,SAASkhD,cAAc,SAChC,MAAO,gBAAiBxvD,IAAOA,EAAGyvD,aAAc,GAAOzvD,EAAG0vD,OAAQ,EAAM1vD,EAAG2vD,MAAO,EAAM3vD,EAAG4vD,MAAMC,SAAW,QAAS7vD,EAAG4vD,MAAM/xF,KAAO,MAAOmiC,EAAG4vD,MAAMtW,IAAM,MAAOt5C,EAAG8vD,QAAU,OAAQ9vD,EAAG+vD,YAAYhwD,GAAI,IAAImP,QAAS/O,IACrNH,EAAGuzC,iBAAiB,aAAelzC,GAAMF,EAAEH,IAAMA,EAAG4S,SAGxDi4B,eAAekkB,GAAGhvD,SACVA,EAAE+uD,OAAQ,8BAA+B/uD,SAAW,IAAImP,QAASlP,IACrED,EAAEiwD,0BAA0BhwD,KAGhC,IAAIiwD,GAAK,MACP,YAAYjwD,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAK8tB,KAAOwT,EAAIthC,KAAKwxF,OAAS/vD,EAAGzhC,KAAK0+D,MAAQ/8B,EAAG3hC,KAAKyxF,QAAUC,IAAK1xF,KAAK2xF,UAAY/vD,EAAG5hC,KAAK2xF,YAAc3xF,KAAK4xF,MAAQ5xF,KAAK8tB,KAAqB,EAAd9tB,KAAKwxF,OAAYxxF,KAAK6xF,MAAQ7xF,KAAK8tB,KAAqB,EAAd9tB,KAAKwxF,QACpL,IAAIntD,EAAID,GAAKL,KAAKwK,SAClBvuC,KAAKuuC,OAAS0gD,GAAGpkD,KAAKxG,EAAEyB,YAE1B,YACE,IAAK1b,MAAMpqB,KAAKyxF,SAAU,CACxB,IAAI7vD,EAAI5hC,KAAKyxF,QACb,OAAOzxF,KAAKyxF,QAAUC,IAAK9vD,EAE7B,IAAIN,EAAIG,EAAGE,GAAI,EACf,MAAQA,GAAK,CACX,IAAIC,EAAGwC,EAAGC,EACV,GACEzC,EAAI,EAAI5hC,KAAKuuC,SAAW,EAAGnK,EAAI,EAAIpkC,KAAKuuC,SAAW,EAAGlK,EAAIzC,EAAIA,EAAIwC,EAAIA,QACjEC,GAAK,GAAW,IAANA,GACjB,IAAIC,EAAIP,KAAKrK,MAAM,EAAIqK,KAAKrY,IAAI2Y,GAAKA,GACrC/C,EAAKthC,KAAK8tB,KAAO9tB,KAAKwxF,OAAS5vD,EAAI0C,EAAG7C,EAAIzhC,KAAK8tB,KAAO9tB,KAAKwxF,OAASptD,EAAIE,IAAKtkC,KAAK2xF,WAAa3xF,KAAK8xF,iBAAiBxwD,MAASK,GAAI,GAEpI,QAAS3hC,KAAK2xF,WAAa3xF,KAAK8xF,iBAAiBrwD,MAAQzhC,KAAKyxF,QAAUzxF,KAAK+xF,aAAatwD,IAAKzhC,KAAK+xF,aAAazwD,GAEnH,aAAaA,GACX,OAAqB,MAAdthC,KAAK0+D,OAAgC,YAAf1+D,KAAK0+D,MAAsBp9B,EAAKyC,KAAK3O,MAAMkM,GAE1E,iBAAiBA,GACf,OAAOA,GAAMthC,KAAK4xF,OAAStwD,GAAMthC,KAAK6xF,QAGtCG,GAAK,MACP,YAAY1wD,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKknF,MAAQ5lD,EAAIthC,KAAK6nF,KAAO,EAAIpmD,EAAGzhC,KAAK0+D,MAAQ/8B,EACjD,IAAIyC,EAAIxC,GAAKmC,KAAKwK,SAClBvuC,KAAKiyF,MAAQhD,GAAGpkD,KAAKzG,EAAE0B,YAAa9lC,KAAKkyF,MAAQ,IAAIX,GAAG,EAAG,EAAG5vD,GAAG,EAAO3hC,KAAKiyF,SAAmBjyF,KAAKgoC,EAAd1G,EAAK,EAAaA,EAAK,EAAI,EAAaA,EAAK,EAAI,EAAGthC,KAAKkmC,EAAI,EAAInC,KAAKrK,KAAK,EAAI15B,KAAKgoC,GAE7K,YACE,IAAI1G,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EACpB,OAAW,CACT,GACEzC,EAAI5hC,KAAKkyF,MAAMC,YAAa9tD,EAAI,EAAIrkC,KAAKkmC,EAAItE,QACxCyC,GAAK,GACZ,GAAIA,GAAKA,EAAIA,EAAG/C,EAAKM,EAAIA,EAAGH,EAAI,EAAI,KAAQH,EAAKA,EAAIK,EAAI,GAAML,EAAKthC,KAAKgoC,GAAK,EAAI3D,EAAIN,KAAKrY,IAAI2Y,IAAKD,EAAIpkC,KAAKiyF,QAAS7tD,EAAI3C,GAAKsC,KAAKrY,IAAI0Y,GAAKzC,EAC3I,MAEJ,OAAO0C,EAAI,EAAIrkC,KAAK6nF,KAAO7nF,KAAKgoC,EAAI3D,EAAGrkC,KAAKknF,MAAQ,IAAM7iD,GAAKN,KAAK3S,IAAIpxB,KAAKiyF,QAAS,EAAIjyF,KAAKknF,QAASlnF,KAAK+xF,aAAa1tD,GAE5H,aAAa/C,GACX,MAAsB,YAAfthC,KAAK0+D,MAAsBp9B,EAAKyC,KAAK3O,MAAMkM,KAGlD8wD,GAAK,MACP,YAAY9wD,EAAK,EAAGG,EAAI,EAAGE,EAAGC,GAC5B,GAAI5hC,KAAKqyF,eAAiB,IAAoB,MAAdryF,KAAK0+D,OAAgC,YAAf1+D,KAAK0+D,MAAqB1+D,KAAKouB,IAAMkT,EAAIthC,KAAKgzB,MAAQyO,EAAIH,EAAIthC,KAAK0+D,MAAQ/8B,EAAQ,MAALC,IAAcA,EAAImC,KAAKwK,UAAuB,iBAAL3M,IAAkBA,EAAIA,EAAEkE,aAAc9lC,KAAKqyF,kBAAoBryF,KAAKgzB,OAAS,EACxP,MAAM,IAAIiR,MAAM,0BAA0B3C,OAAQG,iCACpDzhC,KAAKuuC,OAAS0gD,GAAGpkD,KAAKjJ,GAExB,aAAaN,GACX,OAAOthC,KAAKqyF,iBAAmB/wD,EAAKyC,KAAK3O,MAAMkM,GAEjD,YACE,OAAOthC,KAAK+xF,aAAa/xF,KAAKouB,IAAMpuB,KAAKgzB,MAAQhzB,KAAKuuC,YAG1D,SAAS+jD,GAAGjxD,EAAGC,EAAIG,EAAI,EAAGE,EAAI,UAAWC,GACvC,GAAIy0B,GAAGh1B,GAAS,MAALI,IAAcA,EAAI,GAAS,MAALE,IAAcA,EAAI,WAAkB,YAANA,GAAyB,UAANA,EAChF,MAAM,IAAIsC,MAAM,yBAAyBtC,GAC3C,IAAIyC,EAAI,IAAI4tD,GAAG1wD,EAAIG,EAAGE,EAAGC,GAAIyC,EAAIpkB,GAAGohB,EAAGM,GACvC,IAAK,IAAI2C,EAAI,EAAGA,EAAID,EAAEvlC,OAAOoB,OAAQokC,IACnCD,EAAEvlC,OAAOwlC,GAAKF,EAAE+tD,YAClB,OAAO9tD,EAAEwhD,WAEX,IAAItzD,GAAKlC,GAAE,CAAEkiE,aAAcD,KAC3B,SAASE,GAAGnxD,EAAGC,EAAK,EAAGG,EAAI,EAAGE,EAAGC,GAC/B,GAAIy0B,GAAGh1B,GAAS,MAALM,GAAmB,SAANA,EACtB,MAAM,IAAIsC,MAAM,yBAAyBtC,GAC3C,IAAIyC,EAAI,IAAImtD,GAAGjwD,EAAIG,EAAGE,GAAG,EAAOC,GAAIyC,EAAIpkB,GAAGohB,EAAGM,GAC9C,IAAK,IAAI2C,EAAI,EAAGA,EAAID,EAAEvlC,OAAOoB,OAAQokC,IACnCD,EAAEvlC,OAAOwlC,GAAKF,EAAE+tD,YAClB,OAAO9tD,EAAEwhD,WAEX,IAAIpzD,GAAKpC,GAAE,CAAEoiE,cAAeD,KAC5B,SAASE,GAAGrxD,EAAGC,EAAIG,GACjB,GAAU,MAANH,GAAqB,SAAPA,EAChB,MAAM,IAAI2C,MAAM,yBAAyB3C,GAC3C,OAAO7O,GAAG4O,EAAG,EAAG,EAAGC,EAAIG,GAEzB,IAAI9O,GAAKtC,GAAE,CAAEsiE,sBAAuBD,KACpC,SAASE,GAAGvxD,EAAGC,EAAK,EAAGG,EAAI,EAAGE,EAAI,UAAWC,GAC3Cy0B,GAAGh1B,GACH,IAAI+C,EAAInkB,GAAGohB,EAAGM,GAAI0C,EAAI,IAAI+tD,GAAG9wD,EAAIG,EAAG,KAAMG,GAC1C,IAAK,IAAI0C,EAAI,EAAGA,EAAIF,EAAEtlC,OAAOoB,OAAQokC,IACnCF,EAAEtlC,OAAOwlC,GAAKD,EAAE8tD,YAClB,OAAO/tD,EAAEyhD,WAEX,IAAIhzD,GAAKxC,GAAE,CAAEwiE,eAAgBD,KAC7B,SAASE,GAAGzxD,EAAGC,EAAIG,EAAGE,GACpB,OAAO9O,GAAGwO,EAAGC,EAAIG,EAAG,QAASE,GAE/B,IAAI5O,GAAK1C,GAAE,CAAE0iE,kBAAmBD,KAChC,SAAS7/D,GAAGoO,EAAGC,EAAIG,EAAI,EAAGE,EAAI,WAC5B,GAAU,IAANF,EACF,MAAM,IAAIwC,MAAM,8BAClB,IAAIrC,EAAI,CAAEiqC,MAAOxqC,EAAGmmD,KAAMlmD,EAAIlH,KAAMqH,EAAGi9B,MAAO/8B,GAC9C,OAAOglC,GAAEC,UAAUxyD,GAAI,GAAIwtB,GAE7B,SAASoxD,GAAG3xD,GACV,IAAII,EAAI,CAAE4jD,MAAO75C,GAAEnK,EAAG,QAAS,SAC/B,OAAOslC,GAAEC,UAAUpyD,GAAIitB,GAEzB,IAAIpO,GAAKhD,GAAE,CAAE4iE,MAAOD,KACpB,SAASE,GAAG7xD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,eACvB,OAAOslC,GAAEC,UAAUhyD,GAAI6sB,GAEzB,IAAIlO,GAAKlD,GAAE,CAAE8iE,YAAaD,KAC1B,SAASE,GAAG/xD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAU5xD,GAAIysB,GAEzB,IAAIxN,GAAK5D,GAAE,CAAEgjE,MAAOD,KACpB,SAASE,GAAGjyD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAU1xD,GAAIusB,GAEzB,IAAItN,GAAK9D,GAAE,CAAEkjE,OAAQD,KACrB,SAASE,GAAGnyD,EAAGC,GACb,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,YAAcO,EAAI,CAAE6xD,KAAMnyD,GACjD,OAAOqlC,GAAEC,UAAU9wD,GAAI6rB,EAAGC,GAE5B,IAAInN,GAAKpE,GAAE,CAAEqjE,SAAUF,KACvB,SAASG,GAAGtyD,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,IAAK,WACnB,OAAOziC,GAAc,IAAZ0iC,EAAG29B,KAAY,IAAM,qDAAqD39B,EAAG29B,SAAUxqC,GAAG6M,EAAI,GAEzG,IAAI3M,GAAKtE,GAAE,CAAEujE,WAAYD,KACzB,SAASE,GAAGxyD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,qDAAqDx9B,EAAEw9B,SAAUxqC,GAAGgN,EAAGH,GAEtG,IAAIzM,GAAKxE,GAAE,CAAEyjE,WAAYD,KACzB,SAASE,GAAG1yD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,qDAAqDx9B,EAAEw9B,SAAUxqC,GAAGgN,EAAGH,GAEtG,IAAIvM,GAAK1E,GAAE,CAAE2jE,WAAYD,KACzB,SAASE,GAAG5yD,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,qDAAqDx9B,EAAEw9B,SAAUxqC,GAAGgN,EAAGH,GAEtG,IAAIrM,GAAK5E,GAAE,CAAE6jE,WAAYD,KACzB,SAASE,GAAG9yD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,UACvB,OAAOslC,GAAEC,UAAU1wD,GAAIurB,GAEzB,IAAIpM,GAAKhF,GAAE,CAAE+jE,OAAQD,KACrB,SAASE,GAAGhzD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,QAAS,YAChC,OAAOslC,GAAEC,UAAUxwD,GAAIqrB,GAEzB,IAAIlM,GAAKlF,GAAE,CAAEikE,OAAQD,KACrB,SAASE,GAAGlzD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAU9vD,GAAI2qB,GAEzB,IAAIxL,GAAK5F,GAAE,CAAEmkE,MAAOD,KACpB,SAASE,GAAGpzD,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,CAAC,EAAG,GAAIC,EAAI,QAC1C,IAAIC,EAAIkH,GAAEnK,EAAG,IAAK,mBAAoBkD,EAAIiH,GAAElK,EAAI,kBAAmB,mBAAoBmD,EAAI+G,GAAE/J,EAAG,kBAAmB,mBAAoByE,EAAI5B,EAAGwD,GAAI,EAClJ,GAAe,IAAXxD,EAAE26B,OAAen3B,GAAI,EAAM5B,EAAI3R,GAAE+P,EAAG,CAAC,EAAGA,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,GAAI76B,EAAE66B,MAAM,MAAa,SAAN96B,EACjF,MAAM,IAAIJ,MAAM,sFAClBrlC,GAAa,IAAXsnC,EAAE+4B,KAAY,IAAM,gEAAgE/4B,EAAE+4B,SAAUrgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,2EAA2E16B,EAAE06B,SAAUrgE,GAAa,IAAX6lC,EAAEw6B,KAAY,IAAM,2EAA2E16B,EAAE06B,SAAUrgE,GAAiB,IAAf6lC,EAAE06B,MAAM,GAAU,IAAM,yFAAyF16B,EAAE06B,MAAM,OAAQvgE,GAAiB,IAAf6lC,EAAE06B,MAAM,GAAU,IAAM,yFAAyF16B,EAAE06B,MAAM,OAC1jB,IAAIp3B,EAAIxD,EAAE46B,MAAM,GAAIn3B,EAAIzD,EAAE46B,MAAM,GAChCvgE,GAAE6lC,EAAE06B,MAAM,KAAOp3B,EAAIC,EAAG,IAAM,6EAA6ED,EAAIC,cAAcvD,EAAE06B,MAAM,OACrI,IAAI/2B,EAAI/kB,GAAG6iB,EAAG3B,EAAG5C,EAAGC,EAAGyC,EAAGD,GAAI+H,EAAI1qB,GAAG2mB,EAAG3D,EAAG,EAAG,QAASJ,GACvD,OAAOyD,EAAIvT,GAAE4X,EAAG,CAACA,EAAEgzB,MAAM,GAAIhzB,EAAEgzB,MAAM,GAAIhzB,EAAEgzB,MAAM,KAAOhzB,EAE1D,IAAIhW,GAAK9F,GAAE,CAAEqkE,iBAAkBD,KAC/BtoB,eAAewoB,GAAGtzD,EAAGC,GACnB,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,aAAcM,EAAI6J,GAAElK,EAAI,IAAK,aAC/C1iC,GAAE6iC,EAAEi9B,QAAU/8B,EAAE+8B,MAAO,IAAM,kDAAkDj9B,EAAEi9B,iBAAiB/8B,EAAE+8B,WAAY9/D,GAAa,IAAX6iC,EAAEw9B,KAAY,IAAM,qCAAqCx9B,EAAE09B,WAAYvgE,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,qCAAqCt9B,EAAEw9B,WACtP,IAAIv9B,QAAUH,EAAEmb,OAAQxY,QAAUzC,EAAEib,OAAQvY,EAAI,IAAIo/B,IAAIr/B,GAAIE,EAAI,EAChE,IAAK,IAAI4B,EAAI,EAAGA,EAAItE,EAAE1hC,OAAQgmC,IAC5B7B,EAAExiC,IAAI+/B,EAAEsE,KAAO5B,IACjB,IAAIC,EAAI,IAAI/pB,GAAG,CAAC8pB,GAAI7C,EAAEi9B,OAAQj6B,EAAI,IAAIjqB,GAAG,CAAC8pB,GAAI,SAC9C,IAAK,IAAI4B,EAAI,EAAG4B,EAAI,EAAG5B,EAAItE,EAAE1hC,OAAQgmC,IACnC7B,EAAExiC,IAAI+/B,EAAEsE,MAAQ3B,EAAEzlC,OAAOgpC,GAAKlG,EAAEsE,GAAIzB,EAAE3lC,OAAOgpC,GAAK5B,EAAG4B,KACvD,MAAO,CAACvD,EAAEshD,WAAYphD,EAAEohD,YAE1B,IAAI1uD,GAAKw9D,GACT,SAASC,GAAGvzD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAU1vD,GAAIuqB,GAEzB,IAAIhK,GAAKpH,GAAE,CAAEwkE,MAAOD,KACpB,SAASE,GAAGzzD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,YAC9B,OAAOslC,GAAEC,UAAUxvD,GAAIqqB,GAEzB,IAAI5J,GAAKxH,GAAE,CAAE0kE,KAAMD,KACnB,SAASE,GAAG3zD,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,SACvB,OAAOslC,GAAEC,UAAUtvD,GAAImqB,GAEzB,IAAI1J,GAAK1H,GAAE,CAAE4kE,MAAOD,KACpB,SAASE,GAAG7zD,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,mDAAmDt9B,EAAEs9B,eAAgBhnC,GAAG0J,EAAG,CAACL,GAAK,CAACG,IAEjH,IAAItJ,GAAK9H,GAAE,CAAE8kE,SAAUD,KACvB,SAASE,GAAG/zD,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,mDAAmDt9B,EAAEs9B,eAAgBhnC,GAAG0J,EAAGL,EAAIG,GAE9G,IAAIpJ,GAAKhI,GAAE,CAAEglE,SAAUD,KACvB,SAASE,GAAGj0D,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,mDAAmDt9B,EAAEs9B,eAAgBhnC,GAAG0J,EAAGL,EAAIG,GAE9G,IAAIlJ,GAAKlI,GAAE,CAAEklE,SAAUD,KACvB,SAASE,GAAGn0D,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,WAClB,OAAOziC,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,mDAAmDt9B,EAAEs9B,eAAgBhnC,GAAG0J,EAAGL,EAAIG,GAE9G,IAAIhJ,GAAKpI,GAAE,CAAEolE,SAAUD,KACvB,SAASE,GAAGr0D,EAAGC,GAAK,GAClB,IAAIG,EAAI+J,GAAEnK,EAAG,SAAU,UAAW,WAClC,IAAY,IAARC,IAAcA,EAAKG,EAAEw9B,KAAO,GAAI39B,IAAOG,EAAEw9B,KAAO,EAClD,MAAMh7B,MAAM,4EAA4ExC,EAAEw9B,oBAAoB39B,KAChH,IAAIK,EAAI,CAAE4pD,OAAQ9pD,GAAKG,EAAI,CAAE0jD,IAAKhkD,GAClC,OAAOqlC,GAAEC,UAAUlvD,GAAIiqB,EAAGC,GAE5B,IAAI/I,GAAKxI,GAAE,CAAEslE,SAAUD,KACvB,SAASE,GAAGv0D,GACVziC,GAAc,cAAZyiC,EAAEq9B,MAAuB,IAAM,6DAA6Dr9B,EAAEq9B,UAChG,IAAIp9B,EAAK,CAAE+jD,MAAOhkD,GAClB,OAAOslC,GAAEC,UAAU57D,GAAIs2B,GAEzB,IAAI3a,GAAK0J,GAAE,CAAEwlE,KAAMD,KACnB,SAASE,GAAGz0D,GACVziC,GAAc,cAAZyiC,EAAEq9B,MAAuB,IAAM,8DAA8Dr9B,EAAEq9B,UACjG,IAAIp9B,EAAK,CAAE+jD,MAAOhkD,GAClB,OAAOslC,GAAEC,UAAU95D,GAAIw0B,GAEzB,IAAIjY,GAAKgH,GAAE,CAAE0lE,MAAOD,KACpB,SAASE,GAAG30D,GACV,IAAuDM,EAAnDL,EAAKD,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,GAAIuhC,EAAIJ,EAAE69B,KAAO59B,EACnD,GAAIA,GAAM,EAAG,CACX,IAAIM,EAAIrN,GAAE8M,EAAG,CAACI,EAAGH,IACjBK,EAAItY,GAAGuY,OACF,CACL,IAAIA,EAAI,CAACH,EAAG,GAAKH,EAAK,IAAK8C,EAAI7P,GAAElB,GAAGgO,GAAI,CAACI,EAAGH,IAAM+C,EAAI9P,GAAEhL,GAAG8X,GAAI,CAACI,EAAGH,IAAMgD,EAAI7P,GAAGwD,GAAGmM,EAAG,CAAC,EAAG,GAAI,CAAC3C,EAAGH,EAAK,IAAK,GAAIiD,EAAItV,GAAGwF,GAAGwD,GAAGoM,EAAG,CAAC,EAAG,GAAI,CAAC5C,EAAGH,EAAK,IAAK,GAAI7L,IAAI,IAAKgP,EAAI5jB,GAAG,CAACujB,EAAGE,GAAI,GAAI4B,EAAIrlB,GAAG,CAACwjB,EAAGE,GAAI,GAAIuD,EAAIvT,GAAE5T,GAAG8jB,EAAGyB,GAAI,CAACtE,EAAE,GAAIA,EAAE,KAClOD,EAAItY,GAAGye,GAET,GAAInG,EAAItO,GAAGsO,GAAe,IAAXN,EAAE49B,MAA6B,IAAf59B,EAAE89B,MAAM,GAAU,CAC/C,IAAIv9B,EAAID,EAAGyC,EAAI/C,EAAE89B,MAAM,GACvBx9B,EAAIpN,GAAEoN,EAAG,CAACyC,EAAGzC,EAAEw9B,MAAM,GAAK/6B,EAAGzC,EAAEw9B,MAAM,KAAMv9B,EAAE5d,UAE/C,OAAO2d,EAET,IAAI5X,GAAKsG,GAAE,CAAE4lE,OAAQD,KACrB,SAASE,GAAG70D,EAAGC,EAAIG,EAAI,GACrB,IAAIG,EAAI,CAAEsJ,EAAGM,GAAEnK,EAAG,IAAK,UAAY+C,EAAI,CAAE+xD,gBAAiB70D,EAAI01C,KAAMv1C,GACpE,OAAOklC,GAAEC,UAAUluD,GAAIkpB,EAAGwC,GAE5B,IAAI3K,GAAKpJ,GAAE,CAAE+lE,OAAQF,KACrB,SAASG,GAAGh1D,EAAGC,GACb1iC,GAAc,YAAZyiC,EAAEq9B,MAAqB,IAAM,mDAAmDr9B,EAAEq9B,OACpF,IAAqD98B,EAAjDH,EAAIJ,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,GAAIyhC,EAAIN,EAAE69B,KAAOz9B,EAClD,GAAU,MAANH,GAAcA,EAAKG,EAAG,CACxB,IAAI2G,EAAI/G,EAAE89B,MAAM5K,IAAKpoB,GAAM,GAAID,EAAI7K,EAAE89B,MAAM5K,IAAKpoB,GAAMA,GACtDD,EAAE7K,EAAE89B,MAAMj/D,OAAS,GAAKohC,EAAIM,EAAI3J,GAAGoJ,EAAG+G,EAAG8D,GAAIzK,EAAIH,OAC5C,GAAU,MAANA,GAAcA,EAAKG,EAAG,CAC/B,IAAI2G,EAAI/G,EAAE89B,MAAM5K,IAAKroB,GAAMA,GAC3B9D,EAAE/G,EAAE89B,MAAMj/D,OAAS,GAAKohC,EAAKG,EAAGG,EAAI/gB,GAAG,CAACwgB,EAAGhB,GAAG+H,IAAK/G,EAAE89B,MAAMj/D,OAAS,GAAIuhC,EAAIH,OAE5EM,EAAIP,EACN,IAAI+C,EAAI7D,GAAGqB,GAAIyC,EAAI9P,GAAE5T,GAAGihB,EAAGwC,GAAI,CAACzC,EAAGF,IAAK6C,EAAI3d,GAAG0d,GAAIE,EAAIR,KAAK7c,MAAMua,EAAI,GAAK,EAAGgD,EAAIpR,GAAGiR,GAAI4B,EAAI3c,GAAG+a,GAAIwD,EAAIrO,GAAGgL,EAAG,CAACF,EAAG9C,EAAI8C,GAAIE,EAAE06B,MAAMj/D,OAAS,GAAI6nC,EAAItO,GAAGyM,EAAG,CAAC3B,EAAG9C,EAAI8C,GAAI2B,EAAEi5B,MAAMj/D,OAAS,GAAI8nC,EAAIpG,EAAEu9B,MAAMnnC,QACtM,OAAOgQ,EAAEpG,EAAEu9B,MAAMj/D,OAAS,GAAKqkC,EAAGhQ,GAAE5T,GAAGmnB,EAAE,GAAIC,EAAE,IAAKC,GAEtD,IAAI7S,GAAK9E,GAAE,CAAEimE,MAAOD,KACpB,SAASE,GAAGl1D,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,qBAAsBM,EAAI6J,GAAElK,EAAI,IAAK,sBACtDG,EAAGE,GAAK8gC,GAAGhhC,EAAGE,GAAIogD,GAAGtgD,EAAE09B,MAAOx9B,EAAEw9B,OACjC,IAAIv9B,EAAI,CAAEyC,EAAG5C,EAAGgL,EAAG9K,GAAKyC,EAAI,GAC5B,OAAOuiC,GAAEC,UAAU5tD,GAAI4oB,EAAGwC,GAE5B,IAAIrK,GAAK1J,GAAE,CAAEmmE,mBAAoBD,KACjC,SAASE,GAAGp1D,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,UAAW,qBAC7B,OAAO9M,GAAEkN,EAAG+yB,GAAG/yB,EAAE09B,MAAO79B,GAAIszB,UAE9B,IAAI36B,GAAK5J,GAAE,CAAEqmE,SAAUD,KACvB,SAASE,GAAGt1D,EAAGC,EAAK,GAClB,IAAIG,EAAIqpC,GAAGzpC,EAAG,UAAW,QAAS,qBAClCziC,GAAE6iC,EAAEvhC,QAAU,EAAG,IAAM,wCAAyCuhC,EAAEvhC,OAAS,GAAKtB,GAAE0iC,GAAMG,EAAE,GAAGw9B,KAAM,IAAM,sCACzG,IAAIt9B,EAAIF,EAAGG,EAAI,CAAEo1C,KAAM11C,GACvB,OAAOqlC,GAAEC,UAAU5zD,GAAI2uB,EAAGC,GAE5B,IAAIzH,GAAK9J,GAAE,CAAEumE,OAAQD,KACrB,SAASE,GAAGx1D,EAAGC,EAAK,GAClB,IAAIK,EAAI,CAAEuJ,EAAGM,GAAEnK,EAAG,IAAK,SAAWO,EAAI,CAAEslD,MAAO5lD,GAC/C,OAAOqlC,GAAEC,UAAUxtD,GAAIuoB,EAAGC,GAE5B,IAAIvH,GAAKhK,GAAE,CAAEymE,MAAOD,KACpB,SAASE,GAAG11D,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,EAAGwC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,GACvD,IAAI2B,EAAI,CAAEgF,EAAGM,GAAEnK,EAAG,IAAK,eAAgB,sBAAwByG,EAAI,CAAE00C,MAAOl7C,EAAIwqC,IAAKrqC,EAAG0+B,QAASx+B,EAAGq1D,UAAWp1D,EAAGq1D,QAAS7yD,EAAG8yD,aAAc7yD,EAAG8yD,YAAa7yD,EAAG8yD,eAAgB7yD,GAC/K,OAAOoiC,GAAEC,UAAUttD,GAAI4sB,EAAG4B,GAE5B,IAAIvN,GAAKlK,GAAE,CAAEgnE,cAAeN,KAC5B,SAASO,GAAGj2D,GACV,IAAII,EAAI,CAAEyJ,EAAGM,GAAEnK,EAAG,IAAK,MAAO,YAC9B,OAAOslC,GAAEC,UAAU1sD,GAAIunB,GAEzB,IAAIxG,GAAK5K,GAAE,CAAEknE,KAAMD,KACnB,SAAS/7D,GAAG8F,EAAGC,GACb1X,GAAGyX,GACH,IAAII,EAAI+oC,GAAGnpC,EAAGC,GACd,GAAiB,IAAbG,EAAEvhC,OACJ,MAAM,IAAI+jC,MAAM,sDAClB,OAAOknC,GAAG9pC,EAAG,KAAMI,EAAGH,GAExB,SAAS7F,GAAG4F,EAAGC,EAAIG,GACjB,GAAI7X,GAAGyX,GAAU,MAANC,GAA4B,IAAdA,EAAGphC,OAC1B,MAAM,IAAI+jC,MAAM,iDAClB,IAAItC,EAAI6oC,GAAGnpC,EAAGI,GACd,GAAiB,IAAbE,EAAEzhC,QAA6B,IAAbyhC,EAAEzhC,OACtB,MAAM,IAAI+jC,MAAM,kEAClB,GAAiB,IAAbtC,EAAEzhC,QAAsB,MAANohC,EACpB,MAAM,IAAI2C,MAAM,gFAClB,OAAOknC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEtB,SAAS9F,GAAG0F,EAAGC,EAAIG,GACjB,GAAI7X,GAAGyX,GAAU,MAANC,GAA4B,IAAdA,EAAGphC,OAC1B,MAAM,IAAI+jC,MAAM,mDAClB,IAAItC,EAAI6oC,GAAGnpC,EAAGI,GACd,GAAiB,IAAbE,EAAEzhC,QAA6B,IAAbyhC,EAAEzhC,OACtB,MAAM,IAAI+jC,MAAM,oEAClB,GAAiB,IAAbtC,EAAEzhC,QAAsB,MAANohC,EACpB,MAAM,IAAI2C,MAAM,2EAClB,OAAOknC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEtB,SAAS5F,GAAGwF,EAAGC,EAAIG,GACjB,GAAI7X,GAAGyX,GAAU,MAANC,GAA4B,IAAdA,EAAGphC,OAC1B,MAAM,IAAI+jC,MAAM,kDAClB,IAAItC,EAAI6oC,GAAGnpC,EAAGI,GACd,GAAiB,IAAbE,EAAEzhC,QAA6B,IAAbyhC,EAAEzhC,OACtB,MAAM,IAAI+jC,MAAM,sEAClB,GAAiB,IAAbtC,EAAEzhC,QAAsB,MAANohC,EACpB,MAAM,IAAI2C,MAAM,2EAClB,OAAOknC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEtB,SAAS1F,GAAGsF,EAAGC,EAAIG,GACjB,GAAI7X,GAAGyX,GAAU,MAANC,GAA4B,IAAdA,EAAGphC,OAC1B,MAAM,IAAI+jC,MAAM,kDAClB,IAAItC,EAAI6oC,GAAGnpC,EAAGI,GACd,GAAiB,IAAbE,EAAEzhC,QAA6B,IAAbyhC,EAAEzhC,OACtB,MAAM,IAAI+jC,MAAM,wEAClB,GAAiB,IAAbtC,EAAEzhC,QAAsB,MAANohC,EACpB,MAAM,IAAI2C,MAAM,2EAClB,OAAOknC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEtB,SAASxF,GAAGoF,EAAGC,EAAIG,GACjB,GAAI7X,GAAGyX,GAAU,MAANC,GAA4B,IAAdA,EAAGphC,OAC1B,MAAM,IAAI+jC,MAAM,iDAClB,IAAItC,EAAI6oC,GAAGnpC,EAAGI,GACd,GAAiB,IAAbE,EAAEzhC,QAA6B,IAAbyhC,EAAEzhC,OACtB,MAAM,IAAI+jC,MAAM,0EAClB,GAAiB,IAAbtC,EAAEzhC,QAAsB,MAANohC,EACpB,MAAM,IAAI2C,MAAM,2EAClB,OAAO3C,EAAKA,GAAMK,EAAGwpC,GAAG9pC,EAAGC,EAAIK,EAAGF,GAEpC,IAAI5L,GAAK,GAET,SAAS2hE,GAAGn2D,EAAGC,EAAIG,GACjB,IAAIE,EAAIL,EAAG29B,KAAO,EAAI39B,EAAG69B,MAAM79B,EAAG29B,KAAO,GAAK,EAAGr9B,EAAIN,EAAG29B,KAAO,EAAI39B,EAAG29B,KAAO,EAAI,EAAG76B,EAAI,6FAA6F3C,EAAE09B,yBAAyB79B,EAAG69B,iBAAiB99B,gBAAgBM,oBAAoBC,KACxQ,GAAIH,EAAEw9B,KAAOr9B,EACX,MAAM,IAAIqC,MAAMG,EAAI,kBAAkBxC,OACxC,GAAIP,EAAEnhC,OAASyhC,GAAKF,EAAEw9B,KAAOr9B,GAC3B,MAAM,IAAIqC,MAAMG,EAAI,2BAA0BzC,GAAKF,EAAEw9B,KAAOr9B,KAC9D,GAAIH,EAAEw9B,OAASr9B,EAAIP,EAAEnhC,OAASyhC,EAC5B,MAAM,IAAIsC,MAAMG,EAAI,oBAAmBxC,EAAIP,EAAEnhC,OAASyhC,IACxD,IAAK,IAAI0C,EAAI,EAAGA,EAAIzC,IAAKyC,EACvB,GAAI5C,EAAE09B,MAAM96B,KAAO/C,EAAG69B,MAAM96B,GAC1B,MAAM,IAAIJ,MAAMG,EAAI,kBAAkBC,OAAO5C,EAAE09B,MAAM96B,wBAAwBA,OAAO/C,EAAG69B,MAAM96B,QACjG,IAAK,IAAIA,EAAI,EAAGA,EAAI5C,EAAEw9B,KAAOr9B,IAAKyC,EAChC,GAAI5C,EAAE09B,MAAM96B,EAAIzC,KAAOP,EAAEgD,EAAI1C,GAC3B,MAAM,IAAIsC,MAAMG,EAAI,kBAAkBC,EAAIzC,OAAOH,EAAE09B,MAAM96B,EAAIzC,gBAAgByC,EAAIzC,OAAOP,EAAEgD,EAAIzC,OAEpG,SAAS61D,GAAGp2D,EAAGC,EAAIG,GACjB,GAAIH,EAAG29B,KAAO,EACZ,MAAM,IAAIh7B,MAAM,+EAA+E3C,EAAG29B,SACpG,GAAI59B,EAAE49B,KAAO,EACX,MAAM,IAAIh7B,MAAM,+EAA+E5C,EAAE49B,SACnG,GAAiB,UAAb39B,EAAGo9B,MACL,MAAM,IAAIz6B,MAAM,0DAA0D3C,EAAGo9B,OAC/E,GAAIj9B,EAAEvhC,OAAS,EACb,MAAM,IAAI+jC,MAAM,6DAA6DxC,GAC/E,GAAiB,IAAbA,EAAEvhC,OAAc,CAClB,GAAgB,IAAZohC,EAAG49B,KACL,MAAM,IAAIj7B,MAAM,sDAAsD3C,EAAG69B,OAC3E,GAAe,IAAX99B,EAAE69B,KACJ,MAAM,IAAIj7B,MAAM,sDAAsD5C,EAAE89B,OAE5Eq4B,GAAG/1D,EAAGH,EAAID,GAEZ,SAASq2D,GAAGr2D,EAAGC,EAAIG,GACjB,IAAIE,EAAIL,EAAG69B,MAAMj/D,OAAQ0hC,EAAID,EAAI,EAAIL,EAAG69B,MAAMx9B,EAAI,GAAK,EAAGyC,EAAI3C,EAAEvhC,OAAQmkC,EAAI,EAC5E,IAAK,IAAIyD,EAAIlG,EAAGkG,EAAI1D,IAAK0D,EACvBzD,GAAK5C,EAAEqG,GACT,IAAIxD,EAAI1C,EAAI,EAAI,EAAIA,EAAG2C,EAAIovB,GAAGryB,EAAG69B,OAAS76B,EAAGG,EAAI,IAAIoxB,GAAGp0B,EAAEzJ,MAAM,EAAG4J,IAAK,GAAIsE,EAAIytB,GAAGlyB,GACnF,MAAO,CAAEk2D,UAAW/1D,EAAGg2D,WAAYrzD,EAAGszD,UAAWxzD,EAAG87B,QAAS17B,EAAGqzD,WAAY5xD,GAE9E,SAAS6xD,GAAG12D,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,SAAU,uBAAwBO,EAAI4J,GAAElK,EAAI,UAAW,sBAAuB,SAAU8C,EAAIoH,GAAE/J,EAAG,UAAW,uBACzH,GAAIg2D,GAAGrzD,EAAGxC,EAAGD,EAAEw9B,OAAQx9B,EAAE+8B,QAAUt6B,EAAEs6B,MACnC,MAAM,IAAIz6B,MAAM,iEAAiEtC,EAAE+8B,aAAat6B,EAAEs6B,UACpG,IAAIr6B,EAAI,CAAEjJ,OAAQuG,EAAGukD,QAAStkD,EAAGo2D,QAAS5zD,GAAKE,EAAI,GACnD,OAAOqiC,GAAEC,UAAUlsD,GAAI2pB,EAAGC,GA7C5B9C,EAAG3L,GAAI,CAAEoiE,gBAAiB,IAAMP,GAAIQ,cAAe,IAAMT,GAAIU,oBAAqB,IAAMX,KA+CxF,IAAIr7D,GAAK9L,GAAE,CAAE+nE,qBAAsBL,KACnC,SAASM,GAAGh3D,EAAGC,EAAK,EAAGG,GAAI,GACzB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,QAClB,GAAe,IAAXM,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,sDAClB,IAAIrC,EAAID,EAAEw9B,MAAMx9B,EAAEw9B,MAAMj/D,OAAS,GACjC,GAAIohC,EAAK,EACP,MAAM,IAAI2C,MAAM,6CAA6C3C,GAC/D,GAAIA,EAAKM,EACP,MAAM,IAAIqC,MAAM,uDAAuDrC,cAAcN,KACvF,IAAI8C,EAAI,CAAE8G,EAAGvJ,GAAK0C,EAAI,CAAE4I,EAAG3L,EAAIg3D,OAAQ72D,IAAM6C,EAAGC,GAAKoiC,GAAEC,UAAU9rD,GAAIspB,EAAGC,GACxE,MAAO,CAAEvlC,OAAQwlC,EAAG4hD,QAAS3hD,GAE/B,IAAIxH,GAAK1M,GAAE,CAAEkoE,MAAOF,KACpB,SAASG,GAAGn3D,EAAGC,EAAK,EAAGG,EAAI,EAAGE,EAAGC,GAC/B,GAAIy0B,GAAGh1B,GAAS,MAALM,GAAmB,SAANA,EACtB,MAAM,IAAIsC,MAAM,qCAClB,IAAIG,EAAI,IAAImtD,GAAGjwD,EAAIG,EAAGE,GAAG,EAAMC,GAAIyC,EAAIpkB,GAAGohB,EAAGM,GAC7C,IAAK,IAAI2C,EAAI,EAAGA,EAAID,EAAEvlC,OAAOoB,OAAQokC,IACnCD,EAAEvlC,OAAOwlC,GAAKF,EAAE+tD,YAClB,OAAO9tD,EAAEwhD,WAEX,IAAIxoD,GAAKhN,GAAE,CAAEooE,iBAAkBD,KAC/B,SAASE,GAAGr3D,EAAGC,EAAK,GAClB,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,SAAU,qBAC5BziC,GAAE6iC,EAAEw9B,KAAO,EAAG,IAAM,wCACpB,IAAIt9B,EAAI,CAAEuJ,EAAGzJ,GAAKG,EAAI,CAAEo1C,KAAM11C,IAAO8C,EAAGC,GAAKsiC,GAAEC,UAAUxrD,GAAIumB,EAAGC,GAChE,MAAO,CAAE9iC,OAAQslC,EAAG8hD,QAAS7hD,GAE/B,IAAI9G,GAAKlN,GAAE,CAAEsoE,QAASD,KACtB,SAASE,GAAGv3D,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,sBAAuBO,EAAI4J,GAAElK,EAAI,aAAc,qBAAsB,SACvF1iC,GAAEk1D,GAAGryB,GAAI,IAAM,oCACf,IAAI2C,EAAI,CAAE8G,EAAGvJ,EAAGk3D,WAAYj3D,GAAKyC,EAAI,CAAEy0D,YAAar3D,GACpD,OAAOklC,GAAEC,UAAUprD,GAAI4oB,EAAGC,GAE5B,IAAIxG,GAAKxN,GAAE,CAAE0oE,oBAAqBH,KAClC,SAASI,GAAG33D,EAAGC,EAAK,GAClB,IAAIG,EAAI+J,GAAEnK,EAAG,IAAK,UAAW,qBAC7BziC,GAAE0iC,IAAOG,EAAE09B,MAAMj/D,QAAUohC,EAAKG,EAAE09B,MAAMj/D,OAAQ,IAAM,UAAUohC,iBAAkBG,EAAE09B,MAAMj/D,WAAWuhC,EAAE09B,MAAMj/D,WAC7G,IAAIyhC,EAAI,CAAE1gC,MAAOwgC,GAAKG,EAAI,CAAEo1C,KAAM11C,GAClC,OAAOqlC,GAAEC,UAAUtrD,GAAIqmB,EAAGC,GAE5B,IAAI7D,GAAK1N,GAAE,CAAE4oE,SAAUD,KACvB,SAAS76D,GAAGkD,EAAGC,GACb,OAAOvL,GAAGsL,EAAGC,EAAI,SAEnB,SAAS3C,GAAG0C,EAAGC,GAAK,EAAMG,EAAGE,GAC3B,OAAOglC,GAAEtF,aAAahgC,EAAGC,EAAIG,EAAGE,GAElC,SAASu3D,GAAG73D,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAI2C,EAAI,EAAGA,EAAI9C,EAAGphC,OAAQkkC,IAC7B9C,EAAG8C,IAAM3C,EAAEoK,KAAKzH,GAClB,IAAIzC,EAAI1hB,GAAGohB,EAAG,SAAUO,EAAI3hB,GAAG,CAACwhB,EAAEvhC,OAAQmhC,EAAEnhC,QAAS,SACrD,IAAK,IAAIkkC,EAAI,EAAGA,EAAI3C,EAAEvhC,OAAQkkC,IAAK,CACjC,IAAIC,EAAI1C,EAAEi5B,WAAWn5B,EAAE2C,IAAKE,EAAIF,EAAI/C,EAAEnhC,OACtC0hC,EAAE9iC,OAAOuD,IAAIgiC,EAAGC,GAElB,OAAO1C,EAAEikD,WAEX1Z,eAAegtB,GAAG93D,GAChB,IAAIC,EAAKkK,GAAEnK,EAAG,YAAa,aAAc,QAASI,QAAUH,EAAGsb,OAAQjb,EAAIu3D,GAAG53D,EAAG69B,MAAO19B,GACxF,OAAOJ,IAAMC,GAAMA,EAAGtd,UAAW2d,EAEnC,IAAIxB,GAAKg5D,GACThtB,eAAeitB,GAAG/3D,EAAGC,EAAIG,GACvB,IAAIE,EAAI6J,GAAEnK,EAAG,SAAU,YAAaO,EAAI4J,GAAElK,EAAI,OAAQ,WAAY,QAAS8C,EAAS,MAAL3C,EAAY,EAAIA,EAAG4C,EAAIzC,EAAEq9B,KAAM36B,EAAI3C,EAAEw9B,MACpHvgE,GAAEylC,EAAI,EAAG,IAAM,yBAA0BovB,GAAGnvB,EAAEtM,MAAMoM,EAAGA,EAAIC,GAAIzC,EAAEu9B,MAAO,qEACxE,IAAI56B,EAAI,EACR,IAAK,IAAI2H,EAAI9H,EAAG8H,EAAI9H,EAAIC,EAAG6H,IACzB3H,GAAKD,EAAE4H,GACT,IAAIzH,EAAIH,EAAEtM,MAAM,EAAGoM,GAAGxjB,OAAO,CAAC2jB,GAAID,EAAEtM,MAAMoM,EAAIC,IAAK6B,EAAI3R,GAAEoN,EAAG8C,GAAIqD,EAAIvT,GAAEqN,EAAG,EAAE,IAAKmG,QAAU5H,GAAG2H,GAAIE,EAAI/N,GAAG8N,EAAG,CAAC,IAAKK,EAAIzgB,GAAGue,EAAG8B,EAAG5D,GAC9H,OAAO/C,IAAMM,GAAKA,EAAE3d,UAAWsd,IAAOM,GAAKA,EAAE5d,UAAWgkB,EAAEhkB,UAAWkiB,EAAEliB,UAAW8jB,EAAE9jB,UAAW+jB,EAAE/jB,UAAWokB,EAE9G,IAAI7oB,GAAK65E,GACT,SAASv2B,GAAGxhC,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,aAClB,GAAU,MAANC,IAAeA,EAAKK,EAAEw9B,MAAM5K,IAAI,CAAClwB,EAAGC,IAAMA,GAAG9P,WAAY51B,GAAE+iC,EAAEs9B,OAAS39B,EAAGphC,OAAQ,IAAM,qCAAqCyhC,EAAEs9B,kCAAkC39B,MAAQA,EAAGqY,QAAStV,IACtLzlC,GAAEylC,GAAK,GAAKA,EAAI1C,EAAEs9B,KAAM,IAAM,+CAA+Ct9B,EAAEs9B,KAAO,aAAa39B,OACjGK,EAAEs9B,MAAQ,EACZ,OAAOt9B,EAAEnhB,QACX,IAAIohB,EAAI,CAAEsJ,EAAGvJ,GAAKyC,EAAI,CAAEi1D,KAAM/3D,GAC9B,MAAmB,cAAZK,EAAE+8B,MAAwBjiC,GAAG,KAClC,IAAI4H,EAAIhR,GAAGsO,GAAI2C,EAAI/a,GAAGoY,GACtB,OAAO0C,EAAIsiC,GAAEC,UAAU1rD,GAAI,CAAEgwB,EAAG7G,GAAKD,GAAIE,EAAIqiC,GAAEC,UAAU1rD,GAAI,CAAEgwB,EAAG5G,GAAKF,GAAI3C,IAAM6C,EAAI/U,GAAG+U,IAAK3jB,GAAG0jB,EAAGC,KAChGqiC,GAAEC,UAAU1rD,GAAI0mB,EAAGwC,GAE1B,IAAIjH,GAAK9M,GAAE,CAAEipE,WAAYz2B,KACzB,SAAS02B,GAAGl4D,EAAGC,EAAIG,EAAGE,EAAGC,GAAI,GAC3B,IAAIwC,EAAIoH,GAAEnK,EAAG,IAAK,iBAAkBgD,EAAImH,GAAElK,EAAI,IAAK,iBAAkBgD,EAAIkH,GAAE/J,EAAG,QAAS,iBACvF0gC,GAAG/9B,EAAGC,GAAIzlC,GAAE80D,GAAGtvB,EAAE+6B,MAAO96B,EAAE86B,OAAQ,IAAM,6BACxC,IAAI56B,EAAI9O,GAAG,GAAIgP,EAAI9J,GAAG4J,EAAGD,GAAI4B,EAAIjX,GAAG0L,GAAG0J,EAAGD,GAAIK,GAC9C,GAAI7C,EAAG,CACLhjC,GAAO,MAAL+iC,EAAW,IAAM,kDACnB,IAAImG,EAAI0D,GAAE7J,EAAG,OAAQ,iBACrBuE,EAAI7hB,GAAG6hB,EAAGvL,GAAG4J,EAAGlT,GAAGiT,EAAGwD,KAExB,OAAOrrB,GAAG2nB,EAAG8B,GAEf,IAAInX,GAAKsB,GAAE,CAAEmpE,eAAgBD,KAC7B,SAASE,GAAGp4D,EAAGC,EAAIG,GACjB40B,GAAG50B,GACH,IAAIE,EAAI6J,GAAEnK,EAAG,UAAW,YAAa,SAAUO,EAAI4J,GAAElK,EAAI,UAAW,aACpEm2D,GAAG71D,EAAGD,EAAGF,GACT,IAAI2C,EAAI,CAAE8hD,QAASvkD,EAAGq2D,QAASp2D,GAAKyC,EAAI,CAAE86B,MAAO19B,GACjD,OAAOklC,GAAEC,UAAUpwD,GAAI4tB,EAAGC,GAE5B,IAAI1O,GAAKtF,GAAE,CAAEqpE,WAAYD,KACzB,SAASE,GAAGt4D,EAAGC,EAAIG,EAAGE,GACpB,GAAgB,UAAZN,EAAEq9B,MACJ,MAAM,IAAIz6B,MAAM,8EAA8E5C,EAAEq9B,UAClG,GAAIr9B,EAAE49B,KAAO,EACX,MAAM,IAAIh7B,MAAM,sEAAsE5C,EAAE89B,UAC1F,IAAIv9B,EAAIP,EAAE49B,KAAO,EAAI59B,EAAE89B,MAAM,GAAK,EAAG/6B,EAAI/C,EAAE49B,KAAO,EAAI59B,EAAE89B,MAAM,GAAK,EACnE,GAAI19B,EAAEvhC,SAAWkkC,EACf,MAAM,IAAIH,MAAM,kDAAkDxC,EAAEvhC,sBAAsBkkC,MAC5F,IAAIC,EAAI/C,EAAG49B,KACX,GAAkB,IAAZ59B,EAAG29B,OAA0B,IAAZ39B,EAAG29B,MAAc56B,IAAMzC,GAC5C,MAAM,IAAIqC,MAAM,oCAAoC3C,EAAG69B,2BAA2Bv9B,MACpF,GAAIN,EAAGo9B,QAAU/8B,EAAE+8B,MACjB,MAAM,IAAIz6B,MAAM,qDAEpB,SAAS21D,GAAGv4D,EAAGC,EAAIG,EAAGE,EAAI,GACxB00B,GAAG50B,GACH,IAAIG,EAAI4J,GAAEnK,EAAG,gBAAiB,gBAAiB,SAAU+C,EAAIoH,GAAElK,EAAI,eAAgB,gBAAiB,qBAAsB+C,EAAImH,GAAE7J,EAAG,eAAgB,gBAAiByC,EAAEs6B,OACtKi7B,GAAG/3D,EAAGwC,EAAG3C,EAAG4C,GACZ,IAAIC,EAAI,CAAEu1D,cAAej4D,EAAGk4D,aAAc11D,EAAGuqD,aAActqD,GAAKE,EAAI,CAAEw1D,YAAat4D,GACnF,OAAOklC,GAAEC,UAAUpuD,GAAI8rB,EAAGC,GAE5B,IAAIlL,GAAKhJ,GAAE,CAAE2pE,eAAgBJ,KAC7B,SAASK,GAAG54D,EAAGC,GACb,IAAIG,EAAI+J,GAAElK,EAAI,UAAW,WAAY,SAAUM,EAAI,CAAEs4D,OAAQ1uD,GAAEnK,EAAG,IAAK,WAAY,qBAAsB6kD,QAASzkD,GAClH,OAAOklC,GAAEC,UAAUx6D,GAAIw1B,GAEzB,IAAI/Z,GAAKwI,GAAE,CAAE8pE,UAAWF,KACxB,SAASG,GAAG/4D,EAAGC,GACb,GAAU,MAANA,EACF,OAAOD,EAAE89B,MAAMnnC,QACjB,GAAI07B,GAAGryB,EAAE89B,MAAO79B,GACd,OAAOA,EACT,GAAID,EAAE89B,MAAMj/D,SAAWohC,EAAGphC,OAAQ,CAChC,IAAIuhC,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAE89B,MAAMj/D,OAAQyhC,IACzB,MAATL,EAAGK,IAA4B,MAAdN,EAAE89B,MAAMx9B,GAAaF,EAAEoK,KAAKxK,EAAE89B,MAAMx9B,IAAMF,EAAEoK,KAAKvK,EAAGK,IACvE,OAAOF,EAET,OAAOH,EAET,SAAS+4D,GAAGh5D,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI4J,GAAEnK,EAAG,IAAK,WAClB,GAAIziC,GAAc,YAAZgjC,EAAE88B,MAAqB,IAAM,gFAAgF98B,EAAE88B,yBAA0B9/D,GAAE0iC,GAAM,GAAKA,EAAK,EAAG,IAAM,qDAAqDA,MAAe,IAAPA,EACrO,OAAOD,aAAa/mB,GAAKsnB,EAAEphB,QAAUohB,EACvC,IAAIwC,EAAIg2D,GAAGx4D,EAAGH,GAAI4C,EAAI,EAAI/C,EAAIgD,EAAIjgB,GAAG8C,GAAG1K,GAAGoW,GAAGuR,EAAG,EAAG,EAAG,UAAWzC,GAAI0C,IAAKA,GAC3E,OAAOpV,GAAG2S,EAAG0C,GAEf,IAAI3f,GAAK0L,GAAE,CAAEiqE,SAAUD,KACvB,SAASh1E,GAAGgc,GACV,OAAO0C,KAAK7c,MAAM6c,KAAK3S,IAAI,EAAG2S,KAAK3jB,KAAK2jB,KAAKrY,IAAI2V,GAAK0C,KAAKrY,IAAI,MAEjE,SAASnJ,GAAG8e,EAAGC,EAAIG,GACjB,IAAIE,EAAI,EAAIN,EAAI,EAAGO,EAAI,IAAIuU,aAAa9U,GACxC,IAAK,IAAI+C,EAAI,EAAGA,EAAI/C,IAAK+C,EAAG,CAC1B,IAAIC,EAAI,EAAIN,KAAKw2D,GAAKn2D,GAAK/C,EAAIM,EAAI,GACnCC,EAAEwC,GAAK9C,EAAKG,EAAIsC,KAAK7hB,IAAImiB,GAE3B,OAAO9I,GAAGqG,EAAG,WAEfuqC,eAAequB,GAAGn5D,EAAGC,EAAIG,EAAI,GAC3B,IAAIE,EAAI6J,GAAEnK,EAAG,cAAe,UAAWO,EAAI4J,GAAElK,EAAI,UAAW,UAC5D1iC,GAAE+iC,EAAEs9B,KAAO,EAAG,IAAM,uEAAuEt9B,EAAEs9B,MAASrgE,GAAE+iC,EAAEs9B,KAAO,IAAMr9B,EAAEq9B,KAAM,IAAM,mFAAmFt9B,EAAEs9B,yBAAyBr9B,EAAEq9B,QAASxL,GAAG9xB,EAAEw9B,MAAMnnC,MAAM,EAAG2J,EAAEw9B,MAAMj/D,OAAS,GAAI0hC,EAAEu9B,MAAO,2FAChT,IAAI/6B,EAAIzC,EAAEw9B,MAAMx9B,EAAEw9B,MAAMj/D,OAAS,GACjCtB,GAAE6iC,EAAI,GAAKA,GAAK2C,EAAG,IAAM,4EAA4EA,eAAe3C,KACpH,IAAI4C,QAAU1C,EAAEib,OAAQtY,QAAU1C,EAAEgb,QAASrY,EAAGE,GAAK,CAACJ,EAAEnkC,OAASkkC,EAAGA,GAAI8B,EAAI4uB,GAAG,OAAQvwB,GACvF,IAAK,IAAIuD,EAAI,EAAGA,EAAIvD,EAAGuD,IAAK,CAC1B,IAAIC,EAAID,EAAIrD,EAAGuD,EAAI3D,EAAE4Q,SAASlN,EAAGA,EAAItD,GAAI2D,EAAI,GAC7C,IAAK,IAAI8D,EAAI,EAAGA,EAAIlE,EAAE9nC,OAAQgsC,IAC5B9D,EAAEyD,KAAK,CAAE5qC,MAAO+mC,EAAEkE,GAAI0oC,MAAO1oC,IAC/B9D,EAAEusB,KAAK,CAACzoB,EAAGC,IAAMA,EAAElrC,MAAQirC,EAAEjrC,OAAQilC,EAAE4B,GAAK,EAC5C,IAAK,IAAIoE,EAAI,EAAGA,EAAIzK,EAAGyK,IACrB,GAAI9D,EAAE8D,GAAG0oC,QAAUtwC,EAAEwD,GAAI,CACvB5B,EAAE4B,GAAK,EACP,OAGN,OAAOzG,IAAMM,GAAKA,EAAE3d,UAAWsd,IAAOM,GAAKA,EAAE5d,UAAWqX,GAAG6K,EAAGtE,EAAEu9B,MAAO,QAEzE,IAAIx1C,GAAK6wE,GACL/yE,GAAK,GAET,SAASgzE,GAAGp5D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,OAAQC,GACtC,IAAIC,EAAIjD,EACG,IAAXA,EAAE49B,OAAe36B,EAAI/P,GAAE8M,EAAG,CAAC,EAAGA,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,MAC9D,IAAI56B,EAAIjD,EACG,IAAXiD,EAAE06B,OAAe16B,EAAIhQ,GAAE+M,EAAI,CAAC,EAAGA,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,MAAOvgE,GAAa,IAAX0lC,EAAE26B,KAAY,IAAM,iEAAiE36B,EAAE66B,UAAWvgE,GAAa,IAAX2lC,EAAE06B,KAAY,IAAM,8DAA8D16B,EAAE46B,UAAWvgE,GAAe,IAAb6iC,EAAEvhC,OAAc,IAAM,mEAAmEuhC,MACzW,IAAIgD,EAAU,SAANL,EAAeE,EAAE66B,MAAM,GAAK76B,EAAE66B,MAAM,GAAIj5B,EAAU,SAAN9B,EAAeG,EAAE46B,MAAM,GAAK56B,EAAE46B,MAAM,GACxFvgE,GAAE6lC,IAAMhD,EAAE,GAAI,IAAM,4CAA4CgD,wCAAwChD,EAAE,OAAQ7iC,GAAEsnC,IAAMzE,EAAE,GAAI,IAAM,0CAA0CyE,0CAA0CzE,EAAE,QAAS65C,GAAG,kBAAmB15C,EAAGyC,GAC9P,IAAIyD,EAAI,CAAEoD,EAAG5G,EAAGq7C,GAAIp7C,GAAKwD,EAAI,CAAEo4B,QAASx+B,EAAGnR,IAAKoR,EAAGq3C,WAAY70C,EAAGu3C,gBAAiBt3C,EAAG21C,YAAav4C,GACnG,OAAOklC,GAAEC,UAAU1/D,GAAI4gC,EAAGC,GAT5BvG,EAAG/Z,GAAI,CAAEjG,OAAQ,IAAMk5E,GAAIt3E,gBAAiB,IAAMu3E,GAAI3tE,OAAQ,IAAM4tE,KAWpE,IAAIC,GAAKxqE,GAAE,CAAEyqE,sBAAuBL,KACpC,SAASM,GAAG15D,EAAGC,EAAIG,GACjB,GAAS,MAALA,GAAmB,WAANA,EACf,OAAOJ,EACT,GAAU,SAANI,EACF,OAAOxS,GAAGoS,EAAGhH,GAAGiH,IAClB,MAAM,IAAI2C,MAAM,gDAAgDxC,MAElE,SAASu5D,GAAG35D,EAAGC,GACb,IAAIG,EAAIH,EAAIK,EAAImgD,GAAGzgD,EAAE89B,MAAO79B,EAAG69B,OAC/B,OAAOx9B,EAAEzhC,OAAS,IAAMuhC,EAAI5G,GAAG4G,EAAGE,IAAKpN,GAAEkN,EAAGJ,EAAE89B,OAEhD,SAAS87B,GAAG55D,EAAGC,EAAIG,EAAGE,GACpB,GAAW,WAAPL,EACF,OAAOD,EACT,GAAW,SAAPC,EACF,OAAOrN,GAAGoN,GACZ,GAAW,QAAPC,EACF,OAAOvc,GAAGsc,GACZ,GAAW,UAAPC,EACF,OAAOnN,GAAGkN,GACZ,GAAW,UAAPC,EACF,OAAO/P,GAAG8P,EAAGI,GACf,GAAW,cAAPH,EACF,OAAO3W,GAAG0W,EAAGM,GACf,GAAW,YAAPL,EACF,OAAO/J,GAAG8J,GACZ,MAAM,IAAI4C,MAAM,4BAA4B3C,MAE9C,IAAIlR,GAAK,CAACiR,EAAGC,MAASD,EAAI,IAAa,WAAPC,EAChC,SAAS45D,IAAKhwD,EAAG7J,EAAGquB,OAAQpuB,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAI,OAAQ09C,UAAWl7C,EAAI,CAAC,EAAG,GAAIu3C,gBAAiBt3C,EAAGujD,KAAMtjD,EAAG62D,WAAY52D,EAAI,SAAU62D,uBAAwB32D,EAAG42D,eAAgBn1D,IACnM,GAAI3B,EAAIA,GAAK,UAA2C,IAAjCnU,GAAGu2C,GAAEp8B,MAAM45B,cAAe5/B,GAAc,CAC7D3lC,GAAQ,SAANgjC,EAAc,IAAM,4CAA4CA,gHAClE,IAAIsL,EAAIzrB,GAAG4f,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC9B,OAAY,MAALC,IAAc4I,EAAIzwB,GAAGywB,EAAG5I,IAAK22D,GAAG/tD,EAAG3I,EAAGE,EAAGyB,GAElD,IAAI4B,EAAI0D,GAAEnK,EAAG,IAAK,SAAU,WAAY0G,EAAIyD,GAAElK,EAAI,SAAU,SAAU,WAAY0G,EAAIF,EAAGM,GAAI,EAClF,IAAXN,EAAEm3B,OAAe72B,GAAI,EAAMJ,EAAIzT,GAAEuT,EAAG,CAAC,EAAGA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,MAAOvgE,GAAa,IAAXopC,EAAEi3B,KAAY,IAAM,6DAA6Dj3B,EAAEi3B,SAAUrgE,GAAa,IAAXmpC,EAAEk3B,KAAY,IAAM,8DAA8Dl3B,EAAEk3B,SAAUqc,GAAG,eAAgB35C,EAAG0C,GACpS,IAAI6H,EAAU,SAANtK,EAAeoG,EAAEm3B,MAAM,GAAKn3B,EAAEm3B,MAAM,GAC5CvgE,GAAEmpC,EAAEo3B,MAAM,KAAOjzB,EAAG,IAAM,oCAAoCA,wCAAwCnE,EAAEo3B,MAAM,OAAQvgE,GAAEw8E,GAAG35C,EAAG2C,GAAI,IAAM,uEAAuE3C,oBAAoB2C,MACnO,IAA0C8G,EAEtCuB,EAFAN,EAAIksC,GAAGrwC,EAAEm3B,MAAOp3B,EAAEo3B,MAAO19B,EAAG2C,EAAGzC,EAAG0C,GAGtC,GAFK,MAALC,IAAc4G,EAAIM,GAAElH,EAAG,OAAQ,iBAAkB4G,GAAKu3B,GAAGv3B,EAAGpD,GAAU,SAANlG,EAAemgD,GAAG51C,EAAE4tC,SAAU7uC,EAAEi0B,QAAUvgE,GAAEssC,EAAEi0B,MAAMj/D,QAAU,EAAG,IAAM,2GAA2GgrC,EAAEi0B,MAAMj/D,WAAYtB,GAAqB,IAAnBssC,EAAEi0B,MAAMj/D,QAAgBgrC,EAAEi0B,MAAM,KAAOhzB,EAAEktC,aAA8B,IAAfnuC,EAAEi0B,MAAM,GAAU,IAAM,sCAAsCj0B,EAAEi0B,gEAAgEhzB,EAAEktC,kBAEzb,MAAL50C,EAAW,CACb,IAAIyI,EAAIzI,EAAE06B,MACV,GAAIvgE,GAAEsuC,EAAEhtC,QAAU,GAAkB,IAAbgtC,EAAEhtC,OAAc,IAAM,2HAA2HgtC,EAAEhtC,WAAyB,IAAbgtC,EAAEhtC,OACtLtB,GAAW,IAATsuC,EAAE,IAAYA,EAAE,KAAOf,EAAEktC,YAAa,IAAM,oDAAoDnsC,4DAA4Df,EAAEktC,sBAC7J,GAAiB,IAAbnsC,EAAEhtC,OACT,IACE6hF,GAAG70C,EAAGf,EAAE4tC,UACR,MAAO3sC,GACP,IAAIC,EAAI,oDAAoDH,6DAA6Df,EAAE4tC,aAC3H,MAAM91C,MAAMoJ,GAEhBZ,EAAIjB,GAAE/G,EAAG,gBAAiB,gBAE5B,IAAIsI,EAAI,CAACG,EAAGE,KACVxuC,GAAQ,SAANgjC,EAAc,IAAM,wDAAwDA,2CAC9E,IAAKyL,EAAGC,EAAGC,EAAGtuC,GAAKmuC,EAAGI,EAAIutD,GAAG7tD,EAAGK,EAAGhJ,GACnC3lC,GAAEu8E,GAAG/2C,GAAI,IAAM,uHAAuHA,MACtI,IAAIsJ,EAAImyC,GAAGvyC,EAAE6xB,MAAO3xB,EAAGH,EAAG5L,EAAGE,GAAIkM,EAAIgtD,GAAGvtD,EAAGE,EAAGH,EAAE8xB,MAAO19B,EAAGE,GAAIwJ,EAAI,CAACuC,EAAGG,GACtE,GAAS,MAAL5uC,EAAW,CACb,IAAI40C,EAAImnD,GAAG/7F,EAAGuuC,GACdrC,EAAEU,KAAKgI,GAET,OAAO1I,GACN6B,EAAI,CAAE9B,EAAGlD,EAAG0nB,OAAQ3nB,EAAG6/C,KAAM18C,EAAGkwD,uBAAwB3uD,GAAKQ,EAAI,CAAEkzB,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAG09C,UAAWl7C,EAAGu3C,gBAAiBt3C,EAAG82D,WAAY52D,EAAG82D,eAAgBn1D,GAC1K,OAAY,MAAL5B,EAAYzhB,GAAG,CAACuqB,EAAGC,EAAGC,KAC3B,IAAIC,EAAIo5B,GAAEC,UAAU96D,GAAIkhC,EAAGC,GAC3B,OAAOK,EAAE,CAACD,EAAGD,EAAGG,IAAKnF,IAAMmF,EAAIhZ,GAAEgZ,EAAG,CAACA,EAAE4xB,MAAM,GAAI5xB,EAAE4xB,MAAM,GAAI5xB,EAAE4xB,MAAM,MAAO,CAAEl+D,MAAOssC,EAAGs7B,SAAU97B,IAFjFlqB,CAGhBmlB,EAAGD,GAAKllB,GAAG,CAACuqB,EAAGC,EAAGC,EAAGC,KACtB,IAAItuC,EAAI0nE,GAAEC,UAAU96D,GAAIkhC,EAAGC,GAC3B,OAAOM,EAAE,CAACF,EAAGD,EAAGnuC,EAAGquC,IAAKlF,IAAMnpC,EAAIs1B,GAAEt1B,EAAG,CAACA,EAAEkgE,MAAM,GAAIlgE,EAAEkgE,MAAM,GAAIlgE,EAAEkgE,MAAM,MAAO,CAAEl+D,MAAOhC,EAAG4pE,SAAU97B,IAF5FlqB,CAGRmlB,EAAGD,EAAGmD,GAEX,IAAIwvD,GAAKrqE,GAAE,CAAEirE,aAAcJ,KAC3B,SAASK,GAAGl6D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,CAAC,EAAG,GAAIC,GACtC,IAAIC,EAAIjD,EACG,IAAXA,EAAE49B,OAAe36B,EAAI/P,GAAE8M,EAAG,CAAC,EAAGA,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,MAC9D,IAAI56B,EAAIjD,EACG,IAAXiD,EAAE06B,OAAe16B,EAAIhQ,GAAE+M,EAAI,CAAC,EAAGA,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,MAClE,IAAI16B,EAAI,CAAEyG,EAAG5G,EAAGq7C,GAAIp7C,GAAK2B,EAAI,CAAEi6B,QAASx+B,EAAGnR,IAAKoR,EAAG+5C,gBAAiBt3C,EAAGi7C,UAAWl7C,EAAG41C,YAAav4C,GAClG,OAAOklC,GAAEC,UAAU99D,GAAI27B,EAAGyB,GAE5B,IAAIs1D,GAAKnrE,GAAE,CAAEorE,qCAAsCF,KACnD,SAASG,GAAGr6D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAI,CAAC,EAAG,GAAIC,GACtC,IAAIC,EAAIhD,EAAIiD,GAAI,EACJ,IAAZjD,EAAG29B,OAAe16B,GAAI,EAAMD,EAAI/P,GAAE+M,EAAI,CAAC,EAAGA,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,GAAI79B,EAAG69B,MAAM,MAC7E,IAAI16B,EAAI,CAAEk7C,GAAIr7C,EAAGorB,OAAQjuB,GAAKyE,EAAI,CAAEi6B,QAASx+B,EAAGnR,IAAKoR,EAAG+5C,gBAAiBt3C,EAAGi7C,UAAWl7C,EAAGw7C,WAAYv+C,GAAKyG,EAAI6+B,GAAEC,UAAU59D,GAAIy7B,EAAGyB,GAClI,OAAO3B,EAAIhQ,GAAEuT,EAAG,CAACA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,KAAOr3B,EAE1D,IAAI6zD,GAAKtrE,GAAE,CAAEurE,oCAAqCF,KAClD,SAASG,IAAK3wD,EAAG7J,EAAGquB,OAAQpuB,EAAI6+B,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAI,OAAQ09C,UAAWl7C,EAAI,CAAC,EAAG,GAAIu3C,gBAAiBt3C,EAAGujD,KAAMtjD,EAAG62D,WAAY52D,EAAI,SAAU62D,uBAAwB32D,EAAG42D,eAAgBn1D,IACnM,IAAqC,IAAjC9V,GAAGu2C,GAAEp8B,MAAM45B,cAAe5/B,GAAc,CAC1C,IAAI0I,EAAI5pB,GAAGge,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC9B,OAAY,MAALC,IAAc2I,EAAIxwB,GAAGwwB,EAAG3I,IAAK22D,GAAGhuD,EAAG1I,EAAGE,EAAGyB,GAElD,IAAI4B,EAAI0D,GAAEnK,EAAG,IAAK,kBAAmB,WAAY0G,EAAIyD,GAAElK,EAAI,SAAU,kBAAmB,WAAY0G,EAAIF,EAAGM,GAAI,EACpG,IAAXN,EAAEm3B,OAAe72B,GAAI,EAAMJ,EAAIzT,GAAEuT,EAAG,CAAC,EAAGA,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,GAAIr3B,EAAEq3B,MAAM,MAAOvgE,GAAa,IAAXopC,EAAEi3B,KAAY,IAAM,sEAAsEj3B,EAAEi3B,SAAUrgE,GAAa,IAAXmpC,EAAEk3B,KAAY,IAAM,uEAAuEl3B,EAAEk3B,SAAUrgE,GAAEopC,EAAEm3B,MAAM,KAAOp3B,EAAEo3B,MAAM,GAAI,IAAM,6DAA6Dn3B,EAAEm3B,MAAM,qDAAqDp3B,EAAEo3B,MAAM,OAAa,MAAL/6B,IAAcA,EAAI,CAAC,EAAG,IAAKxlC,GAAEw8E,GAAG35C,EAAG2C,GAAI,IAAM,sFAAsF3C,oBAAoB2C,MAAOk3C,GAAG,wBAAyB35C,EAAG0C,GAC1oB,IAAgD8H,EAE5CjB,EAFAgB,EAAImsC,GAAGrwC,EAAEm3B,MAAOp3B,EAAEo3B,MAAO19B,EAAG2C,EAAGzC,EAAG0C,GAAG,GACpC,MAALC,IAAc6H,EAAIX,GAAElH,EAAG,OAAQ,iBAAkB6H,GAAKs2B,GAAGt2B,EAAGrE,GAAIi6C,GAAG71C,EAAE6tC,SAAU5tC,EAAEgzB,QAE5E,MAAL16B,IAAcyG,EAAIM,GAAE/G,EAAG,gBAAiB,0BACxC,IAAIgI,EAAI,CAACQ,EAAGC,KACVtuC,GAAEu8E,GAAG/2C,GAAI,IAAM,mHAAmHA,MAClI,IAAKgJ,EAAGC,EAAGC,EAAGC,GAAKL,EAAGjuC,EAAI87F,GAAG9tD,EAAGK,EAAG/I,GAAIiJ,EAAImuD,GAAGtuD,EAAE8xB,MAAOlgE,EAAGmuC,EAAG3L,EAAGE,EAAGyC,EAAGC,GAAIqJ,EAAI8tD,GAAGnuD,EAAGpuC,EAAGmuC,EAAE+xB,MAAO19B,EAAGE,EAAGyC,EAAGC,GACzG,GAAS,MAALkJ,EAAW,CACb,IAAIM,EAAImtD,GAAG7uD,EAAGltC,GACd,MAAO,CAACuuC,EAAGE,EAAGG,GAEhB,MAAO,CAACL,EAAGE,IACVX,EAAI,CAAE7B,EAAGlD,EAAG0nB,OAAQ3nB,EAAG6/C,KAAMz7C,EAAGivD,uBAAwBlwD,GAAK8B,EAAI,CAAEmzB,QAAS1+B,EAAGjR,IAAKmR,EAAGs3C,WAAYr3C,EAAG09C,UAAWl7C,EAAGu3C,gBAAiBt3C,EAAG82D,WAAY52D,EAAG82D,eAAgBn1D,GAC1K,OAAY,MAAL5B,EAAYzhB,GAAG,CAACqqB,EAAGE,EAAGC,KAC3B,IAAIC,EAAIq5B,GAAEC,UAAU56D,GAAI+gC,EAAGC,GAC3B,OAAOK,EAAE,CAACD,EAAGF,EAAGI,IAAKlF,IAAMkF,EAAI/Y,GAAE+Y,EAAG,CAACA,EAAE6xB,MAAM,GAAI7xB,EAAE6xB,MAAM,GAAI7xB,EAAE6xB,MAAM,MAAO,CAAEl+D,MAAOqsC,EAAGu7B,SAAUp8B,IAFjF5pB,CAGhBmlB,EAAGD,GAAKllB,GAAG,CAACqqB,EAAGE,EAAGC,EAAGC,KACtB,IAAIC,EAAIo5B,GAAEC,UAAU56D,GAAI+gC,EAAGC,GAC3B,OAAOM,EAAE,CAACF,EAAGF,EAAGK,EAAGF,IAAKjF,IAAMmF,EAAIhZ,GAAEgZ,EAAG,CAACA,EAAE4xB,MAAM,GAAI5xB,EAAE4xB,MAAM,GAAI5xB,EAAE4xB,MAAM,MAAO,CAAEl+D,MAAOssC,EAAGs7B,SAAUp8B,IAF5F5pB,CAGRmlB,EAAGD,EAAGoE,GAEX,IAAIwuD,GAAKtqE,GAAE,CAAEyrE,sBAAuBD,KACpC,SAASE,IAAK13D,EAAGhD,EAAGoL,EAAGnL,EAAI46C,WAAYz6C,GAAI,EAAO06C,WAAYx6C,GAAI,EAAOimD,KAAMhmD,EAAGu5D,WAAY/2D,EAAI,SAAUg3D,uBAAwB/2D,EAAGg3D,eAAgB/2D,EAAI,KACzJ,IAAqC,IAAjClU,GAAGu2C,GAAEp8B,MAAM45B,cAAe//B,GAAc,CAC1C,IAAInlC,EAAIguB,GAAGoU,EAAGC,EAAIG,EAAGE,GACrB,OAAY,MAALC,IAAc3iC,EAAIwd,GAAGxd,EAAG2iC,IAAKq5D,GAAGh8F,EAAGmlC,EAAGC,EAAGC,GAElD,IAAIC,EAAIiH,GAAEnK,EAAG,IAAK,gBAAiBoD,EAAI+G,GAAElK,EAAI,IAAK,iBACjDiD,EAAGE,GAAKg+B,GAAGl+B,EAAGE,GACf,IAAIyB,EAAIzE,EAAI8C,EAAE46B,MAAM56B,EAAE06B,KAAO,GAAK16B,EAAE46B,MAAM56B,EAAE06B,KAAO,GAAIn3B,EAAInG,EAAI8C,EAAE06B,MAAM16B,EAAEw6B,KAAO,GAAKx6B,EAAE06B,MAAM16B,EAAEw6B,KAAO,GAAIl3B,EAAItG,EAAI8C,EAAE46B,MAAM56B,EAAE06B,KAAO,GAAK16B,EAAE46B,MAAM56B,EAAE06B,KAAO,GAAIj3B,EAAIrG,EAAI8C,EAAE06B,MAAM16B,EAAEw6B,KAAO,GAAKx6B,EAAE06B,MAAM16B,EAAEw6B,KAAO,GAAI72B,EAAI7D,EAAE46B,MAAMnnC,MAAM,GAAI,GAAIkU,EAAIzH,EAAE06B,MAAMnnC,MAAM,GAAI,GAAImU,EAAIwnB,GAAGvrB,GAAI8C,EAAIyoB,GAAGznB,GACtRttC,GAAEsnC,IAAM4B,EAAG,IAAM,wCAAwC5B,WAAW4B,6BAA6BvD,EAAE46B,aAAa16B,EAAE06B,wBAAwB19B,oBAAoBE,iBAC9J,IAA6JuL,EAEzJE,EAFAL,EAAIg1C,GAAGx9C,EAAE46B,MAAMnnC,MAAM,GAAI,GAAIyM,EAAE06B,MAAMnnC,MAAM,GAAI,IAAIpX,OAAO,CAACmnB,EAAGC,IAAKgF,EAAQzY,GAAEgQ,EAAN9C,EAAS,CAAC0K,EAAGjG,EAAG6B,GAAW,CAACoE,EAAGpE,EAAG7B,IAAK+G,EAAQ1Y,GAAEkQ,EAAN9C,EAAS,CAACuJ,EAAGlD,EAAGF,GAAW,CAACoD,EAAGpD,EAAGE,IACnJ,MAALpG,IAAcsL,EAAI1B,GAAE5J,EAAG,OAAQ,iBAAkBsL,GAAKu1B,GAAGv1B,EAAG3I,GAAIw9C,GAAGh1C,EAAGG,EAAEiyB,QAEnE,MAAL96B,IAAc+I,EAAI5B,GAAEnH,EAAG,gBAAiB,iBACxC,IAAIgJ,EAAI,CAACpuC,EAAGuuC,KACV,IAAmD2jB,EAAGC,GAAjD1jB,EAAGG,EAAG1C,EAAG0I,GAAKrG,EAAGI,EAAImtD,GAAGxmE,GAAEt1B,EAAGksC,EAAEg0B,OAAQh0B,EAAG/G,GAC/C,GAAK3C,GAAME,GAA8DF,GAAKE,GAAKwvB,EAAIlkC,GAAG2gB,EAAGC,GAAG,GAAO,GAAQujB,EAAInkC,GAAG2gB,EAAGF,GAAG,GAAM,IAAUjM,IAAME,GAAKwvB,EAAIlkC,GAAG4gB,EAAGD,GAAG,GAAO,GAAOwjB,EAAInkC,GAAGygB,EAAGE,GAAG,GAAO,KAAWujB,EAAIlkC,GAAG4gB,EAAGD,GAAG,GAAM,GAAOwjB,EAAInkC,GAAG2gB,EAAGF,GAAG,GAAM,KAA9OyjB,EAAIlkC,GAAG2gB,EAAGC,GAAG,GAAO,GAAOujB,EAAInkC,GAAGygB,EAAGE,GAAG,GAAM,IAA6M,MAALhM,EAAW,CAC/Q,IAAIgvB,EAAIoqC,GAAGnnD,EAAGjG,GACd,MAAO,CAACujB,EAAGC,EAAGR,GAEd,MAAO,CAACO,EAAGC,IACZ9jB,EAAI,CAAEjJ,EAAG2I,EAAGP,EAAGQ,EAAG26C,KAAM16C,EAAGkuD,uBAAwBhuD,GAAKG,EAAI,CAAE2uC,WAAYz6C,EAAG06C,WAAYx6C,EAAGw5D,WAAY/2D,EAAGi3D,eAAgB/2D,GAC9H,OAAY,MAAL1C,EAAY/e,GAAG,CAAC2qB,EAAGE,EAAGG,KAC3B,IAAI1C,EAAIw7B,GAAEC,UAAU1qD,GAAIoxB,EAAGC,GAC3B,OAAOM,EAAE,CAACL,EAAGE,EAAGvC,IAAK,CAAElqC,MAAOszB,GAAE4W,EAAG4B,GAAI87B,SAAUx7B,IAFhCxqB,CAGhBmqB,EAAGC,GAAKpqB,GAAG,CAAC2qB,EAAGE,EAAGG,EAAG1C,KACtB,IAAI0I,EAAI8yB,GAAEC,UAAU1qD,GAAIoxB,EAAGC,GAC3B,OAAOpC,EAAE,CAACqC,EAAGE,EAAGmG,EAAGhG,IAAK,CAAE5sC,MAAOszB,GAAEsf,EAAG9G,GAAI87B,SAAUx7B,IAF3CxqB,CAGRmqB,EAAGC,EAAGC,GAEX,IAAI0tD,GAAKvqE,GAAE,CAAE2rE,aAAcD,KAC3B,SAASE,GAAG56D,GACV,OAAO9e,GAAG8e,EAAG,IAAM,KAErB,IAAI66D,GAAK7rE,GAAE,CAAE8rE,eAAgBF,KAC7B,SAASG,GAAG/6D,GACV,OAAO9e,GAAG8e,EAAG,GAAK,IAEpB,IAAIg7D,GAAKhsE,GAAE,CAAEisE,YAAaF,KAC1B,SAASG,GAAGl7D,EAAGC,EAAIG,EAAGE,GAAI,EAAOC,EAAI,GACnC,IAAIwC,EAAI,EAAGC,EAAI,GACf,KAAOD,EAAI9C,GAAMD,EAAE69B,MACjB76B,EAAEwH,KAAK5T,GAAGoJ,EAAG+C,EAAG9C,IAAM8C,GAAK3C,EAC7B,GAAIE,EACF,KAAOyC,EAAI/C,EAAE69B,MAAQ,CACnB,IAAI56B,EAAIF,EAAI9C,EAAKD,EAAE69B,KAAM36B,EAAI1jB,GAAG,CAACoX,GAAGoJ,EAAG+C,EAAG9C,EAAKgD,GAAIzd,GAAG,CAACyd,GAAI1C,KAC3DyC,EAAEwH,KAAKtH,GAAIH,GAAK3C,EAEpB,OAAoB,IAAb4C,EAAEnkC,OAAeu7B,GAAG,GAAI,CAAC,EAAG6F,IAAO/M,GAAE1T,GAAGwjB,GAAI,CAACA,EAAEnkC,OAAQohC,IAEhE,IAAIk7D,GAAKnsE,GAAE,CAAEosE,OAAQF,KACrB,SAASG,GAAGr7D,EAAGC,EAAIG,EAAGE,EAAGC,EAAIy6D,IACtB,MAAL16D,IAAcA,EAAItc,GAAGic,IACrB,IAAI8C,EAAIo4D,GAAGn7D,EAAGC,EAAIG,GAAI4C,EAAIpV,GAAGmV,EAAGxC,EAAEN,IAClC,OAAOnM,GAAGkP,EAAG1C,GAEf,IAAIg7D,GAAKtsE,GAAE,CAAEusE,MAAOF,KACpB,SAASG,GAAGx7D,EAAGC,EAAIG,EAAGE,EAAGC,EAAI,WAAYwC,EAAI,GAC3C,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,iBAAkBiD,EAAIkH,GAAElK,EAAI,QAAS,gBAAiB,WAAYiD,EAAIiH,GAAE/J,EAAG,SAAU,gBAAiB,SAAUgD,EAAIH,EAAE66B,MAAM,GAClJvgE,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,6DAA6D56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,MAA6B,IAAf36B,EAAE66B,MAAM,GAAU,IAAM,oDAAoD16B,sBAAsBH,EAAE66B,UAAWvgE,GAAa,IAAX2lC,EAAE06B,MAAc16B,EAAE46B,MAAM,KAAO16B,EAAG,IAAM,qDAAqDA,oBAAoBH,EAAE66B,UAAWvgE,GAAe,IAAb+iC,EAAEzhC,OAAc,IAAM,wEAAwEyhC,EAAEzhC,WAAYtB,GAAE+iC,EAAE,IAAM,GAAKA,EAAE,IAAM,EAAG,IAAM,2CAA2CA,GAAM/iC,GAAQ,aAANgjC,GAA0B,YAANA,EAAiB,IAAM,+CAA+CA,GAC3nB,IAAIsE,EAAI,CAAE1c,MAAO6a,EAAGy4D,MAAOx4D,EAAGy4D,OAAQx4D,GAAKuD,EAAI,CAAEk1D,OAAQp7D,EAAGq7D,mBAAoB74D,EAAG84D,SAAUv7D,GAC7F,OAAOglC,GAAEC,UAAU5+D,GAAIk+B,EAAG4B,GAE5B,IAAIq1D,GAAK9sE,GAAE,CAAE+sE,eAAgBP,KAC7B,SAASQ,GAAGh8D,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,QAAS,gBAAiB,WACxCziC,GAAc,IAAZ0iC,EAAG29B,KAAY,IAAM,6DAA6D39B,EAAG29B,SACvF,IAAIx9B,EAAI,CAAEjY,MAAO8X,GACjB,OAAOqlC,GAAEC,UAAUx7D,GAAIq2B,EAAG,IAE5B,IAAI67D,GAAKjtE,GAAE,CAAEktE,eAAgBF,KAC7B,SAASG,GAAGn8D,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,QAAS,kBAAmBI,EAAIH,EAAG29B,KAAO,EAAGt9B,EAAIL,EAAG69B,MAAM19B,GACxE7iC,GAAE0iC,EAAG29B,MAAQ,EAAG,IAAM,yEAAyE39B,EAAG29B,SAAUrgE,GAAQ,IAAN+iC,EAAS,IAAM,+FAA+FA,MAC5N,IAAIC,EAAI,IAAI6yB,MAAMnzB,EAAG29B,MACrB,OAAOr9B,EAAEhb,KAAK,EAAG,EAAG6a,GAAIG,EAAEH,GAAK,EAAG9E,GAAG2E,EAAIM,GAE3C,IAAI67D,GAAKptE,GAAE,CAAEqtE,gBAAiBF,KAC9B,SAASG,GAAGt8D,GACV,IAAIC,EAAKkK,GAAEnK,EAAG,QAAS,kBAAmBI,EAAIH,EAAG29B,KAAO,EAAGt9B,EAAIL,EAAG69B,MAAM19B,GACxE7iC,GAAE0iC,EAAG29B,MAAQ,EAAG,IAAM,yEAAyE39B,EAAG29B,SAAUrgE,GAAQ,IAAN+iC,EAAS,IAAM,0FAA0FA,MACvN,IAAyE2C,EAArE1C,EAAIN,EAAGo9B,MAAOt6B,EAAIjkB,GAAGmhB,EAAI,WAAY+C,EAAI9I,GAAG,CAAC,MAAQ,KAAO,OAChE,OAAQ+F,EAAG29B,MACT,KAAK,EACH36B,EAAIzf,GAAG,UAAWuf,EAAGC,GACrB,MACF,KAAK,EACHC,EAAIzf,GAAG,YAAauf,EAAGC,GACvB,MACF,KAAK,EACHC,EAAIzf,GAAG,cAAeuf,EAAGC,GACzB,MACF,KAAK,EACHC,EAAIzf,GAAG,gBAAiBuf,EAAGC,GAC3B,MACF,KAAK,EACHC,EAAIzf,GAAG,kBAAmBuf,EAAGC,GAC7B,MACF,QACE,MAAM,IAAIJ,MAAM,4BAEpB,OAAOK,EAAIje,GAAGie,GAAI,GAAInkB,GAAGmkB,EAAG1C,GAE9B,IAAIg8D,GAAKvtE,GAAE,CAAEwtE,gBAAiBF,KAC9B,SAASG,GAAGz8D,EAAGC,EAAIG,EAAI,EAAGE,EAAI,IAC5B,IAAIC,EAAI4J,GAAEnK,EAAG,QAAS,mBAAoB,WAC1CziC,GAAa,IAAXgjC,EAAEq9B,KAAY,IAAM,gEAAgEr9B,EAAEq9B,SACxF,IAAI76B,EAAI,CAAE5a,MAAOoY,GAAKyC,EAAI,CAAE05D,QAASz8D,EAAI08D,UAAWv8D,EAAGw8D,OAAQt8D,GAC/D,OAAOglC,GAAEC,UAAU5wD,GAAIouB,EAAGC,GAE5B,IAAI65D,GAAK7tE,GAAE,CAAE8tE,kBAAmBL,KAChC,SAASM,GAAG/8D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GACrB,MAALzC,IAAcA,EAAI,IAAW,MAALC,IAAcA,EAAI4xB,OAAO6qC,mBAAyB,MAALj6D,IAAcA,EAAI,GACvF,IAAIC,EAAIhD,EAAE89B,MAAM,GAChB,OAAO19B,EAAIsC,KAAK3V,IAAIqT,EAAG4C,GAAIzlC,GAAE,GAAK+iC,GAAKA,GAAK,EAAG,IAAM,4CAA4CA,MAAO/iC,GAAa,IAAXyiC,EAAE49B,KAAY,IAAM,+CAA+C59B,EAAE49B,SAAUrgE,GAAiB,IAAfyiC,EAAE89B,MAAM,GAAU,IAAM,oDAAoD99B,EAAE89B,MAAM,IAAOvgE,GAAc,IAAZ0iC,EAAG29B,KAAY,IAAM,8BAA+BrgE,GAAE0iC,EAAG69B,MAAM,KAAO96B,EAAG,IAAM,sDAAsDA,cAAc/C,EAAG69B,MAAM,MAAOvgE,GAAE,GAAKwlC,GAAKA,GAAK,EAAG,IAAM,4CAA4CA,MAAO,CAAEk6D,cAAe78D,EAAG88D,aAAc58D,EAAG68D,eAAgB58D,EAAG68D,aAAcr6D,GAEhlB,SAASs6D,GAAGr9D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,mBACxC,IAAIj6D,EAAIoH,GAAEnK,EAAG,QAAS,oBAAqB,WAAYgD,EAAImH,GAAElK,EAAI,SAAU,oBAAqB,WAAYgD,EAAI85D,GAAGh6D,EAAGC,EAAG5C,EAAGE,EAAGC,GAC/HH,EAAI6C,EAAEg6D,cAAe38D,EAAI2C,EAAEi6D,aAAc38D,EAAI0C,EAAEk6D,eAC/C,IAAIj6D,EAAI,CAAE+5D,cAAe78D,EAAG88D,aAAc58D,EAAG68D,eAAgB58D,GAC7D,OAAO+kC,GAAEC,UAAU90D,GAAI,CAAEgrF,MAAO14D,EAAGu6D,OAAQt6D,GAAKE,GAElD,IAAIq6D,GAAKvuE,GAAE,CAAEwuE,mBAAoBH,KACjC,SAASI,GAAGz9D,EAAGC,EAAIG,GACjB,IAAIE,EAAIo9D,GAAG19D,EAAGC,EAAIG,GAAIG,EAAID,EAAI,IAAMA,EAAI,GAAKA,EAC7CN,EAAEqZ,OAAO9Y,EAAG,EAAGN,GAEjB,SAASy9D,GAAG19D,EAAGC,EAAIG,GACjB,OAAOu9D,GAAG39D,EAAGC,EAAIG,GAAKw9D,IAExB,SAASA,GAAG59D,EAAGC,GACb,OAAOD,EAAIC,EAAK,EAAID,EAAIC,GAAM,EAAI,EAEpC,SAAS09D,GAAG39D,EAAGC,EAAIG,GACjB,IAAIE,EAAI,EAAGC,EAAIP,EAAEnhC,OAAQkkC,EAAI,EAAGC,GAAI,EACpC,KAAO1C,EAAIC,GAAK,CACdwC,EAAIzC,GAAKC,EAAID,IAAM,GACnB,IAAI2C,EAAI7C,EAAEH,EAAID,EAAE+C,IAChBE,EAAI,EAAI3C,EAAIyC,EAAI,GAAKxC,EAAIwC,EAAGC,GAAKC,GAEnC,OAAOD,EAAI1C,GAAKA,EAAI,EAEtB,SAASu9D,GAAG79D,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,OAAOu9D,GAAG99D,EAAGC,EAAIG,EAAGE,EAAGC,EAAG,GAE5B,SAASw9D,GAAG/9D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,OAAO+6D,GAAG99D,EAAGC,EAAIG,EAAGE,EAAGC,EAAG,GAAG,EAAOwC,GAAG,GAEzC,SAASi7D,GAAGh+D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,OAAO+6D,GAAG99D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAAG,GAE/B,SAAS+6D,GAAG99D,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAAI,EAAOC,GAAI,EAAOC,GAAI,GACvD,IAAIE,EAAI,GACR,IAAK,IAAI0H,EAAI,EAAGA,EAAI7K,EAAGphC,OAAQisC,IAC7B7K,EAAG6K,GAAKvK,GAAK6C,EAAEoH,KAAK,CAAEyzD,MAAOh+D,EAAG6K,GAAIozD,SAAUpzD,EAAGqzD,mBAAoB,IACvE/6D,EAAEkwB,KAAK8qC,IACP,IAAIv5D,EAAI9B,EAAI,GAAK,GAAMA,EAAI,EAAG0D,EAAI,GAAIC,EAAI,GAC1C,KAAOD,EAAE5nC,OAASuhC,GAAKgD,EAAEvkC,OAAS,GAAK,CACrC,IAAIisC,EAAI1H,EAAEqZ,OAASwhD,MAAOp0D,EAAGq0D,SAAU9yD,EAAG+yD,mBAAoBzyD,GAAMZ,EACpE,GAAIjB,EAAItJ,EACN,MACF,IAAIoL,GAAI,EACR,IAAK,IAAIC,EAAInF,EAAE5nC,OAAS,EAAG+sC,GAAKF,IAAKE,EAAG,CACtC,IAAIC,EAAIwyD,GAAGr+D,EAAGoL,EAAG3E,EAAEmF,IACnB,GAAIC,GAAKvL,EAAG,CACVqL,GAAI,EACJ,MAEF,GAAIb,EAAEmzD,MAAQnzD,EAAEmzD,MAAQK,GAAGh+D,EAAGuE,EAAGgH,GAAIf,EAAEmzD,OAAS19D,EAC9C,MAEJuK,EAAEqzD,mBAAqB13D,EAAE5nC,OAAQ8sC,IAAMb,EAAEmzD,QAAUp0D,GAAKpD,EAAE+D,KAAKY,GAAI1E,EAAE8D,KAAKM,EAAEmzD,QAAUnzD,EAAEmzD,MAAQ19D,GAAKk9D,GAAGr6D,EAAG0H,EAAGszD,KAEhH,IAAIz3D,EAAIF,EAAE5nC,OAAQkoC,EAAI3G,EAAIuG,EAC1B1D,GAAK8D,EAAI,IAAMN,EAAE+D,QAAQ,IAAI4oB,MAAMrsB,GAAGxhB,KAAK,IAAKmhB,EAAE8D,QAAQ,IAAI4oB,MAAMrsB,GAAGxhB,KAAK,KAC5E,IAAIslB,EAAI,CAAE0zD,gBAAiB93D,GAC3B,OAAOzD,IAAM6H,EAAE2zD,eAAiB93D,GAAIxD,IAAM2H,EAAE4zD,aAAe93D,GAAIkE,EAEjE,SAASwzD,GAAGr+D,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE4T,SAAc,EAAL3T,EAAa,EAALA,EAAS,GAAIM,EAAIP,EAAE4T,SAAa,EAAJxT,EAAW,EAAJA,EAAQ,GAAI2C,EAAIL,KAAK3V,IAAIuT,EAAE,GAAIA,EAAE,IAAK0C,EAAIN,KAAK3V,IAAIuT,EAAE,GAAIA,EAAE,IAAK2C,EAAIP,KAAK3W,IAAIuU,EAAE,GAAIA,EAAE,IAAK4C,EAAIR,KAAK3W,IAAIuU,EAAE,GAAIA,EAAE,IAAK8C,EAAIV,KAAK3V,IAAIwT,EAAE,GAAIA,EAAE,IAAKsE,EAAInC,KAAK3V,IAAIwT,EAAE,GAAIA,EAAE,IAAKkG,EAAI/D,KAAK3W,IAAIwU,EAAE,GAAIA,EAAE,IAAKmG,EAAIhE,KAAK3W,IAAIwU,EAAE,GAAIA,EAAE,IAAKoG,GAAK1D,EAAIF,IAAMG,EAAIF,GAAI+D,GAAKN,EAAIrD,IAAMsD,EAAI7B,GACpU,GAAI8B,GAAK,GAAKI,GAAK,EACjB,OAAO,EACT,IAAI8D,EAAInI,KAAK3W,IAAIgX,EAAGK,GAAI0H,EAAIpI,KAAK3W,IAAIiX,EAAG6B,GAAIgF,EAAInH,KAAK3V,IAAIkW,EAAGwD,GAAI2E,EAAI1I,KAAK3V,IAAImW,EAAGwD,GAAIgF,EAAIhJ,KAAK3W,IAAI8d,EAAIgB,EAAG,GAAKnI,KAAK3W,IAAIqf,EAAIN,EAAG,GAC7H,OAAOY,GAAK/E,EAAII,EAAI2E,GAEtB,SAAS4yD,GAAGt+D,EAAGC,EAAIG,GACjB,IAAIE,EAAIoC,KAAK7d,IAAIob,EAAKG,EAAIA,GAC1B,OAAOA,GAAKJ,EAAIM,EAAI,EAEtB,SAAS89D,GAAGp+D,EAAGC,GACb,OAAOD,EAAEi+D,MAAQh+D,EAAGg+D,OAASj+D,EAAEi+D,QAAUh+D,EAAGg+D,OAASh+D,EAAGi+D,SAAWl+D,EAAEk+D,SAEvEpzB,eAAe4zB,GAAG1+D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,mBAC9C,IAAIj6D,EAAIoH,GAAEnK,EAAG,QAAS,0BAA2BgD,EAAImH,GAAElK,EAAI,SAAU,0BAA2BgD,EAAI85D,GAAGh6D,EAAGC,EAAG5C,EAAGE,EAAGC,GACnHH,EAAI6C,EAAEg6D,cAAe38D,EAAI2C,EAAEi6D,aAAc38D,EAAI0C,EAAEk6D,eAC/C,IAAIj6D,QAAUiM,QAAQ5zB,IAAI,CAACwnB,EAAEwY,OAAQvY,EAAEuY,SAAUnY,EAAIF,EAAE,GAAI2B,EAAI3B,EAAE,IAAMq7D,gBAAiB93D,GAAMo3D,GAAGz6D,EAAGyB,EAAGzE,EAAGE,EAAGC,GAC7G,OAAOwC,IAAM/C,GAAK+C,EAAEpgB,UAAWqgB,IAAM/C,GAAM+C,EAAErgB,UAAWuX,GAAGuM,EAAG,SAEhE,IAAIk4D,GAAKD,GACT,SAASE,GAAG5+D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,kBAAmBj6D,EAAI,GAC/D,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,qBAAsBiD,EAAIkH,GAAElK,EAAI,SAAU,qBAAsBiD,EAAI65D,GAAG/5D,EAAGC,EAAG7C,EAAGE,EAAGC,EAAGwC,GAC5G3C,EAAI8C,EAAE+5D,cAAe38D,EAAI4C,EAAEg6D,aAAc38D,EAAI2C,EAAEi6D,eAAgBp6D,EAAIG,EAAEk6D,aACrE,IAAIh6D,EAAI,CAAEq4D,MAAOz4D,EAAGs6D,OAAQr6D,GAAK4B,EAAI,CAAEo4D,cAAe78D,EAAG88D,aAAc58D,EAAG68D,eAAgB58D,EAAG68D,aAAcr6D,GAAK0D,EAAI6+B,GAAEC,UAAU10D,GAAIuyB,EAAGyB,GACvI,MAAO,CAAE05D,gBAAiB93D,EAAE,GAAI+3D,eAAgB/3D,EAAE,IAEpD,IAAIo4D,GAAK7vE,GAAE,CAAE8vE,4BAA6BF,KAC1C9zB,eAAei0B,GAAG/+D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,kBAAmBj6D,EAAI,GACrE,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,0BAA2BiD,EAAIkH,GAAElK,EAAI,SAAU,0BAA2BiD,EAAI65D,GAAG/5D,EAAGC,EAAG7C,EAAGE,EAAGC,EAAGwC,GACtH3C,EAAI8C,EAAE+5D,cAAe38D,EAAI4C,EAAEg6D,aAAc38D,EAAI2C,EAAEi6D,eAAgBp6D,EAAIG,EAAEk6D,aACrE,IAAIh6D,QAAU+L,QAAQ5zB,IAAI,CAACynB,EAAEuY,OAAQtY,EAAEsY,SAAU1W,EAAIzB,EAAE,GAAIqD,EAAIrD,EAAE,IAAMm7D,gBAAiB73D,EAAG83D,eAAgB73D,GAAMq3D,GAAGn5D,EAAG4B,EAAGrG,EAAGE,EAAGC,EAAGwC,GACnI,OAAOC,IAAMhD,GAAKgD,EAAErgB,UAAWsgB,IAAMhD,GAAMgD,EAAEtgB,UAAW,CAAE47E,gBAAiBrkE,GAAGwM,EAAG,SAAU83D,eAAgBtkE,GAAGyM,IAEhH,IAAIq4D,GAAKD,GACT,SAASE,GAAGj/D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,kBAAmBj6D,GAAI,GAC/D,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,qBAAsBiD,EAAIkH,GAAElK,EAAI,SAAU,qBAAsBiD,EAAI65D,GAAG/5D,EAAGC,EAAG7C,EAAGE,EAAGC,EAAG,MAAO6C,EAAIF,EAAE+5D,cAAep4D,EAAI3B,EAAEg6D,aAAcz2D,EAAIvD,EAAEi6D,eAAgBz2D,EAAI,CAAE+0D,MAAOz4D,EAAGs6D,OAAQr6D,GAAK0D,EAAI,CAAEs2D,cAAe75D,EAAG85D,aAAcr4D,EAAGs4D,eAAgB12D,EAAGy4D,mBAAoBn8D,GAAKgE,EAAIu+B,GAAEC,UAAU50D,GAAI+1B,EAAGC,GAC3T,MAAO,CAAE43D,gBAAiBx3D,EAAE,GAAI03D,aAAc13D,EAAE,IAElD,IAAIo4D,GAAKnwE,GAAE,CAAEowE,yBAA0BH,KACvCn0B,eAAeu0B,GAAGr/D,EAAGC,EAAIG,EAAGE,EAAI,GAAKC,EAAI4xB,OAAO6qC,kBAAmBj6D,GAAI,GACrE,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,0BAA2BiD,EAAIkH,GAAElK,EAAI,SAAU,0BAA2BiD,EAAI65D,GAAG/5D,EAAGC,EAAG7C,EAAGE,EAAGC,EAAG,MAAO6C,EAAIF,EAAE+5D,cAAep4D,EAAI3B,EAAEg6D,aAAcz2D,EAAIvD,EAAEi6D,gBAAiBz2D,EAAGC,SAAWwI,QAAQ5zB,IAAI,CAACynB,EAAEuY,OAAQtY,EAAEsY,UAAYgjD,gBAAiBx3D,EAAG03D,aAAc5zD,GAAMkzD,GAAGr3D,EAAGC,EAAGvD,EAAGyB,EAAG4B,EAAG1D,GAC1S,OAAOC,IAAMhD,GAAKgD,EAAErgB,UAAWsgB,IAAMhD,GAAMgD,EAAEtgB,UAAW,CAAE47E,gBAAiBrkE,GAAG6M,EAAG,SAAU03D,aAAcrqE,GAAGyW,EAAG,UAEjH,IAAIy0D,GAAKD,GACT,SAASE,GAAGv/D,EAAGC,EAAIG,GAAI,EAAOE,GAAI,GAChC,IAAIC,EAAI4J,GAAEnK,EAAG,SAAU,kBACvBziC,GAAa,IAAXgjC,EAAEq9B,MAAyB,IAAXr9B,EAAEq9B,KAAY,IAAM,gEAAgEr9B,EAAEq9B,SAAUrgE,GAAgB,IAAd0iC,EAAGphC,OAAc,IAAM,6DAA6DohC,MAAQ1iC,IAAQ,IAAN+iC,IAAqB,IAANF,EAAa,IAAM,qFACpP,IAAI2C,EAAIxC,EAAGyC,GAAI,EACJ,IAAXzC,EAAEq9B,OAAe56B,GAAI,EAAMD,EAAI7P,GAAEqN,EAAG,CAAC,EAAGA,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,MACxE,MAAS79B,EAAIgD,EAAI,CAAEu8D,OAAQz8D,GAAKG,EAAI,CAAEu8D,aAAcr/D,EAAGs/D,iBAAkBp/D,EAAGu9B,KAAM59B,GAAMmD,EAAIkiC,GAAEC,UAAUtxD,GAAIgvB,EAAGC,GAC/G,OAAOF,EAAI9P,GAAEkQ,EAAG,CAACA,EAAE06B,MAAM,GAAI16B,EAAE06B,MAAM,GAAI16B,EAAE06B,MAAM,KAAO16B,EAE1D,IAAIu8D,GAAK3wE,GAAE,CAAE4wE,gBAAiBL,KAC9B,SAASM,GAAG7/D,EAAGC,EAAIG,GAAI,EAAOE,GAAI,GAChC,IAAIC,EAAI4J,GAAEnK,EAAG,SAAU,yBACvBziC,GAAa,IAAXgjC,EAAEq9B,MAAyB,IAAXr9B,EAAEq9B,KAAY,IAAM,uEAAuEr9B,EAAEq9B,SAAUrgE,GAAgB,IAAd0iC,EAAGphC,OAAc,IAAM,oEAAoEohC,MAAQ1iC,GAAc,YAAZgjC,EAAE88B,OAAmC,UAAZ98B,EAAE88B,MAAmB,IAAM,oDAAqD9/D,IAAQ,IAAN+iC,IAAqB,IAANF,EAAa,IAAM,4FAC7W,IAAI2C,EAAIxC,EAAGyC,GAAI,EACJ,IAAXzC,EAAEq9B,OAAe56B,GAAI,EAAMD,EAAI7P,GAAEqN,EAAG,CAAC,EAAGA,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,MACxE,MAAS79B,EAAIgD,EAAI,CAAEu8D,OAAQz8D,GAAKG,EAAI,CAAEu8D,aAAcr/D,EAAGs/D,iBAAkBp/D,EAAGu9B,KAAM59B,GAAMmD,EAAIkiC,GAAEC,UAAUlxD,GAAI4uB,EAAGC,GAC/G,OAAOF,EAAI9P,GAAEkQ,EAAG,CAACA,EAAE06B,MAAM,GAAI16B,EAAE06B,MAAM,GAAI16B,EAAE06B,MAAM,KAAO16B,EAE1D,IAAI08D,GAAK9wE,GAAE,CAAE+wE,uBAAwBF,KACrC,SAASG,GAAGhgE,EAAGC,EAAK,SAAUG,GAAI,EAAOE,EAAI,IAC3C,IAAyHuE,EAAG4B,EAAGC,EAAGC,EAA9HpG,EAAI4J,GAAEnK,EAAG,QAAS,aAAc+C,EAAI,MAAQC,EAAI,KAAOC,EAAI,KAAOC,EAAI3C,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAI16B,EAAIxV,GAAGsM,GAAG,CAACoG,IAAK,KACnH,GAAI/iC,GAAa,IAAXgjC,EAAEq9B,KAAY,IAAM,yDAAyDr9B,EAAEq9B,SAAUrgE,GAAiB,IAAfgjC,EAAEu9B,MAAM,IAA2B,IAAfv9B,EAAEu9B,MAAM,GAAU,IAAM,0EAA0Ev9B,EAAEu9B,MAAM,OAAQvgE,GAAc,UAAZgjC,EAAE88B,OAAiC,YAAZ98B,EAAE88B,MAAqB,IAAM,sEAAsE98B,EAAE88B,UAAW9/D,GAAS,SAAP0iC,GAAwB,WAAPA,EAAiB,IAAM,0CAA0CA,GAAsB,IAAfM,EAAEu9B,MAAM,GAAU,EAC1dj5B,EAAG4B,EAAGC,GAAKtO,GAAGmI,EAAG,CAAC,EAAG,EAAG,IAAK,GAC9B,IAAIuK,EAAIld,GAAGiX,EAAG9B,GAAI8G,EAAIjc,GAAG6Y,EAAGzD,GAAIoI,EAAIxd,GAAG8Y,EAAGzD,GAC1C0D,EAAIvrB,GAAGA,GAAG0vB,EAAGjB,GAAIuB,QAEjBzE,EAAI3G,EACN,GAAW,SAAPC,EAAe,CACjB,IAAI6K,EAAIhtB,GAAGgB,GAAGkV,GAAG2S,GAAI,SAAU3M,GAAG,IAAK,KACvCoJ,EAAI68D,GAAGn1D,EAAG5H,GAEZ,IAAI6D,EAAI3G,EAAI1W,GAAGid,EAAGvD,GAAKxb,GAAG+e,EAAGvD,GAC7B,OAAOtkB,GAAG8O,GAAGmZ,EAAG,KAAM,SAExB,SAASk5D,GAAGjgE,EAAGC,GACb,IAA4C8C,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAvDzE,EAAIlG,GAAG,EAAE,IAAKoG,EAAIpG,GAAG,CAAC,IAAKqG,EAAIrG,GAAG,CAAC,IACvC,IAAK,IAAIuM,EAAI,EAAGA,EAAIzG,EAAE69B,KAAO,EAAGp3B,IAAK,CACnC1D,EAAInM,GAAGoJ,EAAG,EAAGyG,EAAI,GAAIzD,EAAIpM,GAAGoJ,EAAGyG,EAAI,GAAIrD,EAAIpgB,GAAGwW,GAAGuJ,GAAI9C,GAAK4E,EAAI7hB,GAAGwW,GAAGwJ,GAAI/C,GACxE,IAAIyG,EAAIlN,GAAG5L,GAAGmV,EAAGnR,GAAG,EAAGmR,EAAE86B,QACzB56B,EAAIjgB,GAAG0jB,EAAGlN,GAAGuJ,IACb,IAAI4D,EAAInhB,GAAGwd,EAAE86B,MAAO/6B,EAAE86B,MAAO92B,EAAI3rB,GAAGwW,GAAG,EAAGoR,EAAE66B,MAAOl3B,GAAIkE,EAAIjd,GAAGoV,EAAG+D,GACjE7D,EAAIlgB,GAAGwW,GAAGqR,GAAIrR,GAAGwJ,IACjB,IAAI8H,EAAIxR,GAAG2J,EAAGC,GAAI2G,EAAIvQ,GAAG2J,EAAGC,GAAIkI,EAAIxd,GAAGwV,EAAGyB,GAC1CtE,EAAI3S,GAAGA,GAAGwd,EAAGN,GAAIjB,GACjB,IAAI6B,EAAI9jB,GAAG2Y,EAAGD,GACdA,EAAI1B,GAAG8M,EAAGnL,EAAGD,GAAIF,EAAIxB,GAAG8M,EAAGxR,GAAG,CAACuM,IAAKrG,GAEtC,OAAOA,EAET,IAAI8/D,GAAKlxE,GAAE,CAAEmxE,WAAYH,KACzB,SAASI,GAAGpgE,EAAGC,EAAIG,EAAI,UAAWE,EAAI,WAAYC,EAAI,EAAGwC,GACvD,IAAIC,EAAImH,GAAEnK,EAAG,QAAS,YAAa,WAAYiD,EAAIkH,GAAElK,EAAI,aAAc,YAAa,WACpF1iC,GAAa,IAAXylC,EAAE46B,KAAY,IAAM,yDAAyD56B,EAAE46B,SAAUrgE,GAAa,IAAX0lC,EAAE26B,OAAe36B,EAAE66B,MAAM,KAAO96B,EAAE86B,MAAM,IAAqB,IAAf76B,EAAE66B,MAAM,KAA4B,IAAf76B,EAAE66B,MAAM,GAAU,IAAM,oEAAqEvgE,GAAO,MAALwlC,GAA0B,IAAbA,EAAElkC,OAAc,IAAM,4EAA4EkkC,MAC9W,IAAIG,EAAI,CAAE/a,MAAO6a,EAAGq9D,WAAYp9D,GAAKG,EAAI,CAAEk9D,cAAelgE,EAAGmgE,SAAUjgE,EAAGq8D,UAAWp8D,EAAGm4D,YAAa31D,GACrG,OAAOuiC,GAAEC,UAAU5rD,GAAIupB,EAAGE,GAE5B,IAAIo9D,GAAKxxE,GAAE,CAAEyxE,WAAYL,KACzB,SAASM,GAAG1gE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,IAAK,YAClBziC,GAAE+iC,EAAEs9B,MAAQ,EAAG,IAAM,4CAA4Ct9B,EAAEs9B,SACnE,IAA6C36B,EAAGC,EAA5C3C,EAAID,EAAEw9B,OAAQ/6B,EAAGC,GAAK1C,EAAEw9B,MAAMnnC,OAAO,GAC5B,iBAANsJ,GAAkB1iC,GAAE0iC,EAAK,IAAM,EAAG,IAAM,gDAAgDA,MAAQ1iC,GAAE0iC,GAAM8C,EAAG,IAAM,yBAAyB9C,mDAAoD8C,OAAQE,EAAIkH,GAAElK,EAAK,EAAI8C,EAAI9C,EAAI,WAAY,cAAgB1iC,GAAe,UAAb0iC,EAAGo9B,MAAmB,IAAM,kDAAmDp6B,EAAIrE,GAAGpV,GAAGyW,EAAI,GAAI8C,EAAG7V,GAAG+S,EAAI8C,KAAkB,iBAAL3C,GAAiB7iC,GAAE6iC,EAAI,IAAM,EAAG,IAAM,gDAAgDA,MAAO7iC,GAAE6iC,GAAK4C,EAAG,IAAM,yBAAyB5C,sDAAsD4C,OAAQE,EAAIiH,GAAE/J,EAAI,EAAI4C,EAAI5C,EAAG,WAAY,cAAgB7iC,GAAc,UAAZ6iC,EAAEi9B,MAAmB,IAAM,kDAAmDn6B,EAAItE,GAAGpV,GAAG4W,EAAG,GAAI4C,EAAG9V,GAAGkT,EAAG4C,KACztB,IAAII,EAAIlQ,GAAEtB,GAAG,EAAGmR,EAAG,EAAG,SAAU,EAAE,EAAG,IAAK8B,EAAIjT,GAAG,EAAGoR,EAAG,EAAG,SAAUyD,EAAInN,GAAG8J,EAAGyB,GAAI6B,EAAI1b,GAAGtB,GAAG+c,EAAGxD,GAAInb,GAAG2e,EAAGvY,GAAGgV,KAAMyD,EAAI3H,GAAG,CAAC+D,EAAGC,GAAI1C,EAAE+8B,OACnI,OAAOnqC,GAAE4F,GAAG4D,GAAGxJ,GAAEoN,EAAG,EAAE,EAAGyC,EAAGC,KAAKkwB,IAAKnsB,GAAMnI,GAAG8H,EAAGK,EAAGJ,KAAMpG,GAE7D,IAAIogE,GAAK3xE,GAAE,CAAE4xE,UAAWF,KACxB,SAASG,GAAG7gE,GACV,IAAIC,EACJ,GAAImzB,MAAMC,QAAQrzB,GAAI,CACpBC,GAAK,EAAO1iC,GAAO,MAALyiC,GAAaA,EAAEnhC,OAAS,EAAG,IAAM,qEAC/C,IAAI0hC,EAAIP,EAAE,GAAG89B,MAAM,GACnB,IAAK,IAAI/6B,EAAI,EAAGA,EAAI/C,EAAEnhC,SAAUkkC,EAC9BxlC,GAAEyiC,EAAE+C,GAAG+6B,MAAM,KAAOv9B,EAAG,IAAM,iEAAiEP,EAAE+C,GAAG+6B,MAAM,UAAUv9B,WAErHN,GAAK,EAAMD,EAAI5H,GAAG4H,EAAGA,EAAE89B,MAAM,GAAI,GAAG5K,IAAK3yB,GAAM3H,GAAG2H,EAAG,CAAC,KACxDhjC,GAAEyiC,EAAEnhC,QAAUmhC,EAAE,GAAG89B,MAAM,GAAI,IAAM,oCAAoC99B,EAAEnhC,yCAAyCmhC,EAAE,GAAG89B,MAAM,QAC7H,IAAI19B,EAAI,GAAIE,EAAIN,EAChB,IAAK,IAAIO,EAAI,EAAGA,EAAIP,EAAEnhC,SAAU0hC,EAC9BH,EAAEoK,KAAK86B,GAAEnqC,KAAK,KACZ,IAAI4H,EAAIzC,EAAEC,GACV,GAAIA,EAAI,EACN,IAAK,IAAIyC,EAAI,EAAGA,EAAIzC,IAAKyC,EAAG,CAC1B,IAAIC,EAAIrV,GAAG4L,GAAG5L,GAAGwS,EAAE4C,GAAID,IAAK3C,EAAE4C,IAC9BD,EAAIzJ,GAAGyJ,EAAGE,GAEd,OAAOjgB,GAAG+f,EAAGzU,GAAGyU,EAAG,iBAEvB,OAAO9C,EAAKnH,GAAGsH,EAAG,GAAKA,EAEzB,IAAI0gE,GAAK9xE,GAAE,CAAE+xE,aAAcF,KAC3B,SAASG,GAAGhhE,EAAGC,GAAK,GAClB,GAAI1iC,GAAEyiC,EAAE49B,MAAQ,EAAG,IAAM,gEAAgE59B,EAAE49B,MAAoB,IAAX59B,EAAE49B,KACpG,OAAOqjC,GAAGjhE,EAAGC,GACf,CACE,IAAIG,EAAIJ,EAAE89B,MAAMnnC,MAAM,EAAGqJ,EAAE89B,MAAMj/D,OAAS,GAAGJ,OAAO,CAACykC,EAAGE,IAAMF,EAAIE,GAAI9C,EAAI5D,GAAGxJ,GAAE8M,EAAG,CAACI,EAAGJ,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,GAAImhC,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,KAAM,GAAI0hC,EAAI,GAAIwC,EAAI,GAClKzC,EAAEgY,QAASpV,IACT,IAAKE,EAAGyB,GAAKo8D,GAAG/9D,EAAGjD,GACnBM,EAAEiK,KAAKpH,GAAIL,EAAEyH,KAAK3F,KAEpB,IAAI7B,EAAI9P,GAAE4F,GAAGyH,EAAG,GAAIP,EAAE89B,OAAQ76B,EAAI/P,GAAE4F,GAAGiK,EAAG,GAAI/C,EAAE89B,OAChD,MAAO,CAAC96B,EAAGC,IAGf,SAASg+D,GAAGjhE,EAAGC,GAAK,GAClB,OAAOqlC,GAAEnqC,KAAK,KACZ59B,GAAqB,IAAnByiC,EAAE89B,MAAMj/D,OAAc,IAAM,0CAA0CmhC,EAAE89B,MAAMj/D,mBAChF,IAAIuhC,EAAIJ,EAAE89B,MAAM,GAAIx9B,EAAIN,EAAE89B,MAAM,GAAIv9B,EAAInb,GAAGgb,GAAI2C,EAAI3jB,GAAG4gB,GAAIgD,EAAI5I,GAAG,CAAC,CAAC,IAAK,CAAC,EAAG,IAAK6I,EAAI7jB,GAAG4jB,GAAIE,EAAI9C,GAAKE,EAAIA,EAAIF,EAC7G,IAAK,IAAIgD,EAAI,EAAGA,EAAIF,IAAKE,EAAG,CAC1B,IAAIyB,EAAI9B,EAAG0D,EAAIxD,EAAGyD,EAAInG,GACrB0C,EAAGF,EAAGxC,GAAK+kC,GAAEnqC,KAAK,KACjB,IAAIwL,EAAI/P,GAAGmM,EAAG,CAACK,EAAGA,GAAI,CAAChD,EAAIgD,EAAG,IAAK2D,EAAIzY,GAAGqY,GAAIkE,EAAIjU,GAAGmM,EAAG,CAACK,EAAGA,GAAI,CAAC,EAAG,IAAK0H,EAAIlM,GAAGhX,GAAGijB,EAAG,GAAIzQ,GAAG,CAAC,EAAE,KAAMA,GAAG,CAAC,CAAC,MAAOyP,EAAIvQ,GAAGuR,EAAGjd,GAAGkd,EAAG/D,IAAKqE,EAAIpoB,GAAG2jB,EAAGkD,GAC9H5G,EAAJ,IAAfmI,EAAE0yB,MAAM,GAAe1+C,GAAG4jB,GAASxjB,GAAG,CAACwjB,EAAGpM,GAAGwU,EAAG,CAAC,EAAG,GAAI,CAACA,EAAE0yB,MAAM,GAAK,EAAG1yB,EAAE0yB,MAAM,MAAO,GACxF,IAAIpyB,EAAIxd,GAAGlL,GAAG4I,GAAGkf,EAAGjB,GAAI9C,IAAK4E,EAAI/U,GAAGmM,EAAG,CAACK,EAAG,GAAI,CAAChD,EAAIgD,EAAG9C,IAAKsL,EAAIhe,GAAG8d,EAAGzI,GAAI4I,EAAI/P,GAAGmH,GACjF,GAAU,IAANG,EACFL,EAAIzJ,GAAGqS,EAAG/f,GAAGggB,EAAGhgB,GAAGigB,EAAGF,SACnB,CACH,IAAIM,EAAI3S,GAAGqS,EAAG/f,GAAGggB,EAAGhgB,GAAGigB,EAAGF,KAC1B5I,EAAIvjB,GAAG,CAACoX,GAAGmM,EAAG,CAAC,EAAG,GAAI,CAACK,EAAG9C,IAAK2L,GAAI,GAErC,IAAIF,EAAIjQ,GAAG8P,GAAII,EAAIpV,GAAG2J,EAAG,CAAC,EAAG6C,GAAI,CAAChD,EAAGG,EAAEu9B,MAAM,GAAK16B,IAClD,GAAU,IAANA,EACF7C,EAAIjH,GAAG0S,EAAGpgB,GAAGA,GAAGogB,EAAG/I,GAAI8I,QACpB,CACH,IAAIE,EAAI3S,GAAG0S,EAAGpgB,GAAGA,GAAGogB,EAAG/I,GAAI8I,IAC3BxL,EAAI/gB,GAAG,CAACoX,GAAG2J,EAAG,CAAC,EAAG,GAAI,CAACH,EAAGgD,IAAK6I,GAAI,GAErC,MAAO,CAAChJ,EAAGF,EAAGxC,KACZ3d,GAAG,CAACiiB,EAAG4B,EAAGC,IAEhB,OAAQzG,GAAMG,EAAIE,IAAMC,EAAI3J,GAAG2J,EAAG,CAAC,EAAG,GAAI,CAACH,EAAGE,IAAKyC,EAAInM,GAAGmM,EAAG,CAAC,EAAG,GAAI,CAACzC,EAAGA,KAAM,CAACC,EAAGwC,KAGvF,IACItvB,GADAytF,GAAKlyE,GAAE,CAAEmyE,IAAKH,KAKlB,SAASI,GAAGphE,EAAGC,EAAIG,EAAI3sB,GAAG4tF,wBACxB,IAAI/gE,EAAI6J,GAAEnK,EAAG,SAAU,uBAAwBO,EAAI,KAC7C,MAANN,IAAeM,EAAI4J,GAAElK,EAAI,UAAW,wBACpC,IAAI8C,EAAS,MAALxC,EAAYD,EAAI1S,GAAG0S,EAAGC,GAC9B,GAAIH,IAAM3sB,GAAG6tF,KACX,OAAOv+D,EACT,GAAI3C,IAAM3sB,GAAG8tF,IACX,OAAO/nE,GAAGuJ,GACZ,GAAI3C,IAAM3sB,GAAG+tF,KAAM,CACjB,GAAS,MAALjhE,EACF,OAAO7T,GAAGqW,GACZ,CACE,IAAIC,EAAI1C,EAAEu9B,KAAOt9B,EAAEs9B,KAAM56B,EAAIjgB,GAAGwW,GAAGuJ,GAAIvJ,GAAG+G,IAC1C,OAAOyC,EAAI,EAAIhgB,GAAGigB,EAAG7O,GAAG4O,IAAMC,GAGlC,GAAI7C,IAAM3sB,GAAG4tF,uBAAwB,CACnC,GAAS,MAAL9gE,EACF,OAAOvd,GAAGwW,GAAGuJ,GAAI3O,GAAGkM,EAAEu9B,OACxB,CACE,IAAI76B,EAAIpV,GAAG2S,EAAG3R,GAAG0R,EAAEw9B,QAAS76B,EAAInkB,GAAG0a,GAAGhL,GAAGwU,EAAG5O,GAAG,KAAM,WACrD,OAAOpR,GAAGwW,GAAGuJ,GAAIE,IAGrB,MAAML,MAAM,sBAAsBxC,IA3BpC,SAAUJ,GACRA,EAAEA,EAAEshE,KAAO,GAAK,OAAQthE,EAAEA,EAAEwhE,KAAO,GAAK,OAAQxhE,EAAEA,EAAEuhE,IAAM,GAAK,MAAOvhE,EAAEA,EAAEqhE,uBAAyB,GAAK,0BAD1G,CAEG5tF,KAAOA,GAAK,KA2Bf,IAAIguF,GAAKzyE,GAAE,CAAE0yE,qBAAsBN,KACnC,SAASO,GAAG3hE,EAAGC,EAAIG,EAAGE,EAAI7sB,GAAG4tF,wBAC3B,IAAI9gE,EAAI4J,GAAEnK,EAAG,SAAU,sBAAuB+C,EAAIoH,GAAElK,EAAI,cAAe,sBAAuB+C,EAAI,KAC7F,MAAL5C,IAAc4C,EAAImH,GAAE/J,EAAG,UAAW,uBAAwBgyB,GAAG7xB,EAAEu9B,MAAO/6B,EAAE+6B,MAAO,iCAC/E,IAAI76B,EAAIloB,GAAGue,GAAGiH,EAAGwC,IACjB,OAAO0+D,GAAGx+D,EAAGD,EAAG1C,GAElB,IAAIshE,GAAK5yE,GAAE,CAAE6yE,oBAAqBF,KAClC,SAASG,GAAG9hE,EAAGC,EAAIG,EAAGE,EAAGC,EAAI9sB,GAAG4tF,wBAC9B,IAAIt+D,EAAIoH,GAAEnK,EAAG,SAAU,kBAAmBgD,EAAImH,GAAElK,EAAI,cAAe,kBAAmBgD,EAAI,KACrF,MAAL3C,IAAc2C,EAAIkH,GAAE7J,EAAG,UAAW,mBAAoB8xB,GAAGrvB,EAAE+6B,MAAO96B,EAAE86B,MAAO,6BAC3E,IAAI56B,EAAI9O,GAAG,GAAIgP,EAAI9J,GAAG4J,EAAG1J,GAAG5L,GAAGmV,EAAGC,GAAI5C,GAAG,IACzC,OAAOqhE,GAAGr+D,EAAGH,EAAG1C,GAElB,IAAIwhE,GAAK/yE,GAAE,CAAEgzE,gBAAiBF,KAC9B,SAASG,GAAGjiE,EAAGC,EAAIG,EAAGE,EAAI7sB,GAAG4tF,wBAC3B,IAAI9gE,EAAI4J,GAAEnK,EAAG,SAAU,aAAc+C,EAAIoH,GAAElK,EAAI,cAAe,aAAc+C,EAAI,KAC3E,MAAL5C,IAAc4C,EAAImH,GAAE/J,EAAG,UAAW,cAAegyB,GAAG7xB,EAAEu9B,MAAO/6B,EAAE+6B,MAAO,wBACtE,IAAI76B,EAAI7O,GAAG,GACXmM,EAAIjH,GAAG1L,GAAGwG,GAAG,GAAImM,GAAI0C,GACrB,IAAIC,EAAItQ,GAAG0G,GAAG2J,EAAGrV,GAAG2S,EAAGwC,KACvB,OAAO0+D,GAAGv+D,EAAGF,EAAG1C,GAElB,IAAI4hE,GAAKlzE,GAAE,CAAEmzE,WAAYF,KACzB,SAASG,GAAGpiE,EAAGC,EAAIG,EAAGE,EAAI,EAAGC,EAAI9sB,GAAG4tF,wBAClC,IAAIt+D,EAAIoH,GAAEnK,EAAG,SAAU,aAAcgD,EAAImH,GAAElK,EAAI,cAAe,aAAcgD,EAAI,KAC3E,MAAL7C,IAAc6C,EAAIkH,GAAE/J,EAAG,UAAW,cAAegyB,GAAGrvB,EAAE+6B,MAAO96B,EAAE86B,MAAO,wBACtE,IAAI56B,EAAI9O,GAAGkM,GAAI8C,EAAIroB,GAAGue,GAAG0J,EAAGD,IAAK8B,EAAI3X,GAAGkW,EAAGF,GAAIuD,EAAInN,GAAG8J,EAAGyB,GAAI6B,EAAItrB,GAAGwS,GAAGwG,GAAG,IAAMoE,GAAGqM,IAAKjX,GAAGsV,EAAGuD,IAC9F,OAAOg7D,GAAG/6D,EAAGzD,EAAG1C,GAElB,IAAI8hE,GAAKrzE,GAAE,CAAEszE,WAAYF,KACzB,SAASG,GAAGviE,EAAGC,EAAIG,EAAGE,EAAI,KAAMC,EAAI9sB,GAAG4tF,wBACrC,IAAIt+D,EAAIoH,GAAEnK,EAAG,SAAU,WAAYgD,EAAImH,GAAElK,EAAI,cAAe,WAAYgD,EAAI,KACvE,MAAL7C,IAAc6C,EAAIkH,GAAE/J,EAAG,UAAW,YAAagyB,GAAGrvB,EAAE+6B,MAAO96B,EAAE86B,MAAO,sBACpE,IAAI56B,EAAI9O,GAAG,GAAIgP,EAAIhP,GAAGkM,GAAIuE,EAAI3W,GAAGN,GAAGmV,EAAGzY,GAAGlP,GAAG4nB,EAAGI,MAAOqD,EAAI7Y,GAAG0L,GAAG4J,EAAGH,GAAIzY,GAAGlP,GAAGke,GAAG4J,EAAGF,GAAII,KAAMsD,EAAIpN,GAAGuL,EAAG4B,GACxG,OAAOg7D,GAAG/6D,EAAGzD,EAAG1C,GAElB,IAAIiiE,GAAKxzE,GAAE,CAAEyzE,SAAUF,KACvB,SAASG,GAAG1iE,EAAGC,EAAIG,EAAGE,EAAI7sB,GAAG4tF,wBAC3B,IAAI9gE,EAAI4J,GAAEnK,EAAG,SAAU,oBAAqB+C,EAAIoH,GAAElK,EAAI,cAAe,oBAAqB+C,EAAI,KACzF,MAAL5C,IAAc4C,EAAImH,GAAE/J,EAAG,UAAW,qBAAsBgyB,GAAG7xB,EAAEu9B,MAAO/6B,EAAE+6B,MAAO,+BAC7E,IAAI76B,EAAIvK,GAAG6H,EAAGwC,GACd,OAAO0+D,GAAGx+D,EAAGD,EAAG1C,GAElB,IAAIqiE,GAAK3zE,GAAE,CAAE4zE,kBAAmBF,KAChC,SAASG,GAAG7iE,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,SAAU,iCAAkCM,EAAI6J,GAAElK,EAAI,SAAU,iCAC7EmyB,GAAGhyB,EAAE09B,MAAOx9B,EAAEw9B,MAAO,4CACrB,IAAIv9B,EAAI3N,GAAG0N,GAAIyC,EAAInV,GAAG0S,EAAGF,GAAI4C,EAAIxY,GAAG1F,GAAGoJ,GAAGnT,GAAGulB,MAC7C,OAAOllB,GAAGke,GAAGiH,EAAGwC,GAAIC,GAEtB,SAAS8/D,GAAG9iE,EAAGC,EAAIG,EAAGE,EAAI,EAAGC,EAAI9sB,GAAG4tF,wBAClC,IAAIt+D,EAAIoH,GAAEnK,EAAG,mBAAoB,uBAAwBgD,EAAImH,GAAElK,EAAI,SAAU,uBAAwBgD,EAAI,KACzG,GAAS,MAAL7C,IAAc6C,EAAIkH,GAAE/J,EAAG,UAAW,wBAAyBgyB,GAAGrvB,EAAE+6B,MAAO96B,EAAE86B,MAAO,kCAAmCx9B,EAAI,EAAG,CAC5H,IAAI8C,EAAIhP,GAAGkM,GAAIuE,EAAIzQ,GAAG,GAAIqS,EAAIrS,GAAG,IACjC2O,EAAI3nB,GAAGwS,GAAGmV,EAAGzJ,GAAGuL,EAAGzB,IAAKxV,GAAG6Y,EAAGrD,IAEhC,IAAIF,EAAI2/D,GAAG9/D,EAAGC,GACd,OAAOy+D,GAAGv+D,EAAGD,EAAG1C,GAElB,IAAIwiE,GAAK/zE,GAAE,CAAEg0E,qBAAsBF,KACnC,SAASG,GAAGjjE,EAAGC,EAAIG,GAAI,GACrB,IAAW,IAAPA,IAAaA,EAAIH,EAAG29B,KAAO,GAAIx9B,IAAMH,EAAG29B,KAAO,EACjD,MAAMh7B,MAAM,mGAAmG3C,EAAG29B,oBAAoBx9B,KACxI,OAAO5e,GAAG,CAAC+e,EAAGwC,EAAGC,KACf,IAAIE,EAAIpY,GAAGiY,EAAG,CAAC3C,IAAI,GAAOgD,EAAI9J,GAAGxa,GAAGikB,EAAG,WAAYG,GACnDF,EAAE,CAACzC,EAAG6C,IACN,IAAIyB,EAAI3W,GAAGN,GAAGwV,EAAG7C,IACjB,MAAO,CAAE3gC,MAAO45B,GAAGqL,EAAG,CAACzE,IAAKonC,SAAU,CAAC7gC,EAAGI,KACxC,IAAK8D,EAAGC,GAAK/D,EAAG8C,EAAIy4C,GAAG37C,EAAEm3B,MAAO,CAAC19B,IACjC,MAAO,CAACxS,GAAGsF,GAAEyT,EAAGkD,GAAIvQ,GAAGxa,GAAG+rB,EAAG,WAAY/lB,GAAGgmB,KAAMld,GAAGsF,GAAEyT,EAAGkD,GAAIvQ,GAAGxU,GAAGgmB,GAAIhsB,GAAG+rB,EAAG,iBAN3ErpB,CAQJwe,EAAGC,GAER,SAASijE,GAAGljE,EAAGC,EAAIG,EAAGE,EAAI,EAAGC,EAAI9sB,GAAG4tF,wBAClC,IAAIt+D,EAAIoH,GAAEnK,EAAG,eAAgB,uBAAwBgD,EAAImH,GAAElK,EAAI,SAAU,uBAAwBgD,EAAI,KACrG,GAAS,MAAL7C,IAAc6C,EAAIkH,GAAE/J,EAAG,UAAW,wBAAyBgyB,GAAGrvB,EAAE+6B,MAAO96B,EAAE86B,MAAO,kCAAmCx9B,EAAI,EAAG,CAC5H,IAAI8C,EAAIhP,GAAGkM,GAAIuE,EAAIzQ,GAAG,GAAIqS,EAAIrS,GAAG2O,EAAE+6B,MAAM,IACzC/6B,EAAI3nB,GAAGwS,GAAGmV,EAAGzJ,GAAGuL,EAAGzB,IAAKpgB,GAAGogB,EAAGqD,IAEhC,IAAIvD,EAAI+/D,GAAGlgE,EAAGC,GACd,OAAOy+D,GAAGv+D,EAAGD,EAAG1C,GAElB,IAAI4iE,GAAKn0E,GAAE,CAAEo0E,qBAAsBF,KACnC,SAASG,GAAGrjE,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI4J,GAAEnK,EAAG,UAAW,sBAAuB,SAAU+C,EAAIoH,GAAElK,EAAI,SAAU,uBAAwB+C,EAAImH,GAAE/J,EAAG,aAAc,sBAAuB,SAAU6C,EAAIkH,GAAE7J,EAAG,eAAgB,sBAAuByC,EAAEs6B,OAC/M,GAAe,IAAX98B,EAAEq9B,KACJ,MAAM,IAAIh7B,MAAM,0DACVrC,EAAEu9B,OACV,GAAe,IAAX/6B,EAAE66B,KACJ,MAAM,IAAIh7B,MAAM,gDAAgDG,EAAE+6B,OACpE,GAAe,IAAX96B,EAAE46B,KACJ,MAAM,IAAIh7B,MAAM,qDAAqDI,EAAE86B,OACzE,GAAe,IAAX76B,EAAE26B,KACJ,MAAM,IAAIh7B,MAAM,uDAAuDK,EAAE66B,OAC3E,IAAI56B,EAAI,CAAE2hD,QAAStkD,EAAG9iC,OAAQslC,EAAGugE,WAAYtgE,EAAGsqD,aAAcrqD,GAAKG,EAAIkiC,GAAEC,UAAU5uD,GAAIusB,GACvF,MAAO,CAAEqgE,cAAengE,EAAE,GAAIogE,aAAcpgE,EAAE,GAAIqgE,kBAAmBrgE,EAAE,GAAIsgE,gBAAiBtgE,EAAE,IAEhG,IAAIugE,GAAK30E,GAAE,CAAE40E,qBAAsBP,KACnC,SAASQ,GAAG7jE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,eAAgB,gBAAiB,SAAUO,EAAI4J,GAAElK,EAAI,aAAc,gBAAiB,SAAU8C,EAAIoH,GAAE/J,EAAG,WAAY,gBAAiB,SACjJ,GAAe,IAAXE,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,gEACVtC,EAAEw9B,OACV,GAAe,IAAXv9B,EAAEq9B,KACJ,MAAM,IAAIh7B,MAAM,qDAAqDrC,EAAEu9B,OACzE,GAAe,IAAX/6B,EAAE66B,KACJ,MAAM,IAAIh7B,MAAM,mDAAmDG,EAAE+6B,OACvE,IAAI96B,EAAI,CAAE8gE,aAAcxjE,EAAGi+C,WAAYh+C,EAAGgzB,SAAUxwB,GAAKE,EAAIqiC,GAAEC,UAAU1uD,GAAImsB,GAC7E,MAAO,CAAEugE,cAAetgE,EAAE,GAAIy1D,YAAaz1D,EAAE,IAE/C,IAAI8gE,GAAK/0E,GAAE,CAAEg1E,eAAgBH,KAC7B,SAASI,GAAGjkE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,OAAQ,qBAAsBO,EAAI4J,GAAElK,EAAI,UAAW,oBAAqB,SAAU8C,EAAIoH,GAAE/J,EAAG,aAAc,oBAAqB,SAC3I,GAAIE,EAAEs9B,KAAO,EACX,MAAM,IAAIh7B,MAAM,6DAClB,GAAe,IAAXrC,EAAEq9B,KACJ,MAAM,IAAIh7B,MAAM,4DACRrC,EAAEu9B,OACZ,GAAe,IAAX/6B,EAAE66B,KACJ,MAAM,IAAIh7B,MAAM,gEACRG,EAAE+6B,OACZ,IAAI96B,EAAI,CAAEuY,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAC3C,OAAOuiC,GAAEC,UAAUxuD,GAAIisB,GAEzB,IAAIkhE,GAAKl1E,GAAE,CAAEm1E,mBAAoBF,KACjC,SAASG,GAAGpkE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,OAAQ,oBAAqBO,EAAI4J,GAAElK,EAAI,UAAW,mBAAoB,SAAU8C,EAAIoH,GAAE/J,EAAG,aAAc,mBAAoB,SACxI,GAAIE,EAAEs9B,KAAO,EACX,MAAM,IAAIh7B,MAAM,6DAClB,GAAe,IAAXrC,EAAEq9B,KACJ,MAAM,IAAIh7B,MAAM,2DACTrC,EAAEu9B,OACX,GAAe,IAAX/6B,EAAE66B,KACJ,MAAM,IAAIh7B,MAAM,+DACTG,EAAE+6B,OACX,IAAI96B,EAAI,CAAEuY,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAC3C,OAAOuiC,GAAEC,UAAUtuD,GAAI+rB,GAEzB,IAAIqhE,GAAKr1E,GAAE,CAAEs1E,kBAAmBF,KAChC,SAASG,GAAGvkE,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAChC,IAAIC,EAAIiH,GAAEnK,EAAG,OAAQ,eAAgB,UACrC,GAAgB,WAAZkD,EAAEm6B,MACJ,MAAM,IAAIz6B,MAAM,mCAClB,GAAuB,IAAnBM,EAAE46B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,+BAA+BM,EAAE46B,OACnD,IAAI16B,EAAI+G,GAAElK,EAAI,aAAc,gBAC5B,GAAgB,UAAZmD,EAAEi6B,MACJ,MAAM,IAAIz6B,MAAM,yCAClB,IAAIiC,EAAI,CAAE2/D,UAAWpkE,EAAGqkE,YAAankE,EAAGokE,QAASnkE,EAAGu6B,SAAU/3B,EAAG4hE,SAAU3hE,EAAG4hE,uBAAwB3hE,GAAKwD,EAAI,CAAE8U,KAAMrY,EAAG2hE,WAAYzhE,GAAKsD,EAAI4+B,GAAEC,UAAUptD,GAAIsuB,EAAG5B,GAClK,MAAO,CAAEigE,OAAQp+D,EAAE,GAAIq+D,aAAcr+D,EAAE,IAEzC,IAAIs+D,GAAKh2E,GAAE,CAAEi2E,cAAeV,KAC5B,SAASW,GAAGllE,EAAGC,EAAIG,GAAI,GACrB,IAAIE,EAAI6J,GAAEnK,EAAG,QAAS,cAAe,UAAWO,EAAI4J,GAAElK,EAAI,YAAa,cAAe,UACtF,GAAe,IAAXK,EAAEs9B,KACJ,MAAM,IAAIh7B,MAAM,+CAA+CtC,EAAEw9B,OACnE,GAAe,IAAXv9B,EAAEq9B,KACJ,MAAM,IAAIh7B,MAAM,mDAAmDrC,EAAEu9B,OACvE,IAAI/6B,EAAI,CAAEoiE,UAAW/kE,GAAK4C,EAAI,CAAEghD,MAAO1jD,EAAG8kE,UAAW7kE,GAAK0C,EAAIqiC,GAAEC,UAAUltD,GAAI2qB,EAAGD,GACjF,MAAO,CAAE8hD,QAAS5hD,EAAE,GAAIxlC,OAAQwlC,EAAE,GAAI66B,MAAO76B,EAAE,IAEjD,IAAIoiE,GAAKr2E,GAAE,CAAEs2E,aAAcJ,KAC3B,SAASK,GAAGvlE,EAAGC,GACb,IAAIG,EAAI+J,GAAEnK,EAAG,QAAS,yBAA0B,UAAWM,EAAI,CAAEklE,WAAYvlE,GAC7E,GAAIA,GAAM,EACR,MAAM,IAAI2C,MAAM,wCAClB,IAAIrC,EAAI,CAAEyjD,MAAO5jD,GACjB,OAAOklC,GAAEC,UAAUhtD,GAAIgoB,EAAGD,GAE5B,IAAImlE,GAAKz2E,GAAE,CAAE02E,wBAAyBH,KACtC,SAASI,GAAG3lE,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI4J,GAAEnK,EAAG,QAAS,qBAAsB,UAAW+C,EAAI,CAAE6iE,QAAS3lE,EAAI4lE,QAASzlE,EAAG0lE,cAAexlE,GACrG,OAAOglC,GAAEC,UAAU1tD,GAAI,CAAEgyB,EAAGtJ,GAAKwC,GAEnC,IAAIgjE,GAAK/2E,GAAE,CAAEg3E,oBAAqBL,KAC9BztE,GAAK,CAAE7S,IAAKC,GAAIyC,KAAMC,GAAI6L,KAAMC,GAAIrL,MAAOC,IAC3C4N,GAAK,CAAE2vE,cAAepL,GAAIqL,WAAYlL,GAAImL,MAAOhL,GAAIiL,KAAM9K,IAC3DlzE,GAAK,CAAEi+E,cAAepK,GAAIqK,eAAgBlK,GAAImK,sBAAuBzG,GAAI0G,eAAgB7G,GAAI8G,eAAgBlK,GAAImK,iBAAkB7J,GAAI8J,cAAe7K,GAAI8K,kBAAmBrJ,GAAIsJ,uBAAwBlI,GAAImI,2BAA4BjI,GAAIkI,gCAAiC/H,GAAIgI,wBAAyB7H,GAAI8H,6BAA8B3H,GAAI4H,UAAWhH,GAAIiH,UAAW3G,IAC3W52E,GAAK,CAAEw9E,SAAUzG,GAAI0G,YAAavG,GAAIwG,GAAIpG,IAC1C11E,GAAK,CAAE+7E,mBAAoB3F,GAAI4F,oBAAqB/F,GAAIgG,eAAgB1F,GAAI2F,UAAWxF,GAAIyF,UAAWtF,GAAIuF,QAASpF,GAAIqF,iBAAkBlF,GAAImF,oBAAqB/E,GAAIgF,oBAAqB5E,IAC3LrrE,GAAK,CAAEkwE,oBAAqBrE,GAAIsE,cAAelE,GAAImE,kBAAmBhE,GAAIiE,iBAAkB9D,IAC5FjrE,GAAK,CAAEgvE,aAAcpD,GAAIqD,YAAahD,GAAIiD,uBAAwB7C,GAAI8C,mBAAoBxC,IAC1F/wE,GAAK,GACTmL,EAAGnL,GAAI,CAAEwzE,aAAc,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,cAAe,IAAMC,KAC/G,IAAIC,GAAqB,IAAInyC,IACzBoyC,GAAqB,IAAIpyC,IACzB4xC,GAAK,MACP,eACE,OAAO9pG,KAAK21D,YAAY40C,UAE1B,kBAAkBjpE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,KAGduoE,GAAK,MACP,cACEhqG,KAAKwqG,aAAe,GAEtB,gBACE,OAAsB,MAAfR,GAAGlwD,WAAqBkwD,GAAGlwD,SAAW,IAAIkwD,IAAOA,GAAGlwD,SAE7D,gBAAgBxY,GACd0oE,GAAGS,SAASD,aAAalpE,EAAGipE,WAAa,CAACjpE,EAAIA,EAAGopE,cAGrD,SAASN,GAAG/oE,EAAGC,EAAIG,GACjB7iC,GAAiB,MAAfyiC,EAAEkpE,UAAmB,IAAM,+EAAgF3rG,GAAwB,iBAAfyiC,EAAEkpE,UAAuB,IAAM,6DAA+DlpE,EAAEkpE,WAAY3rG,GAAEyiC,EAAEkpE,UAAUrqG,OAAS,EAAG,IAAM,qFAAmG,oBAANohC,IAAsBA,EAAK,UAAuB,oBAALG,IAAqBA,EAAIJ,EAAEkpE,WACva,IAAI5oE,EAAIF,EAAGG,EAAIN,EAAK,IAAMK,EAC1B,OAAOqoE,GAAGW,SAAStpE,GAAIgpE,GAAGhoG,IAAIu/B,EAAGP,GAAIipE,GAAGjoG,IAAIg/B,EAAGO,GAAIP,EAErD,SAAS6oE,GAAG7oE,GACV,OAAOipE,GAAGzoG,IAAIw/B,GAAKipE,GAAG9oG,IAAI6/B,GAAKA,EAAEkpE,UAEnC,IAAI33F,GAAK,cAAck3F,GACrB,SAASxoE,EAAIG,GAAI,EAAOE,GACtB,IAAM1gC,MAAO2gC,EAAG9Y,MAAOsb,GAAMpkC,KAAK4qG,iBAAiBtpE,EAAIK,GACvD,GAAS,MAALA,EAAW,CACb,IAAI0C,EAAI1C,EAAE4yB,IAAKjwB,IAAM,CAAG/iC,KAAM+iC,EAAE/iC,KAAM65B,OAAQgJ,EAAEE,EAAE/iC,SAClDvB,KAAK6qG,eAAexmE,QAEpBrkC,KAAK6qG,eAAezmE,GACtB,OAAOngB,GAAGmgB,GAAI3C,EAAIG,GAAKA,EAAE5d,UAAW,MAEtC,iBACE,OAA2B,MAApBhkB,KAAK8qG,cAAwB9qG,KAAK8qG,YAAc,GAAI9qG,KAAK8qG,YAElE,sBACE9qG,KAAK8qG,YAAc9qG,KAAK+qG,WAAa,EAEvC,iBAAiBzpE,EAAIG,GACnB,OAAO5C,GAAGyC,EAAIG,GAEhB,UACsB,MAApBzhC,KAAK8qG,aAAuB7mF,GAAGjkB,KAAK8qG,aAEtC,uBACE,OAA2B,MAApB9qG,KAAK8qG,cAAwB9qG,KAAK8qG,YAAc,GAAI,CAAEvpG,KAAM,OAAQ65B,OAAQ3F,GAAGz1B,KAAK8qG,YAAa,UAE1G,mBACE,MAAM,IAAI7mE,MAAM,2DAElB,iBAAiB3C,GACf,MAAM,IAAI2C,MAAM,4DAA4DjkC,KAAKgrG,gBAEnF,wBAAwB1pE,GACtB,OAAOthC,KAAK8qG,mBAAqBxpE,EAAG,GAAGlG,OAAOwhB,QAAQ,GAAItb,EAAGtJ,MAAM,KAGvEp3B,OAAOC,eAAe+R,GAAI2uD,OAAOC,YAAa,CAAEvgE,MAAQogC,GAAoB,MAAdA,EAAE4pE,UAA0C,MAAtB5pE,EAAEupE,kBAAgD,MAApBvpE,EAAEwpE,iBACpH,IAAI7nG,GAAK,cAAc4P,GACrB,uBACE,MAAO,WAET,YAAY0uB,EAAIG,EAAGE,EAAI,MACrB8/B,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAKmrG,IAAM1pE,EAAGzhC,KAAKorG,QAAUzpE,EAAG3hC,KAAKqrG,iBAAmB,GAAIrrG,KAAKsrG,mBAAqB,GAAS,MAAL3pE,IAAc3hC,KAAKorG,QAAUzkC,GAAEzoD,QAAQktF,WAEpK,eAAe9pE,IACZmzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,IAAKqY,QAAQ,CAAChY,EAAGC,KACxE,IAAIwC,EAAIuiC,GAAE9C,oBAAoBliC,GAAI0C,GAAI,EACV,MAA5BrkC,KAAKqrG,iBAAiBzpE,KAAe5hC,KAAKqrG,iBAAiBzpE,GAAK,CAAE2pE,aAAiB5pE,EAAH,cAAmBjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,SAAS2F,MAAsC,MAA9BrkC,KAAKsrG,mBAAmB1pE,KAAe5hC,KAAKsrG,mBAAmB1pE,GAAK,CAAE2pE,aAAiB5pE,EAAH,aAAkBjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,SAAS2F,MACrR,IAAIC,EAAImwB,MAAMC,QAAQpzB,GAAMA,EAAGM,GAAGxG,OAASkG,EAAGK,GAC9C,GAAS,MAAL2C,EACF,OACF,IAAIC,EAAIvkC,KAAKqrG,iBAAiBzpE,GAAGlD,SAAU+F,EAAIzkC,KAAKsrG,mBAAmB1pE,GAAGlD,SAC1EjC,GAAG,KACD,IAAIyJ,EAAIzpB,GAAGwS,GAAGsV,EAAGvkC,KAAKmrG,KAAMl8E,GAAG4K,GAAGyK,GAAI,EAAItkC,KAAKmrG,MAAOrjE,EAAI7Y,GAAG5K,GAAGsV,GAAGld,GAAGgoB,EAAGzkC,KAAKorG,UAAWzxE,GAAGld,GAAG8nB,EAAGvkC,KAAKorG,WAAY9mE,GAAIyD,EAAItrB,GAAGwS,GAAGwV,EAAGzkC,KAAKmrG,KAAMl8E,GAAG4K,GAAGiO,GAAI,EAAI9nC,KAAKmrG,MAClK5mE,EAAEwM,OAAO7K,GAAIzB,EAAEsM,OAAOhJ,GACtB,IAAIC,EAAIvrB,GAAGwS,GAAG6Y,GAAI9nC,KAAKkrG,cAAe9mE,GACtCA,EAAE2M,OAAO/I,OAEThoC,KAAKwrG,sBAEX,UAC6B,MAA3BxrG,KAAKsrG,qBAA+BrnF,GAAGjkB,KAAKqrG,iBAAiB92C,IAAKjzB,GAAOA,EAAG5C,WAAYza,GAAGjkB,KAAKsrG,mBAAmB/2C,IAAKjzB,GAAOA,EAAG5C,YAEpI,mBACE,IAAI4C,EAAK,IAAIthC,KAAKqrG,oBAAqBrrG,KAAKsrG,oBAC5C,MAAO,OAAOtrG,KAAKyrG,kBAAkB7qF,OAAO0gB,EAAGizB,IAAK9yB,IAAM,CAAGlgC,KAAMkgC,EAAE8pE,aAAcnwE,OAAQqG,EAAE/C,aAE/F,iBAAiB4C,GACfA,QAAWthC,KAAK0rG,kBAAkBpqE,GAClC,IAAIG,EAAIH,EAAGphC,OAAS,EAAGyhC,GAAI,EAC3B3hC,KAAKqrG,iBAAmB/pE,EAAGtJ,MAAM,EAAGyJ,GAAG8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAAQ3hC,KAAKsrG,mBAAqBhqE,EAAGtJ,MAAMyJ,EAAO,EAAJA,GAAO8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAE9N,YACE,MAAO,CAAEupE,aAAclrG,KAAKkrG,aAAcC,IAAKnrG,KAAKmrG,IAAKC,QAASprG,KAAKorG,SAEzE,kBAAkB9pE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAE0pE,IAAK1pE,EAAE2pE,WAGvCloG,GAAK,cAAc0P,GACrB,uBACE,MAAO,UAET,YAAY0uB,EAAIG,EAAI,IAClBggC,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAK2rG,wBAA0BlqE,EAAGzhC,KAAKqrG,iBAAmB,GAE7F,eAAe/pE,IACZmzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,IAAKqY,QAAQ,CAAChY,EAAGC,KACxE,IAAIwC,EAAIuiC,GAAE9C,oBAAoBliC,GACF,MAA5B3hC,KAAKqrG,iBAAiBzpE,KAAe5hC,KAAKqrG,iBAAiBzpE,GAAK,CAAE2pE,aAAiB5pE,EAAH,eAAoBjD,SAAUjC,GAAG,IAAM5V,GAAGud,EAAE+6B,MAAOn/D,KAAK2rG,yBAAyBjtE,UAAS,MAC1K,IAAI2F,EAAIowB,MAAMC,QAAQpzB,GAAMA,EAAGM,GAAGxG,OAASkG,EAAGK,GAC9C,GAAS,MAAL0C,EACF,OACF,IAAIC,EAAItkC,KAAKqrG,iBAAiBzpE,GAAGlD,SACjCjC,GAAG,KACD,IAAI8H,EAAI9nB,GAAG6nB,EAAGzK,GAAGwK,IACjBC,EAAEyM,OAAOxM,GACT,IAAIE,EAAIhoB,GAAGwS,GAAG5K,GAAGggB,EAAG1K,GAAGld,GAAG8nB,EAAGoiC,GAAEzoD,QAAQktF,cAAeprG,KAAKkrG,cAAe9mE,GAC1EA,EAAE2M,OAAOtM,OAETzkC,KAAKwrG,sBAEX,UAC2B,MAAzBxrG,KAAKqrG,kBAA4BpnF,GAAGjkB,KAAKqrG,iBAAiB92C,IAAKjzB,GAAOA,EAAG5C,WAE3E,mBACE,MAAO,OAAO1+B,KAAKyrG,kBAAkB7qF,OAAO5gB,KAAKqrG,iBAAiB92C,IAAKjzB,IAAO,CAAG//B,KAAM+/B,EAAGiqE,aAAcnwE,OAAQkG,EAAG5C,aAErH,iBAAiB4C,GACfA,QAAWthC,KAAK0rG,kBAAkBpqE,GAClC,IAAIG,GAAI,EACRzhC,KAAKqrG,iBAAmB/pE,EAAGizB,IAAK5yB,IAAM,CAAG4pE,aAAc5pE,EAAEpgC,KAAMm9B,SAAUiD,EAAEvG,OAAOsD,SAAS+C,MAE7F,YACE,MAAO,CAAEypE,aAAclrG,KAAKkrG,aAAcS,wBAAyB3rG,KAAK2rG,yBAE1E,kBAAkBrqE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAEkqE,2BAGhCvoG,GAAK,cAAcwP,GACrB,uBACE,MAAO,OAET,YAAY0uB,EAAIG,EAAGE,EAAGC,EAAI,MACxB6/B,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAK4rG,MAAQnqE,EAAGzhC,KAAK6rG,MAAQlqE,EAAG3hC,KAAKorG,QAAUxpE,EAAG5hC,KAAK8rG,uBAAyB,GAAI9rG,KAAK+rG,wBAA0B,GAAItvE,GAAG,KACzJz8B,KAAKgsG,SAAWv2E,GAAGgM,GAAG/C,WAAY1+B,KAAKisG,SAAWx2E,GAAGkM,GAAGjD,aACjD,MAALkD,IAAc5hC,KAAKorG,QAAUzkC,GAAEzoD,QAAQktF,WAE7C,eAAe9pE,GACb,IAAIG,EAAIgzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,GAChE7E,GAAG,KACD,IAAIkF,EAAIhH,GAAG,EAAG36B,KAAKgsG,UAAWpqE,EAAIjH,GAAG,EAAG36B,KAAKisG,UAC7CxqE,EAAEkY,QAAQ,CAACvV,EAAGC,KACZ,IAAIC,EAAIqiC,GAAE9C,oBAAoBz/B,GAAIG,GAAI,EACJ,MAAlCvkC,KAAK8rG,uBAAuBznE,KAAerkC,KAAK8rG,uBAAuBznE,GAAK,CAAEknE,aAAiBnnE,EAAH,KAAU1F,SAAUjC,GAAG,IAAM8D,GAAG+D,GAAG5F,SAAS6F,MAA2C,MAAnCvkC,KAAK+rG,wBAAwB1nE,KAAerkC,KAAK+rG,wBAAwB1nE,GAAK,CAAEknE,aAAiBnnE,EAAH,KAAU1F,SAAUjC,GAAG,IAAM8D,GAAG+D,GAAG5F,SAAS6F,MAC1R,IAAIE,EAAIgwB,MAAMC,QAAQpzB,GAAMA,EAAG+C,GAAGjJ,OAASkG,EAAG8C,GAC9C,GAAS,MAALK,EACF,OACF,IAAIyB,EAAIlmC,KAAK8rG,uBAAuBznE,GAAG3F,SAAUoJ,EAAI9nC,KAAK+rG,wBAAwB1nE,GAAG3F,SAAUqJ,EAAItrB,GAAGwS,GAAGiX,EAAGlmC,KAAK4rG,OAAQ38E,GAAGwV,EAAG,EAAIzkC,KAAK4rG,QAAS5jE,EAAIvrB,GAAGwS,GAAG6Y,EAAG9nC,KAAK6rG,OAAQ58E,GAAG4K,GAAG4K,GAAI,EAAIzkC,KAAK6rG,QAASzjE,EAAI/jB,GAAG0jB,EAAGpG,GAAIuK,EAAI7nB,GAAG2jB,EAAGpG,GAC/NsE,EAAE6K,OAAOhJ,GAAID,EAAEiJ,OAAO/I,GACtB,IAAImE,EAAI1vB,GAAGwS,GAAG5K,GAAG+jB,EAAG3rB,GAAGkd,GAAGuS,GAAIlsC,KAAKorG,WAAYprG,KAAKkrG,cAAe5mE,GACnEA,EAAEyM,OAAO5E,KACPnsC,KAAKgsG,SAASj7D,OAAO9hB,GAAGjvB,KAAKgsG,SAAUhsG,KAAK4rG,QAAS5rG,KAAKisG,SAASl7D,OAAO9hB,GAAGjvB,KAAKisG,SAAUjsG,KAAK6rG,UACnG7rG,KAAKwrG,sBAEX,UACExrG,KAAKgsG,SAAShoF,UAAWhkB,KAAKisG,SAASjoF,UAA0C,MAA/BhkB,KAAK8rG,wBAAkC7nF,GAAGjkB,KAAK8rG,uBAAuBv3C,IAAKjzB,GAAOA,EAAG5C,WAA4C,MAAhC1+B,KAAK+rG,yBAAmC9nF,GAAGjkB,KAAK+rG,wBAAwBx3C,IAAKjzB,GAAOA,EAAG5C,WAE5O,mBACE,IAAI4C,EAAK,IAAIthC,KAAK8rG,0BAA2B9rG,KAAK+rG,yBAClD,MAAO,OAAO/rG,KAAKyrG,kBAAkB7qF,OAAO0gB,EAAGizB,IAAK9yB,IAAM,CAAGlgC,KAAMkgC,EAAE8pE,aAAcnwE,OAAQqG,EAAE/C,aAE/F,iBAAiB4C,GACfA,QAAWthC,KAAK0rG,kBAAkBpqE,GAAK7E,GAAG,KACxCz8B,KAAKgsG,SAASj7D,OAAO1f,GAAGrxB,KAAK4rG,MAAO5rG,KAAK8qG,YAAc,IAAK9qG,KAAKisG,SAASl7D,OAAO1f,GAAGrxB,KAAK6rG,MAAO7rG,KAAK8qG,YAAc,MAErH,IAAIrpE,EAAIH,EAAGphC,OAAS,EAAGyhC,GAAI,EAC3B3hC,KAAK8rG,uBAAyBxqE,EAAGtJ,MAAM,EAAGyJ,GAAG8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAAQ3hC,KAAK+rG,wBAA0BzqE,EAAGtJ,MAAMyJ,EAAO,EAAJA,GAAO8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAEzO,YACE,MAAO,CAAEupE,aAAclrG,KAAKkrG,aAAcU,MAAO5rG,KAAK4rG,MAAOC,MAAO7rG,KAAK6rG,MAAOT,QAASprG,KAAKorG,SAEhG,kBAAkB9pE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAEmqE,MAAOnqE,EAAEoqE,MAAOpqE,EAAE2pE,WAGlD9nG,GAAK,cAAcsP,GACrB,uBACE,MAAO,SAET,YAAY0uB,EAAIG,EAAGE,EAAGC,EAAI,KAAMwC,EAAI,GAClCq9B,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAK4rG,MAAQnqE,EAAGzhC,KAAK6rG,MAAQlqE,EAAG3hC,KAAKorG,QAAUxpE,EAAG5hC,KAAKksG,MAAQ9nE,EAAGpkC,KAAK8rG,uBAAyB,GAAI9rG,KAAKmsG,2BAA6B,GAAI1vE,GAAG,KAC5Kz8B,KAAKosG,UAAY32E,GAAG,GAAGiJ,WAAY1+B,KAAKgsG,SAAWv2E,GAAGgM,GAAG/C,aAClD,MAALkD,IAAc5hC,KAAKorG,QAAUzkC,GAAEzoD,QAAQktF,WAE7C,eAAe9pE,GACb,IAAIG,EAAIgzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,GAChE7E,GAAG,KACD,IAAIkF,EAAIhH,GAAG,EAAG36B,KAAKgsG,UAAWpqE,EAAIvd,IAAIrkB,KAAKkrG,aAAczuF,GAAGwS,GAAGjvB,KAAKosG,UAAWpsG,KAAKksG,OAAQ,IAC5FzqE,EAAEkY,QAAQ,CAACvV,EAAGC,KACZ,IAAIC,EAAIqiC,GAAE9C,oBAAoBz/B,GAAIG,GAAI,EACJ,MAAlCvkC,KAAK8rG,uBAAuBznE,KAAerkC,KAAK8rG,uBAAuBznE,GAAK,CAAEknE,aAAiBnnE,EAAH,KAAU1F,SAAU6B,GAAG+D,GAAG5F,SAAS6F,KAA6C,MAAtCvkC,KAAKmsG,2BAA2B9nE,KAAerkC,KAAKmsG,2BAA2B9nE,GAAK,CAAEknE,aAAiBnnE,EAAH,KAAU1F,SAAU6B,GAAG+D,GAAG5F,SAAS6F,KAC7Q,IAAIE,EAAIgwB,MAAMC,QAAQpzB,GAAMA,EAAG+C,GAAGjJ,OAASkG,EAAG8C,GAC9C,GAAS,MAALK,EACF,OACF,IAAIyB,EAAIlmC,KAAK8rG,uBAAuBznE,GAAG3F,SAAUoJ,EAAI9nC,KAAKmsG,2BAA2B9nE,GAAG3F,SAAUqJ,EAAItrB,GAAGwS,GAAGiX,EAAGlmC,KAAK4rG,OAAQ38E,GAAGwV,EAAG,EAAIzkC,KAAK4rG,QAAS5jE,EAAI/Y,GAAG6Y,EAAG9nC,KAAK6rG,OAAQzjE,EAAIhsB,GAAGqoB,GAAIyH,EAAIre,GAAGma,EAAGI,GAChMlC,EAAE6K,OAAOhJ,GAAID,EAAEiJ,OAAO7E,GACtB,IAAIC,EAAI1vB,GAAGwS,GAAG5K,GAAGud,EAAGD,GAAItd,GAAG0jB,EAAGtrB,GAAGyvB,EAAGlsC,KAAKorG,WAAY9mE,GACrDA,EAAEyM,OAAO5E,KACPnsC,KAAKosG,UAAUr7D,OAAOt0B,GAAGzc,KAAKosG,UAAW,IAAKpsG,KAAKgsG,SAASj7D,OAAO9hB,GAAGjvB,KAAKgsG,SAAUhsG,KAAK4rG,UAC5F5rG,KAAKwrG,sBAEX,UACExrG,KAAKgsG,SAAShoF,UAAWhkB,KAAKosG,UAAUpoF,UAA0C,MAA/BhkB,KAAK8rG,wBAAkC7nF,GAAGjkB,KAAK8rG,uBAAuBv3C,IAAKjzB,GAAOA,EAAG5C,WAA+C,MAAnC1+B,KAAKmsG,4BAAsCloF,GAAGjkB,KAAKmsG,2BAA2B53C,IAAKjzB,GAAOA,EAAG5C,WAEnP,mBACE,MAAM,IAAIuF,MAAM,mDAElB,iBAAiB3C,GACf,MAAM,IAAI2C,MAAM,mDAElB,YACE,MAAO,CAAEinE,aAAclrG,KAAKkrG,aAAcU,MAAO5rG,KAAK4rG,MAAOC,MAAO7rG,KAAK6rG,MAAOT,QAASprG,KAAKorG,QAASc,MAAOlsG,KAAKksG,OAErH,kBAAkB5qE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAEmqE,MAAOnqE,EAAEoqE,MAAOpqE,EAAE2pE,QAAS3pE,EAAEyqE,SAG7D51F,GAAK,cAAc1D,GACrB,uBACE,MAAO,MAET,YAAY0uB,GACVmgC,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAKqsG,gBAAgB/qE,GAExD,eAAeA,IACZmzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,IAAKqY,QAAQ,CAAChY,EAAGC,KACxE,IAAIwC,EAAIqwB,MAAMC,QAAQpzB,GAAMA,EAAGM,GAAGxG,OAASkG,EAAGK,GAC9C,GAAS,MAALyC,EACF,OACF,IAAIC,EAAIsiC,GAAE9C,oBAAoBliC,GAC9BlF,GAAG,KACD,IAAI6H,EAAI7nB,GAAGwS,GAAGjvB,KAAKkmC,EAAG9B,GAAIC,GAC1BA,EAAE0M,OAAOzM,OAETtkC,KAAKwrG,sBAEX,gBAAgBlqE,GACdthC,KAAKkrG,aAAe5pE,EAAc,MAAVthC,KAAKkmC,GAAalmC,KAAKkmC,EAAEliB,UAAWhkB,KAAKkmC,EAAI3b,GAAGkL,IAAI6L,IAE9E,UACEthC,KAAKkmC,EAAEliB,UAET,mBACE,MAAO,OAAOhkB,KAAKyrG,kBAErB,iBAAiBnqE,GACf,GAAIA,QAAWthC,KAAK0rG,kBAAkBpqE,GAAmB,IAAdA,EAAGphC,OAC5C,MAAM,IAAI+jC,MAAM,iDAEpB,YACE,MAAO,CAAEinE,aAAclrG,KAAKkrG,cAE9B,kBAAkB5pE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,gBAGhB55F,GAAK,cAAcgF,GACrB,uBACE,MAAO,WAET,YAAYgrB,EAAIG,EAAGE,GAAI,GACrB8/B,MAAMngC,GAAKthC,KAAKkrG,aAAe5pE,EAAIthC,KAAKssG,SAAW7qE,EAAGzhC,KAAKusG,YAAc5qE,EAAG3hC,KAAKwsG,cAAgB,GAAIxsG,KAAK+nC,EAAItS,GAAGz1B,KAAKssG,UAExH,eAAehrE,IACZmzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,IAAKqY,QAAQ,CAAChY,EAAGC,KACxE,IAAIwC,EAAIuiC,GAAE9C,oBAAoBliC,GACL,MAAzB3hC,KAAKwsG,cAAc5qE,KAAe5hC,KAAKwsG,cAAc5qE,GAAK,CAAE2pE,aAAiB5pE,EAAH,YAAiBjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,UAAS,MAC7H,IAAI2F,EAAIrkC,KAAKwsG,cAAc5qE,GAAGlD,SAAU4F,EAAImwB,MAAMC,QAAQpzB,GAAMA,EAAGM,GAAGxG,OAASkG,EAAGK,GAC7E,MAAL2C,GAAa7H,GAAG,KACd,IAAI8H,EAAGE,EAAIhoB,GAAGwS,GAAGjvB,KAAK+nC,EAAG1D,GAAIC,GACVC,EAAnBvkC,KAAKusG,YAAkB9vF,GAAGwS,GAAGjvB,KAAKkmC,EAAGzpB,GAAG6nB,EAAGrV,GAAGwV,EAAGzkC,KAAK+nC,KAAM3D,GAAS3nB,GAAGwS,GAAGjvB,KAAKkmC,EAAGzB,GAAIL,GAAIC,EAAE0M,OAAOtM,GAAIL,EAAE2M,OAAOxM,OAEjHvkC,KAAKwrG,sBAEX,UACExrG,KAAK+nC,EAAE/jB,UAAiC,MAAtBhkB,KAAKwsG,eAAyBvoF,GAAGjkB,KAAKwsG,cAAcj4C,IAAKjzB,GAAOA,EAAG5C,WAEvF,YAAY4C,GACVthC,KAAKssG,SAAWhrE,EAElB,mBACE,MAAO,OAAOthC,KAAKyrG,kBAAkB7qF,OAAO5gB,KAAKwsG,cAAcj4C,IAAKjzB,IAAO,CAAG//B,KAAM+/B,EAAGiqE,aAAcnwE,OAAQkG,EAAG5C,aAElH,iBAAiB4C,GACfA,QAAWthC,KAAK0rG,kBAAkBpqE,GAClC,IAAIG,GAAI,EACRzhC,KAAKwsG,cAAgBlrE,EAAGizB,IAAK5yB,IAAM,CAAG4pE,aAAc5pE,EAAEpgC,KAAMm9B,SAAUiD,EAAEvG,OAAOsD,SAAS+C,MAE1F,YACE,MAAO,CAAEypE,aAAclrG,KAAKkrG,aAAcoB,SAAUtsG,KAAKssG,SAAUC,YAAavsG,KAAKusG,aAEvF,kBAAkBjrE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAE6qE,SAAU7qE,EAAE8qE,eAG5C34F,GAAK,cAAchB,GACrB,uBACE,MAAO,UAET,YAAY0uB,EAAIG,EAAI,GAAKE,EAAI,EAAGC,EAAI,KAAMwC,GAAI,GAC5C,GAAIq9B,QAASzhE,KAAKkrG,aAAe5pE,EAAIthC,KAAKksG,MAAQzqE,EAAGzhC,KAAKssG,SAAW3qE,EAAG3hC,KAAKorG,QAAUxpE,EAAG5hC,KAAKysG,uBAAyB,GAAIzsG,KAAK0sG,mBAAqB,GAAI1sG,KAAK2sG,qBAAuB,GAAI3sG,KAAK4sG,SAAWxoE,EAAQ,MAALxC,IAAc5hC,KAAKorG,QAAUzkC,GAAEzoD,QAAQktF,WAAkB,MAAN9pE,EAC9P,MAAM,IAAI2C,MAAM,sDAEpB,eAAe3C,IACZmzB,MAAMC,QAAQpzB,GAAMA,EAAGizB,IAAK5yB,GAAMA,EAAEpgC,MAAQX,OAAOo9D,KAAK18B,IAAKqY,QAAQ,CAAChY,EAAGC,KACxE,IAAIwC,EAAIuiC,GAAE9C,oBAAoBliC,GAAI0C,GAAI,EACJ,MAAlCrkC,KAAKysG,uBAAuB7qE,KAAe5hC,KAAKysG,uBAAuB7qE,GAAK,CAAE2pE,aAAiB5pE,EAAH,OAAYjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,SAAS2F,MAAsC,MAA9BrkC,KAAK0sG,mBAAmB9qE,KAAe5hC,KAAK0sG,mBAAmB9qE,GAAK,CAAE2pE,aAAiB5pE,EAAH,YAAiBjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,SAAS2F,MAAwC,MAAhCrkC,KAAK2sG,qBAAqB/qE,IAAc5hC,KAAK4sG,WAAa5sG,KAAK2sG,qBAAqB/qE,GAAK,CAAE2pE,aAAiB5pE,EAAH,MAAWjD,SAAUjC,GAAG,IAAM8D,GAAG6D,GAAG1F,SAAS2F,MACvb,IAAIC,EAAImwB,MAAMC,QAAQpzB,GAAMA,EAAGM,GAAGxG,OAASkG,EAAGK,GAC9C,GAAS,MAAL2C,EACF,OACF,IAAIC,EAAIvkC,KAAKysG,uBAAuB7qE,GAAGlD,SAAU+F,EAAIzkC,KAAK0sG,mBAAmB9qE,GAAGlD,SAChFjC,GAAG,KACD,IAAIyJ,EAAIzpB,GAAGwS,GAAGsV,EAAGvkC,KAAKksG,OAAQj9E,GAAG4K,GAAGyK,GAAI,EAAItkC,KAAKksG,QACjD,GAAIlsG,KAAK4sG,SAAU,CACjB,IAAI9kE,EAAI9nC,KAAK2sG,qBAAqB/qE,GAAGlD,SAAUqJ,EAAItrB,GAAGwS,GAAG6Y,EAAG9nC,KAAKksG,OAAQj9E,GAAGqV,EAAG,EAAItkC,KAAKksG,QAASlkE,EAAI3jB,GAAG4K,GAAGqV,EAAGtkC,KAAKkrG,cAAevxE,GAAGgB,GAAGuL,EAAGzpB,GAAGod,GAAGkO,GAAI/nC,KAAKorG,YAAahjE,EAAI3rB,GAAGwS,GAAGwV,EAAGzkC,KAAKssG,UAAWtkE,GACpMzD,EAAEwM,OAAO7K,GAAI4B,EAAEiJ,OAAOhJ,GAAItD,EAAEsM,OAAO3I,GACnC,IAAI8D,EAAIvR,GAAGyJ,EAAGgE,GACdhE,EAAE2M,OAAO7E,OACJ,CACL,IAAIpE,EAAIrrB,GAAGwS,GAAGsV,EAAGvkC,KAAKksG,OAAQj9E,GAAG4K,GAAGyK,GAAI,EAAItkC,KAAKksG,QAASnkE,EAAItrB,GAAGwS,GAAGwV,EAAGzkC,KAAKssG,UAAWjoF,GAAG4K,GAAGqV,EAAGtkC,KAAKkrG,cAAevxE,GAAGld,GAAGqrB,EAAG9nC,KAAKorG,YAClI7mE,EAAEwM,OAAOjJ,GAAIrD,EAAEsM,OAAOhJ,GACtB,IAAIC,EAAIrN,GAAGyJ,EAAG2D,GACd3D,EAAE2M,OAAO/I,QAGXhoC,KAAKwrG,sBAEX,UACiC,MAA/BxrG,KAAKysG,wBAAkCxoF,GAAGjkB,KAAKysG,uBAAuBl4C,IAAKjzB,GAAOA,EAAG5C,WAAyC,MAA7B1+B,KAAK2sG,sBAAgC3sG,KAAK4sG,UAAY3oF,GAAGjkB,KAAK2sG,qBAAqBp4C,IAAKjzB,GAAOA,EAAG5C,WAAuC,MAA3B1+B,KAAK0sG,oBAA8BzoF,GAAGjkB,KAAK0sG,mBAAmBn4C,IAAKjzB,GAAOA,EAAG5C,WAE9R,mBACE,IAAI4C,EAAK,IAAIthC,KAAKysG,0BAA2BzsG,KAAK0sG,oBAClD,OAAO1sG,KAAK4sG,UAAYtrE,EAAGuK,QAAQ7rC,KAAK2sG,sBAAuB,OAAO3sG,KAAKyrG,kBAAkB7qF,OAAO0gB,EAAGizB,IAAK9yB,IAAM,CAAGlgC,KAAMkgC,EAAE8pE,aAAcnwE,OAAQqG,EAAE/C,aAEvJ,iBAAiB4C,GACfA,QAAWthC,KAAK0rG,kBAAkBpqE,GAClC,IAAIG,EAAIzhC,KAAK4sG,SAAWtrE,EAAGphC,OAAS,EAAIohC,EAAGphC,OAAS,EAAGyhC,GAAI,EAC3D3hC,KAAKysG,uBAAyBnrE,EAAGtJ,MAAM,EAAGyJ,GAAG8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAAQ3hC,KAAK0sG,mBAAqBprE,EAAGtJ,MAAMyJ,EAAO,EAAJA,GAAO8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,MAAQ3hC,KAAK4sG,WAAa5sG,KAAK2sG,qBAAuBrrE,EAAGtJ,MAAU,EAAJyJ,EAAW,EAAJA,GAAO8yB,IAAK3yB,IAAM,CAAG2pE,aAAc3pE,EAAErgC,KAAMm9B,SAAUkD,EAAExG,OAAOsD,SAASiD,OAEjX,YACE,MAAO,CAAEupE,aAAclrG,KAAKkrG,aAAcgB,MAAOlsG,KAAKksG,MAAOI,SAAUtsG,KAAKssG,SAAUlB,QAASprG,KAAKorG,QAASwB,SAAU5sG,KAAK4sG,UAE9H,kBAAkBtrE,EAAIG,GACpB,OAAO,IAAIH,EAAGG,EAAEypE,aAAczpE,EAAEyqE,MAAOzqE,EAAE6qE,SAAU7qE,EAAE2pE,QAAS3pE,EAAEmrE,YAGhEC,GAAK,CAAC7pG,GAAIE,GAAIE,GAAIE,GAAIgO,GAAIsC,GAAI0C,IAClC,SAASw2F,KACP,IAAK,IAAIzrE,KAAKwrE,GACZzC,GAAG/oE,GAEP,IAAIxX,GAAK,GACT2X,EAAG3X,GAAI,CAAEkjF,qBAAsB,IAAMthC,GAAIuhC,aAAc,IAAMC,GAAIC,mBAAoB,IAAMC,GAAIC,wBAAyB,IAAM9/B,GAAI+/B,UAAW,IAAMl5B,GAAIm5B,cAAe,IAAM9gC,GAAI+gC,cAAe,IAAMnhC,GAAIohC,WAAY,IAAMC,GAAIC,eAAgB,IAAMC,GAAI79B,gBAAiB,IAAMD,GAAI+9B,yBAA0B,IAAMt/B,GAAIu/B,6BAA8B,IAAM1/B,GAAI2/B,6BAA8B,IAAMv/B,GAAIqB,gBAAiB,IAAMD,GAAIo+B,eAAgB,IAAMl/B,GAAIm/B,KAAM,IAAMC,GAAIC,aAAc,IAAMC,GAAIl6B,WAAY,IAAMD,GAAIo6B,YAAa,IAAMC,GAAIC,UAAW,IAAMl6B,GAAI1E,mBAAoB,IAAMD,GAAID,mBAAoB,IAAMD,GAAIuE,YAAa,IAAMI,GAAIq6B,qBAAsB,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,oBAAqB,IAAMC,KAChtB,IAAIC,GAAK,QACLC,GAAK,QACLC,GAAK,eACT,SAASC,GAAG3tE,GACV,OAAO,IAAImP,QAASlP,GAAO8d,WAAW9d,IAAKsX,KAAKvX,GAElD,IAAI4tE,GAAK,MACP,YAAY3tE,GACV,IAAK3b,KAAIuxC,QAAQ,cACf,MAAM,IAAIjzB,MAAM,uFAClB3C,EAAGiX,WAAW02D,GAAGz9B,cAAgBlwC,EAAKA,EAAGtJ,MAAMi3E,GAAGz9B,WAAWtxE,UAAiB,MAANohC,GAA4B,IAAdA,EAAGphC,UAAkBohC,EAAKutE,IAAK7uG,KAAKkvG,kBAAoB5tE,EAAKwtE,GAAI9uG,KAAKmvG,mBAAqB7tE,EAAKytE,GAExL,WAAWztE,GACT,GAAuB,oBAAZsO,SACT,MAAM,IAAI3L,MAAM,2FAClB,IAAIxC,EAAIgqC,GAAG/T,KAAKp2B,EAAG+sC,YAAa1sC,EAAIqP,OAAOW,IAAIy9D,gBAAgB,IAAIpiC,KAAK,CAACvrC,GAAI,CAAEs5C,KAAM,8BACrF,GAAIz5C,EAAGmsC,yBAAyB1B,YAC9B,MAAM,IAAI9nC,MAAM,yFAClB,CACE,IAAIrC,EAAI,CAAC,CAAEytE,MAAO,CAAC,KAAOrvG,KAAKmvG,oBAAqBrgC,QAASxtC,EAAG8sC,cAAgBhqC,EAAIi7B,GAAG/9B,EAAIM,GAAIyC,EAAI2M,OAAOW,IAAIy9D,gBAAgB,IAAIpiC,KAAK,CAACJ,KAAKC,UAAUzoC,IAAK,CAAE22C,KAAM,sBAAwBz2C,EAA4B,MAAxBtkC,KAAKsvG,gBAA0B1/D,SAASkhD,cAAc,KAAO9wF,KAAKsvG,gBAClQ,GAAIhrE,EAAEirE,SAAWvvG,KAAKkvG,kBAAmB5qE,EAAEsO,KAAOvO,QAAS2qE,GAAG,IAAM1qE,EAAEkrE,cAAc,IAAIC,WAAW,WAA6B,MAAjBnuE,EAAG+sC,WAAoB,CACpI,IAAI9pC,EAA6B,MAAzBvkC,KAAK0vG,iBAA2B9/D,SAASkhD,cAAc,KAAO9wF,KAAK0vG,iBAC3EnrE,EAAEgrE,SAAWvvG,KAAKmvG,mBAAoB5qE,EAAEqO,KAAOjR,QAASqtE,GAAG,IAAMzqE,EAAEirE,cAAc,IAAIC,WAAW,WAElG,MAAO,CAAEl+B,mBAAoBhD,GAAGjtC,OAItC2tE,GAAGz9B,WAAa,eAChB,IAAIm+B,GAAK,MACP,YAAYruE,GACV,GAAU,MAANA,GAAcA,EAAGphC,OAAS,EAC5B,MAAM,IAAI+jC,MAAM,wEAAwE3C,GAC1FthC,KAAK4vG,SAAWtuE,EAAG,GAAIthC,KAAK6vG,aAAevuE,EAAGtJ,MAAM,GAEtD,aACE,OAAO,IAAIwY,QAAQ,CAAClP,EAAIG,KACtB,IAAIE,EAAI,IAAImuE,WACZnuE,EAAE0R,OAAUzR,IACV,IAAIwC,EAAIwoC,KAAKqG,MAAMrxC,EAAE7iC,OAAOgmE,QAAS1gC,EAAID,EAAEqpC,cAC3C,GAAS,MAALppC,EAEF,YADA5C,EAAE,IAAIwC,MAAM,4CAA4CjkC,KAAK4vG,SAASruG,OAGxE,GAAyB,MAArB6iC,EAAEypC,gBAEJ,YADApsC,EAAE,IAAIwC,MAAM,6CAA6CjkC,KAAK4vG,SAASruG,OAGzE,GAAiC,IAA7BvB,KAAK6vG,aAAa3vG,OAEpB,YADAohC,EAAG,CAAEmsC,cAAeppC,IAGtB,IAAIE,EAAI+pC,GAAGlqC,EAAIK,GAAMzkC,KAAKouG,YAAY3pE,IACtCnD,EAAGiD,IACF5C,EAAE4R,QAAW3R,GAAMH,EAAE,sEAAsEzhC,KAAK4vG,SAASruG,6EAA8EogC,EAAEouE,WAAW/vG,KAAK4vG,YAGhN,YAAYtuE,GACV,IAAIG,EAAI,GAAIE,EAAI,GAChB,IAAK,IAAI0C,KAAK/C,EACZG,EAAEoK,QAAQxH,EAAEyqC,SAAUntC,EAAEkK,QAAQxH,EAAEgrE,OACpC,IAAIztE,EAAI5hC,KAAKgwG,4BAA4B1uE,GAAK8C,EAAIzC,EAAE4yB,IAAKlwB,GAAMrkC,KAAKiwG,gBAAgB5rE,EAAGzC,EAAEyC,KACzF,OAAOmM,QAAQ5zB,IAAIwnB,GAAGwU,KAAMvU,GAAM,CAAC5C,EAAG4C,IAExC,gBAAgB/C,EAAIG,GAClB,OAAO,IAAI+O,QAAQ,CAAC7O,EAAGC,KACrB,IAAIwC,EAAI,IAAI0rE,WACZ1rE,EAAEiP,OAAUhP,IACV,IAAIC,EAAID,EAAEtlC,OAAOgmE,OACjBpjC,EAAE2C,IACDF,EAAEmP,QAAWlP,GAAMzC,EAAE,6CAA6CN,OAAS8C,EAAE8rE,kBAAkBzuE,KAGtG,4BAA4BH,GAC1B,IAAIG,EAAI,GAAIE,EAAI3hC,KAAK6vG,aAAat7C,IAAKnwB,GAAMmpC,GAAGnpC,EAAE7iC,OAAQqgC,EAAI,GAC9D,IAAK,IAAIwC,KAAK9C,EACZ8C,EAAEirE,MAAM11D,QAAStV,IACf,IAAIC,EAAIipC,GAAGlpC,GACX,IAAsB,IAAlB5C,EAAE/gC,QAAQ4jC,GACZ,MAAM,IAAIL,MAAM,uDAAuDK,MACzE,GAAI7C,EAAEoK,KAAKvH,IAAsB,IAAlB3C,EAAEjhC,QAAQ4jC,GACvB,MAAM,IAAIL,MAAM,8BAA8BK,uBAChD1C,EAAEyC,GAAKrkC,KAAK6vG,aAAaluE,EAAEjhC,QAAQ4jC,MAEvC,GAAI7C,EAAEvhC,SAAWF,KAAK6vG,aAAa3vG,OACjC,MAAM,IAAI+jC,MAAM,wDAAwDxC,EAAEvhC,oDAAoDF,KAAK6vG,aAAa3vG,YAClJ,OAAO0hC,IAGPuuE,GAAM9uE,GAAM1b,KAAIuxC,QAAQ,gBAAkBzC,MAAMC,QAAQrzB,IAAMA,EAAEkX,WAAW02D,GAAGz9B,YAAc4+B,GAAG/uE,EAAErJ,MAAMi3E,GAAGz9B,WAAWtxE,SAAW,KAEpI,SAASkwG,GAAG/uE,EAAI,SACd,OAAO,IAAI4tE,GAAG5tE,GAEhB,SAAS4rE,GAAG5rE,GACV,OAAO,IAAIsuE,GAAGtuE,GAEhB,SAASgvE,GAAGhvE,EAAGC,EAAIG,EAAGE,GACpB0C,EAAEhD,GAAII,EAAS,MAALA,EAAY,EAAIA,EAAGE,EAAS,MAALA,EAAY,EAAIA,EAAG2C,EAAE7C,EAAGE,GACzD,IAAIC,EAAI,EAAGwC,EAAKG,IAAOA,EAAEqU,KAAMnU,IAC7B,IAAIyB,EAAIzE,KAAMG,EAAIP,EAAEnhC,QAAUyhC,EAAIF,GAClC,OAAOH,EAAG4E,GAAIzB,IACZF,GACJ,SAASF,EAAEE,GACT3lC,GAAO,MAAL2lC,GAAakwB,MAAMC,QAAQnwB,IAAMA,EAAErkC,OAAS,EAAG,IAAM,uCAEzD,SAASokC,EAAEC,EAAGE,GACZ7lC,GAAE2lC,GAAK,GAAKA,GAAK,EAAG,IAAM,oEAAoEA,GAAM3lC,GAAE6lC,GAAK,GAAKA,GAAK,EAAG,IAAM,kEAAkEA,GAAM7lC,GAAE6lC,GAAKF,EAAG,IAAM,yEAAyEA,qBAAqBE,KAEtT,OAAO+L,QAAQ5zB,IAAIykB,EAAEkzB,IAAInwB,IAE3B+nC,eAAemkC,GAAGjvE,EAAGC,GACb,MAANA,IAAeA,EAAK,IACpB,IAAIG,EAAoB,MAAhBH,EAAGivE,UAAoB5qF,KAAIsxC,SAASve,MAAQpX,EAAGivE,UAAW5uE,EAAIN,EAAEkzB,IAAKzsB,GAAMrG,EAAEqG,EAAGxG,EAAGkvE,YAAa,CAAEC,UAAU,KAAU7uE,EAAI,EAAGwC,EAAI,GAAKE,GAAsB,MAAjBhD,EAAGovE,iBAA2BlgE,QAAQ5zB,IAAI+kB,SAAW0uE,GAAG1uE,EAAGL,EAAGovE,WAAY9uE,EAAGwC,IAAImwB,IAAKzsB,GAAMA,EAAEgR,eAAgBvU,EAAI,GAAKE,EAAI,EAC9Q,OAAwB,MAAjBnD,EAAGovE,iBAA2BlgE,QAAQ5zB,IAAI0nB,SAAW+rE,GAAG/rE,EAAGhD,EAAGovE,WAAYnsE,EAAGE,GAEtF0nC,eAAekiC,GAAGhtE,EAAGC,EAAK,GAAIG,EAAGE,GAC/B,OAAO6sE,GAAInqE,GAAMisE,GAAGjsE,EAAG,CAAEmsE,YAAa7uE,IAA/B6sE,CAAqCntE,EAAGC,EAAIG,GAErD,SAAS+sE,GAAGntE,GACV,OAAO8qC,MAAO7qC,EAAIG,EAAI,GAAIE,KACxB,IAAIC,EAAIN,EAAGizB,IAAI,KAAM,GAAQnwB,EAAI,GAAIC,EAAS,MAAL1C,EAAYA,EAAE4yB,IAAI,KAAM,GAAS,GAAIjwB,EAAI,GAClF,GAAIhD,EAAGqY,QAAQ,CAAC3R,EAAGI,KACjB,IAAI8D,EAAI,EACRlE,EAAE8mC,QAAQn1B,QAASxN,IACjB,IAAIjB,EAAI,iBAAkBiB,EAAIA,EAAEsgC,aAAa/N,MAAQvyB,EAAEuyB,MAAOjyB,EAAI4+B,GAAGngC,GAAKyoB,GAAGxnB,EAAEgzB,OAAQpyB,EAAI,KACzFnL,EAAEwG,IAAK,EAAc,MAARhE,EAAEgE,KAAehE,EAAEgE,GAAK,IAAKhE,EAAEgE,GAAGyD,KAAK,CAAE8kE,cAAexkE,EAAGykE,YAAa1kE,EAAG2kE,UAAWpkE,KAEhG,MAAL9K,EAAYA,EAAEgY,QAAQ,CAAC3M,EAAGC,KACxBD,IAAMb,EAAE5qC,OAASwrC,IAAK1I,EAAE4I,IAAK,KAC1BF,IAAKzI,EAAEuH,KAAKM,EAAE5qC,MAAO2qC,GAAKO,OAE9BpI,EAAE4d,MAAOja,GAAMA,GAAI,CACtB,IAAIA,EAAIrG,EAAE+tB,OAAO,CAACtnB,EAAG8D,KAAO7H,EAAE6H,IAC9B,MAAM,IAAIjI,MAAM,kDAAkD+D,EAAE0vB,KAAK,kDACvCpzB,EAAEozB,KAAK,UAE3C,IAAInzB,EAAI3C,EAAE9hC,OAAO,CAACkoC,EAAGI,EAAG8D,KAAO9D,GAAKJ,EAAE6D,KAAKK,GAAIlE,GAAI,IAAKvD,EAAI,GAC5DF,EAAEoV,QAAS3R,IACT1G,EAAG0G,GAAGqnE,MAAM11D,QAASvR,IACnB,IAAI8D,EAAIzK,GAAKA,EAAEupC,SAAS,KAAO,GAAK,KAAO5iC,EAC3C3D,EAAEoH,KAAKK,OAGX,IAAIhG,QAAU7E,EAAEoD,GAAIqD,EAAI,GAAIC,EAAI,EAChC,OAAOxD,EAAEoV,QAAS3R,IAChB,IAAII,EAAI9G,EAAG0G,GAAGqnE,MAAMnvG,OAAQgsC,EAAI,IAAIu/B,GAAGvlC,EAAElO,MAAM+P,EAAGA,EAAIK,IACtDhE,EAAE4D,GAAG2R,QAASzO,IACZ,IAAIuB,EAAIP,EAAElU,MAAMkT,EAAE0lE,YAAa1lE,EAAE0lE,YAAc1lE,EAAE2lE,WAAY9jE,EAAIy/B,GAAG//B,EAAG,CAACvB,EAAEylE,gBAC1E,IAAK,IAAI3jE,KAAKD,EACZjF,EAAEkF,GAAKD,EAAEC,KACTjF,GAAKK,IACPN,GA9DRonC,GAAGM,mBAAmB2gC,IAiEtB,IAAIW,GAAK,2BACLC,GAAK,mBACLC,GAAK,MACP,YAAY1vE,EAAIG,GACd,GAAIzhC,KAAKixG,eAAiB,OAAa,MAALxvE,IAAcA,EAAI,IAAKzhC,KAAKkxG,iBAAmBzvE,EAAEyvE,iBAAkBlxG,KAAK0wG,WAAajvE,EAAEivE,WAAY1wG,KAAKmxG,mBAAqB1vE,EAAE0vE,mBAAmC,MAAf1vE,EAAE8uE,WAAqB3xG,GAAwB,mBAAf6iC,EAAE8uE,UAAyB,IAAM,+HAAgIvwG,KAAK04C,MAAQjX,EAAE8uE,WAAavwG,KAAK04C,MAAQ/yB,KAAIsxC,SAASve,MAAO95C,GAAQ,MAAN0iC,GAAcA,EAAGphC,OAAS,EAAG,IAAM,2DAA4Du0D,MAAMC,QAAQpzB,IAAO1iC,GAAgB,IAAd0iC,EAAGphC,OAAc,IAAM,iEAAiEohC,EAAGphC,YAAaF,KAAK2zE,KAAOryC,EAAqB,MAAjBG,EAAE+uE,aAA6C,MAAtB/uE,EAAE+uE,YAAYY,KACxsB,MAAM,IAAIntE,MAAM,sEAClBjkC,KAAKwwG,YAAc/uE,EAAE+uE,aAAe,GAEtC,WAAWlvE,GACT,GAAIA,EAAGmsC,yBAAyB1B,YAC9B,MAAM,IAAI9nC,MAAM,2FAClB,IAAIxC,EAAI7gC,OAAOmwC,OAAO,CAAEisD,OAAQh9F,KAAKixG,gBAAkBjxG,KAAKwwG,aAC5D/uE,EAAE2vE,KAAO,IAAIC,SACb,IAAI1vE,EAAI,CAAC,CAAE0tE,MAAO,CAAC,uBAAwBvgC,QAASxtC,EAAG8sC,cAAgBxsC,EAAIy9B,GAAG/9B,EAAIK,GAClF,GAAIF,EAAE2vE,KAAKE,OAAO,aAAc,IAAItkC,KAAK,CAACJ,KAAKC,UAAUjrC,IAAK,CAAEm5C,KAAMg2B,KAAO,cAAgC,MAAjBzvE,EAAG+sC,WAAoB,CACjH,IAAIhqC,EAAIonC,GAAG/T,KAAKp2B,EAAG+sC,YACnB5sC,EAAE2vE,KAAKE,OAAO,oBAAqB,IAAItkC,KAAK,CAAC3oC,GAAI,CAAE02C,KAAM+1B,KAAO,qBAElE,IAAI1sE,QAAUpkC,KAAK04C,MAAM14C,KAAK2zE,KAAMlyC,GACpC,GAAI2C,EAAEyU,GACJ,MAAO,CAAE04B,mBAAoBhD,GAAGjtC,GAAKiwE,UAAW,CAACntE,IACnD,MAAM,IAAIH,MAAM,gEAAgEG,EAAEkP,WAEpF,aACE,IAGI7R,EAHAH,QAAWthC,KAAK04C,MAAM14C,KAAK2zE,KAAM3zE,KAAKwwG,aAC1C,IAAKlvE,EAAGuX,GACN,MAAM,IAAI5U,MAAM,cAAcjkC,KAAK2zE,gCAAgCryC,EAAGgS,iFAExE,IACE7R,QAAUH,EAAGkwE,OACb,MAAOptE,GACP,IAAIC,EAAI,+CAA+CrkC,KAAK2zE,QAC5D,MAAM3zE,KAAK2zE,KAAK3I,SAAS,OAAS3mC,GAAK,+UAAiVA,GAAK,uEAAwE,IAAIJ,MAAMI,GAEjd,IAAI1C,EAAIF,EAAEgsC,cAAe7rC,EAAIH,EAAEosC,gBAC/B,GAAS,MAALlsC,GAAkB,MAALC,EACf,MAAM,IAAIqC,MAAM,2BAA2BjkC,KAAK2zE,iEAClD,OAAOrF,GAAG7sC,EAAI2C,GAAMpkC,KAAKouG,YAAYhqE,IAEvC,kBAAkB9C,GAChB,IAAIG,EAAIgzB,MAAMC,QAAQ10D,KAAK2zE,MAAQ3zE,KAAK2zE,KAAK,GAAK3zE,KAAK2zE,MAAOhyC,EAAGC,GAAK6vE,GAAGhwE,GAAI2C,EAAIpkC,KAAKkxG,kBAAoBvvE,EAAG0C,EAAIwqC,GAAGvtC,GAAKgD,EAAI,GAAIC,EAAI,GACrI,IAAK,IAAI2B,KAAK5E,EACZ,IAAK,IAAIwG,KAAK5B,EAAEmpE,MACa,MAA3BrvG,KAAKmxG,mBAA6B5sE,EAAEsH,KAAK7rC,KAAKmxG,mBAAmBrpE,IAAMxD,EAAEuH,KAAKzH,EAAI0D,EAAIlG,GAC1F5hC,KAAKmxG,oBAAsB7sE,EAAEuH,cAAc2E,QAAQ5zB,IAAI2nB,IACvD,IAAIE,QAAU6rE,GAAGhsE,EAAG,CAAEksE,YAAaxwG,KAAKwwG,YAAaD,UAAWvwG,KAAK04C,MAAOg4D,WAAY1wG,KAAK0wG,aAC7F,MAAO,CAACrsE,EAAGI,KAIf,SAASgtE,GAAGpwE,GACV,IAAIC,EAAKD,EAAEyR,YAAY,KAAMrR,EAAIJ,EAAEyR,YAAY,KAAMnR,EAAIN,EAAE8C,UAAU,EAAG7C,GAAKM,EAAIH,EAAIH,EAAKD,EAAE8C,UAAU1C,GAAK,GAC3G,MAAO,CAACE,EAAI,IAAKC,GAEnB,SAASusE,GAAG9sE,GACV,OAAuC,MAAhCA,EAAEqwE,MAAMV,GAAGW,kBANpBX,GAAGW,iBAAmB,eAQtB,IAAIC,GAAK,CAACvwE,EAAGC,KACX,GAAoB,oBAAToX,QAA+B,MAANpX,GAA8B,MAAhBA,EAAGivE,WACnD,OAAO,KACT,CACE,IAAI9uE,GAAI,EACR,GAAuBA,EAAnBgzB,MAAMC,QAAQrzB,GAASA,EAAE4gB,MAAOtgB,GAAMwsE,GAAGxsE,IAAUwsE,GAAG9sE,GAAII,EAC5D,OAAOwsE,GAAG5sE,EAAGC,GAEjB,OAAO,MAIT,SAAS2sE,GAAG5sE,EAAGC,GACb,OAAO,IAAI0vE,GAAG3vE,EAAGC,GAEnB,SAAS6rE,GAAG9rE,EAAGC,GACb,OAAO2sE,GAAG5sE,EAAGC,GANf4tC,GAAGM,mBAAmBoiC,IACtB1iC,GAAGQ,mBAAmBkiC,IAOtB,IAAIC,GAAK,MACP,YAAYvwE,GACVthC,KAAKoxE,eAAiB9vC,EAExB,OACE,OAAOthC,KAAKoxE,iBAGZ0gC,GAAK,MACP,YAAYxwE,GACVthC,KAAK+xG,YAAczwE,EAErB,KAAKA,GACH,OAAOthC,KAAK+xG,YAAYzwE,KAGxB0wE,GAAK,MACP,YAAY1wE,GACVA,EAAG4S,OAASl0C,KAAKk0C,KAAO,IAAM1D,QAAQwI,QAAQ1X,EAAG4S,SAAU5S,EAAGyyC,OAAS/zE,KAAK+zE,KAAQtyC,GAAM+O,QAAQwI,QAAQ1X,EAAGyyC,KAAKtyC,OAGtH,SAASgsE,GAAGpsE,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI3hC,UACR,OAAO,IAAI+xG,GAAGrE,MAAM/rE,IAEtB,SAAS+rE,GAAGtsE,EAAGC,EAAIG,EAAGE,GACpB,OAA4B,IAArB1hC,UAAUC,OAAkC,MAAnBmhC,EAAEosC,eAA0C,MAAjBpsC,EAAE+sC,YAAsB,IAAIyjC,GAAGxwE,IAAMmR,QAAQmB,KAAK,yNAA0N,IAAIk+D,GAAG,CAAEpkC,cAAepsC,MAASmR,QAAQmB,KAAK,yNAA0N,IAAIk+D,GAAG,CAAEpkC,cAAepsC,EAAG+sC,YAAa9sC,EAAI+sC,WAAY5sC,EAAGysC,eAAgBvsC,KAE5pB,SAAS+sE,GAAGrtE,GACV,OAAO,IAAIywE,GAAGzwE,GAEhB,SAASutE,GAAGvtE,GACV,OAAO,IAAIywE,GAAGzwE,GAEhB,IAAIlU,GAAK,GAET,SAAS8kF,GAAG5wE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,SAAU,mBAAoBO,EAAI4J,GAAElK,EAAI,cAAe,mBACpE1iC,GAAO,MAAL6iC,GAAaA,EAAI,GAAK+xB,OAAO8C,UAAU70B,GAAI,IAAM,+DAA+DA,GAAM7iC,GAAa,IAAX+iC,EAAEs9B,KAAY,IAAM,gDAAgDt9B,EAAEs9B,MAASrgE,GAAa,IAAXgjC,EAAEq9B,KAAY,IAAM,qDAAqDr9B,EAAEq9B,MAASrgE,GAAE+iC,EAAEw9B,MAAM,KAAOv9B,EAAEu9B,MAAM,GAAI,IAAM,uCAAuCx9B,EAAEw9B,MAAM,UAAUv9B,EAAEu9B,MAAM,uEAAwEvgE,GAAE6iC,EAAI,GAAK+xB,OAAO8C,UAAU70B,GAAI,IAAM,4DAA4DA,GAC7iB,IAAI2C,EAAIrU,GAAG5P,GAAGwhB,EAAG,SAAUF,GAAI4C,EAAItU,GAAG5P,GAAGyhB,EAAG,SAAUH,GAAI6C,EAAInH,GAAGiH,GAAIG,EAAItX,GAAGqX,EAAGD,GAC/E,OAAOlkB,GAAGokB,EAAG,SALf/C,EAAGrU,GAAI,CAAE+kF,gBAAiB,IAAMC,KAOhC,IAGIC,GAHAD,GAAK9hF,GAAE,CAAEgiF,iBAAkBJ,KAC3BlyF,GAAK,GACTyhB,EAAGzhB,GAAI,CAAEuyF,KAAM,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,SAAU,IAAMC,KAE1F,IAAIC,IAAK,EACT,SAASC,GAAG1xE,EAAGC,EAAK,GAClB,GAAIA,EAAK,EACP,MAAM,IAAI2C,MAAM,kEAClB,GAAS,MAAL5C,EACF,MAAM,IAAI4C,MAAM,4DAClB,IAAIxC,GAAI,EAAOE,GAAI,EAAOC,GAAI,EAAOwC,GAAI,EAAOC,GAAI,EAAOC,GAAI,EAC/D,GAAIjD,EAAEub,gBAAgBra,WACpBd,GAAI,OACD,GAAwB,oBAAbuxE,WAA4B3xE,aAAa2xE,UACvDrxE,GAAI,OACD,GAA+B,oBAApBsxE,kBAAmC5xE,aAAa4xE,iBAC9DrxE,GAAI,OACD,GAA+B,oBAApBsxE,kBAAmC7xE,aAAa6xE,iBAC9D9uE,GAAI,OACD,GAAoB,MAAhB/C,EAAE8xE,WACT9uE,GAAI,MACD,MAA0B,oBAAf+uE,aAA8B/xE,aAAa+xE,aAGzD,MAAM,IAAInvE,MAAM,qPAAqP5C,EAAEs0B,YAAYp0D,MAFnR+iC,GAAI,EAGN,GAA6B,MAAzBjc,GAAG3c,GAAIi7D,GAAE/N,aAAsB,CACjC,IAAIxwB,EAAI,CAAEirE,OAAQhyE,GAAK6K,EAAI,CAAEonE,YAAahyE,GAC1C,OAAOqlC,GAAEC,UAAUl7D,GAAI08B,EAAG8D,GAE5B,IAAsEpE,EAgBlEC,GAhBCtD,EAAGyB,GAAKtE,EAAI,CAACP,EAAEkyE,WAAYlyE,EAAEmyE,aAAe,CAACnyE,EAAEspC,MAAOtpC,EAAEqpC,QAC7D,GAAIrmC,EACFyD,EAAIzG,EAAE8xE,WAAW,MAAMM,aAAa,EAAG,EAAGhvE,EAAGyB,GAAG0W,UAC7C,GAAIjb,GAAKF,EACZqG,EAAIzG,EAAEub,UACH,GAAIxY,GAAKxC,GAAK0C,EAAG,CACpB,GAAU,MAAN8tE,GACF,GAAuB,oBAAZxiE,SACT,IAA8B,oBAAnB8jE,iBAA8E,oBAArCC,kCAGlD,MAAM,IAAI1vE,MAAM,wGAFhBmuE,GAAK,IAAIsB,gBAAgB,EAAG,GAAGP,WAAW,WAI5Cf,GAAKxiE,SAASkhD,cAAc,UAAUqiB,WAAW,KAAM,CAAES,oBAAoB,IACjFxB,GAAGyB,OAAOlpC,MAAQlmC,EAAG2tE,GAAGyB,OAAOnpC,OAASxkC,EAAGksE,GAAG0B,UAAUzyE,EAAG,EAAG,EAAGoD,EAAGyB,GAAI4B,EAAIsqE,GAAGqB,aAAa,EAAG,EAAGhvE,EAAGyB,GAAG0W,KAG1G,GAAW,IAAPtb,EACFyG,EAAI,IAAI6N,WAAW9N,OAChB,CACH,IAAIM,EAAI3D,EAAIyB,EACZ6B,EAAI,IAAI6N,WAAWxN,EAAI9G,GACvB,IAAK,IAAI4K,EAAI,EAAGA,EAAI9D,EAAG8D,IACrB,IAAK,IAAIC,EAAI,EAAGA,EAAI7K,IAAM6K,EACxBpE,EAAEmE,EAAI5K,EAAK6K,GAAKrE,EAAM,EAAJoE,EAAQC,GAEhC,OAAOxQ,GAAGoM,EAAG,CAAC7B,EAAGzB,EAAGnD,GAAK,SAE3B,SAASyyE,GAAG1yE,GACV,OAAY,MAALA,GAAaA,EAAEub,gBAAgBra,WAExC,SAASyxE,KACP,MAAwB,oBAAVhjE,QAA+C,oBAAfoiE,aAA8BpiE,OAAO7P,eAAe,qBAEpG,SAAS8yE,GAAG5yE,GACV,OAAY,MAALA,GAAyB,IAAZA,EAAEspC,OAA4B,IAAbtpC,EAAEqpC,OAEzC,SAASwpC,GAAG7yE,GACV,OAAO2yE,QAAU3yE,aAAa+xE,cAAgBa,GAAG5yE,KAAO0yE,GAAG1yE,GAE7D8qC,eAAewmC,GAAGtxE,EAAGC,EAAK,GACxB,IAAIG,EAAI,KACR,GAAI9b,KAAIuxC,QAAQ,wBAA0Bg9C,GAAG7yE,GAAI,CAC/C,IAAIM,EACJ,IACEA,QAAUwyE,kBAAkB9yE,EAAG,CAAE+yE,iBAAkB,SACnD,MAAOxyE,GACPD,EAAI,KAEsDF,EAAvD,MAALE,GAAaA,EAAEgpC,QAAUtpC,EAAEspC,OAAShpC,EAAE+oC,SAAWrpC,EAAEqpC,OAAa/oC,EAAQN,OAExEI,EAAIJ,EACN,OAAO0xE,GAAGtxE,EAAGH,GAEf,SAAS+yE,GAAGhzE,GACV,GAAe,IAAXA,EAAE49B,MAAyB,IAAX59B,EAAE49B,KACpB,MAAM,IAAIh7B,MAAM,wDAAwD5C,EAAE49B,SAC5E,IAAI39B,EAAgB,IAAXD,EAAE49B,KAAa,EAAI59B,EAAE89B,MAAM,GACpC,GAAI79B,EAAK,GAAY,IAAPA,EACZ,MAAM,IAAI2C,MAAM,0DAA0D3C,GAC5E,GAAgB,YAAZD,EAAEq9B,OAAmC,UAAZr9B,EAAEq9B,MAC7B,MAAM,IAAIz6B,MAAM,kCAAkC5C,EAAEq9B,+CAExD,SAAS41C,GAAGjzE,GACV,IAAIC,GAAW,MAALD,OAAY,EAASA,EAAE6lD,QAAU,EAC3C,GAAI5lD,EAAK,GAAKA,EAAK,EACjB,MAAM,IAAI2C,MAAM,eAAe3C,wCAEnC6qC,eAAe0mC,GAAGxxE,EAAGC,GACnB,IAAIG,EAAI+J,GAAEnK,EAAG,MAAO,YACpB,KAAMA,aAAa/mB,IAAK,CACtB,IAAImqB,EAAIhD,EACRA,EAAIthB,GAAGskB,EAAG,SAAUA,EAAEzgB,UAExBqwF,GAAG5yE,GACH,IAAKE,EAAGC,GAAKH,EAAE09B,MAAMnnC,MAAM,EAAG,GAAIoM,EAAe,IAAX3C,EAAEw9B,KAAa,EAAIx9B,EAAE09B,MAAM,GAAI96B,QAAU5C,EAAEmb,OAAQtY,EAAgB,YAAZ7C,EAAEi9B,MAAsB,IAAM,EAAGn6B,EAAI,IAAIkxB,kBAAkB7zB,EAAID,EAAI,GAChK,IAAK,IAAI8C,EAAI,EAAGA,EAAI9C,EAAIC,IAAK6C,EAAG,CAC9B,IAAIyB,EAAI,CAAC,EAAG,EAAG,EAAG,KAClB,IAAK,IAAI6B,EAAI,EAAGA,EAAI3D,EAAG2D,IAAK,CAC1B,IAAIC,EAAI3D,EAAEI,EAAIL,EAAI2D,GAClB,GAAgB,YAAZtG,EAAEi9B,OACJ,GAAI12B,EAAI,GAAKA,EAAI,EACf,MAAM,IAAI/D,MAAM,mFAAmF+D,WAChG,GAAgB,UAAZvG,EAAEi9B,QAAsB12B,EAAI,GAAKA,EAAI,KAC9C,MAAM,IAAI/D,MAAM,mFAAmF+D,MAC/F,IAAN5D,GAAW8B,EAAE,GAAK8B,EAAI1D,EAAG4B,EAAE,GAAK8B,EAAI1D,EAAG4B,EAAE,GAAK8B,EAAI1D,GAAK4B,EAAE6B,GAAKC,EAAI1D,EAEpE,IAAIwD,EAAQ,EAAJrD,EACRF,EAAEuD,EAAI,GAAK/D,KAAK3O,MAAM8Q,EAAE,IAAK3B,EAAEuD,EAAI,GAAK/D,KAAK3O,MAAM8Q,EAAE,IAAK3B,EAAEuD,EAAI,GAAK/D,KAAK3O,MAAM8Q,EAAE,IAAK3B,EAAEuD,EAAI,GAAK/D,KAAK3O,MAAM8Q,EAAE,IAEjH,GAAU,MAAN5E,EAAY,CACdwxE,IAA+B,MAAzBzqF,GAAG3e,GAAIi9D,GAAE/N,eAAyBpmB,QAAQmB,KAAK,sGAAuGm/D,IAAK,GAAOxxE,EAAGqpC,MAAQ/oC,EAAGN,EAAGopC,OAAS/oC,EAClM,IAAI8C,EAAInD,EAAG6xE,WAAW,MAAOjtE,EAAI,IAAI8sE,UAAUzuE,EAAG3C,EAAGD,GACrD8C,EAAE8vE,aAAaruE,EAAG,EAAG,GAEvB,OAAOzE,IAAMJ,GAAKI,EAAEzd,UAAWugB,EAEjC,SAASguE,GAAGlxE,EAAGC,EAAIG,GACjB,IAAIE,EAAI6J,GAAEnK,EAAG,MAAO,QACpB,KAAMA,aAAa/mB,IAAK,CACtB,IAAI+pB,EAAI1C,EACRA,EAAIxhB,GAAGkkB,EAAG,SAAUA,EAAErgB,UAExBqwF,GAAG1yE,GAAI2yE,GAAQ,MAAL7yE,OAAY,EAASA,EAAE+yE,cACjC,IAAI5yE,EAAI,CAAEpY,MAAOmY,GAAKyC,EAAI,CAAEyvE,OAAQvyE,EAAImzE,QAAShzE,GACjDklC,GAAEC,UAAUl9D,GAAIk4B,EAAGwC,GAErB,IAAIquE,GAAKpiF,GAAE,CAAEqkF,YAAa3B,KACtBhrF,GAAK,GAET,SAAS4sF,GAAGtzE,EAAGC,GACb,IAAIG,EAAIJ,EAAE89B,MAAMj/D,OAAQyhC,EAAIL,EAAG69B,MAAMj/D,OACrC,GAAIuhC,EAAI,EACN,MAAM,IAAIwC,MAAM,4EAA4ExC,MAC9F,GAAIE,EAAI,EACN,MAAM,IAAIsC,MAAM,8EAA8EtC,MAChG,GAAiB,UAAbL,EAAGo9B,MACL,MAAM,IAAIz6B,MAAM,yEAAyE3C,EAAGo9B,UAC9F,GAAIp9B,EAAG69B,MAAMx9B,EAAI,GAAKF,EACpB,MAAM,IAAIwC,MAAM,iEAAiE3C,EAAG69B,MAAMx9B,EAAI,UAAUF,KAC1G,GAAoB,IAAhBkyB,GAAGtyB,EAAE89B,OACP,MAAM,IAAIl7B,MAAM,mEAAmE5C,EAAE89B,UACvF,IAAIv9B,EAAIN,EAAG69B,MAAO/6B,EAAIxC,EAAEA,EAAE1hC,OAAS,GAAImkC,EAAI,EAC3C,IAAK,IAAIyD,EAAI,EAAGA,EAAIlG,EAAE1hC,OAAS,IAAK4nC,EAClCzD,GAAKzC,EAAEkG,GACT,IAAIxD,EAAIjD,EAAE89B,MAAO56B,EAAI3C,EAAE5J,QACvBuM,EAAEuZ,MACF,IAAIrZ,EAAI,EACR,IAAK,IAAIqD,EAAI1D,EAAG0D,EAAIrG,IAAKqG,EACvBrD,GAAKH,EAAEwD,GAAIvD,EAAEsH,KAAKvH,EAAEwD,IACtB,IAAI5B,EAAI,IAAI2vB,GAAGx0B,EAAE89B,OAAO5K,IAAKzsB,GAAMA,EAAIrD,GAAI,GAAGzM,MAAM,EAAGoM,GACvD,MAAO,CAACG,EAAGF,EAAGI,EAAGyB,GAtBnB1E,EAAGzZ,GAAI,CAAE6sF,mBAAoB,IAAMD,KAwBnC,IAAIh8E,GAAK,GACT6I,EAAG7I,GAAI,CAAEk8E,kBAAmB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,2BAA4B,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,0BAA2B,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,sBAAuB,IAAMC,KAC/Y,IAAIC,IAAM,EACNC,IAAM,EACV,SAAS5B,GAAGzzE,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE89B,MAAMj/D,OAChBtB,GAAE+iC,IAAML,EAAGphC,OAAQ,IAAM,iBAAiByhC,uBAAuBL,uCAAwCK,OAAQ/iC,GAAE+iC,IAAMF,EAAEvhC,OAAQ,IAAM,iBAAiByhC,sBAAsBF,uCAAuCE,OACvN,IAAK,IAAIC,EAAI,EAAGA,EAAID,IAAKC,EACvBhjC,GAAE0iC,EAAGM,GAAKH,EAAEG,IAAMP,EAAE89B,MAAMv9B,GAAI,IAAM,iBAAiBD,aAAaC,aAAaA,OAAON,EAAGM,GAAKH,EAAEG,kCAAkCA,OAAOP,EAAE89B,MAAMv9B,OAErJ,SAAS4zE,GAAGn0E,GACV,IAAIC,EAAK,GAAIG,EAAI,EACjB,KAAOJ,EAAI,GACL,EAAJA,GAASC,EAAGuK,KAAKpK,GAAIJ,GAAK,EAAGI,IAC/B,OAAOH,EAET,SAAS4zE,GAAG7zE,EAAGC,EAAIG,GACjB,IAAIE,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,IAC5BD,EAAEC,GAAKmC,KAAK3jB,MAAMkhB,EAAGM,GAAKP,EAAEO,IAAMH,EAAEG,IACtC,OAAOD,EAET,SAAS60E,GAAGn1E,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI,IAAIP,GACZ,IAAK,IAAI+C,EAAIxC,EAAE1hC,OAAQkkC,EAAIzC,EAAEzhC,OAAQkkC,IACnCxC,EAAEiK,KAAK,GACT,IAAK,IAAIzH,EAAI,EAAGA,EAAI3C,EAAG2C,IACf,IAANA,EAAUxC,EAAEN,GAAM,GAAKM,EAAE8Y,OAAOpZ,EAAI,EAAG,GAAIM,EAAEkc,OAC/C,OAAOlc,EAET,SAAS+0E,GAAGt1E,EAAGC,EAAIG,GACjB,OAAOA,GAAKJ,EAAII,EAAIA,GAAKH,EAAK,GAEhC,SAASs1E,GAAGv1E,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAGM,IACrBF,EAAEoK,KAAKvK,EAAKK,GACd,OAAOF,EAET,SAAS2zE,GAAG/zE,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,GACnC,IAAIE,EAAIpD,EAAEnhC,OAAQgmC,EAAI,IAAIuuB,MAAMhwB,GAAIqD,EAAI,IAAI2sB,MAAMhwB,GAAIsD,EAAI,IAAI0sB,MAAMhwB,GACpE,GAAInD,EAAGphC,QAAUuhC,EAAI,EAAG,CACtB,IAAIuG,EAAI1G,EAAG,GAAI8G,EAAI3G,EAAI,EACvByE,EAAI8vE,GAAG3xE,EAAG2D,EAAGI,EAAGzG,EAAGN,GAAIyG,EAAIsuE,GAAG9xE,EAAG0D,EAAGI,EAAGxG,EAAGP,GAAI0G,EAAIyuE,GAAGpyE,EAAG4D,EAAGI,EAAG/G,QAE9D,IAAK,IAAI2G,EAAI,EAAGA,EAAIvD,EAAGuD,IACrB9B,EAAE8B,GAAK8tE,GAAGzxE,EAAG1C,EAAGyC,EAAG/C,EAAG2G,EAAGzD,GAAIuD,EAAEE,GAAKkuE,GAAG5xE,EAAG1C,EAAGwC,EAAG/C,EAAG2G,EAAGzD,GAAIwD,EAAEC,GAAKsuE,GAAGlyE,EAAG4D,EAAGzD,GAC9E,MAAO,CAAEi4C,MAAOt2C,EAAG4lC,IAAKhkC,EAAGq4B,QAASp4B,GAEtC,SAASiuE,GAAG30E,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI,IAAIxC,GAAIyC,EAAIuyE,GAAGn1E,EAAGH,GAC1B,IAAK,IAAIgD,EAAI,EAAGA,EAAIF,EAAElkC,OAAQokC,IAC5B,GAAID,EAAE3jC,QAAQ4jC,IAAM,EAClBF,EAAEE,GAAK,MACJ,CACH,IAAIC,EAAIoyE,GAAGr1E,EAAIG,EAAG6C,GAAIG,EAAI9C,EAAE4C,GAC5BlD,EAAI,GAAKkD,IAAME,EAAI,GAAIL,EAAEE,GAAKG,EAElC,OAAOL,EAET,SAASgyE,GAAG/0E,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI,IAAIxC,GAAIyC,EAAIuyE,GAAGn1E,EAAGH,GAC1B,IAAK,IAAIgD,EAAI,EAAGA,EAAIF,EAAElkC,OAAQokC,IAC5B,GAAID,EAAE3jC,QAAQ4jC,IAAM,EAClBF,EAAEE,GAAKkvB,OAAOqjD,qBACX,CACH,IAAItyE,EAAIoyE,GAAGr1E,EAAIG,EAAG6C,GAAIG,EAAI9C,EAAE4C,GAC5BlD,EAAI,GAAKkD,IAAME,EAAI+uB,OAAOqjD,kBAAmBzyE,EAAEE,GAAKG,EAExD,IAAK,IAAIH,EAAI,EAAGA,EAAIF,EAAElkC,OAAQokC,IAAK,CACjC,IAAIC,EAAI3C,EAAE0C,GACVF,EAAEE,GAAK,IAAMF,EAAEE,IAAMC,GAAIH,EAAEE,GAAK6uB,EAAG,EAAG/uB,EAAEE,GAAI1C,EAAE0C,IAEhD,OAAOF,EAET,SAASkyE,GAAGj1E,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAQG,EAAI,GAAKH,GAAW,MAALK,KAAeA,EAAI,GAAIA,EAEhD,SAASm0E,GAAGz0E,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAI/C,EAAGM,GAAI0C,EAAI7C,EAAEG,IAAM,GAC1BP,EAAI,GAAKO,GAAKwC,EAAI,GAAKxC,GAAU,MAALyC,KAAuBA,EAARC,EAAI,EAAQkvB,OAAOsjD,iBAAuBtjD,OAAOqjD,kBAC7F,IAAItyE,EAAI5C,EAAEC,GACV,OAAOyC,EAAI,IAAMA,GAAKE,GAAIF,EAAI8uB,EAAG,EAAG9uB,EAAGE,EAAI,GAAIF,EAEjD,SAAS6xE,GAAG70E,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAI/C,EAAGM,GAAI0C,EAAI7C,EAAEG,IAAM,GAC1BP,EAAI,GAAKO,GAAKwC,EAAI,GAAKxC,GAAU,MAALyC,KAAuBA,EAARC,EAAI,EAAQkvB,OAAOqjD,iBAAuBrjD,OAAOsjD,kBAC7F,IAAIvyE,EAAI5C,EAAEC,GACV,OAAOyC,EAAI,IAAMA,GAAKE,GAAYF,EAARC,EAAI,EAAQ6uB,EAAG,EAAG9uB,EAAGE,GAAS4uB,GAAI,EAAG9uB,EAAGE,EAAI,GAAIF,EAE5E,SAASixE,GAAGj0E,EAAGC,EAAIG,GACjB,IAAIE,EAAIF,EAAEvhC,OACV,IAAK,IAAI0hC,EAAI,EAAGA,EAAIH,EAAEvhC,OAAQ0hC,IAC5B,GAAIH,EAAEG,GAAK,EAAG,CACZD,EAAIC,EACJ,MAEJ,IAAK,IAAIA,EAAID,EAAI,EAAGC,EAAIH,EAAEvhC,OAAQ0hC,IAChC,GAAIN,EAAGM,GAAK,GAAKH,EAAEG,KAAOP,EAAEO,GAC1B,OAAO,EACX,OAAO,EAET,SAASozE,GAAG3zE,EAAGC,GACb,IAAIG,EAAIJ,EAAEnhC,OAAS,EAAImhC,EAAEA,EAAEnhC,OAAS,GAAK,EACzC,IAAK,IAAIyhC,EAAI,EAAGA,EAAIN,EAAEnhC,OAAS,EAAGyhC,IAChCF,GAAKJ,EAAEM,GAAKL,EAAGK,GACjB,OAAOF,EAET,SAASi0E,GAAGr0E,EAAGC,EAAIG,GACjB,IAAIE,EAIAyC,EAJGxC,EAAIP,EAAE89B,MAAMj/D,OAKnB,OAJwByhC,EAAX,iBAANL,EAAqB,CAACA,KAAO,IAAImzB,MAAM7yB,EAAI,GAAGhb,KAAK,IAAM0a,EAAGphC,OAAS0hC,EAAQN,EAAG1gB,OAAO,IAAI6zC,MAAM7yB,EAAIN,EAAGphC,QAAQ0mB,KAAK,IAAU0a,EAAGtJ,QAAS2J,EAAEgY,QAAStV,IAC3JzlC,IAAS,IAAPylC,EAAU,IAAM,uDAGDD,EAAP,MAAL3C,EAAgB,IAAIgzB,MAAM7yB,GAAGhb,MAAM,GAAiB,iBAAL6a,EAAoB,CAACA,KAAM,IAAIgzB,MAAM7yB,EAAI,GAAGhb,MAAM,IAAM6a,EAAEvhC,OAAS0hC,EAAQH,EAAE7gB,OAAO,IAAI6zC,MAAM7yB,EAAIH,EAAEvhC,QAAQ0mB,MAAM,IAAU6a,EAAG2C,EAAIA,EAAEmwB,IAAI,CAAClwB,EAAGC,IAAMD,GAAK,EAAIA,GAAKzlC,IAAS,IAAPylC,EAAU,IAAM,qDAAqDA,mCAAmCC,MAAOjD,EAAE89B,MAAM76B,GAAK3C,EAAE2C,KAAM,CAAC3C,EAAGyC,GAEnW,SAASwxE,GAAGv0E,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,GACnC,IAAIE,EACJ,GAAS,MAAL9C,GAAa8C,EAAI,IAAIgwB,MAAMnzB,EAAGphC,QAASukC,EAAE7d,KAAK,IAAM6d,EAAI9C,EAAQ,MAAL0C,GAAaA,EAAIA,EAAI,EAClF,MAAM,IAAIJ,MAAM,8CAClB,IAAIiC,GAAI,EAAO4B,EAAI,CAAE2rD,KAAMhvD,EAAEvkC,OAAQ62G,wBAAyB,EAAGv6B,MAAOl7C,EAAGtJ,QAAS8zC,IAAKrqC,EAAEzJ,QAASmoC,QAAS17B,EAAEzM,QAASg/D,UAAWp1D,EAAGq1D,QAAS7yD,EAAG8yD,aAAc7yD,EAAG8yD,YAAa7yD,EAAG8yD,eAAgB7yD,GACnM,IAAK,IAAIwI,EAAI,EAAGA,EAAIjF,EAAE2rD,KAAM1mD,IAC1B7G,GAAK,GAAK6G,EAAIzI,GAAKwD,EAAEivE,0BAA2B,GAAKhqE,EAAI1I,IAAM6B,GAAI,GACrEA,IAAM4B,EAAEovD,cAAgB,GAAKpvD,EAAE2rD,KAAM3rD,EAAE2rD,QACvC,IAAI1rD,EAAI,CAAE0rD,KAAMpyD,EAAEnhC,OAAQ82F,UAAW,EAAGC,QAAS,EAAG+f,YAAY,EAAOC,UAAU,GACjFC,GAAGpvE,EAAGC,GACN,IAAIC,GAAI,EAAMI,GAAI,EAAM8D,GAAI,EAAMC,EAAI,GAAIjB,EAAI,GAC9C,IAAK,IAAI6B,EAAI,EAAGA,EAAI1L,EAAEnhC,SAAU6sC,EAAG,CACjC,GAAqB,IAAjBhF,EAAEo4B,QAAQpzB,GACZ,MAAM9I,MAAM,WAAW8I,uBACzB,IAAIC,KAAOjF,EAAEqvD,eAAiB,GAAKrqD,GAAIE,EAAI5L,EAAE0L,GAC7C,IAAW,IAAPE,EAAU,CACZd,EAAEN,KAAKmB,EAAI,GAAK,GAChB,SAEF,IAAIE,EAAI,CAACnF,EAAEivD,UAAY,GAAKjqD,EAAGhF,EAAEkvD,QAAU,GAAKlqD,GAAIK,EAAI,CAACrF,EAAEo4B,QAAQpzB,GAAK,EAAI,GAAK,EAAGhF,EAAEo4B,QAAQpzB,GAAK,EAAIE,EAAIA,EAAI,GAC/G,GAAID,GAAKjF,EAAEo4B,QAAQpzB,IAAM,EACvB,MAAM9I,MAAM,gDACdiI,EAAIA,GAAsB,IAAjBnE,EAAEo4B,QAAQpzB,GACnB,IAAIM,KAAOtF,EAAEivD,UAAY,GAAKjqD,GAAKhF,EAAEkvD,QAAU,GAAKlqD,GACpD,GAAIhF,EAAEivE,YAAcjvE,EAAEkvE,SAAU,CAC9B,GAAIjqE,EAAG,CACL,IAAIQ,EAAIzF,EAAEy0C,MAAMzvC,GAAK,EAAIE,EAAIlF,EAAEy0C,MAAMzvC,GAAKhF,EAAEy0C,MAAMzvC,GAClD,GAAIhF,EAAEy0C,MAAMzvC,GAAKS,EAAGzF,EAAE+jC,IAAI/+B,GAAKhF,EAAEy0C,MAAMzvC,GAAK,EAAGS,EAAI,GAAKA,GAAKP,EAC3D,MAAMhJ,MAAM,eAAe8D,EAAEy0C,MAAMzvC,mBAAmBA,yBAExDhF,EAAEy0C,MAAMzvC,GAAKoqE,GAAGpvE,EAAEy0C,MAAMzvC,GAAI,EAAGhF,EAAEo4B,QAAQpzB,GAAIE,EAAGC,EAAGE,GAAIrF,EAAE+jC,IAAI/+B,GAAKoqE,GAAGpvE,EAAE+jC,IAAI/+B,GAAI,EAAGhF,EAAEo4B,QAAQpzB,GAAIE,EAAGC,EAAGE,GACxG,IAAInuC,EAAqB,IAAjB8oC,EAAEo4B,QAAQpzB,IAA2B,IAAfhF,EAAEy0C,MAAMzvC,IAAYhF,EAAE+jC,IAAI/+B,KAAOE,EAC/DjF,EAAIA,GAAK/oC,EAAGmpC,EAAIA,IAAY,IAAN2E,GAA4B,IAAjBhF,EAAEo4B,QAAQpzB,IAAY9tC,QAEvD+oC,EAAIA,GAAsB,IAAjBD,EAAEo4B,QAAQpzB,IAAYM,EAAGjF,EAAIA,IAAY,IAAN2E,GAA4B,IAAjBhF,EAAEo4B,QAAQpzB,IAAYM,GAC/E,IAAIC,EAAGC,GAAI,EACX,GAAIxF,EAAEivE,YAAcjvE,EAAEkvE,UAAY3pE,EAAIvF,EAAE+jC,IAAI/+B,GAAKhF,EAAEy0C,MAAMzvC,GAAIQ,GAAI,GAAQP,GAAKM,EAAI,EAAGC,GAAI,GAAQF,GAAKJ,GAAK,IAAyBK,EAAnBvF,EAAEo4B,QAAQpzB,GAAK,GAASE,EAAQA,EAAGM,GAAI,GAAOA,EAAG,CAChK,IAAItuC,EACmCA,EAAjC,IAANquC,GAAWA,EAAI,GAAKvF,EAAEo4B,QAAQpzB,GAAK,EAAQ,EAAQhJ,KAAKm3C,MAAM5tC,EAAIvF,EAAEo4B,QAAQpzB,KAAOO,EAAIvF,EAAEo4B,QAAQpzB,KAAO,EAAI,EAAI,GAAIZ,EAAEN,KAAK5sC,QAE3HktC,EAAEN,MAAM,GAEZ,IAAK,IAAIkB,EAAI,EAAGA,EAAIhF,EAAEqvE,wBAAwBl3G,SAAU6sC,EAAG,CACzD,IAAIC,EAAIjF,EAAEqvE,wBAAwBrqE,GAClCC,GAAK,EAAI9B,EAAEW,KAAKM,EAAEa,IAAMA,IAAMypE,IAAMvrE,EAAEW,KAAK,GAE7C,MAAO,CAAEwrE,iBAAkBnsE,EAAEwkB,OAAO,CAAC3iB,EAAGC,IAAMjF,EAAEqvE,wBAAwBpqE,KAAOypE,IAAKa,WAAYpsE,EAAGqsE,WAAYvvE,EAAGwvE,UAAWpvE,EAAGqvE,cAAevrE,EAAGswC,MAAOz0C,EAAEy0C,MAAO1Q,IAAK/jC,EAAE+jC,IAAK3L,QAASp4B,EAAEo4B,SAE3L,SAAS+2C,GAAG71E,EAAGC,GACbA,EAAG01D,UAAY,EAAG11D,EAAG21D,QAAU,EAAG31D,EAAG81D,eAAiB,EACtD,IAAI31D,EAAI,EACRH,EAAG01E,WAAwB,MAAX31E,EAAEm7C,MAAel7C,EAAG21E,SAAoB,MAAT51E,EAAEyqC,IAAaxqC,EAAGk7C,MAAQ,IAAI/nB,MAAMnzB,EAAGmyD,MAAOnyD,EAAGwqC,IAAM,IAAIrX,MAAMnzB,EAAGmyD,MAAOnyD,EAAG6+B,QAAU,IAAI1L,MAAMnzB,EAAGmyD,MAAOnyD,EAAG81E,wBAA0B,GAAI91E,EAAGo2E,8BAAgC,GAAIp2E,EAAGq2E,8BAAgC,IAAIljD,MAAMnzB,EAAGmyD,MACnR,IAAK,IAAI9xD,EAAI,EAAGA,EAAIN,EAAEoyD,KAAM9xD,IAC1B,GAAI,GAAKA,EAAIN,EAAE61D,aAAc,CAC3B,IAAIt1D,EAAImC,KAAK3V,IAAIkT,EAAGmyD,MAAQpyD,EAAEoyD,KAAO9xD,GAAK,EAAIN,EAAE01E,wBAAyBz1E,EAAGmyD,MAC5E,KAAOhyD,EAAIG,EAAGH,IACZH,EAAGk7C,MAAM/6C,GAAK,EAAGH,EAAGwqC,IAAIrqC,GAAK,EAAGH,EAAG6+B,QAAQ1+B,GAAK,EAAGH,EAAG01D,WAAa,GAAKv1D,EAAGH,EAAG21D,SAAW,GAAKx1D,EAAGH,EAAG81E,wBAAwBvrE,KAAKpK,GAAIH,EAAGo2E,8BAA8B7rE,MAAM,GAAIvK,EAAGq2E,8BAA8Bl2E,GAAKE,OACnN,GAAI,GAAKA,EAAIN,EAAE81D,YACpB71D,EAAG81E,wBAAwBvrE,KAAK4qE,IAAKn1E,EAAGo2E,8BAA8B7rE,MAAM,OACzE,CACH,GAAIpK,IAAMH,EAAGk7C,MAAMt8E,OACjB,MAAM+jC,MAAM,sCAAsCxC,qBAAqBH,EAAGmyD,cAAcnyD,EAAGk7C,MAAMt8E,WACxF,MAAXmhC,EAAEm7C,QAAkBl7C,EAAGk7C,MAAM/6C,GAAKJ,EAAEm7C,MAAM76C,IAAc,MAATN,EAAEyqC,MAAgBxqC,EAAGwqC,IAAIrqC,GAAKJ,EAAEyqC,IAAInqC,IAAKL,EAAG6+B,QAAQ1+B,GAAKJ,EAAE8+B,QAAQx+B,GAAIN,EAAE21D,UAAY,GAAKr1D,IAAML,EAAG01D,WAAa,GAAKv1D,GAAIJ,EAAE41D,QAAU,GAAKt1D,IAAML,EAAG21D,SAAW,GAAKx1D,GAAIJ,EAAE+1D,eAAiB,GAAKz1D,GAAKL,EAAG81E,wBAAwBvrE,KAAK6qE,IAAKp1E,EAAGo2E,8BAA8B7rE,MAAM,GAAIvK,EAAG81D,gBAAkB,GAAK31D,IAAMH,EAAG81E,wBAAwBvrE,KAAKpK,GAAIH,EAAGo2E,8BAA8B7rE,KAAKlK,IAAKL,EAAGq2E,8BAA8Bl2E,GAAKE,EAAGF,KAGje,SAAS01E,GAAG91E,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,GAAIxC,EAAEN,GACJ,OAAOG,EAAI,EAAI2C,EAAE9C,GAAM8C,EAAE9C,EAAK,EAAI,GACpC,CACE,IAAI+C,EAAIhD,EAAI,EAAIM,EAAIN,EAAIA,EACxB,OAAOgD,EAAID,EAAE,GAAKA,EAAE,GAAKC,EAAID,EAAE,GAAKA,EAAE,GAAKC,GAG/C,IAAIlF,GAAK,SACLrsB,GAAK,MACP,WAAWwuB,GACT,OAAO,IAAIhrB,GAAGgrB,GAEhB,gBAAgBA,EAAIG,EAAGE,GAAI,GACzB,OAAO,IAAIrwB,GAAGgwB,EAAIG,EAAGE,GAEvB,eAAeL,EAAIG,EAAI,GAAKE,EAAI,EAAGC,EAAI,KAAMwC,GAAI,GAC/C,OAAO,IAAIxwB,GAAG0tB,EAAIG,EAAGE,EAAGC,EAAGwC,GAE7B,YAAY9C,EAAK,KAAMG,EAAI,GAAKE,EAAI,KAAOC,EAAI,MAC7C,OAAO,IAAIx+B,GAAGk+B,EAAIG,EAAGE,EAAGC,GAE1B,gBAAgBN,EAAK,KAAMG,EAAI,IAAME,EAAI,MACvC,OAAO,IAAI3+B,GAAGs+B,EAAIG,EAAGE,GAEvB,cAAcL,EAAK,KAAMG,EAAI,GAAKE,EAAI,KAAOC,EAAI,KAAMwC,EAAI,GACzD,OAAO,IAAI9gC,GAAGg+B,EAAIG,EAAGE,EAAGC,EAAGwC,GAE7B,eAAe9C,EAAIG,EAAI,IACrB,OAAO,IAAIv+B,GAAGo+B,EAAIG,KAGlBxE,GAAMnqB,GACN8kG,GAAK,KAAuC,oBAAzBC,sBAAuCA,sBAA+C,oBAAhBC,aAA8BA,aAAgBz2E,GAAMA,IAAxI,GACT,SAAS5R,KACP,OAAO,IAAI+gB,QAASnP,GAAMu2E,GAAG,IAAMv2E,MAErC,IAmBI02E,GAnBA15F,GAAI,GAER,SAAS25F,GAAG32E,EAAGC,GACb,IAAIG,EAAIJ,EAAE,GAAGnhC,OACbmhC,EAAEsY,QAAQ,CAAC/X,EAAGwC,KACZxlC,GAAEgjC,EAAE1hC,SAAWuhC,EAAG,IAAM,kBAAkBA,uBAAuB2C,gDAAgD3C,QAC/G7iC,GAAE0iC,GAAM,GAAKA,EAAKG,EAAG,IAAM,kBAAkBA,kCAAkCA,EAAI,MACvF,IAAIE,EAAIN,EAAE,GACVA,EAAEsY,QAAQ,CAAC/X,EAAGwC,KACZ,IAAK,IAAIC,EAAI,EAAGA,EAAI5C,EAAG4C,IACrBzlC,GAAEylC,IAAM/C,GAAMM,EAAEyC,KAAO1C,EAAE0C,GAAI,IAAM,kBAAkB5C,wBAAwB2C,OAAOxC,4CAA4CD,sCAAsCyC,QAG5K,SAAS6zE,GAAG52E,EAAGC,GACb,IAAIG,EAAIJ,EAAE,GAAGrJ,QACb,IAAK,IAAI2J,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAC5BF,EAAEH,IAAOD,EAAEM,GAAGL,GAChB,OAAOG,EAMT,SAASy2E,GAAG72E,EAAGC,EAAIG,GACjB,IAAIE,EAAI,IAAI8yB,MACZ,GAAS,MAALhzB,GAAmB,MAANH,EACf,OAAOK,EACT,GAAU,MAANL,EACF,KAAOK,EAAEzhC,OAASmhC,EAAII,EAAEvhC,QACtByhC,EAAEkK,MAAM,QAEVlK,EAAIL,EAAGtJ,QACT,GAAS,MAALyJ,EACF,OAAOE,EACT,GAAIN,EAAII,EAAEvhC,SAAWyhC,EAAEzhC,OACrB,MAAM,IAAI+jC,MAAM,4BAA4B3C,uCAAwCD,EAAII,EAAEvhC,4BAA4ByhC,EAAEzhC,UAC1H,IAAK,IAAI0hC,EAAI,EAAGA,EAAIH,EAAEvhC,SAAU0hC,EAAG,CACjC,IAAIwC,EAAI3C,EAAEG,GAAIyC,EAAI1C,EAAEA,EAAEzhC,OAASuhC,EAAEvhC,OAAS0hC,GAAI0C,EAAI3C,EAAE0C,GACpD,GAAID,GAAK,EACP,GAAIE,GAAK,GACP,GAAIA,IAAMF,EACR,MAAM,IAAIH,MAAM,4BAA4B3C,sCAAuCM,EAAIP,QAAQ+C,eAAexC,EAAIP,QAAQiD,UAE5H3C,EAAE0C,GAAKD,EAEb,OAAOzC,EAET,SAASw2E,GAAG92E,GACV,IAAIC,EAAK,CAAE82E,eAAgBL,GAAGK,eAAgBC,aAAcN,GAAGM,aAAcC,YAAaP,GAAGO,YAAaC,WAAYR,GAAGQ,WAAYC,WAAYT,GAAGS,WAAYC,WAAYV,GAAGU,YAAch3E,EAAI,GACjM,IAAK,IAAIE,KAAKN,EACZ,MAAIM,KAAKL,GAGP,MAFAG,EAAEoK,KAAKvK,EAAGK,IAGd,OAAOF,EAET,SAASi3E,GAAGr3E,GACV,OAAoB,IAAbA,EAAEnhC,OAAe,EAAImhC,EAAE,KAAO02E,GAAGK,eAAiB/2E,EAAEnhC,OAAS,EAAImhC,EAAEnhC,OAE5E,SAASy4G,GAAGt3E,EAAGC,GACb,GAAS,MAALD,GAAmB,MAANC,EACf,OACF,IAAIG,EAAIJ,EAAEnhC,OAAQyhC,EAAIL,EAAGphC,OACzB,GAAIuhC,GAAKE,EACP,MAAM,IAAIsC,MAAM,sBAAsB5C,wCAAwCC,4CAA6CG,6DAA6DE,MAC1L,IAAK,IAAIC,EAAI,EAAGA,EAAImC,KAAK3V,IAAIqT,EAAGE,EAAI,KAAMC,EAAG,CAC3C,IAAIwC,EAAI/C,EAAEO,GAAIyC,EAAI/C,EAAGM,EAAI,GACzB,GAAIwC,GAAK,GAAKC,GAAK,GAAW,IAAND,GAAWA,IAAMC,EACvC,MAAM,IAAIJ,MAAM,sBAAsB5C,+CAA+CC,0CAA2CM,EAAIP,EAAEnhC,aAAakkC,8CAA8CxC,EAAIP,EAAEnhC,aAAamkC,MAnE1N7C,EAAGnjB,GAAG,CAAEu6F,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,sBAAuB,IAAMC,GAAIC,iBAAkB,IAAM3B,GAAI4B,WAAY,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,gBAAiB,IAAM9e,GAAIhZ,2BAA4B,IAAMF,GAAIi4B,2BAA4B,IAAMp2B,GAAIq2B,uBAAwB,IAAMjC,GAAIkC,mBAAoB,IAAMC,GAAIC,qBAAsB,IAAM52B,GAAIyU,gBAAiB,IAAMP,GAAI2iB,oBAAqB,IAAMC,GAAIC,0BAA2B,IAAMj/B,GAAIk/B,iBAAkB,IAAM/2B,GAAIg3B,kCAAmC,IAAMvC,GAAIwC,qBAAsB,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,kBAAmB,IAAMziC,GAAI0iC,kBAAmB,IAAMriC,GAAIsiC,kBAAmB,IAAMvgC,GAAIwgC,sBAAuB,IAAM9iC,GAAI+iC,yBAA0B,IAAMC,GAAIC,0BAA2B,IAAM13B,GAAIuxB,gBAAiB,IAAMgD,GAAIoD,kBAAmB,IAAM/iC,GAAIgjC,kBAAmB,IAAM9iC,GAAI+iC,wBAAyB,IAAMnjC,GAAIojC,qBAAsB,IAAMC,GAAIC,+BAAgC,IAAMtgC,GAAIugC,qBAAsB,IAAMh4B,GAAIi4B,SAAU,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,uBAAwB,IAAMC,GAAIC,uBAAwB,IAAMC,GAAIC,mBAAoB,IAAMv4B,GAAI3B,iBAAkB,IAAML,GAAIw6B,oBAAqB,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,qBAAsB,IAAM3hB,GAAI4hB,qBAAsB,IAAM7hB,GAAI8hB,eAAgB,IAAMC,GAAIC,iBAAkB,IAAMh5B,GAAIi5B,YAAa,IAAMC,GAAIC,cAAe,IAAMxE,GAAIv2B,iBAAkB,IAAML,GAAIq7B,YAAa,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,2BAA4B,IAAMpF,GAAIqF,oBAAqB,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,gDAAiD,IAAMC,GAAIC,gDAAiD,IAAMC,GAAIC,kDAAmD,IAAMC,GAAIC,qDAAsD,IAAMC,GAAIC,gDAAiD,IAAMC,GAAIC,gDAAiD,IAAMC,GAAIC,yDAA0D,IAAMC,GAAIC,8CAA+C,IAAMC,GAAIC,uDAAwD,IAAMC,GAAIC,wDAAyD,IAAMC,GAAIC,6DAA8D,IAAMC,GAAIC,yDAA0D,IAAMC,GAAIC,uBAAwB,IAAMt7B,GAAIu7B,sBAAuB,IAAMC,GAAI5zF,IAAK,IAAM2sC,GAAIknD,uBAAwB,IAAMC,GAAI5K,mBAAoB,IAAMD,GAAI8K,iBAAkB,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,WAAY,IAAMzvF,GAAIsI,WAAY,IAAMC,GAAImnF,uBAAwB,IAAMC,GAAIC,8BAA+B,IAAM3kC,GAAI4kC,kBAAmB,IAAM9kC,GAAIn9C,WAAY,IAAMC,GAAIiiF,0BAA2B,IAAMvH,GAAIzgB,cAAe,IAAMT,GAAIU,oBAAqB,IAAMX,GAAI7jD,KAAM,IAAMykB,KAmB71F,SAAU/2B,GACRA,EAAEA,EAAE+2E,eAAiB,GAAK,iBAAkB/2E,EAAEA,EAAEg3E,aAAe,GAAK,eAAgBh3E,EAAEA,EAAEi3E,YAAc,GAAK,cAAej3E,EAAEA,EAAEk3E,WAAa,GAAK,aAAcl3E,EAAEA,EAAEm3E,WAAa,GAAK,aAAcn3E,EAAEA,EAAEo3E,WAAa,GAAK,aAD1N,CAEGV,KAAOA,GAAK,KAiDf,IAAI0B,GAAK,GACT,SAAS0B,GAAG95E,GACV,OAAOA,GAAKo4E,GAAKp4E,EAAIu0B,GAAGv0B,EAAG0C,KAAK7c,MAAM6c,KAAKrK,KAAK2H,KAElD,SAASy7E,GAAGz7E,EAAGC,EAAIG,GACjB,IAAIE,EAAIF,GAAiB,iBAALJ,EAAgBA,EAAIA,EAAE,IAAKO,EAAIN,GAAkB,iBAALD,EAAgBA,EAAIA,EAAE,IACtF,MAAO,CAACM,EAAGC,GAEb,SAASw7E,GAAG/7E,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI,GACR,GAAID,EACFC,EAAIA,EAAEhhB,OAAO0gB,EAAGtJ,MAAM,IAAK4J,EAAEiK,KAAKxK,EAAE,GAAKI,GAAIG,EAAIA,EAAEhhB,OAAOygB,EAAErJ,MAAM,QAC/D,CACH4J,EAAIA,EAAEhhB,OAAOygB,EAAE,IACf,IAAI+C,EAAI9C,EAAGphC,OACX,IAAK,IAAImkC,EAAI,EAAGA,EAAID,IAAKC,EACvBzC,EAAIA,EAAEhhB,OAAO,CAACygB,EAAEgD,EAAI,GAAK/C,EAAG+C,GAAI/C,EAAG+C,KACrCzC,EAAIA,EAAEhhB,OAAOygB,EAAErJ,MAAMoM,EAAI,IAE3B,OAAOxC,EAET,SAASq7E,GAAG57E,EAAGC,EAAIG,GAAI,GACrB,IAAIE,EAAI,GACR,GAAIF,EAAG,CACLE,EAAEkK,KAAKvK,GACP,IAAK,IAAIM,EAAIN,EAAK,EAAGM,EAAIP,IAAKO,EAC5BA,GAAK,EAAIN,GAAMK,EAAEkK,KAAKjK,GAAID,EAAEkK,KAAKjK,GAAKN,EAAK,KAAOK,EAAEkK,KAAKjK,OACtD,CACL,IAAIA,EAAI,GAAIwC,EAAI,GAChB,IAAK,IAAIC,EAAI,EAAGA,EAAIhD,IAAKgD,EACvBA,GAAU,EAAL/C,EAAS,GAAK+C,EAAI,IAAM,EAAID,EAAEyH,KAAKxH,GAAKzC,EAAEiK,KAAKxH,GACtD1C,EAAEkK,QAAQjK,GAAID,EAAEkK,KAAK,GAAIlK,EAAEkK,QAAQzH,GAErC,OAAOzC,EAET,SAAS27E,GAAGj8E,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI,GACRD,EAAIC,EAAEiK,KAAKxK,EAAE,GAAKI,GAAKG,EAAEiK,KAAKxK,EAAE,GAAKI,GACrC,IAAK,IAAI2C,EAAI,EAAGA,EAAI/C,EAAEnhC,SAAUkkC,EAC9BA,GAAK9C,EAAGphC,OAASyhC,EAAIC,EAAEiK,KAAKvK,EAAG8C,EAAI,GAAK/C,EAAE+C,IAAMxC,EAAEiK,KAAKxK,EAAE+C,GAAK9C,EAAG8C,EAAI,IAAMxC,EAAEiK,KAAKxK,EAAE+C,IACtF,OAAOxC,EAET,SAAS67E,GAAGp8E,EAAGC,GACb,IAAIG,EAAI,CAAC,GACT,IAAK,IAAIE,EAAI,EAAGA,EAAIL,IAAMK,EACxBF,EAAEoK,KAAKxK,EAAEM,GAAG,IACd,OAAOF,EAET,SAASk8E,GAAGt8E,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAErJ,MAAM,EAAG,GACnB,IAAK,IAAI4J,EAAI,EAAGA,EAAIH,IAAKG,EACvBD,EAAEkK,KAAKxK,EAAEO,EAAI,GAAKN,EAAGM,GAAG,GAAKN,EAAGM,GAAG,IACrC,OAAOD,EAET,IAAIm4E,GAAK,mBACLF,GAAK,mBACLL,GAAK,SACLV,GAAK,WACLE,IAAM,WACNE,GAAK,YACLE,IAAM,YACNE,GAAK,YACT,SAASmG,GAAGn+E,EAAGC,GACb,GAAID,EAAEnhC,SAAWohC,EAAGphC,OAClB,MAAM,IAAI+jC,MAAM,gEAAgE5C,EAAEnhC,iBAAiBohC,EAAGphC,WACxG,IAAIuhC,EAAI,IAAI0U,aAAwB,EAAX9U,EAAEnhC,QAC3B,IAAK,IAAIyhC,EAAI,EAAGA,EAAIF,EAAEvhC,OAAQyhC,GAAK,EACjCF,EAAEE,GAAKN,EAAEM,EAAI,GAAIF,EAAEE,EAAI,GAAKL,EAAGK,EAAI,GACrC,OAAOF,EAET,SAASs+E,GAAG1+E,GACV,IAAIC,EAAK,IAAI6U,aAAa9U,EAAEnhC,OAAS,GAAIuhC,EAAI,IAAI0U,aAAa9U,EAAEnhC,OAAS,GACzE,IAAK,IAAIyhC,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,GAAK,EACjCL,EAAGK,EAAI,GAAKN,EAAEM,GAAIF,EAAEE,EAAI,GAAKN,EAAEM,EAAI,GACrC,MAAO,CAAEvO,KAAMkO,EAAIhY,KAAMmY,GAE3B,SAASk5E,GAAGt5E,GACV,IAAIC,EAAKyC,KAAK3jB,KAAKihB,EAAEnhC,OAAS,GAAIuhC,EAAI,IAAI0U,aAAa7U,GAAKK,EAAI,IAAIwU,aAAa7U,GACjF,IAAK,IAAIM,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,GAAK,EACjCH,EAAEsC,KAAK7c,MAAM0a,EAAI,IAAMP,EAAEO,GAAID,EAAEoC,KAAK7c,MAAM0a,EAAI,IAAMP,EAAEO,EAAI,GAC5D,MAAO,CAAExO,KAAMqO,EAAGnY,KAAMqY,GAE1B,SAASk5E,GAAGx5E,GACV,IAAIC,EAAKyC,KAAK7c,MAAMma,EAAEnhC,OAAS,GAAIuhC,EAAI,IAAI0U,aAAa7U,GAAKK,EAAI,IAAIwU,aAAa7U,GAClF,IAAK,IAAIM,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,GAAK,EACjCH,EAAEsC,KAAK7c,MAAM0a,EAAI,IAAMP,EAAEO,GAAID,EAAEoC,KAAK7c,MAAM0a,EAAI,IAAMP,EAAEO,EAAI,GAC5D,MAAO,CAAExO,KAAMqO,EAAGnY,KAAMqY,GAE1B,SAAS26E,GAAGj7E,EAAGC,GACb,IAAIG,EAAIJ,EAAO,EAALC,GAASK,EAAIN,EAAO,EAALC,EAAS,GAClC,MAAO,CAAElO,KAAMqO,EAAGnY,KAAMqY,GAE1B,SAASw4E,GAAG94E,EAAGC,EAAIG,EAAGE,GACpBN,EAAM,EAAJM,GAASL,EAAID,EAAM,EAAJM,EAAQ,GAAKF,EAEhC,SAASs6E,GAAG16E,EAAGC,GACb,IAAIG,EAAI,IAAI0U,aAAa9U,EAAI,GAAIM,EAAI,IAAIwU,aAAa9U,EAAI,GAC1D,IAAK,IAAIO,EAAI,EAAGA,EAAImC,KAAK3jB,KAAKihB,EAAI,GAAIO,IAAK,CACzC,IAAIwC,GAAK9C,EAAK,GAAK,GAAKyC,KAAKw2D,IAAM34D,EAAIP,GACvCI,EAAEG,GAAKmC,KAAK7hB,IAAIkiB,GAAIzC,EAAEC,GAAKmC,KAAKnM,IAAIwM,GAEtC,MAAO,CAAEhR,KAAMqO,EAAGnY,KAAMqY,GAE1B,SAASk6E,GAAGx6E,EAAGC,EAAIG,GACjB,IAAIE,GAAKF,EAAI,GAAK,GAAKsC,KAAKw2D,IAAMl5D,EAAIC,GAAKM,EAAImC,KAAK7hB,IAAIyf,GAAIyC,EAAIL,KAAKnM,IAAI+J,GACzE,MAAO,CAAEvO,KAAMwO,EAAGtY,KAAM8a,GAE1B,IAAI+7E,GAAK,KACLC,GAAK,MACLC,GAAK,IACLC,GAAK,MACT,SAAS7E,GAAGp6E,EAAGC,GACbD,EAAIA,EAAE8Q,QAAQ,MAAO,IACrB,IAAI1Q,GAAKJ,EAAEnhC,OAASmhC,EAAE8Q,QAAQiuE,GAAI,IAAIlgH,QAAUigH,GAAGjgH,OACnD,GAAIuhC,EAAI,EACN,MAAM,IAAIwC,MAAM,iDAClB,GAAIxC,EAAI,EACN,MAAM,IAAIwC,MAAM,6CAA6Ck8E,SAC/D,IAAKx+E,EAAGC,GAAKP,EAAE7H,MAAM2mF,IACrBvhH,IAAqB,IAAnB+iC,EAAEjhC,QAAQ4/G,IAAY,IAAM,2BAA2BA,8BACzD,IAAIl8E,EAAIzC,EAAEnI,MAAM6mF,IAAKh8E,EAAID,EAAElkC,OAC3B,GAAIohC,IAAO+C,EACT,MAAM,IAAIJ,MAAM,YAAYI,6BAA6B/C,KAC3D,GAAI+C,EAAI,EACN,MAAM,IAAIJ,MAAM,iEAClB,IAAIK,EAAI,GACR,IAAK,IAAIyD,EAAI,EAAGA,EAAInG,EAAE1hC,SAAU6nC,EAAG,CACjC,IAAIC,EAAIpG,EAAEmG,GACV,IAAK3D,EAAEm/B,KAAMn7B,IAAwB,IAAlBA,EAAE1nC,QAAQsnC,IAC3B,MAAM,IAAI/D,MAAM,uCAAuC+D,2CACvC,IAAlB1D,EAAE5jC,QAAQsnC,IAAa1D,EAAEuH,KAAK7D,GAEhC,IAAK,IAAID,EAAI,EAAGA,EAAIpG,EAAEzhC,SAAU6nC,EAAG,CACjC,IAAIC,EAAIrG,EAAEoG,IACQ,IAAlBzD,EAAE5jC,QAAQsnC,IAAaA,IAAMq4E,IAAM/7E,EAAEuH,KAAK7D,GAE5C,IAAIzD,EAAI,IAAIkwB,MAAMrwB,EAAElkC,QACpB,IAAK,IAAI6nC,EAAI,EAAGA,EAAI1D,IAAK0D,EAAG,CAC1B,GAAI,IAAI07B,IAAIr/B,EAAE2D,GAAGvO,MAAM,KAAK0lC,OAAS96B,EAAE2D,GAAG7nC,OACxC,MAAM,IAAI+jC,MAAM,2CAA2CG,EAAE2D,mEAC/DxD,EAAEwD,GAAK,GACP,IAAK,IAAIC,EAAI,EAAGA,EAAI5D,EAAE2D,GAAG7nC,SAAU8nC,EACjCzD,EAAEwD,GAAG8D,KAAKvH,EAAE5jC,QAAQ0jC,EAAE2D,GAAGC,KAE7B,IAAIvD,EAAIH,EAAEpkC,OAAQgmC,EAAItE,EAAE1hC,OAAQ4nC,EAAI,GACpC,IAAK,IAAIC,EAAI7B,EAAG6B,EAAItD,IAAKsD,EACvBD,EAAE+D,KAAK9D,GACT,MAAO,CAAEw4E,QAASj8E,EAAGk8E,WAAY14E,EAAG24E,OAAQl8E,GAE9C,SAASm4E,GAAGr7E,EAAGC,GACb,IAAIG,EAAI,IAAIgzB,MAAMpzB,GAClBI,EAAE7a,MAAM,GACR,IAAK,IAAIgb,EAAI,EAAGA,EAAIN,EAAGphC,SAAU0hC,EAC/BH,EAAEH,EAAGM,IAAMA,EACb,IAAID,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAIP,IAAKO,GACb,IAAVH,EAAEG,IAAaD,EAAEkK,KAAKjK,GACxB,OAAOH,EAAIA,EAAEiuB,OAAQ9tB,IAAa,IAAPA,GAAW,CAAE8+E,mBAAoBj/E,EAAGrb,WAAYub,GAE7E,SAAS24E,GAAGj5E,EAAGC,EAAIG,GACjB,IAAIE,EAAI,IAAI8yB,MAAMpzB,GAClB,IAAK,IAAIO,EAAI,EAAGA,EAAIH,EAAEvhC,SAAU0hC,EAAG,CACjC,IAAIwC,EAAI3C,EAAEG,GAAGu9B,MACb,IAAK,IAAI96B,EAAI,EAAGA,EAAI/C,EAAGM,GAAG1hC,SAAUmkC,OAClB,IAAhB1C,EAAEL,EAAGM,GAAGyC,IAAiB1C,EAAEL,EAAGM,GAAGyC,IAAMD,EAAEC,GAAKzlC,GAAE+iC,EAAEL,EAAGM,GAAGyC,MAAQD,EAAEC,GAAI,IAAM,sBAAsB1C,EAAEL,EAAGM,GAAGyC,eAAeA,qBAAqBuoC,KAAKC,UAAUzoC,yBAAyBA,EAAEC,OAG9L,SAASm4E,GAAGn7E,EAAGC,GACb,IAAIG,EAAIJ,EAAGM,EAAI,GAAIC,EAAI,EACV,IAAbP,EAAEnhC,QAAgBuhC,EAAEoK,MAAM,GAAIjK,EAAIP,EAAEnhC,OAAS,EAC7C,IAAK,IAAImkC,EAAI,EAAGA,EAAIzC,IAAKyC,EACvB1C,EAAEkK,KAAK,IACT,IAAIzH,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAI5C,EAAEvhC,SAAUmkC,EAAG,CACjC,IAAIC,EAAI7C,EAAE4C,GAAIE,EAAIo8E,GAAGr/E,EAAIgD,GACzB,IAAK,IAAIG,KAAKF,GACM,IAAlBH,EAAE1jC,QAAQ+jC,KAAc9C,EAAE0C,GAAGwH,KAAKpH,GAAIL,EAAEyH,KAAKpH,IAEjD,MAAO,CAAEkvC,KAAMlyC,EAAGm/E,MAAOj/E,GAE3B,SAAS29E,GAAGj+E,GACV,OAAOA,EAAE4gB,MAAM,CAAC3gB,EAAIG,IAAMH,IAAOG,GAEnC,SAASk/E,GAAGt/E,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAEnhC,SAAUyhC,GACb,IAAhBN,EAAEM,GAAGzhC,SAAsC,IAAtBmhC,EAAEM,GAAGjhC,QAAQ4gC,KAAsB,IAARA,IAAcG,EAAEoK,KAAKlK,GACxE,OAAOF,EAET,SAASi+E,GAAGr+E,EAAGC,EAAIG,EAAI,GACrB,IAAIE,EAAI,GACR,GAAiB,iBAANL,EACT1iC,GAAEyiC,EAAE89B,MAAM19B,GAAKH,IAAO,EAAG,IAAM,iDAAkDK,EAAI,IAAI8yB,MAAMnzB,GAAI1a,KAAKya,EAAE89B,MAAM19B,GAAKH,OAClH,CACH,IAAIM,EAAIN,EAAGxhC,OAAO,CAACukC,EAAGC,MAAc,IAAPA,IAAaD,GAAK,GAAIA,GAAI,GACvDzlC,GAAEgjC,GAAK,EAAG,IAAM,2DAChB,IAAIwC,EAAI9C,EAAG5gC,SAAS,GACpB,IAAW,IAAP0jC,EAAU,CACZ,IAAIC,EAAI/C,EAAGxhC,OAAO,CAACwkC,EAAGC,IAAMA,EAAI,EAAID,EAAIC,EAAID,GAC5ChD,EAAG8C,GAAK/C,EAAE89B,MAAM19B,GAAK4C,EAEvBzlC,GAAEyiC,EAAE89B,MAAM19B,KAAOH,EAAGxhC,OAAO,CAACukC,EAAGC,IAAMD,EAAIC,GAAI,IAAM,+DAAgE3C,EAAIL,EAEzH,OAAOK,EAET,SAASk8E,GAAGx8E,GACV,MAAO,0EACcA,EAEvB,SAAS08E,GAAG18E,EAAGC,GACb,MAAO,WAAWD,qBAAqBC,QAEzC,SAAS28E,GAAG58E,EAAGC,EAAIG,GACjB,MAAO,WAAWJ,qBAAqBC,QAASG,IAElD,SAASg9E,GAAGp9E,EAAGC,GACb,MAAO,iDAAiDD,SAASC,IAEnE,SAASq9E,GAAGt9E,EAAGC,GACb,MAAO,QAAQD,+BAA+BC,IAEhD,SAAS68E,KACP,MAAO,gHAET,SAASI,GAAGl9E,EAAGC,GACb,IAAIG,EAAIkyB,GAAGtyB,GAAIM,EAAIgyB,GAAGryB,GACtB,MAAO,2CAA2CG,qEACaE,iBAAiBN,kBAAkBC,IAEpG,SAAS+8E,GAAGh9E,EAAGC,GACb,IAAIG,EAAIkyB,GAAGtyB,GAAIM,EAAIgyB,GAAGryB,GACtB,MAAO,qCAAqCG,+CAA+CE,iBAAiBN,iBAAiBC,IAE/H,SAASy9E,KACP,MAAO,2BAET,SAASE,KACP,MAAO,iCAET,SAASE,GAAG99E,EAAGC,GACb,MAAO,cAAcD,sBAAsBC,uDAE7C,SAASu9E,GAAGx9E,EAAGC,EAAIG,GACjB,MAAO,gBAAgBJ,SAASC,sBAAuBG,KAEzD,IAAIm+E,GAAK,GAET,SAASiB,GAAGx/E,EAAGC,GACb,IAAeK,EAAXF,GAAI,EACR,IAAKJ,GAAKo4E,IAAM93E,EAAIN,EAAGI,GAAI,GAAQE,EAAIi0B,GAAGv0B,EAAG0C,KAAK7c,MAAM6c,KAAKrK,KAAK2H,MAAOI,GACvEE,EAAIL,GAAMK,IAAMN,EAAII,GAAI,EAAOE,EAAIi0B,GAAGv0B,EAAGM,EAAI,GAC/C,OAAOA,EAET,SAASm/E,GAAGz/E,EAAGC,EAAIG,GACjB,IAAIE,EAAI,GAAIC,EAAIP,EAAEnhC,OAClB,IAAK,IAAIkkC,EAAI,EAAGA,EAAIxC,EAAGwC,IACrBA,IAAM9C,EAAKK,EAAEkK,KAAKxK,EAAE+C,IAAMzC,EAAEkK,KAAKpK,GACnC,OAAOE,EAET,SAASo/E,GAAG1/E,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIN,EAAG69B,MAAMj/D,OAAQkkC,EAAI/C,EAAE89B,MAAMj/D,OACrC,GAAU,IAANyhC,IAAYA,GAAKC,GAAKD,EAAIC,GAC5B,MAAM,IAAIqC,MAAM,sCAAsCrC,MAAMA,eAAeD,KAC7E,GAAIA,EAAI,IAAMA,GAAKC,GAAID,EAAIyC,EACzB,MAAM,IAAIH,MAAM,cAActC,uCAC5ByC,OACJ,GAAI3C,EAAIE,EACN,MAAM,IAAIsC,MAAM,cAActC,0CAA0CF,OAC1E,IAAK,IAAIqG,EAAI,EAAGA,EAAInG,IAAKmG,EACvB,GAAIzG,EAAE89B,MAAMr3B,KAAOxG,EAAG69B,MAAMr3B,GAC1B,MAAM,IAAI7D,MAAM,WAAW6D,OAAOzG,EAAE89B,MAAMr3B,uCAAuCA,OAAOxG,EAAG69B,MAAMr3B,OACrG,IAAIzD,EAAIhD,EAAE89B,MAAM19B,GAAI6C,EAAI,GAAIC,EAAI,EAAGE,EAAI,EAAGyB,EAAI,EAC9C,IAAK,IAAI4B,EAAI,EAAGA,EAAInG,IAAKmG,EACvBxD,EAAEuH,KAAKxK,EAAE89B,MAAMr3B,IAAKvD,GAAKlD,EAAE89B,MAAMr3B,GACnC,IAAK,IAAIA,EAAInG,EAAGmG,EAAIrG,EAAGqG,IACrBxD,EAAEuH,KAAKxK,EAAE89B,MAAMr3B,IAAKrD,GAAKpD,EAAE89B,MAAMr3B,GACnC,IAAK,IAAIA,EAAInG,EAAGmG,EAAIlG,EAAGkG,IACrBxD,EAAEuH,KAAKvK,EAAG69B,MAAMr3B,IAClB,IAAK,IAAIA,EAAIrG,EAAI,EAAGqG,EAAI1D,EAAG0D,IACzBxD,EAAEuH,KAAKxK,EAAE89B,MAAMr3B,IAAK5B,GAAK7E,EAAE89B,MAAMr3B,GACnC,MAAO,CAAEkxC,UAAWz0C,EAAGszD,UAAW3xD,EAAG86E,UAAWv8E,EAAGw8E,QAAS58E,EAAG01D,YAAaz1D,GAE9E,SAAS63E,GAAG96E,GACV,IACE,OAAOA,EAAEkzB,IAAKjzB,GAAOw4B,GAAGx4B,IACxB,MAAOA,GACP,MAAM,IAAI2C,MAAM,4DAA4D3C,IAGhF,SAAS26E,GAAG56E,GACV,OAAOA,EAAEkzB,IAAKjzB,GAAO24B,GAAG34B,IA5C1BE,EAAGo+E,GAAI,CAAEsB,yBAA0B,IAAMH,GAAI9L,gBAAiB,IAAM6L,GAAIK,8BAA+B,IAAMN,KA8C7G,IAAIp2F,GAAK,GACT+W,EAAG/W,GAAI,CAAE22F,wBAAyB,IAAMliB,GAAImiB,wBAAyB,IAAMjiB,GAAIkiB,wBAAyB,IAAMjiB,GAAIkiB,UAAW,IAAMroB,KACnI4T,KACA,IAII0U,GAIAC,GARAC,GAAK/7F,KACT+7F,GAAG32C,aAAa,4BAA6B,KAAM,EAAQ1pC,IACzDA,GAAKmR,QAAQmB,KAAK,mPAGpB,SAAUtS,GACRA,EAAEA,EAAEsgF,WAAa,GAAK,aAActgF,EAAEA,EAAEugF,SAAW,GAAK,WAAYvgF,EAAEA,EAAEwgF,UAAY,GAAK,YAAaxgF,EAAEA,EAAEygF,SAAW,GAAK,WAAYzgF,EAAEA,EAAE0gF,SAAW,GAAK,WAAY1gF,EAAEA,EAAE2gF,SAAW,GAAK,WAAY3gF,EAAEA,EAAE4gF,QAAU,GAAK,UAAW5gF,EAAEA,EAAE6gF,UAAY,GAAK,YAAa7gF,EAAEA,EAAE8gF,aAAe,GAAK,eAAgB9gF,EAAEA,EAAE+gF,SAAW,GAAK,WAAY/gF,EAAEA,EAAEghF,QAAU,IAAM,UAAWhhF,EAAEA,EAAEihF,SAAW,IAAM,WAAYjhF,EAAEA,EAAEkhF,UAAY,IAAM,YAAalhF,EAAEA,EAAEmhF,UAAY,IAAM,YAAanhF,EAAEA,EAAEohF,YAAc,IAAM,cAAephF,EAAEA,EAAEqhF,UAAY,IAAM,YAAarhF,EAAEA,EAAEshF,WAAa,IAAM,aAActhF,EAAEA,EAAEuhF,UAAY,IAAM,YAAavhF,EAAEA,EAAEwhF,cAAgB,IAAM,gBAAiBxhF,EAAEA,EAAEyhF,QAAU,IAAM,UAAWzhF,EAAEA,EAAE0hF,YAAc,IAAM,cAAe1hF,EAAEA,EAAE2hF,WAAa,IAAM,aAAc3hF,EAAEA,EAAE4hF,UAAY,IAAM,YAAa5hF,EAAEA,EAAE6hF,UAAY,IAAM,YAAa7hF,EAAEA,EAAE8hF,aAAe,KAAO,eAAgB9hF,EAAEA,EAAE+hF,cAAgB,KAAO,gBAAiB/hF,EAAEA,EAAEgiF,aAAe,KAAO,eAAgBhiF,EAAEA,EAAEiiF,aAAe,KAAO,eAAgBjiF,EAAEA,EAAEkiF,aAAe,KAAO,eAAgBliF,EAAEA,EAAEmiF,YAAc,KAAO,cAAeniF,EAAEA,EAAEoiF,cAAgB,KAAO,gBAAiBpiF,EAAEA,EAAEqiF,iBAAmB,KAAO,mBAAoBriF,EAAEA,EAAEsiF,aAAe,KAAO,eAAgBtiF,EAAEA,EAAEuiF,YAAc,KAAO,cAAeviF,EAAEA,EAAEwiF,aAAe,KAAO,eAAgBxiF,EAAEA,EAAEyiF,cAAgB,KAAO,gBAAiBziF,EAAEA,EAAE0iF,cAAgB,KAAO,gBAAiB1iF,EAAEA,EAAE2iF,gBAAkB,KAAO,kBAAmB3iF,EAAEA,EAAE4iF,cAAgB,KAAO,gBAAiB5iF,EAAEA,EAAE6iF,eAAiB,KAAO,iBAAkB7iF,EAAEA,EAAE8iF,cAAgB,KAAO,gBAAiB9iF,EAAEA,EAAE+iF,kBAAoB,KAAO,oBAAqB/iF,EAAEA,EAAEgjF,YAAc,KAAO,cAAehjF,EAAEA,EAAEijF,gBAAkB,KAAO,kBAAmBjjF,EAAEA,EAAEkjF,eAAiB,KAAO,iBAAkBljF,EAAEA,EAAEmjF,cAAgB,KAAO,gBAAiBnjF,EAAEA,EAAEojF,cAAgB,KAAO,gBADzyD,CAEGjD,KAAOA,GAAK,KAEf,SAAUngF,GACR,IAAIC,GACJ,SAAUG,GACRA,EAAEA,EAAEijF,OAAS,GAAK,SAAUjjF,EAAEA,EAAEi2D,GAAK,GAAK,KAAMj2D,EAAEA,EAAE5Q,GAAK,GAAK,MADhE,CAEGyQ,EAAKD,EAAEsjF,0BAA4BtjF,EAAEsjF,wBAA0B,KAJpE,CAKGlD,KAAOA,GAAK,KACf,IAAImD,GAAK,GACT,SAAS7wF,GAAGsN,EAAGC,GACb,IAAIG,EAAI,CAAEojF,SAAUxjF,EAAGyjF,SAAU,SAAUlmD,OAAQ,GAAIoI,MAAO,GAAI+9C,eAAgBzjF,GAClFsjF,GAAGvjF,GAAKI,EAEV,SAASujF,GAAG3jF,GACV,OAAOujF,GAAGvjF,GAEZ,SAAS9d,GAAG8d,UACHujF,GAAGvjF,GAEZ,SAAS4jF,GAAE5jF,EAAGC,EAAIG,EAAGE,EAAGC,GACtB,IAAIwC,EAAI9C,EAAG4jF,YAAY7jF,GACvB,GAAI+C,QAA2B,IAAtBA,EAAE+gF,gBAA4B,CACrC,IAAI7gF,EAAIF,EAAE+gF,gBAAiB5gF,EAAwB,IAApBH,EAAEghF,mBAAsB,OAA6B,IAApBhhF,EAAEghF,cAA2B9gF,EAAI,EAAIF,EAAEghF,cAAe3gF,EAAIH,EAAI,EAAIhD,EAAG+jF,WAAWnlH,OAASokC,EAAIA,EAC7J,GAAe,WAAXF,EAAE22C,KACJ,OAAOuqC,GAAGhkF,EAAG+jF,WAAW5gF,GAAIhD,EAAGE,EAAGC,GACpC,GAAe,YAAXwC,EAAE22C,KAAoB,CACxB,IAAIhzC,EAAIzG,EAAGs9B,OAAO5mC,MAAMsM,EAAGC,GAC3B,OAAOjD,EAAG+jF,WAAWrtF,MAAMsM,EAAGC,GAAGmrB,OAAO,CAACtnB,EAAG8D,KAC1C,IAAIC,EACJ,MAAiE,UAA1C,QAAdA,EAAIpE,EAAEmE,UAAsB,IAANC,OAAe,EAASA,EAAE/b,MACxDmkC,IAAKnsB,GAAMk9E,GAAGl9E,EAAG3G,EAAGE,EAAGC,IAE5B,IAAIsE,EAAIo/E,GAAGhkF,EAAG+jF,WAAW5gF,GAAIhD,EAAGE,EAAGC,GAAIkG,EAAI5B,EAAEq4B,WAC7C,MAAkB,WAAXn6B,EAAE22C,KAAoBjzC,EAAE,GAAKzJ,GAAEq+B,cAAcx2B,EAAEi5B,MAAOr3B,GAE/D,IAAIzD,EAAI/C,EAAGikF,WAAWlkF,GACtB,OAAOgD,GAAKA,EAAEpjC,MAEhB,SAASqkH,GAAGjkF,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKohF,GAAGnkF,EAAGI,GACnB,GAAS,MAALE,EAAW,CACb,IAAI2C,EAAI3C,EAAE8jF,yBAAyB7jF,GACnC,GAAS,MAAL0C,EACF,OAAOA,EAEX,IAAID,EAAI5C,EAAEikF,kBAAkBC,KAAMrhF,KAAQhD,EAAGskF,GAAGhkF,EAAG0C,KACnD,YAAa,IAAND,EAAe/C,EAAGskF,GAAGhkF,EAAGyC,IAAID,QAAK,EAE1C,SAASyhF,GAAGxkF,EAAGC,EAAIG,GACjB,OAAOH,EAAGskF,GAAGvkF,EAAGI,EAAEqkF,mBAEpB,SAASC,GAAG1kF,EAAGC,GACb,IAAKG,EAAGE,EAAGC,GAAK4jF,GAAGnkF,EAAGC,GACtB,MAAO,CAACskF,GAAGnkF,EAAGH,GAAMA,EAAGwkF,kBAAmBnkF,EAAGC,GAE/C,SAASgkF,GAAGvkF,EAAGC,GACb,OAAOA,EAAK,GAAGD,KAAKC,IAAOD,EAE7B,SAASmkF,GAAGnkF,EAAGC,GACb,GAAU,KAAND,EACF,MAAO,CAAC,GAAI,OAAG,GACjB,IAAII,EAAU,MAANH,GAAuC,MAAzBA,EAAG0kF,mBACzB,GAAIvkF,EAAG,CACL,IAAI2C,EAAI9C,EAAG0kF,mBAAmBxkH,IAAI6/B,GAClC,GAAS,MAAL+C,EACF,OAAOA,EAEX,IAAsBxC,EAAlBD,EAAIN,EAAE7H,MAAM,KAChB,GAAiB,IAAbmI,EAAEzhC,OACJ0hC,EAAI,CAACP,EAAG,OAAG,OACR,CACH,IAAI+C,EAAIzC,EAAE,GAAI0C,EAAiB,IAAb1C,EAAEzhC,OAAeyhC,EAAE,QAAK,EAAQ2C,EAAIkvB,OAAO7xB,EAAEA,EAAEzhC,OAAS,IAC1E0hC,EAAI,CAACwC,EAAGE,EAAGD,GAEb,OAAO5C,GAAKH,EAAG0kF,mBAAmB3jH,IAAIg/B,EAAGO,GAAIA,EAE/C,SAASqkF,GAAG5kF,EAAGC,EAAIG,GACjB,IAAIE,EAAIsjF,GAAE,MAAO5jF,EAAGC,EAAIG,GACxB,GAAU,aAANE,EAAkB,CACpBA,EAAIsjF,GAAE,mBAAoB5jF,EAAGC,EAAIG,GACjC,IAAIG,EAAI,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,IACrC,IAAK,IAAIwC,EAAI,EAAGA,EAAI,EAAGA,IACrBxC,EAAEwC,GAAG,GAAKzC,EAAM,EAAJyC,GAAQxC,EAAEwC,GAAG,GAAKzC,EAAM,EAAJyC,EAAQ,GAC1C,OAAOxC,EAET,OAAOD,EAET,SAASukF,GAAG7kF,GACV,OAAOA,EAAEq/B,KAAOr/B,EAAI5gB,GAAG4gB,GAEzB,IAAI8kF,GAAK,GACT3kF,EAAG2kF,GAAI,CAAE3U,KAAM,IAAM4U,KACrB,IAAIA,GAAK,CAAC,CAAEvB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,UAAWw5E,KAAM,aAAgB,CAAE8pC,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,oBAAqBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,MACx2GC,GAAK,GACT/kF,EAAG+kF,GAAI,CAAE/U,KAAM,IAAMgV,KACrB,IAAIA,GAAK,CAAC,CAAE3B,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,cAAeC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,aAAcC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,aAAcw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,aAAcw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,aAAcC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,IAAO,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,MAC76PG,GAAK,GACTjlF,EAAGilF,GAAI,CAAEjV,KAAM,IAAMkV,KACrB,IAAIA,GAAK,CAAC,CAAE7B,SAAU,kBAAmBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,SAAW,CAAElP,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,WAAYC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,SAAUC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,QAASC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,UAAWw5E,KAAM,aAAgB,CAAE8pC,SAAU,QAASC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,aAAc9kH,KAAM,YAAaw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,UAAa,CAAE8pC,SAAU,OAAQC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,gBAAiBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,gBAAiBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,SAAW,CAAEsrC,OAAQ,eAAgB9kH,KAAM,cAAew5E,KAAM,QAAU,CAAEsrC,OAAQ,mBAAoB9kH,KAAM,iBAAkBw5E,KAAM,QAAU,CAAEsrC,OAAQ,2BAA4B9kH,KAAM,yBAA0Bw5E,KAAM,QAAU,CAAEsrC,OAAQ,oBAAqB9kH,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,qBAAsBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,uBAAwBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,wBAAyB9kH,KAAM,sBAAuBw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,qBAAsBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,YAAe,CAAE8pC,SAAU,qBAAsBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,YAAe,CAAE8pC,SAAU,cAAeC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,QAAU,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,UAAa,CAAE8pC,SAAU,KAAMC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,QAAU,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,UAAa,CAAE8pC,SAAU,iBAAkBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAAU,CAAEsrC,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,UAAa,CAAE8pC,SAAU,QAASC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAAU,CAAEsrC,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,UAAa,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,SAAW,CAAElP,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,mBAAoBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,SAAW,CAAElP,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,uBAAwBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,kBAAmBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,SAAW,CAAEsrC,OAAQ,eAAgB9kH,KAAM,cAAew5E,KAAM,WAAc,CAAE8pC,SAAU,kBAAmBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,SAAW,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,mBAAoBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,SAAW,CAAEsrC,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,qBAAsBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,SAAW,CAAEsrC,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,qBAAsBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,WAAc,CAAE8pC,SAAU,mBAAoBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,YAAe,CAAE8pC,SAAU,mBAAoBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aACrnR4rC,GAAK,GACTnlF,EAAGmlF,GAAI,CAAEnV,KAAM,IAAMoV,KACrB,IAAIA,GAAK,CAAC,CAAE/B,SAAU,UAAWC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,YAAc,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,YAAc,CAAEsrC,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,GAAI23B,cAAc,GAAQ,CAAED,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,oBAAqBC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,YAAc,CAAEsrC,OAAQ,yBAA0B9kH,KAAM,sBAAuBw5E,KAAM,QAAU,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,YAAc,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,YAAc,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,UAAY,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,OAAS,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,WAAY9kH,KAAM,WAAYw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,SAAUC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,gBAAiB9kH,KAAM,gBAAiBw5E,KAAM,QAAU,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,cAAiB,CAAE8pC,SAAU,eAAgBC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,WAAY9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,mBAAoB9kH,KAAM,gBAAiBw5E,KAAM,OAAQ4T,cAAc,GAAQ,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,WAAY4T,aAAc,CAAC,EAAG,EAAG,EAAG,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,MAAQ,CAAE03B,OAAQ,kBAAmB9kH,KAAM,iBAAkBw5E,KAAM,SAAU4T,aAAc,MAAU,CAAEk2B,SAAU,sBAAuBC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,WAAYurC,cAAc,KAAW,CAAEzB,SAAU,kBAAmBC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,cAAiB,CAAE8pC,SAAU,wBAAyBC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,cAAiB,CAAE8pC,SAAU,6BAA8BC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,WAAY9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,WAAY4T,aAAc,CAAC,EAAG,EAAG,EAAG,IAAM,CAAE03B,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,oBAAqB9kH,KAAM,mBAAoBw5E,KAAM,WAAY4T,aAAc,MAAS,CAAEk2B,SAAU,SAAUC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAU4T,aAAc,QAAU,CAAE03B,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,cAAiB,CAAE8pC,SAAU,aAAcC,SAAU,cAAelmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,YAAc,CAAEsrC,OAAQ,QAAS9kH,KAAM,YAAaw5E,KAAM,YAAc,CAAEsrC,OAAQ,UAAW9kH,KAAM,MAAOw5E,KAAM,aAC78O8rC,GAAK,GACTrlF,EAAGqlF,GAAI,CAAErV,KAAM,IAAMsV,KACrB,IAAIA,GAAK,CAAC,CAAEjC,SAAU,OAAQC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,WAAYC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,MAAOw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE9iB,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,SAAU4T,aAAc,IAAM3nB,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,OAAQC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,WAAYC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,uBAAwBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,EAAG23B,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,gBAAiBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,EAAG23B,cAAc,GAAQ,CAAED,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,mBAAoBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,UAAY,CAAEsrC,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,UAAY,CAAEsrC,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,EAAG23B,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,IAAM3nB,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,kBAAmBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,UAAY,CAAEsrC,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,EAAG23B,cAAc,GAAQ,CAAED,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,YAAaC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,cAAeC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,UAAY,CAAEsrC,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,UAAY,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,eAAgB9kH,KAAM,eAAgBw5E,KAAM,YAC93HgsC,GAAK,GACTvlF,EAAGulF,GAAI,CAAEvV,KAAM,IAAMwV,KACrB,IAAIA,GAAK,CAAC,CAAEnC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,YAAe,CAAE8pC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,YAAe,CAAE8pC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,cAAe9kH,KAAM,YAAaw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,yBAA0B9kH,KAAM,qBAAsBw5E,KAAM,UAAa,CAAE8pC,SAAU,sBAAuBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,YAAe,CAAE8pC,SAAU,QAASC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,YAAaw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,MACx2DW,GAAK,GACTzlF,EAAGylF,GAAI,CAAEzV,KAAM,IAAM0V,KACrB,IAAIA,GAAK,CAAC,CAAErC,SAAU,aAAcC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,YAAe,CAAE8pC,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,UAAa,CAAE8pC,SAAU,aAAcC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,iBAAkBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,YAAe,CAAE8pC,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aACxvBosC,GAAK,GACT3lF,EAAG2lF,GAAI,CAAE3V,KAAM,IAAM4V,KACrB,IAAIA,GAAK,CAAC,CAAEvC,SAAU,yBAA0BC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,cAAeC,SAAU,QAAS99C,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAW,CAAEsrC,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,QAASC,SAAU,SAAW,CAAED,SAAU,WAAYC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,YAAaC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,IAAKw5E,KAAM,aAAgB,CAAE8pC,SAAU,WAAYC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,OAAQC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,OAAQC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,QAASC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,SAAUC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,IAAKw5E,KAAM,aAAgB,CAAE8pC,SAAU,QAASC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,UAAW9kH,KAAM,SAAUw5E,KAAM,SAAUurC,cAAc,GAAQ,CAAED,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,OAAQC,SAAU,QAASlmD,OAAQ,IAAM,CAAEimD,SAAU,eAAgBC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,0BAA2BC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,UAAY,CAAEsrC,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,aAC7xDssC,GAAK,GACT7lF,EAAG6lF,GAAI,CAAE7V,KAAM,IAAM8V,KACrB,IAAIA,GAAK,CAAC,CAAEzC,SAAU,YAAaC,SAAU,aAAclmD,OAAQ,GAAIoI,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,UAAY,CAAEsrC,OAAQ,wBAAyB9kH,KAAM,qBAAsBw5E,KAAM,QAAU,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,SAAW,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,WAAc,CAAE8pC,SAAU,cAAeC,SAAU,aAAclmD,OAAQ,GAAIoI,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,UAAY,CAAEsrC,OAAQ,wBAAyB9kH,KAAM,qBAAsBw5E,KAAM,QAAU,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,SAAW,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,WAAc,CAAE8pC,SAAU,oBAAqBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,sBAAuBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,kBAAmBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,oBAAqBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,kBAAmBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,YAAe,CAAE8pC,SAAU,oBAAqBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,YAAe,CAAE8pC,SAAU,kBAAmBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,YAAe,CAAE8pC,SAAU,oBAAqBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,aAC7rFwsC,GAAK,GACT/lF,EAAG+lF,GAAI,CAAE/V,KAAM,IAAMgW,KACrB,IAAIA,GAAK,CAAC,CAAE3C,SAAU,iBAAkBC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,QAAU,CAAEsrC,OAAQ,qBAAsB9kH,KAAM,mBAAoBw5E,KAAM,QAAU,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,wBAAyBC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,QAAU,CAAEsrC,OAAQ,qBAAsB9kH,KAAM,mBAAoBw5E,KAAM,QAAU,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,gBAAiBC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,SAAU9kH,KAAM,SAAUw5E,KAAM,UAAY,CAAEsrC,OAAQ,sBAAuB9kH,KAAM,qBAAsBw5E,KAAM,YAAe,CAAE8pC,SAAU,6BAA8BC,SAAU,QAASlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,YAAaw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,gBAAiBw5E,KAAM,UAAY,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,aACz/C0sC,GAAK,GACTjmF,EAAGimF,GAAI,CAAEjW,KAAM,IAAMkW,KACrB,IAAIA,GAAK,CAAC,CAAE7C,SAAU,QAASC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,eAAgBC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,aAAcC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,aAAcC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,YAAaw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,WAAYC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,YAAaw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,aAAcC,SAAU,UAAWlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,aAC1/E4sC,GAAK,GACTnmF,EAAGmmF,GAAI,CAAEnW,KAAM,IAAMoW,KACrB,IAAIA,GAAK,CAAC,CAAE/C,SAAU,eAAgBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,OAAQw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,WAAY9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,WAAY4T,aAAc,IAAM,CAAE03B,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,MAAQ,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,kBAAmB9kH,KAAM,iBAAkBw5E,KAAM,SAAU4T,aAAc,IAAO,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,cAAeC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,gBAAiBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,QAAS9kH,KAAM,aAAcw5E,KAAM,OAAQ4T,cAAc,GAAS,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,YAAaC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,SAAUC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,UAAWw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,WAAY9kH,KAAM,WAAYw5E,KAAM,UAAY,CAAEsrC,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,iBAAkBC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,aAClgF8sC,GAAK,GACTrmF,EAAGqmF,GAAI,CAAErW,KAAM,IAAMsW,KACrB,IAAIA,GAAK,CAAC,CAAEjD,SAAU,gBAAiBC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,OAAQ4T,cAAc,KAAY,CAAEk2B,SAAU,iBAAkBC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,MAAQ,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,mBAAoBC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,MAAQ,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,mBAAoBC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,MAAQ,CAAE03B,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,MAAOC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,eAAgB9kH,KAAM,SAAUw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,QAAS9kH,KAAM,QAASw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,MAAU,CAAEk2B,SAAU,UAAWC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,aAAcC,SAAU,gBAAiBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,aAC3qEgtC,GAAK,GACTvmF,EAAGumF,GAAI,CAAEvW,KAAM,IAAMwW,KACrB,IAAIA,GAAK,CAAC,CAAEnD,SAAU,WAAYC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAe,CAAE8pC,SAAU,gBAAiBC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,UAAa,CAAE8pC,SAAU,MAAOC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,OAAQC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,MAAOC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,MAAOC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,MAAOC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,MAAOC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAa,CAAE8pC,SAAU,SAAUC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,SAAUC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,OAAQC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,QAAU,CAAEsrC,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,QAAU,CAAEsrC,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,UAAa,CAAE8pC,SAAU,SAAUC,SAAU,YAAalmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,QAAU,CAAEsrC,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,WAC/tFktC,GAAK,GACTzmF,EAAGymF,GAAI,CAAEzW,KAAM,IAAM0W,KACrB,IAAIA,GAAK,CAAC,CAAErD,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,KAAM,EAAGvqE,KAAM,UAAWw5E,KAAM,WAAa,CAAElP,OAAQ,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,UAAWw5E,KAAM,WAAa,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,IAAKw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,IAAM3nB,MAAO,CAAC,CAAEq/C,OAAQ,aAAc9kH,KAAM,YAAaw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,mBAAoB9kH,KAAM,kBAAmBw5E,KAAM,OAAQurC,cAAc,KAAW,CAAEzB,SAAU,UAAWC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,YAAaC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,cAAiB,CAAE8pC,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,cAAiB,CAAE8pC,SAAU,eAAgBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,MAAOw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,aAAc9kH,KAAM,YAAaw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,WAAY9kH,KAAM,UAAWw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,gBAAiB9kH,KAAM,cAAew5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,gBAAiB9kH,KAAM,eAAgBw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,mBAAoB9kH,KAAM,iBAAkBw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGC,IAAK,EAAGvqE,KAAM,UAAWw5E,KAAM,YAAc/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE03B,OAAQ,MAAO9kH,KAAM,MAAOw5E,KAAM,SAAU4T,aAAc,EAAG23B,cAAc,KAAW,CAAEzB,SAAU,OAAQC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,cAAiB,CAAE8pC,SAAU,QAASC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,GAAK,CAAE9iB,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,kBAAmBw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,SAAUC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,kBAAmBw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,YAAaC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,cAAiB,CAAE8pC,SAAU,WAAYC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAe,CAAE8pC,SAAU,gBAAiBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,cAAew5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,mBAAoB9kH,KAAM,kBAAmBw5E,KAAM,OAAQ4T,cAAc,EAAO23B,cAAc,KAAW,CAAEzB,SAAU,sBAAuBC,SAAU,aAAclmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,aAC9jIotC,GAAK,GACT3mF,EAAG2mF,GAAI,CAAE3W,KAAM,IAAM4W,KACrB,IAAIA,GAAK,CAAC,CAAEvD,SAAU,sBAAuBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,SAAUw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,YAAe,CAAE8pC,SAAU,gBAAiBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,eAAgBw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,IAAK9kH,KAAM,QAASw5E,KAAM,QAASurC,cAAc,KAAW,CAAEzB,SAAU,oBAAqBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,YAAe,CAAE8pC,SAAU,mBAAoBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,aACv7BstC,GAAK,GACT7mF,EAAG6mF,GAAI,CAAE7W,KAAM,IAAM8W,KACrB,IAAIA,GAAK,CAAC,CAAEzD,SAAU,MAAOC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,OAAQC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,YAAe,CAAE8pC,SAAU,OAAQC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,KAAW,CAAEzB,SAAU,QAASC,SAAU,WAAYlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,SAAUurC,cAAc,MACngBiC,GAAK,GACT/mF,EAAG+mF,GAAI,CAAE/W,KAAM,IAAMgX,KACrB,IAAIA,GAAK,CAAC,CAAE3D,SAAU,qBAAsBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,UAAW9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,iBAAkB9kH,KAAM,gBAAiBw5E,KAAM,UAAa,CAAE8pC,SAAU,eAAgBC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,YAAa9kH,KAAM,YAAaw5E,KAAM,UAAY,CAAEsrC,OAAQ,eAAgB9kH,KAAM,cAAew5E,KAAM,YAAc,CAAEsrC,OAAQ,WAAY9kH,KAAM,UAAWw5E,KAAM,UAAY,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAY,CAAEsrC,OAAQ,YAAa9kH,KAAM,WAAYw5E,KAAM,UAAY,CAAEsrC,OAAQ,2BAA4B9kH,KAAM,yBAA0Bw5E,KAAM,SAAWpc,QAAS,CAAC,SAAU,kBAAoB,CAAEkmD,SAAU,cAAeC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,YAAaw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,aAAc9kH,KAAM,YAAaw5E,KAAM,SAAWpc,QAAS,CAAC,UAAW,SAAU,UAAY,CAAEkmD,SAAU,yBAA0BC,SAAU,SAAUlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,aAChzC0tC,GAAK,GACTjnF,EAAGinF,GAAI,CAAEjX,KAAM,IAAMkX,KACrB,IAAIA,GAAK,CAAC,CAAE7D,SAAU,OAAQC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,SAAUw5E,KAAM,QAASurC,cAAc,GAAQ,CAAED,OAAQ,OAAQ9kH,KAAM,QAASw5E,KAAM,WAAc,CAAE8pC,SAAU,aAAcC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,YAAaC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQ9kH,KAAM,OAAQw5E,KAAM,YAAe,CAAE8pC,SAAU,MAAOC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,aAAe/T,MAAO,CAAC,CAAEq/C,OAAQ,iBAAkB9kH,KAAM,gBAAiBw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,QAASC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,UAAWw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,gBAAiBw5E,KAAM,SAAU4T,aAAc,KAAQ,CAAEk2B,SAAU,UAAWC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,cAAiB,CAAE8pC,SAAU,cAAeC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,cAAiB,CAAE8pC,SAAU,UAAWC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,OAAQsC,iBAAkB,eAAgBpnH,KAAM,OAAQw5E,KAAM,cAAiB,CAAE8pC,SAAU,iBAAkBC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,WAAYw5E,KAAM,cAAiB,CAAE8pC,SAAU,iBAAkBC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,aAAcw5E,KAAM,YAAc,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,cAAiB,CAAE8pC,SAAU,eAAgBC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,WAAa/T,MAAO,CAAC,CAAEq/C,OAAQ,aAAc9kH,KAAM,YAAaw5E,KAAM,UAAY,CAAEsrC,OAAQ,cAAe9kH,KAAM,aAAcw5E,KAAM,YAAe,CAAE8pC,SAAU,cAAeC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,IAAKw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,QAASw5E,KAAM,aAAe/T,MAAO,IAAM,CAAE69C,SAAU,gBAAiBC,SAAU,iBAAkBlmD,OAAQ,CAAC,CAAEiN,MAAO,EAAGtqE,KAAM,KAAMw5E,KAAM,UAAY,CAAElP,MAAO,EAAGtqE,KAAM,KAAMw5E,KAAM,WAAa/T,MAAO,KACjgF4hD,GAAK,MACP,sBACE,OAAO5oH,KAAK6oH,YAAc7oH,KAAK6oH,UAAY,IAAI7oH,MAEjD,cACE,IAAIshC,EAAK,CAAC6kF,GAAII,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,IAAKhnF,EAAI,GAAG7gB,UAAU0gB,EAAGizB,IAAK5yB,GAAMA,EAAE6vE,OACxHxxG,KAAK8oH,UAAYrnF,EAAE3hC,OAAO,CAAC6hC,EAAGC,KAAOD,EAAEC,EAAEijF,UAAYjjF,EAAGD,GAAI,IAE9D,eAAeL,EAAIG,EAAI,IACrB,IAAIE,EAAIL,EAAG6P,KAAMvP,EAAI,GAAIwC,EAAI,GAAIC,EAAI,GAAIC,EAAI3C,EAAE7hC,OAAO,CAACosC,EAAGC,KAAOD,EAAEC,EAAE5qC,MAAQvB,KAAK+oH,QAAQ58E,GAAIA,EAAE/b,GAAGmoB,WAAW,eAAiB3W,EAAEiK,KAAKK,EAAEC,EAAE5qC,OAAkB,UAAT4qC,EAAE/b,GAAiBgU,EAAEyH,KAAKK,EAAEC,EAAE5qC,QAAqB,MAAX4qC,EAAEk5C,OAAoC,IAAnBl5C,EAAEk5C,MAAMnlF,SAAiBmkC,EAAEwH,KAAKK,EAAEC,EAAE5qC,OAAQ2qC,GAAI,IAAK3H,EAAI,GAAIE,EAAI,GAAIyB,EAAI,GAAI4B,EAAI,GAC1R,MAALrG,IAAcyE,EAAIlmC,KAAKgpH,oBAAoBvnF,EAAEm9B,QAAS92B,EAAI9nC,KAAKgpH,oBAAoBvnF,EAAEk9B,UACrF,IAAI52B,EAAInnC,OAAOo9D,KAAK15B,GACpByD,EAAE4R,QAASzN,IACT,IAAIC,EAAI7H,EAAE4H,GACVC,EAAEk5E,WAAW1rE,QAAQ,CAACzO,EAAGuB,KACvB,IAAKM,EAAG,CAAEC,GAAK+4E,GAAG76E,GAAI+B,EAAI3I,EAAEyI,GAC5B,GAAiB,MAAbE,EAAE0xB,QAAiB,CACrB,IAAIzxB,EAAID,EAAE0xB,QAAQj+D,QAAQssC,GAC1B,IAAW,IAAPE,EAAU,CACZ,IAAIE,EAAI,GAAGL,KAAKG,IAChBf,EAAEk5E,WAAW54E,GAAKW,GAGtBjB,EAAEyyB,OAAO/yB,KAAKoB,GAAIA,EAAEg8E,SAASp9E,KAAKM,OAER,IAA1BvrC,OAAOo9D,KAAKl2B,GAAG5nC,OAAe6nC,EAAE4R,QAASzN,IAC3C,IAAIC,EAAI7H,EAAE4H,GACY,IAAtBC,EAAE88E,SAAS/oH,QAAgBukC,EAAEoH,KAAKM,KAC/BvrC,OAAOo9D,KAAKl2B,GAAG6R,QAASzN,IAC3B,IAAKC,GAAK45E,GAAG75E,GAAIhB,EAAI5G,EAAE6H,GAClB,MAALjB,IAAcA,EAAEg+E,aAAephF,EAAEoE,GAAIzH,EAAEoH,KAAKX,MAC1CtqC,OAAOo9D,KAAK93B,GAAGhmC,OAAS,EAAIU,OAAOo9D,KAAK93B,GAAGyT,QAASzN,IACtD,IAAKC,GAAK45E,GAAG75E,GAAIhB,EAAI5G,EAAE6H,GACvBjB,IAAMA,EAAEg+E,aAAehjF,EAAEgG,GAAI3H,EAAEsH,KAAKX,MACjC3G,EAAI3C,EACT,IAAIoG,EAAI,GACM,MAAd1G,EAAG6nF,SAA0C,MAAvB7nF,EAAG6nF,QAAQC,WAAqBphF,EAAI1G,EAAG6nF,QAAQC,SAAStpH,OAAO,CAACosC,EAAGC,KAAOD,EAAEC,EAAE2hC,UAAUvsE,MAAQvB,KAAKqpH,YAAYl9E,GAAID,GAAI,KAC/I,IAAI9D,EAAI,CAAEkhF,MAAOhlF,EAAGs6B,OAAQr6B,EAAGo6B,QAASl6B,EAAGqqC,QAAS1qC,EAAGmlF,aAAc3nF,EAAGksC,UAAWrsC,EAAG+nF,UAAWxhF,GACjG,OAAO3D,EAAEnkC,OAAS,IAAMkoC,EAAEqhF,UAAYplF,GAAI+D,EAE5C,oBAAoB9G,GAClB,OAAO1gC,OAAOo9D,KAAK18B,GAAM,IAAIxhC,OAAO,CAAC2hC,EAAGE,KAAOF,EAAEH,EAAGK,GAAGpgC,MAAQogC,EAAGF,GAAI,IAExE,QAAQH,GACN,IAAIG,EAAIujF,GAAG1jF,EAAGlR,KAAOpwB,KAAK8oH,UAAUxnF,EAAGlR,KAAO,GACnC,MAAXkR,EAAGooF,OAAiBpoF,EAAGooF,KAAO,IAC9B,IAAI/nF,EAAI,CAAEpgC,KAAM+/B,EAAG//B,KAAM6uB,GAAIkR,EAAGlR,GAAI00F,SAAUrjF,EAAEqjF,SAAUO,YAAa/jF,EAAG+jD,OAAS,IAAI9wB,IAAK3yB,GAAMA,EAAE2W,WAAW,KAAO3W,EAAE5J,MAAM,GAAK4J,GAAIg9B,OAAQ,GAAIqqD,SAAU,GAAI/D,YAAa,GAAIK,WAAY,GAAIoE,SAAUroF,EAAGooF,KAAM/qD,QAASl9B,EAAEk9B,SAChO,OAAmB,MAAZl9B,EAAEm9B,SAAmBj9B,EAAEujF,YAAczjF,EAAEm9B,OAAO9+D,OAAO,CAAC8hC,EAAGwC,KAAOxC,EAAEwC,EAAE7iC,MAAQ,CAAEw5E,KAAM32C,EAAE22C,KAAMoqC,gBAAiB/gF,EAAEynC,MAAOu5C,cAAehhF,EAAE0nC,KAAOlqC,GAAI,KAAiB,MAAXH,EAAEulC,QAAkBrlC,EAAE4jF,WAAa9jF,EAAEulC,MAAMlnE,OAAO,CAAC8hC,EAAGwC,KACnN,IAAgBE,EAAZD,EAAID,EAAE22C,KACV,OAAQ32C,EAAE22C,MACR,IAAK,SACHz2C,EAAIslF,GAAGtoF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAIslF,GAAGtoF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,WACHrqD,EAAIulF,GAAGvoF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAIulF,GAAGvoF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,SACHrqD,EAAIwlF,GAAGxoF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,cAAgB,QAAU,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAIwlF,GAAGxoF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eAC7H,MACF,IAAK,WACHrqD,EAAIylF,GAAGzoF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAIylF,GAAGzoF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,OACHrqD,EAAI0lF,GAAG1oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI0lF,GAAG1oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,SACHrqD,EAAI2lF,GAAG3oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI2lF,GAAG3oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,QACHrqD,EAAI4lF,GAAG5oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI4lF,GAAG5oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,UACHrqD,EAAI6lF,GAAG7oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI6lF,GAAG7oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,QACHrqD,EAAI8lF,GAAG9oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI8lF,GAAG9oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,UACHrqD,EAAI+lF,GAAG/oF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAI+lF,GAAG/oF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,OACHrqD,EAAIgmF,GAAGhpF,EAAGooF,KAAMtlF,EAAEiiF,OAAQjiF,EAAEuqD,mBAAqB,IAANrqD,GAAgBF,EAAEukF,mBAAqBrkF,EAAIgmF,GAAGhpF,EAAGooF,KAAMtlF,EAAEukF,iBAAkBvkF,EAAEuqD,eACxH,MACF,IAAK,SACL,IAAK,UACH,MACF,QACE,MAAM,IAAI1qD,MAAM,2BAA2BG,EAAE22C,gBAAgBz5C,EAAGlR,MAEpE,OAAOwR,EAAEwC,EAAE7iC,MAAQ,CAAEN,MAAOqjC,EAAGy2C,KAAM12C,GAAKzC,GACzC,KAAMD,EAEX,YAAYL,GACV,IAAIG,EAAIH,EAAGipF,QAAS5oF,EAAI,GAAIC,EAAI,GAAIwC,EAAI,GACnC,MAAL3C,IAAc2C,EAAI3C,EAAE3hC,OAAO,CAACgoC,EAAGC,KAAOD,EAAEC,EAAExmC,MAAQvB,KAAK+oH,QAAQhhF,GAAa,UAATA,EAAE3X,IAAkBwR,EAAEiK,KAAK/D,EAAEC,EAAExmC,OAAQumC,GAAI,KAC9G,IAAIzD,EAAI,GAAIC,EAAI,GAChBhD,EAAGwsC,UAAU08C,SAAS7wE,QAAS7R,IAC7B,IAAKC,GAAKg+E,GAAGj+E,EAAEvmC,MAAOymC,EAAI,CAAEzmC,KAAMwmC,EAAG3X,GAAI,cAAewuC,OAAQ,GAAIymD,WAAY,GAAIP,SAAU,QAASI,YAAa,GAAIK,WAAY,CAAE7mD,MAAO,CAAEz9D,MAAOwpH,GAAG3iF,EAAEizC,MAAOA,KAAM,UAAakuC,SAAU,IAC/LjhF,EAAEkhF,aAAephF,EAAEvmC,KAAM8iC,EAAEwH,KAAK7D,GAAI5D,EAAE2D,GAAKC,IACzCpnC,OAAOo9D,KAAK55B,GAAGuV,QAAS7R,IAC1B,IAAIC,EAAI3D,EAAE0D,GACVC,EAAEs9E,WAAW1rE,QAAQ,CAAC3R,EAAGI,KACvB,IAAK8D,EAAG,CAAEC,GAAK45E,GAAG/9E,GAAIkD,EAAI9G,EAAE8H,GAC5B,GAAiB,MAAbhB,EAAEyzB,QAAiB,CACrB,IAAIlyB,EAAIvB,EAAEyzB,QAAQj+D,QAAQyrC,GAC1B,IAAW,IAAPM,EAAU,CACZ,IAAIM,EAAI,GAAGb,KAAKO,IAChB1E,EAAEs9E,WAAWj9E,GAAK2E,GAGtBhF,EAAE62B,OAAO/yB,KAAKX,GAAIA,EAAE+9E,SAASp9E,KAAK9D,OAGtC,IAAItD,EAAInD,EAAGopF,IACXppF,EAAGwsC,UAAU68C,UAAUhxE,QAAS7R,IAC9B,IAAKC,EAAGC,GAAK+9E,GAAGthF,EAAEqD,EAAEvmC,OAAQ6mC,EAAIhE,EAAE2D,GAC7B,MAALK,IAAcA,EAAEwiF,cAAgB5iF,EAAG1D,EAAEuH,KAAKzD,MAE5C,IAAIlC,EAAIlmC,KAAK6qH,mBAAmBvpF,GAChC,MAAO,CAAEgoF,MAAOllF,EAAGw6B,OAAQv6B,EAAGs6B,QAASr6B,EAAGwqC,QAASltC,EAAG2nF,aAAc5nF,EAAGmsC,UAAW5nC,GAEpF,mBAAmB5E,GACjB,MAAO,CAAEwpF,WAAYxpF,EAAGwsC,UAAUvsE,KAAMq9D,OAAQt9B,EAAGwsC,UAAU08C,SAAS1qH,OAAO,CAAC2hC,EAAGE,KAAOF,EAAEE,EAAEpgC,MAAQvB,KAAK+qH,mBAAmBppF,GAAIF,GAAI,IAAKk9B,QAASr9B,EAAGwsC,UAAU68C,UAAU7qH,OAAO,CAAC2hC,EAAGE,KAAOF,EAAEE,EAAEpgC,MAAQvB,KAAK+qH,mBAAmBppF,EAAGL,EAAGopF,KAAMjpF,GAAI,KAEjP,mBAAmBH,EAAIG,GACrB,IAAIE,EAAIL,EAAG//B,KACX,OAAY,MAALkgC,IAAcE,EAAIF,EAAEE,IAAK,CAAEpgC,KAAMogC,EAAG+8B,MAAOp9B,EAAGy5C,QAGzD,SAASiwC,GAAG3pF,GACV,IAAIC,EAAK3b,KAAIgoB,OACb,GAAsB,oBAAXrM,EAAG2rC,KACZ,OAAO3rC,EAAG2rC,KAAK5rC,GACjB,GAAqB,oBAAV0rC,EACT,OAAO,IAAIA,EAAO1rC,EAAG,UAAUyE,WACjC,MAAM,IAAI7B,MAAM,oFAElB,SAASgnF,GAAG5pF,EAAGC,GACb,IAAIG,EAAIgzB,MAAMC,QAAQrzB,GAAK5gC,OAAO4tC,aAAaC,MAAM,KAAMjN,GAAK2pF,GAAG3pF,GACnE,OAAOC,EAAKG,EAAIA,EAAEm2B,cAEpB,SAASgyD,GAAGvoF,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAIP,EAAEC,GACV,OAAY,MAALM,EAAYqpF,GAAGrpF,EAAEwC,EAAGzC,GAAKF,EAElC,SAASuoF,GAAG3oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,EAAIA,EAAE8K,EAAIhL,EAEnB,SAASqoF,GAAGzoF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,IAAO,GAAIM,EAAW,MAAPD,EAAE2C,EAAY3C,EAAE2C,EAAW,MAAP3C,EAAEyG,EAAYzG,EAAEyG,EAAI3G,EACjE,MAAmB,iBAALG,EAAgBA,EAAI4C,SAAS5C,EAAG,IAEhD,SAAS6oF,GAAGppF,GACV,OAAoB,iBAALA,IAAkBA,EAAImgF,GAAGngF,IAAKA,GAC3C,KAAKmgF,GAAGI,SACR,KAAKJ,GAAGsB,QACN,MAAO,UACT,KAAKtB,GAAGM,SACR,KAAKN,GAAGY,SACR,KAAKZ,GAAGS,QACR,KAAKT,GAAGO,SACN,MAAO,QACT,KAAKP,GAAGa,QACN,MAAO,OACT,KAAKb,GAAGK,UACN,MAAO,UACT,KAAKL,GAAGU,UACN,MAAO,SACT,QACE,OAAO,MAGb,SAASoI,GAAGjpF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEupF,KAAOvpF,EAAEupF,KAAK3pH,KAAOkgC,EAErC,SAAS2oF,GAAG/oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEo5C,KAAO0vC,GAAG9oF,EAAEo5C,MAAQt5C,EAEpC,SAAS4oF,GAAGhpF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEwpF,MAAQxpF,EAAEwpF,KAAKpwC,KAAOp5C,EAAEwpF,KAAKpwC,KAAKxmB,IAAK3yB,GAAM6oF,GAAG7oF,IAAMH,EAEtE,SAAS2pF,GAAG/pF,GACV,IAAKA,EAAEgqF,YACL,OAAgB,MAAThqF,EAAEikD,IAAcjkD,EAAEikD,IAAI/wB,IAAKjzB,GAAyB,iBAAXA,EAAG49B,KAAmB59B,EAAG49B,KAAO16B,SAASlD,EAAG49B,KAAM,KAAO,GAE7G,SAASgrD,GAAG7oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEw9B,MAAQisD,GAAGzpF,EAAEw9B,OAAS19B,EAEtC,SAASsoF,GAAG1oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,IAAMA,EAAEwpF,KAAK/iF,GAAKzG,EAAEwpF,KAAK/iF,EAAEloC,OAASyhC,EAAEwpF,KAAK/iF,EAAIzG,EAAEwpF,KAAK7mF,IAAM,IAAIiwB,IAAK3yB,GAAkB,iBAALA,EAAgBA,EAAI4C,SAAS5C,EAAG,KAAOH,EAElI,SAASooF,GAAGxoF,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAIP,EAAEC,GACV,OAAOM,GAAKA,EAAEupF,MAAQvpF,EAAEupF,KAAK/mF,EAAIxC,EAAEupF,KAAK/mF,EAAEmwB,IAAKnwB,GAAM6mF,GAAG7mF,EAAGzC,IAAMF,EAEnE,SAAS0oF,GAAG9oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEwpF,MAAQxpF,EAAEwpF,KAAKhsD,MAAQx9B,EAAEwpF,KAAKhsD,MAAM5K,IAAK3yB,GAAMwpF,GAAGxpF,IAAMH,EAExE,SAASwoF,GAAG5oF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEC,GACV,OAAOK,GAAKA,EAAEwpF,MAAQxpF,EAAEwpF,KAAK1+E,EAAI9K,EAAEwpF,KAAK1+E,EAAIhL,EAE9C,IAAI6pF,GAAK,MACP,YAAYhqF,EAAIG,EAAGE,GACjB3hC,KAAKmxC,KAAO7P,EAAIthC,KAAKurH,UAAY9pF,EAAGzhC,KAAKwrH,QAAU7pF,EAAG3hC,KAAK4+D,OAAS,GAAI5+D,KAAKgnE,MAAQ,GAAIhnE,KAAK4+D,OAASt9B,EAAG+jF,WAAW9wD,IAAK3yB,GAAM5hC,KAAKyrH,SAAS7pF,IAAoB,MAAfN,EAAGqoF,WAAqB3pH,KAAKgnE,MAAQpmE,OAAOo9D,KAAK18B,EAAGqoF,UAAU7pH,OAAO,CAAC8hC,EAAGwC,KAAOxC,EAAEwC,GAAKpkC,KAAK0rH,QAAQtnF,GAAIxC,GAAI,KAEjQ,SAASN,GACP,OAAOgkF,GAAGhkF,EAAIthC,KAAKurH,UAAWvrH,KAAKwrH,SAErC,QAAQlqF,EAAIG,GACV,IAAIE,EAAI3hC,KAAKmxC,KAAKw4E,SAASroF,GAC3B,GAAgB,MAAZK,EAAEvG,OACJ,OAAOkqF,GAAGhkF,EAAIthC,KAAKurH,UAAWvrH,KAAKwrH,SACrC,GAAW,MAAP7pF,EAAE2C,GAAoB,MAAP3C,EAAEyG,EACnB,OAAO0hF,GAAG9pH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAW,MAAPE,EAAEyC,EACJ,OAAOwlF,GAAG5pH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAW,MAAPE,EAAE8K,EACJ,OAAOu9E,GAAGhqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAe,MAAXE,EAAEw9B,MACJ,OAAO+qD,GAAGlqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAc,MAAVE,EAAEo5C,KACJ,OAAOqvC,GAAGpqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAc,MAAVE,EAAEwpF,KAAc,CAClB,GAAgB,MAAZxpF,EAAEwpF,KAAK7mF,GAAyB,MAAZ3C,EAAEwpF,KAAK/iF,EAC7B,OAAO2hF,GAAG/pH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAgB,MAAZE,EAAEwpF,KAAK/mF,EACT,OAAOylF,GAAG7pH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAoB,MAAhBE,EAAEwpF,KAAKhsD,MACT,OAAOgrD,GAAGnqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAgB,MAAZE,EAAEwpF,KAAK1+E,EACT,OAAOw9E,GAAGjqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GACpC,GAAmB,MAAfE,EAAEwpF,KAAKpwC,KACT,OAAOsvC,GAAGrqH,KAAKmxC,KAAKw4E,SAAUroF,EAAIG,GAEtC,OAAOA,IAGPkqF,GAAK,GACTnqF,EAAGmqF,GAAI,CAAEt5G,gBAAiB,IAAMC,GAAI6J,IAAK,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIpa,IAAK,IAAMqa,GAAIC,KAAM,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,UAAW,IAAMC,GAAIK,cAAe,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,YAAa,IAAMC,GAAIK,OAAQ,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIG,IAAK,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,OAAQ,IAAMC,GAAIG,cAAe,IAAMC,GAAIG,aAAc,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIK,KAAM,IAAMC,GAAIC,WAAY,IAAMC,GAAIO,IAAK,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,IAAK,IAAMC,GAAIK,oBAAqB,IAAMC,GAAIG,YAAa,IAAMC,GAAIG,MAAO,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,KAAM,IAAMC,GAAIK,MAAO,IAAMC,GAAIC,SAAU,IAAMC,GAAIG,MAAO,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,SAAU,IAAMC,GAAImB,QAAS,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,YAAa,IAAMC,GAAIG,MAAO,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIK,UAAW,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,SAAU,IAAMC,GAAIK,2BAA4B,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,OAAQ,IAAMC,GAAIG,IAAK,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,KAAM,IAAMC,GAAIG,SAAU,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,IAAK,IAAMC,GAAIG,KAAM,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,GAAI,IAAMC,GAAGC,aAAc,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,KAAM,IAAMC,GAAIG,aAAc,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,MAAO,IAAMC,GAAIG,KAAM,IAAMC,GAAIC,WAAY,IAAMC,GAAIS,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIG,QAAS,IAAMC,GAAGC,QAAS,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,UAAW,IAAMC,GAAIG,aAAc,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIe,eAAgB,IAAMC,GAAIG,QAAS,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,QAAS,IAAMC,GAAIG,QAAS,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,IAAK,IAAMC,GAAIC,IAAK,IAAMC,GAAIG,IAAK,IAAMC,GAAIC,KAAM,IAAMC,GAAIC,OAAQ,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIO,KAAM,IAAMC,GAAIG,KAAM,IAAMC,GAAIG,UAAW,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,OAAQ,IAAMC,GAAIK,mBAAoB,IAAMC,GAAIC,QAAS,IAAMC,GAAIG,WAAY,IAAMC,GAAIO,SAAU,IAAMC,GAAIqB,MAAO,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,MAAO,IAAMC,GAAIC,UAAW,IAAMC,KACrqI,IAAIqrF,GAAK,CAACvqF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,UACL,IAAK,QACL,IAAK,MACH,MAAO,CAACuR,EAAEv/B,IAAI6iH,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,OACH,MAAO,CAACE,EAAEjlB,KAAKuoG,GAAE,UAAW5jF,EAAGC,EAAIG,KACrC,IAAK,WACL,IAAK,MACH,MAAO,CAACE,EAAEjT,IAAIu2F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,MACH,MAAO,CAACE,EAAE3S,IAAIi2F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,UACL,IAAK,MACH,MAAO,CAACE,EAAEvd,IAAI6gG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,WACH,MAAO,CAACE,EAAErd,SAAS2gG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACrD,IAAK,WACH,MAAO,CAACE,EAAEva,SAAS69F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACrD,IAAK,MACH,MAAO,CAACE,EAAEjH,IAAIuqF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,UACH,MAAO,CAACE,EAAErT,QAAQ22F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACpD,IAAK,UACH,MAAO,CAACE,EAAE/T,QAAQq3F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACpD,IAAK,MACH,MAAO,CAACE,EAAEvQ,IAAI6zF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChD,IAAK,oBACH,MAAO,CAACE,EAAE7H,kBAAkBmrF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9D,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjCy7F,GAAK,CAACxqF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,MACL,IAAK,aACH,MAAO,CAACuR,EAAExlB,IAAI8oG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,OACH,MAAO,CAACE,EAAEtlB,KAAK4oG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,QACH,MAAO,CAACE,EAAEplB,MAAM0oG,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,OACH,MAAO,CAACE,EAAEvkB,KAAK6nG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,QACH,MAAO,CAACE,EAAErkB,MAAM2nG,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,OACH,MAAO,CAACE,EAAEnkB,KAAKynG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,QACH,MAAO,CAACE,EAAEjkB,MAAMunG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAClD,IAAK,QACH,MAAO,CAACE,EAAE/jB,MAAMqnG,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,OACH,MAAO,CAACE,EAAEvhB,KAAK6kG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,UACH,MAAO,CAACE,EAAEjhB,QAAQukG,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KAC1D,IAAK,MACH,MAAO,CAACE,EAAEzf,IAAI+iG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,OACH,MAAO,CAACE,EAAEvf,KAAK6iG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,MACH,MAAO,CAACE,EAAE7c,IAAImgG,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,MACH,MAAO,CAACE,EAAE7b,IAAIm/F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,MACH,MAAO,CAACE,EAAEzb,IAAI++F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,QACH,MAAO,CAACE,EAAErb,MAAM2+F,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,QACH,MAAO,CAACE,EAAEza,MAAM+9F,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,MACH,MAAO,CAACE,EAAEjW,IAAIu5F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,QACH,MAAO,CAACE,EAAE/V,MAAMq5F,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,OACH,MAAO,CAACE,EAAErY,KAAK27F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,MACH,MAAO,CAACE,EAAErS,IAAI21F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,aACH,MAAO,CAACE,EAAErO,WAAW2xF,GAAE,IAAK5jF,EAAGC,EAAIG,KACrC,IAAK,OACH,MAAO,CAACE,EAAEvO,KAAK6xF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,OACH,MAAO,CAACE,EAAE3N,KAAKixF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,QACH,MAAO,CAACE,EAAEvM,MAAM6vF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,OACH,MAAO,CAACE,EAAE3L,KAAKivF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,UACH,MAAO,CAACE,EAAErK,QAAQ2tF,GAAE,IAAK5jF,EAAGC,EAAIG,KAClC,IAAK,MACH,MAAO,CAACE,EAAE/J,IAAIqtF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,OACH,MAAO,CAACE,EAAEnK,KAAKytF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,OACH,MAAO,CAACE,EAAE7J,KAAKmtF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,WACH,MAAO,CAACE,EAAE7I,SAASmsF,GAAE,IAAK5jF,EAAGC,EAAIG,KACnC,IAAK,OACH,MAAO,CAACE,EAAEjI,KAAKurF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,SACH,MAAO,CAACE,EAAE/H,OAAOqrF,GAAE,IAAK5jF,EAAGC,EAAIG,KACjC,IAAK,OACH,MAAO,CAACE,EAAEzG,KAAK+pF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,MACH,MAAO,CAACE,EAAE3G,IAAIiqF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,cACH,MAAO,CAACE,EAAErhB,YAAY2kG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,eAAgB5jF,EAAGC,EAAIG,KAChG,IAAK,QACH,MAAO,CAACE,EAAEzN,MAAM+wF,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,IAAK,QACH,MAAO,CAACE,EAAErM,MAAMgwF,GAAGjkF,EAAEgkF,WAAW,GAAI/jF,EAAIG,KAC1C,IAAK,YACH,MAAO,CAACE,EAAEjX,UAAUu6F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KAC1D,IAAK,QACH,MAAO,CAACE,EAAErQ,MAAM2zF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KACtD,IAAK,QACH,MAAO,CAACE,EAAEvX,MAAMk7F,GAAGjkF,EAAEgkF,WAAW,GAAI/jF,EAAIG,KAC1C,IAAK,QACH,MAAO,CAACE,EAAEzX,MAAMo7F,GAAGjkF,EAAEgkF,WAAW,GAAI/jF,EAAIG,KAC1C,IAAK,WACH,MAAO,CAACE,EAAE3X,SAASs7F,GAAGjkF,EAAEgkF,WAAW,GAAI/jF,EAAIG,KAC7C,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGrC,SAAS07F,GAAGzqF,EAAGC,EAAIG,EAAI,IACrB,GAAkB,iBAALJ,GAA8B,iBAANC,EAAiB,CACpDjD,GAAE26B,OAAO33B,EAAEnhC,SAAWohC,EAAGphC,OAAQ,IAAMuhC,EAAI,WAAWJ,SAASC,gBAC/D,IAAK,IAAIK,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAAK,CACjC,IAAIC,EAAIP,EAAEM,GAAIyC,EAAI9C,EAAGK,GACrBtD,GAAE26B,OAAOp3B,EAAI,GAAKwC,EAAI,GAAKxC,IAAMwC,EAAG,IAAM3C,EAAI,WAAWJ,SAASC,kBAIxE,SAASyqF,GAAG1qF,GACV,QAAqB,iBAALA,GAAiBA,EAAEkiC,KAAMjiC,GAAOA,EAAK,IAEvD,SAAS0qF,GAAG3qF,EAAGC,EAAIG,GACjB,IAAIE,EAAIsqF,GAAG5qF,EAAGI,GAAIG,GAAKmqF,GAAGpqF,GAC1B,GAAIC,GAAmB,IAAdN,EAAGphC,OACV,MAAM,IAAI+jC,MAAM,qFAAqFtC,GACvG,GAAIC,GAAKN,EAAGqY,QAASvV,IACnBzC,EAAIsqF,GAAG7nF,EAAE+6B,MAAOx9B,MACboqF,GAAGpqF,GACN,MAAM,IAAIsC,MAAM,mCAAmCtC,GACrD,OAAOA,EAET,SAASsqF,GAAG5qF,EAAGC,GACb,GAAgB,iBAALD,EACT,OAAOC,EACT,GAAiB,iBAANA,EACT,OAAOD,EACT,GAAIA,EAAEnhC,SAAWohC,EAAGphC,OAClB,MAAM,IAAI+jC,MAAM,oCAAoC5C,SAASC,KAC/D,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAEnhC,SAAUyhC,EAAG,CACjC,IAAIC,EAAIP,EAAEM,GAAIyC,EAAI9C,EAAGK,GACrB,GAAIC,GAAK,GAAKwC,GAAK,GAAKxC,IAAMwC,EAC5B,MAAM,IAAIH,MAAM,oCAAoC5C,SAASC,KAC/DG,EAAEE,GAAKC,GAAK,EAAIA,EAAIwC,EAEtB,OAAO3C,EAET,IAAIyqF,GAAK,MACP,YAAY5qF,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAC7BtkC,KAAKuB,KAAO+/B,EAAIthC,KAAK0+D,MAAQj9B,EAAGzhC,KAAKmsH,QAAUxqF,EAAG3hC,KAAKosH,aAAexqF,EAAG5hC,KAAKqsH,uBAAyBjoF,EAAGpkC,KAAKssH,YAAcjoF,EAAGrkC,KAAKusH,eAAiBjoF,EAAGtkC,KAAKwsH,QAAU,GAAIxsH,KAAKysH,SAAU,EAAOzsH,KAAK0sH,SAAWj3F,GAAG,GAAIlL,GAAGvqB,KAAK0sH,UAEnO,SACE,OAAO1sH,KAAK0sH,SAASrtD,GAEvB,aACE,OAAOr/D,KAAKysH,QAEd,cAAcnrF,GACZthC,KAAKwsH,QAAQ7yE,QAASlY,KACb,MAANH,IAAeA,EAAGz/B,IAAI4/B,EAAErG,OAAOikC,MAAQ59B,EAAErG,OAAOpX,YAC/ChkB,KAAKwsH,QAAU,GAAIxsH,KAAKysH,SAAU,EAAMzsH,KAAK0sH,SAAS1oG,UAE5D,OACE,OAAOhkB,KAAKwsH,QAAQtsH,OAEtB,KAAKohC,GACH,GAAIthC,KAAKysH,QACP,MAAM,IAAIxoF,MAAM,eAAejkC,KAAKuB,iCACtC,GAAI+/B,EAAK,GAAKA,GAAMthC,KAAKk/D,OACvB,MAAM,IAAIj7B,MAAM,4BAA4B3C,yBAA0BthC,KAAKk/D,UAC7E,IAAIz9B,EAAIzhC,KAAKwsH,QAAQlrF,GACrB,GAAIG,EAAEkrF,QACJ,MAAM,IAAI1oF,MAAM,eAAejkC,KAAKuB,8BAA8B+/B,yGACpE,OAAOthC,KAAKusH,iBAAmB9qF,EAAEkrF,SAAU,GAAOlrF,EAAEs/B,MAAO,EAAMt/B,EAAErG,OAErE,SAASkG,GACP,OAAOA,EAAGizB,IAAK9yB,GAAMzhC,KAAK+gE,KAAKt/B,IAEjC,MAAMH,EAAIG,GACR,GAAIzhC,KAAKysH,QACP,MAAM,IAAIxoF,MAAM,eAAejkC,KAAKuB,iCACtC,GAAI+/B,EAAK,IAAMthC,KAAKssH,aAAehrF,GAAMthC,KAAKmsH,QAC5C,MAAM,IAAIloF,MAAM,2BAA2B3C,+CAAgDthC,KAAKmsH,WAClG,IAAIxqF,EAAI3hC,KAAKwsH,QAAQlrF,IAAO,GAC5B,GAAIG,EAAEi9B,QAAU1+D,KAAK0+D,MACnB,MAAM,IAAIz6B,MAAM,eAAejkC,KAAKuB,8CAA8C+/B,4CACjDG,EAAEi9B,mCAAmC1+D,KAAK0+D,UAC7E,GAAoB,IAAhB1+D,KAAKk/D,SAAsC,MAArBl/D,KAAKosH,cAAqD,IAA7BpsH,KAAKosH,aAAalsH,UAAkBF,KAAKosH,aAAe3qF,EAAE09B,OAAQ2sD,GAAG9rH,KAAKosH,aAAc3qF,EAAE09B,MAAO,eAAen/D,KAAKuB,8CAA8C+/B,MAAQK,EAAEo/B,KAClO,MAAM,IAAI98B,MAAM,eAAejkC,KAAKuB,8CAA8C+/B,wCACpF,GAAIK,EAAEirF,QACJ,MAAM,IAAI3oF,MAAM,eAAejkC,KAAKuB,8CAA8C+/B,2CACpFK,EAAEvG,OAASqG,EAAGlX,GAAGkX,GAAIE,EAAEirF,SAAU,EAAM5sH,KAAKwsH,QAAQlrF,GAAMK,EAE5D,UAAUL,EAAIG,GACZ,GAAIH,EAAGphC,SAAWuhC,EAAEvhC,OAClB,MAAM,IAAI+jC,MAAM,eAAejkC,KAAKuB,kEAAkE+/B,EAAGphC,2CAA2CuhC,EAAEvhC,WACxJohC,EAAGqY,QAAQ,CAAChY,EAAGC,IAAM5hC,KAAKqoE,MAAM1mC,EAAGF,EAAEG,KAEvC,OAAON,EAAIG,GACT,GAAIA,GAAKA,IAAMzhC,KAAK0+D,MAClB,MAAM,IAAIz6B,MAAM,wBAAwBjkC,KAAK0+D,oCAAoCj9B,KACnF,GAAIH,EACFA,EAAKA,EAAGtJ,MAAM,EAAGh4B,KAAKk/D,YACnB,CACH59B,EAAK,GACL,IAAK,IAAIM,EAAI,EAAGA,EAAI5hC,KAAKk/D,OAAQt9B,IAC/BN,EAAGuK,KAAKjK,GAEZ,GAAkB,IAAdN,EAAGphC,OACL,OAAOm7B,GAAG,GAAI,CAAC,GAAGza,OAAO5gB,KAAKosH,eAChC,IAAIzqF,EAAI3hC,KAAK6sH,SAASvrF,GACtB,OAAOwqF,GAAG9rH,KAAKosH,aAAczqF,EAAE,GAAGw9B,MAAO,gCAAiChlC,GAAGwH,EAAG,GAElF,OAAOL,GACL,GAAIA,GAAMA,IAAOthC,KAAK0+D,MACpB,MAAM,IAAIz6B,MAAM,wBAAwBjkC,KAAK0+D,oCAAoCp9B,KACnF,GAAoB,IAAhBthC,KAAKk/D,OACP,OAAO7jC,GAAG,GAAI,CAAC,GAAGza,OAAO5gB,KAAKosH,eAChC,IAAI3qF,EAAI,GACR,IAAK,IAAIG,EAAI,EAAGA,EAAI5hC,KAAKk/D,OAAQt9B,IAC/BH,EAAEoK,KAAKjK,GACT,IAAID,EAAI3hC,KAAK6sH,SAASprF,GACtB,OAAOqqF,GAAG9rH,KAAKosH,aAAczqF,EAAE,GAAGw9B,MAAO,mDAAmDn/D,KAAKosH,wCAAwCzqF,EAAE,GAAGw9B,UAAWt+C,GAAG8gB,EAAG,GAEjK,QAAQL,EAAIG,GACV,GAAIA,EAAEi9B,QAAU1+D,KAAK0+D,MACnB,MAAM,IAAIz6B,MAAM,wBAAwBjkC,KAAK0+D,8BAA8Bj9B,EAAEi9B,SAC/E,GAAIp9B,EAAGphC,SAAWuhC,EAAE09B,MAAM,GACxB,MAAM,IAAIl7B,MAAM,sDAAsD3C,EAAGphC,cAAcuhC,EAAE09B,MAAM,MACjG,IAAIx9B,EAAIoC,KAAK3W,OAAOkU,GACpB,IAAKthC,KAAKssH,aAAe3qF,GAAK3hC,KAAKmsH,QACjC,MAAM,IAAIloF,MAAM,mCAAmCtC,UAAU3hC,KAAKmsH,YACpEnsH,KAAK8sH,UAAUxrF,EAAIvD,GAAG0D,EAAG,IAE3B,MAAMH,EAAIG,GACR,GAAIA,EAAEi9B,QAAU1+D,KAAK0+D,MACnB,MAAM,IAAIz6B,MAAM,wBAAwBjkC,KAAK0+D,8BAA8Bj9B,EAAEi9B,SAC/E,IAAI/8B,EAAI,EAAGC,EAAIN,EAAGizB,IAAKhwB,IAAO5C,GAAK4C,EAAG5C,IACtC,GAAIA,IAAMF,EAAE09B,MAAM,GAChB,MAAM,IAAIl7B,MAAM,qGAEZtC,6BAA6BF,EAAE09B,SACrC,IAAKn/D,KAAKssH,aAAehrF,EAAGphC,SAAWF,KAAKmsH,QAC1C,MAAM,IAAIloF,MAAM,2DAA2DjkC,KAAKmsH,eAAe7qF,EAAGphC,wEACpG,IAAIkkC,EAAU,IAANzC,EAAU,EAAIF,EAAEy9B,KAAOv9B,EAAG0C,EAAI,GACtC5H,GAAG,KACDgF,EAAIlN,GAAEkN,EAAG,CAAC,EAAGE,EAAGyC,IAChB,IAAK,IAAIG,EAAI,EAAGA,EAAIjD,EAAGphC,SAAUqkC,EAAG,CAClC,IAAI2B,EAAI,CAAC,EAAS,IAAN3B,EAAU,EAAI3C,EAAE2C,EAAI,GAAI,GAAIuD,EAAI,CAAC,EAAGxG,EAAGiD,GAAIH,GACvDC,EAAEE,GAAKhQ,GAAE0D,GAAGwJ,EAAGyE,EAAG4B,GAAI9nC,KAAKosH,cAE7B,OAAO/nF,IAET,IAAIC,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAIjD,EAAGphC,OAAQqkC,IAC7BD,EAAEC,GAAKA,EACTvkC,KAAK8sH,UAAUxoF,EAAGD,KAGlB0oF,GAAK,MACP,SACE,OAAO/sH,KAAK0sH,SAASrtD,GAEvB,YAAY/9B,EAAIG,EAAGE,EAAGC,GAAI,GACxB5hC,KAAKwsH,QAAUlrF,EAAIthC,KAAKosH,aAAe3qF,EAAGzhC,KAAKgtH,aAAerrF,EAAS,MAANL,GAAcA,EAAGqY,QAASvV,IACzF,GAAIzC,IAAMyC,EAAEs6B,MACV,MAAM,IAAIz6B,MAAM,mCAAmCtC,wBAAwByC,EAAEs6B,SAC/EotD,GAAGrqF,EAAG2C,EAAE+6B,MAAO,+BAAgC50C,GAAG6Z,KAChDpkC,KAAK0sH,SAAWj3F,GAAG,GAAIz1B,KAAKitH,eAAiBrrF,EAAGrX,GAAGvqB,KAAK0sH,UAE9D,OACE,OAAO,IAAIK,GAAG,IAAI/sH,KAAKwsH,SAAUxsH,KAAKosH,aAAcpsH,KAAKgtH,cAE3D,cAAc1rF,GACZthC,KAAKwsH,QAAQ7yE,QAASlY,KACb,MAANH,IAAeA,EAAGz/B,IAAI4/B,EAAE49B,MAAQ59B,EAAEzd,YACjChkB,KAAKwsH,QAAQtsH,OAAS,EAAGF,KAAK0sH,SAAS1oG,UAE7C,OACE,OAAOhkB,KAAKwsH,QAAQtsH,OAEtB,MAAMohC,EAAIG,EAAGE,GAAI,GACf,GAAIF,IAAMzhC,KAAKgtH,aACb,MAAM,IAAI/oF,MAAM,mCAAmCxC,wBAAwBzhC,KAAKgtH,gBAClF,IAAW,IAAPrrF,GAAY3hC,KAAKwsH,QAAQtsH,SAAWyhC,EACtC,MAAM,IAAIsC,MAAM,kCAAkCtC,kCAAkC3hC,KAAKwsH,QAAQtsH,oBACnG4rH,GAAGxqF,EAAIthC,KAAKosH,aAAc,+BAC1B,IAAIxqF,EAAIoqF,GAAGhsH,KAAKosH,aAAcpsH,KAAKwsH,QAASlrF,GAC5C,OAAO7E,GAAG,KACR,IAAI2H,EAAIpkC,KAAKwsH,QAAQj4D,IAAKlwB,GAAM9P,GAAE8P,EAAGzC,IACrC,OAAOzH,GAAGiK,EAAG,KAGjB,QAAQ9C,EAAIG,GACV,GAAIA,IAAMzhC,KAAKgtH,aACb,MAAM,IAAI/oF,MAAM,mCAAmCxC,wBAAwBzhC,KAAKgtH,gBAClF,GAAoB,IAAhBhtH,KAAKk/D,OACP,MAAM,IAAIj7B,MAAM,qCAClB,IAAItC,EAAIqqF,GAAGhsH,KAAKosH,aAAcpsH,KAAKwsH,QAASlrF,GAAKM,EAAI5hC,KAAKwsH,QAAQ1uE,MAClE,OAAOlc,EAAE8+B,MAAO,EAAOorD,GAAGlqF,EAAEu9B,MAAO79B,EAAI,+BAAgC/M,GAAEqN,EAAGD,GAE9E,SAASL,GACP,GAAIA,EAAGo9B,QAAU1+D,KAAKgtH,aACpB,MAAM,IAAI/oF,MAAM,mCAAmC3C,EAAGo9B,4BAA4B1+D,KAAKgtH,gBACzF,GAAIlB,GAAGxqF,EAAG69B,MAAOn/D,KAAKosH,aAAc,+BAAgCpsH,KAAKitH,iBAAmBjtH,KAAKk/D,OAC/F,MAAM,IAAIj7B,MAAM,4CAClB1Z,GAAG+W,GAAKthC,KAAKwsH,QAAQ3gF,KAAKvK,GAE5B,OAAOA,GACL,GAAIA,EAAK,EACP,MAAM,IAAI2C,MAAM,0DAA0D3C,GAC5E,IAA6B,IAAzBthC,KAAKitH,gBAAyB3rF,EAAKthC,KAAKitH,eAC1C,MAAM,IAAIhpF,MAAM,+BAA+B3C,8BAA+BthC,KAAKitH,mBACrF,IAAIxrF,EAAI,IAAIsrF,GAAG,GAAI/sH,KAAKosH,aAAcpsH,KAAKgtH,aAAchtH,KAAKitH,gBAC9DxrF,EAAE+qF,QAAQtsH,OAASohC,EACnB,IAAK,IAAIK,EAAI,EAAGA,EAAIoC,KAAK3V,IAAIpuB,KAAKwsH,QAAQtsH,OAAQohC,KAAOK,EACvDF,EAAE+qF,QAAQ7qF,GAAK3hC,KAAKwsH,QAAQ7qF,GAC9B,OAAOF,EAET,QAAQH,EAAIG,EAAGE,GACb,GAAIA,IAAM3hC,KAAKgtH,aACb,MAAM,IAAI/oF,MAAM,mCAAmCtC,wBAAwB3hC,KAAKgtH,gBAClF,GAAI1rF,EAAK,GAAKA,EAAKthC,KAAKwsH,QAAQtsH,OAC9B,MAAM,IAAI+jC,MAAM,4BAA4B3C,oBAAqBthC,KAAKwsH,QAAQtsH,oBAChF,GAAwB,MAApBF,KAAKwsH,QAAQlrF,GACf,MAAM,IAAI2C,MAAM,oBAAoB3C,cACtCwqF,GAAG9rH,KAAKwsH,QAAQlrF,GAAI69B,MAAO19B,EAAG,+BAC9B,IAAIG,EAAIoqF,GAAGhsH,KAAKosH,aAAcpsH,KAAKwsH,QAAS/qF,GAC5C,OAAOlN,GAAEv0B,KAAKwsH,QAAQlrF,GAAKM,GAE7B,QAAQN,EAAIG,GACV,GAAIA,EAAEi9B,QAAU1+D,KAAKgtH,aACnB,MAAM,IAAI/oF,MAAM,mCAAmCxC,EAAEi9B,4BAA4B1+D,KAAKgtH,gBACxF,GAAI1rF,EAAK,IAA8B,IAAzBthC,KAAKitH,gBAAyB3rF,GAAMthC,KAAKitH,eACrD,MAAM,IAAIhpF,MAAM,yBAAyB3C,wBAAyBthC,KAAKitH,4BACzEnB,GAAG9rH,KAAKosH,aAAc3qF,EAAE09B,MAAO,+BAAgC50C,GAAGkX,GAAwB,MAApBzhC,KAAKwsH,QAAQlrF,KAAgBthC,KAAKwsH,QAAQlrF,GAAIo/B,MAAO,GAAQ1gE,KAAKwsH,QAAQlrF,GAAMG,EAExJ,OAAOH,EAAIG,EAAGE,GACZ,GAAIF,IAAMzhC,KAAKgtH,aACb,MAAM,IAAI/oF,MAAM,mCAAmCxC,wBAAwBzhC,KAAKgtH,gBAClFlB,GAAG9rH,KAAKosH,aAAczqF,EAAG,+BAAgCL,EAAKA,EAAGtJ,MAAM,EAAGh4B,KAAKk/D,QAC/E,IAAIt9B,EAAIoqF,GAAGhsH,KAAKosH,aAAcpsH,KAAKwsH,QAAS7qF,GAC5C,OAAqB,IAAdL,EAAGphC,OAAem7B,GAAG,GAAI,CAAC,GAAGza,OAAOghB,IAAMnF,GAAG,KAClD,IAAI2H,EAAI9C,EAAGizB,IAAKlwB,GAAM9P,GAAEv0B,KAAKwsH,QAAQnoF,GAAIzC,IACzC,OAAOzH,GAAGiK,EAAG,KAGjB,OAAO9C,EAAIG,GACT,GAAIH,GAAMA,IAAOthC,KAAKgtH,aACpB,MAAM,IAAI/oF,MAAM,uBAAuBjkC,KAAKgtH,2CAA2C1rF,KACzFwqF,GAAG9rH,KAAKosH,aAAc3qF,EAAG,+BACzB,IAAIE,EAAIqqF,GAAGhsH,KAAKosH,aAAcpsH,KAAKwsH,QAAS/qF,GAC5C,OAAuB,IAAhBzhC,KAAKk/D,OAAe7jC,GAAG,GAAI,CAAC,GAAGza,OAAO+gB,IAAMlF,GAAG,KACpD,IAAImF,EAAI5hC,KAAKwsH,QAAQj4D,IAAKnwB,GAAM7P,GAAE6P,EAAGzC,IACrC,OAAO9gB,GAAG+gB,EAAG,OAInB,SAASsrF,GAAG7rF,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEq9B,MACV,GAAIr9B,EAAE89B,MAAMj/D,OAAS,EACnB,MAAM,IAAI+jC,MAAM,oDAAoD5C,EAAE89B,OACxE,GAAI99B,EAAEq9B,QAAUj9B,EACd,MAAM,IAAIwC,MAAM,mCAAmC5C,EAAEq9B,4BAA4Bj9B,KACnF,IAAIG,EAAIP,EAAE89B,MAAMnnC,MAAM,GACtB8zF,GAAGlqF,EAAGN,EAAI,+BACV,IAAI8C,EAAIrG,GAAGsD,GACX,OAAO,IAAI0rF,GAAG3oF,EAAG9C,EAAIK,GAEvB,SAASwrF,GAAG9rF,EAAGC,EAAIG,EAAGE,GACpB,OAAO,IAAIorF,GAAG,GAAI1rF,EAAGC,EAAIK,GAE3B,SAASyrF,GAAG/rF,EAAGC,EAAIG,EAAGE,GACpB,GAAIL,EAAGphC,SAAWmhC,EAAE89B,MAAM,GACxB,MAAM,IAAIl7B,MAAM,sDAAsD3C,EAAGphC,cAAcmhC,EAAE89B,MAAM,MACjG,IAAIv9B,EAAImC,KAAK3W,OAAOkU,GACpB,GAAS,MAALK,IAAoB,IAAPA,GAAYC,GAAKD,EAChC,MAAM,IAAIsC,MAAM,mCAAmCrC,UAAUD,MAC/D,IAAIyC,EAAI,IAAI2oF,GAAG,GAAItrF,EAAGJ,EAAEq9B,MAAO/8B,GAAI0C,EAAItG,GAAGsD,EAAG,GAC7C,OAAOC,EAAGqY,QAAQ,CAACrV,EAAGC,KACpBH,EAAE4uC,QAAQ1uC,EAAGD,EAAEE,MACbH,EAEN,SAASipF,GAAGhsF,EAAGC,EAAIG,GACjB,IAAIE,EAAI,EAAGC,EAAIN,EAAGizB,IAAKruB,IAAOvE,GAAKuE,EAAGvE,IACtC,GAAIA,IAAMN,EAAE89B,MAAM,GAChB,MAAM,IAAIl7B,MAAM,qGAEVtC,6BAA6BN,EAAE89B,SACvC,IAAI/6B,EAAI/C,EAAE89B,MAAMnnC,MAAM,GAAIqM,EAAI4nF,GAAG7nF,EAAG3C,GAAI6C,EAAU,IAAN3C,EAAU,EAAIN,EAAE69B,KAAOv9B,EAAG4C,EAAI9H,GAAG,KAC3E,IAAIyJ,EAAI,GACR7E,EAAI9M,GAAE8M,EAAG,CAAC,EAAGM,EAAG2C,IAChB,IAAK,IAAIwD,EAAI,EAAGA,EAAIxG,EAAGphC,SAAU4nC,EAAG,CAClC,IAAIE,EAAI,CAAC,EAAS,IAANF,EAAU,EAAIlG,EAAEkG,EAAI,GAAI,GAAIM,EAAI,CAAC,EAAG9G,EAAGwG,GAAIxD,GACvD4B,EAAE4B,GAAKvT,GAAE0D,GAAGoJ,EAAG2G,EAAGI,GAAI/D,GAExB,OAAOhD,EAAErd,UAAWkiB,IAClBzB,EAAI,IAAIsoF,GAAG,GAAItrF,EAAGJ,EAAEq9B,MAAOp9B,EAAGphC,QAClC,IAAK,IAAIgmC,EAAI,EAAGA,EAAI3B,EAAErkC,OAAQgmC,IAC5BzB,EAAEuuC,QAAQ9sC,EAAG3B,EAAE2B,IACjB,OAAOzB,EAET,IAAI6oF,GAAKnhD,MAAO9qC,EAAGC,EAAIG,KACrB,OAAQJ,EAAEjR,IACR,IAAK,KACL,IAAK,cAAe,CAClB,IAAIuR,EAAIsjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAChH,aAAc2C,EAAEwY,QAAQ,GAAKnb,EAAE8rF,YAAY5rF,GAAG6rF,qBAAqBnpF,EAAG5C,EAAEgsF,eAAgBhsF,EAAEisF,eAAiBjsF,EAAE8rF,YAAY3rF,GAAG4rF,qBAAqBnpF,EAAG5C,EAAEgsF,eAAgBhsF,EAAEisF,eAE1K,IAAK,QACL,IAAK,iBAAkB,CACrB,IAAI/rF,EAAIsjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,QAAU5C,EAAE8rF,YAAY3rF,GAAG4rF,qBAAqBppF,EAAG3C,EAAEgsF,eAAgBhsF,EAAEisF,eAAgBppF,EAAIF,EAAEmwB,IAAKruB,GAAMA,EAAEm5B,IAAK96B,QAAUF,EAAE,GAAGuY,OAC7MvY,EAAEsV,QAASzT,KACRA,EAAEw6B,OAA6B,IAArBp8B,EAAE5jC,QAAQwlC,EAAEm5B,KAAcn5B,EAAEliB,YAEzC,IAAIygB,EAAIL,EACR,KAAOG,EAAE,IAAM,CACb,IAAI2B,EAAIzB,EACRA,QAAUhD,EAAE8rF,YAAY5rF,GAAG6rF,qBAAqB/oF,EAAGhD,EAAEgsF,eAAgBhsF,EAAEisF,eACvE,IAAI5lF,EAAIrD,EAAE8vB,IAAKvsB,GAAMA,EAAEq3B,IACvBn5B,EAAEyT,QAAS3R,KACRA,EAAE04B,OAA6B,IAArBp8B,EAAE5jC,QAAQsnC,EAAEq3B,MAAmC,IAArBv3B,EAAEpnC,QAAQsnC,EAAEq3B,KAAcr3B,EAAEhkB,YAEnE,IAAI+jB,QAAUtG,EAAE8rF,YAAY3rF,GAAG4rF,qBAAqB/oF,EAAGhD,EAAEgsF,eAAgBhsF,EAAEisF,eAC3EnpF,QAAUwD,EAAE,GAAG6U,OAAQ7U,EAAE4R,QAAS3R,KAC/BA,EAAE04B,OAA6B,IAArBp8B,EAAE5jC,QAAQsnC,EAAEq3B,MAAmC,IAArBv3B,EAAEpnC,QAAQsnC,EAAEq3B,KAAcr3B,EAAEhkB,YAGrE,OAAOygB,EAET,IAAK,WAAY,CACf,IAAI9C,EAAIsjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACykF,GAAGvkF,IAEb,IAAK,SAAU,CACb,IAAIA,EAAIsjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAClD,OAAOG,EAAE8+B,OAAS9+B,EAAIskF,GAAGtkF,WAAYD,EAAEib,QAAQ,GAAK,MAAC,EAAQhb,GAAK,CAACA,OAAG,GAExE,IAAK,QAAS,CACZ,IAAID,EAAIN,EAAEgkF,WAAWM,KAAM/jF,QAAuB,IAAjB0jF,GAAG1jF,EAAGN,EAAIG,IAC3C,GAAIE,EAAG,CACL,IAAIC,EAAI0jF,GAAG3jF,EAAGL,EAAIG,GAClB,MAAO,CAACykF,GAAGtkF,IAEb,OAEF,IAAK,QAAS,CACZ,IAAID,EAAIsjF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GACzD,OAAOA,EAAEksF,WAAWhsF,GAAI,CAACukF,GAAGtkF,IAE9B,IAAK,OAAQ,CACX,IAAID,EAAIsjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAC3B,OAAOA,EAAEmsF,YAAa,CAAC1H,GAAGvkF,IAE5B,IAAK,gBAAiB,CACpB,IAAIA,EAAIsjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAC3B,OAAOA,EAAEosF,gBAAiB,CAAC3H,GAAGvkF,IAEhC,IAAK,gBAAiB,CACpB,IAAIA,EAAIsjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,iBAAkB5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,yBAA0B5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIyE,EAAI,IAAIgmF,GAAGznF,EAAG7C,EAAGD,EAAGyC,EAAGG,EAAGF,EAAGC,GAC5P,OAAO7C,EAAEqsF,eAAe5nF,GAAI,CAACA,EAAEwmF,SAAUj3F,GAAG,IAE9C,IAAK,qBAAsB,CACzB,IAAIkM,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI4C,EAAI5C,EAAEssF,eAAepsF,EAAE09B,IAClH,OAAOh7B,EAAEgkC,MAAMzmC,EAAGwC,GAAI,CAACC,EAAEqoF,UAE3B,IAAK,oBAAqB,CACxB,IAAI/qF,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAC5D,MAAO,CAACA,EAAEssF,eAAepsF,EAAE09B,IAAI0B,KAAKn/B,IAEtC,IAAK,sBAAuB,CAC1B,IAAID,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GACxF,MAAO,CAACA,EAAEssF,eAAepsF,EAAE09B,IAAI33C,OAAOka,EAAGwC,IAE3C,IAAK,uBAAwB,CAC3B,IAAIzC,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI4C,EAAI5C,EAAEssF,eAAepsF,EAAE09B,IACpH,OAAOh7B,EAAE2pF,QAAQpsF,EAAGwC,GAAI,CAACC,EAAEqoF,UAE7B,IAAK,sBAAuB,CAC1B,IAAI/qF,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIH,EAAEssF,eAAepsF,EAAE09B,IAAKj7B,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GACxF,MAAO,CAACG,EAAEhhB,OAAOwjB,IAEnB,IAAK,qBAAsB,CACzB,IAAIzC,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI4C,EAAI5C,EAAEssF,eAAepsF,EAAE09B,IACpH,OAAOh7B,EAAE7K,MAAM4K,EAAGxC,GAAI,CAACyC,EAAEqoF,UAE3B,IAAK,oBAAqB,CACxB,IAAI/qF,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIH,EAAEssF,eAAepsF,EAAE09B,IAC7D,MAAO,CAAC5pC,GAAGmM,EAAEs9B,OAAQ,UAEvB,IAAK,qBAAsB,CACzB,IAAIv9B,EAAIsjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIG,EAAIH,EAAEssF,eAAepsF,EAAE09B,IAC7D,OAAOz9B,EAAEqsF,gBAAiB,CAACrsF,EAAE8qF,UAE/B,IAAK,oBAAqB,CACxB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI4C,EAAI5C,EAAEysF,cAAcvsF,EAAE09B,IAChH,OAAOh7B,EAAE2uC,QAAQpxC,EAAGwC,GAAI,CAACC,EAAEqoF,UAE7B,IAAK,oBAAqB,CACxB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAC7H,MAAO,CAACA,EAAEysF,cAAcvsF,EAAE09B,IAAI6T,QAAQtxC,EAAGwC,EAAGC,IAE9C,IAAK,sBACL,IAAK,oBAAqB,CACxB,IAAI1C,EAAIsjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAI6C,EAAI8oF,GAAGxrF,EAAGD,EAAGyC,EAAGC,GAC5I,OAAO5C,EAAE0sF,cAAc7pF,GAAI,CAACA,EAAEooF,UAEhC,IAAK,oBACL,IAAK,kBAAmB,CACtB,IAAsEtoF,EAAlEzC,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GACnC2C,EAAtB,sBAAT/C,EAAEjR,GAAiC,cAAoB,iBACvD,IAAIiU,EAAI4gF,GAAE7gF,EAAG/C,EAAGC,EAAIG,GAAI6C,EAAa,sBAATjD,EAAEjR,IAA8B,EAAIiU,EAAGE,EAAI4oF,GAAGxrF,EAAGC,EAAGyC,EAAGC,GACnF,OAAO7C,EAAE0sF,cAAc5pF,GAAI,CAACA,EAAEmoF,UAEhC,IAAK,mBAAoB,CACvB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAC/H,MAAO,CAACA,EAAEysF,cAAcvsF,EAAE09B,IAAI33C,OAAOka,EAAGyC,EAAGD,IAE7C,IAAK,kBAAmB,CACtB,IAAIzC,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,cAAe5jF,EAAGC,EAAIG,GACnI,MAAO,CAACA,EAAEysF,cAAcvsF,EAAE09B,IAAInlC,MAAM0H,EAAGwC,EAAGC,IAE5C,IAAK,uBAAwB,CAC3B,IAAI1C,EAAIsjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI4C,EAAI6oF,GAAGvrF,EAAGC,EAAGwC,GAC9G,OAAO3C,EAAE0sF,cAAc9pF,GAAI,CAACA,EAAEqoF,UAEhC,IAAK,mBACL,IAAK,qBAAsB,CACzB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIH,EAAEysF,cAAcvsF,EAAE09B,IAAKj7B,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GACvH,MAAO,CAACG,EAAEhhB,OAAOwjB,EAAGC,IAEtB,IAAK,qBAAsB,CACzB,IAAI1C,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI3C,EAAEysF,cAAcvsF,EAAE09B,IACtF,OAAOj7B,EAAEgqF,SAASxsF,GAAI,CAACwC,EAAEsoF,UAE3B,IAAK,oBAAqB,CACxB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GACnG,MAAO,CAACA,EAAEysF,cAAcvsF,EAAE09B,IAAIgvD,QAAQzsF,EAAGwC,IAE3C,IAAK,kBAAmB,CACtB,IAAIzC,EAAIsjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI4C,EAAIgpF,GAAG1rF,EAAGyC,EAAGxC,GACzG,OAAOH,EAAE0sF,cAAc9pF,GAAI,CAACA,EAAEqoF,UAEhC,IAAK,mBAAoB,CACvB,IAAI/qF,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIH,EAAEysF,cAAcvsF,EAAE09B,IAC3D,MAAO,CAAC5pC,GAAGmM,EAAEs9B,OAAQ,UAEvB,IAAK,mBAAoB,CACvB,IAAIv9B,EAAIsjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI5C,EAAEysF,cAAcvsF,EAAE09B,IAAIivD,OAAO1sF,GAC/F,OAAOH,EAAE0sF,cAAc9pF,GAAI,CAACA,EAAEqoF,UAEhC,QACE,MAAM5qH,UAAU,aAAau/B,EAAEjR,2BAGrC,SAASm+F,GAAGltF,EAAGC,EAAIG,GACjB,IAAKE,EAAGC,GAAKqjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAI2C,EAAU,YAANzC,EAAiB0C,GAAKD,EAAGE,EAAU,UAAN1C,EAAe2C,EAAU,mBAAN5C,EAAwB8C,EAAIwgF,GAAE,UAAW5jF,EAAGC,EAAIG,GAC1I,GAAI2C,EAAG,CACL,GAAIE,GAAW,IAANG,EACP,MAAM,IAAIR,MAAM,yGAClB,IAAKK,GAAKF,GAAW,IAANK,EACb,MAAM,IAAIR,MAAM,oFAEpB,GAAIM,EACF,MAAM,IAAIN,MAAM,wEAClB,IAAIiC,EAAI++E,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIqG,EAAIm+E,GAAG5kF,EAAGC,EAAIG,GAAIsG,EAAIk9E,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAAexmF,EAAIi9E,GAAE,YAAa5jF,EAAGC,EAAIG,IAAK2G,EAAG8D,GAAK+4E,GAAE,OAAQ5jF,EAAGC,EAAIG,GACvJ4C,IAAM6H,EAAI9D,EAAGA,OAAI,GACjB,IAAI+D,EAAI84E,GAAE,iBAAkB5jF,EAAGC,EAAIG,GACnC,MAAO,CAAEgtF,OAAQvoF,EAAG1V,IAAKsX,EAAGmxC,WAAYlxC,EAAGu3C,UAAWt3C,EAAG0mF,QAAStmF,EAAGumF,SAAUziF,EAAG0iF,eAAgBhtF,EAAGy5D,eAAgBlvD,GAEvH,IAAI0iF,GAAK,CAACxtF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,SAAU,CACb,IAAIwR,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAAelqF,EAAI2gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAC7H,MAAO,CAACE,EAAErgB,OAAO2jG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIG,EAAGwC,EAAGC,EAAGC,IAErE,IAAK,SAAU,CACb,IAAI1C,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6hF,GAAG5kF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAAelqF,EAAI2gF,GAAE,YAAa5jF,EAAGC,EAAIG,GACzH,MAAO,CAACE,EAAEngB,OAAOyjG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI,CAACG,EAAE,GAAIA,EAAE,IAAKwC,EAAGC,EAAG,CAACC,EAAE,GAAIA,EAAE,MAEzF,IAAK,eAAgB,CACnB,IAAMmqF,OAAQ7sF,EAAGpR,IAAK4T,EAAG60C,WAAY50C,EAAGi7C,UAAWh7C,EAAGoqF,QAASnqF,EAAGoqF,SAAUlqF,EAAGmqF,eAAgB1oF,EAAGm1D,eAAgBvzD,GAAMymF,GAAGltF,EAAGC,EAAIG,GAClI,MAAO,CAACE,EAAEna,MAAMhG,OAAO,CAAE0pB,EAAG+5E,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIiuB,OAAQu1D,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI0+B,QAAS,CAACv+B,EAAE,GAAIA,EAAE,IAAKpR,IAAK4T,EAAG60C,WAAY50C,EAAGi7C,UAAW,CAACh7C,EAAE,GAAIA,EAAE,IAAKsjD,KAAMrjD,EAAG42D,WAAYj1D,EAAGk1D,uBAAwB32D,EAAG42D,eAAgBvzD,KAEzN,IAAK,6BAA8B,CACjC,IAAM2mF,OAAQ7sF,EAAGpR,IAAK4T,EAAG60C,WAAY50C,EAAGi7C,UAAWh7C,EAAGoqF,QAASnqF,EAAGoqF,SAAUlqF,EAAGmqF,eAAgB1oF,EAAGm1D,eAAgBvzD,GAAMymF,GAAGltF,EAAGC,EAAIG,GAClI,MAAO,CAACE,EAAEna,MAAMpE,gBAAgB,CAAE8nB,EAAG+5E,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIiuB,OAAQu1D,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI0+B,QAAS,CAACv+B,EAAE,GAAIA,EAAE,IAAKpR,IAAK4T,EAAG60C,WAAY50C,EAAGi7C,UAAW,CAACh7C,EAAE,GAAIA,EAAE,IAAKsjD,KAAMrjD,EAAG42D,WAAYj1D,EAAGk1D,uBAAwB32D,EAAG42D,eAAgBvzD,KAElO,IAAK,sBACL,IAAK,kBAAmB,CACtB,IAAIlG,EAAIqjF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI4C,EAAI4hF,GAAG5kF,EAAGC,EAAIG,GAC9E,MAAO,CAACE,EAAEjgB,gBAAgBujG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIG,EAAG,CAACwC,EAAE,GAAIA,EAAE,IAAKC,IAEtF,IAAK,wBACL,IAAK,kBAAmB,CACtB,IAAIzC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6hF,GAAG5kF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAC9G,MAAO,CAAC7sF,EAAEve,gBAAgB6hG,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI,CAACG,EAAE,GAAIA,EAAE,IAAKwC,EAAGE,EAAG,CAACD,EAAE,GAAIA,EAAE,MAEtG,IAAK,SAAU,CACb,IAAIzC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAAelqF,EAAI2gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAC/H,MAAO,CAACE,EAAE/f,OAAOqjG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI,CAACG,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKwC,EAAGC,EAAG,CAACC,EAAE,GAAIA,EAAE,GAAIA,EAAE,MAErG,IAAK,UAAW,CACd,IAAI1C,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAE7jB,QAAQmnG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI,CAAC4C,EAAE,GAAIA,EAAE,IAAK,CAACzC,EAAE,GAAIA,EAAE,IAAKwC,IAElE,IAAK,UAAW,CACd,IAAIxC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAErU,QAAQ23F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI,CAAC4C,EAAE,GAAIA,EAAE,IAAK,CAACzC,EAAE,GAAIA,EAAE,IAAKwC,IAElE,IAAK,oBAAqB,CACxB,IAAIxC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,sBAAuB5jF,EAAGC,EAAIG,IAAMsjC,OAAQxgC,EAAG6lD,QAAS3lD,GAAM9C,EAAEjU,kBAAkBu3F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI,CAAC4C,EAAE,GAAIA,EAAE,IAAK,CAACzC,EAAE,GAAIA,EAAE,IAAKwC,EAAGE,GAChO,MAAO,CAACC,EAAGE,GAEb,IAAK,YAAa,CAChB,IAAI7C,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAE3jB,UAAUinG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI,CAAC4C,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK,CAACzC,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKwC,IAEhF,IAAK,YAAa,CAChB,IAAIxC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAEnU,UAAUy3F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI,CAAC4C,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK,CAACzC,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKwC,IAEhF,IAAK,aAAc,CACjB,IAAIxC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI6C,EAAI1C,EAAE,GAAI2C,EAAI3C,EAAE,GAAI6C,EAAIJ,EAAE,GAAI6B,EAAI7B,EAAE,GAC1H,MAAO,CAAC1C,EAAE/d,WAAWqhG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI,CAAC6C,EAAGC,GAAIH,EAAG,CAACK,EAAGyB,GAAI,SAEnF,QACE,MAAMpkC,UAAU,aAAau/B,EAAEjR,2BAGjC0+F,GAAK,CAACztF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,OAAQ,CACX,IAAIwR,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAC9E,MAAO,CAACE,EAAE/a,KAAKgb,EAAGyC,EAAGD,IAEvB,IAAK,WAAY,CACf,IAAIxC,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAC3E,MAAO,CAACE,EAAEzW,SAAS0W,EAAGwC,EAAGC,IAE3B,IAAK,cAAe,CAClB,IAAIzC,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAEvS,YAAYwS,EAAGwC,EAAGC,IAE9B,IAAK,SAAU,CACb,IAAIzC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,QAAS5jF,EAAGC,EAAIG,GACzI,MAAO,CAACE,EAAE7R,OAAO8R,EAAGwC,EAAGC,EAAGC,EAAGC,IAE/B,IAAK,OACH,MAAO,CAAC5C,EAAE3R,KAAKi1F,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KACzD,IAAK,WACH,MAAO,CAACE,EAAEzR,SAAS+0F,GAAE,IAAK5jF,EAAGC,EAAIG,KACnC,IAAK,uBACH,MAAO,CAACE,EAAEjP,qBAAqBuyF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KAC9F,IAAK,gBACH,MAAO,CAACE,EAAE/O,cAAcqyF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KAChH,IAAK,mBACH,MAAO,CAACE,EAAE7O,iBAAiBmyF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KAClH,IAAK,QAAS,CACZ,IAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAC5E,MAAO,CAACE,EAAE3O,MAAM4O,EAAGwC,EAAGC,EAAG4gF,GAAE,QAAS5jF,EAAGC,EAAIG,KAE7C,IAAK,kBAAmB,CACtB,IAAIG,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACvG,MAAO,CAACE,EAAEvE,gBAAgBwE,EAAGwC,EAAGC,EAAG4gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI6C,IAE3D,IAAK,QACH,MAAO,CAAC3C,EAAEvB,MAAM6kF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KAC1D,IAAK,YACH,MAAO,CAACE,EAAErB,UAAU2kF,GAAE,IAAK5jF,EAAGC,EAAIG,KACpC,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGrC,SAAS2+F,GAAG1tF,EAAGC,EAAIG,GACjB,IAAIE,EAAIsjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIG,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,iBAAkB5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAC5L,MAAO,CAAEq7D,MAAOn7D,EAAGg9D,OAAQ/8D,EAAG08D,cAAel6D,EAAGm6D,aAAcl6D,EAAGm6D,eAAgBl6D,EAAGm6D,aAAcl6D,GAEpG,IAAIyqF,GAAK7iD,MAAO9qC,EAAGC,EAAIG,EAAGE,EAAGC,EAAI+pF,MAC/B,OAAQtqF,EAAEjR,IACR,IAAK,sBAAuB,CAC1B,IAAM0sE,MAAO14D,EAAGu6D,OAAQt6D,EAAGi6D,cAAeh6D,EAAGi6D,aAAch6D,EAAGi6D,eAAgB/5D,EAAGg6D,aAAcv4D,GAAM6oF,GAAG1tF,EAAGC,EAAIG,GAAIqG,QAAUlG,EAAEpY,MAAM4+E,gCAAgChkE,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACpL,MAAO,CAAC4B,EAAE83D,gBAAiB93D,EAAE+3D,gBAE/B,IAAK,sBAAuB,CAC1B,IAAM/C,MAAO14D,EAAGu6D,OAAQt6D,EAAGi6D,cAAeh6D,EAAGi6D,aAAch6D,EAAGi6D,eAAgB/5D,GAAMsqF,GAAG1tF,EAAGC,EAAIG,GAAIyE,EAAI++E,GAAE,qBAAsB5jF,EAAGC,EAAIG,GAAIqG,QAAUlG,EAAEpY,MAAM8+E,6BAA6BlkE,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACvM,MAAO,CAAC4B,EAAE83D,gBAAiB93D,EAAEg4D,cAE/B,IAAK,sBACL,IAAK,sBAAuB,CAC1B,IAAMhD,MAAO14D,EAAGu6D,OAAQt6D,EAAGi6D,cAAeh6D,EAAGi6D,aAAch6D,EAAGi6D,eAAgB/5D,GAAMsqF,GAAG1tF,EAAGC,EAAIG,GAC9F,MAAO,OAAOG,EAAEpY,MAAM0+E,uBAAuB9jE,EAAGC,EAAGC,EAAGC,EAAGE,IAE3D,IAAK,QAAS,CACZ,IAAIL,EAAIxC,EAAE1hB,KAAK+kG,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI,QAAS4C,EAAI,OAAOzC,EAAE1B,WAAWkE,IAC1E,OAAOA,EAAEpgB,UAAWqgB,EAEtB,IAAK,WACH,OAAOzC,EAAE1K,eAAe+tF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,IAC1D,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjC6+F,GAAK,CAAC5tF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,aAAc,CACjB,IAAIwR,EAAIqjF,GAAE,iBAAkB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAC9D,MAAO,CAACE,EAAE7U,WAAW8U,EAAGwC,IAE1B,IAAK,SAAU,CACb,IAAIxC,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI6C,EAAI3C,EAAE7E,KAAK8E,EAAGwC,EAAGC,GAC5F,MAAO,CAACC,EAAExlC,OAAQwlC,EAAE4hD,SAEtB,IAAK,aAAc,CACjB,IAAItkD,EAAIqjF,GAAE,iBAAkB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAC9D,MAAO,CAACE,EAAEzD,WAAW0D,EAAGwC,IAE1B,IAAK,SAAU,CACb,IAAIxC,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAIzC,EAAErE,OAAOsE,GACvC,MAAO,CAACwC,EAAEtlC,OAAQslC,EAAE8hD,SAEtB,IAAK,WAAY,CACf,IAAItkD,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI1C,EAAErE,OAAOsE,EAAGwC,GACnE,MAAO,CAACC,EAAEvlC,OAAQulC,EAAE6hD,SAEtB,QACE,MAAMpkF,UAAU,aAAau/B,EAAEjR,2BAGjC8+F,GAAK,CAAC7tF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,QACH,OAAOkR,EAAGD,EAAE9/B,MACd,IAAK,yBACH,IAAIqgC,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAC5B,MAAO,CAAC6jF,GAAGjkF,EAAE9/B,KAAM+/B,EAAIG,IAAMG,GAC/B,IAAK,cACH,MAAO,CAAC0jF,GAAGjkF,EAAE9/B,KAAM+/B,EAAIG,IACzB,IAAK,WACL,IAAK,eACL,IAAK,0BAA2B,CAC9B,IAAIyE,EAAI++E,GAAE,IAAK5jF,EAAGC,EAAIG,GACtB,MAAO,CAACykF,GAAGhgF,IAEb,IAAK,YACH,OAAO++E,GAAE,IAAK5jF,EAAGC,EAAIG,GAAG8yB,IAAKruB,GAAMggF,GAAGhgF,IACxC,IAAK,WACH,IAAI9B,EAAI6gF,GAAE,IAAK5jF,EAAGC,EAAIG,GACtB,MAAO,CAACykF,GAAG9hF,IACb,IAAK,QACH,MAAO,CAACzC,EAAErG,SAAS2pF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAG09B,MAAO,UAC7C,IAAK,SACH,OAAO8lD,GAAE,IAAK5jF,EAAGC,EAAIG,GAAG8yB,IAAKruB,GAAMvE,EAAErG,SAAS4K,EAAEi5B,QAClD,IAAK,OACH,MAAO,CAACx9B,EAAEnM,OAAOyvF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAGy9B,KAAM,UAC1C,IAAK,OACH,MAAO,CAACv9B,EAAEnM,OAAOyvF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAGw9B,KAAM,UAC1C,IAAK,OACH,MAAO,CAACt9B,EAAEnM,OAAO,IACnB,IAAK,QACH,IAAI6O,EAAI4gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,YAAa5jF,EAAGC,EAAIG,GACzG+Q,QAAQmB,KAAK,kGAAmGnB,QAAQ9mB,IAAI6Y,GAC5H,IAAK,IAAI2B,EAAI,EAAGA,EAAI5B,EAAEpkC,OAAQgmC,IAC5BsM,QAAQ9mB,IAAI+oC,MAAMvzB,UAAUlJ,MAAM/1B,KAAKqiC,EAAE4B,GAAGq4B,YAAYvmC,MAAM,EAAGyM,IACnE,MAAO,CAACJ,GACV,QACE,MAAMviC,UAAU,aAAau/B,EAAEjR,2BAGjC++F,GAAK,MACP,SACE,OAAOnvH,KAAKovH,OAAO/vD,GAErB,YAAY/9B,EAAIG,GACdzhC,KAAKqvH,SAAW/tF,EAAIthC,KAAKsvH,WAAa7tF,EAAGzhC,KAAKovH,OAAS35F,GAAG,GAAIz1B,KAAKurH,UAA4B,IAAIrzD,IAAO3tC,GAAGvqB,KAAKovH,QAEpH,gBACEpvH,KAAKurH,UAAU5xE,QAASrY,GAAOA,EAAGtd,WAAYhkB,KAAKurH,UAAUgE,QAASvvH,KAAKovH,OAAOprG,UAEpF,OACE,OAAOhkB,KAAKurH,UAAUrsD,KAExB,aACE,OAAOzpC,GAAGz1B,KAAKk/D,OAAQ,SAEzB,aAAa59B,EAAIG,GACfzhC,KAAKwvH,uBAAuBluF,EAAIG,GAChC,IAAIE,QAAUL,EAAGsb,OACjB,OAAO58C,KAAKurH,UAAU5xE,QAAS/X,GAAMA,EAAE5d,WAAYhkB,KAAKurH,UAAUgE,QAAS9yF,GAAG,KAC5E,IAAImF,EAAI7D,GAAG0D,GAAI2C,EAAIzC,EAAEzhC,OAAQmkC,EAAIzC,EAAE1hC,OACnCm+B,GAAE26B,OAAO50B,IAAMC,EAAG,IAAM,kDAAkDD,8BAA8BC,eACxG,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAGE,IAAK,CAC1B,IAAIC,EAAI5C,EAAE2C,GAAIG,EAAI7C,EAAE0C,GACpB/Z,GAAGka,GAAIzkC,KAAKurH,UAAUlpH,IAAIkiC,EAAGE,GAE/B,OAAOzkC,KAAKovH,SAGhB,WAAW9tF,EAAIG,GACbzhC,KAAKwvH,uBAAuBluF,EAAIG,GAChC,IAAIE,QAAUL,EAAGsb,OACjB,OAAOngB,GAAG,KACR,IAAImF,EAAI,GACR,IAAK,IAAIwC,EAAI,EAAGA,EAAIzC,EAAEzhC,OAAQkkC,IAAK,CACjC,IAAIC,EAAI1C,EAAEyC,GAAIE,EAAItkC,KAAKyvH,gBAAgBprF,EAAG5C,GAC1CG,EAAEiK,KAAKvH,GAET,OAAOnK,GAAGyH,KAGd,gBAAgBN,EAAIG,GAClB,IAAIE,EAAI3hC,KAAKurH,UAAU/pH,IAAI8/B,GAC3B,OAAY,MAALK,EAAYA,EAAIF,EAEzB,uBAAuBH,EAAIG,GACzB,GAAIH,EAAGo9B,QAAU1+D,KAAKqvH,SACpB,MAAM,IAAIprF,MAAM,oBAAoBjkC,KAAKqvH,qBAAqB/tF,EAAGo9B,SACnE,GAAIj9B,EAAEi9B,QAAU1+D,KAAKsvH,WACnB,MAAM,IAAIrrF,MAAM,sBAAsBjkC,KAAKsvH,uBAAuB7tF,EAAEi9B,WAGtEgxD,GAAKvjD,MAAO9qC,EAAGC,EAAIG,EAAGE,KACxB,OAAQN,EAAEjR,IACR,IAAK,YACL,IAAK,cAAe,CAClB,IAAIwR,EAAID,EAAE8jF,yBAAyBpkF,EAAE9/B,MACrC,GAAS,MAALqgC,EACF,MAAO,CAACA,GACV,CACE,IAAIwC,EAAI6gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI6C,EAAI,IAAI6qF,GAAG/qF,EAAGC,GAC9E,OAAO1C,EAAEguF,aAAatuF,EAAE9/B,KAAM+iC,GAAI,CAACA,EAAE8qF,SAGzC,IAAK,kBACL,IAAK,oBACL,IAAK,oBACL,IAAK,sBAAuB,CAC1B,IAAIxtF,EAAIqjF,GAAE,cAAe5jF,EAAGC,EAAIG,EAAGE,GAAIyC,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,SAAU5jF,EAAGC,EAAIG,GACvF,MAAO,OAAOE,EAAEiuF,iBAAiBhuF,EAAEy9B,IAAIwwD,OAAOzrF,EAAGC,IAEnD,IAAK,kBACL,IAAK,oBAAqB,CACxB,IAAIzC,EAAIqjF,GAAE,cAAe5jF,EAAGC,EAAIG,EAAGE,GAAIyC,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAC7F,MAAO,OAAOE,EAAEiuF,iBAAiBhuF,EAAEy9B,IAAIsmD,KAAKvhF,EAAGC,IAEjD,IAAK,kBACL,IAAK,oBAAqB,CACxB,IAAIzC,EAAIqjF,GAAE,cAAe5jF,EAAGC,EAAIG,EAAGE,GACnC,MAAO,CAACA,EAAEiuF,iBAAiBhuF,EAAEy9B,IAAIywD,cAEnC,QACE,MAAMhuH,UAAU,aAAau/B,EAAEjR,2BAGjC2/F,GAAK,CAAC1uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,iBAAkB,CACrB,IAAIwR,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,mBAAoB5jF,EAAGC,EAAIG,GAC1H,MAAO,CAACE,EAAEnY,MAAMq+E,eAAejmE,EAAG,CAACwC,EAAE,GAAIA,EAAE,IAAKC,EAAGC,IAErD,IAAK,wBAAyB,CAC5B,IAAI1C,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,mBAAoB5jF,EAAGC,EAAIG,GAC1H,MAAO,CAACE,EAAEnY,MAAMo+E,sBAAsBhmE,EAAG,CAACwC,EAAE,GAAIA,EAAE,IAAKC,EAAGC,IAE5D,IAAK,gBAAiB,CACpB,IAAI1C,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,qBAAsB5jF,EAAGC,EAAIG,GAC9K,MAAO,CAACE,EAAEnY,MAAMw+E,cAAcpmE,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,IAE/C,IAAK,6BAA8B,CACjC,IAAI7C,EAAIqjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,WAAY5jF,EAAGC,EAAIG,GACvL,MAAO,CAACE,EAAEnY,MAAMg/E,UAAU5mE,EAAGwC,EAAGG,EAAEqzB,cAAenzB,EAAEmzB,cAAetzB,EAAGD,IAEvE,QACE,MAAMviC,UAAU,aAAau/B,EAAEjR,2BAGjC4/F,GAAK,CAAC3uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,QACH,MAAO,CAACuR,EAAE/b,MAAMq/F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAClD,IAAK,WACH,MAAO,CAACE,EAAE/R,SAASq1F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACrD,IAAK,UACH,MAAO,CAACE,EAAE3Y,QAAQi8F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACpD,IAAK,eACH,MAAO,CAACE,EAAEzY,aAAa+7F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACzD,IAAK,OACH,MAAO,CAACE,EAAE/W,KAAKq6F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACjD,IAAK,YACH,MAAO,CAACE,EAAE7W,UAAUm6F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACtD,IAAK,aACH,MAAO,CAACE,EAAEvV,WAAW64F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACvD,IAAK,aACH,MAAO,CAACE,EAAErV,WAAW24F,GAAE,IAAK5jF,EAAGC,EAAIG,KACrC,IAAK,YACH,MAAO,CAACE,EAAEnV,UAAUy4F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACtD,IAAK,SACL,IAAK,WACH,MAAO,CAACE,EAAE3B,MAAMilF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC5E,IAAK,aACH,MAAO,CAACE,EAAEviB,WAAW6lG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,KACvD,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjC6/F,GAAK,CAAC5uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,cACL,IAAK,gBACL,IAAK,SACH,MAAO,CAACuR,EAAE3U,OAAOi4F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,KACzG,IAAK,SACH,MAAO,CAACE,EAAE/c,OAAOqgG,GAAE,WAAY5jF,EAAGC,EAAIG,MAAOwjF,GAAE,UAAW5jF,EAAGC,EAAIG,KACnE,IAAK,YACH,MAAO,CAACE,EAAEzE,UAAU+nF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KACzD,IAAK,eACH,IAAKG,EAAGwC,GAAK6gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAI4C,EAAU,YAANzC,EAAiB0C,EAAU,UAANF,EAAeG,EAAI0gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,iBAAkB5jF,EAAGC,EAAIG,GACzI,GAAI4C,EAAG,CACL,GAAIC,GAAW,IAANC,EACP,MAAM,IAAIN,MAAM,sFAClB,IAAKK,GAAW,IAANC,EACR,MAAM,IAAIN,MAAM,iEAEpB,IAAKiC,EAAG4B,GAAKm9E,GAAE,OAAQ5jF,EAAGC,EAAIG,GAC9B,MAAO,CAACE,EAAEna,MAAMwF,OAAO,CAAEqX,EAAG4gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIgL,EAAGw4E,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIy6C,WAAY+oC,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI06C,WAAY8oC,GAAE,aAAc5jF,EAAGC,EAAIG,GAAImmD,KAAM1hD,EAAGi1D,WAAY/2D,EAAGg3D,uBAAwBtzD,EAAGuzD,eAAgB52D,KACtN,IAAK,iBACH,MAAO,CAAC9C,EAAE3W,OAAOy9E,SAASwc,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,KAC5F,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjC8/F,GAAK,CAAC7uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,gBACH,MAAO,CAACuR,EAAE3b,cAAci/F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,KACtF,IAAK,iBACL,IAAK,mBACH,MAAO,CAACE,EAAEnjB,UAAUymG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,KACvJ,IAAK,mBACH,MAAO,CAACE,EAAEnjB,UAAUymG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,KACvJ,IAAK,MACH,MAAO,CAACE,EAAEnW,2BAA2By5F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KAC5I,IAAK,UACH,MAAO,CAACE,EAAE/I,QAAQqsF,GAAE,IAAK5jF,EAAGC,EAAIG,KAClC,IAAK,aACH,MAAO,CAACE,EAAE3V,WAAWi5F,GAAE,IAAK5jF,EAAGC,EAAIG,KACrC,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjC+/F,GAAK,CAAC9uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,eAAgB,CACnB,IAAM49D,mBAAoBpsD,EAAGqsD,kBAAmB7pD,GAAMzC,EAAE7P,aAAamzF,GAAE,qBAAsB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,oBAAqB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,mBAAoB5jF,EAAGC,EAAIG,IAC/L,OAAOG,EAAEhhB,OAAOwjB,GAElB,IAAK,cAAe,CAClB,IAAMmqD,eAAgB3sD,EAAG4sD,cAAepqD,GAAMzC,EAAE3P,YAAYizF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,IAC7H,MAAO,CAACG,EAAGwC,GAEb,IAAK,uBACH,MAAO,CAACzC,EAAEzP,qBAAqB+yF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,sBAAuB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,oBAAqB5jF,EAAGC,EAAIG,KAC7K,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjCggG,GAAK,CAAC/uF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,MAAO,CACV,IAAIkU,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAEvU,IAAI63F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAErC,IAAK,OAAQ,CACX,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAE7T,KAAKm3F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAEtC,IAAK,MAAO,CACV,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAEvT,IAAI62F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAErC,IAAK,MAAO,CACV,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAE/G,IAAIqqF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAErC,IAAK,MAAO,CACV,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAE/kB,IAAIqoG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAErC,IAAK,MAAO,CACV,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAE7kB,IAAImoG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAErC,IAAK,SAAU,CACb,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACE,EAAE3kB,OAAOioG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,IAErC,IAAK,SAAU,CACb,IAAIA,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACE,EAAEzkB,OAAO+nG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,IAErC,IAAK,OAAQ,CACX,IAAIA,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,WAAY5jF,EAAGC,EAAIG,GACtD,MAAO,CAACE,EAAEjQ,KAAKuzF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,IAEtC,IAAK,UAAW,CACd,IAAID,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,UAAW5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAEnf,QAAQyiG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,EAAGE,IAE5C,IAAK,SAAU,CACb,IAAIH,EAAI2gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,UAAW5jF,EAAGC,EAAIG,GACnF,MAAO,CAACE,EAAEjf,OAAOuiG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAGC,EAAGE,IAE3C,IAAK,WACH,IAAI7C,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAC3E,MAAO,CAACE,EAAEziB,SAAS0iB,EAAGwC,EAAGC,IAC3B,IAAK,gBAAiB,CACpB,IAAIC,EAAI2gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIyE,EAAI++E,GAAE,eAAgB5jF,EAAGC,EAAIG,GAC5G,MAAO,CAACE,EAAE7e,cAAcwhB,EAAGC,EAAGE,EAAGyB,IAEnC,QACE,MAAMpkC,UAAU,aAAau/B,EAAEjR,2BAGjCigG,GAAK,CAAChvF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,WACL,IAAK,SAAU,CACb,IAAIwR,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAC3E,OAAO4C,EAAIA,EAAErM,MAAM,EAAG4J,GAAI,CAACD,EAAE/gB,OAAOyjB,EAAGD,IAEzC,IAAK,SAAU,CACb,IAAIxC,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAClD,MAAO,CAACE,EAAEja,OAAOka,EAAGD,EAAEzhB,KAAKkkB,EAAG,SAAU,IAE1C,IAAK,WAAY,CACf,IAAIxC,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,UAAW5jF,EAAGC,EAAIG,GACzG,MAAO,CAACE,EAAEja,OAAO2c,EAAG1C,EAAEzhB,KAAKokB,EAAG,SAAU1C,EAAGwC,IAE7C,IAAK,UAAW,CACd,IAAIxC,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI,GACjC,IAAK,IAAIE,EAAI,EAAGA,EAAI1C,EAAE1hC,OAAQokC,IAC5B1C,EAAE0C,IAAMF,EAAEyH,KAAKvH,GACjB,IAAID,EAAI4gF,GAAE,IAAK5jF,EAAGC,EAAIG,GACtB,MAAO,CAACE,EAAEnN,QAAQ6P,EAAGD,IAEvB,IAAK,YAAa,CAChB,IAAIxC,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,IAAK5jF,EAAGC,EAAIG,GAC/C,MAAO,CAACE,EAAEnN,QAAQ4P,EAAGxC,IAEvB,IAAK,QAAS,CACZ,IAAIA,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACnD,MAAO,CAACE,EAAE3J,MAAMitF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,EAAGwC,IAEvC,IAAK,eAAgB,CACnB,IAAIxC,EAAIqjF,GAAE,QAAS5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,MAAO5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI8C,EAAI0gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIgD,EAAIwgF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIyE,EAAI++E,GAAE,cAAe5jF,EAAGC,EAAIG,GAAIqG,EAAIm9E,GAAE,iBAAkB5jF,EAAGC,EAAIG,GAAIsG,EAAIk9E,GAAE,IAAK5jF,EAAGC,EAAIG,GAClQ,MAAO,CAACE,EAAErH,aAAayN,EAAGnG,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,IAEjD,IAAK,OACH,OAAOrL,GAAG,KACR,IAAImF,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI4C,EAAID,EAAE,GAAG+6B,MAAO76B,EAAI3C,EAAE3H,QAAQoK,EAAE,IAAI+6B,MAAO56B,EAAIH,EAAEmwB,IAAK9vB,IAC7G,IAAIyB,EAAI7H,GAAEy6B,YAAYr0B,EAAE06B,MAAO96B,GAC/B,IAAK6B,IAAM7H,GAAEy6B,YAAYn3B,EAAE3H,QAAQyK,GAAG06B,MAAO76B,GAC3C,MAAM,IAAIL,MAAM,0CAClB,OAAOiC,EAAIzB,EAAI9C,EAAErN,QAAQmQ,EAAGJ,KAE9B,MAAO,CAAC1C,EAAEzH,MAAMqK,EAAG3C,MAEvB,IAAK,SAAU,CACb,IAAIA,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GACpD,OAAOE,EAAE7D,QAAQsG,EAAGxC,GAEtB,IAAK,OAAQ,CACX,IAAIA,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACE,EAAEjF,KAAKuoF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,IAEnC,IAAK,QACL,IAAK,SAAU,CACb,IAAIA,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,kBAAmB5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,IAAK5jF,EAAGC,EAAIG,GACnF,OAAOE,EAAEnI,MAAM6K,EAAGD,EAAGxC,GAEvB,IAAK,YAAa,CAChB,IAAIA,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,QAAS5jF,EAAGC,EAAIG,GACjF,MAAO,CAACE,EAAEjM,UAAUkM,EAAGwC,EAAGC,IAE5B,IAAK,WAAY,CACf,IAAIzC,EAAIqjF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,UAAW5jF,EAAGC,EAAIG,GAClD,MAAO,CAACE,EAAE/Z,SAASga,EAAGwC,IAExB,IAAK,gBAAiB,CACpB,IAAIxC,EAAIqjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAI6C,EAAI2gF,GAAE,eAAgB5jF,EAAGC,EAAIG,GACpI,MAAO,CAACE,EAAEvI,cAAcwI,EAAGyC,EAAGD,EAAGC,EAAEq6B,QAAUp6B,EAAEo6B,MAAQp6B,EAAI3C,EAAEzhB,KAAKokB,EAAGD,EAAEq6B,SAEzE,IAAK,sBAAuB,CAC1B,IAAI98B,EAAIqjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAI4C,EAAI4gF,GAAE,SAAU5jF,EAAGC,EAAIG,GAClF,MAAO,CAACE,EAAEzF,oBAAoBmI,EAAGzC,EAAGwC,IAEtC,QACE,MAAMtiC,UAAU,aAAau/B,EAAEjR,2BAGjCkgG,GAAK,CAACjvF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,sBAAuB,CAC1B,IAAMw0E,cAAehjE,EAAGijE,aAAczgE,EAAG0gE,kBAAmBzgE,EAAG0gE,gBAAiBzgE,GAAM3C,EAAEzI,OAAOmwE,oBAAoB4b,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,SAAU5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAIwjF,GAAE,eAAgB5jF,EAAGC,EAAIG,IACtN,MAAO,CAACG,EAAGwC,EAAGC,EAAGC,GAEnB,IAAK,gBAAiB,CACpB,IAAMsgE,cAAehjE,EAAGm4D,YAAa31D,GAAMzC,EAAEzI,OAAOowE,cAAc2b,GAAE,eAAgB5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,IAC/I,MAAO,CAACG,EAAGwC,GAEb,IAAK,oBACH,MAAO,CAACzC,EAAEzI,OAAOqwE,kBAAkB0b,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,KACzG,IAAK,mBACH,MAAO,CAACE,EAAEzI,OAAOswE,iBAAiByb,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,KACxG,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjCmgG,GAAK,CAAClvF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,MACH,MAAO,CAACuR,EAAEjb,IAAIu+F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC9B,IAAK,OACH,MAAO,CAACE,EAAEvY,KAAK67F,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,OACH,MAAO,CAACE,EAAEzM,KAAK+vF,GAAE,IAAK5jF,EAAGC,EAAIG,KAC/B,IAAK,QACH,MAAO,CAACE,EAAE7X,MAAMm7F,GAAE,IAAK5jF,EAAGC,EAAIG,KAChC,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjCogG,GAAK,CAACnvF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,qBACH,MAAO,CAACuR,EAAEnH,OAAOovE,mBAAmBqb,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,KACtI,IAAK,eAAgB,CACnB,IAAM0kE,OAAQvkE,EAAGwkE,aAAchiE,GAAMzC,EAAEnH,OAAOivE,aAAawb,GAAE,OAAQ5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAIwjF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIwjF,GAAE,cAAe5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAIwjF,GAAE,WAAY5jF,EAAGC,EAAIG,GAAIwjF,GAAE,yBAA0B5jF,EAAGC,EAAIG,IAC9Q,MAAO,CAACG,EAAGwC,GAEb,IAAK,cAAe,CAClB,IAAM8hD,QAAStkD,EAAG9iC,OAAQslC,EAAG+6B,MAAO96B,GAAM1C,EAAEnH,OAAOkvE,YAAYub,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAIwjF,GAAE,YAAa5jF,EAAGC,EAAIG,IACrI,MAAO,CAACG,EAAGwC,EAAGC,GAEhB,IAAK,yBACH,MAAO,CAAC1C,EAAEnH,OAAOmvE,uBAAuBsb,GAAE,QAAS5jF,EAAGC,EAAIG,GAAIwjF,GAAE,aAAc5jF,EAAGC,EAAIG,KACvF,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGjCqgG,GAAK,CAACpvF,EAAGC,EAAIG,EAAGE,EAAIgqF,MACtB,OAAQtqF,EAAEjR,IACR,IAAK,OACH,MAAO,CAACuR,EAAEzhB,KAAK+kG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KACrD,IAAK,aAAc,CACjB,IAAIG,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACE,EAAEvb,WAAW6+F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,IAEzC,IAAK,UAAW,CACd,IAAIA,EAAIqjF,GAAE,OAAQ5jF,EAAGC,EAAIG,GACzB,MAAO,CAACE,EAAE3H,QAAQirF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,IAEtC,IAAK,UACH,MAAO,CAACD,EAAErN,QAAQ2wF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KACxD,IAAK,cACH,MAAO,CAACE,EAAEnc,YAAYy/F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KAC5D,IAAK,YACH,MAAO,CAACE,EAAEnT,UAAUy2F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,OAAQ5jF,EAAGC,EAAIG,KACjF,IAAK,QACL,IAAK,MACH,MAAO,CAACE,EAAEnR,IAAIy0F,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,UAAW5jF,EAAGC,EAAIG,GAAIwjF,GAAE,gBAAiB5jF,EAAGC,EAAIG,KACpF,IAAK,iBAAkB,CACrB,IAAIG,EAAIqjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,WAAY5jF,EAAGC,EAAIG,GAC5D,MAAO,CAACE,EAAE3I,eAAeisF,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,EAAGwC,IAEhD,IAAK,iBAAkB,CACrB,IAAIxC,EAAIqjF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,QAAS5jF,EAAGC,EAAIG,GACzD,MAAO,CAACE,EAAE3iB,eAAeimG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,EAAGwC,IAEhD,IAAK,eAAgB,CACnB,IAAIxC,EAAIqjF,GAAE,YAAa5jF,EAAGC,EAAIG,GAAI2C,EAAI6gF,GAAE,aAAc5jF,EAAGC,EAAIG,GAAG+sF,cAChE,MAAO,CAAC7sF,EAAEze,aAAa+hG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIG,EAAGwC,IAE9C,IAAK,cACH,MAAO,CAACzC,EAAEjiB,YAAYulG,GAAE,IAAK5jF,EAAGC,EAAIG,GAAIwjF,GAAE,QAAS5jF,EAAGC,EAAIG,KAC5D,IAAK,gBACH,MAAO,CAACE,EAAEniB,cAAcylG,GAAE,KAAM5jF,EAAGC,EAAIG,GAAIwjF,GAAE,KAAM5jF,EAAGC,EAAIG,KAC5D,QACE,MAAM3/B,UAAU,aAAau/B,EAAEjR,2BAGrC,SAASsgG,GAAGrvF,EAAGC,EAAIG,EAAGE,EAAGC,EAAInF,IAC3B,IAAI2H,EAAI,EAAEC,EAAGC,EAAGC,KACd,OAAQF,EAAEygF,UACR,IAAK,aACH,OAAOljF,EAAE,IAAMgqF,GAAGvnF,EAAGC,EAAGC,IAC1B,IAAK,aACH,OAAO3C,EAAE,IAAMiqF,GAAGxnF,EAAGC,EAAGC,IAC1B,IAAK,UACH,OAAO+oF,GAAGjpF,EAAGC,EAAGC,GAClB,IAAK,cACH,OAAO3C,EAAE,IAAMitF,GAAGxqF,EAAGC,EAAGC,IAC1B,IAAK,WACH,OAAO3C,EAAE,IAAMktF,GAAGzqF,EAAGC,EAAGC,IAC1B,IAAK,UACH,OAAOyqF,GAAG3qF,EAAGC,EAAGC,GAClB,IAAK,aACH,OAAO3C,EAAE,IAAMqtF,GAAG5qF,EAAGC,EAAGC,IAC1B,IAAK,QACH,OAAO3C,EAAE,IAAMmuF,GAAG1rF,EAAGC,EAAGC,IAC1B,IAAK,QACH,OAAO3C,EAAE,IAAMstF,GAAG7qF,EAAGC,EAAGC,IAC1B,IAAK,UACH,OAAO3C,EAAE,IAAMouF,GAAG3rF,EAAGC,EAAGC,IAC1B,IAAK,WACH,OAAO3C,EAAE,IAAMquF,GAAG5rF,EAAGC,EAAGC,IAC1B,IAAK,gBACH,OAAO3C,EAAE,IAAMsuF,GAAG7rF,EAAGC,EAAGC,IAC1B,IAAK,SACH,OAAO3C,EAAE,IAAMuuF,GAAG9rF,EAAGC,EAAGC,IAC1B,IAAK,YACH,OAAO3C,EAAE,IAAMwuF,GAAG/rF,EAAGC,EAAGC,IAC1B,IAAK,aACH,OAAO3C,EAAE,IAAMyuF,GAAGhsF,EAAGC,EAAGC,IAC1B,IAAK,SACH,OAAO3C,EAAE,IAAM0uF,GAAGjsF,EAAGC,EAAGC,IAC1B,IAAK,WACH,OAAO3C,EAAE,IAAM2uF,GAAGlsF,EAAGC,EAAGC,IAC1B,IAAK,SACH,OAAO3C,EAAE,IAAM4uF,GAAGnsF,EAAGC,EAAGC,IAC1B,IAAK,iBACH,OAAO3C,EAAE,IAAM6uF,GAAGpsF,EAAGC,EAAGC,IAC1B,IAAK,aACH,OAAOmrF,GAAGrrF,EAAGC,EAAGC,EAAG5C,GACrB,IAAK,SACH,IAAI8C,EAAIugF,GAAG3gF,EAAEjU,IACb,GAAIqU,GAAKA,EAAEsgF,eACT,OAAOtgF,EAAEsgF,eAAe,IAAIuG,GAAGjnF,EAAGC,EAAGC,IACvC,MAAMziC,UAAU,aAAauiC,EAAEjU,yBACjC,QACE,MAAMtuB,UAAU,eAAeuiC,EAAEjU,2IAhD/B,CAkDLiR,EAAGC,EAAIG,GACV,OAAOpD,GAAE88B,UAAU/2B,GAAKA,EAAEwU,KAAMvU,GAAM,GAAGzjB,OAAOyjB,IAAM,GAAGzjB,OAAOwjB,GAElE,IAAIusF,GAAK,MACP,YAAYrvF,EAAK,GAAIG,EAAI,GAAIE,EAAI,GAAIC,EAAI,GAAIwC,GAC3CpkC,KAAK4wH,UAAYtvF,EAAIthC,KAAKytH,eAAiBhsF,EAAGzhC,KAAK0tH,cAAgB/rF,EAAG3hC,KAAKutH,YAAc3rF,EAAG5hC,KAAKgmH,mBAAqB5hF,EAAGpkC,KAAK6wH,YAAc,CAAExxD,GAAI,EAAGyxD,UAAW,GAAIC,YAAa,GAAK/wH,KAAKgxH,SAAW,CAAChxH,KAAK6wH,aAAc7wH,KAAKixH,OAAS,EAAGjxH,KAAKkxH,4BAElP,SAAS5vF,EAAIG,GACX,MAAO,CAAE49B,GAAI/9B,EAAIwvF,UAAWrvF,EAAGsvF,YAAa,GAE9C,mBAAmBzvF,GACjBthC,KAAKgxH,WAAa1vF,IAAOthC,KAAKgxH,SAAW1vF,EAAIthC,KAAKkxH,6BAEpD,qBACE,OAAOlxH,KAAKgxH,SAEd,uBACE,OAAOhxH,KAAKmxH,mBAAmB,GAEjC,wBACE,OAAOnxH,KAAKmxH,mBAEd,4BACE,IAAI7vF,EAAK,GACT,IAAK,IAAIG,EAAI,EAAGA,EAAIzhC,KAAKgxH,SAAS9wH,OAAS,EAAGuhC,IAAK,CACjD,IAAIE,EAAI3hC,KAAKgxH,SAASh5F,MAAM,EAAGh4B,KAAKgxH,SAAS9wH,OAASuhC,GACtDH,EAAGuK,KAAK7rC,KAAKoxH,qBAAqBzvF,IAEpCL,EAAGuK,KAAK,IAAK7rC,KAAKmxH,mBAAqB7vF,EAEzC,qBAAqBA,GACnB,OAAOA,EAAKA,EAAGizB,IAAK9yB,GAAe,IAATA,EAAE49B,IAA8B,IAAlB59B,EAAEsvF,YAAoB,GAAK,GAAGtvF,EAAEqvF,aAAarvF,EAAEsvF,eAAer5D,KAAK,KAAO,GAEpH,WAAWp2B,GACTthC,KAAKgxH,WAAahxH,KAAKixH,SAAUjxH,KAAKgxH,SAAWhxH,KAAKgxH,SAASh5F,QAASh4B,KAAKgxH,SAASnlF,KAAK7rC,KAAKqxH,SAASrxH,KAAKixH,OAAQ3vF,IAAMthC,KAAKmxH,mBAAmB15E,QAAQz3C,KAAKoxH,qBAAqBpxH,KAAKgxH,YAE7L,YACE,KAAIhxH,KAAKgxH,UAAYhxH,KAAKgxH,SAAS9wH,OAAS,GAG1C,MAAM,IAAI+jC,MAAM,2CAFhBjkC,KAAKgxH,SAAWhxH,KAAKgxH,SAASh5F,QAASh4B,KAAKgxH,SAASt2E,QAAQ,GAAI16C,KAAK0lH,kBAAkBvuE,QAI5F,gBACE,KAAIn3C,KAAKgxH,UAAYhxH,KAAKgxH,SAAS9wH,OAAS,GAK1C,MAAM,IAAI+jC,MAAM,yDAL6B,CAC7CjkC,KAAKgxH,SAAWhxH,KAAKgxH,SAASh5F,QAASh4B,KAAKixH,SAC5C,IAAI3vF,EAAK1gC,OAAOmwC,OAAO,GAAI/wC,KAAKgxH,SAAShxH,KAAKgxH,SAAS9wH,OAAS,IAChEohC,EAAGyvF,aAAe,EAAGzvF,EAAG+9B,GAAKr/D,KAAKixH,OAAQjxH,KAAKgxH,SAASt2E,QAAQ,EAAG,EAAGpZ,GAAKthC,KAAKmxH,mBAAmBz2E,OAAO,EAAG,EAAG16C,KAAKoxH,qBAAqBpxH,KAAKgxH,YAInJ,UAAU1vF,GACR,OAAOthC,KAAK4wH,UAAUtvF,GAExB,eAAeA,GACbthC,KAAKytH,eAAensF,EAAG+9B,IAAM/9B,EAE/B,eAAeA,GACb,OAAOthC,KAAKytH,eAAensF,GAE7B,cAAcA,GACZthC,KAAK0tH,cAAcpsF,EAAG+9B,IAAM/9B,EAE9B,cAAcA,GACZ,OAAOthC,KAAK0tH,cAAcpsF,GAE5B,QAAQA,GACN,IAAK,IAAIG,KAAKzhC,KAAKytH,eACjBztH,KAAKytH,eAAehsF,GAAGwsF,cAAc3sF,GACvC,IAAK,IAAIG,KAAKzhC,KAAK0tH,cACjB1tH,KAAK0tH,cAAcjsF,GAAGwsF,cAAc3sF,KAG1C,SAASgwF,GAAGjwF,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAoB,IAAI6hC,IAAOr/B,EAAI,GAAIC,EAAI,KAAMC,EAAI,KAAMC,EAAoB,IAAIk/B,IAAOh/B,EAAI,IAAIg/B,IAAI7iE,OAAOo9D,KAAK38B,GAAGkzB,IAAKxsB,GAAMy9E,GAAGz9E,GAAG,KAC1IpG,EAAIA,GAAK,GACT,IAAIuE,EAAI,IAAIu9B,IAAI9hC,EAAE4yB,IAAKxsB,GAAMy9E,GAAGz9E,EAAExmC,MAAM,KAAMumC,EAAI,IAAIxG,GACtD,KAAOwG,EAAE5nC,OAAS,GAAK,CACrB,IAAI6nC,EAAID,EAAEgW,MACV,IAAKyzE,GAAGxpF,IAAMypF,GAAGzpF,IAAM0pF,GAAG1pF,KAAY,MAAL1D,IAAcA,EAAI0D,EAAGzD,EAAID,EAAE4kF,SAAS10D,IAAKvsB,GAAMA,EAAEzmC,MAAMmuD,OAAQ1nB,GAAMpG,EAAE//B,IAAImmC,KAAMpG,EAAEx/B,IAAI2lC,EAAExmC,MAAoB,MAAbkgC,EAAEsG,EAAExmC,QAAkBkjC,EAAE5iC,IAAIkmC,EAAExmC,QAAU2kC,EAAErkC,IAAIkmC,EAAExmC,MAAO,CACtL,GAAwB,IAApBwmC,EAAE62B,OAAO1+D,OAAc,CACzBkkC,EAAEyH,KAAK9D,EAAExmC,MACT,SAEFwmC,EAAE62B,OAAOjlB,QAAS3R,IAChBzD,EAAE1iC,IAAImmC,EAAEzmC,QAAUgjC,EAAEniC,IAAI4lC,EAAEzmC,MAAOumC,EAAE+D,KAAK7D,OAI9C,MAAO,CAAE42B,OAAQv9B,EAAGs9B,QAASr9B,EAAIowF,UAAW9vF,EAAG+vF,cAAevtF,EAAGwtF,YAAavtF,EAAGwtF,WAAYvtF,GAE/F,SAASwtF,GAAGzwF,EAAGC,GACb,IAAMowF,UAAWjwF,EAAGm9B,OAAQj9B,GAAML,EAAIM,EAAIhhC,OAAOo9D,KAAKr8B,GAAG4yB,IAAKpoB,GAAMq5E,GAAGr5E,GAAG,IAAIooB,IAAKpoB,GAAM9K,EAAEioF,MAAMn9E,IAAK/H,EAAI/C,EAAEooF,WAAa,GAAIplF,EAAK8H,GAAM1K,EAAE5/B,IAAgB,iBAALsqC,EAAgBA,EAAIA,EAAE5qC,MAC3K,SAAS+iC,EAAE6H,GACT,MAAO,IAAI,IAAI+rB,IAAI/rB,EAAEooB,IAAKrpB,GAAM,CAACA,EAAE3pC,KAAM2pC,KAAKpsC,UAEhD,IAAIylC,EAAID,EAAE,IAAI1C,KAAMP,EAAEytC,WAAY1qC,IAAIsrB,OAAOrrB,GAAII,EAAIH,EAAE,IAAIC,KAAM3jC,OAAO9B,OAAOuiC,EAAEioF,SAAS55D,OAAOrrB,GAAI6B,EAAI,IAAIgyB,IAAIzzB,EAAE8vB,IAAKpoB,GAAM,CAACA,EAAE5qC,KAAM4qC,KAAMrE,EAAI,GACjJ,IAAK,IAAIqE,KAAK1H,EAAG,CACfqD,EAAEqE,EAAE5qC,MAAQumC,EAAEqE,EAAE5qC,OAAS,EACzB,IAAK,IAAI2pC,KAAKiB,EAAE88E,SACd5kF,EAAE6G,KAAOpD,EAAEoD,EAAE3pC,MAAQiyD,OAAOu+D,mBAAoBjqF,EAAEoD,EAAE3pC,OAASumC,EAAEoD,EAAE3pC,OAAS,GAAK,EAEnF,IAAIwmC,EAAInnC,OAAO63D,QAAQ3wB,GAAG4nB,OAAO,EAAE,CAAEvjB,KAAa,IAANA,GAASooB,IAAI,EAAEpoB,KAAOA,GAAInE,EAAI,IAAID,GAC9E,KAAOA,EAAE7nC,OAAS,GAAK,CACrB,IAAIisC,EAAIpE,EAAE+V,MAAO5S,EAAIhF,EAAE1kC,IAAI2qC,GAC3B,IAAK,IAAIM,KAAKvB,EAAE+9E,SAASv5D,OAAOrrB,GACd,MAAdyD,EAAE2E,EAAElrC,QAAgBymC,EAAE6D,KAAKY,EAAElrC,MAAOwmC,EAAE8D,KAAKY,EAAElrC,OAEnD,IAAI6mC,EAAIJ,EAAEusB,IAAKpoB,GAAMjG,EAAE1kC,IAAI2qC,IAAKD,EAAI8lF,GAAG5pF,EAAG7D,GAC1C,OAAO0tF,GAAG/lF,EAAG3H,GAAI2H,EAEnB,SAAS8lF,GAAG3wF,EAAGC,GACb,IAAIG,EAAI,IAAIy2B,IAAI72B,EAAEkzB,IAAKlwB,GAAM,CAACA,EAAE9iC,KAAM8iC,KAAM1C,EAAIL,EAAGizB,IAAKlwB,GAAMA,EAAE9iC,MAAOqgC,EAAI,IAAI6hC,IAAI9hC,GACnF,KAAOA,EAAEzhC,OAAS,GAAK,CACrB,IAAImkC,EAAI1C,EAAEmc,MAAOxZ,EAAI7C,EAAEjgC,IAAI6iC,GAC3B,IAAK,IAAIE,KAAKD,EAAE2kF,UACbxnF,EAAE5/B,IAAI0iC,EAAEhjC,OAASqgC,EAAE//B,IAAI0iC,EAAEhjC,QAAUqgC,EAAEx/B,IAAImiC,EAAEhjC,MAAOogC,EAAEkK,KAAKtH,EAAEhjC,OAEhE,OAAO8/B,EAAEquB,OAAQrrB,GAAMzC,EAAE//B,IAAIwiC,EAAE9iC,OAEjC,IAAI2wH,GAAK,cAAcjuF,MACrB,YAAY3C,GACVmgC,MAAM,6BAA6BngC,KAGvC,SAAS2wF,GAAG5wF,EAAGC,GACb,IAAIG,EAAI,IAAIy2B,IAAI72B,EAAEkzB,IAAI,CAACjwB,EAAGC,IAAM,CAACD,EAAE/iC,KAAMgjC,KAAM5C,EAAI,IAAI8hC,IAAIniC,EAAGizB,IAAKjwB,GAAMA,EAAE/iC,OAAQqgC,EAAK0C,GAAM3C,EAAE9/B,IAAgB,iBAALyiC,EAAgBA,EAAIA,EAAE/iC,MAAO6iC,EAAI,IAAIq/B,IAAIpiC,EAAEkzB,IAAKjwB,GAAMA,EAAE/iC,OAAQ8iC,EAAKC,GAAMF,EAAEviC,IAAgB,iBAALyiC,EAAgBA,EAAIA,EAAE/iC,MACzN,IAAK,IAAI+iC,KAAKjD,EAAG,CACf,IAAK,IAAIkD,KAAKD,EAAE2kF,SAASv5D,OAAOrrB,GAAI,CAClC,IAAK5C,EAAE5/B,IAAI0iC,EAAEhjC,MACX,MAAM,IAAI2wH,GAAG,SAAS3tF,EAAEhjC,gBAAgB+iC,EAAE/iC,wBAC5C,GAAIkgC,EAAEjgC,IAAI8iC,EAAE/iC,MAAQkgC,EAAEjgC,IAAI+iC,EAAEhjC,MAC1B,MAAM,IAAI2wH,GAAG,QAAQ5tF,EAAE/iC,4CAA4CgjC,EAAEhjC,SAEzE,IAAKqgC,EAAE0C,GACL,IAAK,IAAIC,KAAKD,EAAEs6B,OAAQ,CACtB,IAAKn9B,EAAE5/B,IAAI0iC,EAAEhjC,MACX,MAAM,IAAI2wH,GAAG,SAAS3tF,EAAEhjC,gBAAgB+iC,EAAE/iC,wBAC5C,GAAIkgC,EAAEjgC,IAAI+iC,EAAEhjC,MAAQkgC,EAAEjgC,IAAI8iC,EAAE/iC,MAC1B,MAAM,IAAI2wH,GAAG,QAAQ5tF,EAAE/iC,6CAA6CgjC,EAAEhjC,WAIhF,SAAS4wH,GAAG9wF,GACV,IAAIC,EAAK,IAAI42B,IAAI72B,EAAEkzB,IAAI,CAACjwB,EAAGC,IAAM,CAACD,EAAE/iC,KAAMgjC,KAAM9C,EAAI+xB,OAAOqjD,iBAAkBl1E,EAAIN,EAAEkzB,IAAI,CAACjwB,EAAGC,IAAMgtF,GAAGjtF,GAAK7C,EAAI8C,GAAI3C,EAAK0C,IACpH,IAAIC,EAAI5C,EAAEL,EAAG9/B,IAAI8iC,EAAE/iC,OACnB,OAAY,MAALgjC,GAAa,EAAIA,GACvBH,EAAI/C,EAAEkzB,IAAI,CAACjwB,EAAGC,IAAMD,EAAE2kF,SAAS10D,IAAI3yB,GAAG9hC,OAAO,CAAC2kC,EAAGyB,IAAMnC,KAAK3W,IAAIqX,EAAGyB,GAAIvE,EAAE4C,KAAMF,EAAoB,IAAI6zB,IAC1G,IAAK,IAAI5zB,EAAI,EAAGA,EAAIjD,EAAEnhC,SAAUokC,EAAG,CACjC,IAAIC,EAAIH,EAAEE,GACV,GAAIC,IAAM9C,EACR,SACF,IAAIgD,EAAIpD,EAAEiD,GAAI4B,EAAI7E,EAAEkD,GACpBF,EAAExiC,IAAIqkC,EAAE3kC,OAAS8iC,EAAEhiC,IAAI6jC,EAAE3kC,KAAM,IAAK8iC,EAAE7iC,IAAI0kC,EAAE3kC,MAAMsqC,KAAKpH,GAEzD,OAAOJ,EAET,IAAI+tF,GAAqB,IAAI3uD,IAAI,CAAC,SAAU,QAAS,QAAS,OAAQ,gBAAiB,cAAe,iBAAkB,KAAM,UAC1H4uD,GAAqB,IAAI5uD,IAAI,CAAC,sBAAuB,sBAAuB,sBAAuB,UACnG6uD,GAAqB,IAAI7uD,IAAI,CAAC,YAAa,cAAe,oBAAqB,sBAAuB,kBAAmB,oBAAqB,kBAAmB,sBACrK,SAAS8tD,GAAGlwF,GACV,OAAO+wF,GAAGvwH,IAAIw/B,EAAEjR,IAElB,SAASohG,GAAGnwF,GACV,OAAOgxF,GAAGxwH,IAAIw/B,EAAEjR,IAElB,SAASqhG,GAAGpwF,GACV,OAAOixF,GAAGzwH,IAAIw/B,EAAEjR,IAElB,IAAImiG,GAAK,MACP,gBACE,OAAOvyH,KAAKwyH,OAASxyH,KAAKwyH,OAAOC,UAAYzyH,KAAK0yH,WAEpD,0BACE,OAAO1yH,KAAKwyH,OAASxyH,KAAKwyH,OAAOG,oBAAsB3yH,KAAK4yH,qBAE9D,gBACE,OAAO5yH,KAAKwyH,OAASxyH,KAAKwyH,OAAO5B,UAAY5wH,KAAK6yH,WAEpD,cAAcvxF,GACZ,IAAIG,EAAI7gC,OAAOo9D,KAAK18B,GAAIizB,IAAK5yB,GAAML,EAAGK,GAAG4yB,IAAK3yB,GAAMA,EAAEy9B,KACtDr/D,KAAK0yH,WAAa,GAAG9xG,UAAU6gB,GAAIzhC,KAAK6yH,WAAavxF,EAEvD,oBAAoBA,GAClBthC,KAAK8yH,iBAAmBxxF,EAE1B,aACE,OAAOthC,KAAK+yH,QAAQx+D,IAAKjzB,IAAO,CAAG//B,KAAM+/B,EAAG//B,KAAM49D,MAAO79B,EAAGikF,WAAWpmD,MAAQ79B,EAAGikF,WAAWpmD,MAAMl+D,WAAQ,EAAQy9D,MAAOp9B,EAAGikF,WAAW7mD,MAAQp9B,EAAGikF,WAAW7mD,MAAMz9D,WAAQ,KAE9K,cACE,OAAOjB,KAAKgzH,SAASz+D,IAAKjzB,IAAO,CAAG//B,KAAM+/B,EAAG//B,KAAM49D,MAAO79B,EAAGikF,WAAWpmD,MAAQ79B,EAAGikF,WAAWpmD,MAAMl+D,WAAQ,EAAQy9D,MAAOp9B,EAAGikF,WAAW7mD,MAAQp9B,EAAGikF,WAAW7mD,MAAMz9D,WAAQ,KAE/K,iBACE,OAAOjB,KAAK+yH,QAAQx+D,IAAKjzB,GAAOA,EAAG4nF,cAAgB5nF,EAAG//B,MAExD,kBACE,OAAOvB,KAAKgzH,SAASz+D,IAAKjzB,IACxB,IAAIG,EAAIH,EAAG4nF,cAAgB5nF,EAAG//B,KAC9B,OAAO+/B,EAAGspF,cAAgB,GAAGnpF,KAAKH,EAAGspF,gBAAkBnpF,IAG3D,gBACE,OAAO7gC,OAAOo9D,KAAKh+D,KAAKizH,YAAYnzH,OAAO,CAACwhC,EAAIG,KAAOH,EAAGG,GAAKzhC,KAAKizH,WAAWxxF,GAAGqsC,UAAWxsC,GAAK,IAEpG,YAAYA,EAAIG,GACdzhC,KAAKkzH,MAAQ5xF,EAAIthC,KAAKwyH,OAAS/wF,EAAGzhC,KAAKmzH,YAA8B,IAAIj7D,IAAOl4D,KAAKgmH,mBAAqC,IAAI9tD,IAAOl4D,KAAK6yH,WAAa,GAAI7yH,KAAKozH,UAAY,IAAKpzH,KAAKizH,WAAa,GAAIjzH,KAAK4yH,qBAAuB,GAAI5yH,KAAKqzH,yBAA0B,EAAOrzH,KAAKgzH,SAAW1xF,EAAGq9B,QAAS3+D,KAAK+yH,QAAUzxF,EAAGs9B,OAAQ5+D,KAAKszH,WAAahyF,EAAGmoF,UAAWzpH,KAAKuzH,WAAajyF,EAAGwsC,UAAW9tE,KAAKizH,WAAa3xF,EAAGkoF,UAA2B,MAAhBloF,EAAGkoF,WAAqB5oH,OAAOo9D,KAAK18B,EAAGkoF,WAAW7vE,QAAShY,IAC5d3hC,KAAK4yH,qBAAqBjxF,GAAK,IAAI4wF,GAAGjxF,EAAGkoF,UAAU7nF,GAAI3hC,QAG3D,kBAAkBshC,EAAIG,GACpB,IAAIE,EAAIL,EAAGizB,IAAKnwB,GAAMA,EAAE7iC,MAAMozD,OAAQ/yB,EAAIH,EAAE8yB,IAAKnwB,GAAMA,EAAE7iC,MAAMozD,OAC/D,OAAOhzB,EAAE+1B,KAAK13D,KAAKozH,WAAa,KAAOxxF,EAAE81B,KAAK13D,KAAKozH,WAErD,QAAQ9xF,EAAIG,GACV,IAAIE,EAAI2vF,GAAGhwF,EAAIG,EAAGzhC,KAAK4wH,UAAW5wH,KAAKszH,aAAe3B,cAAe/vF,EAAGgwF,YAAaxtF,EAAGytF,WAAYxtF,GAAM1C,EAC1G,GAAS,MAALyC,EACF,MAAM,IAAIH,MAAM,qCAAqCG,EAAE7iC,oCAAoC6iC,EAAEhU,8GAA8GiU,MAC7M,GAAIzC,EAAE1hC,OAAS,EAAG,CAChB,IAAIukC,EAAIhD,EAAE8yB,IAAKzsB,GAAMA,EAAEvmC,MAAO2kC,EAAItlC,OAAOo9D,KAAK18B,GAC9C,MAAM,IAAI2C,MAAM,+BAA+BQ,gCAAgCyB,sCAAsCtE,MAEvH,IAAI0C,EAAIwtF,GAAG9xH,KAAKkzH,MAAOvxF,GAAI4C,EAAI4tF,GAAG7tF,GAClC,MAAO,CAAEkvF,aAAclvF,EAAGmvF,iBAAkBlvF,GAE9C,mBAAmBjD,GACjB,GAAU,MAANA,EACF,OAAO,KACT,IAAIG,EAAIH,EAAG9gB,QACX,OAAO+J,GAAGkX,GAAIA,EAEhB,gBAAgBH,GACd,OAAOA,EAAKA,EAAGizB,IAAK5yB,GAAM3hC,KAAK0zH,mBAAmB/xF,IAAM,KAE1D,eAAeL,GACb,OAAO1gC,OAAO+yH,YAAY/yH,OAAO63D,QAAQn3B,GAAIizB,IAAI,EAAE9yB,EAAGE,KAAO,CAACF,EAAGzhC,KAAK4zH,gBAAgBjyF,MAExF,QAAQL,EAAIG,GACVzhC,KAAK6zH,6BAA8BvyF,EAAKthC,KAAK8zH,UAAUxyF,GACvD,IAAIK,EAAI/gC,OAAOo9D,KAAK18B,GAAIqzB,OACxB30D,KAAK+zH,YAAYzyF,GAAKthC,KAAKg0H,uBAAuB1yF,GAAKG,EAAIzhC,KAAKi0H,WAAWxyF,GAAIzhC,KAAKk0H,aAAazyF,GACjG,IAAIG,EAAID,EAAE4yB,IAAKxsB,GAAM/nC,KAAKkzH,MAAM5J,MAAM9D,GAAGz9E,GAAG,KAAM3D,EAAI3C,EAAE8yB,IAAKxsB,GAAMy9E,GAAGz9E,GAAG,IAAK1D,EAAI,IAAIo/B,IAAIr/B,GAAIE,EAAIF,EAAEmwB,IAAKxsB,GAAM/nC,KAAKkzH,MAAM5J,MAAMvhF,IACnH,IAAbzD,EAAEpkC,SAAiBokC,EAAItkC,KAAKgzH,UAC5B,IAAIzuF,EAAIvkC,KAAKm0H,kBAAkBvyF,EAAG0C,GAAIG,EAAIzkC,KAAKmzH,YAAY3xH,IAAI+iC,GAC1D,MAALE,IAAcA,EAAIzkC,KAAKo0H,QAAQ9yF,EAAIgD,GAAItkC,KAAKmzH,YAAY9wH,IAAIkiC,EAAGE,IAC/D,IACEzkC,KAAKqzH,wBAA0B1tG,KAAIuxC,QAAQ,6BAC3C,MAAOnvB,GACP/nC,KAAKqzH,yBAA0B,EAAO7gF,QAAQmB,KAAK5L,EAAEqS,SAEvD,IAAIlU,EAAI,GAAI4B,EAAI,GAChB,OAAOrL,GAAG,KACR,IAAIsL,EAAI,IAAI4oF,GAAG3wH,KAAK4wH,UAAW1qF,EAAG4B,EAAG9nC,KAAK2yH,oBAAqB3yH,KAAKgmH,oBAAqBh+E,EAAIpnC,OAAOmwC,OAAO,GAAI/wC,KAAK4wH,WACpH5wH,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAmBr0H,KAAKs0H,eAAet0H,KAAK4wH,YAAahwH,OAAOo9D,KAAK18B,GAAIqY,QAASzO,IACtH,IAAKuB,EAAGM,GAAKy4E,GAAGt6E,EAAGnD,GAAIiF,EAAI,GAC3BA,EAAED,GAAKzL,EAAG4J,GAAIlD,EAAEyE,GAAKO,EAAGhtC,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAiB5nF,GAAKzsC,KAAK4zH,gBAAgB5mF,MAE3G,IAAI5E,EAAIpoC,KAAKu0H,mBAAmBvsF,IAAMwrF,aAActnF,EAAGunF,iBAAkBtnF,GAAM1H,EAC/E,IAAK,IAAIyG,KAAKgB,EAAG,CACf,GAAIlE,EAAEkD,EAAE3pC,MACN,SACF,IAAIkrC,EAAIikF,GAAGxlF,EAAGlD,EAAGD,EAAG/nC,KAAK8yH,kBACzB,GAAIz0F,GAAE88B,UAAU1uB,GACd,MAAM,IAAIxI,MAAM,4BAA4BiH,EAAE9a,oEAChD4X,EAAEkD,EAAE3pC,MAAQkrC,EAAGzsC,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAiBnpF,EAAE3pC,MAAQvB,KAAK4zH,gBAAgBnnF,IAAKzsC,KAAKw0H,4CAA4CtpF,EAAGlD,EAAGD,EAAGK,EAAG/D,EAAG8H,EAAE3qC,IAAI0pC,EAAE3pC,OAEpL,OAAsB,MAAfvB,KAAKwyH,QAAkBzqF,EAAE/jB,QAAQokB,GAAI3G,EAAE8yB,IAAKrpB,GAAMo6E,GAAGp6E,EAAGlD,EAAGD,MAGtE,mBAAmBzG,GACjB,IAAIG,EAAI,GAAG7gB,OAAO0tB,MAAM,GAAI1tC,OAAOo9D,KAAK18B,GAAIizB,IAAK5yB,GAAML,EAAGK,IAAI4yB,IAAK5yB,GAAMA,EAAE4yB,IAAK3yB,GAAMA,EAAEy9B,MACxF,OAAO,IAAIoE,IAAIhiC,GAEjB,uBAAuBH,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GACxC,IAAMitF,GAAG9vF,KAAM4C,EAAExiC,IAAIy/B,GAAM,CACzB,IAAK,IAAIiD,KAAK5C,EAAEL,GACT,MAALiD,IAAcD,EAAEC,EAAE86B,KAAO/6B,EAAEC,EAAE86B,KAAO,GAAK59B,EAAEwnF,SAAS/oH,QACtD,IAAK,IAAIqkC,KAAK9C,EAAEm9B,OAAQ,CACtB,GAAI2yD,GAAGhtF,GACL,SACF,IAAIE,EAAIohF,GAAGthF,EAAEhjC,KAAMogC,EAAGC,GACtB,GAAS,MAAL6C,EACF,IAAK,IAAIyB,KAAKzB,EAAG,CACf,IAAKyB,GAAKA,EAAEw6B,MAAQt8B,EAAEviC,IAAIqkC,EAAEm5B,IAC1B,SACF,IAAIv3B,EAAIxD,EAAE4B,EAAEm5B,IACN,IAANv3B,GAAW5B,EAAEliB,iBAAkBsgB,EAAE4B,EAAEm5B,KAAY,MAALv3B,GAAaxD,EAAE4B,EAAEm5B,SAKrE,4CAA4C/9B,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1D,SAASC,EAAEC,GACT,OAAOgtF,GAAGhtF,IAAMH,EAAEviC,IAAI0iC,EAAEhjC,MAE1B,IAAMgwH,GAAGjwF,IAAY,MAAL+C,EACd,IAAK,IAAIE,KAAKF,EAAG,CACf,GAAIC,EAAEC,GACJ,SACF,IAAIE,EAAIohF,GAAGthF,EAAEhjC,KAAMkgC,EAAGE,GACtB,IAAK,IAAIuE,KAAKzB,GACXyB,GAAKA,EAAEw6B,MAAQ9+B,EAAE//B,IAAIqkC,EAAEm5B,KAAOn5B,EAAEliB,WAGzC,mBAAmBsd,EAAIG,GACrB,OAAOzhC,KAAKy0H,cAAcnzF,EAAIG,GAEhC,6BACEzhC,KAAKq0H,mBAAqBzzH,OAAO9B,OAAOkB,KAAKq0H,kBAAkB16E,QAASrY,IACtE,IAAK,IAAIG,KAAKH,EACZG,IAAMA,EAAEy/B,YAAcz/B,EAAEzd,YACxBhkB,KAAKq0H,iBAAmB,MAE9B,yBACE,OAAOr0H,KAAKq0H,iBAEd,oBAAoB/yF,EAAIG,EAAGE,GAAI,EAAOC,EAAI,GAAIwC,EAAI,IAChDpkC,KAAK6zH,6BAA8BlyF,IAAML,EAAKthC,KAAK8zH,UAAUxyF,GAAKthC,KAAK+zH,YAAYzyF,GAAKthC,KAAKg0H,uBAAuB1yF,GAAKG,EAAIzhC,KAAKi0H,WAAWxyF,GAAIzhC,KAAKk0H,aAAazyF,IACnK,IACEzhC,KAAKqzH,wBAA0B1tG,KAAIuxC,QAAQ,6BAC3C,MAAOnvB,GACP/nC,KAAKqzH,yBAA0B,EAAO7gF,QAAQmB,KAAK5L,EAAEqS,SAEvD,IAAI/V,EAAI,IAAIssF,GAAG3wH,KAAK4wH,UAAWhvF,EAAGwC,EAAGpkC,KAAK2yH,oBAAqB3yH,KAAKgmH,oBACpEhmH,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAmBr0H,KAAKs0H,eAAet0H,KAAK4wH,YAClF,IAAItsF,QAAUtkC,KAAK00H,uBAAuBpzF,EAAI+C,EAAG5C,EAAGE,GAAI4C,EAAI9C,EAAE8yB,IAAKxsB,GAAMu9E,GAAGv9E,EAAGzD,EAAGD,IAAKI,EAAIF,EAAEgwB,IAAKxsB,GAAMA,EAAEs3B,IAAKn5B,EAAItlC,OAAOo9D,KAAK18B,GAAIizB,IAAKxsB,GAAMzG,EAAGyG,GAAGs3B,IAAKv3B,EAAoB,IAAI27B,IAAI,IAAIh/B,KAAMyB,KAAMlmC,KAAKyyH,YAC1M,OAAO7xH,OAAO9B,OAAOwlC,GAAGqV,QAAS5R,IAC/BA,EAAE4R,QAAS3R,IACTA,IAAMA,EAAEk5B,aAAep5B,EAAEjmC,IAAImmC,EAAEq3B,KAAOr3B,EAAEhkB,cAEzB,MAAfhkB,KAAKwyH,QAAkBnuF,EAAErgB,QAAQ8jB,GAAIvD,EAE3C,2BAA2BjD,EAAIG,EAAGE,GAChC,IAAIC,EAAIN,EAAGxhC,OAAO,CAACskC,EAAGC,EAAGC,KAAOF,EAAEpkC,KAAK4+D,OAAOt6B,GAAG/iC,MAAQ8iC,EAAGD,GAAI,IAChE,OAAOpkC,KAAKy0H,cAAc7yF,EAAG5hC,KAAK20H,aAAa,EAAMlzF,EAAGE,GAE1D,6BAA6BL,EAAIG,EAAGE,EAAGC,GACrC,IAAIwC,EAAIxjC,OAAOo9D,KAAK18B,GAAK+C,EAAID,EAAEmwB,IAAKvnB,GAAMhtC,KAAKkzH,MAAM5J,MAAM9D,GAAGx4E,GAAG,KAAM1I,EAAI3C,EAAE4yB,IAAKvnB,GAAMw4E,GAAGx4E,GAAG,IAAKzI,EAAI,IAAIk/B,IAAIn/B,GAAIG,EAAIH,EAAEiwB,IAAKvnB,GAAMhtC,KAAKkzH,MAAM5J,MAAMt8E,IACxI,IAAbvI,EAAEvkC,SAAiBukC,EAAIzkC,KAAKgzH,UAC5B,IAAMtB,UAAWxrF,EAAGyrF,cAAe7pF,EAAG8pF,YAAa7pF,EAAG8pF,WAAY7pF,GAAMspF,GAAGhwF,EAAImD,EAAGzkC,KAAK4wH,UAAW5wH,KAAKszH,YAAalrF,EAAI,IAAI/D,KAAMrkC,KAAKkzH,MAAMpkD,WAAY9uE,KAAKszH,YAAc,IAAI/+D,IAAKvnB,IAAM,CAAGmE,KAAMnE,EAAGgkF,SAAUvvF,EAAEmzF,kBAAoB1oF,EAAItrC,OAAOmwC,OAAO,GAAI/wC,KAAK4wH,WAClQhwH,OAAOo9D,KAAK18B,GAAIqY,QAAS3M,IACvB,IAAKC,EAAGC,GAAKs4E,GAAGx4E,GAAII,EAAI,GACxBA,EAAEF,GAAK5L,EAAG0L,GAAId,EAAEe,GAAKG,IAEvB,IAAIjB,EAAI,GAAIjB,EAAIlrC,KAAKu0H,mBAAmBroF,GAAIO,EAAI,GAChD,KAAOrE,EAAEloC,OAAS,GAAK,CACrB,IAAI8sC,EAAIhtC,KAAK60H,aAAaxwF,EAAG+D,EAAG3G,EAAGyK,EAAGO,EAAGvB,EAAG3G,EAAG4H,EAAGjG,SAC5CsK,QAAQ5zB,IAAIowB,GAEf,MAALjF,IAAcnG,GAAK4Q,QAAQmB,KAAK,mIAChC,IAAI5G,EAAItI,EAAEirB,OAAQ1iB,IAAOukF,GAAGvkF,KAAOs4E,GAAGt4E,EAAEzrC,KAAM2qC,EAAGzK,IAAI8yB,IAAKvnB,GAAMA,EAAEzrC,MAClE,GAAIwrC,EAAE7sC,OAAS,EAAG,CAChB,IAAI8sC,EAAI,GACR,MAAW,MAALjF,IAAciF,EAAI,wFAAwFhF,MAAO,IAAI/D,MAAM,+BAA+B8I,gCAAgC3I,iDAAiD0D,OAAOkF,KAE1P,OAAOd,EAET,aAAa5K,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GACpC,IAAIyB,EAAI,GACR,KAAOzE,EAAEvhC,OAAS,GAAK,CACrB,IAAI4nC,EAAIrG,EAAEqc,MACVnc,EAAEizF,eAAiB9sF,EAAEkpF,SACrB,IAAIjpF,EAAI,GACR,GAAkB,UAAdD,EAAEqJ,KAAK/gB,IAAkB60F,GAAE,aAAcn9E,EAAEqJ,KAAMvP,EAAGD,MAAQoG,GAAKg+E,GAAGj+E,EAAEqJ,KAAK5vC,KAAMogC,IAAuB,MAAlBC,EAAEkG,EAAEqJ,KAAK5vC,MAAe,CAChH,IAAIymC,EAAI0oF,GAAG5oF,EAAEqJ,KAAMvP,EAAGD,EAAG3hC,KAAK8yH,kBAC9B/qF,KAAOA,GAAKg+E,GAAGj+E,EAAEqJ,KAAK5vC,KAAMogC,IAC5B,IAAIyG,EAAIzG,EAAEizF,eACVv2F,GAAE88B,UAAUnzB,GAAK9B,EAAE2F,KAAK7D,EAAE4Q,KAAM1M,IAAOtK,EAAEmG,GAAKmE,EAAGlsC,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAiBtsF,GAAK/nC,KAAK4zH,gBAAgB1nF,IAAKvK,EAAEizF,eAAiBxsF,EAAGpoC,KAAK80H,uBAAuB/sF,EAAGD,EAAEqJ,KAAMvP,EAAGD,EAAG0C,EAAGC,EAAGC,GAAIvkC,KAAK+0H,kBAAkBjtF,EAAEqJ,KAAM1P,EAAGE,EAAGC,EAAGwC,EAAGK,GAAIyH,MAAQtK,EAAEmG,GAAKC,EAAGhoC,KAAKqzH,0BAA4BrzH,KAAKq0H,iBAAiBtsF,GAAK/nC,KAAK4zH,gBAAgB5rF,IAAKhoC,KAAK80H,uBAAuB/sF,EAAGD,EAAEqJ,KAAMvP,EAAGD,EAAG0C,EAAGC,EAAGC,GAAIvkC,KAAK+0H,kBAAkBjtF,EAAEqJ,KAAM1P,EAAGE,EAAGC,EAAGwC,EAAGK,SAE7czkC,KAAK+0H,kBAAkBjtF,EAAEqJ,KAAM1P,EAAGE,EAAGC,EAAGwC,EAAGK,GAE/C,OAAOyB,EAET,kBAAkB5E,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAChC/C,EAAG2nF,SAAStvE,QAASrV,IACnB,IAAKC,GAAKwhF,GAAGzhF,EAAE/iC,KAAMogC,GACrByC,EAAEG,KAAOF,EAAExiC,IAAIyiC,EAAE/iC,QAAmB,UAAT+iC,EAAElU,GAAiBkU,EAAE+gF,WAAW9hD,KAAM9+B,KAAQ6gF,GAAG7gF,EAAG7C,EAAGD,MAAQyC,EAAEG,IAAK,EAAM9C,EAAEoK,KAAK,CAAEmlF,SAAUrvF,EAAEizF,eAAgBzjF,KAAM7M,KAAQA,EAAE+gF,WAAWpjE,MAAOxd,KAAQ6gF,GAAG7gF,EAAG7C,EAAGD,MAAQyC,EAAEG,IAAK,EAAM9C,EAAEoK,KAAK,CAAEmlF,SAAUrvF,EAAEizF,eAAgBzjF,KAAM7M,QAGnQ,UACE1jC,OAAOo9D,KAAKh+D,KAAK4wH,WAAWj3E,QAASrY,GAAOthC,KAAK4wH,UAAUtvF,GAAIqY,QAASlY,GAAMA,EAAEzd,YAElF,uBAAuBsd,GACrB1gC,OAAOo9D,KAAK18B,GAAIqY,QAASlY,IACvB,IAAIE,EAAIL,EAAGG,IAAKG,GAAK4jF,GAAG/jF,GAAI2C,EAAIpkC,KAAKkzH,MAAM5J,MAAM1nF,GACjD,GAAIwC,EAAEmhF,WAAWpmD,OAAS/6B,EAAEmhF,WAAWpmD,MAAMl+D,MAAO,CAClD,IAAIojC,EAAID,EAAEmhF,WAAWpmD,MAAMl+D,MAAOqjC,EAAID,EAAEnkC,SAAWyhC,EAAEw9B,MAAMj/D,QAAUyhC,EAAEw9B,MAAMld,MAAM,CAAC1d,EAAGE,KAAgB,IAAVJ,EAAEI,IAAaJ,EAAEI,KAAOF,GACrHlG,GAAE26B,OAAO10B,EAAG,IAAM,sBAAsBF,EAAE7iC,mDAAmD8iC,gBAAgB1C,EAAEw9B,UAEjH/6B,EAAEmhF,WAAW7mD,OAASt6B,EAAEmhF,WAAW7mD,MAAMz9D,OAASo9B,GAAE26B,OAAOr3B,EAAE+8B,QAAUt6B,EAAEmhF,WAAW7mD,MAAMz9D,MAAO,IAAM,sBAAsBmjC,EAAE7iC,kDAAkD6iC,EAAEmhF,WAAW7mD,MAAMz9D,kBAAkB0gC,EAAE+8B,WAG5N,UAAUp9B,GACR,IAAIG,EAAGE,EACP,IAAIC,EAAI,GACR,IAAK,IAAIwC,KAAK9C,EAAI,CAChB,IAAI+C,EAAiF,QAA5E1C,EAA8B,QAAzBF,EAAIzhC,KAAKuzH,kBAA8B,IAAN9xF,OAAe,EAASA,EAAEm9B,cAA0B,IAANj9B,OAAe,EAASA,EAAEyC,GAClH,MAALC,EAAYzC,EAAEyC,EAAE9iC,MAAQ+/B,EAAG8C,GAAKxC,EAAEwC,GAAK9C,EAAG8C,GAE5C,OAAOxC,EAET,YAAYN,GACV,IAAIG,EAAI7gC,OAAOo9D,KAAK18B,GAAIouB,OAAQ/tB,IAC9B,IAAKC,GAAK4jF,GAAG7jF,GACb,OAA8B,MAAvB3hC,KAAKkzH,MAAM5J,MAAM1nF,KAE1B,GAAIH,EAAEvhC,OAAS,EACb,MAAM,IAAI+jC,MAAM,uDAAuDxC,iCAE3E,WAAWH,GACT,OAAOA,EAAGizB,IAAK9yB,IACb,IAAIE,EAAGC,EACP,IAAIwC,EAAkF,QAA7ExC,EAA8B,QAAzBD,EAAI3hC,KAAKuzH,kBAA8B,IAAN5xF,OAAe,EAASA,EAAEg9B,eAA2B,IAAN/8B,OAAe,EAASA,EAAEH,GACxH,OAAY,MAAL2C,EAAYA,EAAE7iC,KAAOkgC,GAC3B,IAEL,aAAaH,GACXA,EAAGqY,QAASlY,IACV,IAAKE,GAAK6jF,GAAG/jF,GACb,IAAKzhC,KAAKkzH,MAAM5J,MAAM3nF,GACpB,MAAM,IAAIsC,MAAM,eAAexC,oCAInCuzF,GAAK,MACP,YAAY1zF,EAAK,GAAIG,EAAI,IACvBzhC,KAAKi1H,sBAAwB3zF,EAAIthC,KAAKk1H,aAAezzF,EAEvD,aAAaH,EAAIG,GACfzhC,KAAKi1H,sBAAsB3zF,GAAMG,EAAE2tF,OAAQpvH,KAAKk1H,aAAazzF,EAAE49B,IAAM59B,EAEvE,yBAAyBH,GACvB,OAAOthC,KAAKi1H,sBAAsB3zF,GAEpC,iBAAiBA,GACf,OAAOthC,KAAKk1H,aAAa5zF,GAE3B,UACE,IAAK,IAAIA,KAAMthC,KAAKk1H,aAClBl1H,KAAKk1H,aAAa5zF,GAAI2sF,uBAAwBjuH,KAAKk1H,aAAa5zF,GAClE,IAAK,IAAIA,KAAMthC,KAAKi1H,sBAClBj1H,KAAKi1H,sBAAsB3zF,GAAItd,iBAAkBhkB,KAAKi1H,sBAAsB3zF,KAG9E6zF,GAAK,oBACLC,GAAK,aACL5oH,GAAK,MACP,mBACE,OAAOxM,KAAK8+B,QAEd,iBACE,OAAO9+B,KAAKq1H,SAASC,WAEvB,kBACE,OAAOt1H,KAAKq1H,SAASV,YAEvB,aACE,OAAO30H,KAAKq1H,SAASz2D,OAEvB,cACE,OAAO5+D,KAAKq1H,SAAS12D,QAEvB,cACE,OAAO3+D,KAAKq1H,SAASzE,UAEvB,eACE,OAAO5wH,KAAKu1H,UAAUxnD,oBAExB,qBACE,OAAO/tE,KAAK8tE,UAEd,gCACE,OAAO9tE,KAAKw1H,qBAEd,YAAYl0F,EAAIG,EAAI,GAAIE,EAAI9X,IAC1B7pB,KAAKy1H,SAAWn0F,EAAIthC,KAAK01H,YAAcj0F,EAAGzhC,KAAK8+B,QAAU,MAAO9+B,KAAK4pB,GAAK+X,EAAQ,MAALF,IAAczhC,KAAK01H,YAAc,IAAK11H,KAAK21H,gBAAkB,IAAIX,GAEhJ,gBACE,IAAI1zF,EAAKthC,KAAKy1H,SACd,GAAe,MAAXn0F,EAAG4S,KACLl0C,KAAKs9C,QAAUhc,OACZ,GAAoC,MAAhCthC,KAAK01H,YAAYllB,YACxBxwG,KAAKs9C,QAAUt9C,KAAK4pB,GAAGsjF,mBAAmB5rE,EAAIthC,KAAK01H,iBAChD,CACH,IAAIj0F,EAAIzhC,KAAK4pB,GAAGkmD,gBAAgBxuC,EAAIthC,KAAK01H,aACzC,GAAiB,IAAbj0F,EAAEvhC,OACJuhC,EAAEoK,KAAK7rC,KAAK4pB,GAAGsjF,mBAAmB5rE,EAAIthC,KAAK01H,mBACxC,GAAIj0F,EAAEvhC,OAAS,EAClB,MAAM,IAAI+jC,MAAM,wBAAwBxC,EAAEvhC,kCAAkC,CAACohC,OAC/EthC,KAAKs9C,QAAU7b,EAAE,IAGrB,OACE,GAAIzhC,KAAK41H,gBAAsC,MAArB51H,KAAKs9C,QAAQpJ,KACrC,MAAM,IAAIjQ,MAAM,iHAClB,IAAI3C,EAAKthC,KAAKs9C,QAAQpJ,OACtB,OAAO7V,GAAE88B,UAAU75B,GAAMA,EAAGsX,KAAMnX,GAAMzhC,KAAK61H,SAASp0F,IAAMzhC,KAAK61H,SAASv0F,GAE5E,SAASA,GACPthC,KAAKu1H,UAAYj0F,EACjB,IAAIG,EAAIzhC,KAAKu1H,UAAU9nD,cAAe9rC,EAAI3hC,KAAKu1H,UAAUznD,UACzD,GAA0C,MAAtC9tE,KAAKu1H,UAAUxnD,oBAA6B,CAC9C,IAAI3pC,EAAIpkC,KAAKu1H,UAAUxnD,oBACR,MAAf3pC,EAAE0pC,YAAsBnsC,EAAIyC,EAAE0pC,WAAsC,MAA1B1pC,EAAEoxF,uBAAiCx1H,KAAKw1H,qBAAuBpxF,EAAEoxF,sBAE7Gx1H,KAAK8tE,UAAYnsC,EAAG3hC,KAAK8+B,QAAU,GAAG2C,EAAEyP,SAAS4kF,YAAYr0F,EAAEyP,SAAS6kF,cACxE,IAAIn0F,EAAI5hC,KAAK4pB,GAAG0jF,cAActtG,KAAKu1H,UAAUlnD,WAAYruE,KAAKu1H,UAAUnnD,aACxE,GAAIpuE,KAAKq1H,SAAW,IAAI9C,GAAG3J,GAAGvmF,SAAS2zF,eAAev0F,EAAGzhC,KAAK8tE,YAAa9tE,KAAKq1H,SAASzE,UAAY5wH,KAAKi2H,6BAA6Br0F,GAAI5hC,KAAKq1H,SAASM,gBAAkB31H,KAAK21H,gBAAwC,MAAvBr0F,EAAG0sC,kBAAwD,MAA5B1sC,EAAG0sC,iBAAiB78B,KAAc,CAChQ,IAAI/M,EAAIwkF,GAAGvmF,SAAS2zF,eAAe10F,EAAG0sC,kBACtChuE,KAAKk2H,YAAc,IAAI3D,GAAGnuF,GAAIpkC,KAAKk2H,YAAYtF,UAAY5wH,KAAKq1H,SAASzE,UAAW5wH,KAAKk2H,YAAYP,gBAAkB31H,KAAK21H,gBAAiB31H,KAAKiuE,qBAAuB3sC,EAAG2sC,qBAE9K,OAAO,EAET,WAAW3sC,EAAIG,GACb,GAAiB,iBAANH,EAAgB,CACzB,IAAIK,EAAI3hC,KAAK4pB,GAAGgmD,gBAAgBtuC,GAChC,GAAiB,IAAbK,EAAEzhC,OACJ,MAAM,IAAI+jC,MAAM,0CAA0C3C,MAC5D,GAAIK,EAAEzhC,OAAS,EACb,MAAM,IAAI+jC,MAAM,wBAAwBtC,EAAEzhC,kCAAkCohC,MAC9EA,EAAKK,EAAE,GAET,GAAe,MAAXL,EAAGyyC,KACL,MAAM,IAAI9vC,MAAM,+GAClB,OAAO3C,EAAGyyC,KAAK/zE,KAAKu1H,WAEtB,yBAAyBj0F,GACvB,GAAIthC,KAAKw1H,qBAAsB,CAC7B,IAAI/zF,EAAIH,aAAchnB,GAAK,CAACgnB,GAAMA,EAAIK,EAAI,GAC1C,OAAOF,EAAEkY,QAAQ,CAAC/X,EAAGwC,IAAMzC,EAAE3hC,KAAKw1H,qBAAqBpxF,IAAMxC,GAAID,EAEnE,OAAOL,EAET,QAAQA,EAAIG,GACV,IAAIE,EAAI3hC,KAAKm2H,QAAQ70F,EAAIthC,KAAK20H,aAC9B,OAAO30H,KAAKo2H,yBAAyBz0F,GAEvC,mBAAmBL,EAAIG,GACrB,IAAIE,QAAU3hC,KAAKq2H,aAAa/0F,EAAIthC,KAAK20H,aACzC,OAAO30H,KAAKo2H,yBAAyBz0F,GAEvC,gBAAgBL,GACd,IAAIG,EACJ,KAAMH,aAAchnB,MAAQm6C,MAAMC,QAAQpzB,GAAK,CAC7C,IAAI8C,EAA6B,QAAxB3C,EAAIzhC,KAAK8tE,iBAA6B,IAANrsC,OAAe,EAASA,EAAEm9B,OACnE,GAAS,MAALx6B,EACF,IAAK,IAAIC,KAAKD,EAAG,CACf,IAAIE,EAAIF,EAAEC,GACM,MAAhBC,EAAEgyF,aAAuBh1F,EAAG+C,GAAKrkC,KAAKu2H,0BAA0BjyF,EAAEgyF,aAEtE,OAAOh1F,EAETA,EAAKmzB,MAAMC,QAAQpzB,GAAMA,EAAK,CAACA,GAC/B,IAAIK,EAAI/gC,OAAOo9D,KAAKh+D,KAAKu2H,2BAA2Br2H,OACpD,GAAIohC,EAAGphC,OAASyhC,IAAM3hC,KAAKs1H,WAAWp1H,OACpC,MAAM,IAAI+jC,MAAM,oDAAoDjkC,KAAKs1H,WAAWp1H,OAASyhC,gDAAgDL,EAAGphC,kCAClJ,IAAI0hC,EAAI,EACR,OAAO5hC,KAAKs1H,WAAWx1H,OAAO,CAACskC,EAAGC,KAChC,IAAIC,EAAGC,EAAGE,EACV,IAAIyB,EAA+H,QAA1HzB,EAAgF,QAA3EF,EAA6B,QAAxBD,EAAItkC,KAAK8tE,iBAA6B,IAANxpC,OAAe,EAASA,EAAEs6B,cAA0B,IAANr6B,OAAe,EAASA,EAAEF,UAAsB,IAANI,OAAe,EAASA,EAAE6xF,WACrK,OAAmBlyF,EAAEC,GAAT,MAAL6B,EAAmBlmC,KAAKu2H,0BAA0BrwF,GAAY5E,EAAGM,KAAMwC,GAC7E,IAEL,iBAAiB9C,GACf,OAAOA,EAAKA,GAAMthC,KAAK20H,YAAalgE,MAAMC,QAAQpzB,GAAMA,EAAK,CAACA,GAEhE,0BACE,OAA2B,MAApBthC,KAAKk2H,YAAsB,GAAkC,MAA7Bl2H,KAAKiuE,qBAA+BjuE,KAAKk2H,YAAYC,QAAQ,GAAI,IAAMn2H,KAAKk2H,YAAYC,QAAQ,GAAIv1H,OAAOo9D,KAAKh+D,KAAKiuE,qBAAqBtP,UAEnL,qCACE,OAA2B,MAApB3+D,KAAKk2H,YAAsB,GAAkC,MAA7Bl2H,KAAKiuE,qBAA+BjuE,KAAKk2H,YAAYG,aAAa,GAAI,IAAMr2H,KAAKk2H,YAAYG,aAAa,GAAIz1H,OAAOo9D,KAAKh+D,KAAKiuE,qBAAqBtP,UAE7L,6BAA6Br9B,GAC3B,GAAIthC,KAAKu2H,0BAA4B,GAAIv2H,KAAKiuE,qBAAsB,CAClE,IAAIxsC,EAAIzhC,KAAKiuE,qBAAqBtP,QAASh9B,EAAI/gC,OAAOo9D,KAAKv8B,GAC3D,IAAK,IAAIG,EAAI,EAAGA,EAAID,EAAEzhC,OAAQ0hC,IAAK,CACjC,IAAIwC,EAAIzC,EAAEC,GAAIyC,EAAI5C,EAAE2C,GACpBpkC,KAAKu2H,0BAA0BlyF,EAAEiyF,YAAch1F,EAAGM,KAIxD,QAAQN,EAAIG,GACwB,MAAlCzhC,KAAKu2H,2BAAqCv2H,KAAKw2H,6BAA6Bx2H,KAAKy2H,2BAA4Bn1F,EAAKthC,KAAK02H,gBAAgBp1F,GAAKG,EAAIzhC,KAAK22H,iBAAiBl1F,GACtK,IAAIE,EAAI3hC,KAAKq1H,SAASc,QAAQ70F,EAAIG,GAClC,OAAOE,EAAEzhC,OAAS,EAAIyhC,EAAIA,EAAE,GAE9B,mBAAmBL,EAAIG,GACa,MAAlCzhC,KAAKu2H,2BAAqCv2H,KAAKw2H,mCAAmCx2H,KAAK42H,gCAAiCt1F,EAAKthC,KAAK02H,gBAAgBp1F,GAAKG,EAAIzhC,KAAK22H,iBAAiBl1F,GACjL,IAAIE,QAAU3hC,KAAKq1H,SAASgB,aAAa/0F,EAAIG,GAC7C,OAAOE,EAAEzhC,OAAS,EAAIyhC,EAAIA,EAAE,GAE9B,yBACE,OAAO3hC,KAAKq1H,SAASwB,yBAEvB,6BACE72H,KAAKq1H,SAASxB,6BAEhB,6BAA6BvyF,GAC3B,OAAO1gC,OAAOo9D,KAAK18B,GAAIxhC,OAAO,CAAC2hC,EAAGE,KAAOF,EAAEE,GAAK,CAACL,EAAGK,IAAKF,GAAI,IAE/D,UACEzhC,KAAKq1H,SAASrxG,UAAWhkB,KAAKk2H,cAAgBl2H,KAAKk2H,YAAYlyG,UAAWhkB,KAAKu2H,2BAA6BtyG,GAAGjkB,KAAKu2H,4BAA6Bv2H,KAAK21H,gBAAgB3xG,YAG1KmoD,eAAe9gD,GAAGgW,EAAGC,EAAK,GAAIG,EAAI5X,IAChC,GAAS,MAALwX,EACF,MAAM,IAAI4C,MAAM,0GACZ,MAAN3C,IAAeA,EAAK,IAAKA,EAAGw1F,WAAyB,iBAALz1F,IAAkBA,EAAI01F,GAAG11F,IACzE,IAAIM,EAAI,IAAIn1B,GAAG60B,EAAGC,EAAIG,GACtB,aAAaE,EAAEuS,OAAQvS,EAEzB,SAASpW,GAAG8V,GACV,GAAS,MAALA,EACF,MAAM,IAAI4C,MAAM,wHAClB,IAAI3C,EACJ,GAAID,aAAaozB,MAAO,CACtB,IAAK9yB,EAAGC,GAAKP,EACb,IAAKM,EACH,MAAM,IAAIsC,MAAM,oDAClB,IAAKrC,KAAOA,aAAamqC,aACvB,MAAM,IAAI9nC,MAAM,qEAClB,KAAM,kBAAmBtC,GACvB,MAAM,IAAIsC,MAAM,yCAClB,KAAM,oBAAqBtC,GACzB,MAAM,IAAIsC,MAAM,2CAClB,IAAIG,EAAIva,GAAGkkF,eAAepsE,EAAEksC,iBAAkBxpC,EAAIxa,GAAGgkF,6BAA6BlsE,EAAGyC,EAAGxC,GACxFN,EAAKzX,GAAG6jF,eAAerpE,QAClB,GAAI,SAAUhD,EACnBC,EAAKD,MACF,MAAI,kBAAmBA,GAAK,gBAAiBA,GAAK,eAAgBA,GAGrE,MAAM,IAAI4C,MAAM,wBAFhB3C,EAAKzX,GAAG6jF,eAAersE,GAGzB,IAAII,EAAI,IAAIj1B,GAAG80B,GACf,OAAOG,EAAEyS,OAAQzS,EAEnB,SAASs1F,GAAG11F,GACV,OAAOA,EAAE2pC,SAAS,OAAS3pC,GAAQ,KAAM,GAAGA,IAAI+zF,KAAKD,KAEvD,IAAIl2F,GAAK,SACT,SAAS+3F,GAAE31F,EAAGC,GACZmzB,MAAMC,QAAQrzB,KAAOA,EAAI,CAACA,IAAKA,EAAEsY,QAASlY,IACnC,MAALA,GAAapD,GAAE26B,OAAmB,cAAZv3B,EAAEi9B,MAAuB,IAASp9B,EAAH,6DAGzD,IAAI21F,GAAKxsG,GAAG82F,UACR/xG,GAAK,cAAc9B,EACrB,aACE,OAAO8B,GAAG0nH,aAEZ,cACEz1D,QAASzhE,KAAKqhF,UAAY,GAAIrhF,KAAKm3H,UAAW,EAAMn3H,KAAK48C,KAAO,IAAIt0C,EAAGtI,KAAMulB,MAE/E,MAAM+b,EAAIG,EAAGE,GACX3hC,KAAKm3H,WAAan3H,KAAKm3H,UAAW,EAAOxxG,KAAInkB,IAAI,YAAc6c,GAAEs1B,KAAK,uPAItE,IAAI/R,EAAI,CAAEy9B,GAAIr/D,KAAKk3H,cACnB,OAAOl3H,KAAK48C,KAAKv6C,IAAIu/B,EAAG,CAAE9iC,OAAQwiC,EAAIo9B,MAAO/8B,EAAGukC,SAAU,IAAMtkC,EAElE,eAAeN,EAAIG,EAAGE,GACpB,IAAIC,EACJ,GAAU,WAANH,GAAuB,MAALE,GAAaA,EAAEzhC,OAAS,GAAKm+B,GAAEg9B,SAAS15B,EAAE,IAAK,CACnE,IAAIyC,EAAIzC,EAAE4yB,IAAKlwB,GAAMhG,GAAE27B,aAAa31B,IACpCzC,EAAI5hC,KAAKqoE,MAAMjkC,EAAG9C,EAAIG,QAEtBG,EAAI5hC,KAAKqoE,MAAM1mC,EAAGL,EAAIG,GACxB,MAAO,CAAEm/B,OAAQh/B,EAAGu9B,MAAO79B,EAAIo9B,MAAOj9B,GAExC,SAASH,GACP,OAAOthC,KAAK48C,KAAK/6C,IAAIy/B,GAAMthC,KAAK48C,KAAKp7C,IAAI8/B,GAAI4kC,SAAW,EAE1D,OAAO5kC,GACL,IAAIG,EAAIzhC,KAAK48C,KAAKp7C,IAAI8/B,GACtBG,EAAEykC,WAEJ,OAAO5kC,GACL,GAAIthC,KAAK48C,KAAK/6C,IAAIy/B,GAAK,CACrB,IAAIG,EAAIzhC,KAAK48C,KAAKp7C,IAAI8/B,GACtBG,EAAEykC,YAGN,KAAK5kC,EAAIG,EAAGE,EAAGC,EAAGwC,GAChBpkC,KAAK48C,KAAKv6C,IAAIi/B,EAAI,CAAExiC,OAAQ2iC,EAAGi9B,MAAO98B,EAAGskC,SAAU9hC,IAErD,aACE,OAAOpkC,KAAK48C,KAAKqqB,aAEnB,WAAW3lC,GACT,OAAOthC,KAAKihE,SAAS3/B,GAEvB,SAASA,GACP,IAAMo9B,MAAOj9B,EAAG21F,mBAAoBz1F,GAAM3hC,KAAK48C,KAAKp7C,IAAI8/B,GACxD,GAAU,cAANG,EAAmB,CACrB,IAAIG,EAAI5hC,KAAKihE,SAASt/B,EAAEvO,KAAKwtC,QAASx8B,EAAIpkC,KAAKihE,SAASt/B,EAAErY,KAAKs3C,QAC/D,OAAOviD,GAAEkhG,uBAAuB39E,EAAGwC,GAErC,OAAO/F,GAAEo7B,mCAAmCz5D,KAAK48C,KAAKp7C,IAAI8/B,GAAIxiC,OAAQ2iC,GAExE,WAAWH,GACT,IAAIG,EAAIzhC,KAAKihE,SAAS3/B,EAAGs/B,QACzB,GAAiB,WAAbt/B,EAAGo9B,MACL,IACE,IAAI/8B,EAAIF,EAAE8yB,IAAK3yB,GAAMvD,GAAEw7B,aAAaj4B,IACpC,OAAO3hB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAO/8B,GAC9B,MAAOA,GACP,MAAM,IAAIsC,MAAM,oDAEpB,OAAOhkB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAOj9B,GAEhC,WAAWH,EAAIG,EAAGE,GAChB,OAAOpc,KAAK8hD,yBAAyBrnE,KAAKq3H,eAAe51F,EAAGE,EAAGL,GAAKthC,MAEtE,YAAYshC,EAAIG,GAAI,GAClB,GAAIzhC,KAAK48C,KAAK/6C,IAAIy/B,GAAK,CACrB,GAAIthC,KAAK48C,KAAKp7C,IAAI8/B,GAAI4kC,YAAazkC,GAAKzhC,KAAK48C,KAAKp7C,IAAI8/B,GAAI4kC,SAAW,EACnE,OAAO,EACT,IAAMkxD,mBAAoBz1F,GAAM3hC,KAAK48C,KAAKp7C,IAAI8/B,GACzC,MAALK,IAAc3hC,KAAKmmE,YAAYxkC,EAAEvO,KAAKwtC,QAAQ,GAAO5gE,KAAKmmE,YAAYxkC,EAAErY,KAAKs3C,QAAQ,IAAQ5gE,KAAK48C,KAAKiW,OAAOvxB,GAEhH,OAAO,EAET,8BAA8BA,GAC5BthC,KAAKmmE,YAAY7kC,EAAGs/B,QAEtB,WAAWt/B,GACT,IAAIG,EAAIpD,GAAEshB,MACV,OAAOre,IAAM,CAAEk9B,SAAUngC,GAAEshB,MAAQle,GAErC,SACE,MAAO,CAAEinC,YAAY,EAAMC,QAAS,CAAC,uHAEvC,MAAMrnC,GACJ01F,GAAE,CAAC11F,GAAK,SACR,IAAIG,EAAIzhC,KAAKihE,SAAS3/B,EAAGs/B,QACzB,OAAOq2D,GAAG31F,EAAG69B,MAAO19B,GAEtB,WAEA,iBACE,OAAO,GAET,UACE,OAAOggC,MAAM2pC,YAGjB57F,GAAG0nH,WAAa,EAChB,IAAI7/F,GAAK,GAET,SAAS07C,GAAG1xC,GACV,IAAIC,EAAK,IAAI6U,aAAa9U,EAAEnhC,QAC5B,IAAK,IAAIuhC,EAAI,EAAGA,EAAIJ,EAAEnhC,SAAUuhC,EAC9BH,EAAGG,GAAKsC,KAAK5nB,IAAIklB,EAAEI,IACrB,OAAOH,EALTE,EAAGnK,GAAI,CAAEigG,QAAS,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,mBAAoB,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,WAAY,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,yBAA0B,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,UAAW,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,cAAe,IAAM3oD,GAAI4oD,UAAW,IAAMC,GAAIC,wBAAyB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,2BAA4B,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,sBAAuB,IAAMC,GAAIC,uBAAwB,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,2BAA4B,IAAMC,GAAIC,QAAS,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,SAAU,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,WAAY,IAAMC,KAOpuC,IAAIC,GAAMt8F,IACR,IAAM6J,EAAG5J,GAAOD,EAAEu9B,OAAQn9B,EAAIJ,EAAEnjB,QAChC84G,GAAE11F,EAAI,OACN,IAAIK,EAAI,IAAIwU,aAAa9X,GAAEi+B,cAAch7B,EAAG69B,QAASv9B,EAAIH,EAAEmb,KAAKp7C,IAAI8/B,EAAGs/B,QAAQ9hE,OAC/E,OAAO6iC,EAAIoxC,GAAGnxC,GAAIH,EAAEm8F,WAAWj8F,EAAGL,EAAG69B,MAAO79B,EAAGo9B,QAE7Cm/D,GAAK,CAAEllE,WAAYj2D,GAAIk2D,YAAa,MAAOuO,WAAYw2D,IAC3D,SAASG,GAAGz8F,GACV,MAAO,CAACC,EAAIG,EAAGE,EAAGC,EAAGwC,KACnB,IAAIC,EAAIhmB,GAAE4jE,2BAA2B3gD,EAAIG,GAAI6C,EAAID,EAAEnkC,OAAQqkC,EAAIlG,GAAEm7B,eAAen1B,GAAII,EAAIpG,GAAEi+B,cAAcj4B,GAAI6B,EAAI7H,GAAEm8B,uBAAuBp2B,EAAGK,GAAIqD,EAAIxG,EAAGphC,OAAQ6nC,EAAItG,EAAEvhC,OAAQ8nC,EAAI3J,GAAEm7B,eAAel4B,GAAK8G,EAAI/J,GAAEm7B,eAAe/3B,GAAIyK,EAAI7tB,GAAE6jE,iBAAiB5gD,EAAI+C,GAAI8H,EAAI9tB,GAAE6jE,iBAAiBzgD,EAAG4C,GACzR,GAAI6H,EAAEhsC,OAASisC,EAAEjsC,SAAW,EAC1B,IAAK,IAAIgrC,EAAI,EAAGA,EAAIhF,EAAEhmC,SAAUgrC,EAC9BhF,EAAEgF,GAAK7J,EAAEM,EAAEuJ,EAAIvJ,EAAEzhC,QAAS0hC,EAAEsJ,EAAItJ,EAAE1hC,cAEpC,IAAK,IAAIgrC,EAAI,EAAGA,EAAIhF,EAAEhmC,SAAUgrC,EAAG,CACjC,IAAIuB,EAAIpO,GAAEu8B,WAAW1vB,EAAG5G,EAAGC,GAAIwI,EAAIN,EAAEzU,OAAO8P,GAC5CoE,EAAEyN,QAASvM,GAAML,EAAEK,GAAK,GACxB,IAAIJ,EAAI3O,GAAEo9B,WAAW1uB,EAAGjF,EAAGE,GAAIiF,EAAIR,EAAEzU,OAAO+P,GAC5CoE,EAAEwN,QAASvM,GAAMH,EAAEG,GAAK,GACxB,IAAIF,EAAI7O,GAAEo9B,WAAWxuB,EAAGlF,EAAGK,GAC3BlC,EAAEgF,GAAK7J,EAAEM,EAAEqL,GAAIpL,EAAEsL,IAErB,MAAO,CAAChH,EAAG7B,IAGf,SAAS05F,GAAG18F,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKjO,KAAMuO,EAAGrY,KAAMsY,GAAMN,EAAI8C,EAAI3C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQulC,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQwlC,EAAI7C,EAAE41F,eAAe11F,EAAEw9B,MAAO,aAAc56B,EAAI9C,EAAEmb,KAAKp7C,IAAI8iC,EAAEs8B,QAC9L,OAAOr8B,EAAE6yF,mBAAqB,CAAEhkG,KAAMqO,EAAE41F,eAAe11F,EAAEw9B,MAAO,UAAW/6B,GAAI9a,KAAMmY,EAAE41F,eAAez1F,EAAEu9B,MAAO,UAAW96B,IAAMC,EAElI,IAAI05F,GAAK,CAAErlE,WAAYjyD,GAAIkyD,YAAa,MAAOuO,WAAY42D,IAC3D,SAASE,GAAG58F,EAAGC,EAAIG,EAAI,WACrB,GAAU,cAANA,EAAmB,CACrB,IAAIG,EAAIq8F,GAAG58F,EAAGC,EAAI,WAAY8C,EAAI65F,GAAG58F,EAAGC,EAAI,WAC5C,OAAOy8F,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMwO,EAAGtY,KAAM8a,GAAKlmB,QAASmjB,IAErD,IAAIM,EAAItD,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAch7B,GAAKG,GACnD,OAAOJ,EAAEg2F,eAAe/1F,EAAIG,EAAGE,GAEjC,SAASu8F,GAAG78F,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,OAAOG,EAAEkgC,OAAOhgC,EAAEi/B,QAAS,CAAEA,OAAQj/B,EAAEi/B,OAAQzB,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,OAE1E,IAAIy/D,GAAK,CAAExlE,WAAY3rD,GAAI4rD,YAAa,MAAOuO,WAAY+2D,IAC3D,SAASE,GAAG/8F,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQw2D,mBAAmBhkG,KAAMgR,EAAI3C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAClI,OAAO2iC,EAAE41F,eAAez1F,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,GAE5C,IAAIi6F,GAAK,CAAE1lE,WAAYnkD,GAAIokD,YAAa,MAAOuO,WAAYi3D,IAC3D,SAASrG,GAAG12F,EAAGC,EAAIG,EAAGE,GACpB,GAAU,UAANA,EAAe,CACjB,IAAIC,EAAIgU,WAAWqgB,KAAK50B,GACxB,MAAO,CAACC,EAAI,QAASM,GAEvB,GAAU,SAAND,EAAc,CAChB,IAAIC,EAAIvD,GAAEs+B,aAAa,CAAC,GAAIl7B,IAAK2C,EAAGC,GAAKy5F,GAAG,CAACx5F,EAAGC,IAAMD,IAAMC,EAAI,EAAI,EAA3Bu5F,CAA8Bx8F,EAAI,GAAID,EAAGO,EAAG,QACrF,MAAO,CAACyC,EAAG,OAAQD,GAErB,MAAM,IAAIH,MAAM,iCAAiCxC,QAAQE,KAE3D,SAAS28F,GAAGj9F,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9B,MAAOt6B,GAAMzC,EAC5E,GAAU,cAANyC,EAAmB,CACrB,GAAgB,cAAZxC,EAAE88B,MACJ,OAAOw/D,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAIyE,EAAI+3F,GAAGx8F,EAAGG,EAAEu9B,MAAOv9B,EAAE88B,OAAQ52B,EAAIw2F,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,aAAgB32B,EAAIg2F,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAM0U,EAAGxe,KAAM4c,GAAKhoB,QAASujB,IACxJ,OAAOA,EAAE88F,8BAA8Br4F,GAAIzE,EAAE88F,8BAA8Bz2F,GAAIC,EAEjF,GAAgB,cAAZnG,EAAE88B,MAAuB,CAC3B,IAAIx4B,EAAIk4F,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAOzjD,GAAK1jB,QAASujB,IAAMqG,EAAIw2F,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAGhF,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAOt6B,KACzG,OAAO3C,EAAE88F,8BAA8Br4F,GAAI4B,EAE7C,IAAKzJ,GAAEo8B,gBAAgB74B,EAAE88B,MAAOt6B,GAAI,CAClC,IAAI8B,EAAIg4F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACxC,MAAO,CAAEm/B,OAAQ16B,EAAE06B,OAAQzB,MAAOj5B,EAAEi5B,MAAOT,MAAOt6B,GAEpD,IAAIC,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASwlC,EAAGC,EAAGE,GAAKszF,GAAG1zF,EAAGzC,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,GACzE,OAAO3C,EAAE41F,eAAe/yF,EAAGC,EAAGE,GAEhC,IAAI+5F,GAAK,CAAE7lE,WAAYvyD,GAAIwyD,YAAa,MAAOuO,WAAYm3D,IAC3D,SAASG,GAAGp9F,EAAGC,EAAIG,EAAGE,GACpB,OAAY,MAALF,EAAY,EAAGm9B,OAAQh9B,EAAG1jB,QAASkmB,MACxC,IAAI,EAAEC,EAAGoI,EAAGnI,GAAM1C,EAAG2C,EAAIH,EACzB4yF,GAAE,CAAC3yF,EAAGC,GAAIjD,GACV,IAAIoD,EAAIF,EAAEqY,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQonC,EAAI3B,EAAEqY,KAAKp7C,IAAI8iC,EAAEs8B,QAAQ9hE,OAAQgpC,EAAgB,WAAZzD,EAAEq6B,MAAqBrgD,GAAE69F,uBAAuBz3E,GAAKA,EAAGsD,EAAgB,WAAZ1D,EAAEq6B,MAAqBrgD,GAAE69F,uBAAuBh2E,GAAKA,EAAG8B,EAAIrG,GAAK0C,EAAEq6B,OAAQt2B,EAAG8D,GAAK5K,EAAG+C,EAAE86B,MAAO76B,EAAE66B,MAAOr3B,EAAGC,EAAGC,GACpP,OAAOzD,EAAE8yF,eAAenrF,EAAGlE,EAAGI,IAC5B,EAAGw2B,OAAQh9B,EAAG1jB,QAASkmB,MACzB,IAAI,EAAEC,EAAGoI,EAAGnI,GAAM1C,EAAG2C,EAAIH,EACzB,GAAgB,cAAZC,EAAEq6B,OAAqC,cAAZp6B,EAAEo6B,MAAuB,CACtD,IAAIj6B,EAAI65F,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASqmB,EAAGyiC,MAAO,CAAEtI,MAAO,eAAkBx4B,EAAI3B,EAAEqY,KAAKp7C,IAAIijC,EAAEm8B,QAAS94B,EAAI5B,EAAEkxF,mBAAmBhkG,KAAM2U,EAAI7B,EAAEkxF,mBAAmB9tG,KAAM0e,EAAIzD,EAAEqY,KAAKp7C,IAAIsmC,EAAE84B,QAAQ9hE,OAAQspC,EAAI7D,EAAEqY,KAAKp7C,IAAIumC,EAAE64B,QAAQ9hE,OAAQotC,EAAIoyF,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASqmB,EAAGyiC,MAAO,CAAEtI,MAAO,eAAkBvyB,EAAI5H,EAAEqY,KAAKp7C,IAAI0qC,EAAE00B,QAAS11B,EAAIiB,EAAEirF,mBAAmBhkG,KAAMqZ,EAAIN,EAAEirF,mBAAmB9tG,KAAMyjB,EAAIxI,EAAEqY,KAAKp7C,IAAI0pC,EAAE01B,QAAQ9hE,OAAQkuC,EAAIzI,EAAEqY,KAAKp7C,IAAIirC,EAAEm0B,QAAQ9hE,QAASmuC,EAAGC,EAAGE,GAAK3L,EAAE4C,EAAE86B,MAAO76B,EAAE66B,MAAOn3B,EAAGI,EAAG2E,EAAGC,GAAIK,EAAI9I,EAAE8yF,eAAejqF,EAAG,UAAWH,GAAIK,EAAI/I,EAAE8yF,eAAejqF,EAAG,UAAWF,GAAIK,EAAIwwF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMia,EAAG/jB,KAAMgkB,GAAKpvB,QAASqmB,IACrnB,OAAOA,EAAEg6F,8BAA8B95F,GAAIF,EAAEg6F,8BAA8BryF,GAAI3H,EAAEg6F,8BAA8BlxF,GAAI9I,EAAEg6F,8BAA8BjxF,GAAIC,EAClJ,CACL,IAAI9I,EAAIF,EAAEqY,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQonC,EAAI3B,EAAEqY,KAAKp7C,IAAI8iC,EAAEs8B,QAAQ9hE,OAAQgpC,EAAInG,GAAK0C,EAAEq6B,OAAQ32B,EAAGC,GAAK1G,EAAG+C,EAAE86B,MAAO76B,EAAE66B,MAAO16B,EAAGyB,EAAG4B,GAC5H,OAAOvD,EAAE8yF,eAAervF,EAAGF,EAAGC,KAIpC,SAAS22F,GAAGr9F,GACV,MAAO,CAACC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,KACtB,IAAIC,EAAIjmB,GAAE4jE,2BAA2B3gD,EAAIG,GAAI8C,EAAIlG,GAAEi+B,cAAch4B,GAAIG,EAAIH,EAAEpkC,OAAQgmC,EAAI7H,GAAEm7B,eAAel1B,GAAIwD,EAAIzJ,GAAEm8B,uBAAuB,UAAWj2B,GAAIwD,EAAI1J,GAAEm8B,uBAAuB,UAAWj2B,GAAIyD,EAAI3pB,GAAE6jE,iBAAiB5gD,EAAIgD,GAAI8D,EAAI/pB,GAAE6jE,iBAAiBzgD,EAAG6C,GAAI4H,EAAI7tB,GAAEkhG,uBAAuB59E,EAAGC,GAAIuK,EAAI9tB,GAAEkhG,uBAAuBn7E,EAAGC,GAAI6G,EAAI5J,EAAGphC,OAAQusC,EAAIpO,GAAEm7B,eAAel4B,GAAKyL,EAAItL,EAAEvhC,OAAQ8sC,EAAI3O,GAAEm7B,eAAe/3B,GACrZ,GAAIuG,EAAE9nC,OAASkoC,EAAEloC,SAAW,EAC1B,IAAK,IAAI+sC,EAAI,EAAGA,EAAInF,EAAE5nC,OAAQ+sC,IAAK,CACjC,IAAIC,EAAID,EAAIf,EAAEhsC,OAAQktC,EAAIH,EAAId,EAAEjsC,OAAQmtC,EAAIhM,EAAE6K,EAAM,EAAJgB,GAAQhB,EAAM,EAAJgB,EAAQ,GAAIf,EAAM,EAAJiB,GAAQjB,EAAM,EAAJiB,EAAQ,IAC1FtF,EAAEmF,GAAKI,EAAEja,KAAM2U,EAAEkF,GAAKI,EAAE/jB,UAG1B,IAAK,IAAI2jB,EAAI,EAAGA,EAAInF,EAAE5nC,OAAQ+sC,IAAK,CACjC,IAAIC,EAAI7O,GAAEu8B,WAAW3tB,EAAGxI,EAAGyB,GAAIkH,EAAIF,EAAElV,OAAOkT,GAC5ClD,EAAE2R,QAASnM,GAAMJ,EAAEI,GAAK,GACxB,IAAIH,EAAIhP,GAAEo9B,WAAWruB,EAAGlC,EAAGuB,GAAIa,EAAIJ,EAAElV,OAAO+U,GAC5C3E,EAAEuR,QAASnM,GAAMF,EAAEE,GAAK,GACxB,IAAID,EAAIlP,GAAEo9B,WAAWnuB,EAAGP,EAAGC,GAAI/tC,EAAIoiC,EAAE6K,EAAM,EAAJmB,GAAQnB,EAAM,EAAJmB,EAAQ,GAAIlB,EAAM,EAAJoB,GAAQpB,EAAM,EAAJoB,EAAQ,IACjFzF,EAAEmF,GAAKhuC,EAAEm0B,KAAM2U,EAAEkF,GAAKhuC,EAAEqqB,KAE5B,MAAO,CAACwe,EAAGC,EAAGzD,IAGlB,IAAIizF,GAAKuG,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,GACvBq9F,GAAKD,GAAG,CAACr9F,EAAGC,EAAIG,EAAGE,KAAM,CAAGvO,KAAMiO,EAAII,EAAGnY,KAAMgY,EAAKK,KACpDi9F,GAAKH,GAAGj7H,GAAI+zH,GAAIoH,IAChBE,GAAK,CAAElmE,WAAYn1D,GAAIo1D,YAAa,MAAOuO,WAAYy3D,IAC3D,SAASnH,GAAGp2F,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI/F,GAAEi+B,cAAc36B,GAAI0C,EAAIhG,GAAEu9B,oBAAoBh6B,EAAGH,GACzD,IAAK,IAAI6C,EAAI,EAAGA,EAAIjD,EAAEnhC,OAAQokC,IAAK,CACjC,IAAIC,EAAIlD,EAAEiD,GACV,GAAIC,EAAI,EACN,MAAM,IAAIN,MAAM,iCAClBM,GAAK3C,IAAcyC,EAAEE,IAAVH,EAAI,EAAY9C,EAAGgD,GAAa,GAE7C,OAAOD,EAET,SAASszF,GAAGt2F,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAIP,EAAE89B,MAAM,GAAI/6B,EAAI/C,EAAE89B,MAAM,GAAI96B,EAAIpkB,GAAG,CAAC2hB,EAAGH,GAAIH,EAAGo9B,OACtD,IAAK,IAAIp6B,EAAI,EAAGA,EAAI1C,EAAG0C,IACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAGG,IAAK,CAC1B,IAAIE,EAAIpD,EAAE7/B,IAAI8iC,EAAGC,GACjB,GAAIE,EAAI,EACN,MAAM,IAAIR,MAAM,iCAClBQ,GAAKhD,IAAME,EAAI0C,EAAEhiC,IAAI,EAAGiiC,EAAGG,GAAKnD,EAAG49B,KAAO,EAAI76B,EAAEhiC,IAAIgiC,EAAE7iC,IAAI8iC,EAAGG,GAAKnD,EAAG9/B,IAAI8iC,EAAGC,GAAID,EAAGG,GAAKJ,EAAEhiC,IAAIgiC,EAAE7iC,IAAI8iC,EAAGG,GAAK,EAAGH,EAAGG,IAEtH,OAAOJ,EAET,IAAIwzF,GAAKiG,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,GACvBw9F,GAAKL,GAAG34H,GAAI+xH,IACZkH,GAAK,CAAEpmE,WAAY7yD,GAAI8yD,YAAa,MAAOuO,WAAY23D,IAC3D,SAASE,GAAG39F,GACV,MAAO,CAACC,EAAIG,EAAGE,KACb,IAAIC,EAAIvD,GAAEk8B,kBAAkB94B,EAAGH,EAAGphC,QAClC,IAAK,IAAIkkC,EAAI,EAAGA,EAAI9C,EAAGphC,SAAUkkC,EAC/BxC,EAAEwC,GAAK/C,EAAEC,EAAG8C,GAAIzC,GAClB,OAAOC,GAGX,SAASq9F,GAAG59F,EAAGC,EAAIG,GACjB,IAAIE,EAAIq9F,GAAG19F,GACX,OAAO49F,GAAG79F,EAAGM,EAAGF,GAElB,SAASy9F,GAAG79F,EAAGC,EAAIG,GACjB,MAAO,EAAGm9B,OAAQj9B,EAAGqlC,MAAOplC,EAAG1jB,QAASkmB,MACtC,IAAM8G,EAAG7G,GAAM1C,EACfq1F,GAAE3yF,EAAGhD,GACL,IAA4CoD,EAAxCH,EAAIF,EAAGG,EAAID,EAAEsY,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OACpC,GAAgB,WAAZulC,EAAEq6B,MAAoB,CACxB,IAAKjK,MAAMC,QAAQnwB,GACjB,MAAM,IAAIN,MAAM,sDAClBQ,EAAIpmB,GAAE69F,uBAAuB33E,QAE7BE,EAAIF,EACN,IAAI2B,EAAIzE,GAAK4C,EAAEq6B,MAAO52B,EAAIxG,EAAGmD,EAAGyB,EAAGtE,GACnC,OAAO0C,EAAE+yF,eAAehzF,EAAE86B,MAAOj5B,EAAG4B,IAGxC,IAAImwF,GAAK+G,GAAI39F,GAAM0C,KAAK3jB,KAAKihB,IACzB89F,GAAKD,GAAG54H,GAAI2xH,IACZmH,GAAK,CAAEzmE,WAAYryD,GAAIsyD,YAAa,MAAOuO,WAAYg4D,IAC3D,SAAShH,GAAG92F,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIvD,GAAEk8B,kBAAkB94B,EAAGpD,GAAEi+B,cAAch7B,IAC/C,GAAIK,GAAW,WAANF,EAAgB,CACvB,IAAI2C,EAAI,EACR/C,EAAEsY,QAAStV,IACT,IAAIC,EAAIjG,GAAEi+B,cAAcj4B,EAAE86B,OAC1Bv9B,EAAEv/B,IAAIgiC,EAAEg7F,KAAMj7F,GAAIA,GAAKE,QAEpB,CACL,IAAIF,EAAI,EACR/C,EAAEsY,QAAStV,IACT,IAAIC,EAAU,WAAN7C,EAAiBpjB,GAAE69F,uBAAuB73E,EAAEg7F,MAAQh7F,EAAEg7F,KAAM96F,EAAI,EACxE,IAAK,IAAIE,EAAI,EAAGA,EAAIJ,EAAE86B,MAAM,KAAM16B,EAAG,CACnC,IAAIyB,EAAIzB,EAAInD,EAAG,GAAK8C,EACpB,IAAK,IAAI0D,EAAI,EAAGA,EAAIzD,EAAE86B,MAAM,KAAMr3B,EAChClG,EAAEsE,EAAI4B,GAAKxD,EAAEC,KAEjBH,GAAKC,EAAE86B,MAAM,KAGjB,OAAOv9B,EAET,IAAIy2F,GAAKyF,GAAG,CAACz8F,EAAGC,IAAOD,IAAMC,EAAK,EAAI,GAClCg+F,GAAKb,GAAGn0H,GAAI+tH,GAAI,KAAM,QACtBkH,GAAK,CAAE5mE,WAAYruD,GAAIsuD,YAAa,MAAOuO,WAAYm4D,IACvD/G,GAAKyG,GAAI39F,GAAM0C,KAAK7d,IAAImb,IACxBm+F,GAAKN,GAAGx0H,GAAI6tH,GAAI,WAChBkH,GAAK,CAAE9mE,WAAYjuD,GAAIkuD,YAAa,MAAOuO,WAAYq4D,IACvD/G,GAAKuG,GAAI39F,GAAM0C,KAAKzd,MAAM+a,IAC1Bq+F,GAAKR,GAAGp0H,GAAI2tH,IACZkH,GAAK,CAAEhnE,WAAY7tD,GAAI8tD,YAAa,MAAOuO,WAAYu4D,IACvD7G,GAAKmG,GAAI39F,GAAM0C,KAAK7c,MAAMma,IAC1Bu+F,GAAKV,GAAG5zH,GAAIutH,IACZgH,GAAK,CAAElnE,WAAYrtD,GAAIstD,YAAa,MAAOuO,WAAYy4D,IACvDjH,GAAKmF,GAAG,CAACz8F,EAAGC,IAAOyC,KAAK7c,MAAMma,EAAIC,IAClCw+F,GAAKrB,GAAGjzH,GAAImtH,GAAI,KAAM,SACtBoH,GAAK,CAAEpnE,WAAYntD,GAAIotD,YAAa,MAAOuO,WAAY24D,IAC3D,SAAS/G,GAAG13F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,GACnC,IAAIE,EAAIxkB,GAAG,CAAC0hB,EAAGyC,GAAI3C,GACnB,IAAK,IAAIyE,EAAI,EAAGA,EAAIvE,EAAGuE,IAAK,CAC1B,IAAI4B,EAAI,GAAIC,EAAI,EAChB,IAAK,IAAIC,EAAI,EAAGA,EAAIpG,EAAGoG,IAAK,CAC1B,IAAII,EAAI/G,EAAE6E,EAAItE,EAAIoG,GAClBD,GAAKK,EAAI/D,EAAE2D,GAAIF,EAAE+D,KAAKzD,GAExB,GAAIL,EAAI,GAAKA,GAAKxD,EAAIH,EACpB,MAAM,IAAIH,MAAM,oBAAoB6D,yBAAyBxD,KAC/D,IAAK,IAAI0D,EAAI,EAAGA,EAAI5D,EAAG4D,IACrBvD,EAAE3lC,OAAOonC,EAAI9B,EAAI4D,GAAK1G,EAAG9/B,OAAO8/B,EAAGs5B,WAAW7yB,EAAI3D,EAAI4D,IAE1D,OAAOvD,EAET,SAASw0F,GAAG53F,EAAGC,EAAIG,GACjB,IAAIE,EAAI1hB,GAAGwhB,EAAGJ,EAAEq9B,OAChB,IAAK,IAAI98B,EAAI,EAAGA,EAAID,EAAEu9B,OAAQt9B,EAAG,CAC/B,IAAIyC,EAAI1C,EAAEi5B,WAAWh5B,GAAG5J,QAASsM,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAII,EAAInD,EAAGm6B,WAAW,CAACn3B,EAAGC,IAC3EF,EAAE,GAAK/C,EAAGxiC,OAAO2lC,GACjB,IAAIyB,EAAI7E,EAAEo6B,WAAWp3B,GACrB,GAAK6B,GAAKA,EAAI7E,EAAEviC,OAAOoB,SAAWyhC,EAAE7iC,OAAO8iC,GAAKP,EAAEviC,OAAOonC,IAE3D,OAAOvE,EAET,IAAI03F,GAAKyE,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,EAAK,EAAI,GAChC0+F,GAAKvB,GAAG/xH,GAAI2sH,GAAI,KAAM,QACtB4G,GAAK,CAAEtnE,WAAYjsD,GAAIksD,YAAa,MAAOuO,WAAY64D,IACvD7G,GAAK2E,GAAG,CAACz8F,EAAGC,IAAOD,GAAKC,EAAK,EAAI,GACjC4+F,GAAKzB,GAAG7xH,GAAIusH,GAAI,KAAM,QACtBgH,GAAK,CAAExnE,WAAY/rD,GAAIgsD,YAAa,MAAOuO,WAAY+4D,IACvDzG,GAAKqE,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,EAAK,EAAI,GAChC8+F,GAAK3B,GAAGvwH,GAAIurH,GAAI,KAAM,QACtB4G,GAAK,CAAE1nE,WAAYzqD,GAAI0qD,YAAa,MAAOuO,WAAYi5D,IACvD7G,GAAKuE,GAAG,CAACz8F,EAAGC,IAAOD,GAAKC,EAAK,EAAI,GACjCg/F,GAAK7B,GAAGrwH,GAAImrH,GAAI,KAAM,QACtBgH,GAAK,CAAE5nE,WAAYvqD,GAAIwqD,YAAa,MAAOuO,WAAYm5D,IAC3D,SAAS3G,GAAGt4F,EAAGC,EAAIG,GACjB,IAAIE,GAAKL,EAAKD,IAAMI,EAAI,GAAIG,EAAIvD,GAAEu9B,oBAAoBn6B,EAAG,WACzDG,EAAE,GAAKP,EACP,IAAK,IAAI+C,EAAI,EAAGA,EAAIxC,EAAE1hC,OAAQkkC,IAC5BxC,EAAEwC,GAAKxC,EAAEwC,EAAI,GAAKzC,EACpB,OAAOC,EAET,IAAIi4F,GAAKmF,GAAI39F,GAAM0C,KAAKrY,IAAI2V,IACxBm/F,GAAKtB,GAAG1wH,GAAIqrH,IACZ4G,GAAK,CAAE9nE,WAAYnqD,GAAIoqD,YAAa,MAAOuO,WAAYq5D,IAC3D,SAASzG,GAAG14F,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIvD,GAAEm8B,uBAAuB74B,EAAGtD,GAAEi+B,cAAc76B,IACpD,IAAK,IAAI2C,EAAI,EAAGA,EAAIxC,EAAE1hC,SAAUkkC,EAAG,CACjC,IAAIC,EAAID,EAAI9C,EAAIgD,EAAIjD,EAAEgD,GACtB,IAAK,IAAIE,EAAI,EAAGA,EAAIjD,IAAMiD,EAAG,CAC3B,IAAIE,EAAIpD,EAAEgD,EAAIE,IACbivB,OAAOppC,MAAMqa,IAAMA,EAAIH,KAAOA,EAAIG,GAErC7C,EAAEwC,GAAKE,EAET,OAAO1C,EAET,IAAIq4F,GAAK6D,GAAG,CAACz8F,EAAGC,IAAOyC,KAAK3W,IAAIiU,EAAGC,IAC/Bo/F,GAAKjC,GAAG/tH,GAAIupH,IACZ0G,GAAK,CAAEhoE,WAAYjoD,GAAIkoD,YAAa,MAAOuO,WAAYu5D,IACvDvG,GAAK2D,GAAG,CAACz8F,EAAGC,IAAOyC,KAAK3V,IAAIiT,EAAGC,IAC/Bs/F,GAAKnC,GAAGztH,GAAImpH,IACZ0G,GAAK,CAAEloE,WAAY3nD,GAAI4nD,YAAa,MAAOuO,WAAYy5D,IACvDvG,GAAKyD,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,GACvBw/F,GAAKpC,GAAG,CAACr9F,EAAGC,EAAIG,EAAGE,KAAM,CAAGvO,KAAMiO,EAAII,EAAIH,EAAKK,EAAGrY,KAAM+X,EAAIM,EAAIL,EAAKG,KACrEs/F,GAAKtC,GAAG/sH,GAAI2oH,GAAIyG,IAChBE,GAAK,CAAEroE,WAAYjnD,GAAIknD,YAAa,MAAOuO,WAAY45D,IAC3D,SAASxG,GAAGl5F,EAAGC,EAAIG,GACjB,IAAIE,EAAItD,GAAEq7B,mBAAmB,EAAGj4B,GAChC,OAAO44F,GAAG,GAAI/4F,EAAIK,EAAGN,EAAGI,GAE1B,SAASw/F,GAAG5/F,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C01F,GAAEr1F,EAAG,OACL,IAAIC,EAAIH,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,QAASslC,EAAGC,GAAKk2F,GAAG34F,EAAGD,EAAEw9B,MAAOx9B,EAAE+8B,OAC/D,OAAOj9B,EAAE41F,eAAehzF,EAAG1C,EAAE+8B,MAAOt6B,GAEtC,IAAI88F,GAAK,CAAEvoE,WAAY/mD,GAAIgnD,YAAa,MAAOuO,WAAY85D,IACvDxG,GAAKqD,GAAG,CAACz8F,EAAGC,IAAOD,IAAMC,EAAK,EAAI,GAClC6/F,GAAK1C,GAAGrsH,GAAIqoH,GAAI,KAAM,QACtB2G,GAAK,CAAEzoE,WAAYvmD,GAAIwmD,YAAa,MAAOuO,WAAYg6D,IAC3D,SAAS3D,GAAGn8F,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI9C,EAAGphC,OAAQmkC,EAAIhG,GAAEi+B,cAAch7B,GAAKgD,EAAIjG,GAAEm7B,eAAel4B,GAAKiD,EAAIlG,GAAEm7B,eAAe53B,GAAI6C,EAAIpG,GAAEm8B,uBAAuB/4B,EAAGpD,GAAEi+B,cAAc16B,IAC/I,IAAK,IAAIsE,EAAI,EAAGA,EAAI7B,IAAK6B,EAAG,CAC1B,IAAI4B,EAAIzJ,GAAEu8B,WAAW10B,EAAG9B,EAAGE,GAAIyD,EAAI,IAAI0sB,MAAM3sB,EAAE5nC,QAC/C,IAAK,IAAIkoC,EAAI,EAAGA,EAAIL,EAAE7nC,OAAQkoC,IAC5BL,EAAEK,GAAKN,EAAEnG,EAAEyG,IACb,IAAIJ,EAAI3J,GAAEo9B,WAAW1zB,EAAG3D,EAAGG,GAC3BE,EAAEuD,GAAK3G,EAAE6E,GAEX,OAAOzB,EAET,SAAS48F,GAAGhgG,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+3D,KAAMj1D,GAAM3C,EAC3Eu1F,GAAEp1F,EAAG,aACL,IAAIyC,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAI,IAAImwB,MAAMpwB,GACtC,IAAK,IAAIyD,EAAI,EAAGA,EAAIxD,EAAEpkC,OAAQ4nC,IAC5BxD,EAAEwD,GAAKlG,EAAEu9B,MAAM/6B,EAAE0D,IACnB,IAAIvD,EAAI5C,EAAEib,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ2lC,EAAI+4F,GAAGj5F,EAAG3C,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,EAAGE,GACpE,MAAO,CAAEs8B,OAAQj/B,EAAE0mC,MAAM5jC,EAAGH,EAAG1C,EAAE88B,OAAQS,MAAO76B,EAAGo6B,MAAO98B,EAAE88B,OAE9D,IAAI4iE,GAAK,CAAE3oE,WAAYz9C,GAAI09C,YAAa,MAAOuO,WAAYk6D,IAC3D,SAAS1G,GAAGt5F,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAK/lB,GAAE+8F,0BAA0B/5E,EAAGM,GAAI0C,EAAIpG,GAAGqD,EAAI,SAAUgD,EAAIjG,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAc16B,GAAIyC,GAAIE,EAAIlG,GAAEi+B,cAAcl4B,GAC3I,IAAK,IAAIK,EAAI,EAAGA,EAAIH,EAAEpkC,SAAUukC,EAAG,CACjC,IAAIyB,EAAIzB,EAAIF,EAAGuD,EAAI,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIxD,IAAKwD,EACvBD,GAAKrG,EAAEyE,EAAI6B,GACbzD,EAAEG,GAAKqD,EAET,MAAO,CAAEy5F,QAASj9F,EAAGy1C,SAAUn4C,EAAG4/F,SAAUn9F,GAE9C,SAASo9F,GAAGpgG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxFq1F,GAAEp1F,EAAG,QACL,IAAI0C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIpmB,GAAE+9F,mBAAmB73E,EAAGD,GAAI4B,EAAI3B,EAAGuD,EAAIlG,EAAGmG,EAAI,GACvG,MAALtD,IAAcqD,EAAIu5F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQsD,EAAE8D,KAAK/D,GAAI5B,EAAI7nB,GAAE0+F,iBAAiB72E,EAAEhmC,OAAQokC,IACxH,IAAI0D,EAAIvG,EAAEmb,KAAKp7C,IAAIsmC,EAAE84B,QAAQ9hE,QAAUyiI,QAASn5F,EAAG2xC,SAAU7tC,EAAGs1F,SAAUr1F,GAAMwuF,GAAG7yF,EAAEq3B,MAAOr3B,EAAE42B,MAAO12B,EAAG9B,GAAIgF,EAAIgB,EAChH,OAAO7H,IAAM6G,EAAI7sB,GAAEs9F,qBAAqBzvE,EAAG3H,IAAKwD,EAAE4R,QAASlN,GAAMhL,EAAE88F,8BAA8B9xF,IAAKhL,EAAE41F,eAAensF,EAAGiB,EAAG/D,GAE/H,IAAIs5F,GAAK,CAAE/oE,WAAYjlD,GAAIklD,YAAa,MAAOuO,WAAYs6D,IAC3D,SAASE,GAAGtgG,EAAGC,EAAIG,GACjBJ,EAAEsY,QAAQ,CAAChY,EAAGC,KACZ,GAAID,EAAI,GAAKA,GAAKF,EAAG,CACnB,IAAI2C,EAAI/F,GAAEu8B,WAAWh5B,EAAGN,EAAGphC,OAAQm+B,GAAEm7B,eAAel4B,IAAKo2B,KAAK,KAC9D,MAAM,IAAIzzB,MAAM,WAAWG,QAAQzC,mBAAmBF,SAI5D,SAASmgG,GAAGvgG,EAAGC,GACb,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,SAAUuhC,EAAG,CACjC,IAAIE,EAAIN,EAAEI,GAAIG,EAAIH,IAAMJ,EAAEnhC,OAAS,EAAIohC,EAAKD,EAAEI,EAAI,GAAGvhC,OACrD,GAAiB,IAAbyhC,EAAEzhC,OACJ,MAAM,IAAI+jC,MAAM,kCAClB,GAAItC,EAAE,GAAK,EACT,MAAM,IAAIsC,MAAM,sCAClB,GAAItC,EAAEA,EAAEzhC,OAAS,GAAK0hC,EACpB,MAAM,IAAIqC,MAAM,4CAClB,IAAK,IAAIG,EAAI,EAAGA,EAAIzC,EAAEzhC,SAAUkkC,EAC9B,GAAIzC,EAAEyC,EAAI,GAAKzC,EAAEyC,GACf,MAAM,IAAIH,MAAM,oDAGxB,SAAS49F,GAAGxgG,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI,GAAIwC,EAAI,EAAGC,EAAI/C,EAAGphC,OAAS,EAAIuhC,EAAEvhC,OAAQokC,EAAI,IAAImwB,MAAMpwB,GAAGzd,KAAK,MAAM2tC,IAAI,IAAM,CAAC,IACxFqtE,GAAGngG,EAAGE,GACN,IAAI4C,EAAI,EACR,IAAK,IAAIE,EAAI,EAAGA,EAAInD,EAAGphC,OAAS,IAAKukC,EAAG,CACtCF,GAAKjD,EAAGmD,GACR,IAAIyB,EAAI5E,EAAGmD,EAAI,GACf,IAAK,IAAIqD,EAAI,EAAGA,EAAIvD,EAAI,IAAKuD,EAC3BxD,EAAEG,GAAGoH,KAAK/D,EAAI5B,GAElB,IAAK,IAAIzB,EAAI,EAAGA,EAAIpD,EAAEnhC,SAAUukC,EAAG,CACjC,IAAIyB,EAAI7E,EAAEoD,GAAIqD,EAAIzG,EAAEoD,GAAK,EACzB,IAAK,IAAIsD,EAAI,EAAGA,EAAItG,EAAEvhC,SAAU6nC,EAAG,CACjC,IAAIC,EAAIvG,EAAEsG,GAAIK,EAAIL,EAAIzG,EAAGphC,OAAS,EAClC,GAAIkoC,GAAK,EAAG,CACV,IAAI8D,EAAI5H,EAAE8D,GAAI+D,EAAID,EAAEA,EAAEhsC,OAAS,GAAK8nC,EAAE9B,GACtC,IAAK,IAAIgF,EAAIhF,EAAGgF,EAAIpD,IAAKoD,EACvB5G,EAAE8D,GAAGyD,KAAK7D,EAAEkD,EAAI,GAAKiB,GAEzBjG,EAAI8B,EAAE9B,GAAI4B,EAAIE,EAAEF,GAElBA,IAAM5B,IAAMtE,EAAEiK,KAAK,CAAC3F,EAAG4B,IAAK1D,GAAK0D,EAAI5B,GAEvC,MAAO,CAAE47F,UAAWx9F,EAAGy9F,YAAangG,EAAGogG,UAAW59F,GAEpD,SAAS69F,GAAG5gG,GACV,IAAIC,EAAK,GACT,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,SAAUuhC,EAAG,CACjC,IAAIE,EAAIN,EAAEI,GAAGvhC,OAAQ0hC,EAAIvD,GAAEk8B,kBAAkB,QAAS54B,GACtDL,EAAGuK,KAAKjK,GAAIP,EAAEI,GAAGkY,QAAQ,CAACvV,EAAGC,IAAMzC,EAAEyC,GAAKD,GAE5C,OAAO9C,EAET,SAAS4gG,GAAG7gG,EAAGC,GACb,IAAIG,EAAIJ,EAAErJ,MAAM,EAAGsJ,GACnB,KAAOG,EAAEvhC,OAASohC,GAChBG,EAAEoK,KAAK,GACT,IAAK,IAAIlK,EAAIL,EAAIK,EAAIN,EAAEnhC,OAAQyhC,IAC7BF,EAAEH,EAAK,IAAMD,EAAEM,GACjB,OAAOF,EAET,SAAS0gG,GAAG9gG,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAI69F,GAAG5gG,EAAI,GAAG,GAAIgD,EAAI49F,GAAG99F,EAAG,GAAG,GAAIG,EAAI,EAC3C,IAAK,IAAIE,KAAKhD,EACZ,IAAK,IAAIyE,EAAIzB,EAAE,GAAIyB,EAAIzB,EAAE,KAAMyB,EAAG,CAChC,IAAK,IAAI4B,EAAI,EAAGA,EAAInG,IAAKmG,EACvBlG,EAAE2C,EAAID,EAAIwD,GAAKzG,EAAE6E,EAAI7B,EAAIyD,KACzBvD,GAGR,SAAS69F,GAAG/gG,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI9C,EAAGtJ,QACXoM,EAAE,GAAKxC,EACP,IAAIyC,EAAIhG,GAAEk8B,kBAAkB94B,EAAGpD,GAAEi+B,cAAcl4B,IAAKE,EAAIjD,EAAEnhC,OAAQqkC,EAAU,IAAND,EAAU,EAAIA,EAAIhD,EAAG,GAC3F,OAAO6gG,GAAG9gG,EAAGC,EAAIK,EAAG4C,EAAGF,EAAGD,GAAI,CAACC,EAAGD,GAEpC,SAASy2F,GAAGx5F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAChC,GAAiB,IAAbjD,EAAEnhC,OACJ,MAAM,IAAI+jC,MAAM,wCAClB,GAAqB,IAAjB3C,EAAG,GAAGphC,OACR,MAAM,IAAI+jC,MAAM,qCAClB,IAAIM,EAAIjD,EAAG,GAAG,GAAK,EACnB,GAAIqgG,GAAGv9F,EAAGC,EAAGE,GAAiB,IAAb5C,EAAEzhC,OACjB,MAAM,IAAI+jC,MAAM,+BAClB,IAAIQ,EAAI9C,EAAE,IAAMmgG,UAAW57F,EAAG67F,YAAaj6F,EAAGk6F,UAAWj6F,GAAM85F,GAAGz9F,EAAGC,EAAGhD,EAAGoD,GAAIuD,EAAIi6F,GAAG/7F,GAAIkC,EAAIg6F,GAAG3gG,EAAGE,EAAGC,EAAGkG,EAAGC,GAC7G,MAAO,CAACC,EAAGI,EAAE,GAAIA,EAAE,IAErB,IAAIi6F,GAAK,WACT,SAAStH,GAAG15F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC7B,GAAI/C,EAAGphC,OAAS,EACd,MAAM,IAAI+jC,MAAM,qCAClB,GAAIrC,EAAE1hC,OAAS,EACb,MAAM,IAAI+jC,MAAM,qCAClB,GAAII,EAAEnkC,OAAS,EACb,MAAM,IAAI+jC,MAAM,qCAClB,IAAIK,EAAkB,IAAdhD,EAAGphC,OAAcqkC,EAAiB,IAAb3C,EAAE1hC,OAAcukC,EAAiB,IAAbJ,EAAEnkC,OAAcgmC,EAAI,GACrE5B,GAAK4B,EAAE2F,KAAKvK,EAAG,IAAKiD,GAAK2B,EAAE2F,KAAKjK,EAAE,IAAK6C,GAAKyB,EAAE2F,KAAKxH,EAAE,IACrD,IAAK,IAAI8H,EAAI,EAAGA,EAAIjG,EAAEhmC,SAAUisC,EAC9B,GAAIjG,EAAEiG,KAAOjG,EAAEiG,EAAI,GACjB,MAAM,IAAIlI,MAAM,uDACpB,IAAI6D,EAAiB,IAAb5B,EAAEhmC,OAAe,EAAIgmC,EAAE,GAAI6B,EAAI1J,GAAEk8B,kBAAkB,QAASzyB,EAAI,GACxEC,EAAE,GAAK,EACP,IAAK,IAAIoE,EAAI,EAAGA,EAAIrE,IAAKqE,EAAG,CAC1B,IAGIa,EAHA9B,EAAI5G,EAAIjD,EAAE,GAAKA,EAAE8K,GAAIM,EAAIlI,EAAI5C,EAAE,GAAKA,EAAEwK,GAAIY,EAAItI,EAAIL,EAAE,GAAKA,EAAE+H,GAC/D,GAAU,IAANY,EACF,MAAM,IAAI9I,MAAM,uBAElB,GAAI8I,EAAI,GAAKN,EAAIvB,GAAK6B,EAAI,GAAKN,EAAIvB,EACjC8B,EAAI,OACD,GAAIA,EAAIjJ,KAAK3jB,KAAK2jB,KAAK5nB,KAAKswB,EAAIvB,GAAK6B,IAAKC,EAAIq1F,GACjD,MAAM,IAAIp+F,MAAM,yCAAyCo+F,IAC3Dt6F,EAAEoE,EAAI,GAAKpE,EAAEoE,GAAKa,EAEpB,IAAIhF,EAAID,EAAED,GAAIM,EAAI/J,GAAEk8B,kBAAkB94B,EAAGuG,GAAIkE,EAAI,EACjD,IAAK,IAAIC,EAAI,EAAGA,EAAIrE,IAAKqE,EAAG,CAC1B,IAAIjB,EAAInD,EAAEoE,EAAI,GAAKpE,EAAEoE,GAAIM,EAAInI,EAAIjD,EAAE,GAAKA,EAAE8K,GAAIY,EAAItI,EAAIL,EAAE,GAAKA,EAAE+H,GAC/D,IAAK,IAAIa,EAAI,EAAGA,EAAI9B,IAAK8B,EACvB5E,EAAE8D,KAAOO,EAAGA,GAAKM,EAErB,MAAO,CAAChF,EAAGK,GAEb,IAAIk6F,GAAKjkH,GAAEq7F,iBACP6oB,GAAK,MACP,YAAYjhG,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACtClmC,KAAKm/D,MAAQ79B,EAAIthC,KAAKwiI,WAAa/gG,EAAGzhC,KAAKlB,OAAS6iC,EAAG3hC,KAAKyiI,YAAc7gG,EAAG5hC,KAAK0iI,YAAct+F,EAAGpkC,KAAK2uF,aAAetqD,EAAGrkC,KAAK2iI,kBAAoBr+F,EAAGtkC,KAAK4iI,mBAAqBr+F,EAAGvkC,KAAK6iI,yBAA2Bp+F,EAAGzkC,KAAK6uF,kBAAoBxwE,GAAEk/F,2BAA2Br3E,GAAIlmC,KAAK8iI,WAAazkH,GAAE6+F,cAAcl9G,KAAK6uF,mBAEzT,+BAA+BvtD,GAC7B,OAAOthC,KAAK6uF,kBAAkB,KAAOyzC,GAAGlqB,eAAiBp4G,KAAK6uF,kBAAkBvtD,EAAK,GAAKthC,KAAK6uF,kBAAkBvtD,GAEnH,sBAAsBA,GACpB,OAAOthC,KAAK6uF,kBAAkB,KAAOyzC,GAAGlqB,eAAiBp4G,KAAK4iI,mBAAmBthG,EAAK,GAAKthC,KAAK4iI,mBAAmBthG,GAErH,YAAYA,GACV,IAAIG,EAAIzhC,KAAK+iI,sBAAsBzhG,EAAK,GACxC,OAAQthC,KAAKgjI,+BAA+B1hG,EAAK,IAC/C,KAAKghG,GAAGjqB,aACN,OAAOkqB,GAAGU,sBAAsBxhG,GAClC,KAAK6gG,GAAG/pB,WACN,OAAOgqB,GAAGW,oBAAoBzhG,GAChC,QACE,MAAM,IAAIwC,MAAM,gCAAgCq+F,GAAGtiI,KAAKgjI,+BAA+B1hG,EAAK,MAGlG,2BAA2BA,GACzB,IAAIG,EAAIH,EAAGphC,OACX,GAAU,IAANuhC,GAAiB,IAANA,EACb,OAAO,EACT,IAAIE,EAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAI,IAAKG,EAAG,CAC9B,IAAIwC,EAAI9C,EAAGM,EAAI,GAAKN,EAAGM,GACvBwC,EAAIzC,IAAMA,EAAIyC,GAEhB,OAAOzC,EAET,6BAA6BL,GAC3B,IAAIG,EAAIH,EAAGphC,OACX,GAAU,IAANuhC,EACF,OAAO,EACT,IAAIE,EAAI,EAAGC,EAAIN,EAAG,GAAI8C,EAAI,EAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAI5C,IAAK4C,EAAG,CAC1B,IAAIC,EAAIhD,EAAG+C,GACXC,IAAM1C,IAAMA,EAAI0C,EAAGF,EAAIL,KAAK3W,IAAIiX,EAAI1C,EAAGyC,GAAIzC,EAAI0C,GAEjD,OAAON,KAAK3W,IAAIqU,EAAIE,EAAGyC,GAEzB,sBAAsB9C,EAAIG,EAAGE,GAAI,GAC/B,GAAiB,IAAbF,EAAEvhC,OAAc,CAClB,IAAe,IAAXohC,EAAG,GACL,MAAO,GACT,MAAM,IAAI2C,MAAM,kFAElB,OAAOk/F,GAAG7hG,EAAIK,GAEhB,oBAAoBL,GAClB,IAAIG,EAAIzhC,KAAKyiI,YAAa9gG,EAAI3hC,KAAK2iI,kBACnCtkH,GAAE6hG,0BAA0Bv+E,EAAGF,GAC/B,IAAIG,EAAI5hC,KAAKojI,sBAAsBpjI,KAAKm/D,MAAOn/D,KAAKwiI,YAAan+F,EAAIhmB,GAAEo8F,kCAAkCz6G,KAAK8iI,WAAYlhG,EAAGH,GAC7H4C,EAAE,GAAK,IAAMA,EAAE,GAAK/C,GACpB,IAAK,IAAIgD,EAAI,EAAGA,GAAKtkC,KAAK8iI,aAAcx+F,EACtCD,EAAEC,GAAK,IAAMD,EAAEC,GAAKtkC,KAAKqjI,YAAY/+F,IACvC,OAAOD,EAET,gCAAgC/C,EAAIG,EAAGE,GACrC,IAAIC,EAAImC,KAAK3V,IAAIkT,EAAIK,GAAIyC,EAAI,GAAIC,EAAI,EACrC,IAAK,IAAIC,EAAI,EAAGA,EAAI1C,IAAK0C,EAAGD,GAAK5C,EAC/B2C,EAAEyH,KAAKxH,GACT,IAAK,IAAIC,EAAI1C,EAAG0C,EAAIhD,IAAMgD,EACxBF,EAAEyH,MAAM,GACV,OAAOxN,GAAE26B,OAAO50B,EAAElkC,SAAWohC,EAAI,IAAM,2DAA4D8C,EAErG,6BAA6B9C,EAAIG,EAAGE,EAAGC,GACrC,IAAIwC,EAAI9C,EAAGphC,OAAQmkC,EAAI,GACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAI,IAAKE,EAAG,CAC9B,IAAIC,EAAIjD,EAAGgD,EAAI,GAAKhD,EAAGgD,GAAIG,EAAIV,KAAK3V,IAAIwT,EAAG2C,GAAI2B,EAAIzE,EAAE6C,IAC9C,IAAP4B,IAAazB,EAAI,GACjB,IAAK,IAAIqD,EAAI,EAAGA,EAAIrD,IAAKqD,EACvBzD,EAAEwH,KAAK3F,GAAIA,GAAKvE,EAClB,IAAK,IAAImG,EAAI,EAAGA,EAAIvD,EAAIE,IAAKqD,EAC3BzD,EAAEwH,MAAM,GAEZ,GAAIzH,EAAI,GAAKC,EAAEnkC,SAAWohC,EAAG8C,EAAI,GAC/B,MAAM,IAAIH,MAAM,2BAClB,OAAOI,EAET,+BAA+B/C,EAAIG,EAAGE,EAAGC,GACvC,IAAIwC,EAAI9C,EAAGphC,OAAQmkC,EAAI,GACvB,GAAU,IAAND,EACF,MAAO,GACT,IAAIE,EAAI,EAAGC,EAAIjD,EAAG,GAClB,GAAIiD,GAAK9C,EAAEvhC,OACT,MAAM,IAAI+jC,MAAM,yBAAyBM,6BAA6B9C,EAAEvhC,UAC1E,IAAIukC,EAAIhD,EAAE8C,GACVF,EAAEwH,KAAKpH,GACP,IAAK,IAAIyB,EAAI,EAAGA,EAAI9B,IAAK8B,EAAG,CAC1B,IAAI4B,EAAIxG,EAAG4E,GACX,GAAI4B,IAAMvD,EACRE,GAAK,MAAQH,EAAGA,EAAI1C,EAAI6C,GAAK9C,EAAI8C,GAAK,OACnC,CACH,GAAIH,EAAI,EAAGC,EAAIuD,EAAGA,GAAKrG,EAAEvhC,OACvB,MAAM,IAAI+jC,MAAM,sBAAsB6D,4BAA4BrG,EAAEvhC,UACtEukC,EAAIhD,EAAEqG,GAERzD,EAAEwH,KAAKpH,GAET,GAAIJ,EAAEnkC,SAAWohC,EAAGphC,OAClB,MAAM,IAAI+jC,MAAM,oBAClB,OAAOI,EAET,qBAAqB/C,EAAIG,EAAGE,EAAGC,GAC7B,IAAIwC,EAAIpkC,KAAK+iI,sBAAsBzhG,GAAK+C,EAAIrkC,KAAKgjI,+BAA+B1hG,GAChF,OAAQ+C,GACN,KAAKi+F,GAAGjqB,aACN,OAAOr4G,KAAKsjI,+BAA+Bl/F,EAAG3C,EAAGE,EAAGC,GACtD,KAAK0gG,GAAG/pB,WACN,GAAIn0E,EAAElkC,OAAS,EAAIuhC,EAAEvhC,OACnB,MAAM,IAAI+jC,MAAM,mDAAmDG,EAAElkC,OAAS,OAAOuhC,EAAEvhC,UACzF,OAAOF,KAAKujI,6BAA6Bn/F,EAAG3C,EAAGE,EAAGC,GACpD,QACE,MAAM,IAAIqC,MAAM,+BAA+Bq+F,GAAGj+F,KAGxD,wBACE,IAAI/C,EAAKthC,KAAK4iI,mBAAmB,GACjC,GAAsC,IAAlC5iI,KAAK6uF,kBAAkB3uF,OACzB,MAAM,IAAI+jC,MAAM,iCAClB,IAAIxC,EAAIzhC,KAAK6uF,kBAAkB,GAC/B,OAAQptD,GACN,KAAK6gG,GAAGlqB,eACN,OAAO92E,EAAG,GACZ,KAAKghG,GAAGjqB,aACN,MAAM,IAAIp0E,MAAM,kDAClB,KAAKq+F,GAAG/pB,WACN,OAAOv4G,KAAK6iI,yBAAyB,GAAG,GAAK,EAC/C,QACE,MAAM,IAAI5+F,MAAM,sBAAsBq+F,GAAG7gG,KAG/C,UACE,GAAIzhC,KAAK4iI,mBAAmB,GAAG1iI,QAAU,EACvC,MAAM,IAAI+jC,MAAM,wEAClB,IAAIxC,EAAIzhC,KAAKwjI,wBAAyB7hG,EAAI3hC,KAAKyjI,oBAAoBhiG,GAAIG,EAAI,IAAI6yB,MAAMz0D,KAAK8iI,WAAa,GACvGlhG,EAAEA,EAAE1hC,OAAS,GAAK,EAClB,IAAK,IAAIqkC,EAAI3C,EAAE1hC,OAAS,EAAGqkC,GAAK,IAAKA,EACnC3C,EAAE2C,GAAK3C,EAAE2C,EAAI,GAAK5C,EAAE4C,EAAI,GAC1B,IAAIH,EAAI++F,GAAGxhG,GAAG,GAAQ0C,EAAIhG,GAAEk8B,kBAAkBv6D,KAAK0iI,YAAarkG,GAAEi+B,cAAcl4B,IAChF,GAAIxC,EAAE,GAAKD,EAAE,GAAK,EAAG,CACnB,IAAI4C,EAAIvkC,KAAK0jI,gCAAgCjiG,EAAGG,EAAE,GAAID,EAAE,IACxD,IAAK,IAAI8C,EAAI,EAAGA,GAAKzkC,KAAK8iI,aAAcr+F,EACtCF,EAAIvkC,KAAK2jI,qBAAqBl/F,EAAI,EAAGF,EAAG3C,EAAE6C,GAAI9C,EAAE8C,IAClDzkC,KAAK4jI,UAAU5jI,KAAK8iI,WAAYv+F,EAAGF,EAAGD,GAExC,MAAO,CAACA,EAAGC,GAEb,UAAU/C,EAAIG,EAAGE,EAAGC,GAClB,GAAiB,IAAbD,EAAEzhC,OACJ,OACF,IAAIkkC,EAAIpkC,KAAKlB,OAAQulC,EAAI1C,EAAG2C,EAAI1C,EAAE5J,QAClCsM,EAAIA,EAAEtM,MAAMsJ,EAAK,GACjB,IAAIiD,EAAIlG,GAAEi+B,cAAch4B,GAAIG,EAAIhD,EAAEvhC,OAAQgmC,EAAIlmC,KAAK2uF,aACnD,GAAIzoD,EAAEhmC,SAAWqkC,GAAkB,IAAb2B,EAAEhmC,OAAc,CACpC,IAAIkoC,EAAIpoC,KAAK2iI,kBACblmG,GAAG,KACD,IAAIyP,EAAI3X,GAAE2R,EAAGkC,GACblC,EAAIvmB,GAAGusB,EAAG5H,GAAGi6B,aAGjB,IAAIz2B,EAAI,EAAGC,EAAI,EAAGC,EAAI,EACtB,IAAK,IAAII,EAAI,EAAGA,GAAK3D,IAAK2D,EAAG,CAC3B,IAAI8D,EAAI9D,EAAI3D,EAAIhD,EAAE2G,IAAM,EACxB,GAAI8D,IAAMlE,EAAV,CAIA,GAAID,EAAIC,EAAG,CACT,IAAImE,EAAI/H,EAAE6Q,SAASnN,EAAIvD,GAAI2G,EAAI7G,EAAE4Q,SAASlN,EAAIxD,GAAIkI,GAAKzE,EAAID,GAAKxD,EAChEs/F,GAAG34F,EAAGiB,EAAGM,GAEX,GAAIrE,GAAK3D,EAAG,CACV,IAAI0H,EAAIxK,EAAEzhC,OACVgsC,EAAInI,KAAK7c,MAAMilB,EAAI5H,GAErB,GAAI2H,EAAIlE,EACN,GAAiC,IAA7BhoC,KAAK2uF,aAAazuF,OACpBmkC,EAAE4Q,SAASjN,EAAIzD,EAAG2H,EAAI3H,GAAG3d,KAAK5mB,KAAK2uF,aAAa,IAAK3mD,EAAIkE,OAEzD,KAAOA,EAAIlE,GAAK,CACd,IAAImE,EAAI9H,EAAErM,MAAMgQ,EAAIzD,GACpBs/F,GAAG13F,EAAGjG,EAAG3B,KAAMyD,EAErBkE,EAAI,GAAKpE,EAAIM,EAAI,EAAGL,EAAIC,IAAMF,EAAIM,EAAGL,EAAIC,EAAGA,EAAID,EAAI,SAnBhDC,KAuBV,SAAS67F,GAAGxiG,EAAGC,EAAIG,GACjB,IAAK,IAAIE,EAAI,EAAGA,EAAIF,EAAGE,IACrBN,EAAEM,GAAKL,EAAGK,GAEd,SAASwhG,GAAG9hG,EAAGC,GACb,IAAIG,EAAI,GACR,IAAK,IAAIE,KAAKN,EAAG,CACf,GAAIM,EAAI,EAAG,CACT,IAAKL,EACH,MAAM,IAAI2C,MAAM,aAAatC,kBAC/B,GAAIA,GAAK,EACP,MAAM,IAAIsC,MAAM,aAAatC,mBAC/BA,GAAK,EAEPF,EAAEoK,KAAKlK,GAET,OAAOF,EAET,SAASw5F,GAAG55F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GACtC,OAAO,IAAI89F,GAAGlhG,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GAAGq/F,UAE/C,SAAS3I,GAAG95F,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIP,IAAMC,EAAI8C,EAAI/C,EAAIC,GAAMG,EAAI,EAAG4C,EAAI/C,EAAKD,GAAKI,EAAI,EACzD,GAAIG,GAAKwC,GAAKC,EACZ,OAAOhG,GAAEu9B,oBAAoB,EAAGj6B,GAClC,IAAI2C,EAAIP,KAAK5nB,IAAI4nB,KAAK3jB,MAAMkhB,EAAKD,GAAKI,IAAK8C,EAAIlG,GAAEu9B,oBAAoBt3B,EAAG3C,GACxEL,EAAKD,GAAW,IAANI,IAAYA,GAAK,GAAI8C,EAAE,GAAKlD,EACtC,IAAK,IAAIoD,EAAI,EAAGA,EAAIF,EAAErkC,OAAQukC,IAC5BF,EAAEE,GAAKF,EAAEE,EAAI,GAAKhD,EACpB,OAAO8C,EAET,IAAI82F,GAAK2D,GAAI39F,GAAM,EAAI0C,KAAKrK,KAAK2H,IAC7B0iG,GAAK7E,GAAG9oH,GAAIilH,IACZ2I,GAAK,CAAErrE,WAAYviD,GAAIwiD,YAAa,MAAOuO,WAAY48D,IAC3D,SAASxI,GAAGl6F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GACtC,IAAIyB,EAAI,CAACvE,EAAIC,EAAGA,GAAIkG,EAAIzG,EAAEviC,OAAQipC,EAAIzG,EAAGxiC,OACzC,GAAU,IAAN6iC,EACF,OAAO1hB,GAAGwhB,EAAGH,EAAGo9B,OAClB,IAAI12B,EAAIzD,aAAa/pB,GAAK+pB,EAAItkB,GAAGimB,EAAG5E,EAAGo9B,OAC3B,iBAALn6B,GAA6B,iBAALA,EAAgByD,EAAElpC,OAAO8nB,KAAK2d,GAAiB,kBAALA,GAAkByD,EAAElpC,OAAO8nB,MAAM2d,GAC1G,IAAK,IAAI6D,EAAI,EAAGA,EAAIhE,EAAGgE,IAAK,CAC1B,IAAI8D,EAAI,GAAIC,EAAI,EAChB,IAAK,IAAIjB,EAAI,EAAGA,EAAI7G,EAAG6G,IAAK,CAC1B,IAAIuB,EAAI3E,EAAEM,EAAI/D,EAAI6G,GAClBgB,EAAEL,KAAKY,GAAIN,GAAKM,EAAInI,EAAE4G,GAExB,GAAIiB,EAAI,GAAKA,GAAKxK,EAAIC,EACpB,MAAM,IAAIqC,MAAM,oBAAoBiI,yBAAyBzK,KAC/D,IAAK,IAAIyJ,EAAI,EAAGA,EAAItJ,EAAGsJ,IACrBzG,EAAIuD,EAAElpC,OAAOqtC,EAAIvK,EAAIsJ,IAAMnD,EAAEK,EAAIxG,EAAIsJ,GAAKlD,EAAElpC,OAAOqtC,EAAIvK,EAAIsJ,GAAiB,IAAZ5J,EAAG29B,KAAal3B,EAAE,GAAKA,EAAEK,EAAIxG,EAAIsJ,GAErG,OAAOlD,EAET,IAAIyzF,GAAKuD,GAAI39F,GAAM,GAAK,EAAI0C,KAAK7d,KAAKmb,KAClC4iG,GAAKhF,GAAGjoH,GAAKqqB,GAAM,GAAK,EAAI0C,KAAK7d,KAAKmb,KACtC6iG,GAAK,CAAEvrE,WAAY3hD,GAAI4hD,YAAa,MAAOuO,WAAY88D,IAC3D,SAASrI,GAAGv6F,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAIzL,GAAG08E,iBAAiB1zE,EAAGL,EAAIG,GAAI4C,EAAIhG,GAAEi+B,cAAc76B,GAAI6C,EAAIjG,GAAEm7B,eAAe73B,GACpF,GAAIyC,EAAG,CACL,IAAI0D,EAAInP,GAAGo8E,kBAAkBzzE,EAAIgD,GACjC,MAAa,WAAN1C,EAAiBP,EAAErJ,MAAM8P,EAAGA,EAAIzD,GAAKhD,EAAE4T,SAASnN,EAAGA,EAAIzD,GAEhE,IAAIE,EAAU,WAAN3C,EAAiBvjB,GAAE69F,uBAAuB76E,GAAKA,EAAGoD,EAAIxkB,GAAG0hB,EAAGC,EAAG2C,GAAI2B,EAAIjmB,GAAGwhB,EAAGG,GACrF,IAAK,IAAIkG,EAAI,EAAGA,EAAI5B,EAAEg5B,OAAQp3B,EAAG,CAC/B,IAAIC,EAAI7B,EAAE00B,WAAW9yB,GAAIE,EAAID,EAAEwsB,IAAI,CAACnsB,EAAG8D,IAAM9D,EAAI9G,EAAG4K,IACpDhG,EAAE7jC,IAAIoiC,EAAEjjC,OAAOwmC,MAAOD,GAExB,MAAa,WAANnG,EAAiBvjB,GAAE29F,uBAAuB91E,EAAEpnC,QAAUonC,EAAEpnC,OAEjE,SAASqlI,GAAG9iG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG86B,KAAM76B,GAAM1C,EACrFq1F,GAAEp1F,EAAG,SACL,IAAK0C,EAAGC,GAAK5L,GAAG88E,iBAAiB7zE,EAAGwC,EAAGC,GACvC1L,GAAGk8E,kBAAkBjzE,EAAG0C,EAAGC,GAC3B,IAAIE,EAAIhD,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQonC,EAAI01F,GAAGn3F,EAAGH,EAAGC,EAAG3C,EAAEu9B,MAAOv9B,EAAE88B,OAChE,OAAOj9B,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAOx4B,GAEtC,IAAIk+F,GAAK,CAAEzrE,WAAYnhD,GAAIohD,YAAa,MAAOuO,WAAYg9D,IAC3D,SAASrI,GAAGz6F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC7B,IAAIC,EAAIhD,EAAG,GAAIiD,EAAIH,EAAE,GAAIK,EAAI,IAAIgwB,MAAMlwB,GAAI2B,EAAI,IAAIuuB,MAAMnwB,GAAIwD,EAAIxG,EAAG,GACpE,GAAU,IAANiD,EAAS,CACX,GAAU,IAAND,EACF,MAAM,IAAIL,MAAM5lB,GAAEu/F,gDAAgDt5E,IACpE,IAAI6H,EAAI9N,GAAEk8B,kBAAkB94B,EAAG,GAAIyJ,EAAI7M,GAAEk8B,kBAAkB34B,EAAG,GAC9D,MAAO,CAACuK,EAAG,CAAC,EAAGrE,GAAIoD,EAAGzG,EAAGyB,GAE3B,IAAI6B,GAAI,EAAMC,EAAI,EAAGI,EAAI,IAAIqsB,MAAMlwB,GAAG3d,KAAK,GAC3C,IAAK,IAAIulB,EAAI,EAAGA,EAAI7H,IAAK6H,EAAG,CAC1B,IAAIjB,EAAI7J,EAAE8K,EAAIrE,GACd,GAAIoD,EAAI,EACN,MAAM,IAAIjH,MAAM5lB,GAAEy/F,gDAAgD3xE,EAAGjB,IACvE,GAAIA,GAAK3G,EACP,MAAM,IAAIN,MAAM5lB,GAAE2/F,kDAAkD7xE,EAAGjB,EAAG3G,MAC1E6D,EAAE8C,GAAInD,EAAIA,GAAKmD,GAAKlD,EAAGA,EAAIkD,EAE/B,IAAIgB,GAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAI5H,IAAK4H,EAAG,CAC1B,IAAIjB,EAAa,IAAT9C,EAAE+D,GACV1H,EAAE0H,GAAKjB,EAAGgB,EAAIA,IAAMhB,EAAG9C,EAAE+D,GAAKpI,KAAK3W,IAAIgb,EAAE+D,GAAI,GAAIA,EAAI,IAAM/D,EAAE+D,IAAM/D,EAAE+D,EAAI,IAE3E,GAAID,GAAKnE,EAAG,CACV,IAAIoE,EAAI9K,EAAG6J,EAAIvJ,EACf,IAAK,IAAI8K,EAAI,EAAGA,EAAInI,IAAKmI,EACvBvG,EAAEuG,GAAKA,EACT,MAAO,CAACN,EAAG,CAAC7H,EAAGwD,GAAIoD,EAAGzG,EAAGyB,GACpB,CACL,IAAIiG,EAAI/D,EAAE7D,EAAI,GAAI2G,EAAI7M,GAAEk8B,kBAAkB94B,EAAG0K,EAAIrE,GAAI2E,EAAIpO,GAAEk8B,kBAAkB34B,EAAGuK,GAAIY,EAAI,IAAI0nB,MAAMlwB,GAAG3d,KAAK,GAC1G,IAAK,IAAIomB,EAAI,EAAGA,EAAI1I,IAAK0I,EAAG,CAC1B,IAAIC,EAAI5L,EAAE2L,EAAIlF,GAAIoF,EAAIH,EAAEE,GAAIG,GAAW,IAANH,EAAU,EAAI7E,EAAE6E,EAAI,IAAMC,EAC3DH,EAAEE,KACF,IAAK,IAAII,EAAI,EAAGA,EAAIvF,IAAKuF,EACvBnC,EAAEkC,EAAItF,EAAIuF,GAAKhM,EAAE2L,EAAIlF,EAAIuF,GAC3BZ,EAAEW,GAAKzL,EAAEqL,GAAI9G,EAAE8G,GAAKI,EAEtB,IAAK,IAAIJ,EAAI,EAAGA,EAAIzI,IAAKyI,EACvB,GAAa,IAATD,EAAEC,GAAU,CACd,IAAIE,EAAU,IAANF,EAAU,EAAI5E,EAAE4E,EAAI,GAC5B9B,EAAEgC,EAAIpF,EAAI,GAAKkF,EACf,IAAK,IAAII,EAAI,EAAGA,EAAItF,IAAKsF,EACvBlC,EAAEgC,EAAIpF,EAAIsF,GAAK,EACjBX,EAAES,GAAK7I,EAEX,MAAO,CAAC6G,EAAG,CAACiB,EAAGrE,GAAI2E,EAAGhI,EAAGyB,IAG7B,SAAS81F,GAAG36F,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI/F,GAAEi+B,cAAc36B,GAAI0C,EAAI/C,EAAG,GAAIgD,EAAI1C,EAAE1hC,OAAQqkC,EAAI,GAAIE,EAAI,EAAGyB,GAAK,EACzE,IAAK,IAAIiG,EAAI,EAAGA,EAAI7H,IAAK6H,EAAG,CAC1B,IAAIjB,EAAItJ,EAAEuK,GACV,IAAW,IAAPjB,EAAU,CACZ,IAAW,IAAPhF,EACF,MAAM,IAAIjC,MAAM5lB,GAAEmgG,yDAAyDt4E,EAAGiG,IAChFjG,EAAIiG,EAAG5H,EAAEsH,KAAK,OACT,CACL,GAAIX,EAAI,EACN,MAAM,IAAIjH,MAAM5lB,GAAEqgG,8CAA8CvyE,EAAGjB,IACrEzG,GAAKyG,EAAG3G,EAAEsH,KAAKX,IAGnB,IAAW,IAAPhF,EAAU,CACZ,GAAIzB,GAAK,EACP,MAAM,IAAIR,MAAM5lB,GAAE6/F,wDACpB,IAAI/xE,EAAIpI,KAAKm3C,MAAM92C,EAAIK,GACvB,GAAIA,EAAI0H,IAAM/H,EACZ,MAAM,IAAIH,MAAM5lB,GAAEigG,gDAAgD38E,EAAG4C,IACvEA,EAAE2B,GAAKiG,EAET,GAAI9N,GAAEi+B,cAAc/3B,KAAOH,EACzB,MAAM,IAAIH,MAAM5lB,GAAE+/F,gDAAgDz8E,EAAG4C,IACvE,IAAIwD,EAAIpG,EAAEzhC,OAAQ8nC,EAAI,GACtB,GAAID,EAAI,EAAG,CACTC,EAAED,EAAI,GAAK,EACX,IAAK,IAAIoE,EAAIpE,EAAI,EAAGoE,GAAK,IAAKA,EAC5BnE,EAAEmE,GAAKnE,EAAEmE,EAAI,GAAKxK,EAAEwK,EAAI,GAE5B,IAAI/D,EAAI,GACR,GAAI9D,EAAI,EAAG,CACT8D,EAAE9D,EAAI,GAAK,EACX,IAAK,IAAI6H,EAAI7H,EAAI,EAAG6H,GAAK,IAAKA,EAC5B/D,EAAE+D,GAAK/D,EAAE+D,EAAI,GAAK5H,EAAE4H,EAAI,GAE5B,IAAID,EAAI7N,GAAEk8B,kBAAkB94B,EAAG4C,EAAIC,GACnC,IAAK,IAAI6H,EAAI,EAAGA,EAAI9H,IAAK8H,EAAG,CAC1B,IAAIjB,EAAI,EACR,IAAK,IAAIuB,EAAI,EAAGA,EAAI1E,IAAK0E,EACvBvB,GAAK7J,EAAE8K,EAAIpE,EAAI0E,GAAKzE,EAAEyE,GACxB,IAAK,IAAIA,EAAI,EAAGA,EAAInI,IAAKmI,EACvBP,EAAEC,EAAI7H,EAAImI,GAAK1I,KAAKm3C,MAAMhwC,EAAI9C,EAAEqE,IAAKvB,GAAK9C,EAAEqE,GAEhD,MAAO,CAACP,EAAG,CAAC7H,EAAGC,GAAIC,GAErB,SAAS23F,GAAG76F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,EAAOC,EAAI,GACzC,IAAIC,EAAI3C,EAAEzhC,OAAQqkC,EAAI,CAACjD,EAAG,GAAID,EAAEnhC,OAASohC,EAAG,IAAKmD,EAAIF,EAAE,GAAIuD,EAAIxD,EAAI,EAAI1C,EAAE0C,EAAI,GAAK,EAAI,EACtF,GAAIwD,EAAI,EACN,MAAM,IAAI7D,MAAM5lB,GAAEygG,2DACpB,IAAI/2E,EAAIzG,EAAGtJ,QACX+P,EAAE,GAAKD,EACP,IAAIE,EAAID,EAAEjoC,OAAO,CAACitC,EAAGC,IAAMD,EAAIC,EAAG,GAAI5E,EAAI/J,GAAEk8B,kBAAkB94B,EAAGuG,GACjE,GAAU,IAAN1D,EACF,OAAOwD,EAAI,GAAKM,EAAExhB,KAAKyd,GAAI,CAAC+D,EAAGL,GACjC,GAAID,GAAK,EACP,MAAM,IAAI7D,MAAM5lB,GAAEygG,2DACpB,IAAI5yE,EAAI,EAAGC,EAAI,EAAGjB,EAAI,EAAGuB,EAAI7K,EAAEsK,GAC/B,OAAW,CACT,IAAIa,EAAI,EACR,GAAIZ,EAAI7H,EAAG,CACT,GAAIyI,EAAInL,EAAEuK,GAAIM,IAAMM,EAAG,GACnBZ,EACF,SAEF,GAAIM,GAAKM,EACP,MAAM,IAAI9I,MAAM5lB,GAAE2gG,gEAEtB,GAAIvyE,EAAI,GAAKA,GAAK3E,EAChB,MAAM,IAAI7D,MAAM5lB,GAAE6gG,yDAAyDzyE,EAAG3E,IAChF2E,EAAIvB,GAAK9C,EAAExhB,KAAKyd,EAAG6G,EAAIzG,EAAGgI,EAAIhI,GAC9B,IAAK,IAAIuI,EAAId,EAAGc,EAAIb,IAAKa,EAAG,CAC1B,IAAIC,EAAItL,EAAEqL,GACV,GAAIC,EAAI,GAAKA,GAAK1I,EAAE,GAClB,MAAM,IAAIN,MAAM5lB,GAAEugG,uDAAuD5xE,EAAGrL,EAAEqL,GAAIzI,EAAE,KACtF,IAAK,IAAI2I,EAAI,EAAGA,EAAIzI,EAAGyI,IACrB9E,EAAEqE,EAAIhI,EAAIyI,IAAM7L,EAAE4L,EAAIxI,EAAIyI,GAE9B,GAAI9I,EACF,IAAK,IAAI4I,EAAI,EAAGA,EAAIvI,EAAGuI,IACrB5E,EAAEqE,EAAIhI,EAAIuI,IAAMb,EAAID,EACxB,GAAIA,EAAIC,IAAKA,EAAGjB,EAAIuB,EAAI,EAAGA,EAAIM,EAAGZ,EAAI7H,EACpC,MAEJ,OAAO4G,EAAIpD,GAAKM,EAAExhB,KAAKyd,EAAG6G,EAAIzG,EAAGqD,EAAIrD,GAAI,CAAC2D,EAAGL,GAE/C,IAAIq0F,GAAK4C,GAAI39F,GAAM0C,KAAKrK,KAAK2H,IACzBgjG,GAAKpF,GAAGrmH,GAAKyoB,GAAM0C,KAAKrK,KAAK2H,IAC7BijG,GAAK,CAAE3rE,WAAY//C,GAAIggD,YAAa,MAAOuO,WAAYk9D,IACvD/H,GAAKwB,GAAG,CAACz8F,EAAGC,KACd,IAAIG,EAAIJ,EAAIC,EACZ,OAAOG,EAAIA,IAET8iG,GAAK9F,GAAGzlH,GAAIsjH,IACZkI,GAAK,CAAE7rE,WAAY3/C,GAAI4/C,YAAa,MAAOuO,WAAYo9D,IACvD/H,GAAKwC,GAAG,CAAC39F,EAAGC,KACd,IAAM2lE,QAASxlE,EAAG0lE,cAAexlE,EAAGulE,QAAStlE,GAAMN,EACnD,OAAOD,EAAE8Q,QAAQ,IAAIsyF,OAAOhjG,EAAGE,EAAI,IAAM,IAAKC,KAE5C8iG,GAAKxF,GAAGhmH,GAAIsjH,IACZmI,GAAK,CAAEhsE,WAAYz/C,GAAI0/C,YAAa,MAAOuO,WAAYu9D,IAC3D,SAAShI,GAAGr7F,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI3hB,GAAGohB,EAAGC,EAAGo9B,OACjB,IAAK,IAAIt6B,EAAI,EAAGA,EAAIxC,EAAEs9B,KAAM96B,IAAK,CAC/B,IAAIC,EAAIzC,EAAEg5B,WAAWx2B,GAAIE,EAAI,IAAImwB,MAAMpwB,EAAEnkC,QACzC,IAAK,IAAIqkC,EAAI,EAAGA,EAAID,EAAEpkC,OAAQqkC,IAC5BD,EAAEC,GAAKF,EAAEE,GAAK9C,EAAE8C,GAAK5C,EAAE4C,GACzB3C,EAAEv/B,IAAIi/B,EAAG9/B,OAAO8iC,MAAOD,GAEzB,OAAOzC,EAET,IAAIgjG,GAAK,MACP,YAAYtjG,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1BrkC,KAAK6lG,UAAYxnE,GAAE27B,aAAa14B,GAAKthC,KAAK8lG,YAAcrkE,EAAGzhC,KAAK+lG,QAAU1nE,GAAE27B,aAAar4B,GAAI3hC,KAAKm8D,SAAW99B,GAAE27B,aAAap4B,GAAI5hC,KAAKgmG,SAAW5hE,EAAGpkC,KAAK6kI,cAAgBxgG,EAE1K,YAAY/C,GACV,OAAOyC,KAAK3V,IAAIpuB,KAAKgmG,SAAW,EAAI1kE,EAAK,EAAIthC,KAAKgmG,SAAU1kE,EAAK,GAEnE,aAAaA,EAAIG,GACf,IAAIE,EAAI3hC,KAAK8kI,YAAYrjG,GACzB,OAAOsC,KAAK3W,IAAI,EAAGkU,EAAK,EAAIK,EAAIF,EAAI,GAEtC,aAAaH,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC3B,IAAK,IAAIC,EAAI,EAAGA,EAAIF,IAAKE,EAAG,CAC1B,IAAIC,EAAIvkC,KAAK8kI,YAAYzgG,GAAII,EAAIV,KAAK3W,IAAI,EAAGmX,EAAID,GAAI4B,EAAInC,KAAK3W,IAAI,EAAGmX,GAAKH,GAAKE,EAAI,KAAMwD,EAAIzD,GAAKI,EAAIyB,GAAI6B,EAAItG,GAAKgD,EAAI,EAAI,EAAIH,EAAIC,GAAIyD,EAAI,EAC3IA,GAAKvD,EAAIzkC,KAAK+lG,QAAQ7lG,OACtB,IAAK,IAAIusC,EAAI,EAAGA,EAAI3E,IAAK2E,EACvBzE,GAAK1G,EAAGyG,EAAI0E,GAAGvsC,OACjB8nC,GAAK9B,EAAIlmC,KAAKm8D,SAASj8D,OACvB,IAAIkoC,EAAI3D,EAAIyB,EAAI4B,EAAI,EACpBE,GAAKI,EAAIpoC,KAAK6lG,UAAU3lG,OAAQyhC,EAAEC,EAAI0C,GAAK,IAAI/B,WAAWyF,GAC1D,IAAIkE,EAAIvK,EAAEC,EAAI0C,GAAI6H,EAAI,EAAGjB,EAAKuB,GAAMA,EAAEkN,QAAS5M,GAAMb,EAAEC,KAAOY,GAC9D,IAAK,IAAIN,EAAI,EAAGA,EAAIhI,IAAKgI,EACvBvB,EAAElrC,KAAK+lG,SAAU76D,EAAElrC,KAAK6lG,WAC1B,IAAK,IAAIp5D,EAAI,EAAGA,EAAI3E,EAAI,IAAK2E,EAC3BvB,EAAE5J,EAAGyG,EAAI0E,IAAKvB,EAAElrC,KAAK6lG,WACvB,GAAI/9D,EAAI,EAAG,CACToD,EAAE5J,EAAGyG,EAAID,EAAI,IACb,IAAK,IAAI2E,EAAI,EAAGA,EAAIvG,IAAKuG,EACvBvB,EAAElrC,KAAK6lG,WAAY36D,EAAElrC,KAAKm8D,cACvB,CACL,IAAK,IAAI1vB,EAAI,EAAGA,EAAIvG,EAAI,IAAKuG,EAC3BvB,EAAElrC,KAAKm8D,UAAWjxB,EAAElrC,KAAK6lG,WAC3B36D,EAAElrC,KAAKm8D,YAIb,QAAQ76B,EAAIG,GACV,IAAIE,EAAIL,EAAGphC,OAAQ0hC,EAAIH,EAAEvhC,OACzB,GAAI0hC,EAAI,EAAG,CACT,IAAI2C,EAAI9C,EAAE,GACV,GAAU,IAAN8C,EACF,MAAM,IAAIN,MAAM,oCAAoCM,GACtD,IAAK,IAAIE,EAAI,EAAGA,EAAI7C,IAAK6C,EAAG,CAC1B,IAAIyB,EAAIzE,EAAEgD,IAAMF,EAChB,GAAI2B,EAAIA,GAAKzE,EAAEgD,IAAM9C,GAAIuE,EACvB,MAAM,IAAIjC,MAAM,uBAAuBxC,EAAEgD,mBAAmBF,MAAM5C,MACpE4C,EAAI9C,EAAEgD,GAER,GAAIF,IAAM5C,EACR,MAAM,IAAIsC,MAAM,gDAAgDtC,UAAU4C,KAE9E,IAAIH,EAAIxC,EAAI,EAAGyC,EAAIhG,GAAEk8B,kBAAkB,QAAS34B,GAChD,GAAU,IAAND,GAAiB,IAANC,EAAS,CACtB,IAAI2C,EAAI,IAAIkwB,MAAM9yB,GAClB,IAAK,IAAI8C,EAAI,EAAGA,GAAKL,IAAKK,EACxBJ,EAAEI,GAAK,EACT,MAAO,CAACF,EAAGF,GAEbA,EAAE,GAAK,EACP,IAAK,IAAIE,EAAI,EAAGA,GAAKH,IAAKG,EAAG,CAC3B,IAAIE,EAAIhD,EAAE8C,GAAK9C,EAAE8C,EAAI,GAAI2B,EAAI,EAC7BlmC,KAAK8lG,YAAYnsD,QAAS7R,IACxB5B,GAAKlmC,KAAK+kI,aAAatgG,EAAGqD,KACxB9nC,KAAK6kI,eAAiBpgG,EAAI,GAAW,IAANyB,IAAYA,EAAI,GAAI7B,EAAEE,GAAKF,EAAEE,EAAI,GAAK2B,EAE3E,IAAI5B,EAAI,IAAImwB,MAAMpwB,EAAED,IACpB,IAAK,IAAIG,EAAI,EAAGA,EAAIH,IAAKG,EAAG,CAC1B,IAAIE,EAAIhD,EAAE8C,GAAI2B,EAAI7B,EAAEE,GACpB,GAAIvkC,KAAK8lG,YAAYnsD,QAAS7R,IAC5B,IAAIC,EAAItG,EAAE8C,EAAI,GAAK9C,EAAE8C,GAAIyD,EAAIhoC,KAAK+kI,aAAah9F,EAAGD,GAClD9nC,KAAKglI,aAAa1jG,EAAImD,EAAGH,EAAG4B,EAAG8B,EAAGF,GAAI5B,GAAK8B,IACzChoC,KAAK6kI,eAAiB3+F,IAAM7B,EAAEE,GAAI,CACpC,IAAIuD,EAAIrG,EAAE8C,EAAI,GAAK9C,EAAE8C,GACrB,GAAU,IAANuD,EACF,SACF,IAAIC,EAAID,EAAI,EAAI9nC,KAAKgmG,SAAUh+D,EAAI,EACnChoC,KAAKglI,aAAa1jG,EAAImD,EAAGH,EAAG4B,EAAG8B,EAAGD,IAGtC,MAAO,CAACzD,EAAGD,KAGf,SAASu4F,GAAGv7F,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAChC,OAAO,IAAIsgG,GAAGnjG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAAGw/F,QAAQziG,EAAGC,GAE7C,SAAS2jG,GAAG5jG,EAAGC,EAAIG,EAAGE,GACpB,IAAKN,EAAEnhC,OACL,OACF,GAAkB,IAAdohC,EAAGphC,OAAc,CACnB,IAAK,IAAIkkC,EAAI,EAAGA,EAAI/C,EAAEnhC,SAAUkkC,EAC9BzC,EAAEkK,KAAKxK,EAAE4T,SAAS7Q,EAAGA,EAAI,IAC3B,OAEF,GAAkB,IAAd9C,EAAGphC,OAAc,CACnB,IAAIkkC,EAAI9C,EAAG,GAAI+C,EAAIhD,EAAE3gC,QAAQ0jC,GAC7B,MAAc,IAAPC,GAAY,CACjB,IAAIC,EAAIjD,EAAE4T,SAAS,EAAG5Q,KACpB5C,GAAkB,IAAb6C,EAAEpkC,SAAiByhC,EAAEkK,KAAKvH,GAAIjD,EAAIA,EAAE4T,SAAS5Q,EAAI,GAAIA,EAAIhD,EAAE3gC,QAAQ0jC,GAG5E,cADE3C,GAAkB,IAAbJ,EAAEnhC,SAAiByhC,EAAEkK,KAAKxK,IAGnC,IAAIO,EAAI,EACR,IAAK,IAAIwC,EAAI,EAAGA,EAAI/C,EAAEnhC,OAAS,EAAGkkC,IAChC,GAAIA,IAAM/C,EAAEnhC,SAAgC,IAAtBohC,EAAG5gC,QAAQ2gC,EAAE+C,IAAY,CAC7C,IAAIC,EAAIhD,EAAE4T,SAASrT,EAAGwC,KACpB3C,GAAkB,IAAb4C,EAAEnkC,SAAiByhC,EAAEkK,KAAKxH,GAAIzC,EAAIwC,EAAI,GAGnD,SAAS04F,GAAGz7F,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAEnhC,OAAQ0hC,EAAI,GAAIwC,EAAI,EAAGC,EAAI,EAAGC,EAAI,IAAImwB,MAAM9yB,GACtD,IAAK,IAAIoG,EAAI,EAAGA,EAAIpG,IAAKoG,EAAG,CAC1B,IAAIC,EAAIpG,EAAE1hC,OACV+kI,GAAG5jG,EAAE0G,GAAIzG,EAAIG,EAAGG,GAChB,IAAIwG,EAAIxG,EAAE1hC,OAAS8nC,EACnB1D,EAAEyD,GAAKK,EAAGhE,GAAKgE,EAAG/D,EAAIN,KAAK3W,IAAIiX,EAAG+D,GAEpC,IAAI7D,EAAIlG,GAAEk8B,kBAAkB,QAAa,EAAJn2B,GAAQK,EAAI,IAAIgwB,MAAMrwB,GAAI8B,EAAI,CAACvE,EAAG0C,GAAIyD,EAAI,EAC/E,IAAK,IAAIC,EAAI,EAAGA,EAAIpG,IAAKoG,EACvB,IAAK,IAAIC,EAAI,EAAGA,EAAI1D,EAAEyD,KAAMC,EAC1BzD,EAAM,EAAJuD,GAASC,EAAGxD,EAAM,EAAJuD,EAAQ,GAAKE,EAAGvD,EAAEqD,GAAKlG,EAAEkG,KAAMA,EACnD,MAAO,CAACvD,EAAGE,EAAGyB,GAEhB,SAAS82F,GAAG37F,EAAGC,GACb,IAAIG,EAAIpD,GAAEk8B,kBAAkB,QAASl5B,EAAEnhC,QACvC,IAAK,IAAIyhC,EAAI,EAAGA,EAAIN,EAAEnhC,SAAUyhC,EAC9BF,EAAEE,GAAKtD,GAAE87B,cAAc94B,EAAEM,IAAIkH,OAAOvH,GAAIgF,qBAC1C,OAAO7E,EAET,IAAIy7F,GAAKY,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,GACvB4jG,GAAKxG,GAAG,CAACr9F,EAAGC,EAAIG,EAAGE,KAAM,CAAGvO,KAAMiO,EAAII,EAAGnY,KAAMgY,EAAKK,KACpDwjG,GAAK1G,GAAG3kH,GAAIojH,GAAIgI,IAChBE,GAAK,CAAEzsE,WAAY7+C,GAAI8+C,YAAa,MAAOuO,WAAYg+D,IAC3D,SAAS/H,GAAG/7F,EAAGC,GACb,IAAIG,EAAI,IAAIgzB,MAAMpzB,EAAE49B,MACpB,IAAK,IAAIr9B,EAAI,EAAGA,EAAIH,EAAEvhC,OAAQ0hC,IAC5BH,EAAEG,GAAKP,EAAE89B,MAAMv9B,GAAKN,EAAGM,GACzB,IAAID,EAAI1hB,GAAGwhB,EAAGJ,EAAEq9B,OAChB,IAAK,IAAI98B,EAAI,EAAGA,EAAID,EAAE7iC,OAAOoB,SAAU0hC,EAAG,CACxC,IAAIwC,EAAIzC,EAAEi5B,WAAWh5B,GAAIyC,EAAI,IAAIowB,MAAMpzB,EAAE49B,MACzC,IAAK,IAAI16B,EAAI,EAAGA,EAAIF,EAAEnkC,OAAQqkC,IAC5BF,EAAEE,GAAKH,EAAEG,GAAKlD,EAAE89B,MAAM56B,GACxB,IAAID,EAAIjD,EAAEo6B,WAAWp3B,GACrB1C,EAAE7iC,OAAO8iC,GAAKP,EAAEviC,OAAOwlC,GAEzB,OAAO3C,EAET,IAAI0jG,GAAK,CAAChkG,EAAGC,KACX,IAAIG,EAAIH,EAAGrgC,MAAQogC,EAAEpgC,MACrB,OAAa,IAANwgC,EAAUJ,EAAEuzC,MAAQtzC,EAAGszC,MAAQnzC,GAExC,SAAS6jG,GAAGjkG,EAAGC,EAAIG,EAAI,EAAGE,EAAIN,EAAEnhC,OAAS,GACvC,KAAOyhC,EAAIF,GAAK,CACd,GAAIE,EAAIF,EAAI,IAAK,CACf,IAAI6C,EAAI3C,EAAIF,EAAI,EAAG8C,EAAIjD,EAAKG,EAAI,EAAGgD,EAAIV,KAAKrY,IAAI4Y,GAAI4B,EAAI,GAAMnC,KAAK7d,IAAI,EAAIue,EAAI,GAAIqD,EAAI,GAAM/D,KAAKrK,KAAK+K,EAAIyB,GAAK5B,EAAI4B,GAAK5B,GAAKP,KAAKvM,KAAK+M,EAAID,EAAI,GAAIyD,EAAIhE,KAAK3W,IAAIqU,EAAGsC,KAAK7c,MAAMoa,EAAKiD,EAAI2B,EAAI5B,EAAIwD,IAAKE,EAAIjE,KAAK3V,IAAIuT,EAAGoC,KAAK7c,MAAMoa,GAAMgD,EAAIC,GAAK2B,EAAI5B,EAAIwD,IACvPw9F,GAAGjkG,EAAGC,EAAIyG,EAAGC,GAEf,IAAIpG,EAAIP,EAAEC,GAAK8C,EAAI3C,EAAG4C,EAAI1C,EAC1B,IAAKtD,GAAEo+B,KAAKp7B,EAAGI,EAAGH,GAAK+jG,GAAGhkG,EAAEM,GAAIC,GAAK,GAAKvD,GAAEo+B,KAAKp7B,EAAGI,EAAGE,GAAIyC,EAAIC,GAAK,CAClE,IAAKhG,GAAEo+B,KAAKp7B,EAAG+C,EAAGC,GAAID,IAAKC,IAAKghG,GAAGhkG,EAAE+C,GAAIxC,GAAK,GAC5CwC,GAAQ,EACV,KAAOihG,GAAGhkG,EAAEgD,GAAIzC,GAAK,GACnByC,GAAQ,EAEI,IAAhBghG,GAAGhkG,EAAEI,GAAIG,GAAWvD,GAAEo+B,KAAKp7B,EAAGI,EAAG4C,IAAMA,GAAQ,EAAGhG,GAAEo+B,KAAKp7B,EAAGgD,EAAG1C,IAAK0C,GAAK/C,IAAOG,EAAI4C,EAAI,GAAI/C,GAAM+C,IAAM1C,EAAI0C,EAAI,IAGpH,SAASi5F,GAAGj8F,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI9C,EAAGA,EAAGphC,OAAS,IAAKmkC,EAAGC,GAAK,CAACjD,EAAEnhC,OAASkkC,EAAGA,GAAIG,EAAIlG,GAAEm8B,uBAAuB/4B,EAAG4C,EAAI1C,GAAI8C,EAAIpG,GAAEm8B,uBAAuB,QAASn2B,EAAI1C,GACzI,IAAK,IAAImG,EAAI,EAAGA,EAAIzD,EAAGyD,IAAK,CAC1B,IAAIC,EAAID,EAAIxD,EAAG0D,EAAI3G,EAAE4T,SAASlN,EAAGA,EAAIzD,GAAI8D,EAAI,IAAIqsB,MAAMzsB,EAAE9nC,QACzD8nC,EAAE2R,QAAQ,CAAClN,EAAGM,IAAM3E,EAAE2E,GAAK,CAAE9rC,MAAOwrC,EAAGmoC,MAAO7nC,IAAMpL,EAAIyG,EAAEloC,SAAWolI,GAAGl9F,EAAGzG,GAAIyG,EAAIA,EAAEpQ,MAAM,EAAG2J,IAAKC,GAAKwG,EAAEusB,KAAK0wE,IAC/G,IAAIn5F,EAAIpE,EAAInG,EAAGwK,EAAI5H,EAAE0Q,SAAS/I,EAAGA,EAAIvK,GAAIuJ,EAAIzG,EAAEwQ,SAAS/I,EAAGA,EAAIvK,GAC/D,IAAK,IAAI8K,EAAI,EAAGA,EAAI9K,EAAG8K,IACrBN,EAAEM,GAAKrE,EAAEqE,GAAGxrC,MAAOiqC,EAAEuB,GAAKrE,EAAEqE,GAAGmoC,MAEnC,IAAI1uC,EAAI5E,EAAGtJ,QACX,OAAOkO,EAAEA,EAAEhmC,OAAS,GAAKyhC,EAAG,CAAC1hB,GAAGimB,EAAGzE,EAAG8C,GAAItkB,GAAGimB,EAAG,QAASzB,IAE3D,SAASi5F,GAAGr8F,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIvD,GAAE29B,eAAe16B,EAAIG,GAAG,GAAI2C,EAAI,CAAC,EAAG3C,EAAE,GAAI,GAClD,IAAK,IAAI2G,EAAI,EAAGA,EAAIxG,EAAGwG,IACrBhE,EAAE,IAAM3C,EAAE2G,GACZhE,EAAE,GAAK3C,EAAEG,GACT,IAAK,IAAIwG,EAAIxG,EAAI,EAAGwG,EAAI3G,EAAEvhC,OAAQkoC,IAChChE,EAAE,IAAM3C,EAAE2G,GACZ,IAAI/D,EAAoB,IAAI6zB,IAAO5zB,EAAI,IAAIsR,WAAWnU,EAAEG,IAAK2C,EAAI,IAAI/pB,GAAG4pB,EAAGzC,EAAGN,GAAIoD,EAAI,GAAIyB,EAAa,IAAT9B,EAAE,IAAqB,IAATA,EAAE,GAC9G,IAAK,IAAIgE,EAAI,EAAGA,EAAI3G,EAAEG,GAAIwG,IAAK,CAC7B,IAAI8D,EACJ,GAAIhG,EACFgG,EAAI7K,EAAE+G,GAAGtC,eACN,CACH,IAAIoF,EAAI,GACR,IAAK,IAAIuB,EAAI,EAAGA,EAAIrI,EAAE,GAAIqI,IACxB,IAAK,IAAIM,EAAI,EAAGA,EAAI3I,EAAE,GAAI2I,IACxB7B,EAAEW,KAAKtH,EAAE/iC,IAAIirC,EAAGrE,EAAG2E,IACvBb,EAAIhB,EAAEwsB,KAAK,KAEb,IAAIvrB,EAAI9H,EAAE7iC,IAAI0qC,GACd,GAAS,MAALC,EACF7H,EAAE8D,GAAK+D,MACJ,CACH,IAAIjB,EAAI7G,EAAE66B,KACV76B,EAAEhiC,IAAI6pC,EAAGhB,GAAI5G,EAAE8D,GAAK8C,EAAGzG,EAAEoH,KAAKzD,IAGlC,IAAIN,EAAI1D,EAAEpM,QACV8P,EAAE,GAAKzD,EAAE66B,KACT,IAAIn3B,EAAI,IAAIvtB,GAAGstB,EAAGnG,GAClB8C,EAAEkV,QAAQ,CAACvR,EAAG8D,KACZ,IAAK,IAAIC,EAAI,EAAGA,EAAI/H,EAAE,GAAI+H,IACxB,IAAK,IAAIjB,EAAI,EAAGA,EAAI9G,EAAE,GAAI8G,IACxBnD,EAAE1lC,IAAIkiC,EAAE/iC,IAAI2qC,EAAG/D,EAAG8C,GAAIiB,EAAGD,EAAGhB,KAElC,IAAIlD,EAAIvG,EAAEzJ,QACV,OAAOgQ,EAAEpG,GAAKkG,EAAE,GAAI,CAAE+8D,aAAc98D,EAAEjpC,OAAQi7F,YAAa/xD,EAAGk+C,QAAS5hD,GAEzE,IAAIjF,GAAK,SACT5L,GAAG,MAAO,IAAM,IAAIjkB,GAAM,GAC1B,IAAI+1H,GAAKtG,GAAGj1H,GAAKq3B,GAAMA,GAAK,EAAIA,EAAI0C,KAAK7d,IAAImb,GAAK,GAC9CmkG,GAAK,CAAE7sE,WAAY3uD,GAAI4uD,YAAa,MAAOuO,WAAYo+D,IAC3D,SAASE,GAAGpkG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM4lD,MAAO9iD,GAAMzC,EAC5Eq1F,GAAE,CAACp1F,GAAI,aACP,IAAIyC,EAAIhG,GAAEi+B,cAAc16B,EAAEu9B,OAAQ76B,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAIlG,GAAEm8B,uBAAuB,UAAWn2B,GAC3G,IAAK,IAAII,EAAI,EAAGA,EAAIH,EAAEpkC,OAAQukC,IAC5BF,EAAEE,GAAKH,EAAEG,GAAK,EAAIL,EAAIE,EAAEG,GAAKH,EAAEG,GACjC,OAAOhD,EAAE41F,eAAez1F,EAAEu9B,MAAO,UAAW56B,GAE9C,IAAImhG,GAAK,CAAE/sE,WAAY3qD,GAAI4qD,YAAa,MAAOuO,WAAYs+D,IACvDE,GAAK7H,GAAG,CAACz8F,EAAGC,IAAOD,EAAI,EAAIC,EAAKD,EAAIA,GACxC,SAASukG,GAAGvkG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,EAAGulD,MAAOtlD,GAAMN,EACzD01F,GAAE,CAACr1F,EAAGC,GAAI,SACV,IAAIwC,EAAI3C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQulC,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASwlC,EAAGC,GAAKohG,GAAGhkG,EAAEw9B,MAAOv9B,EAAEu9B,MAAO/6B,EAAGC,EAAG,WAC1G,OAAO5C,EAAE41F,eAAe9yF,EAAG,UAAWD,GAExC,IAAIuhG,GAAK,CAAEltE,WAAYnlD,GAAIolD,YAAa,MAAOuO,WAAYy+D,IACvDE,GAAK7G,GAAGjqH,GAAKqsB,GAAM0C,KAAK3W,IAAI,EAAGiU,IAC/B0kG,GAAK,CAAEptE,WAAY3jD,GAAI4jD,YAAa,MAAOuO,WAAY2+D,IACvDE,GAAK/G,GAAG/pH,GAAKmsB,GAAM0C,KAAK3V,IAAI2V,KAAK3W,IAAI,EAAGiU,GAAI,IAC5C4kG,GAAK,CAAEttE,WAAYzjD,GAAI0jD,YAAa,MAAOuO,WAAY6+D,IAC3D,SAASE,GAAG7kG,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,GAAU,WAANH,EACF,OAAOy8F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,IAC1C,GAAU,SAANI,EACF,OAAOqkG,GAAG,CAAElnE,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,IAC1C,GAAU,QAANI,EACF,OAAO8jG,GAAG,CAAE3mE,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,IAC1C,GAAU,UAANI,EACF,OAAOukG,GAAG,CAAEpnE,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,IAC1C,GAAU,UAANI,EACF,OAAOmkG,GAAG,CAAEhnE,OAAQ,CAAE1zB,EAAG5J,EAAI4lD,MAAOvlD,GAAKzjB,QAASmjB,IACpD,GAAU,cAANI,EACF,OAAOgkG,GAAG,CAAE7mE,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,EAAG2lC,MAAO,CAAEkgB,MAAOtlD,KAC7D,GAAU,YAANH,EACF,OAAOwiG,GAAG,CAAErlE,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASmjB,IAC1C,MAAM,IAAI4C,MAAM,cAAcxC,mDAEhC,SAAS0kG,GAAG9kG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM69B,MAAO/6B,GAAMzC,EAAG0C,EAAIhG,GAAEi+B,cAAc16B,EAAEu9B,OAAQ76B,EAAIjG,GAAEy8B,uBAAuB12B,EAAGC,GAAIE,EAAIlG,GAAEi+B,cAAch4B,GACrKjG,GAAE26B,OAAO30B,IAAME,EAAG,IAAM,kBAAkBD,UAAUC,iCAAiC3C,EAAEu9B,cAAc96B,kFAAmF5C,EAAEkgC,OAAO//B,EAAEg/B,QACnM,IAAIn8B,EAAIhD,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QACrB,GAA4B,MAAxBn8B,EAAE2yF,mBAA4B,CAChC,IAAIlxF,EAAIzB,EAAE2yF,mBAAmBhkG,KAAM0U,EAAIrD,EAAE2yF,mBAAmB9tG,KAC5D4c,EAAEi5B,MAAQ76B,EAAGwD,EAAEq3B,MAAQ76B,EAEzB,MAAO,CAAEs8B,OAAQh/B,EAAEg/B,OAAQzB,MAAO76B,EAAGo6B,MAAO98B,EAAE88B,OAEhD,IAAI0nE,GAAK,CAAEztE,WAAYvjD,GAAIwjD,YAAa,MAAOuO,WAAYg/D,IAC3D,SAASE,GAAGhlG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,GAAM9C,GAAM46C,WAAY73C,EAAG83C,WAAY73C,GAAM3C,EACtGq1F,GAAE,CAACp1F,EAAGwC,GAAI,UACV,IAAIG,EAAI3C,EAAEu9B,MAAMj/D,OAAQukC,EAAIL,EAAE+6B,MAAMj/D,OAAQgmC,EAAI7B,EAAIzC,EAAEu9B,MAAM56B,EAAI,GAAK3C,EAAEu9B,MAAM56B,EAAI,GAAIuD,EAAIxD,EAAIF,EAAE+6B,MAAM16B,EAAI,GAAKL,EAAE+6B,MAAM16B,EAAI,GAAIsD,EAAI1D,EAAIzC,EAAEu9B,MAAM56B,EAAI,GAAK3C,EAAEu9B,MAAM56B,EAAI,GAAIyD,EAAI1D,EAAIF,EAAE+6B,MAAM16B,EAAI,GAAKL,EAAE+6B,MAAM16B,EAAI,GAAI2D,EAAIxG,EAAEu9B,MAAMnnC,MAAM,GAAI,GAAIkU,EAAI9H,EAAE+6B,MAAMnnC,MAAM,GAAI,GAAImU,EAAI9N,GAAEi+B,cAAcl0B,GAAI8C,EAAI7M,GAAEi+B,cAAcpwB,GAAIa,EAAIltB,GAAGoiE,2BAA2BrgD,EAAEu9B,MAAMnnC,MAAM,GAAI,GAAIoM,EAAE+6B,MAAMnnC,MAAM,GAAI,IAAIpX,OAAO,CAACmnB,EAAGC,IAC7Y3J,GAAE26B,OAAO9yB,IAAM4B,EAAG,IAAM,kCAAkC5B,WAAW4B,6BAA6BlG,EAAEu9B,aAAa/6B,EAAE+6B,wBAAwB96B,oBAAoBC,iBAC/J,IAAI0I,EAAI3I,EAAI,CAAC8H,EAAGjG,EAAG6B,GAAK,CAACoE,EAAGpE,EAAG7B,GAAI+G,EAAI3I,EAAI,CAAC4G,EAAGlD,EAAGF,GAAK,CAACoD,EAAGpD,EAAGE,GAAIkF,EAAIi5F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQI,EAAI+4F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOlyB,KAAQI,EAAIhJ,EAAI6I,EAAEiyB,MAAM,GAAKjyB,EAAEiyB,MAAM,GAAI7xB,EAAIjJ,EAAI6I,EAAEiyB,MAAM,GAAKjyB,EAAEiyB,MAAM,GAAI5xB,EAAIjJ,EAAI8I,EAAE+xB,MAAM,GAAK/xB,EAAE+xB,MAAM,GAAIlgE,EAAI8kC,KAAK3W,IAAI+e,EAAGjB,GAAIsC,EAAI/L,EAAEmb,KAAKp7C,IAAI0rC,EAAE0zB,QAAQ9hE,OAAQ4uC,EAAIjM,EAAEmb,KAAKp7C,IAAI4rC,EAAEwzB,QAAQ9hE,OAAQ+uC,EAAIxP,GAAEm7B,eAAetsB,EAAEiyB,OAAQh0B,EAAI9M,GAAEm7B,eAAepsB,EAAE+xB,QAAStrB,EAAGjG,EAAGujB,GAAK9sB,EAAI,CAACwJ,EAAE,GAAI,EAAGA,EAAE,IAAM,CAACA,EAAE,GAAIA,EAAE,GAAI,IAAKujB,EAAGR,EAAGC,GAAMvsB,EAAI,CAAC,EAAG6G,EAAE,GAAIA,EAAE,IAAM,CAACA,EAAE,GAAI,EAAGA,EAAE,IAAKpE,EAAKuG,EAAIC,EAAG+G,EAAKr0B,GAAG,CAAChhB,EAAGquC,EAAGC,GAAIL,EAAEwxB,OAAQ1uB,EAAKsE,EAAGx1C,OAAQ21C,EAAKhT,EAAE4/C,UAC9lB,IAAK,IAAIh6C,EAAK,EAAGA,EAAKpoC,EAAGooC,IAAM,CAC7B,IAAIqN,EAAKrN,EAAK8E,EAAGwI,EAAKtN,EAAK6D,EAC3B,IAAK,IAAI0J,EAAK,EAAGA,EAAKtH,EAAGsH,GAAMH,EAAI,CACjC,IAAIK,EAAK/Q,KAAK3V,IAAIwmB,EAAKH,EAAInH,GAC3B,IAAK,IAAI+H,EAAK,EAAGA,EAAK9H,EAAG8H,GAAMZ,EAAI,CACjC,IAAIa,EAAKvR,KAAK3V,IAAIinB,EAAKZ,EAAIlH,GAC3B,IAAK,IAAIrG,EAAK,EAAGA,EAAKmG,EAAGnG,GAAMuN,EAAI,CACjC,IAAIxE,EAAKlM,KAAK3V,IAAI8Y,EAAKuN,EAAIpH,GAC3B,IAAK,IAAI8C,EAAKyE,EAAIzE,EAAK2E,EAAI3E,IACzB,IAAK,IAAIC,EAAKiF,EAAIjF,EAAKkF,EAAIlF,IAAM,CAC/B,IAAI7I,EAAK,EACT,IAAK,IAAI8pB,EAAKnqB,EAAImqB,EAAKphB,EAAIohB,IAAM,CAC/B,IAAIhhB,EAAK7C,EAAEkH,EAAKb,EAAI1D,EAAKvC,EAAIyjB,EAAKF,GAAI7gB,EAAK5C,EAAE2jB,EAAKD,EAAIhhB,EAAKwgB,EAAIjc,EAAKkc,GACpEtpB,GAAM8I,EAAKC,EAEbN,EAAG3I,EAAKN,GAAMoJ,EAAK5C,EAAI6C,KAAQ7I,MAM3C,OAAO9F,EAAE88F,8BAA8BrxF,GAAIzL,EAAE88F,8BAA8BnxF,GAAI3L,EAAE41F,eAAetqF,EAAGuH,EAAGoqB,MAAOpqB,EAAGx1C,QAElH,IAAIwnI,GAAK,CAAE3tE,WAAYnzD,GAAIozD,YAAa,MAAOuO,WAAYk/D,IAC3D,SAASE,GAAGllG,GACV,IAA+K0G,EAAGC,EAAGI,GAA/Kw2B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM46C,WAAY33C,EAAG43C,WAAY13C,EAAG02D,WAAYj1D,EAAGm1D,eAAgBvzD,GAAMnG,EAAYuK,EAAI,GAC5LnE,EAAIs+F,GAAG,CAAEznE,OAAQ,CAAEv6B,EAAGzC,EAAG6K,EAAGrI,GAAK4iC,MAAO,CAAEkV,WAAY33C,EAAG43C,WAAY13C,GAAKvmB,QAASujB,IAAM4C,IAAM2D,EAAI42F,GAAG,CAAEhgE,OAAQ,CAAEv6B,EAAG0D,EAAG0E,EAAGpI,GAAKnmB,QAASujB,IAAMyK,EAAEL,KAAK9D,GAAIA,EAAIC,GAAI9B,IAAMkC,EAAI89F,GAAGzkG,EAAGsG,EAAG7B,EAAG5B,EAAGwD,GAAIoE,EAAEL,KAAK9D,GAAIA,EAAIK,GAC9M,IAAK,IAAI8C,KAAKgB,EACZzK,EAAE88F,8BAA8BrzF,GAClC,OAAOnD,EAET,IAAIy+F,GAAK,CAAE7tE,WAAYz8C,GAAI08C,YAAa,MAAOuO,WAAYo/D,IACvDE,GAAKxH,GAAGr8H,GAAKy+B,GAAM0C,KAAK1nB,KAAKglB,IAC7BqlG,GAAK,CAAE/tE,WAAY/1D,GAAIg2D,YAAa,MAAOuO,WAAYs/D,IACvDE,GAAK1H,GAAGn8H,GAAKu+B,GAAM0C,KAAKxnB,MAAM8kB,IAC9BulG,GAAK,CAAEjuE,WAAY71D,GAAI81D,YAAa,MAAOuO,WAAYw/D,IAC3D,SAASE,GAAGxlG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,EAAGM,EAAIL,EACxC01F,GAAE11F,EAAI,QACN,IAAIM,EAAID,EAAE4yB,IAAKjwB,GAAM7C,EAAEmb,KAAKp7C,IAAI8iC,EAAEs8B,QAAQ9hE,QAASslC,EAAInkB,GAAG0hB,EAAE,GAAGw9B,MAAOx9B,EAAE,GAAG+8B,OAAQr6B,EAAID,EAAEtlC,OACzF,IAAK,IAAIwlC,EAAI,EAAGA,EAAI3C,EAAEzhC,OAAQokC,IAAK,CACjC,IAAIC,EAAI3C,EAAE0C,GACV,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnkC,OAAQukC,IAC5BJ,EAAEI,IAAMF,EAAEE,GAEd,OAAOhD,EAAE41F,eAAejzF,EAAE+6B,MAAO/6B,EAAEs6B,MAAOt6B,EAAEtlC,QAE9C,IAAIgoI,GAAK,CAAEnuE,WAAYj1D,GAAIk1D,YAAa,MAAOuO,WAAY0/D,IAC3D,SAASE,GAAG1lG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxFq1F,GAAEp1F,EAAG,OACL,IAAI0C,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ56B,EAAID,EAAGG,EAAIpmB,GAAE+9F,mBAAmB73E,EAAG3C,EAAEu9B,MAAMj/D,QAASgmC,EAAItE,EACzF,MAAL6C,IAAcyB,EAAIm7F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQF,EAAIlmB,GAAE0+F,iBAAiBx4E,EAAErkC,OAAQ0hC,EAAEu9B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,MAAOz1E,EAAG2B,EAAEi5B,MAAMj/D,QAC9K,IAAK4nC,EAAGC,GAAK1pB,GAAE+8F,0BAA0Bl1E,EAAEi5B,MAAO56B,GAAIyD,EAAI3J,GAAEi+B,cAAcv0B,GAAIK,EAAI/J,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAcx0B,GAAI5B,EAAEw4B,OAAQxyB,EAAIzK,EAAEmb,KAAKp7C,IAAI0kC,EAAE06B,QAAQ9hE,OAC/J,IAAK,IAAIosC,EAAI,EAAGA,EAAI9C,EAAEloC,SAAUgrC,EAAG,CACjC,IAAIuB,EAAIvB,EAAIlD,EAAG+E,EAAIb,EAAEO,GACrB,IAAK,IAAIO,EAAI,EAAGA,EAAIhF,IAAKgF,EAAG,CAC1B,IAAIC,EAAIf,EAAEO,EAAIO,GACdD,EAAIA,GAAKE,EAEX7E,EAAE8C,GAAK6B,EAEJ,MAALtI,GAAahD,EAAE88F,8BAA8Br4F,GAC7C,IAAIiG,EAAI1K,EAAE41F,eAAevvF,EAAG5B,EAAEw4B,MAAOt2B,GACrC,GAAI/D,EAAG,CACL,IAAI6G,EAAI7sB,GAAEs9F,qBAAqB7zE,EAAGxD,GAAImI,EAAI05F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj0B,KAC7F,OAAOzJ,EAAE88F,8BAA8BpyF,GAAIM,EAE7C,OAAON,EAET,IAAI66F,GAAK,CAAEruE,WAAY/0D,GAAIg1D,YAAa,MAAOuO,WAAY4/D,IAC3D,SAASE,GAAG5lG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxFq1F,GAAEp1F,EAAG,OACL,IAAI0C,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ56B,EAAID,EAAGG,EAAIpmB,GAAE+9F,mBAAmB73E,EAAG3C,EAAEu9B,MAAMj/D,QAASgmC,EAAItE,EACzF,MAAL6C,IAAcyB,EAAIm7F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQF,EAAIlmB,GAAE0+F,iBAAiBx4E,EAAErkC,OAAQ0hC,EAAEu9B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,MAAOz1E,EAAG2B,EAAEi5B,MAAMj/D,QAC9K,IAAK4nC,EAAGC,GAAK1pB,GAAE+8F,0BAA0Bl1E,EAAEi5B,MAAO56B,GAAIyD,EAAI3J,GAAEi+B,cAAcv0B,GAAIK,EAAI/J,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAcx0B,GAAI5B,EAAEw4B,OAAQxyB,EAAIzK,EAAEmb,KAAKp7C,IAAI0kC,EAAE06B,QAAQ9hE,OAC/J,IAAK,IAAIosC,EAAI,EAAGA,EAAI9C,EAAEloC,SAAUgrC,EAAG,CACjC,IAAIuB,EAAIvB,EAAIlD,EAAG+E,EAAIb,EAAEO,GACrB,IAAK,IAAIO,EAAI,EAAGA,EAAIhF,IAAKgF,EAAG,CAC1B,IAAIC,EAAIf,EAAEO,EAAIO,GACdD,EAAIA,GAAKE,EAEX7E,EAAE8C,GAAK6B,EAEJ,MAALtI,GAAahD,EAAE88F,8BAA8Br4F,GAC7C,IAAIiG,EAAI1K,EAAE41F,eAAevvF,EAAG5B,EAAEw4B,MAAOt2B,GACrC,GAAI/D,EAAG,CACL,IAAI6G,EAAI7sB,GAAEs9F,qBAAqB7zE,EAAGxD,GAAImI,EAAI05F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj0B,KAC7F,OAAOzJ,EAAE88F,8BAA8BpyF,GAAIM,EAE7C,OAAON,EAET,IAAI+6F,GAAK,CAAEvuE,WAAY70D,GAAI80D,YAAa,MAAOuO,WAAY8/D,IAC3D,SAASE,GAAG9lG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC3Eq1F,GAAEp1F,EAAG,UACL,IAAIyC,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACzF,MAALH,IAAcC,EAAI88F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUmkC,EAAI,CAACA,EAAE,IAAKhmB,GAAE27F,2BAA2B,SAAU31E,EAAGE,EAAE46B,MAAMj/D,QACxM,IAAKgmC,EAAG4B,GAAKzpB,GAAE+8F,0BAA0B72E,EAAE46B,MAAO96B,GAAI0D,EAAI1J,GAAEi+B,cAAcp2B,GAAI8B,EAAI3J,GAAEu9B,oBAAoB7zB,EAAG,SAAUK,EAAI/J,GAAEi+B,cAAcx0B,GAAIoE,EAAIzK,EAAEmb,KAAKp7C,IAAI+iC,EAAEq8B,QAAQ9hE,OACtK,IAAK,IAAIqtC,EAAI,EAAGA,EAAInE,EAAE9nC,SAAUisC,EAAG,CACjC,IAAIjB,EAAIiB,EAAI/D,EAAGqE,EAAIP,EAAEhB,GAAI6B,EAAI,EAC7B,IAAK,IAAIC,EAAI,EAAGA,EAAI5E,IAAK4E,EAAG,CAC1B,IAAIC,EAAIf,EAAEhB,EAAI8B,GACdC,EAAIR,IAAMA,EAAIQ,EAAGF,EAAIC,GAEvBhF,EAAEmE,GAAKY,EAET,OAAOtI,EAAEkV,QAASxN,GAAM1K,EAAE88F,8BAA8BpyF,IAAK1K,EAAE41F,eAAenxF,EAAG,QAAS8B,GAE5F,IAAIo/F,GAAK,CAAEzuE,WAAY30D,GAAI40D,YAAa,MAAOuO,WAAYggE,IAC3D,SAASE,GAAGhmG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC3Eq1F,GAAEp1F,EAAG,UACL,IAAIyC,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACzF,MAALH,IAAcC,EAAI88F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUmkC,EAAI,CAACA,EAAE,IAAKhmB,GAAE27F,2BAA2B,SAAU31E,EAAGE,EAAE46B,MAAMj/D,QACxM,IAAKgmC,EAAG4B,GAAKzpB,GAAE+8F,0BAA0B72E,EAAE46B,MAAO96B,GAAI0D,EAAI1J,GAAEi+B,cAAcp2B,GAAI8B,EAAI3J,GAAEu9B,oBAAoB7zB,EAAG,SAAUK,EAAI/J,GAAEi+B,cAAcx0B,GAAIoE,EAAIzK,EAAEmb,KAAKp7C,IAAI+iC,EAAEq8B,QAAQ9hE,OACtK,IAAK,IAAIqtC,EAAI,EAAGA,EAAInE,EAAE9nC,SAAUisC,EAAG,CACjC,IAAIjB,EAAIiB,EAAI/D,EAAGqE,EAAIP,EAAEhB,GAAI6B,EAAI,EAC7B,IAAK,IAAIC,EAAI,EAAGA,EAAI5E,IAAK4E,EAAG,CAC1B,IAAIC,EAAIf,EAAEhB,EAAI8B,GACdC,EAAIR,IAAMA,EAAIQ,EAAGF,EAAIC,GAEvBhF,EAAEmE,GAAKY,EAET,OAAOtI,EAAEkV,QAASxN,GAAM1K,EAAE88F,8BAA8BpyF,IAAK1K,EAAE41F,eAAenxF,EAAG,QAAS8B,GAE5F,IAAIs/F,GAAK,CAAE3uE,WAAYz0D,GAAI00D,YAAa,MAAOuO,WAAYkgE,IACvDE,GAAKtI,GAAG76H,GAAKi9B,GAAM0C,KAAK3mB,KAAKikB,IAC7BmmG,GAAK,CAAE7uE,WAAYv0D,GAAIw0D,YAAa,MAAOuO,WAAYogE,IACvDE,GAAKxI,GAAG36H,GAAK+8B,GAAM0C,KAAKzmB,MAAM+jB,IAC9BqmG,GAAK,CAAE/uE,WAAYr0D,GAAIs0D,YAAa,MAAOuO,WAAYsgE,IACvDE,GAAK1I,GAAGz6H,GAAK68B,GAAM0C,KAAKvmB,KAAK6jB,IAC7BumG,GAAK,CAAEjvE,WAAYn0D,GAAIo0D,YAAa,MAAOuO,WAAYwgE,IACvDE,GAAK/J,GAAG,CAACz8F,EAAGC,IAAOyC,KAAKrmB,MAAM2jB,EAAGC,IACjCwmG,GAAKrJ,GAAG/5H,GAAImjI,IACZE,GAAK,CAAEpvE,WAAYj0D,GAAIk0D,YAAa,MAAOuO,WAAY2gE,IACvDE,GAAK/I,GAAGr6H,GAAKy8B,GAAM0C,KAAKnmB,MAAMyjB,IAC9B4mG,GAAK,CAAEtvE,WAAY/zD,GAAIg0D,YAAa,MAAOuO,WAAY6gE,IAC3D,SAASE,GAAG7mG,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAIzC,EAAE03C,aAAch1C,EAAI1C,EAAE23C,YAAah1C,EAAI3C,EAAEg4C,eAAgBn1C,EAAI7C,EAAEi4C,cAAe3zC,EAAItE,EAAE83C,sBAAuB5xC,EAAIlG,EAAE+3C,qBAAsB5xC,EAAInG,EAAEg3C,QAAQgC,IAAK5yC,EAAIpG,EAAEg3C,QAAQz5E,KAAMipC,EAAU,QAANhE,EAAcovB,OAAO6qC,kBAAoB7qC,OAAOu+D,kBAAmB7lF,EAAIjsB,GAAG2hB,EAAEm4C,SAAUt4C,GAAI0K,EAAID,EAAEptC,OAAQosC,EAAItJ,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAIttC,EAAI7K,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAIhtC,EAAInL,EAAEm4C,SAAS,GACvY,IAAK,IAAI/sC,EAAI,EAAGA,EAAIpL,EAAEo3C,YAAahsC,EAAG,CACpC,IAAIC,EAAID,EAAI9B,EAAGgC,EAAIF,EAAIrL,EAAE,GACzB,IAAK,IAAIyL,EAAI,EAAGA,EAAIxL,EAAEw3C,aAAchsC,EAClC,IAAK,IAAIC,EAAI,EAAGA,EAAIzL,EAAEi3C,YAAaxrC,EAAG,CACpC,IAAIC,EAAID,EAAIhJ,EAAI0D,EAAGwF,EAAIxJ,KAAK3W,IAAI,EAAGkgB,GAAIruC,EAAI8kC,KAAK3V,IAAIwT,EAAEs3C,SAAUhzC,EAAIoH,GAAIE,EAAIP,EAAII,EAAIZ,EACpF,IAAK,IAAIiB,EAAI,EAAGA,EAAI9L,EAAEk3C,WAAYprC,EAAG,CACnC,IAAIG,EAAIH,EAAIpJ,EAAI0D,EAAGmD,EAAIpH,KAAK3W,IAAI,EAAGygB,GAAIgG,EAAI9P,KAAK3V,IAAIwT,EAAEu3C,QAASrxC,EAAI+F,GAAID,EAAIxF,EAAG+oB,EAAI,EAAGC,EAAI,EACzF,IAAK,IAAIP,EAAKtjB,EAAGsjB,EAAK5xD,EAAG4xD,GAAMtsB,EAAG,CAChC,IAAIwC,EAAKmG,EAAI2jB,EAAKlvB,EAAE,GACpB,IAAK,IAAI2S,EAAKnJ,EAAGmJ,EAAKT,EAAGS,GAAM7P,EAAG,CAChC,IAAIuL,EAAKjJ,EAAKuN,EAAK3S,EAAE,GAAI8S,EAAKpT,EAAE2O,EAAK5C,GAC/B,QAANhJ,GAAeqQ,EAAK7G,EAAIA,EAAI6G,EAAW,QAANrQ,IAAgB+sB,GAAK1c,EAAI2c,KAE5D,GAAIhnC,MAAMwjB,GACR,MAEJ,IAAIgjB,EAAIpjB,EAAIE,EAAIX,EAAIK,EACpBjB,EAAEykB,GAAW,QAANxsB,EAAc+sB,EAAIC,EAAIxjB,IAIrC,OAAO1B,EAET,SAASi8F,GAAG9mG,EAAGC,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,GACtC,IAAIC,EAAIpkB,GAAG0hB,EAAEo4C,SAAU,SAAUz1C,EAAI3C,EAAE23C,aAAc/0C,EAAI5C,EAAE43C,YAAa90C,EAAI9C,EAAEi4C,eAAgB1zC,EAAIvE,EAAEk4C,cAAe/xC,EAAInG,EAAE+3C,sBAAuB3xC,EAAIpG,EAAEg4C,qBAAsB3xC,EAAIrG,EAAEi3C,QAAQgC,IAAKxyC,EAAIzG,EAAEi3C,QAAQz5E,KAAM+sC,EAAIjsB,GAAGqhB,EAAIG,EAAGJ,GACjO,IAAK,IAAI8K,EAAI,EAAGA,EAAIxK,EAAEq3C,YAAa7sC,EACjC,IAAK,IAAIjB,EAAI,EAAGA,EAAIvJ,EAAEy3C,aAAcluC,EAClC,IAAK,IAAIuB,EAAI,EAAGA,EAAI9K,EAAEk3C,YAAapsC,EAAG,CACpC,IAAIM,EAAIN,EAAInI,EAAI0D,EAAGgF,EAAID,EACvB,KAAOC,EAAI,GACTA,GAAKvI,EACP,IAAIwI,EAAIlJ,KAAK3V,IAAIuT,EAAEu3C,SAAUpxC,EAAIiF,GACjC,IAAK,IAAIG,EAAI,EAAGA,EAAIvL,EAAEm3C,WAAY5rC,EAAG,CACnC,IAAIE,EAAIF,EAAI3I,EAAI6D,EAAGiF,EAAID,EACvB,KAAOC,EAAI,GACTA,GAAKnH,EACP,IAAIoH,EAAIvJ,KAAK3V,IAAIuT,EAAEw3C,QAASpxC,EAAIqF,GAAIG,EAAIimB,OAAO6qC,kBAAmBp/F,GAAK,EACvE,IAAK,IAAIuuC,EAAIR,EAAGQ,EAAIP,EAAGO,GAAK/I,EAAG,CAC7B,IAAIiJ,EAAIF,EAAIT,EACZ,IAAK,IAAIc,EAAIR,EAAGQ,EAAIP,EAAGO,GAAK3H,EAAG,CAC7B,IAAIiF,EAAI0C,EAAIT,EAAGyG,EAAI3H,EAAE1qC,IAAI2qC,EAAGqB,EAAGK,EAAG3C,GAClC2I,EAAItG,IAAMA,EAAIsG,EAAO50C,EAAJ2iC,EAAQwC,IAAM+H,EAAIxK,EAAEu3C,SAAW1rC,GAAK7L,EAAEw3C,QAAUtrC,GAAKlM,EAAEy3C,WAAaluC,GAAKsC,EAAI7L,EAAEw3C,QAAUtrC,GAAKlM,EAAEy3C,WAAaluC,EAAQwC,EAAI3F,EAAIoD,IAGlJ9G,EAAEhiC,IAAIpD,EAAGktC,EAAGM,EAAGS,EAAGhC,IAG1B,OAAO7G,EAET,SAAS+jG,GAAG/mG,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAIzC,EAAEw4C,YAAa91C,EAAI1C,EAAE03C,aAAc/0C,EAAI3C,EAAE23C,YAAa90C,EAAI7C,EAAE24C,cAAer0C,EAAItE,EAAEg4C,eAAgB9xC,EAAIlG,EAAEi4C,cAAe9xC,EAAInG,EAAE04C,qBAAsBtyC,EAAIpG,EAAE83C,sBAAuBtxC,EAAIxG,EAAE+3C,qBAAsBztC,EAAItK,EAAEg3C,QAAQoC,MAAO7uC,EAAIvK,EAAEg3C,QAAQgC,IAAK1vC,EAAItJ,EAAEg3C,QAAQz5E,KAAMstC,EAAU,QAANrI,EAAcovB,OAAO6qC,kBAAoB7qC,OAAOu+D,kBAAmBhlF,EAAI9sB,GAAG2hB,EAAEm4C,SAAUt4C,GAAIuL,EAAID,EAAEjuC,OAAQmuC,EAAIrL,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAI7sC,EAAItL,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAI3sC,EAAIxL,EAAEm4C,SAAS,GAAKn4C,EAAEm4C,SAAS,GAAI1sC,EAAIzL,EAAEm4C,SAAS,GACniB,IAAK,IAAIzsC,EAAI,EAAGA,EAAI1L,EAAEo3C,YAAa1rC,EAAG,CACpC,IAAIC,EAAID,EAAIL,EAAGhuC,EAAIquC,EAAI3L,EAAE,GACzB,IAAK,IAAI6L,EAAI,EAAGA,EAAI5L,EAAEw3C,aAAc5rC,EAClC,IAAK,IAAIE,EAAI,EAAGA,EAAI9L,EAAEq4C,WAAYvsC,EAAG,CACnC,IAAIG,EAAIH,EAAIrJ,EAAI6H,EAAGf,EAAI0C,EACvB,KAAO1C,EAAI,GACTA,GAAK1G,EACP,IAAIoP,EAAI9P,KAAK3V,IAAIwT,EAAEu4C,QAASpyC,EAAI8F,GAAID,EAAIL,EAAIG,EAAIR,EAChD,IAAK,IAAIikB,EAAI,EAAGA,EAAIvvB,EAAEi3C,YAAa1nB,EAAG,CACpC,IAAIC,EAAID,EAAI7sB,EAAI6H,EAAGykB,EAAIQ,EACvB,KAAOR,EAAI,GACTA,GAAK1qB,EACP,IAAI2qB,EAAK9sB,KAAK3V,IAAIwT,EAAEs3C,SAAUlxC,EAAIopB,GAAIrqB,EAAK6G,EAAIujB,EAAI/jB,EACnD,IAAK,IAAIkH,EAAK,EAAGA,EAAK1S,EAAEk3C,WAAYxkC,EAAI,CACtC,IAAItE,EAAKsE,EAAK/P,EAAI2G,EAAGuJ,EAAKzE,EAC1B,KAAOyE,EAAK,GACVA,GAAM3M,EACR,IAAIT,EAAKtD,KAAK3V,IAAIwT,EAAEu3C,QAAS/wC,EAAI4H,GAAK0E,EAAK3N,EAAKuN,EAAKjH,EAAGsH,EAAKlI,EAAGmI,EAAK,EAAGE,EAAK,EAC7E,IAAK,IAAIQ,EAAKnK,EAAGmK,EAAKzB,EAAGyB,GAAM7Q,EAAG,CAChC,IAAIyC,EAAKjoC,EAAIq2C,EAAK3T,EAAE,GACpB,IAAK,IAAIsO,EAAK2gB,EAAG3gB,EAAK4gB,EAAI5gB,GAAM/J,EAAG,CACjC,IAAIiK,EAAKjJ,EAAK+I,EAAKtO,EAAE,GACrB,IAAK,IAAIyO,EAAKqE,EAAIrE,EAAK/I,EAAI+I,GAAMtI,EAAG,CAClC,IAAIP,EAAK4I,EAAKC,EAAKzO,EAAE,GAAI0vB,EAAKhwB,EAAEkG,EAAKiG,GACrC,GAAU,QAANpJ,GAAeitB,EAAK1c,EAAKA,EAAK0c,EAAW,QAANjtB,IAAgBwQ,GAAMyc,EAAIvc,KAAO1qB,MAAMuqB,GAC5E,MAEJ,GAAIvqB,MAAMuqB,GACR,MAEJ,GAAIvqB,MAAMuqB,GACR,MAEJ,IAAIU,EAAKX,EAAKlH,EACdR,EAAEqI,GAAY,QAANjR,EAAcwQ,EAAK7Q,KAAK3W,IAAI0nB,EAAI,GAAKH,KAKvD,OAAO5H,EAET,SAASs7F,GAAGhnG,EAAGC,GACb,IAAIG,EAAIxhB,GAAGqhB,EAAGy4C,SAAU,SAAUp4C,EAAIL,EAAG84C,YAAax4C,EAAIN,EAAGg4C,aAAcl1C,EAAI9C,EAAGi4C,YAAal1C,EAAI/C,EAAGi5C,cAAej2C,EAAIhD,EAAGs4C,eAAgBr1C,EAAIjD,EAAGu4C,cAAep1C,EAAInD,EAAGg5C,qBAAsBp0C,EAAI5E,EAAGo4C,sBAAuB5xC,EAAIxG,EAAGq4C,qBAAsB5xC,EAAIzG,EAAGs3C,QAAQoC,MAAOhzC,EAAI1G,EAAGs3C,QAAQgC,IAAKxyC,EAAI9G,EAAGs3C,QAAQz5E,KACnT,IAAK,IAAI+sC,EAAI,EAAGA,EAAI5K,EAAG03C,YAAa9sC,EAClC,IAAK,IAAIC,EAAI,EAAGA,EAAI7K,EAAG83C,aAAcjtC,EACnC,IAAK,IAAIjB,EAAI,EAAGA,EAAI5J,EAAG24C,WAAY/uC,EAAG,CACpC,IAAIuB,EAAIvB,EAAIvJ,EAAIoG,EAAGgF,EAAIN,EACvB,KAAOM,EAAI,GACTA,GAAK1I,EACP,IAAI2I,EAAIjJ,KAAK3V,IAAIkT,EAAG64C,QAAS11C,EAAIgI,GACjC,IAAK,IAAIQ,EAAI,EAAGA,EAAI3L,EAAGu3C,YAAa5rC,EAAG,CACrC,IAAIC,EAAID,EAAIrL,EAAIoG,EAAGoF,EAAIF,EACvB,KAAOE,EAAI,GACTA,GAAK9I,EACP,IAAI+I,EAAItJ,KAAK3V,IAAIkT,EAAG43C,SAAUhzC,EAAIgH,GAClC,IAAK,IAAII,EAAI,EAAGA,EAAIhM,EAAGw3C,WAAYxrC,EAAG,CACpC,IAAIC,EAAID,EAAIlJ,EAAIgE,EAAGnpC,EAAIsuC,EACvB,KAAOtuC,EAAI,GACTA,GAAKslC,EACP,IAAIiJ,EAAIzJ,KAAK3V,IAAIkT,EAAG63C,QAASrxC,EAAIyF,GAAIG,EAAI8lB,OAAO6qC,kBAAmBxwD,GAAK,EACxE,IAAK,IAAI1C,EAAI4B,EAAG5B,EAAI6B,EAAG7B,GAAK9G,EAAG,CAC7B,IAAIwP,EAAI1I,EAAIsB,EACZ,IAAK,IAAImB,EAAIR,EAAGQ,EAAIP,EAAGO,GAAKtJ,EAAG,CAC7B,IAAI6sB,EAAIvjB,EAAIV,EACZ,IAAK,IAAIkkB,EAAInyD,EAAGmyD,EAAI5jB,EAAG4jB,GAAK7sB,EAAG,CAC7B,IAAIqsB,EAAIQ,EAAI7jB,EAAGsjB,EAAKxvB,EAAE7/B,IAAI0qC,EAAGf,EAAGyC,EAAGwjB,EAAGjlB,GACtC0kB,GAAMnjB,IAAMA,EAAImjB,EAAIhjB,EAAIgG,EAAI3N,EAAI4B,EAAIqpB,EAAIjrB,EAAI0qB,KAIlDnvB,EAAEp/B,IAAIwrC,EAAG3B,EAAGhB,EAAG+B,EAAGK,EAAGnB,KAI/B,OAAO1K,EAET,SAAS6mG,GAAGjnG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EACzD01F,GAAEp1F,EAAG,WACL,IAAM85C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EACvEpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAGI,GAAI,IAAM,wEAAwEJ,oBAAoBI,MACnJ,IAAqDqD,EAAjD5B,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GACjD,GAAsB,IAAlB2B,EAAEuzC,aAAwC,IAAnBvzC,EAAEszC,cAAsBn7C,GAAEy6B,YAAY5yB,EAAE4zC,QAAS5zC,EAAE6zC,UAC5EjyC,EAAIo2F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,QACjC,CACH,IAAIsG,EAAItG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQkpC,EAAI3J,GAAEm7B,eAAe53B,EAAEu9B,OAAQ/2B,EAAI8/F,GAAGngG,EAAGnG,EAAEu9B,MAAOv9B,EAAE88B,MAAO12B,EAAG9B,EAAG,OACtG4B,EAAIrG,EAAE41F,eAAenxF,EAAE6zC,SAAUn4C,EAAE88B,MAAOt2B,EAAEtpC,QAE9C,OAAOgpC,EAET,IAAIygG,GAAK,CAAE5vE,WAAY7zD,GAAI8zD,YAAa,MAAOuO,WAAYmhE,IAC3D,SAASE,GAAGnnG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,EAAG00C,WAAYx0C,GAAM9C,EACxIq1F,GAAEp1F,EAAG,aACL,IAAIsE,EAAI7nB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG,EAAGC,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAIqgG,GAAGtgG,EAAGlG,EAAEu9B,MAAOv9B,EAAE88B,MAAOrgC,GAAEm7B,eAAe53B,EAAEu9B,OAAQj5B,EAAG,OACnJ,OAAOzE,EAAE41F,eAAetvF,EAAEo3B,MAAO,UAAWp3B,EAAEjpC,QAEhD,IAAI2pI,GAAK,CAAE9vE,WAAY3zD,GAAI4zD,YAAa,MAAOuO,WAAYqhE,IAC3D,SAASE,GAAGrnG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAM9C,EACpIq1F,GAAE,CAACp1F,EAAGwC,GAAI,iBACV,IAAI8B,EAAI7nB,GAAEi9F,kBAAkBl3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAI5B,EAAEk0C,YAAaryC,EAAI7B,EAAEozC,aAActxC,EAAI9B,EAAEqzC,YAAanxC,EAAIlC,EAAEm0C,YAAanuC,EAAIhG,EAAEszC,aAAcrtC,EAAIjG,EAAEuzC,YAAavuC,EAAIhF,EAAEq0C,cAAe9tC,EAAIvG,EAAE0zC,eAAgB7sC,EAAI7G,EAAE2zC,cAAe7sC,EAAI9G,EAAEo0C,qBAAsBrtC,EAAI/G,EAAEwzC,sBAAuBxsC,EAAIhH,EAAEyzC,qBAAsBvsC,EAAIJ,EAAI,EAAI9G,EAAE0yC,QAAQoC,MAAO3tC,EAAIH,EAAI,EAAIhH,EAAE0yC,QAAQz5E,KAAMmuC,EAAIL,EAAI,EAAI/G,EAAE0yC,QAAQgC,IAAKrtC,EAAIttB,GAAGmkB,EAAE+6B,MAAO,WAAYlgE,EAAI,GAAKmpC,EAAI8D,EAAIC,GAAIqB,EAAI/L,EAAEknG,WAAW/mG,GACpd,IAAK,IAAI8L,EAAI,EAAGA,EAAIxH,EAAE8yC,YAAatrC,EACjC,IAAK,IAAIG,EAAI,EAAGA,EAAI3H,EAAEkzC,aAAcvrC,EAClC,IAAK,IAAI1C,EAAI,EAAGA,EAAIjF,EAAEi0C,UAAWhvC,EAC/B,IAAK,IAAI0I,EAAI,EAAGA,EAAI3N,EAAEgzC,WAAYrlC,EAChC,IAAK,IAAIjG,EAAI,EAAGA,EAAI1H,EAAEizC,UAAWvrC,EAAG,CAClC,IAAIujB,EAAIhmB,EAAIiC,EAAGgkB,EAAIvd,EAAIvG,EAAGsjB,EAAIhjB,EAAIP,EAAGwjB,EAAK,EAC1C,IAAK,IAAI9pB,EAAK,EAAGA,EAAKiG,EAAGjG,GAAMmE,EAAG,CAChC,IAAIoJ,GAAM6c,EAAIpqB,GAAMe,EACpB,KAAMwM,EAAK,GAAKA,GAAMpO,EAAE+zC,UAAYl2C,KAAK7c,MAAMotB,KAAQA,GACrD,IAAK,IAAItE,EAAK,EAAGA,EAAK/C,EAAG+C,GAAMvD,EAAG,CAChC,IAAIgI,GAAM2c,EAAIphB,GAAMjI,EACpB,KAAM0M,EAAK,GAAKA,GAAMvO,EAAE2yC,WAAa90C,KAAK7c,MAAMutB,KAAQA,GACtD,IAAK,IAAIpN,EAAK,EAAGA,EAAK6F,EAAG7F,GAAM0F,EAAG,CAChC,IAAI2H,GAAMkc,EAAIvpB,GAAMW,EACpB,GAAI0M,EAAK,GAAKA,GAAMxO,EAAE4yC,UAAY/0C,KAAK7c,MAAMwtB,KAAQA,EACnD,SACF,IAAIC,EAAKnH,EAAEhsC,IAAIksC,EAAG4G,EAAIG,EAAIC,EAAI7G,GAC9BgjB,GAAMlc,IAIhBpH,EAAElrC,IAAIwuD,EAAK5xD,EAAGyuC,EAAGvC,EAAG0I,EAAGjG,EAAGC,GAEpC,OAAOpM,EAAE41F,eAAe9pF,EAAE4xB,MAAO5xB,EAAEmxB,MAAOnxB,EAAEzuC,QAE9C,IAAI8pI,GAAK,CAAEjwE,WAAYzzD,GAAI0zD,YAAa,MAAOuO,WAAYuhE,IAC3D,SAASG,GAAGxnG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,EAC5E4yF,GAAE,CAACp1F,EAAGwC,GAAI,eACV,IAAMs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,GAAM9C,EAAGuE,EAAI7nB,GAAEg9F,kBAAkBh3E,EAAE86B,MAAO76B,EAAGC,EAAG,EAAGE,GAAIqD,EAAI5B,EAAEozC,aAAcvxC,EAAI7B,EAAEqzC,YAAavxC,EAAI9B,EAAEszC,aAAcpxC,EAAIlC,EAAEuzC,YAAavtC,EAAIhG,EAAE0zC,eAAgBztC,EAAIjG,EAAE2zC,cAAe3uC,EAAIhF,EAAEwzC,sBAAuBjtC,EAAIvG,EAAEyzC,qBAAsB5sC,EAAIN,EAAI,EAAIvG,EAAE0yC,QAAQz5E,KAAM6tC,EAAI9B,EAAI,EAAIhF,EAAE0yC,QAAQgC,IAAK3tC,EAAIhtB,GAAGokB,EAAE86B,MAAO,WAAYjyB,EAAI,GAAKlF,EAAII,GAAIgF,EAAI3L,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQuuC,EAAIptB,GAAG2hB,EAAEu9B,MAAO,UAAW/xB,GAC/a,IAAK,IAAIE,EAAI,EAAGA,EAAIpH,EAAE8yC,YAAa1rC,EACjC,IAAK,IAAIC,EAAI,EAAGA,EAAIrH,EAAEkzC,aAAc7rC,EAClC,IAAK,IAAItuC,EAAI,EAAGA,EAAIinC,EAAEgzC,WAAYj6E,EAChC,IAAK,IAAIuuC,EAAI,EAAGA,EAAItH,EAAEizC,UAAW3rC,EAAG,CAClC,IAAIE,EAAIzuC,EAAI+tC,EAAGa,EAAIL,EAAIT,EAAG5B,EAAI,EAC9B,IAAK,IAAI0I,EAAI,EAAGA,EAAI3I,EAAG2I,GAAK3H,EAAG,CAC7B,IAAI0B,GAAKF,EAAImG,GAAK/L,EAClB,KAAM8F,EAAI,GAAKA,GAAK1H,EAAE2yC,WAAa90C,KAAK7c,MAAM0mB,KAAOA,GACnD,IAAK,IAAIujB,EAAI,EAAGA,EAAI1kB,EAAG0kB,GAAKhlB,EAAG,CAC7B,IAAIilB,GAAKvjB,EAAIsjB,GAAKppB,EAClB,GAAIqpB,EAAI,GAAKA,GAAKlrB,EAAE4yC,UAAY/0C,KAAK7c,MAAMkqC,KAAOA,EAChD,SACF,IAAIR,EAAIvjB,EAAE7rC,IAAI8rC,EAAGM,EAAGwjB,EAAG7jB,GACvBpC,GAAKylB,GAGX3jB,EAAE5qC,IAAI8oC,EAAI+B,EAAGI,EAAGruC,EAAGuuC,EAAGD,GAE9B,OAAO9L,EAAE41F,eAAepqF,EAAEkyB,MAAOlyB,EAAEyxB,MAAOzxB,EAAEnuC,QAE9C,IAAIgqI,GAAK,CAAEnwE,WAAYvzD,GAAIwzD,YAAa,MAAOuO,WAAY0hE,IAC3D,SAASE,GAAG1nG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8qC,MAAOtoC,EAAGg5C,OAAQ/4C,EAAGvW,KAAMwW,EAAG+4C,SAAU94C,GAAMjD,EACpGjD,GAAE26B,OAAO10B,EAAE66B,MAAMj/D,SAAWqkC,EAAE46B,MAAMj/D,OAAQ,IAAM,gFAAiFm+B,GAAE26B,OAAY,MAAL30B,GAAaC,EAAE66B,MAAMj/D,SAAWmkC,EAAE86B,MAAMj/D,OAAQ,IAAM,8EAA+Em+B,GAAE26B,OAAY,MAAL50B,GAAaE,EAAE66B,MAAMj/D,SAAWkkC,EAAE+6B,MAAMj/D,OAAQ,IAAM,6EAA8E82H,GAAE,CAACp1F,EAAG0C,EAAGC,EAAGH,EAAGC,GAAI,aACjb,IAAMi5C,gBAAiB74C,GAAM9C,EACxB,MAAL8C,IAAcA,EAAI,MAClB,IAAIyB,EAAIzE,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQgpC,EAAIrG,EAAEmb,KAAKp7C,IAAI8iC,EAAEs8B,QAAQ9hE,OAAQipC,EAAItG,EAAEmb,KAAKp7C,IAAI+iC,EAAEq8B,QAAQ9hE,OAAQkpC,EAAI5D,EAAI3C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAS,IAAIq3C,aAAa,CAAC,IAAK/N,EAAI/D,EAAI5C,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAS,IAAIq3C,aAAa,CAAC,IAAKjK,EAAI,IAAIiK,aAAajQ,EAAEhmC,QAASisC,EAAI/D,EAAEloC,OAAQgrC,EAAIlD,EAAE9nC,OAAQusC,EAAI1E,EAAE7nC,OAAQ6sC,EAAIjF,EAAE5nC,OAAQ8sC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGE,EAAI,EAClV,IAAK,IAAIC,EAAI,EAAGA,EAAInH,EAAEhmC,SAAUmtC,EAC9BnB,EAAEmB,GAAKjF,EAAE4E,MAAQ9G,EAAEmH,GAAKvF,EAAEmF,MAAQjF,EAAEkF,KAAOnJ,KAAKrK,KAAKqO,EAAEqF,KAAO3I,GAAIuI,GAAKb,IAAMa,EAAI,GAAIC,GAAKF,IAAME,EAAI,GAAIC,GAAKhC,IAAMgC,EAAI,GAAIE,GAAKX,IAAMW,EAAI,GAC5I,OAAO3L,EAAE41F,eAAez1F,EAAEu9B,MAAOv9B,EAAE88B,MAAOxyB,GAE5C,IAAI88F,GAAK,CAAErwE,WAAY/sD,GAAIgtD,YAAa,MAAOuO,WAAY4hE,IAC3D,SAASE,GAAG5nG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAG44C,MAAO34C,GAAM1C,EAC3Fq1F,GAAE,CAACp1F,GAAI,kBACP,IAAI0C,EAAIF,EAAEtkC,OAAO,CAACorC,EAAGuB,IAAMvB,EAAIuB,GAAIlI,EAAIlmB,GAAE8+F,YAAYv7E,EAAEu9B,MAAO/6B,EAAGE,GAAIG,EAAIpmB,GAAE2+F,YAAYz4E,EAAErkC,OAAQkkC,EAAElkC,QAASgmC,EAAI7nB,GAAEg/F,oBAAoBz7E,EAAEu9B,MAAO/6B,EAAGE,GAAIwD,EAAIzpB,GAAEm/F,oBAAoBn5E,EAAGD,EAAElkC,QAAS6nC,EAAI1pB,GAAEq/F,aAAax3E,EAAG7B,EAAGD,EAAElkC,QAAS8nC,EAAIm+F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ6D,EAAIi5F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQyH,EAAIi6F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQiG,EAAIg4F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO10C,EAAGo3B,KAAMn3B,KAC9d,OAAOtG,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI3G,EAAE88F,8BAA8BryF,GAAIC,EAErH,IAAI+8F,GAAK,CAAEvwE,WAAYjzD,GAAIkzD,YAAa,MAAOuO,WAAY8hE,IAC3D,SAASE,GAAG9nG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,GAAM1C,EAAG2C,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQ2lC,EAAIgzF,GAAGnzF,EAAGC,EAAGH,EAAEs6B,MAAOt6B,EAAE+6B,MAAO96B,GAC3L,OAAO5C,EAAE41F,eAAe,CAAChzF,GAAID,EAAEs6B,MAAOj6B,GAExC,IAAI2kG,GAAK,CAAEzwE,WAAY/yD,GAAIgzD,YAAa,MAAOuO,WAAYgiE,IAC3D,SAASE,GAAGhoG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgJ,GAAI1I,EAAG2I,GAAI1I,GAAMN,EAAI8C,EAAI3C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQulC,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQwlC,EAAIjmB,GAAE4jE,2BAA2BxtB,MAAMwB,KAAK7xB,GAAIqwB,MAAMwB,KAAK5xB,IACxL,OAAO5C,EAAE41F,eAAe,CAAC/yF,EAAEpkC,QAAS,QAAS01C,WAAWqgB,KAAK3xB,IAE/D,IAAIglG,GAAK,CAAE3wE,WAAY3yD,GAAI4yD,YAAa,MAAOuO,WAAYkiE,IACvDE,GAAKtK,GAAGz4H,GAAI,CAAC66B,EAAGC,KAClB,IAAIG,EAAIH,EACR,OAAOD,EAAII,EAAEk9C,aAAel9C,EAAEk9C,aAAet9C,EAAII,EAAEi9C,aAAej9C,EAAEi9C,aAAer9C,IAEjFmoG,GAAK,CAAE7wE,WAAYnyD,GAAIoyD,YAAa,MAAOuO,WAAYoiE,IACvDE,GAAMpoG,IACR,IAAM6J,EAAG5J,GAAOD,EAAEu9B,OAAQn9B,EAAIJ,EAAEnjB,QAASyjB,EAAI,IAAIwU,aAAa9X,GAAEi+B,cAAch7B,EAAG69B,QAASv9B,EAAIH,EAAEmb,KAAKp7C,IAAI8/B,EAAGs/B,QAASx8B,EAAIxC,EAAEw1F,mBAAmBhkG,KAAMiR,EAAIzC,EAAEw1F,mBAAmB9tG,KAAMgb,EAAI7C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAC7O,IAAK,IAAI2lC,EAAI,EAAGA,EAAIH,EAAEpkC,OAAQukC,IAAK,CACjC,IAAIyB,EAAI5B,EAAEG,GAAIqD,EAAIvD,EAAEE,GACpB9C,EAAE8C,GAAKV,KAAK2lG,MAAMxjG,EAAG4B,GAEvB,OAAOrG,EAAEm8F,WAAWj8F,EAAGL,EAAG69B,MAAO,YAE/BwqE,GAAK,CAAEhxE,WAAY/xD,GAAIgyD,YAAa,MAAOuO,WAAYsiE,IAC3D,SAASG,GAAGvoG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQw2D,mBAAmB9tG,KAAM8a,EAAI3C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAClI,OAAO2iC,EAAE41F,eAAez1F,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,GAE5C,IAAIylG,GAAK,CAAElxE,WAAYzrD,GAAI0rD,YAAa,MAAOuO,WAAYyiE,IAC3D,SAASE,GAAGzoG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAAGyC,EAAI/F,GAAE29B,eAAep6B,EAAGN,EAAG,GAAG69B,OAAO,GAAI96B,EAAI/C,EAAGizB,IAAKroB,GAAMA,EAAEizB,OAC5H9gD,GAAE47F,uBAAuB51E,EAAGD,GAC5B,IAAIE,EAAIjmB,GAAE42F,gBAAgB3zE,EAAGizB,IAAKroB,GAAMA,EAAEizB,OAAQ/6B,GAClD,GAA2B,IAAvB/F,GAAEi+B,cAAch4B,GAClB,OAAO7C,EAAE41F,eAAe/yF,EAAGhD,EAAG,GAAGo9B,MAAO,IAC1C,IAAIn6B,EAAIjD,EAAGouB,OAAQxjB,GAAM7N,GAAEi+B,cAAcpwB,EAAEizB,OAAS,GACpD,GAAiB,IAAb56B,EAAErkC,OACJ,OAAOg+H,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAG3G,EAAE,IAAMrmB,QAASujB,IAC5C,GAAmB,cAAf8C,EAAE,GAAGm6B,MAAuB,CAC9B,IAAIxyB,EAAI3H,EAAEgwB,IAAKvnB,GAAMoxF,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAOr4C,GAAK9uB,QAASujB,KAAO0K,EAAI5H,EAAEgwB,IAAKvnB,GAAM48F,GAAG,CAAEhrE,OAAQ,CAAEymB,MAAOr4C,GAAK9uB,QAASujB,KAAOyJ,EAAI4+F,GAAG,CAAElrE,OAAQ1yB,EAAGhuB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM5yC,KAAQqI,EAAIq9F,GAAG,CAAElrE,OAAQzyB,EAAGjuB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM5yC,KAAQ2I,EAAIgxF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAM8X,EAAG5hB,KAAMmjB,GAAKvuB,QAASujB,IAC1R,OAAOyK,EAAEyN,QAAS3M,GAAMvL,EAAE88F,8BAA8BvxF,IAAKb,EAAEwN,QAAS3M,GAAMvL,EAAE88F,8BAA8BvxF,IAAKvL,EAAE88F,8BAA8BrzF,GAAIzJ,EAAE88F,8BAA8B9xF,GAAIM,EAE7L,IAAItI,EAAIF,EAAEgwB,IAAKroB,IACb,IAAIhB,EAAI,EAAE,EAAG7M,GAAEi+B,cAAcpwB,EAAEizB,MAAMnnC,MAAMoM,KAC3C,OAAO+hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj0B,OACxDhF,EAAIzB,EAAE8vB,IAAKroB,IAAM,CAAGmzF,KAAM59F,EAAEmb,KAAKp7C,IAAI0qC,EAAE00B,QAAQ9hE,OAAQqgE,MAAOjzB,EAAEizB,SACpE76B,EAAIjmB,GAAE42F,gBAAgBxwE,EAAE8vB,IAAKroB,GAAMA,EAAEizB,OAAQ,GAC7C,IAAIr3B,EAAsB,IAAlBrD,EAAE,GAAG06B,MAAM,GAAUp3B,EAAIowF,GAAGjyF,EAAG5B,EAAGhD,EAAG,GAAGo9B,MAAO52B,GAAIE,EAAI3pB,GAAE42F,gBAAgB1wE,EAAEgwB,IAAKroB,GAAMA,EAAEizB,OAAQ/6B,GAAIgE,EAAI3G,EAAE41F,eAAervF,EAAG1G,EAAG,GAAGo9B,MAAO32B,GACjJ,OAAOtD,EAAEkV,QAASzN,GAAMzK,EAAE88F,8BAA8BryF,IAAK9D,EAE/D,IAAI2hG,GAAK,CAAEpxE,WAAY7xD,GAAI8xD,YAAa,MAAOuO,WAAY2iE,IAC3D,SAASE,GAAG3oG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAG+6C,UAAW76C,EAAGk3C,gBAAiBz1C,GAAMvE,EAClJq1F,GAAE,CAACp1F,EAAGwC,GAAI,UACV,IAAI0D,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGI,EAAGH,EAAG4B,GAAG,EAAO4B,GAAIE,EAAID,EAAEyxC,aAAcpxC,EAAIL,EAAE0xC,YAAavtC,EAAInE,EAAE6xC,eAAgBztC,EAAIpE,EAAE8xC,cAAe3uC,EAAInD,EAAE6wC,QAAQz5E,KAAMstC,EAAI1E,EAAE6wC,QAAQgC,IAAK7tC,EAAqB,iBAAjBhF,EAAEkxC,WAA+BjsC,EAAI,IAAIxyB,GAAGutB,EAAEgyC,SAAUn4C,EAAE88B,OAAQzxB,EAAI5O,GAAEm7B,eAAe53B,EAAEu9B,OAAQjyB,EAAI7O,GAAEm7B,eAAep1B,EAAE+6B,OAAQ/xB,EAAIH,EAAE,GAAII,EAAIN,EAAIE,EAAE,GAAKA,EAAE,GAAIK,EAAIP,EAAIE,EAAE,GAAK,EAAGM,EAAIR,EAAI,EAAIE,EAAE,GAAIhuC,EAAI+tC,EAAEmzB,QAAQ,GAAI3yB,EAAIT,EAAIC,EAAEmzB,QAAQ,GAAKnzB,EAAEmzB,QAAQ,GAAIzyB,EAAIX,EAAIC,EAAEmzB,QAAQ,GAAK,EAAGtyB,EAAId,EAAI,EAAIC,EAAEmzB,QAAQ,GAAIh1B,EAAI1J,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ+0C,EAAIpS,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQ8uC,EAAIZ,EAAEluC,OAC1lB,IAAK,IAAIqyD,EAAI,EAAGA,EAAIppB,EAAEixC,YAAa7nB,EAAG,CACpC,IAAIC,EAAID,EAAI/jB,EAAGwjB,EAAIO,EAAIlyD,EACvB,IAAK,IAAI4xD,EAAK,EAAGA,EAAK9oB,EAAE8wC,YAAahoB,EAAI,CACvC,IAAI9pB,EAAK6pB,EAAIC,EAAKrjB,EAAG8G,EAAKuc,EAAK9oB,EAAEuxC,aAAe7sC,EAChD,IAAK,IAAIuD,EAAK,EAAGA,EAAKhI,IAAKgI,EAAI,CAC7B,IAAIyE,EAAKH,EAAKtE,EAAK9D,EACnB,GAAIuI,EAAK,GAAKA,GAAM1M,EAAEmxC,SACpB,SACF,IAAI7xC,EAAK2I,EAAK9C,EAAE,GAAIwH,EAAK0c,EAAI3c,EAAKpH,EAClC,IAAK,IAAIsH,EAAK,EAAGA,EAAK5M,EAAE+wC,WAAYnkC,EAAI,CACtC,IAAIC,EAAK7N,EAAK4N,EAAKjH,EAAGoH,EAAKH,EAAK5M,EAAEwxC,YAAcruC,EAChD,IAAK,IAAImK,EAAK,EAAGA,EAAKjN,IAAKiN,EAAI,CAC7B,IAAIC,EAAKR,EAAKO,EAAKlJ,EACnB,GAAImJ,EAAK,GAAKA,GAAMvN,EAAEoxC,QACpB,SACF,IAAIjyC,EAAKG,EAAKgO,EAAKnI,EAAE,GAAI+C,EAAKyE,EAAKY,EAAKhI,EAAG6C,EAAKjJ,EAChD,IAAK,IAAIkJ,EAAK,EAAGA,EAAKrI,EAAEqxC,aAAchpC,EAAI,CACxC,IAAI7I,EAAK4D,EAAE8E,EAAKG,EAAK7C,GACrB,IAAK,IAAI8jB,EAAK,EAAGA,EAAKtpB,EAAEsxC,cAAehoB,EACrCzjB,EAAEgH,EAAKyc,EAAKxjB,IAAMtG,EAAKsM,EAAE1D,EAAKkhB,GAChClhB,GAAMpI,EAAEsxC,iBAOpB,OAAO53C,EAAE41F,eAAerqF,EAAEmyB,MAAOnyB,EAAE0xB,MAAO9wB,GAE5C,IAAIq8F,GAAK,CAAEtxE,WAAY3xD,GAAI4xD,YAAa,MAAOuO,WAAY6iE,IAC3D,SAASE,GAAG7oG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAChJq1F,GAAE,CAACp1F,EAAGwC,GAAI,wBACV,IAAI0D,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAG,EAAGC,EAAGG,GAAG,EAAOqD,IAAMwxC,aAActxC,EAAGuxC,YAAanxC,EAAGoxC,aAActtC,EAAGutC,YAAattC,GAAMpE,EAAGmD,EAAqB,iBAAjBnD,EAAEkxC,WAA+BxsC,EAAI,IAAIjyB,GAAGutB,EAAEiyC,YAAa,WAAYjtC,EAAIhF,EAAE6wC,QAAQz5E,KAAM6tC,EAAIjF,EAAE6wC,QAAQgC,IAAK3tC,EAAIxL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQouC,EAAIzL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQsuC,EAAI,IAAI5yB,GAAGonB,EAAEu9B,MAAOv9B,EAAE88B,MAAOzxB,GAAII,EAAI,IAAI7yB,GAAG4pB,EAAE+6B,MAAO/6B,EAAEs6B,MAAOxxB,GAC7Z,IAAK,IAAII,EAAI,EAAGA,EAAIpB,IAAKoB,EAAG,CAC1B,IAAIC,EAAIxJ,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAM4sB,EAAIM,GAAKtF,IAAK/oC,EAAI8kC,KAAK3V,IAAI2Z,EAAE8wC,WAAY9wC,EAAEmxC,SAAWlsC,EAAIM,GAAKtF,GAC9F,IAAK,IAAIwF,EAAI,EAAGA,EAAIrB,IAAKqB,EAAG,CAC1B,IAAIE,EAAI3J,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAM2sB,EAAIS,GAAKpF,IAAKyF,EAAI9J,KAAK3V,IAAI2Z,EAAE+wC,UAAW/wC,EAAEoxC,QAAUpsC,EAAIS,GAAKpF,GAC5F,IAAK,IAAI+C,EAAI,EAAGA,EAAIpD,EAAEqxC,aAAcjuC,EAClC,IAAK,IAAI0I,EAAI,EAAGA,EAAI9L,EAAEsxC,cAAexlC,EAAG,CACtC,IAAIjG,EAAI,EACR,IAAK,IAAIujB,EAAI,EAAGA,EAAIppB,EAAEixC,YAAa7nB,EACjC,IAAK,IAAIC,EAAI7jB,EAAG6jB,EAAInyD,IAAKmyD,EAAG,CAC1B,IAAIR,EAAItjB,EAAI8jB,EAAIppB,EAAIgF,EACpB,IAAK,IAAI6jB,EAAKnjB,EAAGmjB,EAAKhjB,IAAKgjB,EAAI,CAC7B,IAAI9pB,EAAKyG,EAAIqjB,EAAKzoB,EAAI2E,EAClBa,GAAJ1C,EAASkC,EAAE5rC,IAAI2vD,EAAGP,EAAG7pB,EAAIoE,GAAKkC,EAAE7rC,IAAI2vD,EAAGC,EAAGP,EAAIhd,GAAUzG,EAAE5rC,IAAI2vD,EAAGhmB,EAAGylB,EAAG7pB,GAAMsG,EAAE7rC,IAAI2vD,EAAGtd,EAAGud,EAAGP,IAGlGpkB,EAAEpqC,IAAIurC,EAAGN,EAAGE,EAAGrC,EAAG0I,KAI1B,OAAOpS,EAAE41F,eAAe5qF,EAAE0yB,MAAO1yB,EAAEiyB,MAAOjyB,EAAE3tC,QAE9C,IAAIqrI,GAAK,CAAExxE,WAAYzxD,GAAI0xD,YAAa,MAAOuO,WAAY+iE,IAC3D,SAASE,GAAG/oG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAMs+C,WAAYv7C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAG00C,WAAYx0C,EAAGk3C,gBAAiBz1C,GAAMvE,EACpJq1F,GAAE,CAACp1F,EAAGwC,GAAI,uBACV,IAAI0D,EAAIzJ,GAAEm7B,eAAep1B,EAAE+6B,OAAQp3B,EAAI1J,GAAEm7B,eAAe53B,EAAEu9B,OAAQn3B,EAAI3pB,GAAEk9F,wBAAwB92E,GAAI2D,EAAI/pB,GAAEy8F,kBAAkBz2E,EAAGD,EAAE+6B,MAAO76B,EAAG,EAAGC,EAAG2B,GAAG,EAAO8B,GAAIkE,EAAI,IAAI1xB,GAAG4tB,EAAE0xC,QAAS,WAAY3tC,EAAID,EAAEptC,OAAQosC,EAAIzJ,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ2tC,EAAIhL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASiuC,EAAGC,EAAGC,GAAKnF,GAAKkxC,UAAW9rC,EAAGssC,aAAcpsC,EAAGqsC,YAAapsC,EAAG+rC,WAAY9rC,EAAG4rC,SAAU3rC,EAAG4rC,QAASl6E,EAAGo6E,YAAa7rC,EAAGqrC,UAAWnrC,EAAGorC,SAAUjrC,EAAGyrC,aAAcnuC,EAAGouC,YAAa1lC,GAAMzL,EACxcJ,EAAII,EAAE6wC,WACN,IAAIrrC,EAAIR,EAAI,EAAIhF,EAAEwwC,QAAQgC,IAAKzpB,EAAI9jB,EAAI,EAAIjF,EAAEwwC,QAAQz5E,KAAMiyD,EAAU,iBAANppB,EAAsB4oB,EAAI1kB,EAAEi0B,QAAQ,GAAItP,EAAKO,EAAIllB,EAAEi0B,QAAQ,GAAKj0B,EAAEi0B,QAAQ,GAAIp5B,EAAKqqB,EAAIllB,EAAEi0B,QAAQ,GAAK,EAAG7rB,EAAK8c,EAAI,EAAIllB,EAAEi0B,QAAQ,GAAInwB,EAAKjI,EAAE,GAAI0M,EAAK2c,EAAIrpB,EAAE,GAAKA,EAAE,GAAIV,EAAK+pB,EAAIrpB,EAAE,GAAK,EAAG2M,EAAK0c,EAAI,EAAIrpB,EAAE,GACtQ,IAAK,IAAI4M,EAAK,EAAGA,EAAKzH,IAAKyH,EACzB,IAAK,IAAIC,EAAK,EAAGA,EAAKtH,IAAKsH,EACzB,IAAK,IAAIE,EAAK,EAAGA,EAAKvH,IAAKuH,EAAI,CAC7B,IAAIO,EAAKP,EAAKlH,EAAG0H,EAAKvR,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKi1B,EAAKlK,IAAKjE,EAAKnD,KAAK3V,IAAIsf,GAAIN,EAAIiI,GAAMlK,GAClF,IAAK,IAAI8E,EAAK,EAAGA,EAAKhxC,IAAKgxC,EAAI,CAC7B,IAAIE,EAAKF,EAAKkhB,EAAG/gB,EAAKrM,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAK+vB,EAAK0D,IAAKtM,EAAKxD,KAAK3V,IAAIyf,GAAIR,EAAI8C,GAAM0D,GAAIwd,EAAK,EAC3F,IAAK,IAAI/gB,EAAKgF,EAAIhF,EAAKpJ,IAAMoJ,EAAI,CAC/B,IAAIghB,EAAKhhB,EAAKnF,EAAIkK,EAClB,IAAK,IAAI9E,EAAKH,EAAIG,EAAKhJ,IAAMgJ,EAAI,CAC/B,IAAIL,EAAKK,EAAKsD,EAAI1D,EAAImG,EAAKtG,EAAK2E,EAAKF,EAAKnE,EAAKjJ,EAAKkJ,EAAIqG,EAAK7J,GAAKK,EAAI,EAAIkkB,GAAMtkB,GAAKK,EAAI,EAAI6C,GAAMjD,EAAI2H,EACvG,IAAK,IAAIiC,EAAK,EAAGA,EAAKrJ,IAAKqJ,EAAI,CAC7B,IAAIC,EAAK5L,EAAEoL,EAAK5B,EAAKmC,GAAKE,EAAKtK,EAAEmK,EAAKC,GACtCwa,GAAMva,EAAKC,IAIjB,IAAI1G,EAAKugB,EAAIjc,EAAKkc,EAAK/b,EAAK/N,EAAKkJ,EAAKqE,EAAKM,EAC3CzI,EAAEkE,GAAMghB,GAGhB,OAAO5vB,EAAE41F,eAAenrF,EAAEizB,MAAOjzB,EAAEwyB,MAAOxyB,EAAEptC,QAE9C,IAAIurI,GAAK,CAAE1xE,WAAYvxD,GAAIwxD,YAAa,MAAOuO,WAAYijE,IAC3D,SAASE,GAAGjpG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAC/Gq1F,GAAE,CAACp1F,EAAGwC,GAAI,UACV,IAAIK,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGE,EAAGD,IAAM+1C,YAAan0C,EAAGszC,aAAc1xC,EAAG2xC,YAAa1xC,EAAGwyC,cAAevyC,EAAG4xC,eAAgBxxC,EAAGyxC,cAAe3tC,EAAG0sC,QAASzsC,GAAM1H,EAAGyG,EAAIiB,EAAE6uC,MAAOvuC,EAAIN,EAAEhtC,KAAM4tC,EAAIZ,EAAEyuC,IAAK5tC,EAAI,IAAIxyB,GAAGiqB,EAAEs1C,SAAUn4C,EAAE88B,OAAQzxB,EAAIxL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQouC,EAAIzL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQsuC,EAAIJ,EAAEluC,OAAQuuC,EAAIhP,GAAEm7B,eAAe53B,EAAEu9B,OAAQ7xB,EAAIjP,GAAEm7B,eAAep1B,EAAE+6B,OAC/X,IAAK,IAAI5xB,EAAI,EAAGA,EAAI9I,EAAEu0C,YAAazrC,EAAG,CACpC,IAAItuC,EAAIsuC,EAAIF,EAAE,GAAIG,EAAID,EAAIP,EAAEmzB,QAAQ,GACpC,IAAK,IAAIzyB,EAAI,EAAGA,EAAIjJ,EAAEw1C,WAAYvsC,EAAG,CACnC,IAAIG,EAAIL,EAAIE,EAAIV,EAAEmzB,QAAQ,GAAIh1B,EAAIuC,EAAIjJ,EAAE21C,YAAclvC,EACtD,IAAK,IAAI2I,EAAI,EAAGA,EAAI3N,IAAK2N,EAAG,CAC1B,IAAIjG,EAAIzC,EAAI0I,EAAI7L,EAChB,GAAI4F,EAAI,GAAKA,GAAKnJ,EAAE01C,QAClB,SACF,IAAIhpB,EAAItd,EAAIvG,EAAE,GAAI8jB,EAAInyD,EAAI2uC,EAAIP,EAAE,GAChC,IAAK,IAAIujB,EAAI,EAAGA,EAAInsB,EAAEo0C,YAAajoB,EAAG,CACpC,IAAIC,EAAKhjB,EAAI+iB,EAAI5jB,EAAEmzB,QAAQ,GAAIp5B,EAAK6pB,EAAInsB,EAAE60C,aAAevsC,EACzD,IAAK,IAAIuH,EAAK,EAAGA,EAAKxM,IAAKwM,EAAI,CAC7B,IAAItE,EAAKjJ,EAAKuN,EAAKlM,EACnB,GAAI4H,EAAK,GAAKA,GAAMvL,EAAEy0C,SACpB,SACF,IAAIzkC,EAAK0c,EAAI7c,EAAKhH,EAAE,GAAIjG,EAAK+pB,EAAIphB,EAAK3C,EAAE,GACxC,IAAK,IAAIqH,EAAK,EAAGA,EAAKjQ,EAAEq0C,WAAYpkC,EAAI,CACtC,IAAIC,EAAKkc,EAAKnc,EAAKjQ,EAAE40C,YAAazkC,EAAKF,EAAKjQ,EAAE80C,YAAc9sC,EAC5D,IAAK,IAAIqI,EAAK,EAAGA,EAAK/M,IAAK+M,EAAI,CAC7B,IAAIO,EAAKT,EAAKE,EAAK5I,EACnB,GAAImJ,EAAK,GAAKA,GAAM5Q,EAAE00C,QACpB,SACF,IAAI7jC,EAAKb,EAAKK,EAAKxH,EAAE,GAAIpG,EAAKG,EAAKgO,EAAK5Q,EAAE20C,WAAYnpC,EAAKqF,EAC3D,IAAK,IAAInF,EAAK,EAAGA,EAAK1L,EAAE20C,aAAcjpC,EAAI,CACxC,IAAIC,EAAKnD,EAAE/F,EAAKiJ,GAChB,IAAK,IAAI5I,EAAK,EAAGA,EAAK9C,EAAE40C,cAAe9xC,EACrC6F,EAAEuH,EAAKpN,IAAO6I,EAAKlD,EAAE+C,EAAK1I,GAC5B0I,GAAMxL,EAAE40C,mBASxB,OAAO53C,EAAE41F,eAAerqF,EAAEmyB,MAAOnyB,EAAE0xB,MAAO1xB,EAAEluC,QAE9C,IAAIyrI,GAAK,CAAE5xE,WAAYrxD,GAAIsxD,YAAa,MAAOuO,WAAYmjE,IAC3D,SAASE,GAAGnpG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG01C,YAAaz1C,GAAM5C,EAC7Gq1F,GAAE,CAACp1F,EAAGwC,GAAI,0BACV,IAAIK,EAAIpG,GAAEm7B,eAAe53B,EAAEu9B,OAAQj5B,EAAI7H,GAAEm7B,eAAep1B,EAAE+6B,OAAQr3B,EAAIzpB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO56B,EAAGF,EAAG,EAAGC,GAAIyD,EAAID,EAAEsyC,YAAapyC,EAAIF,EAAEwxC,aAAclxC,EAAIN,EAAEyxC,YAAartC,EAAIpE,EAAEuyC,YAAaluC,EAAIrE,EAAE0xC,aAActuC,EAAIpD,EAAE2xC,YAAahtC,EAAI,IAAIjyB,GAAGstB,EAAEkyC,YAAa,WAAYjtC,EAAIN,EAAE3tC,QAASkuC,EAAGC,EAAGC,EAAGE,GAAKX,EAAE0zB,QAAS9yB,EAAI5L,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASwuC,EAAGC,EAAGtuC,EAAGuuC,GAAKtH,EAAGwH,EAAIjM,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAAS+uC,EAAG1C,EAAG0I,EAAGjG,GAAKnJ,EAAG0sB,EAAIrpB,EAAE8wC,QAAQoC,MAAO5pB,EAAItpB,EAAE8wC,QAAQz5E,KAAMyxD,EAAI9oB,EAAE8wC,QAAQgC,IAC/c,IAAK,IAAI/pB,EAAK,EAAGA,EAAK3kB,IAAK2kB,EAAI,CAC7B,IAAI9pB,EAAKhD,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAM+wC,EAAIN,GAAM9oB,IAAKuM,EAAKvQ,KAAK3V,IAAI0Z,EAAEmyC,UAAWnyC,EAAEqyC,QAAUhpB,EAAIN,GAAM9oB,GAAIiI,EAAK6gB,EAAK7jB,EAC9G,IAAK,IAAIyH,EAAK,EAAGA,EAAKtI,IAAKsI,EAAI,CAC7B,IAAIpN,EAAKtD,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAMwwC,EAAInc,GAAMzM,IAAK0M,EAAK3Q,KAAK3V,IAAI0Z,EAAE+wC,WAAY/wC,EAAEoxC,SAAWtoB,EAAInc,GAAMzM,GAAI2M,EAAKF,EAAKxH,EAAI+C,EACpH,IAAK,IAAI4E,EAAK,EAAGA,EAAK1J,IAAK0J,EAAI,CAC7B,IAAIE,EAAK/Q,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAMgxC,EAAIxc,GAAMxM,IAAKiN,EAAKtR,KAAK3V,IAAI0Z,EAAEgxC,UAAWhxC,EAAEqxC,QAAU/nB,EAAIxc,GAAMxM,GAAIkN,EAAKV,EAAK1H,EAAIyH,EAClH,IAAK,IAAIzN,EAAK,EAAGA,EAAKY,EAAEsxC,aAAclyC,EAAI,CACxC,IAAI+I,EAAK/I,EAAKkG,EAAIkI,EAClB,IAAK,IAAInF,EAAK,EAAGA,EAAKrI,EAAEuxC,cAAelpC,EAAI,CACzC,IAAIC,EAAK,EACT,IAAK,IAAI7I,EAAK,EAAGA,EAAKO,EAAEkxC,YAAazxC,EAAI,CACvC,IAAI8pB,EAAK9pB,EAAKsG,EAAGwC,EAAK9I,EAAK+F,EAC3B,IAAK,IAAIgD,EAAKvJ,EAAIuJ,EAAKgE,IAAMhE,EAAI,CAC/B,IAAIC,GAAMsgB,EAAKvgB,EAAKvI,EAAIopB,GAAKhmB,EAAIkmB,EAAInhB,EAAKI,EAAK/C,EAAI8C,EACnD,IAAK,IAAIiG,EAAKjP,EAAIiP,EAAK5B,IAAM4B,EAAI,CAC/B,IAAIO,GAAMpC,EAAK6B,EAAKtO,EAAI4oB,GAAK/c,EAAItD,EAAIuG,EAAKR,EAAKr3C,EAAIixC,EACnD,IAAK,IAAI6G,EAAKjC,EAAIiC,EAAK1B,IAAM0B,EAAI,CAC/B,IAAI3E,GAAMwC,EAAKmC,EAAK3O,EAAIgpB,GAAKxjB,EAAIiJ,EAAIG,EAAKD,EAAKvJ,EAAIsJ,EACnD1G,GAAM1C,EAAE0E,EAAKlL,GAAMmG,EAAE2J,EAAK7G,MAKlCpD,EAAEkD,EAAKE,GAAMC,MAMvB,OAAO3O,EAAE41F,eAAe5qF,EAAE0yB,MAAO1yB,EAAEiyB,MAAOjyB,EAAE3tC,QAE9C,IAAI2rI,GAAK,CAAE9xE,WAAYnxD,GAAIoxD,YAAa,MAAOuO,WAAYqjE,IAC3D,SAASE,GAAGrpG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM9Q,IAAK6T,EAAG87B,QAAS77B,EAAGs7C,WAAYr7C,GAAM5C,EACjHq1F,GAAE,CAACp1F,GAAI,yBACP,IAAI6C,EAAIpG,GAAEm7B,eAAe53B,EAAEu9B,OAAQj5B,EAAI7H,GAAEm7B,eAAep1B,EAAE+6B,OAAQr3B,EAAIzpB,GAAE08F,kBAAkBx2E,EAAGH,EAAE+6B,MAAO76B,EAAG,EAAGD,GAAI0D,EAAI,IAAIvtB,GAAGstB,EAAEgyC,QAAS,WAAY9xC,EAAID,EAAEjpC,QAASspC,EAAG8D,EAAGC,EAAGjB,GAAKnD,EAAEo4B,QAAS1zB,EAAIhL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASiuC,EAAGC,EAAGC,EAAGC,GAAKzI,EAAG2I,EAAI3L,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASuuC,EAAGC,EAAGC,EAAGtuC,GAAKinC,GAAK8yC,UAAWxrC,EAAG6sC,YAAa3sC,EAAG8rC,aAAc3rC,EAAG4rC,YAAatuC,EAAGiuC,WAAYvlC,EAAGsmC,QAASvsC,EAAGsrC,SAAU/nB,EAAGgoB,QAAS/nB,EAAGioB,YAAazoB,EAAGqpB,SAAUppB,EAAIgoB,UAAW9xC,EAAI+xC,SAAUxkC,EAAI8lC,YAAapqC,EAAIspC,aAAc7kC,EAAI8kC,YAAalyC,GAAOS,EAAG4M,EAAKhH,EAAI,EAAI5F,EAAE8wC,QAAQoC,MAAOrmC,EAAK9G,EAAI,EAAI/F,EAAE8wC,QAAQgC,IAAKhmC,EAAKzJ,EAAI,EAAIrD,EAAE8wC,QAAQz5E,KAC3lB,IAAK,IAAI21C,EAAK,EAAGA,EAAKtH,IAAKsH,EACzB,IAAK,IAAIO,EAAK,EAAGA,EAAKxB,IAAKwB,EACzB,IAAK,IAAIC,EAAK,EAAGA,EAAK1H,IAAK0H,EAAI,CAC7B,IAAIpO,EAAKoO,EAAKZ,EAAIzE,EAAKlM,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAK8mB,EAAK8I,IAAMG,EAAKpM,KAAK3V,IAAIyiC,GAAKnjB,EAAIxG,GAAM8I,GACrF,IAAK,IAAII,EAAK,EAAGA,EAAK+gB,IAAK/gB,EAAI,CAC7B,IAAI7I,EAAK6I,EAAKuE,EAAI0c,EAAKttB,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKmnB,EAAKkN,IAAMpE,EAAKtM,KAAK3V,IAAI2Y,GAAK8G,EAAItG,GAAMkN,GACrF,IAAK,IAAInE,EAAK,EAAGA,EAAK8gB,IAAK9gB,EAAI,CAC7B,IAAIghB,EAAKhhB,EAAKsE,EAAIrE,EAAKxM,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKkxC,EAAKjqB,IAAM6I,EAAKnM,KAAK3V,IAAIkmB,GAAKnJ,EAAImmB,GAAMjqB,GAAKiP,EAAK,EAC/F,IAAK,IAAIM,EAAK3G,EAAI2G,EAAKzG,IAAMyG,EAAI,CAC/B,IAAIC,EAAKD,EAAK5G,EAAK9I,EACnB,IAAK,IAAI4P,EAAKua,EAAIva,EAAKzG,IAAMyG,EAAI,CAC/B,IAAIC,EAAKD,EAAKrC,EAAKlN,EACnB,IAAK,IAAIgqB,EAAKhhB,EAAIghB,EAAKrhB,IAAMqhB,EAAI,CAC/B,IAAInf,EAAKmf,EAAKlqB,EAAKiqB,EAAIta,EAAKjK,EAAI+H,EAAK9H,EAAI4J,EAAK3J,EAAI6J,EAAK5J,EAAIqkB,EAAIla,EAAKhK,GAAKK,EAAI,EAAImJ,GAAMvJ,GAAKO,EAAI,EAAIkJ,GAAMxJ,GAAKpC,EAAI,EAAIiH,GAAMnzC,EAAIo2C,EACjI,IAAK,IAAIiC,EAAK,EAAGA,EAAKsZ,IAAKtZ,EAAI,CAC7B,IAAIJ,EAAKzK,EAAEuK,EAAKM,GAAKI,EAAKtK,EAAEiK,EAAKC,GACjChB,GAAMY,EAAKQ,KAKnB1P,EAAEI,EAAI0M,EAAK5I,EAAIoJ,EAAKnJ,EAAIiE,EAAKlF,EAAIoF,EAAK+E,GAAMiB,IAItD,OAAO7U,EAAE41F,eAAetvF,EAAEo3B,MAAOp3B,EAAE22B,MAAO32B,EAAEjpC,QAE9C,IAAI6rI,GAAK,CAAEhyE,WAAYjxD,GAAIkxD,YAAa,MAAOuO,WAAYujE,IACvDE,GAAK3L,GAAGr3H,GAAKy5B,GAAM0C,KAAK7hB,IAAImf,IAC5BwpG,GAAK,CAAElyE,WAAY/wD,GAAIgxD,YAAa,MAAOuO,WAAYyjE,IACvDE,GAAK7L,GAAGn3H,GAAKu5B,GAAM0C,KAAK3hB,KAAKif,IAC7B0pG,GAAK,CAAEpyE,WAAY7wD,GAAI8wD,YAAa,MAAOuO,WAAY2jE,IAC3D,SAASE,GAAG3pG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAGk7D,MAAO14D,EAAG24D,OAAQ14D,GAAM/C,GAAM47D,SAAU54D,EAAG04D,OAAQz4D,EAAG04D,mBAAoBx4D,GAAM9C,GAAIuE,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,MAAO/2B,EAAIhE,EAAE+6B,MAAM,IAAKjzB,EAAGC,GAAK7H,EAAG4G,EAAIjrB,GAAG,CAACmoB,EAAG8D,EAAGC,EAAGnE,GAAI,WAAYyE,EAAIhL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQiuC,EAAItL,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQkuC,EAAIvL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQmuC,EAAI5O,GAAEm7B,eAAe53B,EAAEu9B,OAAQjyB,EAAI7O,GAAEm7B,eAAetuB,EAAEi0B,OAC3X,IAAK,IAAI/xB,EAAI,EAAGA,EAAIhF,EAAGgF,IAAK,CAC1B,IAAIC,EAAQ,EAAJD,EAAOE,EAAIb,EAAEY,GAAIE,EAAId,EAAEY,EAAI,GAAIpuC,EAAIwtC,EAAEY,EAAI,GAAIG,EAAIf,EAAEY,EAAI,GAAIK,EAAIX,EAAEK,GACzE,GAAIM,GAAKxH,EACP,SACF,IAAI2H,EAAI3B,EAAI,GAAKjtC,EAAIquC,IAAMxF,EAAI,IAAMoE,EAAI,GAAK,EAAGf,EAAIgB,EAAI,GAAKqB,EAAID,IAAMxF,EAAI,IAAMoE,EAAI,GAAK,EAC3F,IAAK,IAAI0H,EAAI,EAAGA,EAAI3H,EAAG2H,IAAK,CAC1B,IAAIjG,EAAI1B,EAAI,EAAIoB,GAAKxF,EAAI,GAAK+L,EAAIhG,EAAI,IAAOP,EAAIruC,IAAM6oC,EAAI,GAC3D,GAAI8F,EAAI,GAAKA,EAAI9F,EAAI,EACnB,IAAK,IAAIqpB,EAAI,EAAGA,EAAIhlB,EAAGglB,IACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIppB,EAAGopB,IAAK,CAC1B,IAAIR,EAAIQ,EAAID,EAAIjkB,EAAE,GAAK2G,EAAI3G,EAAE,GAAKE,EAAIF,EAAE,GACxChC,EAAEpsC,OAAO8xD,GAAKnsB,OAIpB,GAAU,aAANF,EAAkB,CACpB,IAAI4sB,EAAIptB,KAAK7c,MAAM0mB,GAAIwjB,EAAIrtB,KAAK3jB,KAAKwtB,GAAIgjB,EAAIhjB,EAAIujB,EACjD,IAAK,IAAIN,EAAK,EAAGA,EAAK1kB,EAAG0kB,IAAM,CAC7B,IAAI9pB,EAAKoF,EAAI,EAAIoB,GAAKxF,EAAI,GAAK8oB,EAAK1lB,EAAI,IAAOoC,EAAIC,IAAMzF,EAAI,GAC7D,GAAIhB,EAAK,GAAKA,EAAKgB,EAAI,EAAG,CACxB,IAAK,IAAIV,EAAK,EAAGA,EAAKW,EAAGX,IAAM,CAC7B,IAAIqN,EAAKrN,EAAKwpB,EAAK3jB,EAAE,GAAK2G,EAAI3G,EAAE,GAAKE,EAAIF,EAAE,GAC3ChC,EAAEpsC,OAAO41C,GAAMjQ,EAEjB,SAEF,IAAI6P,EAAKvQ,KAAK7c,MAAM6f,GAAKiJ,EAAKjM,KAAK3jB,KAAK2mB,GAAK0N,EAAK1N,EAAKuN,EACvD,IAAK,IAAIjN,EAAK,EAAGA,EAAKW,EAAGX,IAAM,CAC7B,IAAIqN,EAAKrN,EAAKiN,EAAKrH,EAAE,GAAKkkB,EAAIlkB,EAAE,GAAKS,EAAIT,EAAE,GAAI0H,EAAK3H,EAAE0H,GACtDA,EAAKrN,EAAK2I,EAAK/C,EAAE,GAAKkkB,EAAIlkB,EAAE,GAAKS,EAAIT,EAAE,GACvC,IAAI2H,EAAK5H,EAAE0H,GACXA,EAAKrN,EAAKiN,EAAKrH,EAAE,GAAKmkB,EAAInkB,EAAE,GAAKS,EAAIT,EAAE,GACvC,IAAI6H,EAAK9H,EAAE0H,GACXA,EAAKrN,EAAK2I,EAAK/C,EAAE,GAAKmkB,EAAInkB,EAAE,GAAKS,EAAIT,EAAE,GACvC,IAAIoI,EAAKrI,EAAE0H,GAAKY,EAAKX,GAAMC,EAAKD,GAAMF,EAAIvN,EAAK4N,GAAMO,EAAKP,GAAML,EAChEC,EAAKrN,EAAKwpB,EAAK3jB,EAAE,GAAK2G,EAAI3G,EAAE,GAAKE,EAAIF,EAAE,GAAIhC,EAAEpsC,OAAO41C,GAAMY,GAAMpO,EAAKoO,GAAMsb,SAI/E,IAAK,IAAIO,EAAI,EAAGA,EAAIhlB,IAAKglB,EAAG,CAC1B,IAAIC,EAAIjlB,EAAI,EAAIoB,GAAKxF,EAAI,GAAKopB,EAAIhmB,EAAI,IAAOoC,EAAIC,IAAMzF,EAAI,GAC3D,GAAIqpB,EAAI,GAAKA,EAAIrpB,EAAI,EAAG,CACtB,IAAK,IAAIhB,EAAK,EAAGA,EAAKiB,EAAGjB,IAAM,CAC7B,IAAIuN,EAAKvN,EAAKoqB,EAAIjkB,EAAE,GAAK2G,EAAI3G,EAAE,GAAKE,EAAIF,EAAE,GAC1ChC,EAAEpsC,OAAOw1C,GAAM7P,EAEjB,SAEF,IAAImsB,EAAI7sB,KAAK3O,MAAMg8B,GAAIP,EAAK9sB,KAAK3O,MAAMwY,GACvC,IAAK,IAAI7G,EAAK,EAAGA,EAAKiB,EAAGjB,IAAM,CAC7B,IAAIuN,EAAKvN,EAAK6pB,EAAI3jB,EAAE,GAAK4jB,EAAK5jB,EAAE,GAAKS,EAAIT,EAAE,GAAI+C,EAAKjJ,EAAKoqB,EAAIjkB,EAAE,GAAK2G,EAAI3G,EAAE,GAAKE,EAAIF,EAAE,GACrFhC,EAAEpsC,OAAOkxC,GAAMhD,EAAEsH,MAK3B,OAAO7S,EAAE41F,eAAensF,EAAEi0B,MAAOj0B,EAAEwzB,MAAOxzB,EAAEpsC,QAE9C,IAAImsI,GAAK,CAAEtyE,WAAY3wD,GAAI4wD,YAAa,MAAOuO,WAAY6jE,IAC3D,SAASE,GAAG7pG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrGq1F,GAAEp1F,EAAG,WACL,IAAI2C,EAAIlmB,GAAE+9F,mBAAmB,CAACh4E,GAAIxC,EAAEu9B,MAAMj/D,QAASukC,EAAI7C,EAClD,MAAL2C,IAAcE,EAAI48F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM90D,MACpE,IAAI2B,EAAI7nB,GAAE0+F,iBAAiB,EAAGn7E,EAAEu9B,MAAMj/D,QAAQ,GAC9C,GAAIgmC,IAAMzB,EAAE06B,MAAMj/D,OAAS,EACzB,MAAM,IAAI+jC,MAAM,qDAAqDQ,EAAE06B,MAAMj/D,OAAS,kBAAkBgmC,KAC1G,IAAI4B,EAAI7J,GAAGwG,EAAEi6B,MAAO,SAAU32B,EAAI1J,GAAEq9B,mBAAmBr9B,GAAEi+B,cAAc73B,EAAE06B,OAAQr3B,GAAIE,EAAIvG,EAAEmb,KAAKp7C,IAAIijC,EAAEm8B,QAAQ9hE,OAAQspC,EAAI3D,EAAE06B,MAAM16B,EAAE06B,MAAMj/D,OAAS,GAAIgsC,EAAI5H,EAAI,CAAC4G,EAAGuB,IAAMvB,EAAI9C,EAAIqE,EAAI,EAAI,CAACvB,EAAGuB,IAAMvB,EAAIuB,EACvM,IAAK,IAAIvB,EAAI,EAAGA,EAAIlD,EAAE9nC,OAAQgrC,GAAK9C,EACjC,IAAK,IAAIqE,EAAI,EAAGA,EAAIrE,EAAGqE,IAAK,CAC1B,IAAIM,EAAIb,EAAEhB,EAAGuB,GACb,GAAU,IAANA,EACF1E,EAAEgF,GAAK1I,EAAI,EAAI2D,EAAE+E,OACd,CACH,IAAIC,EAAId,EAAEhB,EAAGuB,EAAI,GACjB1E,EAAEgF,GAAK1I,EAAI2D,EAAEgF,GAAKjF,EAAEiF,GAAKhF,EAAE+E,GAAKhF,EAAEiF,IAGxC,IAAIb,EAAI1K,EAAE41F,eAAe5yF,EAAE06B,MAAOr3B,EAAGC,GACrC,GAAS,MAALxD,EAAW,CACb,IAAI2G,EAAI7sB,GAAE+gG,uBAAuB76E,GAAIkI,EAAI40F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnuD,KAC3F,OAAOzJ,EAAE88F,8BAA8BpyF,GAAI1K,EAAE88F,8BAA8B95F,GAAIgI,EAEjF,OAAON,EAET,IAAIg/F,GAAK,CAAExyE,WAAYzwD,GAAI0wD,YAAa,MAAOuO,WAAY+jE,IAC3D,SAASE,GAAG/pG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrGq1F,GAAEp1F,EAAG,UACL,IAAI2C,EAAIlmB,GAAE+9F,mBAAmB,CAACh4E,GAAIxC,EAAEu9B,MAAMj/D,QAASukC,EAAI7C,EAClD,MAAL2C,IAAcE,EAAI48F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM90D,MACpE,IAAI2B,EAAI7nB,GAAE0+F,iBAAiB,EAAGn7E,EAAEu9B,MAAMj/D,QAAQ,GAC9C,GAAIgmC,IAAMzB,EAAE06B,MAAMj/D,OAAS,EACzB,MAAM,IAAI+jC,MAAM,oDAAoDQ,EAAE06B,MAAMj/D,OAAS,kBAAkBgmC,KACzG,IAAI4B,EAAI7J,GAAGwG,EAAEi6B,MAAO,SAAU32B,EAAI1J,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAc73B,EAAE06B,OAAQr3B,GAAIE,EAAIvG,EAAEmb,KAAKp7C,IAAIijC,EAAEm8B,QAAQ9hE,OAAQspC,EAAI3D,EAAE06B,MAAM16B,EAAE06B,MAAMj/D,OAAS,GAAIgsC,EAAI5H,EAAI,CAAC4G,EAAGuB,IAAMvB,EAAI9C,EAAIqE,EAAI,EAAI,CAACvB,EAAGuB,IAAMvB,EAAIuB,EACxM,IAAK,IAAIvB,EAAI,EAAGA,EAAIlD,EAAE9nC,OAAQgrC,GAAK9C,EACjC,IAAK,IAAIqE,EAAI,EAAGA,EAAIrE,EAAGqE,IAAK,CAC1B,IAAIM,EAAIb,EAAEhB,EAAGuB,GACb,GAAU,IAANA,EACF1E,EAAEgF,GAAK1I,EAAI,EAAI2D,EAAE+E,OACd,CACH,IAAIC,EAAId,EAAEhB,EAAGuB,EAAI,GACjB1E,EAAEgF,GAAK1I,EAAI2D,EAAEgF,GAAKjF,EAAEiF,GAAKhF,EAAE+E,GAAKhF,EAAEiF,IAGxC,IAAIb,EAAI1K,EAAE41F,eAAe5yF,EAAE06B,MAAOr3B,EAAGC,GACrC,GAAS,MAALxD,EAAW,CACb,IAAI2G,EAAI7sB,GAAE+gG,uBAAuB76E,GAAIkI,EAAI40F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnuD,KAC3F,OAAOzJ,EAAE88F,8BAA8BpyF,GAAI1K,EAAE88F,8BAA8B95F,GAAIgI,EAEjF,OAAON,EAET,IAAIk/F,GAAK,CAAE1yE,WAAYvwD,GAAIwwD,YAAa,MAAOuO,WAAYikE,IAC3D,SAASE,GAAGjqG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,EAAG68C,aAAc58C,GAAM3C,EACxG,GAAuB,IAAnBC,EAAEu9B,MAAMj/D,OAAc,CACxB,IAAIqkC,EAAI9C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ2lC,EAAIhD,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQonC,EAAIuxF,GAAGlzF,EAAGE,EAAGL,EAAEs6B,MAAOt6B,EAAE+6B,MAAO96B,GACrG,OAAO5C,EAAE41F,eAAe,CAAChzF,GAAID,EAAEs6B,MAAOx4B,GACjC,GAAuB,IAAnBtE,EAAEu9B,MAAMj/D,OAAc,CAC/B,IAAIqkC,EAAI9C,EAAEknG,WAAW/mG,GAAI6C,EAAIhD,EAAEknG,WAAWvkG,GAAI8B,EAAIyxF,GAAGpzF,EAAGE,EAAGJ,EAAGC,GAC9D,OAAO7C,EAAE41F,eAAenxF,EAAEi5B,MAAO/6B,EAAEs6B,MAAOx4B,EAAEpnC,QAE9C,MAAM,IAAImlC,MAAM,qEAAqErC,EAAEu9B,MAAMj/D,WAE/F,IAAIqrI,GAAK,CAAE5yE,WAAYnwD,GAAIowD,YAAa,MAAOuO,WAAYmkE,IAC3D,SAASE,GAAGnqG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+/C,UAAWj9C,EAAG60C,WAAY50C,GAAM1C,EAC/FtD,GAAE26B,OAAa,SAAN30B,EAAc,IAAM,+DAA+DA,GAC5F,IAAIC,EAAI1C,EAAEu9B,MAAM,GAAI56B,EAAI3C,EAAEu9B,MAAM,GAAI16B,EAAI7C,EAAEu9B,MAAM,GAAIj5B,EAAItE,EAAEu9B,MAAM,GAAIr3B,EAAIvD,EAAIH,EAAG2D,EAAItD,EAAIL,EAAG4D,EAAI9B,GAAK9B,EAAIA,GAAIgE,EAAI3G,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQotC,EAAI,IAAIiK,aAAa7R,EAAIwD,EAAIC,EAAIC,GAAImE,EAAI,EACrL,IAAK,IAAIjB,EAAI,EAAGA,EAAI5G,IAAK4G,EACvB,IAAK,IAAIuB,EAAI,EAAGA,EAAI3E,IAAK2E,EAAG,CAC1B,IAAIM,EAAIhJ,KAAK7c,MAAMulB,EAAIrI,GAAI4I,EAAIP,EAAIrI,EACnC,IAAK,IAAI6I,EAAI,EAAGA,EAAIlF,IAAKkF,EAAG,CAC1B,IAAIC,EAAInJ,KAAK7c,MAAM+lB,EAAI7I,GAAIgJ,EAAIH,EAAI7I,EAAGiJ,GAAKL,EAAI5I,EAAIgJ,GAAKpF,EACxD,IAAK,IAAIsF,EAAI,EAAGA,EAAItF,IAAKsF,EAAG,CAC1B,IAAIruC,EAAIquC,EAAID,EAAInH,GAAKgH,EAAIzI,GAAKsI,EAAIxI,EAAI2G,IACtCgB,EAAEC,KAAO/D,EAAEnpC,KAInB,OAAOwiC,EAAE41F,eAAe,CAAC/yF,EAAGwD,EAAGC,EAAGC,GAAIpG,EAAE88B,MAAOxyB,GAEjD,IAAIu/F,GAAK,CAAE9yE,WAAYjwD,GAAIkwD,YAAa,MAAOuO,WAAYqkE,IAC3D,SAASE,GAAGrqG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,EAAGo3C,gBAAiBl3C,GAAM9C,EACnIq1F,GAAE,CAACp1F,EAAGwC,GAAI,yBACV,IAAI8B,EAAI7H,GAAEm7B,eAAe53B,EAAEu9B,OAAQr3B,EAAIzJ,GAAEm7B,eAAep1B,EAAE+6B,OAAQp3B,EAAIxD,EACjE,MAALwD,IAAcA,EAAI,CAAC,EAAG,IAAK1J,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAG0D,GAAI,IAAM,gFAAgF1D,oBAAoB0D,MACtL,IAAIC,EAAI3pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAG0D,EAAGzD,EAAGG,GAAG,IAAS+0C,aAAcpxC,EAAGqxC,YAAavtC,EAAG0tC,eAAgBztC,EAAG0tC,cAAe3uC,EAAG0tC,QAASnsC,GAAMzE,EAAG+E,EAAIN,EAAEttC,KAAM6tC,EAAIP,EAAEmuC,IAAK3tC,EAAIjF,EAAEqxC,YAAcrxC,EAAEoxC,WAAYlsC,EAAI,IAAI1yB,GAAGwtB,EAAE+xC,SAAUn4C,EAAE88B,OAAQtxB,EAAI3L,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQuuC,EAAI5L,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQwuC,EAAIJ,EAAEpuC,OAC7T,IAAK,IAAIyuC,EAAI,EAAGA,EAAIvF,EAAEgxC,YAAazrC,EAAG,CACpC,IAAItuC,EAAIsuC,EAAIrH,EAAE,GAAIsH,EAAID,EAAIL,EAAEizB,QAAQ,GACpC,IAAK,IAAIzyB,EAAI,EAAGA,EAAI1F,EAAE6wC,YAAanrC,EAAG,CACpC,IAAIG,EAAIL,EAAIE,EAAIR,EAAEizB,QAAQ,GAAIh1B,EAAIuC,EAAI1F,EAAEsxC,aAAetsC,EACvD,IAAK,IAAI6G,EAAI,EAAGA,EAAIzL,IAAKyL,EAAG,CAC1B,IAAIjG,EAAIzC,EAAI0I,EAAI1H,EAChB,GAAIyB,EAAI,GAAKA,GAAK5F,EAAEkxC,SAClB,SACF,IAAI/nB,EAAItd,EAAI/L,EAAE,GAAIspB,EAAInyD,EAAI2uC,EAAI1H,EAAE,GAChC,IAAK,IAAI0qB,EAAI,EAAGA,EAAI5oB,EAAE8wC,WAAYloB,EAAG,CACnC,IAAIC,EAAKhjB,EAAI+iB,EAAI1jB,EAAEizB,QAAQ,GAAIp5B,EAAK6pB,EAAI5oB,EAAEuxC,YAAcxsC,EACxD,IAAK,IAAIuH,EAAK,EAAGA,EAAKpI,IAAKoI,EAAI,CAC7B,IAAItE,EAAKjJ,EAAKuN,EAAKpJ,EACnB,GAAI8E,EAAK,GAAKA,GAAMhI,EAAEmxC,QACpB,SACF,IAAI1kC,EAAK0c,EAAI7c,EAAKxM,EAAE,GAAIT,EAAK+pB,EAAIphB,EAAKhI,EAAEoxC,WAAY1kC,EAAKmc,EAAIlc,EAAKF,EAClE,IAAK,IAAIG,EAAK,EAAGA,EAAK5M,EAAEoxC,aAAcxkC,EAAI,CACxC,IAAIE,EAAK1H,EAAE/F,EAAKuN,GAChB,IAAK,IAAIS,EAAK,EAAGA,EAAKpI,IAAKoI,EACzB/H,EAAEoH,EAAKW,IAAOP,EAAKzH,EAAEsH,EAAKU,GAC5BX,GAAMzH,EAAG0H,GAAM1H,OAO3B,OAAOxL,EAAE41F,eAAenqF,EAAEiyB,MAAOjyB,EAAEwxB,MAAOxxB,EAAEpuC,QAE9C,IAAI6sI,GAAK,CAAEhzE,WAAY/vD,GAAIgwD,YAAa,MAAOuO,WAAYukE,IAC3D,SAASE,GAAGvqG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAC/Iq1F,GAAE,CAACp1F,EAAGwC,GAAI,uCACV,IAAI0D,EAAIzpB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAGC,EAAGC,EAAGE,GAAG,IAAS60C,aAAcvxC,EAAGwxC,YAAavxC,EAAGwxC,aAAcpxC,EAAGqxC,YAAavtC,GAAMpE,EAAGqE,EAAI,IAAI3xB,GAAGstB,EAAEkyC,YAAa,WAAY9uC,EAAIpD,EAAE8wC,QAAQz5E,KAAMstC,EAAI3E,EAAE8wC,QAAQgC,IAAK7tC,EAAIjF,EAAEuxC,YAAcvxC,EAAEsxC,WAAYpsC,EAAIvL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQmuC,EAAI,IAAIzyB,GAAGonB,EAAEu9B,MAAOv9B,EAAE88B,MAAO1xB,GAAIE,EAAIzL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQsuC,EAAI,IAAI5yB,GAAG4pB,EAAE+6B,MAAO/6B,EAAEs6B,MAAOxxB,GACpX,IAAK,IAAIG,EAAI,EAAGA,EAAIjF,IAAKiF,EAAG,CAC1B,IAAIC,EAAIvJ,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAMqsB,EAAIY,GAAKtF,IAAKwF,EAAIxJ,KAAK3V,IAAI0Z,EAAE+wC,WAAY/wC,EAAEoxC,SAAWzsC,EAAIY,GAAKtF,GAC9F,IAAK,IAAI9oC,EAAI,EAAGA,EAAIitC,IAAKjtC,EAAG,CAC1B,IAAIuuC,EAAIzJ,KAAK3W,IAAI,EAAG2W,KAAK3jB,MAAM8qB,EAAIjsC,GAAK+oC,IAAK0F,EAAI3J,KAAK3V,IAAI0Z,EAAEgxC,UAAWhxC,EAAEqxC,QAAUjuC,EAAIjsC,GAAK+oC,GAC5F,IAAK,IAAI6F,EAAI,EAAGA,EAAI/F,EAAEuxC,cAAexrC,EAAG,CACtC,IAAI1C,EAAIpH,KAAKm3C,MAAMrtC,EAAId,GAAI8G,EAAIhG,EAAId,EAAGa,EAAI,EAC1C,IAAK,IAAIujB,EAAI,EAAGA,EAAIrpB,EAAEkxC,YAAa7nB,EACjC,IAAK,IAAIC,EAAI9jB,EAAG8jB,EAAI7jB,IAAK6jB,EAAG,CAC1B,IAAIR,EAAIvjB,EAAI+jB,EAAIrpB,EAAI0E,EACpB,IAAK,IAAIokB,EAAKrjB,EAAGqjB,EAAKnjB,IAAKmjB,EAAI,CAC7B,IAAI9pB,EAAK9nC,EAAI4xD,EAAK7oB,EAAIkD,EACtB0C,GAAKX,EAAEzrC,IAAI2vD,EAAGP,EAAG7pB,EAAIoE,GAAKiC,EAAE5rC,IAAI2vD,EAAGC,EAAGP,EAAIhjB,IAGhD1B,EAAE9pC,IAAIurC,EAAGP,EAAGpuC,EAAGksC,EAAG0I,KAIxB,OAAOpS,EAAE41F,eAAelrF,EAAEgzB,MAAOhzB,EAAEuyB,MAAOvyB,EAAErtC,QAE9C,IAAI+sI,GAAK,CAAElzE,WAAY7vD,GAAI8vD,YAAa,MAAOuO,WAAYykE,IAC3D,SAASE,GAAGzqG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGm7C,WAAY15C,GAAMvE,EACnJq1F,GAAE,CAACp1F,EAAGwC,GAAI,sCACV,IAAI0D,EAAIzJ,GAAEm7B,eAAe53B,EAAEu9B,OAAQp3B,EAAI1J,GAAEm7B,eAAep1B,EAAE+6B,OAAQn3B,EAAI3pB,GAAEy8F,kBAAkB50E,EAAG9B,EAAE+6B,MAAO96B,EAAGC,EAAGC,EAAGE,GAAG,GAAO2D,EAAI,IAAI5tB,GAAGwtB,EAAE8xC,QAAS,WAAY5tC,EAAI9D,EAAEtpC,QAASqtC,EAAGjB,EAAGuB,GAAKrE,EAAE+3B,QAASpzB,EAAItL,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASkuC,EAAGC,EAAGC,GAAKpF,EAAGsF,EAAI3L,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASuuC,EAAGC,EAAGC,GAAKxF,GAAKixC,UAAW/5E,EAAGu6E,aAAchsC,EAAGisC,YAAa/rC,EAAG0rC,WAAYvrC,EAAGqrC,SAAU/tC,EAAGguC,QAAStlC,EAAGwlC,YAAazrC,EAAGirC,UAAW1nB,EAAG2nB,SAAU1nB,EAAGkoB,aAAc1oB,EAAG2oB,YAAa1oB,GAAO7oB,EAAGjB,EAAKyG,EAAI,EAAIxF,EAAE4wC,QAAQgC,IAAKtmC,EAAK5G,EAAI,EAAI1F,EAAE4wC,QAAQz5E,KAAM6wC,EAAKpC,EAAIC,EAC9gB,IAAK,IAAI4G,EAAK,EAAGA,EAAKx1C,IAAKw1C,EACzB,IAAK,IAAIpN,EAAK,EAAGA,EAAKwG,IAAKxG,EACzB,IAAK,IAAIqN,EAAK,EAAGA,EAAKvJ,IAAKuJ,EAAI,CAC7B,IAAIC,EAAKD,EAAK3N,EAAI6N,EAAK7Q,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKu0B,EAAKic,IAAK9b,EAAK/Q,KAAK3V,IAAI+iC,GAAI3jB,EAAImH,GAAMic,GACnF,IAAK,IAAIvb,EAAK,EAAGA,EAAKxB,IAAKwB,EAAI,CAC7B,IAAIC,EAAKD,EAAKf,EAAIpN,EAAKnD,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKk1B,EAAKub,IAAM5gB,EAAKlM,KAAK3V,IAAIgjC,GAAI1jB,EAAI4H,GAAMub,GAAK1gB,EAAK,EAC9F,IAAK,IAAIC,EAAKwE,EAAIxE,EAAK0E,IAAM1E,EAAI,CAC/B,IAAI7I,EAAK6I,EAAKwgB,EAAIjc,EAClB,IAAK,IAAI0c,EAAKnqB,EAAImqB,EAAKphB,IAAMohB,EAAI,CAC/B,IAAIhhB,EAAKghB,EAAKR,EAAKvb,EAAIhF,EAAKtD,EAAIyH,EAAKxH,EAAImD,EAAKlD,EAAImkB,EAAIC,EAAKjkB,GAAKG,EAAI,EAAIjG,GAAM+F,GAAKI,EAAI,EAAI2C,GAAM9C,EAAIlG,EACrG,IAAK,IAAIkJ,EAAK,EAAGA,EAAKP,IAAMO,EAAI,CAC9B,IAAIL,EAAK7I,EAAK2I,EAAKO,EAAI+F,EAAKvJ,EAAEuD,EAAKJ,GAAK0G,EAAKxJ,EAAEkkB,EAAK/gB,GACpDJ,GAAMmG,EAAKM,IAIjB1K,EAAEC,EAAIsI,EAAKvJ,EAAIwJ,EAAKjI,EAAI4I,EAAKhO,GAAM8I,GAG3C,OAAO1O,EAAE41F,eAAejvF,EAAE+2B,MAAO/2B,EAAEs2B,MAAOt2B,EAAEtpC,QAE9C,IAAIitI,GAAK,CAAEpzE,WAAY3vD,GAAI4vD,YAAa,MAAOuO,WAAY2kE,IAC3D,SAASE,GAAG3qG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAIvD,GAAEi+B,cAAc36B,EAAEw9B,OAAQ/6B,EAAI3C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQulC,EAAIpkB,GAAG,CAAC2hB,EAAGA,GAAID,EAAE+8B,OAAQp6B,EAAID,EAAEvlC,OACjJ,IAAK,IAAI2lC,EAAI,EAAGA,EAAIL,EAAElkC,OAAQukC,IAC5BH,EAAEG,EAAI7C,EAAI6C,GAAKL,EAAEK,GACnB,IAAIF,EAAI,IAAI5C,EAAEw9B,SAAUx9B,EAAEw9B,OAC1B,OAAO19B,EAAE41F,eAAe9yF,EAAGF,EAAEq6B,MAAOr6B,EAAEvlC,QAExC,IAAImtI,GAAK,CAAEtzE,WAAYzvD,GAAI0vD,YAAa,MAAOuO,WAAY6kE,IACvDE,GAAK,CAAEvzE,WAAYvvD,GAAIwvD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MAC3F,IAAMyJ,EAAGvJ,EAAG+tB,OAAQ9tB,GAAMP,GAAK8+B,QAAS/7B,EAAG5T,IAAK6T,EAAGi7C,UAAWh7C,GAAM7C,EAAG8C,EAAIjD,EAAImD,EAAIF,EAAEqY,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQonC,EAAIvE,EAAEw9B,MAAMj/D,OAAQ4nC,EAAIvD,EAAEqY,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAInG,EAAEu9B,MAAMj/D,QAAU84E,UAAWhxC,EAAGkxC,SAAU9wC,EAAG+wC,QAASjtC,EAAGktC,WAAYjtC,EAAG0sC,UAAW3tC,EAAG4tC,SAAUrsC,EAAGmsC,QAAS7rC,EAAGusC,aAActsC,EAAGusC,YAAatsC,EAAGusC,aAActsC,EAAGusC,YAAarsC,EAAGwsC,eAAgBvsC,EAAGwsC,cAAevsC,EAAGysC,SAAUxsC,GAAMlvB,GAAE48F,sBAAsBt5E,EAAEw9B,MAAOv9B,EAAEu9B,MAAO/6B,EAAGC,EAAG,OAAQC,GAAIrlC,EAAIo/B,GAAEi+B,cAAc/uB,GAAIC,EAAID,EAAErtC,OAAQwtC,EAAIrP,GAAEk8B,kBAAkB54B,EAAE+8B,MAAOz/D,GAClhB,IAAK,IAAIksC,EAAI,EAAGA,EAAInD,IAAKmD,EACvB,IAAK,IAAI0I,EAAI,EAAGA,EAAI3I,IAAK2I,EAAG,CAC1B,IAAIjG,EAAIiG,EAAI7G,EAAID,EAAE6tC,IAClB,IAAK,IAAIzpB,EAAI,EAAGA,EAAI1kB,IAAK0kB,EAAG,CAC1B,IAAIC,EAAID,EAAIlkB,EAAIF,EAAE5tC,KAClB,IAAK,IAAIyxD,EAAI,EAAGA,EAAIzkB,IAAKykB,EAAG,CAC1B,IAAIC,EAAK2C,OAAOsjD,iBAChB,IAAK,IAAIxiE,EAAK,EAAGA,EAAKpH,IAAKoH,EAAI,CAC7B,IAAItE,EAAKpC,EAAI0G,EAAKjH,EAClB,GAAI2C,GAAM,GAAKA,EAAK5H,EAClB,IAAK,IAAIqM,EAAK,EAAGA,EAAKrH,IAAKqH,EAAI,CAC7B,IAAIpN,EAAK+pB,EAAI3c,EAAKnH,EAClB,GAAIjG,GAAM,GAAKA,EAAK6E,EAAG,CACrB,IAAIwI,EAAKrW,GAAEo9B,WAAW,CAACtwB,EAAG6E,EAAI3I,EAAIupB,GAAI1qB,EAAG7H,GAAEm7B,eAAe73B,EAAEw9B,QAASxqB,EAAKtW,GAAEo9B,WAAW,CAACnnB,EAAIG,EAAImc,GAAI7oB,EAAG1J,GAAEm7B,eAAe53B,EAAEu9B,QAASvqB,EAAKnQ,EAAEiQ,GAAM5M,EAAE6M,GAClJC,EAAKic,IAAOA,EAAKjc,KAIzB,IAAI7N,EAAK1I,GAAEo9B,WAAW,CAACtwB,EAAG0I,EAAGsd,EAAGP,GAAIpjB,EAAGnP,GAAEm7B,eAAejsB,IACxDG,EAAE3G,GAAM8pB,IAIhB,MAAO,CAAE+P,OAAQr8B,EAAE8jC,MAAMhqC,GAAEs+B,aAAajvB,EAAG/L,EAAE+8B,OAAQnxB,EAAG5L,EAAE+8B,OAAQS,MAAO5xB,EAAGmxB,MAAO/8B,EAAE+8B,SAEnFytE,GAAK,CAAExzE,WAAYrvD,GAAIsvD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MAC3F,IAAMyJ,EAAGvJ,EAAG+tB,OAAQ9tB,EAAG+9C,GAAIv7C,GAAM/C,GAAK8+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM9C,EAAGgD,EAAInD,EAAI4E,EAAI7H,GAAEq+B,cAAc/6B,EAAEw9B,MAAO16B,EAAEmY,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,QAASgpC,EAAIzJ,GAAEq+B,cAAc96B,EAAEu9B,MAAO16B,EAAEmY,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,SAAWk6E,UAAWjxC,EAAGmxC,SAAUlxC,EAAGmxC,QAAS/wC,EAAGgxC,WAAYltC,EAAG2sC,UAAW1sC,EAAG2sC,SAAU5tC,EAAG0tC,QAASnsC,EAAG6sC,aAAcvsC,EAAGwsC,YAAavsC,EAAGwsC,aAAcvsC,EAAGwsC,YAAavsC,EAAG0sC,eAAgBxsC,EAAGysC,cAAexsC,EAAG0sC,SAAUzsC,GAAMjvB,GAAE48F,sBAAsBt5E,EAAEw9B,MAAOv9B,EAAEu9B,MAAO96B,EAAGC,EAAG,OAAQC,GAC1dlG,GAAE26B,OAAO50B,EAAE66B,OAAS3xB,EAAEptC,OAAQ,IAAM,YAAYoJ,4CAA4CgkC,EAAEptC,mBAAmBkkC,EAAE66B,QACnH,IAAI1xB,EAAIlP,GAAEq+B,cAAcpvB,EAAG7I,EAAEmY,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASG,EAAIo/B,GAAEs9B,0BAA0B/5B,EAAEu9B,MAAOv9B,EAAE88B,OACpG,IAAK,IAAIhxB,EAAI,EAAGA,EAAI3F,IAAK2F,EACvB,IAAK,IAAIG,EAAI,EAAGA,EAAI1B,IAAK0B,EAAG,CAC1B,IAAI1C,EAAI0C,EAAId,EAAIN,EAAEmuC,IAClB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI3I,IAAK2I,EAAG,CAC1B,IAAIjG,EAAIiG,EAAI7G,EAAIP,EAAEttC,KAClB,IAAK,IAAIgyD,EAAI,EAAGA,EAAIjlB,IAAKilB,EAAG,CAC1B,IAAIC,EAAIoC,OAAOsjD,iBAAkBlmD,EAAI,EAAGC,EAAK,EAC7C,IAAK,IAAI9pB,EAAK,EAAGA,EAAKkG,IAAKlG,EAAI,CAC7B,IAAIuN,EAAKnJ,EAAIpE,EAAKqG,EAClB,GAAIkH,GAAM,GAAKA,EAAKtM,EAClB,IAAK,IAAIgI,EAAK,EAAGA,EAAK9C,IAAK8C,EAAI,CAC7B,IAAIyE,EAAK7G,EAAIoC,EAAK3C,EAClB,GAAIoH,GAAM,GAAKA,EAAKrM,EAAG,CACrB,IAAIf,EAAKnB,EAAEwH,GAAG4G,GAAIG,GAAI0c,GAAKrpB,EAAEf,GAAIiJ,GAAImhB,GACrC9pB,EAAK+pB,IAAMA,EAAI/pB,EAAIupB,EAAI7pB,EAAI8pB,EAAK7gB,KAIxC/wC,EAAE2xD,GAAGC,GAAIM,IAAM5jB,EAAEG,GAAGG,GAAGgG,GAAGsd,KAIlC,MAAO,CAAEyP,OAAQn8B,EAAE4jC,MAAMhqC,GAAEs+B,aAAa19D,EAAG0iC,EAAE+8B,OAAQ98B,EAAEu9B,MAAOv9B,EAAE88B,OAAQS,MAAOv9B,EAAEu9B,MAAOT,MAAO98B,EAAE88B,SAE/F0tE,GAAK,CAAEzzE,WAAYnvD,GAAIovD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MAC3F,IAAMyJ,EAAGvJ,EAAG+tB,OAAQ9tB,EAAG+9C,GAAIv7C,GAAM/C,GAAK8+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM9C,EAAGgD,EAAInD,EAAI4E,EAAI7H,GAAEq+B,cAAc/6B,EAAEw9B,MAAO16B,EAAEmY,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,QAASgpC,EAAIzJ,GAAEq+B,cAAc96B,EAAEu9B,MAAO16B,EAAEmY,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,SAAWk6E,UAAWjxC,EAAGmxC,SAAUlxC,EAAGmxC,QAAS/wC,EAAGgxC,WAAYltC,EAAG2sC,UAAW1sC,EAAG2sC,SAAU5tC,EAAG0tC,QAASnsC,EAAG6sC,aAAcvsC,EAAGwsC,YAAavsC,EAAGwsC,aAAcvsC,EAAGwsC,YAAavsC,EAAG0sC,eAAgBxsC,EAAGysC,cAAexsC,EAAG0sC,SAAUzsC,GAAMjvB,GAAE48F,sBAAsBt5E,EAAEw9B,MAAOv9B,EAAEu9B,MAAO96B,EAAGC,EAAG,OAAQC,GAC1dlG,GAAE26B,OAAO50B,EAAE66B,OAAS3xB,EAAEptC,OAAQ,IAAM,YAAYsJ,4CAA4C8jC,EAAEptC,mBAAmBkkC,EAAE66B,QACnH,IAAI1xB,EAAIlP,GAAEq+B,cAAcpvB,EAAG7I,EAAEmY,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAASG,EAAIo/B,GAAEs9B,0BAA0Bh6B,EAAEw9B,MAAOx9B,EAAE+8B,OACpG,IAAK,IAAIhxB,EAAI,EAAGA,EAAI3F,IAAK2F,EACvB,IAAK,IAAIG,EAAI,EAAGA,EAAI1B,IAAK0B,EAAG,CAC1B,IAAI1C,EAAI0C,EAAId,EAAIN,EAAEmuC,IAClB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI3I,IAAK2I,EAAG,CAC1B,IAAIjG,EAAIiG,EAAI7G,EAAIP,EAAEttC,KAClB,IAAK,IAAIgyD,EAAI,EAAGA,EAAIjlB,IAAKilB,EAAG,CAC1B,IAAIC,EAAIoC,OAAOsjD,iBAAkBlmD,EAAIzlB,EAAI,EAAI,EAAIA,EAAG0lB,EAAKjjB,EAAI,EAAI,EAAIA,EACrE,IAAK,IAAI7G,EAAK,EAAGA,EAAKkG,IAAKlG,EAAI,CAC7B,IAAIuN,EAAKnJ,EAAIpE,EAAKqG,EAClB,GAAIkH,GAAM,GAAKA,EAAKtM,EAClB,IAAK,IAAIgI,EAAK,EAAGA,EAAK9C,IAAK8C,EAAI,CAC7B,IAAIyE,EAAK7G,EAAIoC,EAAK3C,EAClB,GAAIoH,GAAM,GAAKA,EAAKrM,EAAG,CACrB,IAAIf,EAAKnB,EAAEwH,GAAG4G,GAAIG,GAAI0c,GAAKrpB,EAAEf,GAAIiJ,GAAImhB,GACrC9pB,EAAK+pB,IAAMA,EAAI/pB,EAAIupB,EAAItc,EAAIuc,EAAKpc,KAIxCx1C,EAAEyuC,GAAGkjB,GAAGC,GAAIM,IAAM5jB,EAAEG,GAAGG,GAAGgG,GAAGsd,KAIrC,MAAO,CAAEyP,OAAQn8B,EAAE4jC,MAAMhqC,GAAEs+B,aAAa19D,EAAG0iC,EAAE+8B,OAAQ/8B,EAAEw9B,MAAOx9B,EAAE+8B,OAAQS,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,SAEnG,SAAS2tE,GAAGhrG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,GAAMN,GAAMuyE,OAAQzvE,EAAGqwE,QAASpwE,GAAM1C,GAAK2qG,eAAgBhoG,EAAGkwE,aAAcjwE,GAAMF,GAAK,GAAII,GAAU,MAALF,OAAY,EAASA,EAAE2iD,QAAU,EAAGhhD,GAAU,MAAL5B,OAAY,EAASA,EAAEioG,cAAgB,KACvO,GAAU,OAANrmG,EACF,MAAM,IAAIjC,MAAM,gBAAgBK,EAAEioG,oDACpC,IAAIzkG,EAAI1D,EAAE+uE,WAAWjtE,GAAS,MAAL5B,OAAY,EAASA,EAAEkoG,oBAAsB,IACtE,GAAS,MAAL1kG,EACF,MAAM,IAAI7D,MAAM,kCAAkCiC,WACpD,IAAK6B,EAAGC,GAAKpG,EAAEu9B,MAAMnnC,MAAM,EAAG,GAAIoQ,EAAuB,IAAnBxG,EAAEu9B,MAAMj/D,OAAe,EAAI0hC,EAAEu9B,MAAM,GAAIjzB,EAAIzK,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQqtC,EAAgB,YAAZvK,EAAE88B,MAAsB,IAAM,EAAGxzB,EAAI,IAAIuqB,kBAAkBztB,EAAID,EAAI,GACrL,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAIC,IAAK+E,EAAG,CAC9B,IAAIC,EAAI,CAAC,EAAG,EAAG,EAAG,IAAMvI,GACxB,IAAK,IAAIyI,EAAI,EAAGA,EAAI9E,EAAG8E,IAAK,CAC1B,IAAIE,EAAIlB,EAAEa,EAAI3E,EAAI8E,GAClB,GAAgB,YAAZtL,EAAE88B,OACJ,GAAItxB,EAAI,GAAKA,EAAI,EACf,MAAM,IAAInJ,MAAM,mFAAmFmJ,WAChG,GAAgB,UAAZxL,EAAE88B,QAAsBtxB,EAAI,GAAKA,EAAI,KAC9C,MAAM,IAAInJ,MAAM,mFAAmFmJ,MAC/F,IAANhF,GAAW4E,EAAE,GAAKI,EAAIjB,EAAGa,EAAE,GAAKI,EAAIjB,EAAGa,EAAE,GAAKI,EAAIjB,GAAKa,EAAEE,GAAKE,EAAIjB,EAEpE,IAAIc,EAAQ,EAAJF,EACR7B,EAAE+B,EAAI,GAAKlJ,KAAK3O,MAAM4X,EAAE,IAAK9B,EAAE+B,EAAI,GAAKlJ,KAAK3O,MAAM4X,EAAE,IAAK9B,EAAE+B,EAAI,GAAKlJ,KAAK3O,MAAM4X,EAAE,IAAK9B,EAAE+B,EAAI,GAAKlJ,KAAK3O,MAAM4X,EAAE,IAEjH5I,EAAEumC,MAAQ3iC,EAAG5D,EAAEsmC,OAAS3iC,EACxB,IAAI0E,EAAI,IAAIumE,UAAU9nE,EAAGlD,EAAGD,GAC5B,OAAOD,EAAEysE,aAAa9nE,EAAG,EAAG,GAAI7K,EAElC,IAAI6qG,GAAK,CAAE9zE,WAAYjvD,GAAIkvD,YAAa,MAAOuO,WAAYklE,IAC3D,SAASK,GAAGrrG,GACV,IAEIiD,GAFEs6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxFq1F,GAAEp1F,EAAG,OAEgB0C,EAAT,SAAZ1C,EAAE88B,MAAuB4/D,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,WAAmBw/D,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAC/H,IAAI8C,EAAID,EAAE66B,MAAMj/D,OAAQukC,EAAIpG,GAAE29B,eAAe53B,EAAGE,EAAE66B,OAAQj5B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGF,GAAIuD,EAAIrD,EAAGsD,EAAIzD,EAChG,MAAL4B,IAAc6B,EAAIs5F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQ4B,EAAIzpB,GAAE0+F,iBAAiBj1E,EAAE5nC,OAAQqkC,IAAKlmB,GAAE27F,2BAA2B,MAAOlyE,EAAGC,EAAEo3B,MAAMj/D,QACjK,IAAK8nC,EAAGI,GAAK/pB,GAAE+8F,0BAA0BrzE,EAAEo3B,MAAOr3B,GAAIoE,EAAI7tB,GAAE2f,WAAW+J,EAAE22B,MAAO,SAAUvyB,EAAI8xF,GAAGx8F,EAAGuG,EAAGkE,GAAIhB,EAAI7M,GAAEi+B,cAAcl0B,GAAIqE,EAAIhL,EAAEmb,KAAKp7C,IAAI2qC,EAAEy0B,QAAQ9hE,OAAQiuC,EAAItL,EAAEmb,KAAKp7C,IAAIumC,EAAE64B,QAAQ9hE,OAC7L,IAAK,IAAIkuC,EAAI,EAAGA,EAAIP,EAAEvsC,SAAU8sC,EAAG,CACjC,IAAIC,EAAID,EAAI9B,EAAGgC,EAAI,EACnB,IAAK,IAAIE,EAAI,EAAGA,EAAIlC,IAAKkC,EACvBF,GAAKH,EAAEE,EAAIG,GACbX,EAAEO,GAAKE,EAET,GAAI7I,EAAG,CACL,IAAI2I,EAAI3uB,GAAEs9F,qBAAqBxvE,EAAEgzB,MAAO16B,GAAIwI,EAAId,EAChDA,EAAIg6F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQvL,EAAE88F,8BAA8BtxF,GAEjG,OAAOxL,EAAE88F,8BAA8Bj6F,GAAS,MAAL4B,GAAazE,EAAE88F,8BAA8Bx2F,GAAIoE,EAE9F,IAAIwgG,GAAK,CAAEh0E,WAAY3+C,GAAI4+C,YAAa,MAAOuO,WAAYulE,IAC3D,SAASE,GAAGvrG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK2hD,SAAUphD,GAAMD,EAAGyC,EAAI9C,GAAMi/E,QAASl8E,EAAGm8E,WAAYl8E,EAAGm8E,OAAQl8E,GAAMlmB,GAAEm9F,qBAAqB55E,EAAGwC,EAAElkC,QAClJme,GAAEg8F,oBAAoBh2E,EAAEnkC,OAAQqkC,EAAGH,GACnC,IAAMuvC,KAAMlvC,EAAGm8E,MAAO16E,GAAM7nB,GAAEk+F,qBAAqBj4E,EAAGC,GAAIuD,EAAI5B,EAAEhmC,OAAQ6nC,EAAI,KAAMC,EAAI3D,EAAEnkC,OAAQkoC,EAAI,GACpG,IAAK,IAAI8D,EAAI,EAAGA,EAAIpE,IAAKoE,EAAG,CAC1B,IAAK,IAAIC,KAAKjG,EAAEgG,GAAI,CAClB,IAAgFa,GAA1E2zE,mBAAoBx1E,EAAG9kB,WAAYqmB,GAAMpuB,GAAEo+F,qBAAqBz0E,EAAGzD,EAAE4H,IAC3E9tB,GAAEghG,sBAAsBn0E,GAAK6B,EAAI3I,EAAE+H,IAAMY,EAAIs0F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAG9G,EAAE+H,IAAMjuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnuD,KAAQ9C,EAAEyD,KAAKkB,IACjH,IAAIC,EAAID,EAAEoyB,MAAMnnC,QAChB,IAAK,IAAIiV,EAAI,EAAGA,EAAIR,EAAEvsC,SAAU+sC,EAC9BD,EAAE0N,OAAOjO,EAAEQ,GAAI,EAAG,GACpB5O,GAAEy6B,YAAY/rB,EAAEoyB,MAAOnyB,KAAOD,EAAIo5F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQ5E,EAAEyD,KAAKkB,IAAW,OAANhF,EAAaA,EAAIgF,GAAKhF,EAAIg5F,GAAG,CAAEniE,OAAQ,CAAEv6B,EAAG0I,EAAGN,EAAG1E,GAAK7pB,QAASujB,IAAM2G,EAAEyD,KAAK9D,IAExLmE,EAAIpE,EAAI,IAAMrD,EAAEyH,IAAM,IAAMnE,EAAI2kG,GAAG,CAAE9tE,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMvyC,EAAEyH,IAAM7H,EAAEnkC,OAAS8nC,GAAIivC,UAAU,KAAY7uC,EAAEyD,KAAK9D,IAAKC,KAE7I,IAAK,IAAIkE,KAAK9D,EACZ8D,IAAMnE,GAAKtG,EAAE88F,8BAA8BryF,GAC7C,OAAOnE,EAET,IAAI8kG,GAAK,CAAEl0E,WAAY7uD,GAAI8uD,YAAa,MAAOuO,WAAYylE,IAC3D,SAASE,GAAGzrG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKs+C,GAAIh+C,EAAGtD,EAAGuD,GAAMN,EACtD01F,GAAE,CAACr1F,EAAGC,GAAI,WACV,IAAIwC,EAAI,IAAI+R,aAAa9X,GAAEi+B,cAAc16B,EAAEu9B,QAAS96B,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQwlC,EAAI7C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAC9G,IAAK,IAAIylC,EAAI,EAAGA,EAAIF,EAAEnkC,SAAUqkC,EAAG,CACjC,IAAIE,EAAIJ,EAAEE,GACDH,EAAEG,GAAXE,GAAK,EAAWH,EAAEC,GAAYD,EAAEC,IAAME,EAAI,GAE5C,OAAOhD,EAAE41F,eAAez1F,EAAEu9B,MAAO,UAAW/6B,GAE9C,IAAI2oG,GAAK,CAAEp0E,WAAYzuD,GAAI0uD,YAAa,MAAOuO,WAAY2lE,IACvDE,GAAK3uH,GAAEi7F,MACP2zB,GAAK5uH,GAAEu6F,OACPs0B,GAAK7uH,GAAEy6F,OACPq0B,GAAK9uH,GAAE26F,OACPo0B,GAAK/uH,GAAE66F,OACPm0B,GAAKhvH,GAAE+6F,OACPk0B,GAAKrO,GAAGz0H,GAAK62B,IACf,IAAIC,EAAKyC,KAAKvM,KAAK6J,GAAII,EAAIsC,KAAK5nB,IAAIklB,GAAIM,EAAI,GAAK,EAAIqrG,GAAKvrG,GAC1D,OAAOH,GAAM,MAAQ+rG,GAAK1rG,EAAIyrG,IAAMzrG,EAAIwrG,IAAMxrG,EAAIurG,IAAMvrG,EAAIsrG,IAAMtrG,EAAIoC,KAAK7d,KAAKub,EAAIA,MAElF8rG,GAAK,CAAE50E,WAAYnuD,GAAIouD,YAAa,MAAOuO,WAAYmmE,IAC3D,SAASE,GAAGnsG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgkD,MAAOzjD,GAAMN,GAAMgkD,IAAKlhD,GAAMzC,EAAG0C,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAI1C,EAAEu9B,MAAMnnC,QAASuM,EAAIH,EAC9H,OAAOA,EAAI,IAAM/F,GAAE26B,SAAS30B,EAAI,IAAMD,EAAG,IAAM,mCAAmCC,EAAI,OAAOA,MAAOE,EAAIF,EAAID,EAAI,GAAIE,EAAEoW,OAAOnW,EAAG,EAAG,GAAI4hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO76B,KAE5L,IAAImpG,GAAK,CAAE90E,WAAY/tD,GAAIguD,YAAa,MAAOuO,WAAYqmE,IACvDE,GAAK5P,GAAG,CAACz8F,EAAGC,IAAOD,EAAIC,GACvBqsG,GAAKlP,GAAG/pH,GAAIg5H,IACZE,GAAK,CAAEj1E,WAAYjkD,GAAIkkD,YAAa,MAAOuO,WAAYwmE,IAC3D,SAASE,GAAGxsG,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE89B,MAAOv9B,EAAID,EAAE,GAAIyC,EAAIzC,EAAE,GAAI0C,EAAI5C,EAAEmb,KAAKp7C,IAAI6/B,EAAEu/B,QAASt8B,EAAID,EAAE+yF,mBAAmBhkG,KAAMmR,EAAIF,EAAE+yF,mBAAmB9tG,KAAMmb,EAAI,CAAC7C,EAAGwC,GAAI8B,EAAI7H,GAAEi+B,cAAc73B,GAAIqD,EAAIzJ,GAAEm8B,uBAAuB,UAAWt0B,GAAI6B,EAAI1J,GAAEm8B,uBAAuB,UAAWt0B,GACrP,IAAK,IAAIiG,EAAI,EAAGA,EAAIvK,EAAGuK,IAAK,CAC1B,IAAIjB,EAAIi5F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO,CAACrwC,EAAG,GAAI+yB,KAAM,CAAC,EAAG96B,MAASqI,EAAI03F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO,CAACrwC,EAAG,GAAI+yB,KAAM,CAAC,EAAG96B,MAAS2I,EAAIgxF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAM8X,EAAG5hB,KAAMmjB,GAAKvuB,QAASujB,KAAQrO,KAAM4Z,EAAG1jB,KAAM2jB,GAAM6gG,GAAG/gG,EAAGzL,EAAIG,GAAIyL,EAAI7uB,GAAEkhG,uBAAuBvyE,EAAGC,GACnS,IAAK,IAAIG,EAAI,EAAGA,EAAIhJ,EAAGgJ,IAAK,CAC1B,IAAIC,EAAIhvB,GAAEg+F,oBAAoBnvE,EAAGE,GACjCtF,EAAEqE,EAAI/H,EAAIgJ,GAAKC,EAAEja,KAAM2U,EAAEoE,EAAI/H,EAAIgJ,GAAKC,EAAE/jB,KAE1CmY,EAAE88F,8BAA8BrzF,GAAIzJ,EAAE88F,8BAA8B9xF,GAAIhL,EAAE88F,8BAA8BxxF,GAE1G,IAAI/E,EAAIvG,EAAE41F,eAAe5yF,EAAG,UAAWqD,GAAIM,EAAI3G,EAAE41F,eAAe5yF,EAAG,UAAWsD,GAAImE,EAAI6xF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAM4U,EAAG1e,KAAM8e,GAAKlqB,QAASujB,IAClI,OAAOA,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI8D,EAEjF,SAAS4hG,GAAGzsG,EAAGC,EAAIG,GACjB,IAAIE,EAAItD,GAAEi+B,cAAcj7B,EAAE89B,OAAQv9B,EAAIH,EAAEmb,KAAKp7C,IAAI6/B,EAAEu/B,QAASx8B,EAAI3C,EAAEmb,KAAKp7C,IAAIogC,EAAEw1F,mBAAmBhkG,KAAKwtC,QAAQ9hE,OAAQulC,EAAI5C,EAAEmb,KAAKp7C,IAAIogC,EAAEw1F,mBAAmB9tG,KAAKs3C,QAAQ9hE,OACtK,GAAIivI,GAAGpsG,GAAI,CACT,IAAI2C,EAAI0pG,GAAG5pG,EAAGC,EAAG1C,EAAGL,EAAIG,GAAI8C,EAAI,CAAClD,EAAE89B,MAAM,GAAI99B,EAAE89B,MAAM,IACrD,GAAI79B,EAAI,CACN,IAAImD,EAAIhD,EAAE41F,eAAe9yF,EAAG,UAAWD,EAAElR,MAAO8S,EAAIzE,EAAE41F,eAAe9yF,EAAG,UAAWD,EAAEhb,MAAOwe,EAAIrG,EAAE41F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkB/3B,EAAG,YAAaoG,EAAIm2F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,IAAMuG,EAAI4lG,GAAGzmE,WAAW,CAAEvI,OAAQ,CAAEv6B,EAAGI,EAAGgI,EAAG3E,GAAK5pB,QAASujB,IAAM2G,EAAIwlG,GAAGzmE,WAAW,CAAEvI,OAAQ,CAAEv6B,EAAG6B,EAAGuG,EAAG1E,GAAK7pB,QAASujB,IAAMyK,EAAIzK,EAAEmb,KAAKp7C,IAAIwmC,EAAE44B,QAAQ9hE,OAAQqtC,EAAI1K,EAAEmb,KAAKp7C,IAAI4mC,EAAEw4B,QAAQ9hE,OAC9X,OAAO2iC,EAAE88F,8BAA8B95F,GAAIhD,EAAE88F,8BAA8Br4F,GAAIzE,EAAE88F,8BAA8Bz2F,GAAIrG,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI,CAAEhV,KAAM8Y,EAAG5iB,KAAM6iB,GAElP,OAAO7H,EACF,CACL,IAAIA,EAAIjmB,GAAEkhG,uBAAuBn7E,EAAGC,GAAIE,EAAI0pG,GAAG3pG,EAAG3C,EAAGL,GACrD,OAAOjjB,GAAEyhG,uBAAuBv7E,IAGpC,SAASwpG,GAAG1sG,GACV,OAAuB,KAAfA,EAAIA,EAAI,GAElB,SAAS2sG,GAAG3sG,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,GAAU,IAANH,EACF,MAAO,CAAErO,KAAMiO,EAAG/X,KAAMgY,GAC1B,IAAI8C,EAAI/lB,GAAEkhG,uBAAuBl+E,EAAGC,GAAK+C,EAAI5C,EAAI,EAAG6C,EAAIjmB,GAAEq8F,qBAAqBt2E,GAAIG,EAAID,EAAElR,KAAMqR,EAAIH,EAAEhb,KAAM4c,EAAI,CAAC3B,EAAErkC,QAAS4nC,EAAIlG,EAAEy1F,eAAenxF,EAAG,UAAW3B,GAAIwD,EAAInG,EAAEy1F,eAAenxF,EAAG,UAAWzB,GAAIuD,EAAI+1F,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAM0U,EAAGxe,KAAMye,GAAK7pB,QAAS0jB,IAAMwG,EAAI/pB,GAAEu8F,oBAAoBx2E,GAAI8H,EAAI9D,EAAEhV,KAAM+Y,EAAI/D,EAAE9e,KAAM4hB,EAAI,CAACgB,EAAEhsC,QAASusC,EAAI7K,EAAEy1F,eAAensF,EAAG,UAAWgB,GAAIa,EAAInL,EAAEy1F,eAAensF,EAAG,UAAWiB,GAAIa,EAAI+wF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMqZ,EAAGnjB,KAAMyjB,GAAK7uB,QAAS0jB,IAAMqL,EAAI+gG,GAAGzpG,EAAGE,EAAGJ,EAAG1C,EAAGC,GAAIsL,EAAID,EAAE7Z,KAAMga,EAAIH,EAAE3jB,KAAM+jB,EAAI,CAACH,EAAEhtC,QAASotC,EAAI1L,EAAEy1F,eAAehqF,EAAG,UAAWH,GAAIK,EAAI3L,EAAEy1F,eAAehqF,EAAG,UAAWD,GAAInuC,EAAI8+H,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMka,EAAGhkB,KAAMikB,GAAKrvB,QAAS0jB,IAAM4L,EAAIwgG,GAAG9hG,EAAGC,EAAG9H,EAAG1C,EAAGC,GAAI8L,EAAIF,EAAEpa,KAAMya,EAAIL,EAAElkB,KAAM6hB,EAAI,CAACuC,EAAExtC,QAAS2zC,EAAIjS,EAAEy1F,eAAelsF,EAAG,UAAWuC,GAAIE,EAAIhM,EAAEy1F,eAAelsF,EAAG,UAAW0C,GAAIsjB,EAAI4sE,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMygB,EAAGvqB,KAAMskB,GAAK1vB,QAAS0jB,IAAMwvB,EAAI/yC,GAAEy9F,UAAUr6E,EAAGE,GAAIivB,EAAI,CAACQ,EAAEh+B,KAAKlzB,QAAS2wD,EAAKjvB,EAAEy1F,eAAezmE,EAAG,UAAWQ,EAAEh+B,MAAO2T,EAAKnF,EAAEy1F,eAAezmE,EAAG,UAAWQ,EAAE9nC,MAAOgrB,EAAKypF,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMy9B,EAAIvnC,KAAMyd,GAAM7oB,QAAS0jB,IAAMoO,EAAK+wF,GAAG,CAAEniE,OAAQ,CAAEv6B,EAAGiQ,EAAI7H,EAAG0kB,GAAKjzC,QAAS0jB,IAAM6S,EAAKmqF,GAAG,CAAEhgE,OAAQ,CAAEv6B,EAAGplC,EAAGwtC,EAAGuD,GAAM9xB,QAAS0jB,IAAMyF,EAAK89F,GAAG,CAAEvmE,OAAQ,CAAEv6B,EAAGplC,EAAGwtC,EAAGuD,GAAM9xB,QAAS0jB,IAAM8S,EAAK0pF,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAO5wC,GAAMv2B,QAAS0jB,IAAM+S,EAAKypF,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAOh+C,GAAMnpB,QAAS0jB,IAAMgT,EAAKg1F,GAAG,CAAEhrE,OAAQ,CAAEymB,MAAO5wC,GAAMv2B,QAAS0jB,IAAMkT,EAAK80F,GAAG,CAAEhrE,OAAQ,CAAEymB,MAAOh+C,GAAMnpB,QAAS0jB,IAAMyT,EAAKy0F,GAAG,CAAElrE,OAAQ,CAAClqB,EAAIC,GAAKz2B,QAAS0jB,EAAGolC,MAAO,CAAEgQ,KAAM,KAAQ1hC,EAAKw0F,GAAG,CAAElrE,OAAQ,CAAChqB,EAAIE,GAAK52B,QAAS0jB,EAAGolC,MAAO,CAAEgQ,KAAM,KAAQ9vC,EAAKtF,EAAEgb,KAAKp7C,IAAI6zC,EAAGurB,QAAQ9hE,OAAQmxC,EAAKrO,EAAEgb,KAAKp7C,IAAI8zC,EAAGsrB,QAAQ9hE,OAChiD,OAAO8iC,EAAE28F,8BAA8Bz2F,GAAIlG,EAAE28F,8BAA8Bx2F,GAAInG,EAAE28F,8BAA8Bv2F,GAAIpG,EAAE28F,8BAA8B9xF,GAAI7K,EAAE28F,8BAA8BxxF,GAAInL,EAAE28F,8BAA8BvxF,GAAIpL,EAAE28F,8BAA8BjxF,GAAI1L,EAAE28F,8BAA8BhxF,GAAI3L,EAAE28F,8BAA8Bt/H,GAAI2iC,EAAE28F,8BAA8B1qF,GAAIjS,EAAE28F,8BAA8B3wF,GAAIhM,EAAE28F,8BAA8BptE,GAAIvvB,EAAE28F,8BAA8B1tE,GAAKjvB,EAAE28F,8BAA8Bx3F,GAAKnF,EAAE28F,8BAA8BjqF,GAAK1S,EAAE28F,8BAA8BvuF,GAAKpO,EAAE28F,8BAA8B9pF,GAAK7S,EAAE28F,8BAA8Bl3F,GAAKzF,EAAE28F,8BAA8B7pF,GAAK9S,EAAE28F,8BAA8B3pF,GAAKhT,EAAE28F,8BAA8B5pF,GAAK/S,EAAE28F,8BAA8BzpF,GAAKlT,EAAE28F,8BAA8BlpF,GAAKzT,EAAE28F,8BAA8BjpF,GAAK,CAAEliB,KAAM8T,EAAI5d,KAAM2mB,GAEv4B,SAASg+F,GAAG5sG,EAAGC,EAAIG,GACjB,IAAIE,EAAI,IAAIwU,aAAkB,EAAL7U,GACzB,IAAK,IAAIM,EAAI,EAAGA,EAAIN,EAAIM,IAAK,CAC3B,IAAIwC,EAAI,EAAGC,EAAI,EACf,IAAK,IAAIC,EAAI,EAAGA,EAAIhD,EAAIgD,IAAK,CAC3B,IAAIC,EAAIlmB,GAAEu9F,SAASh6E,EAAI0C,EAAGhD,EAAIG,GAAIgD,EAAIpmB,GAAEg+F,oBAAoBh7E,EAAGiD,GAC/DF,GAAKK,EAAErR,KAAOmR,EAAEnR,KAAOqR,EAAEnb,KAAOib,EAAEjb,KAAM+a,GAAKI,EAAErR,KAAOmR,EAAEjb,KAAOmb,EAAEnb,KAAOib,EAAEnR,KAE5EqO,IAAM2C,GAAK9C,EAAI+C,GAAK/C,GAAKjjB,GAAE67F,mBAAmBv4E,EAAGyC,EAAGC,EAAGzC,GAEzD,OAAOD,EAET,SAASusG,GAAG7sG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIvD,GAAEi+B,cAAc36B,EAAEw9B,OAAQ/6B,EAAIzC,EAAEw9B,MAAMx9B,EAAEw9B,MAAMj/D,OAAS,GAAImkC,EAAIzC,EAAIwC,EAAGE,EAAI6hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGD,MAASG,EAAIspG,GAAGvpG,GAAG,EAAO7C,GAAIgD,EAAI0hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOx9B,EAAEw9B,SACnR,OAAO19B,EAAE88F,8BAA8Bj6F,GAAI7C,EAAE88F,8BAA8Bh6F,GAAIE,EAEjF,IAAI0pG,GAAK,CAAEx1E,WAAY3tD,GAAI4tD,YAAa,MAAOuO,WAAY+mE,IAC3D,SAASE,GAAG/sG,GACV,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAK89B,MAAOx9B,EAAG1gC,MAAO2gC,EAAG88B,MAAOt6B,GAAM3C,EAAG4C,EAAID,GAAK/F,GAAEw8B,WAAWj5B,GAAI0C,EAAIjG,GAAEk8B,kBAAkBl2B,EAAGhG,GAAEi+B,cAAc36B,IAC9I,OAAO0sG,GAAG/pG,EAAG1C,EAAGyC,GAAI/C,EAAG+1F,eAAe11F,EAAG0C,EAAGC,GAE9C,IAAIgqG,GAAK,CAAE31E,WAAYztD,GAAI0tD,YAAa,MAAOuO,WAAYinE,IAC3D,SAASC,GAAGhtG,EAAGC,EAAIG,GACjBJ,EAAEza,KAAK0a,GAET,IAAIitG,GAAK,CAAE51E,WAAYvtD,GAAIwtD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC3F,IAAMjY,MAAOmY,GAAMN,EAAGO,EAAIH,EAAG2C,EAAI/F,GAAEm8B,uBAAuB74B,EAAE+8B,MAAOrgC,GAAEi+B,cAAc36B,EAAEw9B,SAAU96B,EAAGC,EAAGC,EAAGE,GAAK9C,EAAEw9B,MAAOj5B,EAAItE,EAAEgb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAC/I,IAAK,IAAIipC,EAAI,EAAGA,EAAI1D,EAAG0D,IAAK,CAC1B,IAAIC,EAAID,EAAIxD,EAAID,EAAIG,EACpB,IAAK,IAAI2D,EAAI,EAAGA,EAAI9D,EAAG8D,IAAK,CAC1B,IAAI8D,EAAI9D,GAAK7D,EAAIE,GACjB,IAAK,IAAI0H,EAAI,EAAGA,EAAI5H,EAAG4H,IAAK,CAC1B,IAAIjB,EAAIiB,EAAI1H,EACZ,IAAK,IAAIgI,EAAI,EAAGA,EAAIhI,EAAGgI,IAAK,CAC1B,IAAIM,EAAIhJ,KAAK3O,MAAMmP,EAAI4H,EAAI,GAAIa,EAAIhF,EAAIkE,EAAIhB,EAAIuB,EAAGQ,EAAI/G,EAAE8G,GACxD,GAAID,GAAK,GAAKA,EAAIxI,EAAG,CACnB,IAAI2I,EAAIH,EAAItI,EAAG2I,EAAIpF,EAAIkE,EAAIgB,EAAIT,EAC/BQ,EAAI/G,EAAEkH,GAERhJ,EAAE4I,GAAKC,KAKf,MAAO,CAAE2zB,OAAQh/B,EAAEymC,MAAMjkC,EAAGzC,EAAEw9B,MAAOx9B,EAAE+8B,OAAQS,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,SAE1E,SAAS8vE,GAAGntG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAMzG,EAAGuK,EAAI89F,GAAG,CAAEprE,OAAQ,CAAE1zB,EAAGtJ,EAAG8tB,OAAQtrB,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7G,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,KACxV,GAAI1D,EAAG,CACL,IAAI8H,EAAID,EACR,GAAU,SAANhG,GAAmC,IAAnB7B,EAAE86B,MAAMj/D,QAA+B,IAAfmkC,EAAE86B,MAAM,GAAU,CAC5D,IAAIj0B,EAAIi7F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC96B,EAAE86B,MAAM,GAAI,EAAG,MAC3EjzB,EAAI0yF,GAAG,CAAEhgE,OAAQ,CAAEv6B,EAAG6H,EAAGO,EAAGvB,GAAKhtB,QAASujB,IAAMA,EAAE88F,8BAA8BrzF,QAEhFgB,EAAI0yF,GAAG,CAAEhgE,OAAQ,CAAEv6B,EAAG6H,EAAGO,EAAGpI,GAAKnmB,QAASujB,IAC5CA,EAAE88F,8BAA8BpyF,GAElC,GAAInE,EAAG,CACL,IAAImE,EAAID,EACR,GAAU,SAANhG,GAAsB,UAAN8B,GAAoC,IAAnB1D,EAAE66B,MAAMj/D,QAA+B,IAAfokC,EAAE66B,MAAM,GAAU,CAC7E,IAAIj0B,EAAIi7F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC76B,EAAE66B,MAAM,GAAI,EAAG,MAC3EjzB,EAAIg6F,GAAGzkG,EAAGyK,EAAGlE,EAAGkD,EAAG9C,GAAI3G,EAAE88F,8BAA8BrzF,QAEvDgB,EAAIg6F,GAAGzkG,EAAGyK,EAAGlE,EAAG1D,EAAG8D,GACrB3G,EAAE88F,8BAA8BpyF,GAElC,OAAOD,EAET,IAAIuiG,GAAK,CAAE91E,WAAY7sD,GAAI8sD,YAAa,MAAOuO,WAAYqnE,IAC3D,SAASE,GAAGrtG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAMzG,EAAGuK,EAAIw/F,GAAG,CAAE9sE,OAAQ,CAAE1zB,EAAGtJ,EAAG8tB,OAAQtrB,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7G,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,KACxV,GAAI1D,EAAG,CACL,IAAI8H,EAAID,EACRA,EAAI0yF,GAAG,CAAEhgE,OAAQ,CAAEv6B,EAAG6H,EAAGO,EAAGpI,GAAKnmB,QAASujB,IAAMA,EAAE88F,8BAA8BpyF,GAElF,GAAInE,EAAG,CACL,IAAImE,EAAID,EACRA,EAAIg6F,GAAGzkG,EAAGyK,EAAGlE,EAAG1D,EAAG8D,GAAI3G,EAAE88F,8BAA8BpyF,GAEzD,OAAOD,EAET,IAAIyiG,GAAK,CAAEh2E,WAAY3sD,GAAI4sD,YAAa,MAAOuO,WAAYunE,IAC3D,SAASE,GAAGvtG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK64D,OAAQv4D,EAAGukD,QAAStkD,GAAMN,EAAI8C,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIzC,EAAEu9B,MAAO76B,EAAID,EAAEA,EAAEnkC,OAAS,IAAKqkC,EAAGE,EAAGyB,EAAG4B,GAAKzpB,GAAEu2F,mBAAmBjzE,EAAGC,GAC3K,GAAU,IAAN6C,EACF,OAAOhD,EAAE41F,eAAe9yF,EAAG5C,EAAE+8B,MAAO,IACtC,IAAI32B,EAAItG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQkpC,EAAIvG,EAAEknG,WAAWhnG,GAAIyG,EAAI2wF,GAAGhxF,EAAGC,EAAGrG,EAAE+8B,MAAOj6B,EAAGH,EAAG4B,EAAG4B,EAAGnG,EAAEw9B,MAAO/6B,GACrG,OAAO3C,EAAE41F,eAAe9yF,EAAG5C,EAAE+8B,MAAOt2B,EAAEtpC,QAExC,IAAI+vI,GAAK,CAAEl2E,WAAYvsD,GAAIwsD,YAAa,MAAOuO,WAAYynE,IAC3D,SAASE,GAAGztG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGskD,QAAS9hD,GAAM9C,GAAM01C,KAAM3yC,EAAG8hD,UAAW7hD,GAAM3C,EACrGq1F,GAAE,CAACp1F,EAAGwC,GAAI,YACV,IAAIG,EAAIlG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI16B,EAAIhD,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQonC,EAAItE,EAAEu9B,MAAM56B,GACtF,IAAK,IAAIyI,EAAI,EAAGA,EAAIvI,EAAEvkC,SAAU8sC,EAAG,CACjC,IAAIC,EAAIxI,EAAEuI,GACV3O,GAAE26B,OAAO/rB,GAAK/G,EAAI,GAAK+G,GAAK,EAAG,IAAM,6BAA6BA,mBAAmB/G,EAAI,MAE3F,IAAI4B,EAAIxD,EACH,MAALA,IAAcwD,EAAI,GAClB,IAAIC,EAAI1J,GAAEi+B,cAAcl4B,EAAE+6B,OAAQn3B,EAAI3pB,GAAEshG,aAAauB,yBAAyBt/E,EAAGwC,EAAGG,EAAGuD,GAAIM,EAAI+9F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAACn3B,EAAEgxC,UAAWhxC,EAAEg5E,UAAWh5E,EAAEi5E,QAASj5E,EAAE6vD,cAAiB3rD,EAAIi6F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAACn3B,EAAEgxC,UAAWjxC,EAAIC,EAAEgxC,cAAiB7sC,EAAI,CAACnE,EAAEgxC,UAAWhxC,EAAEg5E,UAAWj5E,EAAIC,EAAEgxC,UAAWhxC,EAAE6vD,WAAY3sD,EAAIzJ,EAAEknG,WAAWz8F,GAAIO,EAAIhL,EAAEknG,WAAWvgG,GAAI2E,EAAIksF,GAAGxsF,EAAGvB,EAAGiB,GAC5Z,OAAO1K,EAAE88F,8BAA8Bn2F,GAAI3G,EAAE88F,8BAA8BryF,GAAIzK,EAAE41F,eAAervF,EAAE+xD,YAAahtD,EAAE2xB,MAAO3xB,EAAEjuC,QAE5H,IAAIiwI,GAAK,CAAEp2E,WAAYrsD,GAAIssD,YAAa,MAAOuO,WAAY2nE,IAC3D,SAASE,GAAG3tG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIvD,GAAEi+B,cAAc36B,EAAEw9B,OAAQ/6B,EAAIzC,EAAEw9B,MAAMx9B,EAAEw9B,MAAMj/D,OAAS,GAAImkC,EAAIzC,EAAIwC,EAAGE,EAAI6hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGD,MAASG,EAAIspG,GAAGvpG,GAAG,EAAM7C,GAAIgD,EAAI0hG,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOx9B,EAAEw9B,SAClR,OAAO19B,EAAE88F,8BAA8Bj6F,GAAI7C,EAAE88F,8BAA8Bh6F,GAAIE,EAEjF,IAAIwqG,GAAK,CAAEt2E,WAAY7rD,GAAI8rD,YAAa,MAAOuO,WAAY6nE,IACvDE,GAAKjQ,GAAG7xH,GAAKi0B,GAAMmyB,OAAOxpC,SAASqX,GAAK,EAAI,EAAG,QAC/C8tG,GAAK,CAAEx2E,WAAYvrD,GAAIwrD,YAAa,MAAOuO,WAAY+nE,IACvDE,GAAKnQ,GAAG3xH,GAAK+zB,GAAM0C,KAAK5nB,IAAIklB,KAAO,IAAQ,EAAI,EAAG,QAClDguG,GAAK,CAAE12E,WAAYrrD,GAAIsrD,YAAa,MAAOuO,WAAYioE,IACvDE,GAAKrQ,GAAGzxH,GAAK6zB,GAAMmyB,OAAOppC,MAAMiX,GAAK,EAAI,EAAG,QAC5CkuG,GAAK,CAAE52E,WAAYnrD,GAAIorD,YAAa,MAAOuO,WAAYmoE,IAC3D,SAASE,GAAGnuG,GACV,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAG6lD,IAAKrjD,GAAM3C,EAAG4C,EAAIs1F,GAAGh4F,EAAGC,EAAGwC,GACnF,OAAO9C,EAAG+1F,eAAe,CAAChzF,EAAEnkC,QAAS,UAAWmkC,GAElD,IAAIorG,GAAK,CAAE92E,WAAYrqD,GAAIsqD,YAAa,MAAOuO,WAAYqoE,IACvDE,GAAKzQ,GAAGvwH,GAAK2yB,GAAM0C,KAAKnY,MAAMyV,IAC9BsuG,GAAK,CAAEh3E,WAAYjqD,GAAIkqD,YAAa,MAAOuO,WAAYuoE,IACvDE,GAAK9R,GAAG,CAACz8F,EAAGC,IAAOD,GAAKC,GACxBuuG,GAAKpR,GAAG3vH,GAAI8gI,GAAI,KAAM,QACtBE,GAAK,CAAEn3E,WAAY7pD,GAAI8pD,YAAa,MAAOuO,WAAY0oE,IACvDE,GAAK9Q,GAAGjwH,GAAKqyB,GAAMA,EAAI,EAAI,EAAG,QAC9B2uG,GAAK,CAAEr3E,WAAY3pD,GAAI4pD,YAAa,MAAOuO,WAAY4oE,IACvDE,GAAKnS,GAAG,CAACz8F,EAAGC,IAAOD,GAAKC,GACxB4uG,GAAKzR,GAAGvvH,GAAI+gI,GAAI,KAAM,QACtBE,GAAK,CAAEx3E,WAAYzpD,GAAI0pD,YAAa,MAAOuO,WAAY+oE,IAC3D,SAASE,GAAG/uG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMqmD,YAAavjD,EAAGwjD,KAAMvjD,EAAG6iD,MAAO5iD,EAAGujD,KAAMtjD,GAAM5C,EAC9Gq1F,GAAEp1F,EAAG,OACL,IAAI6C,EAAI7C,EAAEu9B,MAAM,GAAIj5B,EAAIzB,EAAI,EAAGqD,EAAIrG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAI1J,GAAEi+B,cAAc16B,EAAEu9B,OAAQn3B,EAAI,IAAImO,aAAapO,GACnH,SAASK,EAAE8D,GACT,IAAIC,EAAID,EAAIzH,EAAGyG,EAAIgB,EAAIC,EAAIpI,KAAK3W,IAAI,EAAG+e,EAAI/H,GAAIqI,EAAIP,EAAIC,EAAIpI,KAAK3V,IAAI+d,EAAI/H,EAAG8B,GAAI6G,EAAI,EACnF,KAAO7B,GAAKuB,EAAGvB,IAAK,CAClB,IAAI8B,EAAIlF,EAAEoD,GACV6B,GAAKC,EAAIA,EAEX,OAAOD,EAET,IAAK,IAAIb,EAAI,EAAGA,EAAInE,EAAGmE,IAAK,CAC1B,IAAIC,EAAI/D,EAAE8D,GAAIhB,EAAIpD,EAAEoE,GAAKnI,KAAK3S,IAAIiT,EAAIC,EAAI6H,GAAI5H,GAC9CyD,EAAEkE,GAAKhB,EAET,OAAOzJ,EAAE41F,eAAez1F,EAAEu9B,MAAOv9B,EAAE88B,MAAO12B,GAE5C,IAAIqoG,GAAK,CAAE13E,WAAY/qD,GAAIgrD,YAAa,MAAOuO,WAAYipE,IAC3D,SAASE,GAAGjvG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGvD,EAAG+F,EAAGu7C,GAAIt7C,GAAM/C,GAAMqmD,YAAarjD,EAAGsjD,KAAMrjD,EAAG2iD,MAAOziD,EAAGojD,KAAM3hD,GAAMvE,EAC3Hq1F,GAAE3yF,EAAG,WACL,IAAIyD,EAAIzJ,GAAEi+B,cAAcj4B,EAAE86B,OAAQp3B,EAAI1D,EAAE86B,MAAM,GAAIn3B,EAAIvG,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQspC,EAAI3G,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQotC,EAAIzK,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQqtC,EAAI,IAAIgK,aAAarO,GAAIoD,EAAIpD,EAClL,IAAK,IAAI2E,EAAI,EAAGA,EAAIvB,EAAGuB,IAAK,CAC1B,IAAIM,EAAIN,EAAI1E,EAAGiF,EAAIP,EAAIM,EAAIhJ,KAAK3W,IAAI,EAAG2f,EAAIzI,GAAI2I,EAAIR,EAAIM,EAAIhJ,KAAK3V,IAAI2Z,EAAGgF,EAAIzI,EAAI,GAAI4I,EAAI,EACvF,IAAK,IAAIE,EAAIJ,EAAGI,EAAIH,EAAGG,IACrBF,GAAKnJ,KAAK3S,IAAIgX,EAAEgF,GAAI,GACtBF,EAAIzI,EAAIyI,EAAI3I,EACZ,IAAK,IAAI6I,EAAIJ,EAAGI,EAAIH,EAAGG,IAAK,CAC1B,IAAIC,GAAK,EAAI5I,EAAIyB,EAAIkC,EAAEgF,GAAKlB,EAAEO,GAAKS,EACnCT,IAAMW,IAAMC,GAAKtJ,KAAK3S,IAAI8b,GAAIhH,IAAKmH,GAAKrF,EAAEyE,GAAIN,EAAEiB,IAAMC,GAG1D,OAAO5L,EAAE41F,eAAehzF,EAAE86B,MAAOv9B,EAAE88B,MAAOvyB,GAE5C,IAAIokG,GAAK,CAAE53E,WAAY7qD,GAAI8qD,YAAa,MAAOuO,WAAYmpE,IAC3D,SAASE,GAAGnvG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2iD,iBAAkB7/C,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI7C,EAAG8C,EAAI3C,EAAEu9B,MAAO16B,EAAIF,EAAErkC,OAAQgmC,EAAI7H,GAAE29B,eAAe53B,EAAGG,GAAIuD,EAAI5B,EAAG6B,EAAI1pB,GAAE+9F,mBAAmBt0E,EAAGrD,GAAIuD,EAAI1D,EAAEsY,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OACrO,GAAS,MAALipC,EAAW,CACb,IAAIiF,EAAI,IAAIynB,MAAMhwB,GAClB,IAAK,IAAIwI,EAAI,EAAGA,EAAID,EAAE9sC,OAAQ+sC,IAC5BD,EAAEC,GAAK1I,EAAEwD,EAAEkF,IACbjF,EAAIw1F,GAAGx1F,EAAGzD,EAAG3C,EAAE88B,MAAO32B,EAAGiF,GAAIlF,EAAIzpB,GAAE0+F,iBAAiBj1E,EAAE5nC,OAAQukC,GAAIF,EAAIyI,EAExEgqF,GAAEp1F,EAAG,OAAQvjB,GAAE27F,2BAA2B,MAAOlyE,EAAGrD,GACpD,IAAK2D,EAAG8D,GAAK7tB,GAAE+8F,0BAA0B72E,EAAGuD,GAAIqE,EAAI9N,GAAEi+B,cAAcpwB,GAAIhB,EAAI6uF,GAAG/xF,EAAGmE,EAAG/D,EAAGxG,EAAE88B,OAAQjyB,EAAInI,EAAE+jC,MAAMn9B,EAAG9C,EAAGxG,EAAE88B,OAAQ3xB,EAAI3E,EAClI,OAAO/D,IAAM0I,EAAI1uB,GAAEs9F,qBAAqBvzE,EAAGlC,IAAK,CAAE06B,OAAQn0B,EAAG0yB,MAAOpyB,EAAG2xB,MAAO98B,EAAE88B,OAElF,IAAI+xE,GAAK,CAAE93E,WAAY7oD,GAAI8oD,YAAa,MAAOuO,WAAYqpE,IAC3D,SAASE,GAAGrvG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EACzD01F,GAAEp1F,EAAG,WACL,IAAM85C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EACvEpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAGI,GAAI,IAAM,wEAAwEJ,oBAAoBI,MACnJ,IAAqDqD,EAAjD5B,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GACjD,GAAsB,IAAlB2B,EAAEuzC,aAAwC,IAAnBvzC,EAAEszC,cAAsBn7C,GAAEy6B,YAAY5yB,EAAE4zC,QAAS5zC,EAAE6zC,UAC5EjyC,EAAIo2F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,QACjC,CACH,IAAIsG,EAAItG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQkpC,EAAI3J,GAAEm7B,eAAe53B,EAAEu9B,OAAQ/2B,EAAI8/F,GAAGngG,EAAGnG,EAAEu9B,MAAOv9B,EAAE88B,MAAO12B,EAAG9B,EAAG,OACtG4B,EAAIrG,EAAE41F,eAAenxF,EAAE6zC,SAAUn4C,EAAE88B,MAAOt2B,EAAEtpC,QAE9C,OAAOgpC,EAET,IAAI6oG,GAAK,CAAEh4E,WAAY3oD,GAAI4oD,YAAa,MAAOuO,WAAYupE,IAC3D,SAASE,GAAGvvG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,EAAG00C,WAAYx0C,GAAM9C,EACxIq1F,GAAEp1F,EAAG,aACL,IAAIsE,EAAI7nB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG,EAAGC,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAIqgG,GAAGtgG,EAAGlG,EAAEu9B,MAAOv9B,EAAE88B,MAAOrgC,GAAEm7B,eAAe53B,EAAEu9B,OAAQj5B,EAAG,OACnJ,OAAOzE,EAAE41F,eAAetvF,EAAEo3B,MAAO,UAAWp3B,EAAEjpC,QAEhD,IAAI+xI,GAAK,CAAEl4E,WAAYzoD,GAAI0oD,YAAa,MAAOuO,WAAYypE,IAC3D,SAASE,GAAGzvG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAM9C,EACpIq1F,GAAE,CAACp1F,EAAGwC,GAAI,iBACV,IAAI8B,EAAI7nB,GAAEi9F,kBAAkBl3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEknG,WAAWvkG,GAAI2D,EAAIsgG,GAAGvgG,EAAG5B,GAAI8B,EAAI9B,EAAEk0C,YAAahyC,EAAIlC,EAAEozC,aAAcptC,EAAIhG,EAAEqzC,YAAaptC,EAAIjG,EAAEq0C,cAAervC,EAAIhF,EAAE0zC,eAAgBntC,EAAIvG,EAAE2zC,cAAe9sC,EAAI7G,EAAEo0C,qBAAsBttC,EAAI9G,EAAEwzC,sBAAuBzsC,EAAI/G,EAAEyzC,qBAAsBzsC,EAAIH,EAAI,EAAI7G,EAAE0yC,QAAQoC,MAAO5tC,EAAIH,EAAI,EAAI/G,EAAE0yC,QAAQz5E,KAAMkuC,EAAIL,EAAI,EAAI9G,EAAE0yC,QAAQgC,IAAKttC,EAAIrtB,GAAGmkB,EAAE+6B,MAAO,WAAY5xB,EAAI9L,EAAEknG,WAAW/mG,GACxa,IAAK,IAAI3iC,EAAI,EAAGA,EAAIinC,EAAE8yC,YAAa/5E,EACjC,IAAK,IAAIuuC,EAAI,EAAGA,EAAItH,EAAEkzC,aAAc5rC,EAClC,IAAK,IAAIE,EAAI,EAAGA,EAAIxH,EAAEi0C,UAAWzsC,EAC/B,IAAK,IAAIG,EAAI,EAAGA,EAAI3H,EAAEgzC,WAAYrrC,EAChC,IAAK,IAAI1C,EAAI,EAAGA,EAAIjF,EAAEizC,UAAWhuC,EAAG,CAClC,IAAI0I,EAAInG,EAAIR,EAAGU,EAAIC,EAAIR,EAAG8jB,EAAIhmB,EAAIiC,EAAGgkB,EAAI,EACzC,IAAK,IAAIR,EAAI,EAAGA,EAAI7jB,EAAG6jB,GAAKzkB,EAAG,CAC7B,IAAI0kB,GAAMhd,EAAI+c,GAAK5oB,EACnB,KAAM6oB,EAAK,GAAKA,GAAM3qB,EAAE+zC,UAAYl2C,KAAK7c,MAAM2pC,KAAQA,GACrD,IAAK,IAAI9pB,EAAK,EAAGA,EAAKiG,EAAGjG,GAAMmE,EAAG,CAChC,IAAIoJ,GAAM1G,EAAI7G,GAAMqB,EACpB,KAAMkM,EAAK,GAAKA,GAAMpO,EAAE2yC,WAAa90C,KAAK7c,MAAMotB,KAAQA,GACtD,IAAK,IAAItE,EAAK,EAAGA,EAAK/C,EAAG+C,GAAMvD,EAAG,CAChC,IAAIgI,GAAM0c,EAAInhB,GAAM9D,EACpB,GAAIuI,EAAK,GAAKA,GAAMvO,EAAE4yC,UAAY/0C,KAAK7c,MAAMutB,KAAQA,EACnD,SACF,IAAIpN,EAAK0F,EAAIC,EAAIC,EAAI,EAAIlF,EAAEvmC,IAAIvC,EAAG4xD,EAAIvc,EAAIG,EAAIjH,GAAIkH,EAAKkc,EAAI5jB,EAAIC,EAAIlG,EAAKkG,EAAI+C,EAAI2E,EAAKtN,IAAOqN,EAAK,EAAI,EACrG,GAAW,IAAPC,EACF,SACF,IAAIC,EAAKrH,EAAE/rC,IAAIvC,EAAG4xD,EAAIvc,EAAIG,EAAIjH,GAC9B4jB,GAAKxc,EAAKD,IAIpBrH,EAAEjrC,IAAI+uD,EAAGnyD,EAAGyuC,EAAGG,EAAG1C,EAAGqC,GAE/B,OAAO/L,EAAE41F,eAAe/pF,EAAE6xB,MAAO7xB,EAAEoxB,MAAOpxB,EAAExuC,QAE9C,IAAIiyI,GAAK,CAAEp4E,WAAYvoD,GAAIwoD,YAAa,MAAOuO,WAAY2pE,IAC3D,SAASE,GAAG3vG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,EAAG6sG,OAAQ5sG,GAAM/C,EAAIgD,EAAIF,EACvF4yF,GAAE,CAAC5yF,EAAGC,GAAI,eACV,IAAMq3C,WAAYn3C,EAAG47B,QAAS17B,EAAGjU,IAAK0V,EAAGy1C,gBAAiB7zC,GAAMnG,EAAGoG,EAAI1pB,GAAEg9F,kBAAkB/2E,EAAE66B,MAAO56B,EAAGE,EAAG,EAAGyB,EAAG4B,GAAIE,EAAIvG,EAAEmb,KAAKp7C,IAAI8iC,EAAEs8B,QAAQ9hE,OAAQspC,EAAInoB,GAAG8nB,EAAEgyC,SAAUz1C,EAAEo6B,MAAOypE,GAAGngG,EAAG1D,EAAE66B,MAAO76B,EAAEo6B,MAAO32B,GAAGjpC,QAASotC,EAAInE,EAAEuxC,aAAcntC,EAAIpE,EAAEwxC,YAAaruC,EAAInD,EAAE6xC,eAAgBntC,EAAI1E,EAAE8xC,cAAe9sC,EAAIhF,EAAE2xC,sBAAuB1sC,EAAIjF,EAAE4xC,qBAAsB1sC,EAAID,EAAI,EAAIjF,EAAE6wC,QAAQz5E,KAAM+tC,EAAIH,EAAI,EAAIhF,EAAE6wC,QAAQgC,IAAKxtC,EAAIntB,GAAGqkB,EAAE66B,MAAO,WAAY9xB,EAAI5L,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQwuC,EAAIrtB,GAAG2hB,EAAEu9B,MAAO,UAAW9xB,GAC/e,IAAK,IAAIE,EAAI,EAAGA,EAAIxF,EAAEixC,YAAazrC,EACjC,IAAK,IAAItuC,EAAI,EAAGA,EAAI8oC,EAAEqxC,aAAcn6E,EAClC,IAAK,IAAIuuC,EAAI,EAAGA,EAAIzF,EAAEmxC,WAAY1rC,EAChC,IAAK,IAAIE,EAAI,EAAGA,EAAI3F,EAAEoxC,UAAWzrC,EAAG,CAClC,IAAIG,EAAIL,EAAIN,EAAG/B,EAAIuC,EAAIT,EAAG4G,EAAI,EAC9B,IAAK,IAAIjG,EAAI,EAAGA,EAAIb,EAAGa,GAAK1C,EAAG,CAC7B,IAAIimB,GAAKtjB,EAAID,GAAK1B,EAClB,KAAMilB,EAAI,GAAKA,GAAKppB,EAAE8wC,WAAa90C,KAAK7c,MAAMiqC,KAAOA,GACnD,IAAK,IAAIC,EAAI,EAAGA,EAAIpkB,EAAGokB,GAAK3kB,EAAG,CAC7B,IAAImkB,GAAKzlB,EAAIimB,GAAKjlB,EAClB,GAAIykB,EAAI,GAAKA,GAAK7oB,EAAE+wC,UAAY/0C,KAAK7c,MAAM0pC,KAAOA,EAChD,SACF,IAAIC,EAAK9jB,EAAIC,EAAI,EAAI5E,EAAE5mC,IAAI+rC,EAAG4jB,EAAGP,EAAG3xD,GAAI8nC,EAAK6G,EAAIZ,EAAIokB,EAAG9c,EAAKuc,IAAO9pB,EAAK,EAAI,EAC7E,GAAW,IAAPuN,EACF,SACF,IAAItE,EAAK1C,EAAE9rC,IAAI+rC,EAAG4jB,EAAGP,EAAG3xD,GACxB40C,GAAK7D,EAAKsE,GAGhBlH,EAAE/qC,IAAIwxC,EAAGtG,EAAGC,EAAGE,EAAGzuC,GAE1B,OAAOwiC,EAAE41F,eAAejqF,EAAE+xB,MAAO/xB,EAAEsxB,MAAOtxB,EAAEtuC,QAE9C,IAAIoyI,GAAK,CAAEv4E,WAAYroD,GAAIsoD,YAAa,MAAOuO,WAAY6pE,IAC3D,SAASG,GAAG9vG,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI/F,GAAEm7B,eAAel4B,GAAK+C,EAAI6jG,GAAG7mG,EAAGC,EAAIG,EAAG2C,EAAGxC,EAAG,OAAQ0C,EAAI6jG,GAAG9mG,EAAGC,EAAIG,EAAGG,GAAG,EAAMD,GACvF,MAAO,CAAC0C,EAAEvlC,OAAQwlC,EAAExlC,QAEtB,IAAIsyI,GAAK,CAAEz4E,WAAYnoD,GAAIooD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC3F,IAAMyJ,EAAGvJ,GAAMN,GAAKq6C,WAAY95C,EAAGu+B,QAAS/7B,EAAG5T,IAAK6T,EAAG8lD,oBAAqB7lD,GAAMhD,EAAIiD,EAAI9C,EAC1Fu1F,GAAEr1F,EAAG,qBACL,IAAI8C,EAAIF,EAAEqY,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQonC,EAAI7nB,GAAEg9F,kBAAkB15E,EAAEw9B,MAAOv9B,EAAGwC,EAAG,CAAC,EAAG,GAAIC,IAAKyD,EAAGC,GAAKopG,GAAG1sG,EAAG9C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAG4B,GAAI8B,EAAIzD,EAAE8jC,MAAMvgC,EAAG5B,EAAE6zC,SAAUp4C,EAAE+8B,OAAQt2B,EAAI7D,EAAE8jC,MAAMtgC,EAAG7B,EAAE6zC,SAAUp4C,EAAE+8B,OAClM,MAAO,CAAC,CAAEkC,OAAQ54B,EAAGm3B,MAAOj5B,EAAE6zC,SAAUrb,MAAO/8B,EAAE+8B,OAAS,CAAEkC,OAAQx4B,EAAG+2B,MAAOj5B,EAAE6zC,SAAUrb,MAAO,YAEnG,SAAS2yE,GAAGhwG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIpmB,GAAE+8F,0BAA0Bx5E,EAAEu9B,MAAO76B,GAAG,GAAI4B,EAAI7H,GAAEi+B,cAAc73B,GAAIqD,EAAI,GAAIC,EAAItG,EAAE41F,eAAe,GAAI,UAAW,IAAIlhF,aAAa,CAACjQ,KACnQ4B,EAAE+D,KAAK9D,GACP,IAAIC,EAAIs2F,GAAG,CAAE1/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,aAC3D52B,EAAE+D,KAAK7D,GACP,IAAII,EAAIulG,GAAG,CAAE/uE,OAAQ,CAAEv6B,EAAG2D,EAAGyE,EAAG1E,GAAK7pB,QAASujB,IAC9CqG,EAAE+D,KAAKzD,GACP,IAAI8D,EAAIwgG,GAAG,CAAE9tE,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM5yC,EAAG6yC,SAAU5yC,KACvE,OAAOyD,EAAE6R,QAASxN,GAAM1K,EAAE88F,8BAA8BpyF,IAAKD,EAE/D,IAAIolG,GAAK,CAAE34E,WAAY/nD,GAAIgoD,YAAa,MAAOuO,WAAYkqE,IAC3D,SAASE,GAAGlwG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxFq1F,GAAEp1F,EAAG,OACL,IAAI0C,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ56B,EAAID,EAAGG,EAAIpmB,GAAE+9F,mBAAmB73E,EAAG3C,EAAEu9B,MAAMj/D,QAASgmC,EAAItE,EACzF,MAAL6C,IAAcyB,EAAIm7F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQF,EAAIlmB,GAAE0+F,iBAAiBx4E,EAAErkC,OAAQ0hC,EAAEu9B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,MAAOz1E,EAAG2B,EAAEi5B,MAAMj/D,QAC9K,IAAK4nC,EAAGC,GAAK1pB,GAAE+8F,0BAA0Bl1E,EAAEi5B,MAAO56B,GAAIyD,EAAI3J,GAAEi+B,cAAcv0B,GAAIK,EAAI/J,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAcx0B,GAAI5B,EAAEw4B,OAAQxyB,EAAIzK,EAAEmb,KAAKp7C,IAAI0kC,EAAE06B,QAAQ9hE,OAC/J,IAAK,IAAIosC,EAAI,EAAGA,EAAI9C,EAAEloC,SAAUgrC,EAAG,CACjC,IAAIuB,EAAIvB,EAAIlD,EAAG+E,EAAIb,EAAEO,GACrB,IAAK,IAAIO,EAAI,EAAGA,EAAIhF,IAAKgF,EAAG,CAC1B,IAAIC,EAAIf,EAAEO,EAAIO,IACbwmB,OAAOppC,MAAM6iB,IAAMA,EAAIF,KAAOA,EAAIE,GAErC7E,EAAE8C,GAAK6B,EAEJ,MAALtI,GAAahD,EAAE88F,8BAA8Br4F,GAC7C,IAAIiG,EAAI1K,EAAE41F,eAAevvF,EAAG5B,EAAEw4B,MAAOt2B,GACrC,GAAI/D,EAAG,CACL,IAAI6G,EAAI7sB,GAAEs9F,qBAAqB7zE,EAAGxD,GAAImI,EAAI05F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj0B,KAC7F,OAAOzJ,EAAE88F,8BAA8BpyF,GAAIM,EAE7C,OAAON,EAET,IAAIqlG,GAAK,CAAE74E,WAAY7nD,GAAI8nD,YAAa,MAAOuO,WAAYoqE,IAC3D,SAASE,GAAGpwG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMupD,SAAUzmD,EAAG0mD,KAAMzmD,GAAM1C,EACxFq1F,GAAEp1F,EAAG,aACL,IAAI0C,EAAIF,EAAEmwB,IAAI,CAACxnB,EAAGC,IAAMD,EAAE,GAAKnL,EAAEu9B,MAAMnyB,GAAKD,EAAE,IAAKxI,EAAIH,EAAEmwB,IAAKxnB,GAAMA,EAAE,IAAKtI,EAAIL,EAAEmwB,IAAI,CAACxnB,EAAGC,IAAMD,EAAE,GAAKnL,EAAEu9B,MAAMnyB,IAAK9G,EAAU,YAAN7B,EAAkB,EAAI,EAAGyD,EAAIrG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAInG,EAAEu9B,MAAMj/D,OAAQ8nC,EAAI3J,GAAEm7B,eAAe53B,EAAEu9B,OAAQ/2B,EAAI/J,GAAEi+B,cAAch4B,GAAI4H,EAAI5H,EAAEpkC,OAAQisC,EAAI9N,GAAEm7B,eAAel1B,GAAI4G,EAAI7M,GAAEm8B,uBAAuB54B,EAAE88B,MAAOt2B,GACzU,IAAK,IAAI2E,EAAI,EAAGA,EAAI3E,EAAG2E,IAAK,CAC1B,IAAIC,EAAI3O,GAAEu8B,WAAW7tB,EAAGb,EAAGC,GAC3B,IAAK,IAAIe,EAAI,EAAGA,EAAIhB,EAAGgB,IACrBF,EAAEE,GAAK3I,EAAE2I,GAAKF,EAAEE,GAAY,EAAP3I,EAAE2I,GAASF,EAAEE,GAAKhH,EAAI8G,EAAEE,IAAMzI,EAAEyI,KAAOF,EAAEE,GAAkB,GAAZzI,EAAEyI,GAAK,GAASF,EAAEE,GAAKhH,GAC7F8G,EAAIA,EAAEunB,IAAI,CAACrnB,EAAGE,IAAMF,EAAI3I,EAAE6I,IAC1B,IAAIH,EAAI5O,GAAEo9B,WAAWzuB,EAAGjF,EAAGC,GAC3BkD,EAAE6B,GAAKjF,EAAEmF,GAEX,MAAO,CAAE2zB,OAAQn/B,EAAE4mC,MAAMn9B,EAAG5G,EAAG1C,EAAE88B,OAAQS,MAAO76B,EAAGo6B,MAAO98B,EAAE88B,OAE9D,IAAIgzE,GAAK,CAAE/4E,WAAYznD,GAAI0nD,YAAa,MAAOuO,WAAYsqE,IACvDE,GAAK7T,GAAG,CAACz8F,EAAGC,KACd,IAAIG,EAAIJ,EAAIC,EACZ,OAAOD,EAAI,GAAKC,EAAK,GAAKD,GAAK,GAAKC,GAAM,EAAIG,GAAKA,EAAIH,GAAMA,IAE3DswG,GAAKnT,GAAGrtH,GAAIugI,IACZE,GAAK,CAAEl5E,WAAYvnD,GAAIwnD,YAAa,MAAOuO,WAAYyqE,IACvDE,GAAKjwG,EAAG4M,KACZ,SAASsjG,GAAG1wG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMgkD,IAAKlhD,GAAMzC,EAAG0C,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAIF,EAC1G,IAAW,IAAPE,IAAaA,EAAID,EAAI,GAAIC,IAAMD,EAAI,EACrC,MAAMJ,MAAM,4EAA4EI,iBAAiBC,KAC3G,IAAIC,EAAIlG,GAAE29B,eAAe,CAAC13B,GAAI1C,EAAEu9B,OAAQ16B,EAAI+rG,GAAG,CAAE5xE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEid,iBAAkB1/C,EAAG0yC,UAAU,KAAY/wC,EAAI7nB,GAAEs9F,qBAAqBl3E,EAAE06B,MAAO56B,GAAIuD,EAAIq+F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGzG,GAAKvmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQ6B,EAAIo9F,GAAG,CAAEvmE,OAAQ,CAAEv6B,EAAGzC,EAAG6K,EAAG3E,GAAK5pB,QAASujB,IAAMuG,EAAIw3F,GAAG,CAAE5gE,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,IAAM2G,EAAIskG,GAAG,CAAE9tE,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMzyC,EAAG0yC,UAAU,KAAY/qC,EAAIi6F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQiG,EAAIwhG,GAAG,CAAE/uE,OAAQ,CAAEv6B,EAAG2D,EAAGyE,EAAGP,GAAKhuB,QAASujB,IAC5f,OAAOA,EAAE88F,8BAA8B95F,GAAIhD,EAAE88F,8BAA8Bz2F,GAAIrG,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI3G,EAAE88F,8BAA8BryF,GAAIC,EAEjO,IAAI6lG,GAAK,CAAEr5E,WAAYjhD,GAAIkhD,YAAa,MAAOuO,WAAY4qE,IAC3D,SAASE,GAAG5wG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMkqD,WAAYpnD,EAAGqnD,KAAMpnD,EAAGqnD,WAAYpnD,GAAM3C,EAC9Gq1F,GAAEp1F,EAAG,eACL,IAAI2C,EAAID,EAAI1C,EAAImwG,GAAG,CAAEnzE,OAAQ,CAAE2sB,OAAQ3pD,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEse,KAAM,KAAQ7gD,EAAIF,EAAE46B,MAAM,GAAIj5B,EAAI3B,EAAE46B,MAAM,GAAIr3B,EAAIrG,EAAEmb,KAAKp7C,IAAI+iC,EAAEq8B,QAAQ9hE,OAAQipC,EAAI,CAACtD,EAAGL,GAAI4D,EAAI3J,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAcv0B,GAAI,SAC1M,IAAK,IAAIK,EAAI,EAAGA,EAAI3D,IAAK2D,EAAG,CAC1B,IAAI8D,EAAI9D,EAAIlC,EAAGiG,EAAI,IAAIgK,aAAajQ,EAAI,GACxCiG,EAAE,GAAKrE,EAAEoE,GACT,IAAK,IAAIa,EAAI,EAAGA,EAAIZ,EAAEjsC,SAAU6sC,EAC9BZ,EAAEY,GAAKZ,EAAEY,EAAI,GAAKjF,EAAEoE,EAAIa,GAC1B,IAAI7B,EAAI4mG,GAAGjnG,KAAKxG,EAAEyB,YAAa2G,EAAIrE,EAAIhE,EACvC,IAAK,IAAI2I,EAAI,EAAGA,EAAI3I,IAAK2I,EAAG,CAC1B,IAAIC,EAAI9B,IACRlD,EAAEyE,EAAIM,GAAKZ,EAAEjsC,OACb,IAAK,IAAI+sC,EAAI,EAAGA,EAAId,EAAEjsC,OAAQ+sC,IAC5B,GAAID,EAAIb,EAAEc,GAAI,CACZjF,EAAEyE,EAAIM,GAAKE,EACX,QAIR,OAAO3I,GAAK7C,EAAE88F,8BAA8Bh6F,GAAI9C,EAAE41F,eAAetvF,EAAG,QAASC,GAE/E,IAAIkqG,GAAK,CAAEv5E,WAAYnnD,GAAIonD,YAAa,MAAOuO,WAAY8qE,IACvDE,GAAK1nH,GAAG22F,wBACZ,SAASgxB,GAAG/wG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,GAAM5C,EACvIq1F,GAAEp1F,EAAG,qBACL,IAAI6C,EAAIhD,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQonC,EAAIzE,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAU8gG,gBAAiB93D,GAAMqqG,GAAG1tG,EAAGyB,EAAG7B,EAAGC,EAAGC,GAC9G,OAAO9C,EAAE41F,eAAe,CAACvvF,EAAE5nC,QAAS,QAAS,IAAI01C,WAAW9N,IAE9D,IAAIuqG,GAAK,CAAE15E,WAAY7mD,GAAI8mD,YAAa,MAAOuO,WAAYirE,IACvDE,GAAK7nH,GAAG42F,wBACZ,SAASkxB,GAAGlxG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,EAAGg8D,mBAAoB97D,GAAM9C,EAC9Jq1F,GAAEp1F,EAAG,2BACL,IAAIsE,EAAIzE,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQgpC,EAAIrG,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAU8gG,gBAAiB73D,EAAG+3D,aAAc93D,GAAMsqG,GAAGpsG,EAAG4B,EAAGzD,EAAGC,EAAGC,EAAGE,GAClI,MAAO,CAAChD,EAAE41F,eAAe,CAACtvF,EAAE7nC,QAAS,QAAS,IAAI01C,WAAW7N,IAAKtG,EAAE41F,eAAe,GAAI,QAAS,IAAIzhF,WAAW,CAAC5N,MAElH,IAAIwqG,GAAK,CAAE75E,WAAY3mD,GAAI4mD,YAAa,MAAOuO,WAAYorE,IACvDE,GAAKhoH,GAAG62F,wBACZ,SAASoxB,GAAGrxG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,EAAGk6D,aAAch6D,GAAM9C,EACxJq1F,GAAEp1F,EAAG,8BACL,IAAIsE,EAAIzE,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQgpC,EAAIrG,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQipC,EAAI1D,EAAG2D,EAAI1D,EAAG8D,EAAI7D,EAAG2H,EAAIzH,GAAKm7D,gBAAiBzzD,EAAG0zD,eAAgB30D,GAAMunG,GAAGvsG,EAAG4B,EAAGC,EAAGC,EAAGI,EAAG8D,GAChK,MAAO,CAACzK,EAAE41F,eAAe,CAAClrF,EAAEjsC,QAAS,QAAS,IAAI01C,WAAWzJ,IAAK1K,EAAE41F,eAAe,CAACnsF,EAAEhrC,QAAS,UAAW,IAAIi2C,aAAajL,KAE7H,IAAIynG,GAAK,CAAEh6E,WAAYzmD,GAAI0mD,YAAa,MAAOuO,WAAYurE,IAC3D,SAASE,GAAGvxG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,GAAMN,GAAMo9B,MAAOt6B,EAAG2nD,MAAO1nD,EAAG2nD,QAAS1nD,EAAG2nD,SAAU1nD,GAAM5C,EACrHq1F,GAAEp1F,EAAG,UACL,IAAI6C,EAAIpG,GAAEi+B,cAAc16B,EAAEu9B,OAAQj5B,EAAI,IAAIiQ,aAAa1R,EAAIJ,GAC3D6B,EAAEtf,KAAK2d,GACP,IAAIuD,EAAIrG,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAC7B,IAAK,IAAIipC,EAAI,EAAGA,EAAItD,IAAKsD,EACvBD,EAAEC,IAAM,GAAKD,EAAEC,GAAK1D,IAAM6B,EAAE6B,EAAI1D,EAAIyD,EAAEC,IAAMzD,GAC9C,OAAO7C,EAAE41F,eAAe,IAAIz1F,EAAEu9B,MAAO96B,GAAID,EAAG8B,GAE9C,IAAI2sG,GAAK,CAAEl6E,WAAYnmD,GAAIomD,YAAa,MAAOuO,WAAYyrE,IAC3D,SAASE,GAAGzxG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,WAAZK,EAAE+8B,MACJ,MAAM,IAAIz6B,MAAM,iDAClB,GAAgB,cAAZtC,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAIw8F,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAI0uG,GAAG,CAAEl0E,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAIulG,GAAG,CAAEhrE,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAIwuG,GAAG,CAAEl0E,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAIw5F,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE88F,8BAA8B38F,GAAIH,EAAE88F,8BAA8Bn6F,GAAI3C,EAAE88F,8BAA8Bl6F,GAAI5C,EAAE88F,8BAA8Bj6F,GAAIC,EAEvJ,OAAO6pG,GAAG,CAAElwH,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOl+D,MAAO,EAAGy9D,MAAO/8B,EAAE+8B,SAExE,IAAIq0E,GAAK,CAAEp6E,WAAY38C,GAAI48C,YAAa,MAAOuO,WAAY2rE,IAC3D,SAASE,GAAG3xG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,WAAZK,EAAE+8B,MACJ,MAAM,IAAIz6B,MAAM,gDAClB,GAAgB,cAAZtC,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAIw8F,GAAG,CAAEx/D,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAI4uG,GAAG,CAAEp0E,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAIulG,GAAG,CAAEhrE,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAIwuG,GAAG,CAAEl0E,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAIw5F,GAAG,CAAEn/D,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE88F,8BAA8B38F,GAAIH,EAAE88F,8BAA8Bn6F,GAAI3C,EAAE88F,8BAA8Bl6F,GAAI5C,EAAE88F,8BAA8Bj6F,GAAIC,EAEvJ,OAAO6pG,GAAG,CAAElwH,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOl+D,MAAO,EAAGy9D,MAAO/8B,EAAE+8B,SAExE,IAAIu0E,GAAK,CAAEt6E,WAAYjmD,GAAIkmD,YAAa,MAAOuO,WAAY6rE,IAC3D,SAASE,GAAG7xG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAC5D,GAAkB,IAAdL,EAAGphC,OACL,OAAOstI,GAAG,CAAE5uE,OAAQ,CAAEymB,MAAO/jD,EAAG,IAAMpjB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAClE,IAAIwC,EAAI9C,EAAG,GAAG69B,MAAO96B,EAAI/C,EAAG,GAAGo9B,MAC/Bp9B,EAAGqY,QAASzT,IACV7H,GAAE86B,kBAAkB/0B,EAAG8B,EAAEi5B,MAAO,yDAA0D9gC,GAAE26B,OAAO30B,IAAM6B,EAAEw4B,MAAO,IAAM,2DAE1H,IAAIp6B,EAAI,GAAIC,EAAIjD,EAAGizB,IAAKruB,IACtB,IAAI4B,EAAI0lG,GAAG,CAAE5uE,OAAQ,CAAEymB,MAAOn/C,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAC7D,OAAO0C,EAAEuH,KAAK/D,GAAIA,IAChBrD,EAAIqlG,GAAG,CAAElrE,OAAQr6B,EAAGrmB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMp1C,KACnD,OAAO0C,EAAEqV,QAASzT,GAAMzE,EAAE88F,8BAA8Br4F,IAAKzB,EAE/D,IAAI0uG,GAAK,CAAEx6E,WAAY3lD,GAAI4lD,YAAa,MAAOuO,WAAY+rE,IAC3D,SAASE,GAAG/xG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMupD,SAAUzmD,EAAGooD,cAAenoD,GAAM1C,EACjGq1F,GAAEp1F,EAAG,OACL,IAAI0C,EAAIF,EAAEmwB,IAAI,CAAC9nB,EAAGM,IAAMN,EAAE,GAAK7K,EAAEu9B,MAAMpyB,GAAKN,EAAE,IAAKlI,EAAIH,EAAEmwB,IAAK9nB,GAAMA,EAAE,IAAKhI,EAAIhD,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQonC,EAAI7H,GAAEi+B,cAAc16B,EAAEu9B,OAAQr3B,EAAIlG,EAAEu9B,MAAMj/D,OAAQ6nC,EAAI1J,GAAEm7B,eAAe53B,EAAEu9B,OAAQn3B,EAAI3J,GAAEi+B,cAAch4B,GAAI8D,EAAI9D,EAAEpkC,OAAQgsC,EAAI7N,GAAEm7B,eAAel1B,GAAI6H,EAAI9N,GAAEm8B,uBAAuB54B,EAAE88B,MAAO12B,GAC5R,IAAN3D,GAAW8H,EAAEvlB,KAAKyd,GAClB,IAAK,IAAIoI,EAAI,EAAGA,EAAIvG,EAAGuG,IAAK,CAC1B,IAAIO,EAAI3O,GAAEu8B,WAAWnuB,EAAG3E,EAAGC,GAAGwsB,IAAI,CAACrnB,EAAGE,IAAMF,EAAI3I,EAAE6I,IAAKH,EAAI5O,GAAEo9B,WAAWzuB,EAAG5E,EAAG8D,GAC9EC,EAAEc,GAAKxI,EAAEgI,GAEX,MAAO,CAAEm0B,OAAQn/B,EAAE4mC,MAAMl8B,EAAG7H,EAAG1C,EAAE88B,OAAQS,MAAO76B,EAAGo6B,MAAO98B,EAAE88B,OAE9D,IAAI20E,GAAK,CAAE16E,WAAYzlD,GAAI0lD,YAAa,MAAOuO,WAAYisE,IACvDE,GAAKxV,GAAG,CAACz8F,EAAGC,IAAOyC,KAAK3S,IAAIiQ,EAAGC,IAC/BiyG,GAAK9U,GAAGnrH,GAAIggI,IACZE,GAAK,CAAE76E,WAAYrlD,GAAIslD,YAAa,MAAOuO,WAAYosE,IAC3D,SAASE,GAAGpyG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwsD,mBAAoBjsD,EAAGksD,kBAAmB1pD,EAAG8hD,QAAS7hD,GAAM/C,GAAMysD,iBAAkBzpD,GAAM3C,EAAG4C,EAAI3C,EAAE2yB,IAAKrpB,GAAMzJ,EAAEmb,KAAKp7C,IAAI0pC,EAAE01B,QAAQ9hE,QAAS2lC,EAAI7C,EAAE2yB,IAAKrpB,GAAMA,EAAEi0B,OAAQj5B,EAAIzE,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQgpC,EAAIrG,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,QAASipC,EAAGC,EAAGI,GAAKyyF,GAAGt2F,EAAGE,EAAGyB,EAAG9B,EAAE+6B,MAAO/6B,EAAEs6B,MAAO52B,EAAGzD,EAAE86B,MAAO76B,GAAI4H,EAAInE,EAAEwsB,IAAKrpB,GAAMzJ,EAAE41F,eAAe,CAACnsF,EAAEhrC,QAAS,QAASgrC,IAAKiB,EAAI1K,EAAE41F,eAAejvF,EAAGhE,EAAEs6B,MAAO12B,GAChb,OAAOkE,EAAEtrB,OAAO,CAACurB,IAEnB,IAAIunG,GAAK,CAAE/6E,WAAY7kD,GAAI8kD,YAAa,MAAOuO,WAAYssE,IAC3D,SAASE,GAAGtyG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK+sD,OAAQzsD,EAAG0sD,OAAQzsD,EAAG0sD,OAAQlqD,GAAM9C,EAAI+C,EAAI5C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQwlC,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAS2lC,EAAGyB,GAAK60F,GAAG12F,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAG1C,EAAEu9B,MAAO56B,EAAGH,EAAE+6B,OAAQr3B,EAAIrG,EAAE41F,eAAe,CAAC5yF,EAAEvkC,QAAS,QAASukC,GAAIsD,EAAItG,EAAE41F,eAAe,CAACnxF,EAAEhmC,QAASyhC,EAAE+8B,MAAOx4B,GACnU,MAAO,CAAC4B,EAAGC,GAEb,IAAI6rG,GAAK,CAAEj7E,WAAY3kD,GAAI4kD,YAAa,MAAOuO,WAAYwsE,IAC3D,SAASE,GAAGxyG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK89B,MAAOv9B,EAAG9iC,OAAQslC,EAAGuqD,aAActqD,EAAGuqD,oBAAqBtqD,GAAMhD,GAAMutD,kBAAmBtqD,GAAM5C,EAAG8C,EAAIhD,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQonC,EAAIzE,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQgpC,EAAIrG,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQipC,EAAIzD,EAAEiwB,IAAKpoB,GAAM1K,EAAEmb,KAAKp7C,IAAI2qC,EAAEy0B,QAAQ9hE,QAASkpC,EAAI1D,EAAEiwB,IAAKpoB,GAAMA,EAAEgzB,QAAS/2B,EAAG8D,GAAK+uF,GAAGx2F,EAAG7C,EAAEu9B,MAAOj5B,EAAG9B,EAAE+6B,MAAO/6B,EAAEs6B,MAAO52B,EAAGzD,EAAE86B,MAAOp3B,EAAGC,EAAGzD,GAC/X,OAAO9C,EAAE41F,eAAejvF,EAAGhE,EAAEs6B,MAAOxyB,GAEtC,IAAI4nG,GAAK,CAAEn7E,WAAYzkD,GAAI0kD,YAAa,MAAOuO,WAAY0sE,IAC3D,SAASE,GAAG1yG,GACV,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAG88B,MAAOt6B,EAAGhK,KAAMiK,GAAM5C,EAAG6C,EAAI62F,GAAGx5F,EAAGC,EAAGyC,EAAGD,GACjG,OAAO9C,EAAG+1F,eAAe,CAAC/yF,EAAEpkC,QAASkkC,EAAGE,GAE1C,IAAI0vG,GAAK,CAAEr7E,WAAYvkD,GAAIwkD,YAAa,MAAOuO,WAAY4sE,IACvDE,GAAKhV,GAAGrqH,GAAKysB,GAAM,EAAIA,GACvB6yG,GAAK,CAAEv7E,WAAY/jD,GAAIgkD,YAAa,MAAOuO,WAAY8sE,IAC3D,SAASE,GAAG9yG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,EACtHq1F,GAAEp1F,EAAG,kBACL,IAAI2C,EAAIlG,GAAEm7B,eAAe53B,EAAEu9B,QAAS16B,EAAGyB,GAAK5B,GAAIwD,EAAGC,EAAGC,EAAGI,GAAKxG,EAAEu9B,MAAOjzB,EAAIzK,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQqtC,EAAI,IAAIgK,aAAa9X,GAAEi+B,cAAc,CAACx0B,EAAGrD,EAAGyB,EAAGkC,KAAM8C,EAAI,CAAC9G,GAAKK,EAAI,EAAIsD,EAAI,EAAIA,EAAG3D,GAAK8B,EAAI,EAAI8B,EAAI,EAAIA,GAAIyE,EAAI,CAACrI,GAAKK,EAAI,EAAIA,EAAI,EAAIA,EAAGL,GAAK8B,EAAI,EAAIA,EAAI,EAAIA,GAAI6G,EAAI,EAAGC,EAAI9B,EAAE,GAAKuB,EAAE,GAAIQ,EAAI/B,EAAE,GAAKuB,EAAE,GAC9S,IAAK,IAAIS,EAAI,EAAGA,EAAIpF,EAAGoF,IACrB,IAAK,IAAIE,EAAI,EAAGA,EAAI3I,EAAG2I,IAAK,CAC1B,IAAIC,EACAA,EAAJhJ,EAAQ2I,GAAKI,EAAI,IAAO,GAAUJ,EAAII,EACtC,IAAIE,EAAIvJ,KAAK3W,IAAI,EAAG2W,KAAK7c,MAAMmmB,IAAKE,EAAIF,EAAIC,EAAGruC,EAAI8kC,KAAK3V,IAAI2Z,EAAI,EAAGhE,KAAK3jB,KAAKitB,IAAKG,EAAIN,EAAI3I,EAAE,GAAK+I,EAAI/I,EAAE,GAAImJ,EAAIR,EAAI3I,EAAE,GAAKtlC,EAAIslC,EAAE,GAChI,IAAK,IAAIsJ,EAAI,EAAGA,EAAI3H,EAAG2H,IAAK,CAC1B,IAAI1C,EACAA,EAAJ9G,EAAQ4I,GAAKY,EAAI,IAAO,GAAUZ,EAAIY,EACtC,IAAIgG,EAAI9P,KAAK3W,IAAI,EAAG2W,KAAK7c,MAAMikB,IAAKyC,EAAIzC,EAAI0I,EAAGsd,EAAIptB,KAAK3V,IAAI4Z,EAAI,EAAGjE,KAAK3jB,KAAK+qB,IAAKimB,EAAI5jB,EAAIqG,EAAItP,EAAE,GAAIqsB,EAAIljB,EAAImG,EAAItP,EAAE,GAAIssB,EAAKrjB,EAAI2jB,EAAI5sB,EAAE,GAAIwC,EAAK2G,EAAIyjB,EAAI5sB,EAAE,GACxJ,IAAK,IAAI+P,EAAK,EAAGA,EAAKlM,EAAGkM,IAAM,CAC7B,IAAItE,EAAK9D,EAAEklB,EAAI9c,GAAKG,EAAKvI,EAAE0kB,EAAItc,GAAKjN,EAAK6E,EAAE2kB,EAAKvc,GAAKI,EAAKxI,EAAEnF,EAAKuN,GAAKK,EAAK3E,GAAM3I,EAAK2I,GAAMpC,EAAGgH,EAAKH,GAAMC,EAAKD,GAAM7G,EAAGkH,EAAKH,GAAMC,EAAKD,GAAMpH,EAC9IpB,EAAEY,KAAO+H,IAIjB,OAAOrT,EAAE41F,eAAe,CAACvvF,EAAGrD,EAAGyB,EAAGkC,GAAI,UAAW+D,GAEnD,IAAIioG,GAAK,CAAEz7E,WAAYrjD,GAAIsjD,YAAa,MAAOuO,WAAYgtE,IAC3D,SAASE,GAAGhzG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAC/Fq1F,GAAE,CAAC5yF,EAAGxC,GAAI,sBACV,IAAI0C,EAAIjG,GAAEm7B,eAAe53B,EAAEu9B,QAAS56B,EAAGE,EAAGyB,EAAG4B,GAAKlG,EAAEu9B,OAAQ,CAAEp3B,EAAGC,GAAK5D,EAAE+6B,MAAO/2B,EAAI,IAAI+N,aAAa5R,EAAIE,EAAIyB,EAAI4B,GAAIoE,EAAI,CAAC7H,GAAK0D,EAAI,EAAItD,EAAI,EAAIA,EAAGJ,GAAK2D,EAAI,EAAI9B,EAAI,EAAIA,GAAIiG,EAAI,CAAC9H,GAAK0D,EAAI,EAAIA,EAAI,EAAIA,EAAG1D,GAAK2D,EAAI,EAAIA,EAAI,EAAIA,GAAIkD,EAAIgB,EAAE,GAAKC,EAAE,GAAIM,EAAIP,EAAE,GAAKC,EAAE,GAAIY,EAAItL,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQkuC,EAAI,EACvS,IAAK,IAAIC,EAAI,EAAGA,EAAI1I,EAAG0I,IAAK,CAC1B,IAAIC,EAAID,EAAI3I,EAAE,GACd,IAAK,IAAI8I,EAAI,EAAGA,EAAIrF,EAAGqF,IAAK,CAC1B,IAAIC,EAAID,EAAIlC,EAAGoC,EAAIvJ,KAAK7c,MAAMmmB,GAAIE,EAAIxJ,KAAK3V,IAAI2V,KAAK3jB,KAAKitB,GAAI5I,EAAI,GAAIxlC,EAAIiuC,EAAII,EAAIhJ,EAAE,GAAIkJ,EAAIN,EAAIK,EAAIjJ,EAAE,GAAIoJ,EAAIL,EAAIC,EAAGO,EAAI,EAAIH,EAC5H,IAAK,IAAIvC,EAAI,EAAGA,EAAInD,EAAGmD,IAAK,CAC1B,IAAI0I,EAAI1I,EAAIsB,EAAGmB,EAAI7J,KAAK7c,MAAM2sB,GAAIsd,EAAIptB,KAAK3V,IAAI2V,KAAK3jB,KAAKyzB,GAAI3N,EAAI,GAAIkrB,EAAIvd,EAAIjG,EAAGgjB,EAAI,EAAIQ,EAAGP,EAAK5xD,EAAI2uC,EAAItJ,EAAE,GAAIyC,EAAK9nC,EAAIkyD,EAAI7sB,EAAE,GAAIgQ,EAAK9G,EAAII,EAAItJ,EAAE,GAAI0L,EAAKxC,EAAI2jB,EAAI7sB,EAAE,GAAImQ,EAAK5G,EAAI+iB,EAAGvpB,EAAKwG,EAAIujB,EAAG1c,EAAKhH,EAAIkjB,EAAGjc,EAAKjH,EAAI0jB,EACpN,IAAK,IAAIxc,EAAK,EAAGA,EAAK9M,EAAG8M,IAAM,CAC7B,IAAIE,EAAK/H,EAAEC,KACX5E,EAAEyoB,EAAKjc,IAAOE,EAAKL,EAAIrM,EAAErB,EAAK6N,IAAOE,EAAKzN,EAAIe,EAAEkM,EAAKM,IAAOE,EAAKJ,EAAItM,EAAE4H,EAAK4E,IAAOE,EAAKH,KAKhG,OAAOlT,EAAE41F,eAAe,CAAC9yF,EAAG2B,EAAGzB,EAAGqD,GAAI,UAAWM,GAEnD,IAAIksG,GAAK,CAAE37E,WAAYnjD,GAAIojD,YAAa,MAAOuO,WAAYktE,IAC3D,SAASE,GAAGlzG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,EACtHq1F,GAAEp1F,EAAG,yBACL,IAAI2C,EAAIlG,GAAEm7B,eAAe53B,EAAEu9B,QAAS16B,EAAGyB,GAAK5B,GAAIwD,EAAGC,EAAGC,EAAGI,GAAKxG,EAAEu9B,MAAOjzB,EAAIzK,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQqtC,EAAI,IAAIgK,aAAarO,EAAIrD,EAAIyB,EAAIkC,GAAI8C,EAAI,CAAC9G,GAAKK,EAAI,EAAIsD,EAAI,EAAIA,EAAG3D,GAAK8B,EAAI,EAAI8B,EAAI,EAAIA,GAAIyE,EAAI,CAACrI,GAAKK,EAAI,EAAIA,EAAI,EAAIA,EAAGL,GAAK8B,EAAI,EAAIA,EAAI,EAAIA,GAAI6G,EAAI7B,EAAE,GAAKuB,EAAE,GAAIO,EAAI9B,EAAE,GAAKuB,EAAE,GAAIQ,EAAI,EAC/R,IAAK,IAAIC,EAAI,EAAGA,EAAIpF,EAAGoF,IAAK,CAC1B,IAAIE,EAAIF,EAAI3I,EAAE,GACd,IAAK,IAAI8I,EAAI,EAAGA,EAAI5I,EAAG4I,IAAK,CAC1B,IAAIC,EAAIjJ,EAAI0I,GAAKM,EAAI,IAAON,EAAIM,EAAGE,EAAIxJ,KAAK3V,IAAI2Z,EAAI,EAAG3D,EAAIL,KAAK3O,MAAMkY,GAAKvJ,KAAK7c,MAAMomB,IACtFjJ,IAAMkJ,EAAIxJ,KAAK3W,IAAI,EAAGmgB,IACtB,IAAItuC,EAAImuC,EAAIG,EAAIhJ,EAAE,GAClB,IAAK,IAAIiJ,EAAI,EAAGA,EAAItH,EAAGsH,IAAK,CAC1B,IAAIE,EAAIrJ,EAAI2I,GAAKQ,EAAI,IAAOR,EAAIQ,EAAGK,EAAI9J,KAAK3V,IAAI4Z,EAAI,EAAG5D,EAAIL,KAAK3O,MAAMsY,GAAK3J,KAAK7c,MAAMwmB,IACtFrJ,IAAMwJ,EAAI9J,KAAK3W,IAAI,EAAGygB,IACtB,IAAI1C,EAAIlsC,EAAI4uC,EAAItJ,EAAE,GAClB,IAAK,IAAIsP,EAAI,EAAGA,EAAIzL,EAAGyL,IAAK,CAC1B,IAAIjG,EAAI1B,EAAEf,EAAI0I,GACd1H,EAAEc,KAAOW,KAKjB,OAAOnM,EAAE41F,eAAe,CAACvvF,EAAGrD,EAAGyB,EAAGkC,GAAIxG,EAAE88B,MAAOvyB,GAEjD,IAAIqoG,GAAK,CAAE77E,WAAYjjD,GAAIkjD,YAAa,MAAOuO,WAAYotE,IAC3D,SAASE,GAAGpzG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAC/Fq1F,GAAE,CAAC5yF,EAAGxC,GAAI,6BACV,IAAI0C,EAAIjG,GAAEm7B,eAAe53B,EAAEu9B,OAAQ56B,EAAIlG,GAAEm7B,eAAep1B,EAAE+6B,QAAS16B,EAAGyB,EAAG4B,EAAGC,GAAKnG,EAAEu9B,OAAQ,CAAEn3B,EAAGI,GAAKhE,EAAE+6B,MAAOjzB,EAAI,IAAIiK,aAAa1R,EAAIyB,EAAI4B,EAAIC,GAAIoE,EAAI1K,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQosC,EAAI,CAAC7G,GAAK2D,EAAI,EAAI9B,EAAI,EAAIA,EAAG7B,GAAK+D,EAAI,EAAIN,EAAI,EAAIA,GAAI2E,EAAI,CAACpI,GAAK2D,EAAI,EAAIA,EAAI,EAAIA,EAAG3D,GAAK+D,EAAI,EAAIA,EAAI,EAAIA,GAAI2E,EAAI7B,EAAE,GAAKuB,EAAE,GAAIO,EAAI9B,EAAE,GAAKuB,EAAE,GAAIQ,EAAI,EAAIF,EAAGG,EAAI,EAAIF,EAAGI,EAAmB,EAAfrJ,KAAK3jB,KAAK6sB,GAAS,EAAGI,EAAmB,EAAftJ,KAAK3jB,KAAK8sB,GAAS,EACzY,IAAK,IAAII,EAAI,EAAGA,EAAI7I,EAAG6I,IAAK,CAC1B,IAAIC,EAAID,EAAIhJ,EAAE,GACd,IAAK,IAAIrlC,EAAI,EAAGA,EAAIinC,EAAGjnC,IAAK,CAC1B,IAAIuuC,EAAID,EAAItuC,EAAIqlC,EAAE,GAAIoJ,EAAI3J,KAAK7c,MAAMjoB,EAAIguC,GAAIY,EAAI9J,KAAK7c,MAAMwmB,EAAIN,EAAI,GACpE,IAAK,IAAIjC,EAAI,EAAGA,EAAIrD,EAAGqD,IAAK,CAC1B,IAAI0I,EAAIrG,EAAIrC,EAAI7G,EAAE,GAAIsJ,EAAI7J,KAAK7c,MAAMikB,EAAI+B,GAAIikB,EAAIptB,KAAK7c,MAAM0mB,EAAIP,EAAI,GACpE,IAAK,IAAI+jB,EAAI,EAAGA,EAAIrpB,EAAGqpB,IAAK,CAC1B,IAAIR,EAAI,EACR,IAAK,IAAIC,EAAK,EAAGA,EAAKzjB,EAAGyjB,IAAM,CAC7B,IAAI9pB,EAAK8pB,EAAKhjB,EACd,GAAI9G,EAAK,GAAKA,GAAMiB,EAClB,SACF,IAAIsM,EAAK/G,EAAIxG,EAAKxC,EAAE,GAAIyL,EAAKjJ,EAAKgG,EAAG0H,EAAK1Q,KAAK3V,IAAI8X,EAAI,EAAG7B,EAAIN,KAAK3O,MAAM4a,GAAMjM,KAAK7c,MAAM8oB,IAC1F,GAAI/wC,IAAMw1C,EACR,IAAK,IAAIpN,EAAK,EAAGA,EAAKgG,EAAGhG,IAAM,CAC7B,IAAIqN,EAAKrN,EAAK8pB,EACd,GAAIzc,EAAK,GAAKA,GAAMtM,EAClB,SACF,IAAIuM,EAAKL,EAAKI,EAAKnQ,EAAE,GAAIqQ,EAAKF,EAAK1H,EAAG8H,EAAK/Q,KAAK3V,IAAI0Z,EAAI,EAAGzD,EAAIN,KAAK3O,MAAMwf,GAAM7Q,KAAK7c,MAAM0tB,IAC3FzJ,IAAM2J,IAAO8b,GAAKzkB,EAAEwI,EAAKyc,KAG/BllB,EAAE2H,EAAIud,GAAKR,KAKnB,OAAOnvB,EAAE41F,eAAez1F,EAAEu9B,MAAOv9B,EAAE88B,MAAOxyB,GAE5C,IAAIwoG,GAAK,CAAE/7E,WAAY/iD,GAAIgjD,YAAa,MAAOuO,WAAYstE,IAC3D,SAASE,GAAGtzG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMmyD,KAAMrvD,GAAMzC,EAC3Eq1F,GAAEp1F,EAAG,WACL,IAAIyC,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAClD,GAAU,IAAN96B,EACF,OAAO65F,GAAG,CAAEt/D,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI8C,EAAI,IAAI/pB,GAAGonB,EAAEu9B,MAAOv9B,EAAE88B,OAAQj6B,EAAIhD,EAAEknG,WAAW/mG,GACnD,IAAK,IAAIsE,EAAI,EAAGA,EAAI3B,EAAE26B,KAAMh5B,IAAK,CAC/B,IAAI4B,EAAIvD,EAAEq2B,WAAW10B,GAAI6B,EAAID,EAAE9P,QAC/BsM,EAAEqV,QAAS3R,GAAMD,EAAEC,GAAKpG,EAAEu9B,MAAMn3B,GAAK,EAAID,EAAEC,IAAKzD,EAAEliC,IAAIoiC,EAAEjjC,OAAOumC,MAAOD,GAExE,OAAOrG,EAAE41F,eAAe9yF,EAAE46B,MAAO56B,EAAEm6B,MAAOn6B,EAAEzlC,QAE9C,IAAI81I,GAAK,CAAEj8E,WAAY7iD,GAAI8iD,YAAa,MAAOuO,WAAYwtE,IACvDE,GAAK,CAAEl8E,WAAY3iD,GAAI4iD,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC3F,IAAMjY,MAAOmY,GAAMN,GAAK08D,QAASn8D,EAAGo8D,UAAW55D,EAAG65D,OAAQ55D,GAAM/C,EAAIgD,EAAI7C,EAAG8C,EAAIlG,GAAEm8B,uBAAuB74B,EAAE+8B,MAAOrgC,GAAEi+B,cAAc36B,EAAEw9B,SAAU16B,EAAGyB,EAAG4B,EAAGC,GAAKpG,EAAEw9B,OAAQn3B,EAAGI,GAAK/pB,GAAEw+F,eAAex4E,EAAG6B,EAAG4B,GAAIoE,EAAI,IAAKC,EAAIpI,KAAKnM,IAAIgK,GAAIsJ,EAAInH,KAAK7hB,IAAI0f,GAAI6K,EAAInI,EAAEsY,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAC5Q,IAAK,IAAIkuC,EAAI,EAAGA,EAAIvI,EAAGuI,IAAK,CAC1B,IAAIC,EAAID,EAAIlF,EAAI5B,EAAI6B,EACpB,IAAK,IAAImF,EAAI,EAAGA,EAAIhH,EAAGgH,IAAK,CAC1B,IAAIE,EAAIF,GAAKpF,EAAIC,GACjB,IAAK,IAAIsF,EAAI,EAAGA,EAAIvF,EAAGuF,IAAK,CAC1B,IAAIC,EAAID,EAAItF,EACZ,IAAK,IAAIwF,EAAI,EAAGA,EAAIxF,EAAGwF,IAAK,CAC1B,IAAItuC,EAAI,CAACwlC,EAAGyI,EAAGG,EAAGE,GAAIC,EAAIvuC,EAAE,GAAIyuC,EAAIzuC,EAAE,GAAI4uC,GAAKL,EAAIxF,GAAKkD,GAAKwC,EAAItF,GAAK+D,EAAGhB,GAAKqC,EAAIxF,GAAKmE,GAAKuB,EAAItF,GAAK8C,EACrG2C,EAAI9J,KAAK3O,MAAMyY,EAAI7F,GAAImD,EAAIpH,KAAK3O,MAAM+V,EAAI/C,GAC1C,IAAIyL,EAAIzP,EACR,GAAgB,iBAALA,IAA4ByP,EAAJ,IAANtG,EAAcrB,EAAQ9H,EAAEmJ,IAAKM,GAAK,GAAKA,EAAI/F,GAAKqD,GAAK,GAAKA,EAAIjF,EAAG,CAC5F,IAAIirB,EAAIhmB,GAAKrD,EAAIC,GAAIqpB,EAAIvjB,EAAI9F,EAAG6oB,EAAI3jB,EAAIkkB,EAAIC,EAAI7jB,EAChDsG,EAAIpH,EAAEmkB,GAER,IAAIhjB,EAAIX,EAAIG,EAAIE,EAAIC,EACpBhJ,EAAEqJ,GAAKiG,KAKf,MAAO,CAAE+sB,OAAQt8B,EAAE+jC,MAAM9jC,EAAG5C,EAAEw9B,MAAOx9B,EAAE+8B,OAAQS,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,SAEtEo2E,GAAK7V,GAAG/oH,GAAKmrB,IACf,IAAIC,EAAKyC,KAAK7c,MAAMma,GACpB,OAAOA,EAAIC,EAAK,GAAMyC,KAAK7c,MAAMma,GAAKA,EAAIC,EAAK,GAAMyC,KAAK3jB,KAAKihB,GAAKC,EAAK,IAAM,EAAIA,EAAKA,EAAK,IAE3FyzG,GAAK,CAAEp8E,WAAYziD,GAAI0iD,YAAa,MAAOuO,WAAY2tE,IAC3D,SAASE,GAAG3zG,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,EAAGo2D,QAAS5zD,GAAM9C,GAAM69B,MAAO96B,GAAM1C,GAAKg2D,UAAWrzD,EAAGszD,WAAYrzD,EAAGszD,UAAWpzD,EAAG07B,QAASj6B,EAAG4xD,WAAYhwD,GAAMzpB,GAAE45E,gBAAgB7zD,EAAGxC,EAAGyC,GAAI0D,GAAI,EAAMC,EAAIvG,EAAEknG,WAAW/mG,GAAIwG,EAAI3G,EAAEknG,WAAWvkG,GAAI8H,EAAIqvF,GAAGvzF,EAAGI,EAAG/D,EAAGyD,EAAGrD,EAAGF,EAAGD,EAAG4B,EAAG,EAAG6B,GAC9R,OAAOtG,EAAE41F,eAAehzF,EAAG6H,EAAEwyB,MAAOxyB,EAAEptC,QAExC,IAAIm2I,GAAK,CAAEt8E,WAAYniD,GAAIoiD,YAAa,MAAOuO,WAAY6tE,IAC3D,SAASE,GAAG7zG,EAAGC,GACb,IAAIG,EAAI,EAAGE,EAAIN,EAAEnhC,OAAQ0hC,EAAI,EAC7B,KAAOH,EAAIE,GACTC,EAAImC,KAAK7c,OAAOua,EAAIE,GAAK,GAAIN,EAAEO,GAAKN,EAAKG,EAAIG,EAAI,EAAID,EAAIC,EAC3D,OAAOD,EAET,SAASwzG,GAAG9zG,EAAGC,GACb,IAAIG,EAAI,EAAGE,EAAIN,EAAEnhC,OAAQ0hC,EAAI,EAC7B,KAAOH,EAAIE,GACTC,EAAImC,KAAK7c,OAAOua,EAAIE,GAAK,GAAIN,EAAEO,IAAMN,EAAKG,EAAIG,EAAI,EAAID,EAAIC,EAC5D,OAAOD,EAET,SAASyzG,GAAG/zG,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAIhG,GAAEk8B,kBAAkB,QAAS94B,EAAIG,GACzC,IAAK,IAAI0C,EAAI,EAAGA,EAAI7C,IAAK6C,EAAG,CAC1B,IAAIC,EAAIlD,EAAErJ,MAAMsM,EAAI3C,GAAI2C,EAAI,GAAK3C,GAAI8C,EAAIH,EAAI1C,EAC7C,IAAK,IAAIsE,EAAI,EAAGA,EAAItE,IAAKsE,EACvB7B,EAAEI,EAAIyB,GAAW,SAAN9B,EAAe8wG,GAAG3wG,EAAGjD,EAAG4E,EAAIzB,IAAM0wG,GAAG5wG,EAAGjD,EAAG4E,EAAIzB,IAE9D,OAAOJ,EAET,SAASgxG,GAAGh0G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKsoD,eAAgB/nD,EAAG9iC,OAAQslC,GAAM9C,GAAMsoD,KAAMvlD,GAAM1C,EAAG2C,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQ2lC,EAAI2wG,GAAG9wG,EAAGC,EAAG3C,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAI96B,GACzN,OAAO5C,EAAE41F,eAAejzF,EAAE+6B,MAAO,QAAS16B,GAE5C,IAAI6wG,GAAK,CAAE38E,WAAYjiD,GAAIkiD,YAAa,MAAOuO,WAAYkuE,IAC3D,SAASE,GAAGl0G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKihD,UAAW3gD,EAAG4gD,EAAG3gD,EAAGH,EAAG2C,GAAM9C,EACnE01F,GAAE,CAACr1F,EAAGC,EAAGwC,GAAI,UACb,IAAIC,EAAI1C,EAAEw9B,MAAMj/D,OAAQokC,EAAI7C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ2lC,EAAIhD,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQonC,EAAIjI,GAAG2D,EAAE88B,MAAOt6B,EAAEs6B,OAAQ52B,EAAIzJ,GAAEu9B,oBAAoBv9B,GAAEi+B,cAAc16B,EAAEu9B,OAAQj5B,GAAI6B,EAAI,EAAGC,EAAU,IAAN3D,GAAWA,EAAI,GAAwB,IAAnBzC,EAAEu9B,MAAMj/D,OAAe,EAAIm+B,GAAEi+B,cAAc16B,EAAEu9B,MAAMnnC,MAAM,IACrS,IAAK,IAAIoQ,EAAI,EAAGA,EAAI9D,EAAEpkC,OAAQkoC,IAC5B,IAAK,IAAI8D,EAAI,EAAGA,EAAIlE,EAAGkE,IACZ,IAAT5H,EAAE8D,GAAWN,EAAEC,KAAOxD,EAAE6D,GAAKN,EAAEC,KAAOtD,EAAE2D,GAC5C,OAAO3G,EAAE41F,eAAez1F,EAAEu9B,MAAOj5B,EAAG4B,GAEtC,IAAI0tG,GAAK,CAAE78E,WAAY/hD,GAAIgiD,YAAa,MAAOuO,WAAYouE,IACvDE,GAAKp3H,GAAEw7F,gBACP67B,GAAKr3H,GAAEs7F,WACPg8B,GAAK1W,GAAGnoH,GAAKuqB,GAAMA,GAAK,EAAIq0G,GAAKr0G,EAAIo0G,IAAM1xG,KAAK7d,IAAImb,GAAK,IACzDu0G,GAAK,CAAEj9E,WAAY7hD,GAAI8hD,YAAa,MAAOuO,WAAYwuE,IACvDE,GAAK5W,GAAG/nH,GAAKmqB,GAAMA,EAAI,GAAK,EAAIA,EAAI,EAAI,EAAI,GAC5Cy0G,GAAK,CAAEn9E,WAAYzhD,GAAI0hD,YAAa,MAAOuO,WAAY0uE,IACvDE,GAAK9W,GAAG7nH,GAAKiqB,GAAM0C,KAAKnM,IAAIyJ,IAC5B20G,GAAK,CAAEr9E,WAAYvhD,GAAIwhD,YAAa,MAAOuO,WAAY4uE,IACvDE,GAAKhX,GAAG3nH,GAAK+pB,GAAM0C,KAAKjM,KAAKuJ,IAC7B60G,GAAK,CAAEv9E,WAAYrhD,GAAIshD,YAAa,MAAOuO,WAAY8uE,IACvDE,GAAK,sBACLC,GAAKryG,KAAKrY,IAAIyqH,IAAM,EACpBE,GAAKpX,GAAGrnH,GAAKypB,IACf,IAA+CO,EAA3CN,EAAKD,GAAK+0G,GAAI30G,EAAIJ,EAAI+0G,GAAIz0G,EAAIoC,KAAK7d,IAAImb,GAC3C,OAAWO,EAAJH,EAAQE,EAAIL,EAASD,EAAQ0C,KAAKrY,IAAI,EAAIiW,GAAIC,IAEnD00G,GAAK,CAAE39E,WAAY/gD,GAAIghD,YAAa,MAAOuO,WAAYkvE,IAC3D,SAASE,GAAGl1G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAGymD,SAAUxmD,GAAM1C,EAC9Fq1F,GAAE,CAACp1F,GAAI,kBACP,IAAI0C,EAAIjG,GAAEi+B,cAAcl4B,GAAIG,EAAI,CAAC,CAAC,EAAG,IACrCA,EAAEsH,QAAQxH,GACV,IAAK,IAAI6I,EAAI,EAAI9I,EAAElkC,OAAQgtC,EAAItL,EAAEu9B,MAAMj/D,SAAUgtC,EAC/C3I,EAAEsH,KAAK,CAAC,EAAG,IACb,IAAIpH,EAAI4uG,GAAGlsE,WAAW,CAAEvI,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE6jB,SAAUtmD,EAAGioD,cAAe,KAAQtmD,EAAI7nB,GAAE8+F,YAAY14E,EAAE06B,MAAO/6B,EAAGE,GAAG,GAAQwD,EAAIzpB,GAAE2+F,YAAY92E,EAAEhmC,OAAQkkC,EAAElkC,QAAQ,GAAQ6nC,EAAI1pB,GAAEg/F,oBAAoB54E,EAAE06B,MAAO/6B,EAAGE,GAAG,GAAQ4H,EAAIi6F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGzG,GAAKvmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQuG,EAAI40F,GAAG,CAAEziE,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMvxD,KAAQmF,EAAIk5F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGuB,GAAKvuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAC/Z,OAAOtG,EAAE88F,8BAA8B95F,GAAIhD,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8B9xF,GAAIQ,EAErH,IAAIupG,GAAK,CAAE79E,WAAY7gD,GAAI8gD,YAAa,MAAOuO,WAAYovE,IAC3D,SAASE,GAAGp1G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6kD,QAASvkD,EAAG7iC,OAAQ8iC,EAAG+iE,WAAYvgE,EAAGuqD,aAActqD,GAAM/C,EAChG,GAAuB,IAAnB8C,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,+CACVG,EAAE+6B,OACV,GAAuB,IAAnBx9B,EAAEw9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,2CACVtC,EAAEw9B,OACV,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,0CACVrC,EAAEu9B,OACV,GAAuB,IAAnB96B,EAAE86B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,iDACVI,EAAE86B,OACV,IAAI76B,EAAI7C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQ2lC,EAAIhD,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQonC,EAAIzE,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,IAAKgpC,EAAGC,EAAGC,EAAGI,EAAG8D,GAAK4vF,GAAGx3F,EAAG3C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOn6B,EAAG3C,EAAE88B,MAAOj6B,EAAGyB,GACpM,MAAO,CAACzE,EAAE41F,eAAetvF,EAAGpG,EAAE+8B,MAAO52B,GAAIrG,EAAE41F,eAAe,CAACtvF,EAAE,IAAKnG,EAAE88B,MAAO12B,GAAIvG,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,OAAQ,IAAIqiC,WAAW6F,EAAEmsB,IAAKpoB,GAAMqnB,OAAOrnB,MAAO1K,EAAE41F,eAAe,CAACnrF,EAAEhsC,QAASyhC,EAAE+8B,MAAO,IAAI9oB,WAAW1J,KAErN,IAAIwqG,GAAK,CAAE/9E,WAAY3gD,GAAI4gD,YAAa,MAAOuO,WAAYsvE,IAC3D,SAASE,GAAGt1G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK8jE,aAAcxjE,EAAGi+C,WAAYh+C,EAAGgzB,SAAUxwB,GAAM9C,EACtF,GAAuB,IAAnBK,EAAEw9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,gEACVtC,EAAEw9B,OACV,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,8DACVrC,EAAEu9B,OACV,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,sDAAsDG,EAAE+6B,OAC1E,IAAI96B,EAAIowB,MAAMwB,KAAKx0B,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASwlC,EAAI7C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQylC,EAAIkwB,MAAMwB,KAAKx0B,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,SAAU2lC,EAAGyB,EAAG4B,GAAKk0F,GAAG13F,EAAG3C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOr6B,EAAGE,GACtK,MAAO,CAAC9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAAIhD,EAAE41F,eAAe,CAACvvF,EAAE5nC,QAASkkC,EAAEs6B,MAAO,IAAI9oB,WAAW9N,KAEhG,IAAI8uG,GAAK,CAAEj+E,WAAYzgD,GAAI0gD,YAAa,MAAOuO,WAAYwvE,IAC3D,SAASE,GAAGx1G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,GAAIK,EAAEw9B,MAAMj/D,OAAS,EACnB,MAAM,IAAI+jC,MAAM,6DAClB,GAAuB,IAAnBrC,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,4DACRrC,EAAEu9B,OACZ,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,gEACRG,EAAE+6B,OACZ,GAAIv9B,EAAEu9B,MAAM,KAAO/6B,EAAE+6B,MAAM,GACzB,MAAM,IAAIl7B,MAAM,iDAClB,IAAII,EAAI5C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQwlC,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAS2lC,EAAGyB,GAAKg2F,GAAG73F,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAGC,GAAG,GAC9I,OAAO9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAEtC,IAAIqyG,GAAK,CAAEn+E,WAAYvgD,GAAIwgD,YAAa,MAAOuO,WAAY0vE,IAC3D,SAASE,GAAG11G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,GAAIK,EAAEw9B,MAAMj/D,OAAS,EACnB,MAAM,IAAI+jC,MAAM,6DAClB,GAAuB,IAAnBrC,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,2DACTrC,EAAEu9B,OACX,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,+DACTG,EAAE+6B,OACX,GAAIv9B,EAAEu9B,MAAM,KAAO/6B,EAAE+6B,MAAM,GACzB,MAAM,IAAIl7B,MAAM,iDAClB,IAAII,EAAI5C,EAAEmb,KAAKp7C,IAAImgC,EAAEi/B,QAAQ9hE,OAAQwlC,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAS2lC,EAAGyB,GAAKg2F,GAAG73F,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAGC,GAC3I,OAAO9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAEtC,IAAIuyG,GAAK,CAAEr+E,WAAYrgD,GAAIsgD,YAAa,MAAOuO,WAAY4vE,IAC3D,SAASE,GAAG51G,GACV,IAA0Q6K,GAApQ0yB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw4D,cAAej4D,EAAGk4D,aAAc11D,EAAGuqD,aAActqD,GAAM/C,GAAMy4D,YAAaz1D,GAAM3C,GAAKg2D,UAAWpzD,EAAGqzD,WAAYnzD,EAAGozD,UAAW3xD,EAAGi6B,QAASr4B,EAAGgwD,WAAY/vD,GAAM1pB,GAAE45E,gBAAgB7zD,EAAGxC,EAAG0C,GAAI0D,GAAI,EAAOI,EAAI3G,EAAEknG,WAAW/mG,GACtQ,OAAQwC,EAAEs6B,OACR,IAAK,OAAQ,CACX,IAAIvyB,EAAI1K,EAAEknG,WAAWvkG,GAAI8G,IAAMzJ,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,GAC3DotC,EAAIqvF,GAAGnzF,EAAG+D,EAAG7H,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGoD,EAAGlD,GAClC,MAEF,IAAK,UAAW,CACd,IAAImE,EAAI1K,EAAEknG,WAAWvkG,GAAI8G,EAAIzJ,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,GACzDotC,EAAIqvF,GAAGnzF,EAAG+D,EAAG7H,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGoD,EAAGlD,GAClC,MAEF,IAAK,QAAS,CACZ,IAAImE,EAAI1K,EAAEknG,WAAWvkG,GAAI8G,EAAIzJ,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,GACzDotC,EAAIqvF,GAAGnzF,EAAG+D,EAAG7H,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGoD,EAAGlD,GAClC,MAEF,IAAK,SAAU,CACb,IAAImE,EAAI1K,EAAEknG,WAAWvkG,GAAI8G,EAAI7M,GAAEw7B,aAAap4B,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,IACxEotC,EAAIqvF,GAAGnzF,EAAG+D,EAAG7H,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGoD,EAAGlD,GAClC,MAEF,QACE,MAAM,IAAI/D,MAAM,oBAAoBG,EAAEs6B,OAE1C,OAAOj9B,EAAE41F,eAAe/yF,EAAG4H,EAAEwyB,MAAOxyB,EAAEptC,QAExC,IAAIo4I,GAAK,CAAEv+E,WAAYngD,GAAIogD,YAAa,MAAOuO,WAAY8vE,IAC3D,SAASE,GAAG91G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM60D,gBAAiB/xD,EAAG4yC,KAAM3yC,GAAM1C,EAAG2C,EAAIjG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI56B,EAAIlmB,GAAEohG,iBAAiB79E,EAAGwC,EAAGE,GAAIG,EAAI,IAAIgwB,MAAM7yB,EAAEu9B,MAAMj/D,QAAQ0mB,KAAK,GAAIsf,EAAItE,EAAEu9B,MAAMnnC,QAC3N,OAAOuM,EAAEgwB,IAAKzsB,IACZ,IAAIC,EAAI,IAAI7B,GACZ6B,EAAEzD,GAAKwD,EACP,IAAIE,EAAIm8F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO/3C,EAAGy6B,KAAMn3B,KACpE,OAAOtD,EAAEH,IAAMwD,EAAGE,IAGtB,IAAIovG,GAAK,CAAEz+E,WAAYjgD,GAAIkgD,YAAa,MAAOuO,WAAYgwE,IACvDE,GAAK,CAAE1+E,WAAY7/C,GAAI8/C,YAAa,MAAOuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,MAChF,IAAM4J,EAAGzJ,GAAMJ,EAAGM,EAAIL,EACtB01F,GAAEv1F,EAAG,UACL,IAAIG,EAAID,EAAEib,KAAKp7C,IAAIigC,EAAEm/B,QAAQ9hE,OAAQslC,EAAI,IAAI+R,aAAavU,EAAE1hC,QAC5D,IAAK,IAAIokC,EAAI,EAAGA,EAAI1C,EAAE1hC,SAAUokC,EAAG,CACjC,IAAIC,EAAI3C,EAAE0C,GACVF,EAAEE,GAAKC,EAAIA,EAEb,MAAO,CAAEq8B,OAAQj/B,EAAE0mC,MAAMjkC,EAAG3C,EAAE09B,MAAO19B,EAAEi9B,OAAQS,MAAO19B,EAAE09B,MAAOT,MAAOj9B,EAAEi9B,SAEtE44E,GAAKrY,GAAG7lH,GAAI,CAACioB,EAAGC,KAClB,IAAIG,EAAIH,EACR,OAAOlX,MAAMiX,GAAKqwD,IAAMrwD,EAAI,EAAI,EAAII,EAAEylD,QAEpCqwD,GAAK,CAAE5+E,WAAYv/C,GAAIw/C,YAAa,MAAOuO,WAAYmwE,IAC3D,SAASE,GAAGn2G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG0nC,IAAKznC,EAAG87B,QAAS77B,EAAG0yD,UAAWzyD,EAAG0yD,QAASxyD,EAAGyyD,aAAchxD,EAAGixD,YAAarvD,EAAGsvD,eAAgBrvD,GAAMpG,EAC9Kq1F,GAAEp1F,EAAG,gBACL,IAAyKqL,GAAnKoqE,iBAAkBrvE,EAAGsvE,WAAYlvE,EAAGmvE,WAAYrrE,EAAGsrE,UAAWrrE,EAAGsrE,cAAevsE,EAAGsxC,MAAO/vC,EAAGq/B,IAAK/+B,EAAGozB,QAASnzB,GAAMrU,GAAGg9E,UAAU/zE,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,EAAGC,GACrK,GAAImE,EACFe,EAAIk5F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,UACpD,GAAI+D,GAAKjB,EAAG,CACf7M,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yCAAyC0hC,EAAEu9B,MAAMj/D,QACrF,IAAIgtC,EAAIvU,GAAGs8E,gBAAgBxoE,EAAGM,EAAGC,GAAII,EAAI+2F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO/vC,EAAGyyB,KAAMhyB,KACrGD,EAAIk5F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAGkC,GAAKlvB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAAQ3G,EAAE88F,8BAA8BnxF,OAC1F,CACL,IAAIF,EAAIzL,EAAEknG,WAAW/mG,GAAIwL,EAAIsvF,GAAG10F,EAAGkF,EAAGF,EAAGP,GACzCQ,EAAIxL,EAAE41F,eAAejvF,EAAGgF,EAAEsxB,MAAOtxB,EAAEtuC,QAErC,OAAOmuC,EAET,IAAIwqG,GAAK,CAAE9+E,WAAYr/C,GAAIs/C,YAAa,MAAOuO,WAAYqwE,IAC3D,SAASE,GAAGr2G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwkE,UAAWjkE,EAAGkkE,YAAa1hE,EAAG2hE,QAAS1hE,EAAG83B,SAAU73B,EAAG0hE,SAAUzhE,EAAG0hE,uBAAwBxhE,GAAM9C,GAAKib,KAAM1W,EAAGggE,WAAYp+D,GAAMxG,EAAIyG,EAAItG,EAAEmb,KAAKp7C,IAAI0kC,EAAE06B,QAAQ9hE,OAAQkpC,EAAIvG,EAAEmb,KAAKp7C,IAAIsmC,EAAE84B,QAAQ9hE,QAASspC,EAAG8D,GAAK0wF,GAAG70F,EAAGC,EAAGpG,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GACzR,MAAO,CAAChD,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,SAAUkoC,GAAI3G,EAAE41F,eAAevvF,EAAEq3B,MAAO,QAASjzB,IAExF,IAAIyrG,GAAK,CAAEh/E,WAAYn/C,GAAIo/C,YAAa,MAAOuO,WAAYuwE,IAC3D,SAASE,GAAGv2G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKmlE,UAAW5kE,GAAMD,GAAK0jD,MAAOjhD,EAAGqiE,UAAWpiE,GAAM/C,EACjG,GAAgB,WAAZ8C,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,oCAClB,GAAuB,IAAnBG,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,sCAAsCG,EAAE+6B,OAC1D,GAAuB,IAAnB96B,EAAE86B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,0CAA0CI,EAAE86B,OAC9D,IAAI76B,EAAI7C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQylC,EAAI9C,EAAEmb,KAAKp7C,IAAI6iC,EAAEu8B,QAAQ9hE,OAAO,IAAK2lC,EAAGyB,EAAG4B,GAAKg1F,GAAGx4F,EAAGC,EAAG3C,GAAImG,EAAI7B,EAAEhmC,OACxG,MAAO,CAACuhC,EAAE41F,eAAe,CAACtvF,EAAG,GAAI,QAAStD,GAAIhD,EAAE41F,eAAe,CAACtvF,GAAI,SAAU7B,GAAIzE,EAAE41F,eAAe,CAAC,GAAI,QAAS,IAAIzhF,WAAW9N,KAElI,IAAI+vG,GAAK,CAAEl/E,WAAYj/C,GAAIk/C,YAAa,MAAOuO,WAAYywE,IAC3D,SAASE,GAAGz2G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwlE,WAAYjlE,GAAMD,GAAK0jD,MAAOjhD,GAAM9C,EACpF,GAAgB,WAAZ8C,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,oCAClB,GAAIrC,GAAK,EACP,MAAM,IAAIqC,MAAM,wCAClB,IAAII,EAAI5C,EAAEmb,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAAQwlC,EAAI04F,GAAG34F,EAAGzC,GAC/C,OAAOH,EAAE41F,eAAejzF,EAAE+6B,MAAO,QAAS76B,GAE5C,IAAIyzG,GAAK,CAAEp/E,WAAY/+C,GAAIg/C,YAAa,MAAOuO,WAAY2wE,IACvDE,GAAK/Y,GAAG/kH,GAAKmnB,GAAM0C,KAAK/I,IAAIqG,IAC5B42G,GAAK,CAAEt/E,WAAYz+C,GAAI0+C,YAAa,MAAOuO,WAAY6wE,IACvDE,GAAKjZ,GAAG7kH,GAAKinB,GAAM0C,KAAK7I,KAAKmG,IAC7B82G,GAAK,CAAEx/E,WAAYv+C,GAAIw+C,YAAa,MAAOuO,WAAY+wE,IAC3D,SAASE,GAAG/2G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKjG,OAAQuG,EAAGukD,QAAStkD,EAAGo2D,QAAS5zD,GAAM9C,GAAMq2D,UAAWtzD,EAAGuzD,WAAYtzD,EAAGuzD,UAAWtzD,EAAG47B,QAAS17B,EAAGqzD,WAAY5xD,GAAM7nB,GAAE45E,gBAAgB7zD,EAAGxC,EAAGD,EAAEw9B,OAAQr3B,GAAI,EAAOC,EAAItG,EAAEknG,WAAW/mG,GAAIoG,EAAIvG,EAAEknG,WAAWvkG,GAAIgE,EAAI3G,EAAEknG,WAAWhnG,GAAIuK,EAAIqvF,GAAGxzF,EAAGC,EAAGrG,EAAEw9B,MAAOj5B,EAAG3B,EAAGD,EAAGD,EAAGI,EAAG2D,EAAGN,GAC/S,OAAOrG,EAAE41F,eAAe11F,EAAEw9B,MAAOjzB,EAAEwyB,MAAOxyB,EAAEptC,QAE9C,IAAIu5I,GAAK,CAAE1/E,WAAYj+C,GAAIk+C,YAAa,MAAOuO,WAAYixE,IAC3D,SAASE,GAAGj3G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+8C,KAAMj6C,GAAMzC,EAC3Eq1F,GAAEp1F,EAAG,QACL,IAAIyC,EAAI+4F,GAAG37F,EAAEknG,WAAW/mG,GAAIwC,GAC5B,OAAO3C,EAAE41F,eAAehzF,EAAE86B,MAAO96B,EAAEq6B,MAAOr6B,EAAEvlC,QAE9C,IAAIy5I,GAAK,CAAE5/E,WAAY/9C,GAAIg+C,YAAa,MAAOuO,WAAYmxE,IAC3D,SAASE,GAAGn3G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2L,EAAG7I,EAAGk0D,OAAQj0D,GAAM1C,EACnFq1F,GAAEp1F,EAAG,QACL,IAAI0C,EAAI7C,EAAEmb,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,QAASylC,EAAGE,GAAK64F,GAAGh5F,EAAG1C,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,EAAGC,GACzE,MAAO,CAAC5C,EAAE41F,eAAe9yF,EAAE46B,MAAO56B,EAAEm6B,MAAOn6B,EAAEzlC,QAAS2iC,EAAE41F,eAAe5yF,EAAE06B,MAAO16B,EAAEi6B,MAAOj6B,EAAE3lC,SAE7F,IAAI25I,GAAK,CAAE9/E,WAAY79C,GAAI89C,YAAa,MAAOuO,WAAYqxE,IAC3D,SAASE,GAAGr3G,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK7X,MAAOoY,EAAG8/D,WAAYt9D,GAAM9C,GAAMqgE,cAAet9D,EAAGu9D,SAAUt9D,EAAG05D,UAAWz5D,EAAGw1D,YAAat1D,GAAMhD,GAAIyE,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,OAAQ/2B,EAAG8D,GAAU,MAALzH,EAAYA,EAAI,CAACqD,EAAGC,GAAIoE,EAAI,CAACjG,EAAGkC,EAAG8D,EAAGlE,GAAIkD,EAAI7M,GAAEm7B,eAAe53B,EAAEu9B,OAAQ1yB,EAAIvB,EAAE,GAAI6B,EAAI7B,EAAE,GAAI8B,EAAI9B,EAAE,GAAI+B,EAAI5O,GAAEm7B,eAAertB,GAAIe,EAAID,EAAE,GAAIG,EAAIH,EAAE,GAAII,EAAIJ,EAAE,GAAIK,EAAIjP,GAAEm8B,uBAAuB54B,EAAE88B,MAAOrgC,GAAEi+B,cAAcnwB,IAC1YmB,EAAE1mB,KAAK2d,GACP,IAAIgJ,EAAI5L,EAAEib,KAAKp7C,IAAIogC,EAAEg/B,QAAQ9hE,OAAQG,EAAI0iC,EAAEib,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,OAC9D,IAAK,IAAI4uC,EAAI,EAAGA,EAAIxH,IAAKwH,EAAG,CAC1B,IAAIG,EAAmB,IAAfzJ,EAAE+6B,MAAM,GAAWlgE,EAAIA,EAAEg2C,SAAa,EAAJvH,EAAW,EAAJA,EAAQ,GACzD,IAAK,IAAIvC,EAAI,EAAGA,EAAI/C,IAAK+C,EACvB,IAAK,IAAI0I,EAAI,EAAGA,EAAI3H,IAAK2H,EACvB,IAAK,IAAIjG,EAAI,EAAGA,EAAI5F,IAAK4F,EAAG,CAC1B,IAAIujB,EAAGC,EAAIvjB,EAAE,GAAKgG,EAAIhG,EAAE,GAAK1C,EAAI,EACjC,GAAU,IAANimB,EACF,SACF,IAAIR,GAAK/iB,EAAE,GAAKgG,EAAIhG,EAAE,GAAK1C,EAAI0C,EAAE,IAAMujB,EAAGP,GAAMhjB,EAAE,GAAKgG,EAAIhG,EAAE,GAAK1C,EAAI0C,EAAE,IAAMujB,EAAGrqB,EAAK4xG,GAAG/nF,EAAG7oB,EAAGzD,GAAIgQ,EAAKqkG,GAAG9nF,EAAI/oB,EAAGxD,GAClH,OAAQD,GACN,IAAK,UACH8sB,EAAIynF,GAAGrrG,EAAGzF,EAAGC,EAAG0E,EAAGM,EAAGC,EAAGU,EAAG4G,EAAIvN,EAAI6G,EAAGrJ,GACvC,MACF,IAAK,WACH4sB,EAAI0nF,GAAGtrG,EAAGzF,EAAGC,EAAG0E,EAAGM,EAAGC,EAAGU,EAAG4G,EAAIvN,EAAI6G,EAAGrJ,GACvC,MACF,QACE,MAAM,IAAIN,MAAM,+DAA+DI,GAEnF,IAAI2L,EAAKtC,EAAIR,EAAI/B,EAAIiC,EAAIyG,EAAIxG,EAAIO,EACjCN,EAAE0C,GAAMmhB,EAEd,OAAOxvB,EAAE01F,eAAelrF,EAAGvK,EAAE88B,MAAOpxB,GAEtC,MAAO,CAAEszB,OAAQj/B,EAAE0mC,MAAM/6B,EAAGnB,EAAGvK,EAAE88B,OAAQS,MAAOv9B,EAAEu9B,MAAOT,MAAO98B,EAAE88B,OAEpE,IAAIo6E,GAAK,CAAEngF,WAAY39C,GAAI49C,YAAa,MAAOuO,WAAYuxE,IAC3D,SAASC,GAAGt3G,EAAGC,EAAIG,GACjB,OAAQA,GACN,IAAK,UACH,OAAOs3G,GAAG13G,EAAGC,GACf,IAAK,OACH,OAAO03G,GAAG33G,EAAGC,GACf,IAAK,UACH,OAAO23G,GAAG53G,EAAGC,GACf,IAAK,WACL,QACE,OAAO43G,GAAG73G,EAAGC,IAGnB,SAASy3G,GAAG13G,EAAGC,GACb,IAAIG,EAAIJ,EACR,GAAII,EAAI,EACN,GAAIH,GAAM,EACRG,EAAI,MACD,CACH,IAAIE,EAAI,EAAIL,EACZG,EAAIE,IAAMF,EAAIE,EAAIoC,KAAKm3C,OAAOz5C,EAAIE,GAAKF,GAAIA,EAAIA,GAAKH,EAAKG,EAAIE,GAAKF,EAAI,OAErE,GAAIA,EAAIH,EAAK,EAChB,GAAIA,GAAM,EACRG,EAAI,MACD,CACH,IAAIE,EAAI,EAAIL,EACZG,GAAKE,EAAIoC,KAAKm3C,MAAMz5C,EAAIE,GAAIF,GAAKH,IAAOG,EAAIE,EAAIF,EAAI,GAExD,OAAOpD,GAAEk7B,MAAM,EAAG93B,EAAGH,EAAK,GAE5B,SAAS03G,GAAG33G,EAAGC,GACb,IAAIG,EAAIJ,EACR,GAAII,EAAI,EACN,GAAIH,GAAM,EACRG,EAAI,MACD,CACH,IAAIE,EAAIL,EAAK,EACbG,GAAKH,GAAMyC,KAAKm3C,OAAOz5C,EAAIE,GAAK,QAE/B,GAAIF,EAAIH,EAAK,EAChB,GAAIA,GAAM,EACRG,EAAI,MACD,CACH,IAAIE,EAAIL,EAAK,EACbG,GAAKH,EAAKyC,KAAKm3C,MAAMz5C,EAAIE,GAE7B,OAAOtD,GAAEk7B,MAAM,EAAG93B,EAAGH,EAAK,GAE5B,SAAS43G,GAAG73G,EAAGC,GACb,OAAOD,EAET,SAAS43G,GAAG53G,EAAGC,GACb,OAAOjD,GAAEk7B,MAAM,EAAGl4B,EAAGC,EAAK,GAE5B,SAAS63G,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACzC,IAAI4B,EAAIzD,EAAI1C,EAAI2C,EAAI1C,EAAI2C,EAAIH,EAAIK,EAChC,OAAO,GAAKH,GAAKA,EAAIhD,GAAM,GAAKiD,GAAKA,EAAI9C,EAAIJ,EAAEyG,GAAK5B,EAEtD,SAAS0yG,GAAGv3G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACzC,IAAI4B,EAAI/D,KAAK3O,MAAMkP,GAAIyD,EAAIhE,KAAK3O,MAAMmP,GACtC,OAAO40G,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGyD,EAAGC,EAAGtD,EAAGyB,GAE3C,SAAS2yG,GAAGx3G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,GACzC,IAAI4B,EAAI/D,KAAK7c,MAAMod,GAAIyD,EAAIhE,KAAK7c,MAAMqd,GAAIyD,EAAIF,EAAI,EAAGM,EAAIL,EAAI,EAAGmE,GAAK9D,EAAI7D,GAAK40G,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGyD,EAAGC,EAAGtD,EAAGyB,IAAM3B,EAAIwD,GAAKoxG,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGyD,EAAGM,EAAG3D,EAAGyB,GAAIiG,GAAK/D,EAAI7D,GAAK40G,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAG2D,EAAGD,EAAGtD,EAAGyB,IAAM3B,EAAIwD,GAAKoxG,GAAG93G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAG2D,EAAGI,EAAG3D,EAAGyB,GACtQ,OAAQ8B,EAAI1D,GAAK4H,GAAK5H,EAAIwD,GAAKqE,EAEjC,SAASitG,GAAG/3G,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK21C,KAAMp1C,GAAMH,GAAKyJ,EAAG9G,GAAM9C,EAC1E01F,GAAE5yF,EAAG,UACL,IAAIC,EAAI1C,EAAEib,KAAKp7C,IAAI4iC,EAAEw8B,QAAQ9hE,QAAU+lG,aAAcvgE,EAAGy1D,YAAax1D,EAAG2hD,QAASzhD,GAAMi5F,GAAGr5F,EAAGzC,EAAGwC,EAAE+6B,MAAO/6B,EAAEs6B,OAC3G,MAAO,CAAC/8B,EAAE01F,eAAe9yF,EAAGH,EAAEs6B,MAAOp6B,GAAI3C,EAAE01F,eAAe,CAAC5yF,EAAEvkC,QAAS,QAASukC,IAEjF,IAAI40G,GAAK,CAAE1gF,WAAYv9C,GAAIw9C,YAAa,MAAOuO,WAAYiyE,IAC3D,SAASE,GAAGj4G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKpgC,MAAO2gC,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC/EyC,EAAI,IAAMA,GAAKxC,EAAEu9B,MAAMj/D,QACvB,IAAImkC,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAI1C,EAAEu9B,MAAM/6B,GAAIG,EAAI,IAAIkwB,MAAMpwB,EAAI,GAAII,EAAI,EAClE,IAAK,IAAIuD,EAAI,EAAGA,EAAI3D,EAAG2D,IACrBA,IAAM5D,IAAMG,EAAEE,KAAO7C,EAAEu9B,MAAMn3B,IAC/B,IAAI9B,EAAI,IAAIuuB,MAAMpwB,GAAGzd,KAAK,GAAIkhB,EAAIlG,EAAEu9B,MAAMnnC,QAC1C8P,EAAE1D,GAAK,EACP,IAAI2D,EAAI,IAAI0sB,MAAMnwB,GAClB,IAAK,IAAI0D,EAAI,EAAGA,EAAID,EAAE7nC,OAAQ8nC,IAAK,CACjC9B,EAAE9B,GAAK4D,EACP,IAAII,EAAI+7F,GAAG,CAAEvlE,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAOt2C,EAAGg5B,KAAMp3B,KACpEC,EAAEC,GAAKm+F,GAAG,CAAEvnE,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ9C,EAAE88F,8BAA8Bn2F,GAEpG,OAAOL,EAET,IAAIwxG,GAAK,CAAE5gF,WAAYr9C,GAAIs9C,YAAa,MAAOuO,WAAYmyE,IAC3D,SAASE,GAAGn4G,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGi3D,WAAYz0D,GAAM9C,GAAMw3D,YAAaz0D,GAAM1C,EACjGq1F,GAAEp1F,EAAG,sBACL,IAAI0C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIH,EAAE+6B,MAAMj/D,OAAQukC,EAAI,GAAIyB,EAAI,GAAI4B,EAAIxD,EAAIC,EAAGwD,EAAI3D,EAC3E,IAAK,IAAIgE,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1B,IAAI8D,EAAIshG,GAAG,CAAE5uE,OAAQ,CAAEymB,MAAOt9C,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAEse,IAAKl9C,EAAI,KACjEL,EAAImE,EAAGhG,EAAE2F,KAAKK,GAEhB,IAAK,IAAI9D,EAAI,EAAGA,EAAI/D,IAAK+D,EAAG,CAC1B,IAAI8D,EAAI7N,GAAEq7B,kBAAkBtxB,EAAG,SAAU+D,EAAI1K,EAAE41F,eAAe,GAAI,QAASnrF,GAAIhB,EAAIo0F,GAAG,CAAE1gE,OAAQ,CAAEv6B,EAAG8H,EAAGM,EAAG1E,GAAK7pB,QAASujB,IAAMgL,EAAI6xF,GAAG,CAAE1/D,OAAQ,CAAE1zB,KAAKhtB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,aAAgB3xB,EAAIg0F,GAAG,CAAEniE,OAAQ,CAAEv6B,EAAGoI,EAAGA,EAAG7K,GAAK1jB,QAASujB,IAAMuL,EAAI0/F,GAAG,CAAE9tE,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM,EAAGC,UAAU,KACtTxyC,EAAEoH,KAAKmB,GAAI9G,EAAE2F,KAAKM,GAAIjG,EAAE2F,KAAKX,GAAIhF,EAAE2F,KAAKY,GAAIvG,EAAE2F,KAAKkB,GAAI7G,EAAE2F,KAAKmB,GAEhE,IAAIhF,EAAIkrG,GAAG,CAAEt0E,OAAQn6B,EAAGvmB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM,KACnD,OAAO9wC,EAAEyT,QAASvR,GAAM3G,EAAE88F,8BAA8Bn2F,IAAKJ,EAE/D,IAAIyxG,GAAK,CAAE9gF,WAAYn9C,GAAIo9C,YAAa,MAAOuO,WAAYqyE,IACvDE,GAAK,CAAClT,GAAI3I,GAAI6I,GAAIE,GAAI/H,GAAIiI,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIG,GAAIE,GAAIM,GAAIE,GAAIG,GAAIE,GAAIxC,GAAI0C,GAAIE,GAAIE,GAAIrK,GAAIuK,GAAI9K,GAAIY,GAAIoK,GAAIxL,GAAI2L,GAAII,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIC,GAAIC,GAAIC,GAAIK,GAAII,GAAIrH,GAAIuH,GAAIxN,GAAIgO,GAAI9N,GAAIgO,GAAI9N,GAAIwO,GAAIG,GAAIC,GAAI1O,GAAIE,GAAI0O,GAAIE,GAAIE,GAAIE,GAAI9O,GAAIE,GAAIhC,GAAI8Q,GAAIpF,GAAIsF,GAAIE,GAAIE,GAAI7J,GAAIrF,GAAIE,GAAIkP,GAAIhP,GAAIkP,GAAIG,GAAIE,GAAIG,GAAIE,GAAIE,GAAIE,GAAI9P,GAAIgQ,GAAIE,GAAIE,GAAIG,GAAIE,GAAIE,GAAIE,GAAI3Q,GAAI6Q,GAAIG,GAAIK,GAAIlR,GAAIE,GAAImR,GAAIG,GAAIG,GAAIvR,GAAIyR,GAAII,GAAIE,GAAIE,GAAIG,GAAI3N,GAAInE,GAAIgS,GAAIE,GAAIE,GAAIE,GAAI3V,GAAIuP,GAAIsG,GAAInO,GAAIE,GAAIG,GAAIgO,GAAIE,GAAIE,GAAIE,GAAIE,GAAIC,GAAIE,GAAI/Q,GAAIiR,GAAIK,GAAIE,GAAII,GAAI1R,GAAI4R,GAAIE,GAAIE,GAAI9R,GAAI4N,GAAIsE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAI9S,GAAI+S,GAAI7S,GAAIG,GAAI4S,GAAIE,GAAIE,GAAIE,GAAIE,GAAI3S,GAAIuH,GAAIsL,GAAIE,GAAIE,GAAIE,GAAIE,GAAIK,GAAIxX,GAAI+X,GAAIE,GAAIE,GAAI1G,IACtrB,IAAK,IAAI1xG,KAAKq4G,GACZ7lH,GAAGwN,GACL,IAAIxB,GAAK,GACT2B,EAAG3B,GAAI,CAAE85G,iBAAkB,IAAMC,GAAIC,wBAAyB,IAAMC,GAAIC,8BAA+B,IAAMC,GAAIC,mCAAoC,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,mCAAoC,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,iBAAkB,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,wBAAyB,IAAMC,GAAIC,yBAA0B,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,mBAAoB,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,2BAA4B,IAAMC,GAAIC,uBAAwB,IAAMC,GAAIC,eAAgB,IAAMC,GAAIC,0BAA2B,IAAMC,GAAIC,iCAAkC,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,aAAc,IAAMC,GAAIC,gCAAiC,IAAMC,GAAIC,kCAAmC,IAAMC,GAAIC,qBAAsB,IAAMC,GAAIC,uBAAwB,IAAMC,GAAIC,aAAc,IAAMx0C,GAAIy0C,mCAAoC,IAAMC,GAAIC,8BAA+B,IAAMC,GAAIC,cAAe,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,sBAAuB,IAAMC,GAAIC,YAAa,IAAMC,GAAIC,0BAA2B,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,yBAA0B,IAAMC,GAAIC,kCAAmC,IAAMC,GAAIC,kBAAmB,IAAMC,GAAIC,oBAAqB,IAAMC,GAAIC,gBAAiB,IAAMC,GAAIC,oBAAqB,IAAMvkD,KACx4C,IA+BIwkD,GAIAC,GAIAC,GAvCAC,GAAK,GACLC,GAAK,CAAEj4D,OAAO,EAAOk4D,WAAW,EAAOC,oBAAoB,EAAOC,uBAAuB,EAAOvzD,OAAO,EAAOwzD,SAAS,EAAOC,8BAA8B,GAChK,SAASvoH,GAAGoK,EAAGC,GACb49G,GAAG79G,GAAKC,EAEV,SAASm+G,GAAGp+G,EAAGC,GACb,KAAMD,KAAK69G,KAAa,MAAN59G,EAAY,CAC5B,IAAIK,EAAI+9G,GAAGr+G,EAAGC,GACd,GAAU,OAANK,EAGF,OAAO6Q,QAAQ9mB,IAAI,0CAA2C2V,GAAI,KAFlE69G,GAAG79G,GAAKM,EAIZ,IAAIF,EAAIy9G,GAAG79G,GACX,OAAY,MAALI,GAAaA,EAAEk+G,wBAA0BT,GAAG79G,GAAIo+G,GAAGp+G,KAAOI,EAAEm+G,QAAQn+G,EAAEo+G,YAAap+G,EAAEm+G,QAAQn+G,EAAEq+G,cAAer+G,EAAEm+G,QAAQn+G,EAAEs+G,OAAQt+G,EAAEm+G,QAAQn+G,EAAEu+G,QAASv+G,EAAEm+G,QAAQn+G,EAAEw+G,qBAAsBx+G,EAAEm+G,QAAQn+G,EAAEy+G,iBAAkBz+G,EAAE0+G,OAAO1+G,EAAE2+G,cAAe3+G,EAAE0+G,OAAO1+G,EAAE4+G,WAAY5+G,EAAE6+G,SAAS7+G,EAAE8+G,MAAOrB,GAAG79G,IAExS,SAASm/G,GAAGn/G,GACV,IAAK1b,KAAIuxC,QAAQ,cAA0C,oBAAnBw8C,iBAAwC,IAANryE,EACxE,OAAO,IAAIqyE,gBAAgB,IAAK,KAClC,GAAuB,oBAAZ9jE,SACT,OAAOA,SAASkhD,cAAc,UAChC,MAAM,IAAI7sD,MAAM,0CAElB,SAASy7G,GAAGr+G,EAAGC,GACb,GAAU,IAAND,GAAiB,IAANA,EACb,MAAM,IAAI4C,MAAM,0DAClB,IAAIxC,EAAU,MAANH,EAAak/G,GAAGn/G,GAAKC,EAC7B,OAAOG,EAAEozC,iBAAiB,mBAAqBlzC,IAC7CA,EAAE8+G,wBAAyBvB,GAAG79G,KAC7B,GAAQ1b,KAAIuxC,QAAQ,4BAA8BioF,GAAGK,8BAA+B,GAAc,IAANn+G,EAAUI,EAAE0xE,WAAW,QAASgsC,KAAO19G,EAAE0xE,WAAW,qBAAsBgsC,IAAM19G,EAAE0xE,WAAW,SAAUgsC,IAcxM,SAASuB,GAAGr/G,EAAGC,GACb,MAAO,CAACA,EAAID,GAEd,SAASs/G,GAAGt/G,EAAGC,GACb,OAAOD,EAAIC,EAEb,SAASs/G,GAAGv/G,GACV,IAAIC,EAAKjD,GAAEi+B,cAAcj7B,GAAII,EAAIsC,KAAK3jB,KAAKkhB,EAAK,GAChD,OAAOjD,GAAEk+B,oBAAoB96B,GAE/B,SAASo/G,GAAGx/G,EAAGC,GACb,MAAO,CAACyC,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKkhB,EAAK,IAAKyC,KAAK3W,IAAI,EAAG2W,KAAK3jB,KAAKihB,EAAI,KAEpE,SAASy/G,GAAGz/G,EAAGC,GACb,IAAKG,EAAGE,GAAKk/G,GAAGx/G,EAAGC,GACnB,OAAOG,EAAIE,EAAI,EAEjB,SAASo/G,GAAG1/G,EAAGC,GACb,IAAWK,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,EAAGC,EAAlCtG,EAAIJ,EACR,OAA0C,IAAnC1b,KAAIq7H,UAAU,kBAA0Br/G,EAAIF,EAAEw/G,KAAMr/G,EAAIH,EAAEy/G,KAAM98G,EAAI3C,EAAE0/G,QAAS98G,EAAI5C,EAAE2/G,QAAS98G,EAAI7C,EAAE4/G,IAAK58G,EAAI,EAAGyB,EAAI,EAAG4B,EAAIrG,EAAE6/G,WAAYv5G,EAAItG,EAAE8/G,MAAOh9G,EAAI9C,EAAE+/G,QAAU7/G,EAAIN,EAAEogH,KAAM7/G,EAAIP,EAAEogH,KAAMr9G,EAAI/C,EAAEogH,KAAMp9G,EAAI5C,EAAEggH,KAAMn9G,EAAIjD,EAAEogH,KAAMh9G,EAAI,EAAGyB,EAAI,EAAG4B,EAAU,MAANxG,EAAaA,EAAGogH,eAAiB,KAAM35G,EAAI1G,EAAEkgH,MAAOh9G,EAAIlD,EAAEogH,MAAO,CAAEE,oBAAqBhgH,EAAGigH,wBAAyBhgH,EAAGigH,8BAA+Bz9G,EAAG09G,0BAA2Bz9G,EAAG09G,mBAAoBz9G,EAAG09G,sBAAuBz9G,EAAG09G,0BAA2Bx9G,EAAGy9G,mBAAoBh8G,EAAGi8G,qBAAsBr6G,EAAGs6G,iBAAkBr6G,GAErkB,SAASyyG,GAAGn5G,EAAGC,GACb,IAAIG,EAAIH,IACR,OAAO3b,KAAIuxC,QAAQ,UAAYmrF,GAAGhhH,GAAII,EAExC,SAAS4gH,GAAGhhH,GACV,IAAIC,EAAKD,EAAEihH,WACX,GAAIhhH,IAAOD,EAAEkhH,SACX,MAAM,IAAIt+G,MAAM,gBAAkB+4G,GAAG37G,EAAGC,KAvC5C,SAAUD,GACRA,EAAEA,EAAEmhH,MAAQ,GAAK,QAASnhH,EAAEA,EAAEohH,aAAe,GAAK,gBADpD,CAEG1D,KAAOA,GAAK,KAEf,SAAU19G,GACRA,EAAEA,EAAEqhH,OAAS,GAAK,SAAUrhH,EAAEA,EAAEshH,OAAS,GAAK,SAAUthH,EAAEA,EAAEuhH,OAAS,GAAK,SAAUvhH,EAAEA,EAAEwhH,SAAW,GAAK,WAD1G,CAEG7D,KAAOA,GAAK,KAEf,SAAU39G,GACRA,EAAEA,EAAEyhH,iBAAmB,GAAK,mBAAoBzhH,EAAEA,EAAE0hH,iBAAmB,GAAK,mBAAoB1hH,EAAEA,EAAE2hH,yBAA2B,GAAK,2BAA4B3hH,EAAEA,EAAE4hH,mBAAqB,GAAK,qBAAsB5hH,EAAEA,EAAE6hH,mBAAqB,GAAK,qBADpP,CAEGjE,KAAOA,GAAK,KA+Bf,IAAIkE,GAAK,QACLC,GAAK,MACT,SAAS1I,GAAGr5G,GACV,SAAU1b,KAAIuxC,QAAQ,iCAAyC,IAAN71B,GAAW8hH,GAAKp/G,KAAK5nB,IAAIklB,IAAM0C,KAAK5nB,IAAIklB,GAAK+hH,IAExG,SAASpG,GAAG37G,EAAGC,GACb,OAAQA,GACN,KAAKD,EAAEkhH,SACL,MAAO,WACT,KAAKlhH,EAAEgiH,aACL,MAAO,eACT,KAAKhiH,EAAEiiH,cACL,MAAO,gBACT,KAAKjiH,EAAEkiH,kBACL,MAAO,oBACT,KAAKliH,EAAEmiH,8BACL,MAAO,gCACT,KAAKniH,EAAEoiH,cACL,MAAO,gBACT,KAAKpiH,EAAEqiH,mBACL,MAAO,qBACT,QACE,MAAO,sBAAsBpiH,GAGnC,SAASs6G,GAAGv6G,EAAGC,GACb,OAAOqiH,GAAGtiH,EAAG,IAAMA,EAAEuiH,aAAatiH,GAAK,cAAgBA,EAAK,oCAE9D,SAASk6G,GAAGn6G,EAAGC,GACb,IAAIG,EAAIkiH,GAAGtiH,EAAG,IAAMA,EAAEwiH,aAAaxiH,EAAEyiH,eAAgB,wCACrD,GAAItJ,GAAGn5G,EAAG,IAAMA,EAAE0iH,aAAatiH,EAAGH,IAAMk5G,GAAGn5G,EAAG,IAAMA,EAAE2iH,cAAcviH,KAAmD,IAA9CJ,EAAE4iH,mBAAmBxiH,EAAGJ,EAAE6iH,gBACjG,MAAM1xG,QAAQ9mB,IAAI2V,EAAE8iH,iBAAiB1iH,IAAK,IAAIwC,MAAM,oCACtD,OAAOxC,EAET,SAASm5G,GAAGv5G,EAAGC,GACb,IAAIG,EAAIkiH,GAAGtiH,EAAG,IAAMA,EAAEwiH,aAAaxiH,EAAE+iH,iBAAkB,0CACvD,GAAI5J,GAAGn5G,EAAG,IAAMA,EAAE0iH,aAAatiH,EAAGH,IAAMk5G,GAAGn5G,EAAG,IAAMA,EAAE2iH,cAAcviH,IAAK9b,KAAInkB,IAAI,uBAC/E,OAAOigC,EACT,IAAkD,IAA9CJ,EAAE4iH,mBAAmBxiH,EAAGJ,EAAE6iH,gBAC5B,MAAMjG,GAAG38G,EAAID,EAAE8iH,iBAAiB1iH,IAAK,IAAIwC,MAAM,sCACjD,OAAOxC,EAET,IA2JI4iH,GACAC,GA5JAC,GAAK,2BACT,SAAStG,GAAG58G,EAAGC,GACb,IAAIG,EAAI8iH,GAAGC,KAAKljH,GAChB,GAAS,MAALG,EAEF,OADA+Q,QAAQ9mB,IAAI,wCAAwC4V,QAAOkR,QAAQ9mB,IAAI2V,GAGzE,IAAIM,GAAKF,EAAE,GAAIG,EAAIP,EAAE7H,MAAM,MACzB4K,EAAIxC,EAAE1hC,OAAO4lC,WAAW5lC,OAAS,EAAGmkC,EAAIzC,EAAE2yB,IAAI,CAACzsB,EAAGC,IAAM1J,GAAE89B,UAAUp0B,EAAI,GAAGjC,WAAY1B,GAAK0D,GAAIxD,EAAI,EACtG,IAAK,IAAIwD,EAAI,EAAGA,EAAIzD,EAAEnkC,OAAQ4nC,IAC5BxD,EAAIP,KAAK3W,IAAIiX,EAAEyD,GAAG5nC,OAAQokC,GAC5B,IAAIC,EAAIF,EAAErM,MAAM,EAAG2J,EAAI,GAAI8C,EAAIJ,EAAErM,MAAM2J,EAAI,EAAGA,GAAIuE,EAAI7B,EAAErM,MAAM2J,GAC9D6Q,QAAQ9mB,IAAI6Y,EAAEmzB,KAAK,OAChBllB,QAAQ9mB,IAAI4V,EAAG9H,MAAM,MACvB,IAAKgZ,QAAQ9mB,IAAI,MAAM2S,GAAE89B,SAAS13B,EAAE,GAAIH,GAAM,iEAAkEkO,QAAQ9mB,IAAIwa,EAAEwxB,KAAK,OAGtI,SAASsjF,GAAG35G,GACV,OAAOsiH,GAAGtiH,EAAG,IAAMA,EAAE05G,gBAAiB,kCAExC,SAASgD,GAAG18G,EAAGC,GACb,GAAIk5G,GAAGn5G,EAAG,IAAMA,EAAEy8G,YAAYx8G,KAAO3b,KAAInkB,IAAI,yBAAuE,IAA7C6/B,EAAEojH,oBAAoBnjH,EAAID,EAAEqjH,aACjG,MAAMlyG,QAAQ9mB,IAAI2V,EAAEsjH,kBAAkBrjH,IAAM,IAAI2C,MAAM,+CAE1D,SAAS46G,GAAGx9G,EAAGC,GACb,GAAIk5G,GAAGn5G,EAAG,IAAMA,EAAEu9G,gBAAgBt9G,KAAuD,IAAjDD,EAAEojH,oBAAoBnjH,EAAID,EAAEujH,iBAClE,MAAMpyG,QAAQ9mB,IAAI2V,EAAEsjH,kBAAkBrjH,IAAM,IAAI2C,MAAM,qCAE1D,SAASm3G,GAAG/5G,EAAGC,GACb,IAAIG,EAAIkiH,GAAGtiH,EAAG,IAAMA,EAAEwjH,eAAgB,gCACtC,OAAOrK,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE0jH,aAActjH,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAE2jH,WAAW3jH,EAAE0jH,aAAczjH,EAAID,EAAE4jH,cAAexjH,EAErH,SAASy5G,GAAG75G,EAAGC,GACb,IAAIG,EAAIkiH,GAAGtiH,EAAG,IAAMA,EAAEwjH,eAAgB,gCACtC,OAAOrK,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE6jH,qBAAsBzjH,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAE2jH,WAAW3jH,EAAE6jH,qBAAsB5jH,EAAID,EAAE4jH,cAAexjH,EAErI,SAASy6G,KACP,OAA0C,IAAnCv2H,KAAIq7H,UAAU,iBAAyB,EAAI,EAEpD,SAAS1F,GAAGj6G,GACV,OAAOsiH,GAAGtiH,EAAG,IAAMA,EAAEg6G,gBAAiB,kCAExC,SAAS9gD,GAAGl5D,EAAGC,GACb,IAAIG,EAAI9b,KAAIq7H,UAAU,0BACtB,GAAI3/G,GAAK,GAAKC,GAAM,EAAG,CACrB,IAAIK,EAAI,IAAIN,KAAKC,KACjB,MAAM,IAAI2C,MAAM,0BAA4BtC,EAAI,gBAElD,GAAIN,EAAII,GAAKH,EAAKG,EAAG,CACnB,IAAIE,EAAI,IAAIN,KAAKC,KAAOM,EAAI,IAAIH,KAAKA,KACrC,MAAM,IAAIwC,MAAM,0BAA4BtC,EAAI,qDAAuDC,EAAI,MAG/G,SAASk5G,GAAGz5G,GACV,OAAOsiH,GAAGtiH,EAAG,IAAMA,EAAEw5G,oBAAqB,sCAE5C,SAASP,GAAGj5G,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC7B,IAAIC,EAAIjD,EAAE8jH,kBAAkB7jH,EAAIG,GAChC,OAAc,IAAP6C,IAAoBk2G,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE0jH,aAAcpjH,IAAK64G,GAAGn5G,EAAG,IAAMA,EAAE+jH,oBAAoB9gH,EAAG1C,EAAGP,EAAEkgH,OAAO,EAAOn9G,EAAGC,IAAKm2G,GAAGn5G,EAAG,IAAMA,EAAEgkH,wBAAwB/gH,KAAK,GAEtL,SAAS81G,GAAG/4G,EAAGC,EAAIG,GACjB6jH,GAAGjkH,EAAGI,GAAI+4G,GAAGn5G,EAAG,IAAMA,EAAEkkH,cAAclkH,EAAEmkH,SAAW/jH,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAYpkH,IAElG,SAASm9G,GAAGp9G,EAAGC,GACbgkH,GAAGjkH,EAAGC,GAAKk5G,GAAGn5G,EAAG,IAAMA,EAAEkkH,cAAclkH,EAAEmkH,SAAWlkH,IAAMk5G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAY,OAEpG,SAASpJ,GAAGj7G,EAAGC,EAAIG,GACjB,OAAOkiH,GAAGtiH,EAAG,IAAMA,EAAEskH,mBAAmBrkH,EAAIG,GAAI,YAAcA,EAAI,6BAEpE,SAAS26G,GAAG/6G,EAAGC,EAAIG,GACjB,OAAOJ,EAAEskH,mBAAmBrkH,EAAIG,GAElC,SAASy4G,GAAG74G,EAAGC,EAAIG,EAAGE,GACpB64G,GAAGn5G,EAAG,IAAM+4G,GAAG/4G,EAAGC,EAAIK,IAAK64G,GAAGn5G,EAAG,IAAMA,EAAEukH,UAAUnkH,EAAGE,IAExD,SAASm4G,GAAGz4G,GACVm5G,GAAGn5G,EAAG,IAAMA,EAAEwkH,gBAAgBxkH,EAAEykH,YAAa,OAAQtL,GAAGn5G,EAAG,IAAMA,EAAE0kH,SAAS,EAAG,EAAG1kH,EAAEwyE,OAAOlpC,MAAOtpC,EAAEwyE,OAAOnpC,SAAU8vE,GAAGn5G,EAAG,IAAMA,EAAE2kH,QAAQ,EAAG,EAAG3kH,EAAEwyE,OAAOlpC,MAAOtpC,EAAEwyE,OAAOnpC,SAE5K,SAASsvE,GAAG34G,EAAGC,EAAIG,GACjB+4G,GAAGn5G,EAAG,IAAMA,EAAEwkH,gBAAgBxkH,EAAEykH,YAAarkH,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAE4kH,qBAAqB5kH,EAAEykH,YAAazkH,EAAE6kH,kBAAmB7kH,EAAEqkH,WAAYpkH,EAAI,IAE7I,SAASi9G,GAAGl9G,EAAGC,GACbk5G,GAAGn5G,EAAG,IAAMA,EAAEwkH,gBAAgBxkH,EAAEykH,YAAaxkH,IAAMk5G,GAAGn5G,EAAG,IAAMA,EAAE4kH,qBAAqB5kH,EAAEykH,YAAazkH,EAAE6kH,kBAAmB7kH,EAAEqkH,WAAY,KAAM,IAEhJ,SAAS/G,GAAGt9G,GACV,IAAIC,EAAKD,EAAE8kH,uBAAuB9kH,EAAEykH,aACpC,GAAIxkH,IAAOD,EAAE+kH,qBACX,MAAM,IAAIniH,MAAM,8BAAgC63G,GAAGz6G,EAAGC,IAE1D,SAASw6G,GAAGz6G,EAAGC,GACb,OAAQA,GACN,KAAKD,EAAEglH,kCACL,MAAO,oCACT,KAAKhlH,EAAEilH,0CACL,MAAO,4CACT,KAAKjlH,EAAEklH,kCACL,MAAO,oCACT,KAAKllH,EAAEmlH,wBACL,MAAO,0BACT,QACE,MAAO,iBAAiBllH,GAG9B,SAASqiH,GAAGtiH,EAAGC,EAAIG,GACjB,IAAIE,EAAI64G,GAAGn5G,EAAG,IAAMC,KACpB,GAAS,MAALK,EACF,MAAM,IAAIsC,MAAMxC,GAClB,OAAOE,EAET,SAAS2jH,GAAGjkH,EAAGC,GACb,IAAIG,EAAIJ,EAAEolH,iCAAmC,EAAG9kH,EAAIL,EAAKD,EAAEmkH,SAC3D,GAAI7jH,EAAIN,EAAEmkH,UAAY7jH,EAAIF,EAAG,CAC3B,IAAIG,EAAI,2BAA2BH,KACnC,MAAM,IAAIwC,MAAM,0BAA0BrC,OAG9C,SAAS85G,GAAGr6G,EAAGC,EAAK,GAClB,OAAOjD,GAAEi+B,cAAcj7B,EAAErJ,MAAM,EAAGqJ,EAAEnhC,OAASohC,IAE/C,SAASk7G,GAAGn7G,GACV,GAAiB,IAAbA,EAAEnhC,OACJ,MAAM+jC,MAAM,wDACd,MAAO,CAAC5C,EAAEnhC,OAAS,EAAImhC,EAAEA,EAAEnhC,OAAS,GAAK,EAAGmhC,EAAEA,EAAEnhC,OAAS,IAE3D,SAASw8I,GAAGr7G,GACV,IAAIC,EAAK,CAAC,EAAG,EAAG,GAChB,OAAoB,IAAbD,EAAEnhC,QAA6B,IAAbmhC,EAAEnhC,QAAyB,IAATmhC,EAAE,KAAaC,EAAK,CAACo6G,GAAGr6G,MAAOm7G,GAAGn7G,KAAMC,EAErF,SAASs7G,GAAGv7G,EAAGC,GAAK,GAClB,IAAIG,EAAI9b,KAAIq7H,UAAU,0BAA2Br/G,EAAIhc,KAAIq7H,UAAU,qCACnEr/G,IAAM,KAAShc,KAAIuxC,QAAQ,8CAAgDv1B,EAAIF,EAAI,GAAIH,IAAOG,GAAQ,EAAGE,GAAQ,EAAGN,EAAIA,EAAEkzB,IAAI,CAACjwB,EAAGC,IAAMA,GAAKlD,EAAEnhC,OAAS,EAAIm+B,GAAEy9B,kBAAkBz6B,EAAEkD,IAAMlD,EAAEkD,IAAkB,IAAblD,EAAEnhC,SAAiBmhC,EAAI,CAAC,EAAGA,EAAE,MAAoB,IAAbA,EAAEnhC,SAAiBmhC,EAAIhD,GAAEm+B,aAAan7B,GAAGuzB,UAC5Q,IAAIhzB,EAAIvD,GAAEi+B,cAAcj7B,GAAI+C,EAAI,KAChC/C,EAAEnhC,QAAU,GAAK0hC,GAAKH,EAAI2C,EAAI,CAAC,EAAGxC,GAAkB,IAAbP,EAAEnhC,QAAgBmhC,EAAE,IAAMI,GAAKJ,EAAE,IAAMI,EAAI2C,EAAI/C,EAAiB,IAAbA,EAAEnhC,QAAgBmhC,EAAE,GAAKA,EAAE,IAAMI,GAAKJ,EAAE,IAAMI,EAAI2C,EAAI,CAAC/C,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAmB,IAAbA,EAAEnhC,QAAgBmhC,EAAE,IAAMI,GAAKJ,EAAE,GAAKA,EAAE,IAAMI,EAAI2C,EAAI,CAAC/C,EAAE,GAAIA,EAAE,GAAKA,EAAE,IAAmB,IAAbA,EAAEnhC,QAAgBmhC,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAMI,GAAKJ,EAAE,IAAMI,EAAI2C,EAAI,CAAC/C,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAmB,IAAbA,EAAEnhC,QAAgBmhC,EAAE,IAAMI,GAAKJ,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAMI,IAAM2C,EAAI,CAAC/C,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KACla,IAAIgD,EAAS,MAALD,GAAaL,KAAK3W,OAAOgX,GAAKzC,GAAKoC,KAAK3V,OAAOgW,KAAO9C,EAAK,EAAI,IAAMyC,KAAK3V,OAAOgW,GAAK,EAC9F,GAAS,MAALA,GAAaC,EACf,GAAI/C,EAAI,CACN,IAAIgD,EAAIo3G,GAAGr6G,GAAIkD,EAAI,EAAGE,EAAI,EAC1BpD,EAAEnhC,UAAYqkC,EAAGE,GAAK+3G,GAAGn7G,IAAKO,EAAI0C,GAAKC,EAAI,IAAME,EAAI,GAAIL,EAAI/F,GAAEk+B,oBAAoB36B,GAAG2yB,IAAKruB,GAAU,EAAJA,QAEjG9B,EAAI/F,GAAEk+B,oBAAoB36B,GAC9B,OAAOwC,EAET,SAASsiH,GAAGrlH,GACV,OAAOA,EAAI,IAAM,EAEnB,SAASo8G,GAAGp8G,EAAGC,GACb,GAAID,EAAIA,EAAErJ,OAAO,GAAIsJ,EAAKA,EAAGtJ,OAAO,GAAIqG,GAAEy6B,YAAYz3B,EAAGC,KAAQD,EAAEnhC,SAAWohC,EAAGphC,QAAmB,IAATmhC,EAAE,IAAqB,IAATA,EAAE,IAAsB,IAAVC,EAAG,IAAsB,IAAVA,EAAG,GACvI,OAAO,EACT,GAAID,EAAEnhC,SAAWohC,EAAGphC,OAAQ,CAC1B,IAAIuhC,EAAIJ,EAAEA,EAAEnhC,OAAS,GAAIyhC,EAAIL,EAAGA,EAAGphC,OAAS,GAC5C,GAAIuhC,IAAME,GAAK+kH,GAAGjlH,IAAMilH,GAAG/kH,KAAgB,IAATN,EAAE,IAAsB,IAAVC,EAAG,IACjD,OAAO,EAEX,OAAOD,EAAE,KAAOC,EAAG,IAAMolH,GAAGrlH,EAAE,KAAOqlH,GAAGplH,EAAG,IAI7C,SAAS47G,GAAG77G,GACV,GAAU,MAANgjH,GAAY,CACd,IAAI/iH,EAAKm+G,GAAGp+G,GACZgjH,GAAK/iH,EAAGqlH,aAAarlH,EAAGslH,kBAE1B,OAAOvC,GAET,SAASlG,KACPkG,GAAK,KAEP,SAAShG,KACPiG,GAAK,KAEP,SAAStI,GAAG36G,GACV,GAAU,MAANijH,GAAY,CACd,IAAIhjH,EAAKm+G,GAAGp+G,GACZijH,GAAKhjH,EAAGqlH,aAAarlH,EAAGulH,yBAE1B,OAAO9iH,KAAK3V,IAAI,GAAIk2H,IAEtB,SAASxH,GAAGz7G,GACV,GAAU,IAANA,EACF,OAAO,EACT,IAAIC,EAAIG,EAAIg+G,GAAGp+G,GACf,OAA6DC,EAAtDqnE,GAAGlnE,EAAG,oCAA4C,IAANJ,EAAe,EAAIsnE,GAAGlnE,EAAG,4BAAmC,EAAS,EAAGH,EAE7H,SAASqnE,GAAGtnE,EAAGC,GACb,OAA6B,MAAtBD,EAAEuiH,aAAatiH,GAExB,SAASu8G,GAAGx8G,GACV,IACE,GAAa,MAATo+G,GAAGp+G,GACL,OAAO,EACT,MAAOC,GACP,OAAOkR,QAAQ9mB,IAAI,qCAAsC4V,IAAK,EAEhE,OAAO,EAET,SAAS+7G,GAAGh8G,GACV,GAAU,IAANA,EACF,OAAO,EACT,IAAIC,EAAKm+G,GAAGp+G,GACZ,GAAU,IAANA,GACF,IAAKsnE,GAAGrnE,EAAI,qBACV,OAAO,OACJ,IAAKqnE,GAAGrnE,EAAI,0BACjB,OAAO,EACT,OAAOwlH,GAAGxlH,GAEZ,SAASi8G,GAAGl8G,GACV,GAAU,IAANA,EACF,OAAO,EACT,IAAIC,EAAKm+G,GAAGp+G,GACZ,GAAU,IAANA,EAGG,CACL,GAAIsnE,GAAGrnE,EAAI,0BACT,OAAOwlH,GAAGxlH,GACZ,IAAIK,EAAI,8BACR,GAAIgnE,GAAGrnE,EAAIK,GAAI,CACb,IAAIC,EAAIN,EAAGsiH,aAAajiH,GACxB,OAAOolH,GAAGzlH,EAAIM,GAEhB,OAAO,EAVP,SAAK+mE,GAAGrnE,EAAI,uBAAyBqnE,GAAGrnE,EAAI,8BAYvCwlH,GAAGxlH,GAEZ,SAASwlH,GAAGzlH,GACV,IAAIC,EAAKy/G,GAAG1/G,GAAII,EAAIJ,EAAEg6G,gBACtBh6G,EAAEokH,YAAYpkH,EAAEqkH,WAAYjkH,GAC5B,IAAIE,EAAI,EAAGC,EAAI,EACfP,EAAE2lH,WAAW3lH,EAAEqkH,WAAY,EAAGpkH,EAAGqgH,oBAAqBhgH,EAAGC,EAAG,EAAGN,EAAGygH,mBAAoBzgH,EAAG8gH,iBAAkB,MAC3G,IAAIh+G,EAAI/C,EAAEw5G,oBACVx5G,EAAEwkH,gBAAgBxkH,EAAEykH,YAAa1hH,GAAI/C,EAAE4kH,qBAAqB5kH,EAAEykH,YAAazkH,EAAE6kH,kBAAmB7kH,EAAEqkH,WAAYjkH,EAAG,GACjH,IAAI4C,EAAIhD,EAAE8kH,uBAAuB9kH,EAAEykH,eAAiBzkH,EAAE+kH,qBACtD,OAAO/kH,EAAEokH,YAAYpkH,EAAEqkH,WAAY,MAAOrkH,EAAEwkH,gBAAgBxkH,EAAEykH,YAAa,MAAOzkH,EAAE4lH,cAAcxlH,GAAIJ,EAAE6lH,kBAAkB9iH,GAAIC,EAEhI,SAAS0iH,GAAG1lH,EAAGC,GACb,IAAIG,EAAIs/G,GAAG1/G,EAAGC,GAAKK,EAAIN,EAAEg6G,gBACzBh6G,EAAEokH,YAAYpkH,EAAEqkH,WAAY/jH,GAC5B,IAAIC,EAAI,EAAGwC,EAAI,EACf/C,EAAE2lH,WAAW3lH,EAAEqkH,WAAY,EAAGjkH,EAAEmgH,wBAAyBhgH,EAAGwC,EAAG,EAAG3C,EAAEsgH,mBAAoBtgH,EAAE0gH,qBAAsB,MAChH,IAAI99G,EAAIhD,EAAEw5G,oBACVx5G,EAAEwkH,gBAAgBxkH,EAAEykH,YAAazhH,GAAIhD,EAAE4kH,qBAAqB5kH,EAAEykH,YAAazkH,EAAE6kH,kBAAmB7kH,EAAEqkH,WAAY/jH,EAAG,GACjH,IAAI2C,EAAIjD,EAAE8kH,uBAAuB9kH,EAAEykH,eAAiBzkH,EAAE+kH,qBACtD,OAAO/kH,EAAEokH,YAAYpkH,EAAEqkH,WAAY,MAAOrkH,EAAEwkH,gBAAgBxkH,EAAEykH,YAAa,MAAOzkH,EAAE4lH,cAActlH,GAAIN,EAAE6lH,kBAAkB7iH,GAAIC,EAEhI,SAASq5G,GAAGt8G,GACV,OAAa,IAANA,GAAqC,MAAnBo+G,GAAGp+G,GAAG8lH,UAEjC,SAASvN,GAAGv4G,EAAGC,GACbmzB,MAAMC,QAAQrzB,KAAOA,EAAI,CAACA,IAAKA,EAAEsY,QAASlY,IACnC,MAALA,GAAapD,GAAE26B,OAAmB,cAAZv3B,EAAEi9B,MAAuB,IAASp9B,EAAH,+DAGzD,IAAI8lH,GAAKzhI,KAqDT,SAAS0hI,KACP,IAAIhmH,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,EAChC,OAA0C,IAAnC9e,KAAIq7H,UAAU,kBAA0B3/G,EAAI,kBAAmBC,EAAK,KAAMG,EAAI,MAAOE,EAAI,KAAMC,EAAI,UAAWwC,EAAI,cAAeC,EAAI,wBAAyBC,EAAI3e,KAAIuxC,QAAQ,uBAAyB,8XAYxM,GAAI3yB,EAAI,GAAIE,EAAI,4OASdpD,EAAI,GAAIC,EAAK,YAAaG,EAAI,UAAWE,EAAI,UAAWC,EAAI,YAAawC,EAAI,eAAgBC,EAAI,GAAIC,EAAI,0SAQ5GC,EAAI,iNASJE,EAAI,yLAQH,CAAE3F,QAASuC,EAAGimH,UAAWhmH,EAAIimH,UAAW9lH,EAAG+lH,UAAW7lH,EAAG8lH,UAAW7lH,EAAGqvG,OAAQ7sG,EAAGsjH,aAAcrjH,EAAGsjH,iBAAkBrjH,EAAGsjH,iBAAkBrjH,EAAGsjH,YAAapjH,GAElK,SAASqjH,GAAGzmH,EAAGC,EAAIG,EAAI,SACrB,IAAIE,EAAItD,GAAEm7B,eAAel4B,GACzB,OAAOK,EAAE4yB,IAAI,CAAC3yB,EAAGwC,KACf,IAAIC,EAAI,OAAOhD,EAAE+C,QAAQ3C,OAAOG,IAAK0C,EAAIF,IAAMzC,EAAEzhC,OAAS,EAAI,OAAOmhC,EAAE+C,EAAI,QAAQ3C,OAAOJ,EAAE+C,QAAQxC,IAAM,YAAYP,EAAE+C,QAAQxC,IAChI,MAAO,GAAGyC,MAAMC,OACfozB,KAAK,IAEV,SAASqwF,GAAG1mH,EAAGC,EAAIG,EAAI,SACrB,IAAIE,EAAItD,GAAEm7B,eAAel4B,GACzB,OAAOK,EAAE4yB,IAAI,CAAC3yB,EAAGwC,KACf,IAAIC,EAAI,OAAOhD,EAAE+C,QAAQ3C,uBAAuB2C,KAAME,EAAIF,IAAMzC,EAAEzhC,OAAS,EAAI,OAAOmhC,EAAE+C,EAAI,QAAQ3C,OAAOJ,EAAE+C,wBAAwBA,KAAO,YAAY/C,EAAE+C,wBAAwBA,KAClL,MAAO,GAAGC,MAAMC,OACfozB,KAAK,IAEV,SAASswF,GAAG3mH,EAAGC,GACb,IAAIG,EAAIJ,EAAEnhC,OAAQyhC,EAAIN,EAAEkzB,IAAKnwB,GAAM,GAAG9C,KAAM8C,MAAOxC,EAAI,IAAI6yB,MAAMhzB,EAAI,GACrEG,EAAEH,EAAI,GAAKE,EAAEF,EAAI,GACjB,IAAK,IAAI2C,EAAI3C,EAAI,EAAG2C,GAAK,IAAKA,EAC5BxC,EAAEwC,GAAK,IAAIxC,EAAEwC,EAAI,QAAQzC,EAAEyC,EAAI,MACjC,OAAOxC,EAET,SAASqmH,GAAG5mH,EAAGC,EAAIG,EAAI,SACrB,IAAIE,EAAIN,EAAEkzB,IAAI,CAACnwB,EAAGC,IAAMA,GAAIzC,EAAIomH,GAAGrmH,EAAGL,GACtC,OAAOM,EAAE2yB,IAAI,CAACnwB,EAAGC,KACf,IAAIC,EAAI,OAAOjD,EAAEgD,QAAQ5C,OAAOG,EAAEyC,KAAME,EAAIF,IAAMzC,EAAE1hC,OAAS,EAAI,OAAOmhC,EAAEgD,EAAI,QAAQ5C,OAAOJ,EAAEgD,QAAQzC,EAAEyC,KAAO,YAAYhD,EAAEgD,QAAQzC,EAAEyC,KACxI,MAAO,GAAGC,MAAMC,OACfmzB,KAAK,IAEV,SAASwwF,GAAG7mH,GACV,IAAIC,EAAKjD,GAAEm7B,eAAen4B,GAAGkzB,IAAK9yB,GAAMA,EAAEqE,YAC1C,MAAO,+DAEexE,EAAG,mBAAmBA,EAAG,wBAIjD,SAAS6mH,KACP,MAAO,oIA3ITf,GAAGr8E,aAAa,YAAa,IAAMq8E,GAAGpG,UAAU,iBAAmB,GACnEoG,GAAGr8E,aAAa,gBAAiB,IAAM8yE,GAAG,GAAK,EAAIA,GAAG,GAAK,EAAI,GAC/DuJ,GAAGr8E,aAAa,iCAAkC,KAAM,GACxDq8E,GAAGr8E,aAAa,yBAA0B,IAAkC,IAA5Bq8E,GAAG5lJ,IAAI,kBACvD4lJ,GAAGr8E,aAAa,oBAAqB,KAAM,GAC3Cq8E,GAAGr8E,aAAa,2BAA4B,KAAM,GAClDq8E,GAAGr8E,aAAa,aAAc,IAAMq8E,GAAGlwF,QAAQ,cAC/CkwF,GAAGr8E,aAAa,2BAA4B,IAAMq8E,GAAGlwF,QAAQ,eAC7DkwF,GAAGr8E,aAAa,kBAAmB,IAAMq8E,GAAGlwF,QAAQ,eACpDkwF,GAAGr8E,aAAa,2BAA4B,IAAMq8E,GAAGlwF,QAAQ,eAC7DkwF,GAAGr8E,aAAa,+BAAgC,IAAMq8E,GAAGlwF,QAAQ,eACjEkwF,GAAGr8E,aAAa,8BAA+B,IAAMq8E,GAAGlwF,QAAQ,eAChEkwF,GAAGr8E,aAAa,8BAA+B,IAAMq8E,GAAGlwF,QAAQ,eAChEkwF,GAAGr8E,aAAa,8BAA+B,IAAMq8E,GAAGlwF,QAAQ,eAChEkwF,GAAGr8E,aAAa,oBAAqB,IAAMq8E,GAAGlwF,QAAQ,eACtDkwF,GAAGr8E,aAAa,sBAAuB,IAAMq8E,GAAGlwF,QAAQ,eACxDkwF,GAAGr8E,aAAa,oBAAqB,IAAMq8E,GAAGlwF,QAAQ,eACtDkwF,GAAGr8E,aAAa,6BAA8B,IAAMq8E,GAAGlwF,QAAQ,eAC/DkwF,GAAGr8E,aAAa,yBAA0B,IAAMmyE,GAAGkK,GAAGpG,UAAU,mBAChEoG,GAAGr8E,aAAa,+BAAgC,IAAMixE,GAAGoL,GAAGpG,UAAU,mBACtEoG,GAAGr8E,aAAa,+CAAgD,KAC9D,IAAI1pC,EAAI+lH,GAAGpG,UAAU,iBACrB,OAAa,IAAN3/G,EAAU,EAAIy7G,GAAGz7G,KAE1B+lH,GAAGr8E,aAAa,gDAAiD,IAAMq8E,GAAGpG,UAAU,gDAAkD,IAAMv9H,GAAG4mD,YAC/I+8E,GAAGr8E,aAAa,+BAAgC,IAAMsyE,GAAG+J,GAAGpG,UAAU,mBACtEoG,GAAGr8E,aAAa,+BAAgC,KAAMq8E,GAAGlwF,QAAQ,6BAAsCkwF,GAAGlwF,QAAQ,iCAClHkwF,GAAGr8E,aAAa,+BAAgC,IAAMwyE,GAAG6J,GAAGpG,UAAU,mBACtEoG,GAAGr8E,aAAa,0BAA2B,IAAM4yE,GAAGyJ,GAAGpG,UAAU,mBACjEoG,GAAGr8E,aAAa,4BAA6B,IAAMq8E,GAAGlwF,QAAQ,gCAAkC,EAAI,GACpGkwF,GAAGr8E,aAAa,iCAAkC,KAAO,EAAI1pC,IAC3D,GAAgB,iBAALA,EACT,MAAM,IAAI4C,MAAM,2DAA2D5C,MAC7E,GAAIA,EAAI,IAAY,IAAPA,EACX,MAAM,IAAI4C,MAAM,8FAA8F5C,QAElH+lH,GAAGr8E,aAAa,wBAAyB,IAAMtnD,GAAG4mD,WAAa,GAAK,EAAIhpC,IACtE,GAAgB,iBAALA,EACT,MAAM,IAAI4C,MAAM,kDAAkD5C,MACpE,GAAIA,EAAI,IAAY,IAAPA,EACX,MAAM,IAAI4C,MAAM,2FAA2F5C,QAE/G+lH,GAAGr8E,aAAa,6BAA8B,IAAM,KACpDq8E,GAAGr8E,aAAa,4BAA6B,KAAM,GACnDq8E,GAAGr8E,aAAa,2CAA4C,IAAM,KAClEq8E,GAAGr8E,aAAa,+BAAgC,IAAM,KACtDq8E,GAAGr8E,aAAa,iBAAkB,KAAM,GACxCq8E,GAAGr8E,aAAa,yBAA0B,IAAMq8E,GAAGlwF,QAAQ,YAC3DkwF,GAAGr8E,aAAa,oCAAqC,IAAM,KAC3Dq8E,GAAGr8E,aAAa,2CAA4C,KAAM,GAClEq8E,GAAGr8E,aAAa,sBAAuB,KAAM,GAC7Cq8E,GAAGr8E,aAAa,sBAAuB,KAAM,GA8F7C,IAAIq9E,GAAK,27BAwCHlmE,iBAAkBmmE,IAAOhqI,GAC/B,SAASiqI,GAAGjnH,EAAGC,EAAIG,GACjB,IAAIE,EAAI,GACR,GAAIN,EAAEsY,QAAS3R,IACb,IAAII,EAAI/J,GAAEi+B,cAAct0B,EAAEugH,UAAUC,cACpC,GAAIxgH,EAAEugH,UAAUE,UAAY9mH,EAAEkK,KAAK,iBAAiB7D,EAAEzmC,OAAO6mC,EAAI,EAAI,IAAIA,KAAO,QAAUzG,EAAEkK,KAAK,qBAAqB7D,EAAEzmC,SAAUogC,EAAEkK,KAAK,qBAAqB7D,EAAEzmC,UAAWkgC,EAAEinH,oBAAqB,CAChM,IAAMC,aAAcz8G,GAAM08G,GAAGnnH,EAAEonH,aAAc7gH,EAAEugH,UAAUC,aAAcxgH,EAAEugH,UAAUO,UACnF,OAAQ58G,EAAEhsC,QACR,KAAK,EACHyhC,EAAEkK,KAAK,eAAe7D,EAAEzmC,cACxB,MACF,KAAK,EACHogC,EAAEkK,KAAK,iBAAiB7D,EAAEzmC,cAC1B,MACF,KAAK,EACHogC,EAAEkK,KAAK,iBAAiB7D,EAAEzmC,cAC1B,MACF,KAAK,EACHogC,EAAEkK,KAAK,iBAAiB7D,EAAEzmC,cAC1B,MACF,QACE,MAEJogC,EAAEkK,KAAK,iBAAiB7D,EAAEzmC,oBAE1BkgC,EAAEinH,oBAAqB,CACzB,OAAQpnH,EAAGknH,aAAatoJ,QACtB,KAAK,EACHyhC,EAAEkK,KAAK,yBACP,MACF,KAAK,EACHlK,EAAEkK,KAAK,2BAA4BlK,EAAEkK,KAAK,gCAC1C,MACF,KAAK,EACHlK,EAAEkK,KAAK,2BAA4BlK,EAAEkK,KAAK,kCAC1C,MACF,KAAK,EACHlK,EAAEkK,KAAK,2BAA4BlK,EAAEkK,KAAK,kCAC1C,MACF,QACE,MAEJlK,EAAEkK,KAAK,8BAETpK,EAAEsnH,gBAAkBtnH,EAAEsnH,eAAepvG,QAAS3R,IAC5CrG,EAAEkK,KAAK,WAAW7D,EAAE+yC,QAAQ/yC,EAAEzmC,OAAOymC,EAAEghH,WAAa,IAAIhhH,EAAEghH,cAAgB,SAE5E,IAEwCvkH,EAAGyB,EAFvCtE,EAAID,EAAE+1B,KAAK,MACbtzB,EAAI/C,EAAEkzB,IAAKvsB,GAAMihH,GAAGjhH,EAAG1G,EAAIG,EAAEonH,aAAcpnH,EAAEinH,sBAAsBhxF,KAAK,MACxErzB,EAAI/C,EAAGwnH,SAAUxkH,EAAI+iH,KAAM9iH,EAAI2kH,GAAG5kH,GAAUwD,EAAIqhH,GAAG7kH,GACrD,OAAOhD,EAAG8nH,UAAY3kH,EAAI4kH,GAAG/nH,EAAGknH,aAAcnkH,EAAG5C,EAAEinH,qBAAsBxiH,EAAIojH,GAAGhlH,KAAOG,EAAI8kH,GAAGjoH,EAAGknH,aAAcnkH,EAAG5C,EAAEinH,qBAAsBxiH,EAAIsjH,GAAGllH,IAAK7C,EAAEonH,eAAiB/gH,GAAK2hH,IAAK,CAAC3hH,EAAGvD,EAAG2B,EAAGtE,EAAG6C,EAAGL,EAAG3C,EAAEioH,UAAUhyF,KAAK,MAGzN,SAASiyF,GAAGtoH,EAAGC,GAAK,GAClB,IAAIG,EAAIJ,EAAEknH,UAAUC,aACpB,OAAQ/mH,EAAEvhC,QACR,KAAK,EACH,OAAO0pJ,GAAGvoH,EAAGC,GACf,KAAK,EACH,OAAOuoH,GAAGxoH,EAAGC,GACf,KAAK,EACH,OAAOwoH,GAAGzoH,EAAGC,GACf,KAAK,EACH,OAAOyoH,GAAG1oH,EAAGC,GACf,KAAK,EACH,OAAO0oH,GAAG3oH,EAAGC,GACf,KAAK,EACH,OAAO2oH,GAAG5oH,GACZ,KAAK,EACH,OAAO6oH,GAAG7oH,GACZ,QACE,MAAM,IAAI4C,MAASxC,EAAEvhC,OAAL,2CAGtB,SAASiqJ,GAAG9oH,EAAGC,GACb,OAAQD,EAAEknH,UAAUC,aAAatoJ,QAC/B,KAAK,EACH,OAAOkqJ,GAAG/oH,GACZ,KAAK,EACH,OAAOgpH,GAAGhpH,EAAGC,GACf,KAAK,EACH,OAAOgpH,GAAGjpH,EAAGC,GACf,KAAK,EACH,OAAOipH,GAAGlpH,EAAGC,GACf,QACE,OAAOkpH,GAAGnpH,EAAGC,IAGnB,SAAS2nH,GAAG5nH,EAAGC,EAAIG,GAAI,EAAOE,GAC5B,IAAIC,EAAI,GACJA,GAAJH,EAAS0oH,GAAG9oH,EAAGM,GAAUgoH,GAAGtoH,EAAGM,GAC/B,IAAIyC,EAAI/C,EAAEknH,UAAUC,aAAcnkH,EAAI/C,EAAGknH,aACzC,OAAOpkH,EAAElkC,QAAUmkC,EAAEnkC,SAAe0hC,GAAJH,EAASgpH,GAAGppH,EAAGC,GAAWopH,GAAGrpH,EAAGC,IAAMM,EAExE,SAASynH,GAAGhoH,EAAGC,EAAIG,GACjB,OAAQJ,EAAEnhC,QACR,KAAK,EACH,OAAOyqJ,KACT,KAAK,EACH,OAAOC,GAAGvpH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAOopH,GAAGxpH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAOqpH,GAAGzpH,EAAGC,EAAIG,GACnB,QACE,OAAOspH,GAAG1pH,EAAGC,EAAIG,IAGvB,SAAS8nH,GAAGloH,EAAGC,EAAIG,GACjB,OAAQJ,EAAEnhC,QACR,KAAK,EACH,OAAOyqJ,KACT,KAAK,EACH,OAAOK,GAAG3pH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAOwpH,GAAG5pH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAOypH,GAAG7pH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAO0pH,GAAG9pH,EAAGC,EAAIG,GACnB,KAAK,EACH,OAAO2pH,GAAG/pH,EAAGC,GACf,KAAK,EACH,OAAO+pH,GAAGhqH,EAAGC,GACf,QACE,MAAM,IAAI2C,MAAS5C,EAAEnhC,OAAL,4CAGtB,SAASgpJ,GAAG7nH,GACV,MAAO,gFAEMA,EAAEomH,8CAIjB,SAAS+B,GAAGnoH,GACV,MAAO,4CAEDA,EAAE4vG,0CAIV,SAASqY,GAAGjoH,GACV,MAAO,2CAEDA,EAAE4vG,2BAIV,SAASkY,GAAG9nH,GACV,MAAO,GAAGA,EAAEvC,sGAIRuC,EAAEmmH,iCACFnmH,EAAEqmH,wTAuBFrmH,EAAEsmH,yBACFtmH,EAAEumH,yBACFvmH,EAAEwmH,2lBAyBFyD,WACAC,WACAC,SAGN,IAAIF,GAAK,kbAaLC,GAAK,qTASLC,GAAK,2VAUL/B,GAAK,sWAYT,SAASkB,KACP,MAAO,4DAMT,SAASC,GAAGvpH,EAAGC,EAAIG,GACjB,IAAIE,EAAI,CAACoC,KAAK3jB,KAAKkhB,EAAG,GAAK,GAAIyC,KAAK3jB,KAAKkhB,EAAG,GAAK,IACjD,OAAgB,IAATK,EAAE,GAAWF,EAAI,0HAIlB,wEAE8BE,EAAE,wBAEvB,IAATA,EAAE,GAAWF,EAAI,0HAIjB,wEAE8BE,EAAE,wBAEhCF,EAAI,8UAON,gHAG8BE,EAAE,OAAOA,EAAE,yCACdA,EAAE,+BAInC,SAASqpH,GAAG3pH,EAAGC,EAAIG,GACjB,OAAiB,IAAVH,EAAG,GAAWG,EAAI,0GAInB,oEAE0BH,EAAG,wBAEnB,IAAVA,EAAG,GAAWG,EAAI,0GAIlB,oEAE0BH,EAAG,wBAE7BG,EAAI,oNAMN,gHAG8BH,EAAG,OAAOA,EAAG,oCACrBA,EAAG,8BAI/B,SAASwpH,GAAGzpH,EAAGC,EAAIG,GACjB,GAAIA,EACF,MAAO,2rBAkBT,IAAIE,EAAI,CAACoC,KAAK3jB,KAAKkhB,EAAG,GAAK,GAAIyC,KAAK3jB,KAAKkhB,EAAG,GAAK,IAAKM,EAAImC,KAAK3jB,KAAKihB,EAAE,GAAK,GAAI+C,EAAIxC,EAAImC,KAAK3jB,KAAKihB,EAAE,GAAK,GACxG,MAAO,kHAG2BM,EAAE,OAAOA,EAAE,yCACdA,EAAE,6CAEXyC,0BACHA,oCAEQxC,kCACDA,qDAM5B,SAASspH,GAAG7pH,EAAGC,EAAIG,GACjB,GAAIA,EACF,MAAO,8MAKLsmH,GAAG,CAAC,IAAK,IAAK,KAAM1mH,wCAIxB,IAAIM,EAAImmH,GAAG,CAAC,IAAK,IAAK,KAAMzmH,GAC5B,MAAO,kHAG2BC,EAAG,OAAOA,EAAG,yCAChBA,EAAG,2BAC5BK,6CAKR,SAASopH,GAAG1pH,EAAGC,EAAIG,GACjB,GAAIA,EACF,MAAO,y0BAuBT,IAAIE,EAAI,CAACoC,KAAK3jB,KAAKkhB,EAAG,GAAK,GAAIyC,KAAK3jB,KAAKkhB,EAAG,GAAK,IAAKM,EAAImC,KAAK3jB,KAAKihB,EAAEA,EAAEnhC,OAAS,GAAK,GAAIkkC,EAAIxC,EAAImC,KAAK3jB,KAAKihB,EAAEA,EAAEnhC,OAAS,GAAK,GAAImkC,EAAID,EAAGE,EAAI,GAAIC,EAAI,UACrJ,IAAK,IAAIE,EAAI,EAAGA,EAAIpD,EAAEnhC,OAAS,EAAGukC,IAChCJ,GAAKhD,EAAEA,EAAEnhC,OAASukC,EAAI,GAAIH,EAAI,gBACrBG,eAAeJ,uBACVI,OAAOJ,WACjBC,EAAGC,EAAI,IAAIE,MAAQF,EACzB,MAAO,aACClD,EAAEnhC,6GAEwByhC,EAAE,OAAOA,EAAE,yCACdA,EAAE,6BAE3B2C,8BAEgBF,0BACHA,oCAEQxC,kCACDA,+BAETP,EAAEnhC,UAAUqkC,iBAI/B,SAAS4mH,GAAG9pH,EAAGC,EAAIG,GACjB,GAAIA,EACF,MAAO,mMAKHsmH,GAAG,CAAC,IAAK,IAAK,IAAK,MAAO1mH,kDAIhC,IAAIM,EAAImmH,GAAG,CAAC,IAAK,IAAK,IAAK,MAAOzmH,GAClC,MAAO,6FAGMC,EAAG,OAAOA,EAAG,yCACKA,EAAG,2BAC5BK,iDAKR,SAASypH,GAAG/pH,EAAGC,GACb,IAAIG,EAAIqmH,GAAG,CAAC,IAAK,IAAK,IAAK,KAAM,MAAOzmH,GACxC,MAAO,oFAEyCC,EAAG,qCACtBA,EAAG,2CAEDA,EAAG,6BAE5BG,yFAOR,SAAS4pH,GAAGhqH,EAAGC,GACb,IAAIG,EAAIqmH,GAAG,CAAC,IAAK,IAAK,IAAK,KAAM,KAAM,MAAOzmH,GAC9C,MAAO,6FAGMC,EAAG,OAAOA,EAAG,yCACKA,EAAG,6BAE5BG,yFAOR,SAASopH,GAAGxpH,EAAGC,EAAIG,GACjB,IAAIE,EAAI,CAACoC,KAAK3jB,KAAKkhB,EAAG,GAAK,GAAIyC,KAAK3jB,KAAKkhB,EAAG,GAAK,IACjD,GAAIjD,GAAEy6B,YAAYz3B,EAAGC,GACnB,OAAOG,EAAI,qPAKP,kFAEsCE,EAAE,OAAOA,EAAE,uBAGvD,IAAIC,EAAImC,KAAK3jB,KAAKihB,EAAE,GAAK,GACzB,OAAOI,EAAI,whBAaP,kHAG8BE,EAAE,OAAOA,EAAE,2CAEdA,EAAE,gDACNC,kCACDA,kDAM5B,SAASqpH,GAAG5pH,EAAGC,EAAIG,GACjB,OAAOpD,GAAEy6B,YAAYz3B,EAAGC,GAAMG,EAAI,8HAI5B,8EAEkCH,EAAG,OAAOA,EAAG,uBAEtC,IAATD,EAAE,GAAWI,EAAI,wQAOjB,wHAG8BH,EAAG,OAAOA,EAAG,2CAChBA,EAAG,mEAGrB,IAATD,EAAE,GAAWI,EAAI,wQAOjB,wHAG8BH,EAAG,OAAOA,EAAG,2CAChBA,EAAG,mEAG9BG,EAAI,kUASN,kHAG8BH,EAAG,OAAOA,EAAG,yCAChBA,EAAG,2CACZD,EAAE,kCACEA,EAAE,4CAK9B,SAASoqH,GAAGpqH,GACV,MAAO,SAASA,EAElB,SAAS+oH,GAAG/oH,GACV,IAAIC,EAAKD,EAAE9/B,KAAMkgC,EAAI,MAAQH,EAAGoqH,OAAO,GAAGl9B,cAAgBltF,EAAGtJ,MAAM,GAAI2J,EAAI0lH,KAC3E,MAAO,cACE5lH,uBACIE,EAAE8lH,aAAanmH,yBAI9B,SAASsoH,GAAGvoH,EAAGC,GACb,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAChE,GAAIqJ,EAAEknH,UAAUE,UACd,MAAO,SAAS9mH,eAAeF,MACjC,IAAKG,EAAGwC,GAAK/C,EAAEknH,UAAUO,SACzB,GAAU,IAANlnH,GAAiB,IAANwC,EACb,MAAO,iBACGzC,uCACiBF,6BAG7B,IAAI4C,EAAIonH,GAAGhqH,GACX,GAAIH,EACF,MAAO,eACCK,qCACiBF,iBAAiBA,iBAAiB4C,mCAClC5C,qBAG3B,IAAK6C,EAAGC,GAAKlD,EAAEknH,UAAUO,SACzB,MAAO,eACGnnH,qCACiB2C,MAAMC,MAAMF,mCACZ5C,qBAI7B,SAAS4oH,GAAGhpH,EAAGC,GACb,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAI4J,EAAIP,EAAEknH,UAAUO,SAAU1kH,EAAIijH,KAClG,GAAI/lH,EACF,MAAO,cACAK,iEACqCF,oCAAoCA,gIAGrE2C,EAAEqjH,aAAahmH,qBAG5B,IAAI4C,EAAI,CAACN,KAAK3jB,KAAKwhB,EAAE,GAAK,GAAImC,KAAK3jB,KAAKwhB,EAAE,GAAK,IAC/C,MAAO,cACED,4DAED0C,EAAE,OAAOA,EAAE,6BACND,EAAEqjH,aAAahmH,qBAI9B,SAASooH,GAAGxoH,EAAGC,GACb,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAChE,GAAIqJ,EAAEknH,UAAUE,UACd,MAAO,iBACG9mH,2BACJgqH,GAAGtqH,oBAGX,IAAIO,EAAIP,EAAEknH,UAAUO,SAAU1kH,EAAIxC,EAAE,GAAIyC,EAAIzC,EAAE,GAC9C,GAAU,IAANyC,GAAiB,IAAND,EACb,MAAO,iBACGzC,gDACiBF,6BAG7B,IAAI6C,EAAImnH,GAAGhqH,GACX,OAAa,IAAN4C,EAAU/C,EAAK,iBACVK,8DAC+B2C,qBAAqB7C,iDACnCA,yBAEvB,iBACME,8DAC+B2C,eAAeF,uCAC7B3C,yBAEjB,IAAN2C,EAAU9C,EAAK,iBACTK,yDAC0B2C,qBAAqB7C,sDAC9BA,yBAEvB,iBACME,yDAC0B2C,eAAeD,4CACxB5C,yBAEvBH,EAAK,eACDK,8CACiBF,iBAAiBA,yBAAyB6C,mCAC1C7C,qBAEvB,eACME,8CACiByC,MAAMC,cAAcC,mCACpB7C,qBAI7B,SAAS6oH,GAAGjpH,EAAGC,GACb,IAAIG,EAAIJ,EAAEknH,UAAUC,aAAc7mH,EAAIN,EAAE9/B,KAAMqgC,EAAI,MAAQD,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAIoM,EAAI/C,EAAEknH,UAAUO,SAAUzkH,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAIG,EAAI8iH,KACpJ,GAAS,MAALjjH,GAAa/F,GAAEy6B,YAAYr3B,EAAG2C,GAChC,OAAO9C,EAAK,gBACHM,6EACwCD,iBAAiBA,oCAErD4C,EAAEkjH,aAAa9lH,yBAExB,gBACKC,6EACwC0C,QAAQD,2BAE5CE,EAAEkjH,aAAa9lH,yBAG9B,GAAIL,EACF,MAAO,cACAM,wEACqCD,oCAAoCA,mEAC1CA,oIAE3B4C,EAAEkjH,aAAa9lH,qBAG5B,IAAI8C,EAAI,CAACV,KAAK3jB,KAAKgkB,EAAE,GAAK,GAAIL,KAAK3jB,KAAKgkB,EAAE,GAAK,IAAK8B,EAAInC,KAAK3jB,KAAKqhB,EAAE,GAAK,GACzE,MAAO,cACEG,yDACsBsE,MAAMzB,EAAE,OAAOA,EAAE,gCACnCF,EAAEkjH,aAAa9lH,qBAI9B,SAASmoH,GAAGzoH,EAAGC,GACb,IAAIG,EAAIJ,EAAEknH,UAAUC,aAAc7mH,EAAIN,EAAE9/B,KAAMqgC,EAAI,MAAQD,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAIoM,EAAI/C,EAAEknH,UAAUO,SAClH,GAAS,MAAL1kH,GAAa/F,GAAEy6B,YAAYr3B,EAAG2C,GAAI,CACpC,GAAI9C,EACF,MAAO,iBACCM,6EACuCD,iBAAiBA,gDACvCA,yBAG3B,IAAIoG,EAAI3D,EAAE,GAAI4D,EAAI5D,EAAE,GACpB,MAAO,eACCxC,2EACuCoG,QAAQD,qCAC9BpG,qBAI3B,IAAMizB,SAAUvwB,EAAGwwB,SAAUvwB,GAAMjG,GAAEm+B,aAAa/6B,GAAI8C,EAAIF,EAC1D,GAAIE,EAAErkC,OAASuhC,EAAEvhC,OAAQ,CACvB,IAAI6nC,EAAI6jH,GAAGvqH,EAAGkD,GAAIyD,EAAI,CAAC,MAAO,OAC9B,MAAO,WACH2hH,GAAG5hH,EAAGzG,mBACAM,yCACGA,KAAKiqH,GAAG7jH,EAAG1D,sBAI1B,GAAIjD,EAAEknH,UAAUE,UACd,MAAO,iBACG7mH,6EACuCH,EAAE,sBAC7CkqH,GAAGtqH,oBAGX,IAAIoD,EAAIL,EAAE,GAAI8B,EAAI9B,EAAE,GAAI0D,EAAI2jH,GAAG9pH,GAC/B,OAAa,IAANuE,EAAU5E,EAAK,iBACVM,mEAC6BkG,YAAYnG,yEACHA,iDACrBA,yBAEvB,eACIC,iEAC6BkG,YAAYrG,EAAE,0DACXgD,qCACf9C,qBAEjB,IAAN8C,EAAUnD,EAAK,iBACPM,mEAC6BkG,YAAYnG,oEACRA,sDAChBA,yBAEvB,eACIC,iEAC6BkG,YAAYrG,EAAE,qDAChByE,0CACVvE,qBAEvBL,EAAK,iBACGM,iIAEcD,qBAAqBmG,oCAClBnG,iBAAiBA,uDACjBA,yBAEvB,aACEC,yHAEcH,EAAE,cAAcqG,gCACbrD,MAAMyB,wCACNvE,iBAI3B,SAAS4oH,GAAGlpH,EAAGC,GACb,IAAIG,EAAIJ,EAAEknH,UAAUC,aAAc7mH,EAAIN,EAAE9/B,KAAMqgC,EAAI,MAAQD,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAIoM,EAAI/C,EAAEknH,UAAUO,SAAUzkH,EAAI,CAACN,KAAK3jB,KAAKgkB,EAAE,GAAK,GAAIL,KAAK3jB,KAAKgkB,EAAE,GAAK,IACvK,GAAa,IAAT3C,EAAE,GAAU,CACd,IAAIsG,EAAItG,EAAEzJ,MAAM,GAAIgQ,EAAI,CAAC,EAAG,GAAII,EAAIwjH,GAAGvqH,EAAG0G,GAAImE,EAAI,CAAC,IAAK,MAAO,OAC/D,MAAO,aACDi+G,GAAG/hH,EAAG9G,oBACDM,kDACIA,KAAKiqH,GAAG3/G,EAAGlE,0BAI5B,IAAI1D,EAAI+iH,KACR,GAAI/lH,EACF,MAAO,cACAM,+EACqCD,oCAAoCA,mEAC1CA,gFACgBA,gKAG3C2C,EAAEmjH,aAAa9lH,qBAG5B,IAAI4C,EAAIF,EAAE,GAAII,EAAIJ,EAAE,GAAI6B,EAAInC,KAAK3jB,KAAKqhB,EAAE,GAAK,GAAIqG,EAAI5B,EAAInC,KAAK3jB,KAAKqhB,EAAE,GAAK,GAC1E,MAAO,cACEG,0EAED2C,MAAME,MAAMqD,MAAM5B,kCACb5B,EAAEmjH,aAAa9lH,qBAI9B,SAASooH,GAAG1oH,EAAGC,GACb,IAAIG,EAAIJ,EAAEknH,UAAUC,aAAc7mH,EAAIN,EAAE9/B,KAAMqgC,EAAI,MAAQD,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAIoM,EAAI3C,EAAE,GAAKA,EAAE,GAAI4C,EAAI5C,EAAE,IAAMmzB,SAAUtwB,EAAGuwB,SAAUtwB,GAAMlG,GAAEm+B,aAAa/6B,GAAIgD,EAAIH,EACnL,GAAIG,EAAEvkC,OAASuhC,EAAEvhC,OAAQ,CACvB,IAAIgsC,EAAI0/G,GAAGvqH,EAAGoD,GAAI0H,EAAI,CAAC,MAAO,MAAO,SACrC,MAAO,aACDw9G,GAAGz9G,EAAG5K,qBACAM,sDACGA,KAAKiqH,GAAG1/G,EAAG5H,0BAI5B,GAAIlD,EAAEknH,UAAUE,UACd,MAAO,iBACG7mH,0HAEmBwC,MAAMC,qBAC7BsnH,GAAGtqH,oBAGX,IAAI6E,EAAI7E,EAAEknH,UAAUO,SAAUhhH,EAAI5B,EAAE,GAAI6B,EAAI7B,EAAE,GAAI8B,EAAI3G,EAAEknH,UAAUuD,WAClE,GAAI/jH,IAAM3D,GAAU,MAAL4D,EACb,OAAO1G,EAAK,iBACFM,2DACUD,yLAIEA,iBAAiBA,gDACZA,yBAEvB,mBACQC,2HAEoCyC,yFAExB0D,QAAQD,yCACHnG,6BAG/B,GAAIoG,IAAM1D,GAAU,MAAL2D,EACb,OAAO1G,EAAK,iBACFM,mFACkCD,6GAEOA,iBAAiBA,gDACzCA,yBAEvB,eACIC,iFACkCH,EAAE,kGAEKsG,QAAQD,qCAChCnG,qBAG3B,IAAIyG,EAAIqjH,GAAG9pH,GACX,OAAOL,EAAK,eACFM,oIAEUD,eAAeA,mCACfA,yEACsCyG,kCAC/BzG,iBAAiBA,qDACjBA,uBAErB,iBACMC,4IAEcwC,aAAaC,eAAe+D,oCACzBN,MAAMC,4CACNpG,uBAI/B,SAAS6oH,GAAGnpH,EAAGC,GACb,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAI4J,EAAIylH,KACxE,GAAI/lH,EACF,MAAO,cACAK,iFAC+BF,gFACgBA,4HAEjCA,wGAEuBA,oCAAoCA,6NAGeG,EAAE6lH,aAAahmH,qBAGhH,IAAI2C,EAAI/C,EAAEknH,UAAUC,aAAcnkH,EAAID,EAAElkC,OAAQokC,EAAIjD,EAAEknH,UAAUO,SAAUvkH,EAAI,CAACR,KAAK3jB,KAAKkkB,EAAE,GAAK,GAAIP,KAAK3jB,KAAKkkB,EAAE,GAAK,IAAKG,EAAIF,EAAE,GAAI2B,EAAI3B,EAAE,GAAIuD,EAAI/D,KAAK3jB,KAAKgkB,EAAEC,EAAI,GAAK,GAAI0D,EAAID,EAAI/D,KAAK3jB,KAAKgkB,EAAEC,EAAI,GAAK,GAAI2D,EAAI,0BAA2BI,EAAI,OAAOL,mBAAmBD,gBACzQ,IAAK,IAAIoE,EAAI,EAAGA,EAAI7H,EAAI,EAAG6H,IACzBlE,EAAI,QAAQkE,MAAQlE,EAAGD,GAAK3D,EAAEC,EAAI6H,EAAI,GAAI9D,EAAI,IAAI8D,OAAOnE,OAASK,EACpE,MAAO,cACEzG,KAAKqG,2BACII,gCACOlC,uCACOA,0DACmBA,MAAMzB,qBAC5C7C,EAAE6lH,aAAahmH,qBAI9B,SAASuoH,GAAG3oH,EAAGC,GACb,IAAIG,EAAIJ,EAAEknH,UAAUC,aAAc7mH,EAAIN,EAAE9/B,KAAMqgC,EAAI,MAAQD,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAIoM,EAAI3C,EAAE,GAAI4C,EAAI5C,EAAE,GAAK2C,EAAGE,EAAI7C,EAAE,GAAK4C,GAAKuwB,SAAUrwB,EAAGswB,SAAUpwB,GAAMpG,GAAEm+B,aAAa/6B,GACtL,GAAI8C,EAAErkC,OAASuhC,EAAEvhC,OAAQ,CACvB,IAAIusC,EAAIm/G,GAAGvqH,EAAGkD,GAAIwI,EAAI,CAAC,MAAO,MAAO,QAAS,UAC9C,MAAO,WACH48G,GAAGl9G,EAAGnL,mBACAM,gEACGA,KAAKiqH,GAAG9+G,EAAGtI,sBAI1B,GAAIpD,EAAEknH,UAAUE,UACd,MAAO,iBACG7mH,8IAEmB0C,MAAMD,MAAMD,qBACnCunH,GAAGtqH,oBAGX,IAAI6E,EAAI7E,EAAEknH,UAAUuD,WAAYhkH,EAAIzG,EAAEknH,UAAUO,SAAU/gH,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAIM,EAAI,iBAAiBzG,aAAcuK,EAAI,iBAAiBvK,uBAAwBwK,EAAI,iBAAiBxK,uBACnL,GAAIqG,IAAM1D,GAAU,MAAL4B,EACb,OAAO5E,EAAK,iBACFM,yDACJwG,cACA8D,+NAMgBvK,iBAAiBA,gDACZA,yBAEvB,iBACMC,yKAISyC,MAAMD,qFAEH4D,QAAQD,uCACHpG,yBAG7B,GAAIqG,IAAM5D,GAAU,MAAL8B,EACb,OAAO5E,EAAK,iBACFM,gIAEkBD,eAAeA,cAAcA,iIAGpCA,iBAAiBA,gDACXA,yBAEvB,iBACMC,gIAEkBH,EAAE,GAAKA,EAAE,OAAOA,EAAE,0HAGzBuG,QAAQD,uCACFpG,yBAG7B,IAAIuJ,EAAIugH,GAAG9pH,GACX,OAAOL,EAAK,eACFM,kIAEJwG,YACA8D,YACAC,yHAGqBxK,iBAAiBA,yBAAyBuJ,mCAC1CvJ,qBAEvB,eACMC,oJAEc0C,aAAaD,0BACnBD,2CACS2D,MAAMC,cAAckD,mCACpBvJ,qBAI7B,SAASsoH,GAAG5oH,GACV,IAAIC,EAAKD,EAAEknH,UAAUC,aAAc/mH,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAI4J,EAAIN,EAAG,GAAI8C,EAAI9C,EAAG,GAAKM,EAAGyC,EAAI/C,EAAG,GAAK8C,EAAGE,EAAIhD,EAAG,GAAK+C,GAAKuwB,SAAUrwB,EAAGswB,SAAUpwB,GAAMpG,GAAEm+B,aAAal7B,GACzM,GAAIiD,EAAErkC,OAASohC,EAAGphC,OAAQ,CACxB,IAAIgsC,EAAI0/G,GAAGvqH,EAAGkD,GAAI4H,EAAI,CAAC,MAAO,MAAO,QAAS,SAAU,UACxD,MAAO,WACHw9G,GAAGz9G,mBACGvK,4EACGA,KAAKkqH,GAAG1/G,EAAG1H,sBAI1B,GAAIpD,EAAEknH,UAAUE,UACd,MAAO,iBACG9mH,kJAGG2C,MAAMD,MAAMD,MAAMxC,qCAEzB+pH,GAAGtqH,oBAGX,IAAI6E,EAAI7E,EAAEknH,UAAUuD,WAAYhkH,EAAIzG,EAAEknH,UAAUO,SAAU/gH,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAC1E,GAAIE,IAAM1D,GAAU,MAAL4B,EACb,MAAO,iBACGvE,gLAGkB0C,MAAMD,MAAMxC,qFAElBoG,QAAQD,uCACHtG,yBAG7B,GAAIuG,IAAMpG,GAAU,MAALsE,EACb,MAAO,iBACGvE,iJAGGL,EAAG,GAAKA,EAAG,GAAKA,EAAG,uBACnBA,EAAG,GAAKA,EAAG,OAAOA,EAAG,iHAGb0G,QAAQD,uCACFtG,yBAG7B,IAAI2G,EAAIqjH,GAAGhqH,GACX,MAAO,eACGE,gKAEc2C,aAAaD,eAAeD,2BACjCxC,gBAAgBwG,kCACRL,MAAMC,0CACNvG,qBAI7B,SAASyoH,GAAG7oH,GACV,IAAIC,EAAKD,EAAEknH,UAAUC,aAAc/mH,EAAIJ,EAAE9/B,KAAMogC,EAAI,MAAQF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,IAAM48B,SAAUhzB,EAAGizB,SAAUzwB,GAAM/F,GAAEm+B,aAAal7B,GACjJ,GAAIM,EAAE1hC,OAASohC,EAAGphC,OAAQ,CACxB,IAAIisC,EAAIy/G,GAAGvqH,EAAGO,GAAIsJ,EAAI,CAAC,MAAO,MAAO,QAAS,SAAU,SAAU,UAClE,MAAO,WACHy+G,GAAGx9G,mBACGxK,6GAEGA,KAAKkqH,GAAG3gH,EAAG9G,sBAI1B,IAAIC,EAAI/C,EAAG,GAAIgD,EAAIhD,EAAG,GAAK+C,EAAGE,EAAIjD,EAAG,GAAKgD,EAAGG,EAAInD,EAAG,GAAKiD,EAAG2B,EAAI5E,EAAG,GAAKmD,EACxE,GAAIpD,EAAEknH,UAAUE,UACd,MAAO,iBACG9mH,qLAIGuE,MAAMzB,MAAMF,MAAMD,8EAGhBD,qBACTsnH,GAAGtqH,oBAGX,IAAIyG,EAAIzG,EAAEknH,UAAUuD,WAAY/jH,EAAI1G,EAAEknH,UAAUO,SAAU9gH,EAAID,EAAE,GAAIK,EAAIL,EAAE,GAC1E,GAAIK,IAAMlC,GAAU,MAAL4B,EACb,MAAO,iBACGnG,kMAIG8C,MAAMF,MAAMD,MAAMD,kHAGT+D,QAAQJ,uCACHvG,yBAG7B,GAAI2G,IAAM/D,GAAU,MAALyD,EACb,MAAO,iBACGnG,sKAGGL,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,uBAC3BA,EAAG,GAAKA,EAAG,GAAKA,EAAG,uBACnBA,EAAG,GAAKA,EAAG,uBACXA,EAAG,8HAGK8G,QAAQJ,uCACFvG,yBAG7B,IAAIyK,EAAIu/G,GAAGhqH,GACX,MAAO,eACGE,+LAGcuE,aAAazB,eAAeF,2BACjCD,gBAAgBD,gBAAgB6H,kCACxBlE,MAAMI,0CACN3G,qBAI7B,SAASkqH,GAAGtqH,GACV,IAAIC,EAAKD,EAAE9/B,KAAMkgC,EAAIpD,GAAEi+B,cAAcj7B,EAAEknH,UAAUC,cACjD,OAAO/mH,EAAI,EAAI,UAAUH,KAAQ,6BACTG,sDAETH,4BAKjB,SAASmpH,GAAGppH,EAAGC,GACb,IAAqO4E,EAAjOzE,EAAIJ,EAAE9/B,KAAMogC,EAAIF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAI4J,EAAI,MAAQD,EAAI,cAAeyC,EAAI/C,EAAEknH,UAAUC,aAAatoJ,OAAQmkC,EAAI/C,EAAGknH,aAAatoJ,OAAQokC,EAAI+jH,GAAGhnH,EAAEknH,UAAUC,aAAclnH,EAAGknH,cAAejkH,EAAIwnH,GAAG1nH,GAAII,EAAIJ,EAAID,EAAM0D,EAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5P5B,EAAJ,IAAN9B,EAAc,GAAKC,EAAI,GAAKC,EAAEpkC,QAAU,EAAQ,cAAoBokC,EAAEiwB,IAAK9nB,GAAM,UAAU3E,EAAE2E,EAAIhI,WAAWizB,KAAK,MAEjH,IAAI3vB,EAAI,GACSA,EAAjB1D,EAAI,GAAKD,EAAI,EAAQ,SAAe/C,EAAEknH,UAAUC,aAAaj0F,IAAI,CAAC9nB,EAAGM,IAAM,UAAUjF,EAAEiF,EAAItI,IAAMizB,KAAK,MACtG,IAAI1vB,EAAI,sBAAuBkE,EAAkD,IAA9C7N,GAAEi+B,cAAcj7B,EAAEknH,UAAUC,cAAqBt9G,EAAyC,IAArC7M,GAAEi+B,cAAch7B,EAAGknH,cAC3G,GAAU,IAANpkH,GAAY8H,GAAMhB,GAIjB,GAAIgB,IAAMhB,EACHlD,EAAJ,IAAN3D,EAAc,uEAEJ,qDAGP,GAAIC,EAAEpkC,OAAQ,CACjB,IAAIusC,EAAIrI,EAAI,EAAG2I,EAAI3I,EAAI,EACvBE,EAAE5jC,QAAQ+rC,IAAM,GAAKnI,EAAE5jC,QAAQqsC,IAAM,EAAI/E,EAAI,8BAAgC1D,EAAE5jC,QAAQ+rC,IAAM,EAAIzE,EAAI,2EAA6E1D,EAAE5jC,QAAQqsC,IAAM,IAAM/E,EAAI,sDAX5MA,EAAI,6DAaN,MAAO,cACEpG,gBACH2C,wCACA2B,kCACsBvE,KAAKoG,cAC3BC,eAIR,SAAS0iH,GAAGrpH,EAAGC,GACb,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAIF,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAI4J,EAAI,MAAQD,EAAI,cAAeyC,EAAI9C,EAAGwnH,SAAUzkH,EAAIhD,EAAEknH,UAAUO,SAAUxkH,EAAIjD,EAAEknH,UAAUC,aAAatoJ,OAAQqkC,EAAIjD,EAAGknH,aAAatoJ,OAC/L,IAAKmhC,EAAEknH,UAAUE,WAAankH,IAAMC,GAA+B,MAA1BlD,EAAEknH,UAAUuD,YAAsBztH,GAAEy6B,YAAYz0B,EAAGD,GAC1F,MAAO,iBACGxC,uCACiBH,+BAG7B,IAA6EsG,EAAzEtD,EAAIsnH,GAAGxnH,GAAI2B,EAAImiH,GAAGhnH,EAAEknH,UAAUC,aAAclnH,EAAGknH,cAAe1gH,EAAIvD,EAAID,EAAM0D,EAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACpGD,EAAJ,IAANzD,EAAc,GAAKC,EAAI,GAAK2B,EAAEhmC,QAAU,EAAQ,cAAoBgmC,EAAEquB,IAAKroB,GAAM,UAAUlE,EAAEkE,EAAIpE,WAAW4vB,KAAK,MAEjH,IAAItvB,EAAI,GACR,OAAwBA,EAAjB7D,EAAI,GAAKD,EAAI,EAAQ,SAAejD,EAAEknH,UAAUC,aAAaj0F,IAAI,CAACroB,EAAGC,IAAM,UAAUnE,EAAEmE,EAAIrE,IAAM4vB,KAAK,MAAO,eAC1G91B,gBACJ6C,wCACAsD,sBACUpG,KAAKyG,iBAIvB,SAAS2jH,GAAG1qH,GACV,GAAIA,GAAK,EACP,MAAO,MACT,GAAU,IAANA,EACF,MAAO,QACT,GAAU,IAANA,EACF,MAAO,QACT,GAAU,IAANA,EACF,MAAO,QACT,GAAU,IAANA,EACF,MAAO,QACT,GAAU,IAANA,EACF,MAAO,QACT,MAAM4C,MAAM,gBAAgB5C,0BAE9B,SAASunH,GAAGvnH,EAAGC,EAAIG,GACjB,IAAMmzB,SAAUjzB,EAAGkzB,SAAUjzB,GAAMvD,GAAEm+B,aAAal7B,GAAK8C,EAAI9C,EAAGphC,OAAQmkC,EAAIhD,GAAW,IAAN+C,GAAqB,IAAV9C,EAAG,GAAUgD,EAAID,EAAI/C,EAAGtJ,MAAM,GAAK2J,EAAG4C,GAAKlD,GAAK+C,EAAI,IAAM/F,GAAEy6B,YAAYx3B,EAAIG,IAAME,EAAEzhC,OAASkkC,GAAKC,EAC5L,MAAO,CAAE2nH,gBAAiBznH,EAAGokH,aAAcpkH,EAAID,EAAIhD,EAAIuzB,SAAUjzB,GAEnE,SAASgqH,GAAGvqH,EAAGC,GACb,IAAIG,EAAImrC,KAAKqG,MAAMrG,KAAKC,UAAUxrC,IAClC,OAAOI,EAAE8mH,UAAUC,aAAelnH,EAAIG,EAExC,SAASoqH,GAAGxqH,EAAGC,GACb,OAAOA,EAAGizB,IAAK9yB,GAAMJ,EAAEI,IAAIi2B,KAAK,MAElC,SAASu0F,GAAG5qH,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIH,EAAE8yB,IAAI,CAACruB,EAAG4B,KAChB,IAAIC,EAAI,CAAEygH,aAActiH,EAAEi5B,MAAO2pF,SAAU5iH,EAAEuiH,UAAY,KAAOviH,EAAEgmH,QAAQpD,SAAUL,UAAWviH,EAAEuiH,UAAWW,UAAUljH,EAAEuiH,WAAoBviH,EAAEgmH,QAAQ9C,SAAU0C,WAAY,MAC5K,OAAoB,MAAb5lH,EAAEgmH,SAAsC,MAAnBhmH,EAAEgmH,QAAQl0H,OAAiBkO,EAAEgmH,QAAQl0H,MAAM8zH,WAAa,IAAM/jH,EAAE+jH,WAAa5lH,EAAEgmH,QAAQl0H,MAAM8zH,YAAa,CAAEvqJ,KAAM+/B,EAAG6qH,cAAcrkH,GAAIygH,UAAWxgH,KAC5K3D,EAAIxC,EAAE2yB,IAAKruB,GAAMA,EAAEqiH,WAAYlkH,EAAI,CAAEmkH,aAAc7mH,EAAEw9B,MAAO2pF,SAAUnnH,EAAEuqH,QAAQpD,SAAUL,WAAW,EAAOW,SAAUznH,EAAEuqH,QAAQ9C,SAAU0C,WAAY,MAAQxnH,EAAIgkH,GAAG1mH,EAAGyC,EAAG/C,GAAKiD,EAAIq2G,GAAGv5G,EAAE82B,GAAI7zB,GAAIG,EAAIpD,EAAE05G,cAAcx2G,GACzN,OAAO5e,KAAInkB,IAAI,uBAAyB,CAAE4qJ,QAAS9qH,EAAI+qH,eAAgB9nH,EAAGuwC,OAAQxwC,EAAGgoH,aAAc7nH,EAAG8nH,aAAcnoH,EAAGooH,aAAcnoH,EAAGooH,mBAAoB,KAAMC,uBAAwB,KAAMC,OAAQ,KAAMC,OAAQ,KAAMC,iBAAkB,KAAMC,wBAAyB,KAAMC,oBAAqB,OAAU1rH,EAAE2rH,SAASvoH,GAAI7jC,OAAOmwC,OAAO,CAAEq7G,QAAS9qH,EAAI+qH,eAAgB9nH,EAAGuwC,OAAQxwC,EAAGgoH,aAAc7nH,EAAG8nH,aAAcnoH,EAAGooH,aAAcnoH,GAAK4oH,GAAG5rH,EAAGC,EAAImD,KAE7b,SAASwoH,GAAG5rH,EAAGC,EAAIG,GACjB,IAAoB2C,EAAGC,EAAGC,EAAtB3C,EAAI,GAAIC,EAAI,GAAa2C,EAAI,KAAME,EAAI,KAC3CA,EAAIpD,EAAEskH,mBAAmBlkH,EAAG,OAAO,GAA2C,IAAnC9b,KAAIq7H,UAAU,mBAA2Bz8G,EAAIlD,EAAEskH,mBAAmBlkH,EAAG,YAAY,IAC5H,IAAIyE,GAAI,EACR,IAAK,IAAI4B,KAAKxG,EAAG6qH,cAAe,CAC9B,IAAIpkH,EAAI,CAAExmC,KAAMumC,EAAGolH,QAAS7rH,EAAEskH,mBAAmBlkH,EAAGqG,EAAG5B,GAAIk3C,OAAQ/7C,EAAEskH,mBAAmBlkH,EAAG,SAASqG,EAAK5B,IACzG5E,EAAGonH,sBAAwB3gH,EAAEo3B,MAAQ99B,EAAEskH,mBAAmBlkH,EAAMqG,EAAH,QAAa5B,GAAI6B,EAAE+gH,SAAWznH,EAAEskH,mBAAmBlkH,EAAMqG,EAAH,WAAgB5B,IAAKvE,EAAEkK,KAAK9D,GAEjJ,GAAIzG,EAAGonH,sBAAwBtkH,EAAI/C,EAAEskH,mBAAmBlkH,EAAG,WAAYyE,GAAI5B,EAAIjD,EAAEskH,mBAAmBlkH,EAAG,kBAAmByE,GAAI7B,EAAIhD,EAAEskH,mBAAmBlkH,EAAG,cAAeyE,IAAK5E,EAAGynH,eAC/K,IAAK,IAAIjhH,KAAKxG,EAAGynH,eACfnnH,EAAEiK,KAAKxK,EAAEskH,mBAAmBlkH,EAAGqG,EAAEvmC,KAAM2kC,IAC3C,MAAO,CAAEumH,mBAAoB9qH,EAAG+qH,uBAAwB9qH,EAAG+qH,OAAQpoH,EAAGqoH,OAAQnoH,EAAGooH,iBAAkBzoH,EAAG0oH,wBAAyBxoH,EAAGyoH,oBAAqB1oH,GAEzJ,SAAS8oH,GAAG9rH,EAAGC,GACb,GAAID,EAAEnhC,SAAWohC,EAAGphC,OAClB,MAAM+jC,MAAM,4BAA4B5C,EAAEnhC,wCAAwCohC,EAAGphC,iBACvFmhC,EAAEsY,QAAQ,CAAClY,EAAGE,KACZ,IAAIC,EAAIH,EAAE+mH,aAAcpkH,EAAI9C,EAAGK,GAAI0C,EAAID,EAAE+6B,MACzC,IAAK9gC,GAAEy6B,YAAYl3B,EAAGyC,GACpB,MAAMJ,MAAM,2EAA2ErC,SAASyC,gBAClG,GAAI5C,EAAEgnH,WAAarkH,EAAEqkH,UACnB,OACF,IAAInkH,EAAI7C,EAAEqnH,SAAUvkH,EAAIH,EAAEqkH,UAAY,KAAOrkH,EAAE8nH,QAAQpD,SACvD,IAAKzqH,GAAEy6B,YAAYx0B,EAAGC,GACpB,MAAMN,MAAM,kFAAkFK,SAASC,kBAG7G,SAAS6oH,GAAG/rH,EAAGC,EAAIG,EAAGE,EAAGC,GACvBN,EAAG8qH,QAAQ1D,sBAAwByE,GAAG7rH,EAAGirH,aAAc9qH,GAAI0rH,GAAG,CAAC7rH,EAAGkrH,cAAe,CAAC7qH,KAClF,IAAIyC,EAAIzC,EAAEuqH,QAAQ/oF,QAAS9+B,EAAI1C,EAAEuqH,QAAQpD,SACzCnnH,EAAEuqH,QAAQ9C,SAAW/nH,EAAEgsH,6BAA6BjpH,EAAE++B,QAAS9+B,EAAE,GAAIA,EAAE,IAAMhD,EAAEisH,uBAAuBlpH,EAAE++B,QAAS9+B,EAAE,GAAIA,EAAE,IAAKhD,EAAEksH,WAAWjsH,EAAGgrH,cAAejrH,EAAEmsH,gBAAgBlsH,EAAGgrH,aAAamB,KAAyC,IAAnC9nI,KAAIq7H,UAAU,kBAAwC,OAAd1/G,EAAGqrH,QAAmBtrH,EAAE82B,GAAGu1F,UAAUpsH,EAAGqrH,OAAQ,KAAsB,OAAdrrH,EAAGsrH,QAAmBvrH,EAAE82B,GAAGu1F,UAAUpsH,EAAGsrH,OAAQl7D,KACrV,IAAK,IAAIntD,EAAI,EAAGA,EAAI9C,EAAEvhC,SAAUqkC,EAAG,CACjC,IAAIE,EAAIhD,EAAE8C,IAAM2oH,QAAShnH,EAAGk3C,OAAQt1C,EAAGq3B,MAAOp3B,EAAG+gH,SAAU9gH,GAAM1G,EAAGmrH,mBAAmBloH,GACvF,GAAIwD,EAAG,CACL,IAAM4gH,aAAcvgH,GAAMwgH,GAAGtnH,EAAG8qH,QAAQvD,aAAcpkH,EAAE06B,MAAO16B,EAAEynH,QAAQpD,UACzE,OAAQ1gH,EAAEloC,QACR,KAAK,EACHmhC,EAAE82B,GAAGw1F,WAAW5lH,EAAG,IAAI6N,WAAWxN,IAClC,MACF,KAAK,EACH/G,EAAE82B,GAAGy1F,WAAW7lH,EAAG,IAAI6N,WAAWxN,IAClC,MACF,KAAK,EACH/G,EAAE82B,GAAG01F,WAAW9lH,EAAG,IAAI6N,WAAWxN,IAClC,MACF,KAAK,EACH/G,EAAE82B,GAAG21F,WAAW/lH,EAAG,IAAI6N,WAAWxN,IAClC,MACF,QACE,OAGN,GAAIJ,GAAK3G,EAAE82B,GAAG41F,UAAU/lH,EAAGvD,EAAEynH,QAAQpD,SAAS,GAAIrkH,EAAEynH,QAAQpD,SAAS,IAAU,MAAL5iH,EAAW,CACnF,GAAIzB,EAAEgkH,UAAW,CACf,GAAIpqH,GAAEi+B,cAAc73B,EAAE06B,OAAS,EAC7B99B,EAAE82B,GAAGu1F,UAAUxnH,EAAGzB,EAAEupH,cAAc,QAC/B,CACH,IAAI5lH,EAAI3D,EAAEupH,cACV5lH,aAAa+N,eAAiB/N,EAAI,IAAI+N,aAAa/N,IAAK/G,EAAE82B,GAAG81F,WAAW/nH,EAAGkC,GAE7E,SAEiB,MAAnB3D,EAAEynH,QAAQl0H,OAAsB,MAAL8P,GAAazG,EAAE82B,GAAGytF,UAAU99G,EAAGrD,EAAEynH,QAAQl0H,MAAM8zH,YAAazqH,EAAE6sH,sBAAsBzpH,EAAEynH,QAAQ/oF,QAAQA,QAASj9B,EAAG3B,IAGjJ,IAAID,EAAIhD,EAAGurH,iBACX,GAAIvoH,EACF,OAAQ3C,EAAEw9B,MAAMj/D,QACd,KAAK,EACHmhC,EAAE82B,GAAGw1F,WAAWrpH,EAAG,IAAIsR,WAAWjU,EAAEw9B,QACpC,MACF,KAAK,EACH99B,EAAE82B,GAAGy1F,WAAWtpH,EAAG,IAAIsR,WAAWjU,EAAEw9B,QACpC,MACF,KAAK,EACH99B,EAAE82B,GAAG01F,WAAWvpH,EAAG,IAAIsR,WAAWjU,EAAEw9B,QACpC,MACF,KAAK,EACH99B,EAAE82B,GAAG21F,WAAWxpH,EAAG,IAAIsR,WAAWjU,EAAEw9B,QACpC,MACF,QACE,MAEN,GAAI79B,EAAGwrH,wBAAyB,CAC9B,IAAIvoH,EAAIlG,GAAEm7B,eAAe73B,EAAEw9B,OAC3B,OAAQx9B,EAAEw9B,MAAMj/D,QACd,KAAK,EACHmhC,EAAE82B,GAAGw1F,WAAWrsH,EAAGwrH,wBAAyB,IAAIl3G,WAAWrR,IAC3D,MACF,KAAK,EACHlD,EAAE82B,GAAGy1F,WAAWtsH,EAAGwrH,wBAAyB,IAAIl3G,WAAWrR,IAC3D,MACF,KAAK,EACHlD,EAAE82B,GAAG01F,WAAWvsH,EAAGwrH,wBAAyB,IAAIl3G,WAAWrR,IAC3D,MACF,QACE,OAGN,GAAIjD,EAAGyrH,qBAAuB1rH,EAAE82B,GAAG41F,UAAUzsH,EAAGyrH,oBAAqBprH,EAAEuqH,QAAQpD,SAAS,GAAInnH,EAAEuqH,QAAQpD,SAAS,IAAKxnH,EAAG8qH,QAAQrD,gBAAkBnnH,EAC/I,IAAK,IAAI2C,EAAI,EAAGA,EAAIjD,EAAG8qH,QAAQrD,eAAe7oJ,SAAUqkC,EAAG,CACzD,IAAIE,EAAInD,EAAG8qH,QAAQrD,eAAexkH,GAAI2B,EAAI5E,EAAGorH,uBAAuBnoH,GAAIuD,EAAIlG,EAAE2C,GAC9E,GAAe,UAAXE,EAAEs2C,KACJ15C,EAAE82B,GAAG81F,WAAW/nH,EAAG4B,QAChB,GAAe,SAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAGg2F,WAAWjoH,EAAG4B,QAChB,GAAe,SAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAGi2F,WAAWloH,EAAG4B,QAChB,GAAe,SAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAGk2F,WAAWnoH,EAAG4B,QAChB,GAAe,QAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAGw1F,WAAWznH,EAAG4B,QAChB,GAAe,UAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAGy1F,WAAW1nH,EAAG4B,QAChB,GAAe,UAAXrD,EAAEs2C,KACT15C,EAAE82B,GAAG01F,WAAW3nH,EAAG4B,OAChB,IAAe,UAAXrD,EAAEs2C,KAGT,MAAM92C,MAAM,gBAAgBQ,EAAEs2C,8BAF9B15C,EAAE82B,GAAG21F,WAAW5nH,EAAG4B,IAIzBzG,EAAEitH,iBAEJ,SAASC,GAAGltH,EAAGC,EAAIG,GACjB,IAAIE,EAAI,GACRL,EAAG1gB,OAAO6gB,GAAGkY,QAAStV,IACpB,IAAIC,EAAiB,MAAbD,EAAE6nH,SAAsC,MAAnB7nH,EAAE6nH,QAAQl0H,OAAiBqM,EAAE6nH,QAAQl0H,MAAM8zH,WAAa,EACrF,GAAIzqH,EAAEqnH,sBAAwBrkH,EAAEokH,UAAW,CACzC,IAAIlkH,EAAIF,EAAE6nH,QAAQpD,UAAYkD,gBAAiBvnH,EAAGkkH,aAAcziH,EAAG2uB,SAAU/sB,GAAM8gH,GAAGvnH,EAAEwnH,aAAcxkH,EAAE86B,MAAO56B,GAAIwD,EAAI,GAAIC,EAAI,GAAII,EAAI,GACvI,GAAiB,IAAblC,EAAEhmC,QAAgBmhC,EAAEwnH,aAAc,CACpC,IAAI57G,EAAI,CAAClJ,KAAK3jB,KAAKmkB,EAAE,GAAK,GAAIR,KAAK3jB,KAAKmkB,EAAE,GAAK,IAC/CwD,EAAI,GAAGkF,EAAE,GAAK,KAAKA,EAAE,GAAK,SACrB,GAAiB,IAAb/G,EAAEhmC,QAAiBmhC,EAAEwnH,cAE3B,GAAI3iH,EAAEhmC,OAAS,IAAMmhC,EAAEwnH,aAAc,CACxC,IAAI57G,EAAI5O,GAAEm7B,eAAetzB,GACzBkC,EAAI,GAAG6E,EAAE,KAAO1I,EAAE,MAAM0I,EAAEA,EAAE/sC,OAAS,KAAOqkC,EAAE,WAH9CyD,EAAI,GAAG9B,EAAE,GAAK,KAAKA,EAAE,GAAK,IAK5B,IAAIgG,EAAI7H,EAAE86B,MAAMj/D,OAAQisC,EAAiB,IAAbjG,EAAEhmC,QAAgBm+B,GAAEy6B,YAAYz0B,EAAE86B,MAAO56B,GAAI2G,EAAiC,IAA7B7M,GAAEi+B,cAAcj4B,EAAE86B,OAAc1yB,EAAIpuB,GAAE6jE,iBAAiB79C,EAAE86B,MAAO19B,EAAE09B,OAAQpyB,GAAK1L,EAAEwnH,cAAgB38G,IAAMzK,EAAE09B,MAAMj/D,QAAUm+B,GAAEy6B,YAAYv0B,EAAG9C,EAAEyqH,QAAQpD,UAAW97G,EAAI3L,EAAEwnH,cAAgB3iH,EAAEhmC,OAAS,EAAI,GAAK,GAAGqkC,EAAE,GAAK,KAAKA,EAAE,GAAK,IAC5S5C,GAAK,GAAGuK,KAAKa,KAAKtI,EAAIqD,EAAI,MAAM5B,EAAEhmC,UAAUgrC,KAAKuB,KAAKN,KAAKpE,KAAKC,KAAKI,KAAK4E,KAAK1I,QAC1E,CACL,IAAIC,EAAIF,EAAEokH,UAAY,UAAYpkH,EAAE6nH,QAAQpD,SAC5CnnH,GAAK,GAAG0C,EAAE86B,SAAS56B,KAAKD,OAG5B,IAAI1C,EAAIP,EAAEqoH,SAAUtlH,EAAI/C,EAAEs0B,YAAYp0D,KACtC,OAAO6iC,GAAK,IAAMzC,EAAI,IAAMC,EAAOjc,KAAIq7H,UAAU,iBAAoB58G,EAEvE,SAASoqH,GAAGntH,GACV,OAAO1b,KAAIuxC,QAAQ,8BAAgC71B,GAAK,EAE1D,IAAIotH,GAAK,MACP,YAAYntH,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAO7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK2uJ,iBAAmB5P,GAAGyD,MAAOxiJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,WAAYw5E,KAAM,UACpK,IAAIt5C,EAAI4lH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAASF,KAAK0pJ,SAAW,8DAEzF1pJ,KAAK0oJ,oBAAsBX,GAAG,CAAC,IAAK,IAAK,KAAMzmH,GAAMwmH,GAAG,CAAC,IAAK,IAAK,KAAMxmH,mcAgBzEG,EAAEwvG,oCAKR2d,GAAK,MACP,YAAYttH,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK2uJ,iBAAmB5P,GAAGyD,MAAOxiJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,WAAYw5E,KAAM,UACnK,IAAIt5C,EAAI4lH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAASF,KAAK0pJ,SAAW,8DAEzF1pJ,KAAK0oJ,oBAAsBX,GAAG,CAAC,IAAK,IAAK,KAAMzmH,GAAMwmH,GAAG,CAAC,IAAK,IAAK,KAAMxmH,ieAgBzEG,EAAEwvG,oCAKR4d,GAAK,MACP,YAAYvtH,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8uJ,YAAc9P,GAAG6D,SAClD,IAAIphH,EAAI4lH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,WACnCtB,4EAIE3mH,EAAEwvG,6CAKR8d,GAAK,MACP,YAAYztH,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAO1uJ,KAAK8uJ,YAAc9P,GAAG6D,SACvG,IAAIphH,EAAI4lH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,WACnCtB,6JAKE3mH,EAAEwvG,6CAKR+d,GAAK,CAAE3hH,EAAG,EAAG4hH,EAAG,EAAGphH,EAAG,EAAGloB,EAAG,GAC5BupI,GAAK,MACP,YAAY5tH,EAAIG,GAAI,EAAOE,EAAI,QAC7B3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,WAAYw5E,KAAM,UAC7E,IAAIn5C,EAAIylH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACtE,IAAIkkC,EAAI,SACR3C,IAAM2C,EAAI,8BACV,IAAIC,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAI3C,EAAEzhC,OAAQokC,IAAK,CACjC,IAAIC,EAAI5C,EAAE2C,GACVD,GAAK,4BACcC,qCACK0qH,GAAGzqH,oBAG7BvkC,KAAK0pJ,SAAW,WACZ1pJ,KAAK0oJ,oBAAsBP,KAAOD,GAAG5mH,yLAMNK,EAAEzhC,mDAEHyhC,EAAEzhC,mPAMd0hC,EAAE6lH,gCAChBpjH,yBAEFzC,EAAEqvG,iBAAiB7sG,mCAKzB+qH,GAAK,MACP,YAAY7tH,EAAIG,GAAI,GAClBzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAO7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,WAAYw5E,KAAM,UAClI,IAAIp5C,EAAI0lH,KACRrnJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACtE,IAAI0hC,EAAI,GAAIwC,EAAI,SAChB3C,IAAM2C,EAAI,8BACV,IAAK,IAAIC,EAAI,EAAGA,GAAK,EAAGA,IACtB,IAAK,IAAIC,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAAIC,EAAQ,EAAJF,EAAQC,EAChB1C,GAAK,oEAEmB0C,OAAOtkC,KAAK0oJ,oBAAsB,cAAgB,GAAGpnH,EAAG,sCAC1DgD,sCACGD,OAAOrkC,KAAK0oJ,oBAAsB,cAAgB,GAAGpnH,EAAG,wCACzD+C,iWAUT1C,EAAE8lH,6EAGFljH,gFAEAA,gFAEAA,+DAEAA,mEAMnBvkC,KAAK0pJ,SAAW,aACV1pJ,KAAK0oJ,oBAAsBP,KAAOD,GAAG5mH,gPAWnCM,kBAEAD,EAAEsvG,YAAY7sG,wBAKtBzb,GAAK,GAET,SAASymI,GAAG/tH,GACV,IAAIC,EAAK+lH,KAAM5lH,EAAI,GAAGH,EAAGxC,4CAErBwC,EAAGgmH,qCACHhmH,EAAGgmH,2BACHhmH,EAAGimH,yHAMP,OAAO/L,GAAGn6G,EAAGI,GAEf,SAAS4tH,GAAGhuH,GACV,IAAIC,EAAK,IAAI6U,aAAa,EAAE,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IACxF,OAAOilG,GAAG/5G,EAAGC,GAEf,SAASguH,GAAGjuH,GACV,IAAIC,EAAK,IAAIyU,YAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACzC,OAAOmlG,GAAG75G,EAAGC,GAEf,SAASiuH,GAAGluH,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1Bm2D,GAAGj5D,EAAIG,GACP,IAAI4C,EAAIi3G,GAAGj6G,GAAIiD,EAAIjD,EAAEqkH,WACrB,OAAOlL,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYnhH,EAAGD,IAAKm2G,GAAGn5G,EAAG,IAAMA,EAAEmuH,cAAclrH,EAAGjD,EAAEouH,eAAgBpuH,EAAEquH,gBAAiBlV,GAAGn5G,EAAG,IAAMA,EAAEmuH,cAAclrH,EAAGjD,EAAEsuH,eAAgBtuH,EAAEquH,gBAAiBlV,GAAGn5G,EAAG,IAAMA,EAAEmuH,cAAclrH,EAAGjD,EAAEuuH,mBAAoBvuH,EAAEwuH,UAAWrV,GAAGn5G,EAAG,IAAMA,EAAEmuH,cAAclrH,EAAGjD,EAAEyuH,mBAAoBzuH,EAAEwuH,UAA8C,IAAnClqI,KAAIq7H,UAAU,iBAAyBxG,GAAGn5G,EAAG,IAAMA,EAAE2lH,WAAW1iH,EAAG,EAAG3C,EAAGL,EAAIG,EAAG,EAAGG,EAAGwC,EAAG,OAASo2G,GAAGn5G,EAAG,IAAMA,EAAE0uH,aAAazrH,EAAG,EAAG3C,EAAGL,EAAIG,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAY,OAAQ,CAAEviF,QAAS9+B,EAAGykH,SAAU,CAACrnH,EAAGH,IAElhB,SAAS0uH,GAAG3uH,GACV,OAAOA,EAAEsgH,oBAEX,SAASsO,GAAG5uH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKs8G,GAAGp/G,EAAIG,GACpB,OAAO8tH,GAAGluH,EAAGO,EAAGwC,EAAG4rH,GAAGruH,GAAIA,EAAEogH,mBAAoB1gH,EAAEkgH,OAEpD,SAAS2O,GAAG7uH,GACV,OAAOA,EAAEugH,wBAEX,SAASuO,GAAG9uH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKs8G,GAAGp/G,EAAIG,GACpB,OAAO8tH,GAAGluH,EAAGO,EAAGwC,EAAG8rH,GAAGvuH,GAAIA,EAAEogH,mBAAoBpgH,EAAEwgH,sBAEpD,SAASiO,GAAG/uH,GACV,OAAOA,EAAE2gH,sBAEX,SAASqO,GAAGhvH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKs8G,GAAGp/G,EAAIG,GACpB,OAAO8tH,GAAGluH,EAAGO,EAAGwC,EAAGgsH,GAAGzuH,GAAIN,EAAEogH,KAAMpgH,EAAEivH,eAEtC,SAASC,GAAGlvH,GACV,OAAOA,EAAEygH,0BAEX,SAAS0O,GAAGnvH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKy8G,GAAGv/G,EAAIG,GACpB,OAAO8tH,GAAGluH,EAAGO,EAAGwC,EAAGmsH,GAAG5uH,GAAIN,EAAEogH,KAAMpgH,EAAEkgH,OAEtC,SAASkP,GAAGpvH,GACV,OAAOA,EAAEwgH,8BAEX,SAAS6O,GAAGrvH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKy8G,GAAGv/G,EAAIG,GACpB,OAAO8tH,GAAGluH,EAAGO,EAAGwC,EAAGqsH,GAAG9uH,GAAIN,EAAEogH,KAAM9/G,EAAEwgH,sBAEtC,SAASwO,GAAGtvH,EAAGC,EAAIG,GACjB,OAAO+4G,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE0jH,aAActjH,IAAK64G,GAAGj5G,EAAGC,EAAI,eAAgBG,EAAG,EAAG,GAAI,IAAM64G,GAAGj5G,EAAGC,EAAI,KAAMG,EAAG,EAAG,GAAI,IAE3H,SAASmvH,GAAGvvH,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAE1B,IAAIC,EAAGC,EAAGC,EADVi2G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAYpkH,IAExCM,aAAaW,YAAc8B,EAAI,IAAI9B,WAAWd,EAAIE,EAAI,GAAI2C,EAAIjD,EAAEivH,cAAe/rH,EAAIlD,EAAEogH,OAASp9G,EAAI,IAAI8R,aAAa1U,EAAIE,EAAI,GAAI2C,EAAIjD,EAAEkgH,MAAOh9G,EAAIH,EAAE09G,2BAA4Bz9G,EAAEhiC,IAAIu/B,GAAuC,IAAnCjc,KAAIq7H,UAAU,iBAAyBxG,GAAGn5G,EAAG,IAAMA,EAAEwvH,cAAcxvH,EAAEqkH,WAAY,EAAG,EAAG,EAAGjkH,EAAGE,EAAGN,EAAEogH,KAAMn9G,EAAGD,IAAMm2G,GAAGn5G,EAAG,IAAMA,EAAE2lH,WAAW3lH,EAAEqkH,WAAY,EAAGnhH,EAAG9C,EAAGE,EAAG,EAAGN,EAAEogH,KAAMn9G,EAAGD,IAAKm2G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAY,OAEzZ,SAASoL,GAAGzvH,EAAGC,EAAIG,GACjB+4G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAYpkH,IAAMG,EAAEmb,gBAAgBra,WAAgD,IAAnC5c,KAAIq7H,UAAU,iBAAyBxG,GAAGn5G,EAAG,IAAMA,EAAEwvH,cAAcxvH,EAAEqkH,WAAY,EAAG,EAAG,EAAGjkH,EAAEkpC,MAAOlpC,EAAEipC,OAAQrpC,EAAEogH,KAAMpgH,EAAEivH,cAAe7uH,EAAEmb,OAAS49F,GAAGn5G,EAAG,IAAMA,EAAE2lH,WAAW3lH,EAAEqkH,WAAY,EAAGrkH,EAAEogH,KAAMhgH,EAAEkpC,MAAOlpC,EAAEipC,OAAQ,EAAGrpC,EAAEogH,KAAMpgH,EAAEivH,cAAe7uH,EAAEmb,OAA4C,IAAnCj3B,KAAIq7H,UAAU,iBAAyBxG,GAAGn5G,EAAG,IAAMA,EAAEwvH,cAAcxvH,EAAEqkH,WAAY,EAAG,EAAG,EAAGrkH,EAAEogH,KAAMpgH,EAAEivH,cAAe7uH,IAAM+4G,GAAGn5G,EAAG,IAAMA,EAAE2lH,WAAW3lH,EAAEqkH,WAAY,EAAGrkH,EAAEogH,KAAMpgH,EAAEogH,KAAMpgH,EAAEivH,cAAe7uH,IAAK+4G,GAAGn5G,EAAG,IAAMA,EAAEokH,YAAYpkH,EAAEqkH,WAAY,OAE7jB,SAASqL,GAAG1vH,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIP,EAAEwjH,eACVrK,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE2vH,kBAAmBpvH,IAC9C,IAAI0C,EAAI,GAAQhD,EAAKG,EACrB,OAAO+4G,GAAGn5G,EAAG,IAAMA,EAAE2jH,WAAW3jH,EAAE2vH,kBAAmB1sH,EAAGjD,EAAE4vH,cAAezW,GAAGn5G,EAAG,IAAMA,EAAE6vH,WAAW,EAAG,EAAGzvH,EAAGH,EAAID,EAAEogH,KAAMpgH,EAAEkgH,MAAO,IAAK/G,GAAGn5G,EAAG,IAAMA,EAAEyjH,WAAWzjH,EAAE2vH,kBAAmB,OAAQpvH,EAE7L,SAASuvH,GAAG9vH,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAGO,EAAI,IAAIuU,aAAa1U,GAChC,OAAOE,EAAEmjH,WAAWnjH,EAAEqvH,kBAAmB1vH,GAAKK,EAAEyvH,iBAAiBzvH,EAAEqvH,kBAAmB,EAAGpvH,GAAID,EAAEmjH,WAAWnjH,EAAEqvH,kBAAmB,MAAOpvH,EAExI,SAASyvH,GAAGhwH,EAAGC,EAAIG,EAAGE,GACpB,IAAKC,EAAGwC,GAAKs8G,GAAGp/G,EAAIG,GAAI4C,EAAI,EAAGC,EAAI,IAAI/B,WAAWo+G,GAAGr/G,EAAKG,EAAG4C,IAC7D,OAAOm2G,GAAGn5G,EAAG,IAAMA,EAAE6vH,WAAW,EAAG,EAAGtvH,EAAGwC,EAAGzC,EAAEqgH,sBAAuB3gH,EAAEivH,cAAehsH,IAAK,IAAI6R,aAAa7R,EAAEtkB,QAEhH,SAASsxI,GAAGjwH,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAChC,IAAIC,EAAIlD,EAAGoD,EAAI,IAAI0R,aAAa2qG,GAAG18G,EAAGC,IACtC,OAAOE,EAAEugH,WAAWvgH,EAAEysH,kBAAmB1vH,GAAKiD,EAAE6sH,iBAAiB7sH,EAAEysH,kBAAmB,EAAGvsH,GAAIF,EAAEugH,WAAWvgH,EAAEysH,kBAAmB,MAAOvsH,EAExI,SAAS8sH,GAAGlwH,EAAGC,EAAIG,GACjB,IAAIE,EAAI,IAAIwU,aAAa7U,EAAKG,EAAI,GAClC,OAAO+4G,GAAGn5G,EAAG,IAAMA,EAAE6vH,WAAW,EAAG,EAAGzvH,EAAGH,EAAID,EAAEogH,KAAMpgH,EAAEkgH,MAAO5/G,IAAKA,EA7FrEH,EAAG7Y,GAAI,CAAE6oI,kCAAmC,IAAMb,GAAIc,8BAA+B,IAAMV,GAAIW,2BAA4B,IAAMvB,GAAIwB,iCAAkC,IAAMjB,GAAIkB,2BAA4B,IAAM3B,GAAI4B,kBAAmB,IAAMvC,GAAIwC,0BAA2B,IAAMtB,GAAIuB,iCAAkC,IAAM1B,GAAI2B,mBAAoB,IAAM3C,GAAI9T,mBAAoB,IAAM6T,GAAI6C,gDAAiD,IAAMZ,GAAIa,gCAAiC,IAAMf,GAAIgB,sCAAuC,IAAMZ,GAAIa,+BAAgC,IAAMd,GAAIe,yCAA0C,IAAMnC,GAAIoC,+CAAgD,IAAM7B,GAAI8B,yCAA0C,IAAMvC,GAAIwC,wCAAyC,IAAMjC,GAAIkC,+CAAgD,IAAMrC,GAAIsC,2BAA4B,IAAM9B,GAAI+B,yBAA0B,IAAM7B,KA+Fv5B,IAAI5kJ,GAAK,MACP,YAAYo1B,GACVthC,KAAK4yJ,cAAgB,KAAM5yJ,KAAKosJ,QAAU,KAAMpsJ,KAAK6yJ,UAAW,EAAO7yJ,KAAK8yJ,YAAc,GAC1F,IAAIrxH,EAAI9b,KAAIq7H,UAAU,iBACtB,GAAU,MAAN1/G,GAActhC,KAAKm4D,GAAK72B,EAAIrK,GAAGwK,EAAGH,IAAOthC,KAAKm4D,GAAKsnF,GAAGh+G,GAAIH,EAAKthC,KAAKm4D,GAAuC,IAAnCxyC,KAAIq7H,UAAU,iBAAwB,CAChH,IAAI58G,EAAI9C,EACRthC,KAAK+yJ,kBAAoB,IAAMvY,GAAGp2G,EAAG,IAAMA,EAAE2uH,qBAAsB/yJ,KAAKwtJ,gBAAmBnpH,GAAMm2G,GAAGp2G,EAAG,IAAMA,EAAEopH,gBAAgBnpH,IAAKrkC,KAAKgzJ,kBAAqB3uH,GAAMm2G,GAAGp2G,EAAG,IAAMA,EAAE4uH,kBAAkB3uH,IAAKrkC,KAAKizJ,eAAiB,IAAMzY,GAAGp2G,EAAG,IAAMA,EAAEuiH,aAAaviH,EAAE8uH,4BAC7P,GAAU,MAAN5xH,EAAY,CACrB,IAAI8C,EAAI9C,EAAGsiH,aAAa,2BACxB,GAAS,MAALx/G,EACF,MAAM,IAAIH,MAAM,6EAClBjkC,KAAK+yJ,kBAAoB,IAAMvY,GAAGl5G,EAAI,IAAM8C,EAAE+uH,wBAAyBnzJ,KAAKwtJ,gBAAmBnpH,GAAMm2G,GAAGl5G,EAAI,IAAM8C,EAAEgvH,mBAAmB/uH,IAAKrkC,KAAKgzJ,kBAAqB3uH,GAAMm2G,GAAGl5G,EAAI,IAAM8C,EAAEivH,qBAAqBhvH,IAAKrkC,KAAKizJ,eAAiB,IAAMzY,GAAGl5G,EAAI,IAAMA,EAAGqlH,aAAaviH,EAAEkvH,2BAElR,IAAI3xH,EAAI,2BAA4BC,EAAI,8BACxC,GAAI5hC,KAAKuzJ,6BAA+BvzJ,KAAKm4D,GAAGyrF,aAAa,+BAAmE,IAAnCj+H,KAAIq7H,UAAU,iBAAwB,CACjI,IAAI58G,EAAI,oBAAqBC,EAAI,yBACjC,GAAIrkC,KAAKwzJ,sBAAwB5X,GAAG57I,KAAKm4D,GAAI/zB,GAAIukE,GAAG3oG,KAAKm4D,GAAI9zB,GAC3DrkC,KAAKyzJ,0BAA4B7X,GAAG57I,KAAKm4D,GAAI9zB,QAC1C,GAAI1e,KAAInkB,IAAI,4BACf,MAAM,IAAIyiC,MAAM,sHAClB,GAAIjkC,KAAK0zJ,0BAA4B1zJ,KAAKm4D,GAAGyrF,aAAajiH,GAAIgnE,GAAG3oG,KAAKm4D,GAAIv2B,GACxE5hC,KAAK2zJ,8BAAgC/X,GAAG57I,KAAKm4D,GAAIv2B,QAC9C,GAAIjc,KAAInkB,IAAI,4BACf,MAAM,IAAIyiC,MAAM,oIACb,GAAItC,EAAI,yBAA0BgnE,GAAG3oG,KAAKm4D,GAAIx2B,GACnD3hC,KAAK0zJ,0BAA4B1zJ,KAAKm4D,GAAGyrF,aAAajiH,OACnD,KAAIgnE,GAAG3oG,KAAKm4D,GAAIv2B,GAGnB,MAAM,IAAIqC,MAAM,uDAFhBjkC,KAAK2zJ,8BAAgC3zJ,KAAKm4D,GAAGyrF,aAAahiH,GAG5D5hC,KAAK4zJ,aAAevE,GAAGrvJ,KAAKm4D,IAAKn4D,KAAK6zJ,YAAcvE,GAAGtvJ,KAAKm4D,IAAKn4D,KAAK8zJ,YAAchZ,GAAG96I,KAAKm4D,IAAKn4D,KAAK+zJ,cAAgBhT,GAAG/gJ,KAAKm4D,GAAIn4D,KAAKyzJ,2BAEzI,YACE,OAAO9tI,KAAIuxC,QAAQ,SAErB,UACE,GAAIl3D,KAAK6yJ,SACP,OACc,MAAhB7yJ,KAAKosJ,SAAmB55G,QAAQmB,KAAK,wKAA+L,MAAtB3zC,KAAK4yJ,eAAyBpgH,QAAQmB,KAAK,sMACzP,IAAIrS,EAAKthC,KAAKm4D,GACdqiF,GAAGl5G,EAAI,IAAMA,EAAG0yH,UAAWxZ,GAAGl5G,EAAI,IAAMA,EAAGukH,gBAAgBvkH,EAAGwkH,YAAa,OAAQtL,GAAGl5G,EAAI,IAAMA,EAAG4lH,kBAAkBlnJ,KAAK8zJ,cAAetZ,GAAGl5G,EAAI,IAAMA,EAAGwjH,WAAWxjH,EAAGyjH,aAAc,OAAQvK,GAAGl5G,EAAI,IAAMA,EAAGwjH,WAAWxjH,EAAG4jH,qBAAsB,OAAQ1K,GAAGl5G,EAAI,IAAMA,EAAG2yH,aAAaj0J,KAAK6zJ,cAAe7zJ,KAAK6yJ,UAAW,EAE5T,2BAA2BvxH,EAAIG,GAC7B,OAAOzhC,KAAK8gE,kBAAmBmvF,GAAGjwJ,KAAKm4D,GAAI72B,EAAIG,EAAGzhC,KAAK+zJ,eAEzD,2BAA2BzyH,EAAIG,GAC7B,OAAOzhC,KAAK8gE,kBAAmBqvF,GAAGnwJ,KAAKm4D,GAAI72B,EAAIG,EAAGzhC,KAAK+zJ,eAEzD,iCAAiCzyH,EAAIG,GACnC,OAAOzhC,KAAK8gE,kBAAmBuvF,GAAGrwJ,KAAKm4D,GAAI72B,EAAIG,EAAGzhC,KAAK+zJ,eAEzD,yBAAyBzyH,EAAIG,GAC3BzhC,KAAK8gE,kBAAmBgwF,GAAG9wJ,KAAKm4D,GAAI72B,EAAIG,GAE1C,2BAA2BH,EAAIG,EAAGE,EAAGC,GACnC5hC,KAAK8gE,kBAAmB8vF,GAAG5wJ,KAAKm4D,GAAI72B,EAAIG,EAAGE,EAAGC,EAAG5hC,KAAK+zJ,eAExD,iCAAiCzyH,EAAIG,GACnC,OAAOzhC,KAAK8gE,kBAAmB4vF,GAAG1wJ,KAAKm4D,GAAI72B,EAAIG,EAAGzhC,KAAK+zJ,eAEzD,0BAA0BzyH,EAAIG,GAC5B,OAAOzhC,KAAK8gE,kBAAmB0vF,GAAGxwJ,KAAKm4D,GAAI72B,EAAIG,EAAGzhC,KAAK+zJ,eAEzD,oBAAoBzyH,GAClBthC,KAAK8gE,kBAAmB9gE,KAAK4yJ,gBAAkBtxH,IAAOi9G,GAAGv+I,KAAKm4D,GAAIn4D,KAAK8zJ,aAAc9zJ,KAAK4yJ,cAAgB,MAAOpY,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAG8uF,cAAc3lH,IAE3J,gDAAgDA,EAAIG,EAAGE,GACrD,OAAO3hC,KAAKk0J,qBAAqB5yH,EAAI,IAAM+vH,GAAGrxJ,KAAKm4D,GAAI12B,EAAGE,EAAG3hC,KAAK+zJ,gBAEpE,+BAA+BzyH,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC7C,OAAOitH,GAAGtxJ,KAAKm4D,GAAI72B,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGrkC,KAAK+zJ,eAE7C,gCAAgCzyH,EAAIG,GAClC,OAAO0vH,GAAGnxJ,KAAKm4D,GAAI72B,EAAIG,GAEzB,wBAAwBH,EAAIG,EAAGE,GAC7B3hC,KAAKm0J,yBAAyB7yH,GAC9B,IAAIM,EAAImvH,GAAG/wJ,KAAKm4D,GAAI12B,EAAGE,EAAG3hC,KAAK+zJ,eAC/B,OAAO/zJ,KAAKo0J,6BAA8BxyH,EAE5C,wBACE,IAAIN,EAAKthC,KAAKq0J,YAAYr0J,KAAKm4D,IAC/B,OAAOn4D,KAAKs0J,UAAUhzH,GAExB,YAAYA,GACV,IAAIG,EAAGE,EACP,GAAIhc,KAAIuxC,QAAQ,2BAA4B,CAC1C,IAAIt1B,EAAIN,EAAI8C,EAAIxC,EAAEulH,UAAUvlH,EAAE2yH,2BAA4B,GAC1DjzH,EAAGkzH,QAAS7yH,EAAI,KACd,IAAI0C,EAAIzC,EAAE6yH,eAAerwH,EAAG,EAAG,GAC/B,OAAOC,IAAMzC,EAAE8yH,kBAAoBrwH,IAAMzC,EAAE+yH,qBAC1ClzH,EAAI2C,OAEPze,KAAIq7H,UAAU,gDAAkD,GAAKv/G,EAAIzhC,KAAK40J,aAAc50J,KAAK60J,WAAYlzH,EAAI,IAAM3hC,KAAK80J,iBAAiBrzH,EAAG9b,KAAIq7H,UAAU,kDAAoDr/G,EAAI,KAAM,EAC9N,MAAO,CAAEozH,MAAOtzH,EAAGuzH,cAAerzH,GAEpC,gCAAgCL,EAAIG,EAAGE,GACrC,OAAO3hC,KAAKk0J,qBAAqB5yH,EAAI,IAAMiwH,GAAGvxJ,KAAKm4D,GAAI12B,EAAGE,IAE5D,cAAcL,GACZthC,KAAK8gE,kBACL,IAAIr/B,EAAIzhC,KAAKm4D,GACQ,MAArBn4D,KAAKi1J,eAAyBj1J,KAAKi1J,aAAe7F,GAAG3tH,IACrD,IAAIE,EAAIq5G,GAAGv5G,GACX+4G,GAAG/4G,EAAG,IAAMA,EAAEyzH,aAAavzH,EAAG3hC,KAAKi1J,eAAgBza,GAAG/4G,EAAG,IAAMA,EAAEyzH,aAAavzH,EAAGL,IAAMy8G,GAAGt8G,EAAGE,GAC7F,IAAIC,EAAIhhC,OAAOmwC,OAAOpP,EAAG,CAAE8rH,IAAKztJ,KAAK+yJ,sBACrC,OAAO/yJ,KAAKm1J,OAAStW,GAAGp9G,EAAGG,GAAIA,EAEjC,SAASN,GACPthC,KAAKutJ,WAAWjsH,GAAKthC,KAAKwtJ,gBAAgBlsH,EAAGmsH,KAC7C,IAAIhsH,EAAIzhC,KAAKm4D,GACbqiF,GAAG/4G,EAAG,IAAMA,EAAEqjH,WAAWrjH,EAAEyjH,qBAAsBllJ,KAAK6zJ,cAAelD,GAAGlvH,EAAGH,EAAIthC,KAAK4zJ,cAEtF,cAActyH,GACZthC,KAAK8gE,kBAAmBx/B,IAAOthC,KAAKosJ,UAAYpsJ,KAAKosJ,QAAU,MAAa,MAAN9qH,IAAek5G,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAGi9F,cAAc9zH,IAAMthC,KAAKgzJ,kBAAkB1xH,EAAGmsH,MAE/J,WAAWnsH,GACTthC,KAAK8gE,kBAAmB9gE,KAAKosJ,QAAU9qH,EAAoB,MAAhBthC,KAAKosJ,SAAmBpsJ,KAAKm1J,OAAStW,GAAG7+I,KAAKm4D,GAAIn4D,KAAKosJ,SAAU5R,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAGk9F,WAAW/zH,IAEnJ,mBAAmBA,EAAIG,EAAGE,GAAI,GAC5B,OAAO3hC,KAAK8gE,kBAAmBn/B,EAAI26G,GAAGt8I,KAAKm4D,GAAI72B,EAAIG,GAAK26G,GAAGp8I,KAAKm4D,GAAI72B,EAAIG,GAE1E,qBAAqBH,EAAIG,GACvB,OAAOzhC,KAAK8gE,kBAAmB05E,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAGgtF,kBAAkB7jH,EAAIG,IAEjF,0BAA0BH,EAAIG,GAC5B,OAAOzhC,KAAK8gE,kBAAmB9gE,KAAKm4D,GAAGwtF,mBAAmBrkH,EAAIG,GAEhE,sBAAsBH,EAAIG,EAAGE,GAC3B3hC,KAAK8gE,kBAAmB9gE,KAAKs1J,mBAAoBpb,GAAGl6I,KAAKm4D,GAAI72B,EAAIG,EAAGE,GAEtE,uBAAuBL,EAAIG,EAAGE,GAC5B3hC,KAAKu1J,6BAA6Bj0H,EAAIK,EAAGF,GAE3C,6BAA6BH,EAAIG,EAAGE,GAClC3hC,KAAK8gE,kBACL,IAAKl/B,EAAGwC,GAAKy8G,GAAGp/G,EAAGE,GACnB3hC,KAAKu1J,6BAA6Bj0H,EAAIM,EAAGwC,GAE3C,2BAA2B9C,EAAIG,EAAGE,EAAGC,GACnC5hC,KAAKw1J,iCAAiC7zH,EAAGL,EAAIM,EAAGH,GAElD,iCAAiCH,EAAIG,EAAGE,EAAGC,GACzC,MAAM,IAAIqC,MAAM,qDAElB,gBACkB,MAAhBjkC,KAAKosJ,SAAmBvN,GAAG7+I,KAAKm4D,GAAIn4D,KAAKosJ,SAAUzN,GAAG3+I,KAAKm4D,IAE7D,iBACEn4D,KAAK8gE,kBAAmB9gE,KAAKs1J,mBAC7B,IAAIh0H,EAAKthC,KAAKm4D,GACd,GAAIn4D,KAAKm1J,MAAO,CACd,IAAI1zH,EAAIzhC,KAAKizJ,iBACbzgH,QAAQwmB,OAAOv3B,IAAMzhC,KAAKosJ,QAAQqB,IAAK,sDAAuDztJ,KAAKy1J,gBAErGjb,GAAGl5G,EAAI,IAAMA,EAAGo0H,aAAap0H,EAAGq0H,UAAW,EAAGr0H,EAAGs0H,eAAgB,IAEnE,iCACE51J,KAAK8gE,kBAAmB05E,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAG67F,UAEpD,yBACE,OAA2C,MAApCh0J,KAAK61J,8BAAwC71J,KAAK61J,4BAA8Bja,GAAG57I,KAAKm4D,GAAsE,IAAlExyC,KAAIq7H,UAAU,gDAAwD,kCAAoC,6BAA8BhhJ,KAAK61J,4BAElP,+BACE,OAAO71J,KAAK81J,yBAEd,+BACE,OAAO91J,KAAK81J,yBAEd,aACE,GAAsE,IAAlEnwI,KAAIq7H,UAAU,gDAAuD,CACvE,IAAIr/G,EAAI3hC,KAAKm4D,GAAIv2B,EAAI5hC,KAAK+1J,+BAAgC3xH,EAAIzC,EAAEq0H,cAChE,OAAOr0H,EAAEizH,WAAWhzH,EAAEq0H,iBAAkB7xH,GAAIA,EAE9C,IAAI9C,EAAKthC,KAAKk2J,+BAAgCz0H,EAAIH,EAAG60H,iBACrD,OAAO70H,EAAG80H,cAAc90H,EAAG20H,iBAAkBx0H,GAAIA,EAEnD,WACE,GAAsE,IAAlE9b,KAAIq7H,UAAU,gDAAuD,CACvE,IAAIv/G,EAAIzhC,KAAKm4D,GAAIx2B,EAAI3hC,KAAK+1J,+BAE1B,YADAt0H,EAAEozH,SAASlzH,EAAEs0H,kBAGf,IAAI30H,EAAKthC,KAAKk2J,+BACd50H,EAAG+0H,YAAY/0H,EAAG20H,kBAEpB,6BAA6B30H,GAC3B,aAAajD,GAAE69B,YAAY,IAAMl8D,KAAK6yJ,UAAY7yJ,KAAK80J,iBAAiBxzH,EAAI3b,KAAIq7H,UAAU,kDAAmDhhJ,KAAKs2J,aAAah1H,EAAI3b,KAAIq7H,UAAU,iDAEnL,aAAa1/G,EAAIG,GACf,GAAU,IAANA,EACF,OAAO,KACT,GAAU,IAANA,EAAS,CACX,IAAIE,EAAI3hC,KAAKm4D,GACb,OAAOx2B,EAAE40H,kBAAkBj1H,EAAIK,EAAE60H,cAAgB,IAC5C,CACL,IAAI70H,EAAI3hC,KAAKk2J,+BACb,OAAOv0H,EAAE80H,kBAAkBn1H,EAAIK,EAAE+0H,kBAAoB,KAGzD,iBAAiBp1H,EAAIG,GACnB,GAAU,IAANA,EACF,OAAO,EACT,GAAU,IAANA,EAAS,CACX,IAAIE,EAAI3hC,KAAKm4D,GAAIv2B,EAAI5hC,KAAK+1J,+BAAgC3xH,EAAIzC,EAAE40H,kBAAkBj1H,EAAIK,EAAEg1H,wBACxF,OAAwB,MAAjB32J,KAAK42J,WAAqB52J,KAAK42J,SAAW52J,KAAKm4D,GAAGwuF,aAAa/kH,EAAEi1H,mBAAoBzyH,IAAMpkC,KAAK42J,SAClG,CACL,IAAIj1H,EAAI3hC,KAAKk2J,+BAAgCt0H,EAAID,EAAE80H,kBAAkBn1H,EAAIK,EAAEm1H,4BAC3E,OAAwB,MAAjB92J,KAAK42J,WAAqB52J,KAAK42J,SAAW52J,KAAKm4D,GAAGwuF,aAAahlH,EAAEk1H,mBAAoBj1H,IAAM5hC,KAAK42J,UAG3G,UAAUt1H,GACR,OAAO,IAAIkP,QAAS/O,IAClBzhC,KAAK+2J,cAAc,IAAMz1H,EAAG0zH,gBAAiB,IAAMvzH,OAGvD,YACE,IAAIH,EAAK01H,GAAGh3J,KAAK8yJ,YAAYv+F,IAAK9yB,GAAMA,EAAEw1H,WAC1C,IAAK,IAAIx1H,EAAI,EAAGA,GAAKH,IAAMG,EAAG,CAC5B,IAAMy1H,UAAWv1H,GAAM3hC,KAAK8yJ,YAAYrxH,GACxCE,IAEF3hC,KAAK8yJ,YAAc9yJ,KAAK8yJ,YAAY96H,MAAMsJ,EAAK,GAEjD,cAAcA,EAAIG,GAChB,GAAIzhC,KAAK8yJ,YAAYjnH,KAAK,CAAEorH,SAAU31H,EAAI41H,UAAWz1H,IAAMzhC,KAAK8yJ,YAAY5yJ,OAAS,EACnF,OACF,IAAIyhC,EACJ,qBAAsBhc,KAAIsxC,WAAat1B,EAAIhc,KAAIsxC,SAASkgG,iBAAiBzjH,KAAK/tB,KAAIsxC,WAAY54B,GAAE69B,YAAY,KAAOl8D,KAAKo3J,YAAyC,IAA5Bp3J,KAAK8yJ,YAAY5yJ,QAAe,IAAM,EAAG,KAAMyhC,GAEtL,yBAAyBL,GACvBthC,KAAK8gE,kBAAmBk5E,GAAGh6I,KAAKm4D,GAAI72B,EAAIthC,KAAK8zJ,aAAc9zJ,KAAKm1J,OAASxW,GAAG3+I,KAAKm4D,IAEnF,6BACwB,MAAtBn4D,KAAK4yJ,eAAyB5Y,GAAGh6I,KAAKm4D,GAAIn4D,KAAK4yJ,cAAe5yJ,KAAK8zJ,aAAc9zJ,KAAKm1J,OAASxW,GAAG3+I,KAAKm4D,KAAOomF,GAAGv+I,KAAKm4D,GAAIn4D,KAAK8zJ,aAEjI,qBAAqBxyH,EAAIG,GACvBzhC,KAAKm0J,yBAAyB7yH,GAC9B,IAAIK,EAAIF,IACR,OAAOzhC,KAAKo0J,6BAA8BzyH,EAE5C,6BAA6BL,EAAIG,EAAGE,GAClC3hC,KAAK8gE,kBACL,IAAIl/B,EAAI5hC,KAAKm4D,GACb6hF,GAAGp4G,EAAGN,EAAIthC,KAAK8zJ,aAAc9zJ,KAAKm1J,OAASxW,GAAG/8G,GAAI5hC,KAAK4yJ,cAAgBtxH,EAAIk5G,GAAG54G,EAAG,IAAMA,EAAEmkH,SAAS,EAAG,EAAGtkH,EAAGE,IAAK64G,GAAG54G,EAAG,IAAMA,EAAEokH,QAAQ,EAAG,EAAGvkH,EAAGE,IAEjJ,iCAAiCL,EAAIG,EAAGE,EAAGC,GACzC5hC,KAAK8gE,kBAAmB05E,GAAGx6I,KAAKm4D,GAAI,IAAMn4D,KAAKm4D,GAAG6tF,QAAQ1kH,EAAIG,EAAGE,EAAGC,IAEtE,kBACE,GAAI5hC,KAAK6yJ,SACP,MAAM,IAAI5uH,MAAM,2CAEpB,mBACE,GAAoB,MAAhBjkC,KAAKosJ,QACP,MAAM,IAAInoH,MAAM,sCAGtB,SAAS+yH,GAAG31H,GACV,IAAIC,EAAK,EACT,KAAOA,EAAKD,EAAEnhC,QAAUmhC,EAAEC,OAASA,GAEnC,OAAOA,EAAK,EAEd,IAAMg2F,QAAS+/B,GAAI7/B,aAAc8/B,GAAI5/B,mBAAoB6/B,GAAI3/B,eAAgB4/B,GAAI1/B,SAAU2/B,GAAIz/B,SAAU0/B,GAAIx/B,WAAYy/B,GAAIv/B,UAAWw/B,GAAIt/B,QAASu/B,GAAIr/B,UAAWs/B,GAAIl/B,UAAWm/B,GAAIj/B,aAAck/B,GAAIh/B,aAAci/B,GAAI7+B,YAAa8+B,GAAIh/B,iBAAkBi/B,GAAI3+B,SAAU4+B,GAAI9+B,cAAe++B,GAAI3+B,aAAc4+B,GAAI1+B,QAAS2+B,GAAIz+B,QAAS0+B,GAAIx+B,YAAay+B,GAAIv+B,YAAaw+B,GAAIt+B,aAAcu+B,GAAIr+B,QAASs+B,GAAIp+B,aAAcq+B,GAAIn+B,SAAUo+B,GAAIl+B,iBAAkBm+B,GAAIj+B,gBAAiBk+B,GAAIh+B,yBAA0Bi+B,GAAI/9B,UAAWg+B,GAAI99B,UAAW+9B,GAAI79B,YAAa89B,GAAI59B,YAAa69B,GAAI39B,cAAe49B,GAAI39B,UAAW49B,GAAI19B,wBAAyB29B,GAAIz9B,kBAAmB09B,GAAIx9B,2BAA4By9B,GAAIv9B,SAAUw9B,GAAIp9B,uBAAwBq9B,GAAIn9B,iBAAkBo9B,GAAIl9B,iBAAkBm9B,GAAIj9B,gBAAiBk9B,GAAIh9B,2BAA4Bi9B,GAAI/8B,QAASg9B,GAAI98B,SAAU+8B,GAAI78B,SAAU88B,GAAI58B,cAAe68B,GAAI38B,WAAY48B,IAAOhjI,GACz4B,SAASijI,GAAGj5H,EAAGC,GACb,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKtJ,MAAM,EAAGsJ,GAAIizB,IAAK9yB,GAAM,GAAGJ,KAAKI,KAExE,SAAS84H,GAAGl5H,EAAGC,GACb,OAAc,IAAPA,EAAW,CAACD,GAAKi5H,GAAGj5H,EAAGC,GAEhC,SAASk5H,GAAGn5H,EAAGC,GACb,GAAU,IAAND,EACF,MAAO,KACT,IAAII,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAGM,IACrBF,GAAKH,EAAGK,GAAIA,EAAIN,EAAI,IAAMI,GAAK,KACjC,OAAOA,EAET,IAAIg5H,GAAK,MACP,YAAYn5H,GACV,GAAIthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAO7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAcz4D,EAAIthC,KAAKi/D,KAAO39B,EAAGphC,OAAQF,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAAuB,IAAdF,KAAKi/D,KAC9Lj/D,KAAK0pJ,SAAW,iGAKb,CACH,IAAIjoH,EAAI84H,GAAG,KAAMv6J,KAAKi/D,MAAOt9B,EAAIoqH,GAAG/rJ,KAAKi/D,MAAOr9B,EAAI5hC,KAAK06J,wBAAwBj5H,GAAI2C,EAAIpkC,KAAK26J,SAASl5H,GAAI4C,EAAIrkC,KAAK46J,UAAUn5H,GAC9HzhC,KAAK0pJ,SAAW,sCAEV/nH,6CAEGC,0EAGDwC,mCAEeC,wCAM3B,mBAAmB/C,GACjB,IAAIG,EAAI,GACR,IAAK,IAAIE,EAAI,EAAGA,GAAK,EAAGA,IACtB,IAAK,IAAIC,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAAIwC,EAAI,GAAS,IAANzC,EAAU,IAAM,UAAgB,IAANC,EAAU,IAAM,QACrD,IAAK,IAAIyC,EAAI,EAAGA,EAAIrkC,KAAKi/D,KAAM56B,IAC7BD,EAAO9C,EAAGA,EAAGphC,OAAS,EAAImkC,GAAtB,IAA8BD,EACpC3C,EAAEoK,KAAKzH,GAEX,OAAO3C,EAET,wBAAwBH,GACtB,GAAkB,IAAdthC,KAAKi/D,KACP,MAAO,SAAQj/D,KAAK0oJ,oBAAsB,WAAa1oJ,KAAK+5F,YAAY,IAC1E,IAAIt4D,EAAI,GACR,IAAK,IAAIE,EAAI3hC,KAAKi/D,KAAO,EAAGt9B,EAAI3hC,KAAKi/D,KAAMt9B,IACzCF,GAAK,GAAGH,EAAGK,SAAS3hC,KAAK0oJ,oBAAsB,YAAY/mH,KAAO3hC,KAAK+5F,YAAYp4D,KAAMA,EAAI3hC,KAAKi/D,KAAO,IAAMx9B,GAAK,MACtH,OAAOA,EAET,SAASH,GACP,GAAkB,IAAdthC,KAAKi/D,KACP,MAAO,GACT,IAAIx9B,EAAIH,EAAGtJ,OAAO,GAAI2J,EAAI3hC,KAAK0oJ,oBAAsB,YAAY1oJ,KAAKi/D,YAAcj/D,KAAK+5F,YAAY/5F,KAAKi/D,KAAO,GAAIr9B,EAAI5hC,KAAK0oJ,oBAAsB,YAAY1oJ,KAAKi/D,YAAcj/D,KAAK+5F,YAAY/5F,KAAKi/D,KAAO,GAChN,MAAO,mBACKx9B,EAAE,sBACFA,EAAE,oFAIUE,iCACAC,WAG1B,UAAUN,GACR,IAAIG,EAAIzhC,KAAK66J,mBAAmBv5H,GAChC,OAAqB,IAAdthC,KAAKi/D,KAAa,wBAAwBj/D,KAAK0oJ,oBAAsB,WAAa1oJ,KAAK+5F,YAAY,gCAAkC,QAAQt4D,EAAE,uCAC1HA,EAAE,uCACFA,EAAE,gDACOA,EAAE,QAGvCq5H,GAAK,MACP,YAAYx5H,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,aAAcw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACrN,IAAIyhC,EAAI,GACR,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIwC,EAAI,eACRxC,EAAI,IAAM,IAAMwC,GAAK,kBAAmBxC,EAAI,IAAMwC,GAAK,kBAAmBzC,GAAK,aAC3EyC,cACAxC,EAAI,EAAI,0CAA4C,iOAM3CA,mGAETA,EAAI,EAAI,IAAM,aAGpB5hC,KAAK0pJ,SAAW,WACZqR,GAAGt5H,EAAGzhC,KAAK0oJ,+BACX1oJ,KAAK0oJ,oBAAsBP,KAAOD,GAAG5mH,oJAQxBthC,KAAK0oJ,oBAAsB,cAAgBpnH,EAAG,2BAC9CthC,KAAK0oJ,oBAAsB,cAAgBpnH,EAAG,kBAEzDK,mDAOV,SAASo5H,GAAG15H,EAAGC,GACb,MAAO,oEAEDA,EAAK2mH,GAAG,CAAC,IAAK,IAAK,KAAM,cAAgBH,GAAG,CAAC,IAAK,IAAK,KAAMzmH,8CAKrE,IAAI25H,GAAK,MACP,YAAY15H,GACVthC,KAAKi7J,MAAQ35H,EAAIthC,KAAKk7J,gBAAkB,EAAGl7J,KAAKm7J,gBAAkB,EAAGn7J,KAAKo7J,mBAAqB,EAAGp7J,KAAKq7J,cAAgB,EAAGr7J,KAAKs7J,aAAe,GAAIt7J,KAAKu7J,aAAe,GAAIv7J,KAAKw7J,YAAa,EAE9L,eAAel6H,EAAIG,EAAGE,GACpB,IAAIC,EAAI65H,GAAGh6H,EAAGE,GAAIyC,EAAIs3H,GAAGp6H,EAAIM,EAAGD,GAChCyC,KAAKpkC,KAAKs7J,eAAiBt7J,KAAKs7J,aAAal3H,GAAK,IAAKA,KAAKpkC,KAAKu7J,eAAiBv7J,KAAKu7J,aAAan3H,GAAK,IACzG,IAMIE,EANAD,EAAIs3H,GAAGr6H,EAAIM,EAAG5hC,KAAKi7J,MAAM9iG,GAAIn4D,KAAKi7J,MAAMlH,cAAepyH,GAC3D,GAAI3hC,KAAKs7J,aAAal3H,GAAGlkC,OAAS,EAAG,CACnCF,KAAKm7J,kBAAmBn7J,KAAKk7J,kBAAmBl7J,KAAKq7J,eAAiBh3H,EAAGrkC,KAAK0rB,MAC9E,IAAI6Y,EAAIvkC,KAAKs7J,aAAal3H,GAAG0Z,MAC7B,OAAO99C,KAAKu7J,aAAan3H,GAAGyH,KAAKtH,GAAIA,EAGvC,OAAO3C,IAAMq9G,GAAGgE,mBAAqB3+G,EAAItkC,KAAKi7J,MAAMnJ,0BAA0BxwH,EAAG,GAAIA,EAAG,IAAMM,IAAMq9G,GAAGiE,mBAAqB5+G,EAAItkC,KAAKi7J,MAAMtJ,iCAAiCrwH,EAAG,GAAIA,EAAG,IAAMM,IAAMq9G,GAAG8D,iBAAmBz+G,EAAItkC,KAAKi7J,MAAMrJ,2BAA2BtwH,EAAG,GAAIA,EAAG,IAAMM,IAAMq9G,GAAG6D,iBAAmBx+G,EAAItkC,KAAKi7J,MAAMvJ,2BAA2BpwH,EAAG,GAAIA,EAAG,IAAMM,IAAMq9G,GAAG+D,2BAA6B1+G,EAAItkC,KAAKi7J,MAAMlJ,iCAAiCzwH,EAAG,GAAIA,EAAG,KAAMthC,KAAKu7J,aAAan3H,GAAGyH,KAAKvH,GAAItkC,KAAKk7J,kBAAmBl7J,KAAKo7J,oBAAsB/2H,EAAGrkC,KAAK0rB,MAAO4Y,EAEhjB,eAAehD,EAAIG,EAAGE,EAAGC,GACvB,GAAyB,MAArB5hC,KAAKs7J,aACP,OACF,IAAIl3H,EAAIq3H,GAAG95H,EAAGC,GAAIyC,EAAIq3H,GAAGj6H,EAAG2C,EAAGxC,GAC/ByC,KAAKrkC,KAAKs7J,eAAiBt7J,KAAKs7J,aAAaj3H,GAAK,IAClD,IAAIC,EAAIq3H,GAAGl6H,EAAG2C,EAAGpkC,KAAKi7J,MAAM9iG,GAAIn4D,KAAKi7J,MAAMlH,cAAenyH,GAAI2C,EAAI5e,KAAIq7H,UAAU,mCACzE,IAAPz8G,GAAYvkC,KAAKo7J,mBAAqB72H,GAAKvkC,KAAKi7J,MAAMW,oBAAoBt6H,EAAG6hC,SAAUnjE,KAAKo7J,oBAAsB92H,IAAMtkC,KAAKs7J,aAAaj3H,GAAGwH,KAAKvK,GAAKthC,KAAKm7J,kBAAmBn7J,KAAKq7J,eAAiB/2H,GAAItkC,KAAKk7J,kBAC9M,IAAIz2H,EAAIzkC,KAAKu7J,aAAal3H,GAAI6B,EAAIzB,GAAKA,EAAE/jC,QAAQ4gC,GACjD,GAAS,MAAL4E,GAAaA,EAAI,EACnB,MAAM,IAAIjC,MAAM,4EAClBQ,EAAEyB,GAAKzB,EAAEA,EAAEvkC,OAAS,GAAIukC,EAAEqZ,MAAO99C,KAAK0rB,MAExC,MACE,IAAK1rB,KAAKw7J,WACR,OACF,IAAIl6H,EAAKthC,KAAKm7J,gBAAkBn7J,KAAKk7J,gBACrC1oH,QAAQ9mB,IAAI,YAAa,GAAG1rB,KAAKm7J,qBAAqBn7J,KAAKk7J,kBAAmB,IAAI55H,MAClF,IAAIG,EAAIzhC,KAAKq7J,cAAgBr7J,KAAKo7J,mBAClC5oH,QAAQ9mB,IAAI,oBAAoB1rB,KAAKo7J,oBAAuB5oH,QAAQ9mB,IAAI,iBAAiB1rB,KAAKq7J,kBAAkBt3H,KAAK3O,MAAM,IAAMqM,QAEnI,wBACE,OAAOzhC,KAAKo7J,mBAEd,mBACE,OAAOp7J,KAAKq7J,cAEd,qBACE,OAAOr7J,KAAKk7J,gBAEd,qBACE,OAAOl7J,KAAKm7J,gBAEd,UACE,GAAyB,MAArBn7J,KAAKs7J,aAAsB,CAC7B,IAAK,IAAIh6H,KAAMthC,KAAKs7J,aAClBt7J,KAAKs7J,aAAah6H,GAAIqY,QAASlY,IAC7BzhC,KAAKi7J,MAAMW,oBAAoBn6H,EAAE0hC,WAErC,IAAK,IAAI7hC,KAAMthC,KAAKu7J,aAClBv7J,KAAKu7J,aAAaj6H,GAAIqY,QAASlY,IAC7BzhC,KAAKi7J,MAAMW,oBAAoBn6H,EAAE0hC,WAErCnjE,KAAKs7J,aAAe,KAAMt7J,KAAKu7J,aAAe,KAAMv7J,KAAKk7J,gBAAkB,EAAGl7J,KAAKm7J,gBAAkB,EAAGn7J,KAAKo7J,mBAAqB,EAAGp7J,KAAKq7J,cAAgB,KAIhK,SAASQ,GAAGx6H,EAAGC,GACb,IAAIG,EAAIJ,EACR,GAAIC,IAAOG,EAAEw/G,KACX,OAAO,EACT,GAAI3/G,IAAOG,EAAEy/G,KACX,OAAO,EACT,GAAI5/G,IAAOG,EAAE2/G,QACX,OAAO,GACT,GAAI9/G,IAAOD,EAAEogH,KACX,OAAO,GACT,GAAIngH,IAAOG,EAAE0/G,QACX,OAAO,EACT,GAAI7/G,IAAOG,EAAE+/G,MACX,OAAO,EACT,MAAM,IAAIv9G,MAAM,2BAA2B3C,GAE7C,SAASq6H,GAAGt6H,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAmByC,EAAfD,EAAI03H,GAAGx6H,EAAIK,GACf,GAAIC,EAAG,CACL,IAAK2C,EAAGE,GAAKo8G,GAAGx/G,EAAE,GAAIA,EAAE,IACxBgD,EAAIE,EAAIE,MACH,CACL,IAAKF,EAAGE,GAAKi8G,GAAGr/G,EAAE,GAAIA,EAAE,IACxBgD,EAAIE,EAAIE,EAEV,IAAIH,EAAIu3H,GAAGp6H,EAAG2C,GACd,OAAOC,EAAIC,EAEb,SAASw3H,GAAGz6H,EAAGC,GACb,OAAQD,GACN,KAAK49G,GAAGgE,mBACN,OAAOsN,GAAGjvH,GACZ,KAAK29G,GAAGiE,mBACN,OAAOuN,GAAGnvH,GACZ,KAAK29G,GAAG8D,iBACN,OAAOiN,GAAG1uH,GACZ,KAAK29G,GAAG6D,iBACN,OAAOoN,GAAG5uH,GACZ,KAAK29G,GAAG+D,yBACN,OAAOoN,GAAG9uH,GACZ,QACE,MAAM,IAAI2C,MAAM,iCAAiC5C,IAGvD,SAAS06H,GAAG16H,GACV,OAAO1b,KAAIuxC,QAAQ,gCAAkC71B,EAAI49G,GAAGgE,mBAAqBhE,GAAG8D,iBAAmB1hH,EAAI49G,GAAGiE,mBAAqBjE,GAAG6D,iBAExI,SAAS2Y,GAAGp6H,EAAGC,GACb,GAAID,IAAM29G,GAAG2D,OACX,OAAO1D,GAAGgE,mBACZ,GAAI5hH,IAAM29G,GAAG0D,QAAe,MAALrhH,EACrB,OAAO06H,GAAGz6H,GACZ,GAAID,IAAM29G,GAAG6D,UAAYxhH,IAAM29G,GAAG4D,OAChC,OAAO3D,GAAG+D,yBACZ,MAAM,IAAI/+G,MAAM,gCAAgC5C,GAElD,SAASq6H,GAAGr6H,EAAGC,EAAIG,GACjB,MAAO,GAAGJ,EAAE,MAAMA,EAAE,MAAMC,KAAMG,IAElC,IAAIyH,GAAK,MACP,YAAY5H,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAASF,KAAK0pJ,SAAW,oDAErHjoH,0JAYNu6H,GAAK,0BACLC,GAAK,YACLC,GAAK,iBACLC,GAAK,0CACLC,GAAKJ,GAAK,oCAGVK,GAAKL,GAAK,8CAGVM,GAAK,YACLC,GAAK,sCACLC,GAAK,YACLC,GAAK,+PAULC,GAAK,iRAWLC,GAAK,gSAWLC,GAAK,sCACLC,GAAK,MACP,YAAYv7H,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAASF,KAAK0pJ,SAAW,kDAEzKjoH,wJAYNq7H,GAAK,MACP,YAAYx7H,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAO1uJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACvJ,IAAIuhC,EAAIH,EAAGphC,OAAQyhC,EAAI44H,GAAG,KAAM94H,GAAIG,EAAImqH,GAAGtqH,GAAI2C,EAAIo2H,GAAG/4H,EAAGE,GAAI0C,EAAI1C,EAAE3J,OAAO,GAAIsM,EAAI7C,GAAK,EAAI,KAAO,QAAQ4C,EAAEqzB,KAAK,QACjH13D,KAAK0pJ,SAAW,kCAEV9nH,8DACwBwC,oDAEUE,wBAKxCy4H,GAAKtyI,GAAG82F,UACRy7C,GAAK,KACLC,GAAK,KACLC,GAAK,GACT,SAASC,GAAG97H,GACV,OAAOA,KAAK67H,KAAOA,GAAG77H,GAAK,IAAK67H,GAAG77H,GAErC,IAAI+7H,GAAKz3I,KAAIq7H,UAAU,8BACnBqc,GAAK,IACT,SAASC,KACP,OAA4B,MAArB33I,KAAIgoB,OAAOS,OAAiB,KAAOzoB,KAAIgoB,OAAOS,OAAOs8B,OAAS/kD,KAAIgoB,OAAOS,OAAOu8B,MAAQ35B,OAAOusH,iBAAmBF,GAAK,KAAO,KAEvI,IAAI3tJ,GAAK,cAAchC,EACrB,aACE,OAAOgC,GAAGwnH,aAEZ,YAAY51F,GACV,GAAImgC,QAASzhE,KAAKw9J,YAA8B,IAAI9qG,QAAW1yD,KAAKy9J,gBAAkC,IAAIt7J,QAAWnC,KAAK09J,aAA+B,IAAIhrG,QAAW1yD,KAAK29J,cAAgB,EAAG39J,KAAK49J,aAAe,EAAG59J,KAAK69J,eAAiB,EAAG79J,KAAK89J,gBAAkB,EAAG99J,KAAK+9J,mBAAoB,EAAO/9J,KAAKg+J,eAAiB,EAAGh+J,KAAK6yJ,UAAW,GAAQltI,KAAIuxC,QAAQ,aACrW,MAAM,IAAIjzB,MAAM,yCAClB,IAAIxC,EACJ,GAAU,MAANH,EAAY,CACd,GAAIA,aAAcp1B,GAChBu1B,EAAIH,MACD,CACH,IAAIK,EAAI89G,GAAG95H,KAAIq7H,UAAU,iBAAkB1/G,GAC3CG,EAAI,IAAIv1B,GAAGy1B,GAEb3hC,KAAKi+J,YAAc,GAAIj+J,KAAKk+J,qBAAsB,MAC7C,CACL,IAAIv8H,EAAI89G,GAAG95H,KAAIq7H,UAAU,kBACzBv/G,EAAI,IAAIv1B,GAAGy1B,GAAI3hC,KAAKi+J,YAAcd,GAAGx3I,KAAIq7H,UAAU,kBAAmBhhJ,KAAKk+J,qBAAsB,EAEnGl+J,KAAKi7J,MAAQx5H,EAAGzhC,KAAK6zG,OAAS7zG,KAAKi7J,MAAM9iG,GAAG07C,OAAQ7zG,KAAKm+J,eAAiB,IAAInD,GAAGh7J,KAAKi7J,OAAQj7J,KAAKo+J,mBAAqBd,KAAMt9J,KAAKksJ,QAAU,IAAI5jJ,EAAGtI,KAAMulB,MAE5J,aACE,OAAOvlB,KAAKksJ,QAAQjlF,aAAejnE,KAAKg+J,eAE1C,aAAa18H,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC3B,IAAIC,EAAItkC,KAAKq3H,eAAe51F,EAAGE,GAAI4C,EAAIvkC,KAAKksJ,QAAQ1qJ,IAAI8iC,EAAEs8B,QAC1Dr8B,EAAE6kH,UAAW,EAAO7kH,EAAE4+B,QAAU,CAAEA,QAAS7hC,EAAIwnH,SAAU,CAAClnH,EAAGwC,IAAMG,EAAEukH,SAAW,CAAClnH,EAAGwC,GACpF,IAAIK,EAAIi4G,GAAGj7G,GAAIyE,EAAI,IAAIgpH,GAAGzqH,GAAG,EAAOJ,GAAIyD,EAAI9nC,KAAKq+J,gBAAgBn4H,EAAG,CAAC5B,GAAI3C,EAAG,CAAC,CAACC,EAAGwC,KACjF,OAAO0D,EAAEq3B,MAAQ19B,EAAG8C,EAAE4+B,QAAU,KAAMnjE,KAAKu+H,8BAA8Bj6F,GAAIwD,EAAE84B,OAEjF,MAAMt/B,EAAIG,EAAGE,GACX,IAAKhc,KAAIuxC,QAAQ,mCAAqCvxC,KAAIuxC,QAAQ,WAAal3D,KAAKs+J,uBAAuBh9H,GAAW,cAANK,GAA2B,MAANL,EACnI,MAAM,IAAI2C,MAAM,yEAClB,IAAIrC,EAAI,CAAEy9B,GAAIr/D,KAAKk3H,cACnB,OAAOl3H,KAAKksJ,QAAQ7pJ,IAAIu/B,EAAG,CAAEu9B,MAAO19B,EAAGi9B,MAAO/8B,EAAG7iC,OAAQwiC,EAAIi9H,MAAOvf,GAAG2D,OAAQz8E,SAAU,IAAMtkC,EAEjG,SAASN,GACP,OAAOthC,KAAKksJ,QAAQrqJ,IAAIy/B,GAAMthC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAI4kC,SAAW,EAEhE,OAAO5kC,GACL,IAAIG,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,GACzBG,EAAEykC,WAEJ,OAAO5kC,GACL,GAAIthC,KAAKksJ,QAAQrqJ,IAAIy/B,GAAK,CACxB,IAAIG,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,GACzBG,EAAEykC,YAGN,KAAK5kC,EAAIG,EAAGE,EAAGC,EAAGwC,GAChB,GAAIze,KAAIuxC,QAAQ,UAAYl3D,KAAKs+J,uBAAuB78H,GAAU,cAANG,EAC1D,MAAM,IAAIqC,MAAM,yEAClBjkC,KAAKksJ,QAAQ7pJ,IAAIi/B,EAAI,CAAE69B,MAAOx9B,EAAG+8B,MAAO98B,EAAG9iC,OAAQ2iC,EAAG88H,MAAOvf,GAAG2D,OAAQz8E,SAAU9hC,IAEpF,8BAA8B9C,GAC5BthC,KAAKmmE,YAAY7kC,EAAGs/B,QAEtB,SAASt/B,GACP,IAAIG,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAOxiC,OAAQ6iC,EAAG+8B,MAAO98B,EAAGw1F,mBAAoBhzF,EAAGpM,MAAOqM,EAAG86B,MAAO76B,EAAG8kH,SAAU7kH,GAAM9C,EAChH,GAAS,MAAL4C,EAAW,CACb,IAAI0D,EACAA,EAAJxD,EAAQ,IAAIs4H,GAAGv4H,EAAGg4H,IAAU,IAAIpzH,GAAG5E,EAAGg4H,IACtC,IAAIt0H,EAAIhoC,KAAKq+J,gBAAgBt2H,EAAG,CAAC,CAAE64B,OAAQt/B,EAAI69B,MAAO76B,EAAGo6B,MAAO98B,IAAMA,GAAIwG,EAAIpoC,KAAKihE,SAASj5B,EAAE44B,QAC9F,OAAO5gE,KAAKu+H,8BAA8Bv2F,GAAII,EAEhD,GAAS,MAALzG,EACF,OAAO3hC,KAAKw+J,qBAAqBl9H,GACnC,GAAU,WAANM,EACF,OAAOD,EACT,IAAmCuE,EAE/B4B,EAFArD,EAAyB,MAArBzkC,KAAKy+J,aAGb,GAFAh6H,IAAMyB,EAAI7H,GAAEshB,OAEF,cAAN/d,EAAmB,CACrB,IAAImG,EAAI/nC,KAAKihE,SAAS78B,EAAEhR,KAAKwtC,QAAS54B,EAAIhoC,KAAKihE,SAAS78B,EAAE9a,KAAKs3C,QAC/D94B,EAAIzpB,GAAEkhG,uBAAuBx3E,EAAGC,QAEhCF,EAAI9nC,KAAK0+J,qBAAqBp9H,GAChC,OAAOmD,IAAMzkC,KAAK69J,gBAAkBx/H,GAAEshB,MAAQzZ,GAAIlmC,KAAKw+J,qBAAqBl9H,EAAIwG,GAElF,WAAWxG,GACT,GAAIthC,KAAKw9J,YAAY37J,IAAIy/B,GAAK,CAC5B,IAAI8G,EAAIpoC,KAAKw9J,YAAYh8J,IAAI8/B,GAC7B,OAAO,IAAIkP,QAAStE,GAAM9D,EAAEyD,KAAKK,IAEnC,IAAIzK,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAOxiC,OAAQ6iC,EAAGw9B,MAAOv9B,EAAG5J,MAAOoM,EAAGs6B,MAAOr6B,EAAG+yF,mBAAoB9yF,EAAG8kH,SAAU7kH,GAAM9C,EAChH,GAAS,MAAL2C,EAAW,CACb,IAAIgE,EACAA,EAAJ7D,EAAQ,IAAIs4H,GAAGj7H,EAAG06H,IAAU,IAAIpzH,GAAGtH,EAAG06H,IACtC,IAAIpwH,EAAIlsC,KAAKq+J,gBAAgBj2H,EAAG,CAAC,CAAEw4B,OAAQt/B,EAAI69B,MAAOv9B,EAAG88B,MAAOr6B,IAAMA,GAAI8H,EAAInsC,KAAK+gE,KAAK70B,EAAE00B,QAC1F,OAAO5gE,KAAKu+H,8BAA8BryF,GAAIC,EAEhD,GAAS,MAALxK,EACF,OAAO3hC,KAAKw+J,qBAAqBl9H,GACnC,GAAI3b,KAAIuxC,QAAQ,WAAavxC,KAAIuxC,QAAQ,iCAAsE,IAAnCvxC,KAAIq7H,UAAU,iBACxF,MAAM,IAAI/8G,MAAM,gGAClB,IAAciC,EAOV4B,EAPArD,EAAI,KACR,GAAU,cAANJ,GAAqB1e,KAAInkB,IAAI,0BAA2B,CAC1D0kC,EAAIlmC,KAAK+0C,OAAOzT,GAChB,IAAI8G,EAAIpoC,KAAKksJ,QAAQ1qJ,IAAI0kC,EAAE06B,QAC3Bn8B,EAAIzkC,KAAKi7J,MAAM0D,wBAAwBv2H,EAAE+6B,QAAQA,WAAYy9E,GAAGh/G,IAIlE,GAFA5hC,KAAKw9J,YAAYn7J,IAAIi/B,EAAI,IAAW,cAAN+C,SAA2BrkC,KAAKi7J,MAAM2D,wBAE1D,cAANv6H,EAAmB,CACrB,IAAI+D,QAAUoI,QAAQ5zB,IAAI,CAAC5c,KAAK+gE,KAAKz8B,EAAElR,KAAKwtC,QAAS5gE,KAAK+gE,KAAKz8B,EAAEhb,KAAKs3C,UAAW10B,EAAI9D,EAAE,GAAI+D,EAAI/D,EAAE,GACjGN,EAAIzpB,GAAEkhG,uBAAuBrzE,EAAGC,QAC3B,GAAS,MAAL1H,EACTqD,EAAI9nC,KAAK0+J,qBAAqBp9H,OAC3B,CACH,IAAI8G,EAAI/J,GAAEi+B,cAAc16B,GACxBkG,EAAI9nC,KAAKi7J,MAAM/I,gCAAgCztH,EAAG2D,GAEpD,GAAS,MAALlC,GAAalmC,KAAKu+H,8BAA8Br4F,GAAS,MAALzB,EAAW,CACjE,IAAI2D,EAAIpoC,KAAKi7J,MAAM9iG,GACnBqiF,GAAGpyG,EAAG,IAAMA,EAAE6rH,aAAaxvH,IAE7B,IAAIsD,EAAI/nC,KAAKw+J,qBAAqBl9H,EAAIwG,GAAIE,EAAIhoC,KAAKw9J,YAAYh8J,IAAI8/B,GACnE,OAAOthC,KAAKw9J,YAAY3qG,OAAOvxB,GAAK0G,EAAE2R,QAASvR,GAAMA,EAAEL,IAAK/nC,KAAKy9J,gBAAgB57J,IAAIy/B,KAAQthC,KAAKy9J,gBAAgB5qG,OAAOvxB,GAAKthC,KAAKmmE,YAAY7kC,IAAO/b,KAAKkjD,aAAannC,EAAIthC,MAAOA,KAAKg+J,kBAAmBj2H,EAE7M,UAAUzG,EAAIG,EAAI,IAChB,IAAIE,EAAI3hC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAOxiC,OAAQ8iC,EAAGu9B,MAAO/6B,EAAGpM,MAAOqM,EAAGq6B,MAAOp6B,EAAG8kH,SAAU7kH,EAAG4+B,QAAS1+B,GAAM9C,EACrG,GAAU,cAAN2C,EACF,MAAM,IAAIL,MAAM,yDAClB,GAAS,MAALI,EAAW,CACb,IAAI2D,EACAA,EAAJzD,EAAQ,IAAIs4H,GAAGz4H,EAAGk4H,IAAU,IAAIpzH,GAAG9E,EAAGk4H,IACtC,IAAIl0H,EAAIpoC,KAAKq+J,gBAAgBr2H,EAAG,CAAC,CAAE44B,OAAQt/B,EAAI69B,MAAO/6B,EAAGs6B,MAAOp6B,IAAMA,GAAI4H,EAAIlsC,KAAKghE,UAAU54B,EAAG3G,GAChG,OAAOzhC,KAAKu+H,8BAA8Bn2F,GAAI8D,EAEhD,GAAS,MAALzH,EACF,MAAW,MAAL7C,EAAY,IAAIqC,MAAM,kCAAoC,IAAIA,MAAM,mCAC5E,IAAIiC,EAAIlmC,KAAK+0C,OAAOzT,EAAIG,EAAEo9H,gBAAiB/2H,EAAIviB,KAAK8hD,yBAAyBnhC,GAAI6B,EAAI/nC,KAAKksJ,QAAQ1qJ,IAAI0kC,EAAE06B,QACxG,OAAOhgE,OAAOmwC,OAAO,CAAE+tH,UAAWh3H,GAAKC,EAAEo7B,SAE3C,WAAW7hC,GACT,IAAIG,EAAIzhC,KAAKihE,SAAS3/B,EAAGs/B,QACzB,GAAiB,WAAbt/B,EAAGo9B,MACL,IACE,IAAI/8B,EAAIF,EAAE8yB,IAAK3yB,GAAMvD,GAAEw7B,aAAaj4B,IACpC,OAAO3hB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAO/8B,GAC9B,MAAOA,GACP,MAAM,IAAIsC,MAAM,oDAEpB,OAAOhkB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAOj9B,GAEhC,uBAAuBH,GACrB,GAAU,MAANA,EACF,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAGphC,OAAQuhC,IAAK,CAClC,IAAIE,EAAIL,EAAGG,GACX,IAAKi5G,GAAG/4G,GACN,MAAMhc,KAAIuxC,QAAQ,gCAAkCjzB,MAAM,aAAatC,kJAAoJsC,MAAM,aAAatC,4CAGtP,qBAAqBL,GACnB,IAAM69B,MAAO19B,EAAGi9B,MAAO/8B,EAAGynH,SAAUxnH,GAAM5hC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAK8C,EAAI/F,GAAEi+B,cAAc76B,GACpF,GAAI9b,KAAIuxC,QAAQ,gCAAiC,CAC/C,IAAInvB,EAAI/nC,KAAK+0C,OAAOzT,GAAK0G,EAAIhoC,KAAKksJ,QAAQ1qJ,IAAIumC,EAAE64B,QAASx4B,EAAIpoC,KAAKi7J,MAAM8D,gCAAgC/2H,EAAEm7B,QAAQA,WAAYy9E,GAAGn/G,IAAIwT,SAAS,EAAG7Q,GACjJ,OAAOpkC,KAAKu+H,8BAA8Bx2F,GAAIK,EAEhD,IAAI/D,EAAI1e,KAAIuxC,QAAQ,gBAAuB,IAANt1B,EAAY0C,EAAID,EAAIq4G,GAAGj7G,GAAKA,EAAG8C,EAAIF,EAAI,IAAI0qH,GAAGzqH,GAAK,IAAIuqH,GAAGvqH,GAAIG,EAAIzkC,KAAKq+J,gBAAgB95H,EAAG,CAAC,CAAE46B,MAAO76B,EAAGo6B,MAAO/8B,EAAGi/B,OAAQt/B,IAAO,WAAY4E,EAAIlmC,KAAKksJ,QAAQ1qJ,IAAIijC,EAAEm8B,QAAS94B,EAAI9nC,KAAKi7J,MAAMhJ,gDAAgD/rH,EAAEi9B,QAAQA,QAASj9B,EAAE4iH,SAAS,GAAI5iH,EAAE4iH,SAAS,IAAI7zG,SAAS,EAAG7Q,GAC7U,OAAOpkC,KAAKu+H,8BAA8B95F,GAAIqD,EAEhD,iBACE,OAAOniB,KAAIq7H,UAAU,iDAAmD,EAE1E,KAAK1/G,GACH,IAAIG,EAAIzhC,KAAKy+J,aAAc98H,EAAI,GAAIC,GAAI,EACZ,MAA3B5hC,KAAKg/J,oBAA8Bh/J,KAAKg/J,mBAAqBr9H,EAAGC,GAAI,GAAQ5hC,KAAKy+J,aAAa5yH,KAAKlK,GAAI3hC,KAAKy+J,aAAe98H,EAAGL,IAC9H,IAAI8C,EAAI/F,GAAEg8B,QAAQr6D,KAAKy+J,aAAalqG,IAAKhwB,GAAMA,EAAEwwH,QAAQrlG,OAAQnrB,GAAW,MAALA,GAAYF,EAAIhG,GAAEg8B,QAAQr6D,KAAKy+J,aAAalqG,IAAKhwB,GAAMA,EAAEhjC,OAAOmuD,OAAQnrB,GAAW,MAALA,GACrJvkC,KAAKy+J,aAAeh9H,EAAGG,IAAM5hC,KAAKg/J,mBAAqB,MACvD,IAAI16H,EAAI,CAAEs5H,aAAc59J,KAAK49J,aAAcC,eAAgB79J,KAAK69J,eAAgBr/F,SAAU,KAAM4K,OAAQ,MACxG,MAAO,WACL,GAAIzjD,KAAIq7H,UAAU,iDAAmD,EAAG,CACtE,IAAIz8G,QAAUiM,QAAQ5zB,IAAIwnB,GAC1BE,EAAEk6B,SAAWngC,GAAEzD,IAAI2J,GAAID,EAAEy6B,oBAAsB,IAAMx6B,EAAEgwB,IAAI,CAAC9vB,EAAGyB,KAAM,CAAG3kC,KAAM8iC,EAAE6B,GAAI9vB,GAAIquB,KAAM8vB,IAAK9vB,GAAM,GAAGA,EAAEljC,SAASkjC,EAAEruB,MAAMshD,KAAK,WAEpIpzB,EAAEk6B,SAAW,CAAE/rB,MAAO,6DACxB,OAAOzyC,KAAK49J,aAAe,EAAG59J,KAAK69J,eAAiB,EAAGv5H,GANlD,GAST,SACE,MAAO,CAAEokC,YAAY,EAAOi1F,cAAe39J,KAAK29J,cAAesB,uBAAwBj/J,KAAKm+J,eAAee,kBAAmBC,kBAAmBn/J,KAAKm+J,eAAeiB,cAEvK,aACE,OAAOz5I,KAAIq7H,UAAU,iDAAmD,EAAIhhJ,KAAKi7J,MAAMrG,aAAe,CAAEyK,QAAShhI,GAAEshB,MAAO2/G,MAAO,MAEnI,SAASh+H,GACP,OAAO3b,KAAIq7H,UAAU,iDAAmD,GAAKhhJ,KAAKi7J,MAAMpG,WAAYvzH,IAAOA,EAAGg+H,MAAQjhI,GAAEshB,MAAOre,GAEjI,mBAAmBA,GACjB,GAAI3b,KAAIq7H,UAAU,iDAAmD,EACnE,OAAOhhJ,KAAKi7J,MAAMsE,uBAAuBj+H,GAC3C,IAAIG,EAAIH,EACR,OAAOG,EAAE69H,MAAQ79H,EAAE49H,QAErB,YAAY/9H,EAAIG,GAAI,GAClB,GAAIzhC,KAAKy9J,gBAAgB57J,IAAIy/B,GAC3B,OAAO,EACT,IAAKthC,KAAKksJ,QAAQrqJ,IAAIy/B,GACpB,OAAO,EACT,GAAIG,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAI4kC,SAAW,EAAIlmE,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAI4kC,YAAazkC,GAAKzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAI4kC,SAAW,EACjH,OAAO,EACT,GAAIlmE,KAAKw9J,YAAY37J,IAAIy/B,GACvB,OAAOthC,KAAKy9J,gBAAgBr7J,IAAIk/B,GAAKthC,KAAKg+J,kBAAkB,EAC9Dh+J,KAAKw/J,eAAel+H,GACpB,IAAM81F,mBAAoBz1F,GAAM3hC,KAAKksJ,QAAQ1qJ,IAAI8/B,GACjD,OAAY,MAALK,IAAc3hC,KAAKmmE,YAAYxkC,EAAEvO,KAAKwtC,OAAQn/B,GAAIzhC,KAAKmmE,YAAYxkC,EAAErY,KAAKs3C,OAAQn/B,IAAKzhC,KAAKksJ,QAAQr5F,OAAOvxB,IAAK,EAEzH,eAAeA,GACb,IAAM6hC,QAAS1hC,EAAGi9B,MAAO/8B,EAAGmnH,SAAUlnH,EAAG28H,MAAOn6H,EAAGglH,SAAU/kH,EAAGrM,MAAOsM,GAAMtkC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAKiD,EAAID,GAAKA,EAAEm7H,YAAcn+H,EAAImD,EAAIzkC,KAAK09J,aAAal8J,IAAI+iC,GAC1JE,EAAI,EAAIzkC,KAAK09J,aAAar7J,IAAIkiC,EAAGE,EAAI,IAAMzkC,KAAK09J,aAAa7qG,OAAOtuB,GAAS,MAAL9C,IAAczhC,KAAK29J,eAAiB39J,KAAK0/J,aAAa99H,EAAGD,GAAI3hC,KAAKm+J,eAAewB,eAAel+H,EAAGG,EAAGwC,EAAGC,KACjL,IAAI6B,EAAIlmC,KAAKksJ,QAAQ1qJ,IAAI8/B,GACzB4E,EAAEi9B,QAAU,KAAMj9B,EAAE4iH,SAAW,KAAM5iH,EAAEkjH,UAAW,EAAOljH,EAAElO,MAAQ,KAErE,WAAWsJ,GACT,OAAOthC,KAAK4/J,YAAYt+H,GAAKthC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAAI6hC,QAAQA,QAE5D,YAAY7hC,GACV,OAAOthC,KAAKksJ,QAAQ1qJ,IAAI8/B,GAE1B,mBAAmBA,EAAIG,EAAI27H,IACzB,OAAOz3I,KAAIuxC,QAAQ,sBAAwB51B,EAAG2gB,MAAOtgB,GAA4C,MAAtC3hC,KAAKksJ,QAAQ1qJ,IAAImgC,EAAEi/B,QAAQuC,SAAmB9kC,GAAEi+B,cAAc36B,EAAEw9B,OAAS19B,GAEtI,kBACE,OAAOzhC,KAAKi7J,MAEd,MAAM35H,GACJjjB,GAAEs1B,KAAK,yEACP,IAAIlS,EAAIH,EAAGi9B,WACX,OAAOw+F,GAAGz7H,EAAG69B,MAAO19B,GAEtB,cAAcH,EAAIG,EAAGE,GACnB,IAAIC,EAAI,IAAIi7H,GAAGv7H,EAAG69B,MAAO19B,GAAI2C,EAAIpkC,KAAK6/J,cAAcj+H,EAAG,CAACN,GAAKK,GAC7D,OAAOpc,KAAK8hD,yBAAyBjjC,GAEvC,IAAI9C,GACF,GAAIthC,KAAK8/J,mBAAmB,CAACx+H,KAAqB,cAAbA,EAAGo9B,MAAuB,CAC7D,IAAI98B,EAAI03H,GAAGt5J,KAAKksJ,QAAQ1qJ,IAAI8/B,EAAGs/B,QAAQ9hE,QACvC,OAAOkB,KAAK49H,WAAWt8F,EAAG69B,MAAO79B,EAAGo9B,MAAO98B,GAE7C,GAAIjc,KAAIuxC,QAAQ,+BACd,OAAOl3D,KAAK+/J,cAAcz+H,EAAI46H,GAAI56H,EAAGo9B,OACvC,IAAIj9B,EAAI,IAAIyH,GAAG5H,EAAG69B,MAAO+8F,IAAKv6H,EAAI3hC,KAAK6/J,cAAcp+H,EAAG,CAACH,IACzD,OAAO/b,KAAK8hD,yBAAyB1lC,GAEvC,eAAeL,EAAIG,EAAGE,GACpB,IAAIC,EACJ,GAAU,WAANH,GAAuB,MAALE,GAAaA,EAAEzhC,OAAS,GAAKm+B,GAAEg9B,SAAS15B,EAAE,IAAK,CACnE,IAAIyC,EAAIzC,EAAE4yB,IAAKlwB,GAAMhG,GAAE27B,aAAa31B,IACpCzC,EAAI5hC,KAAKqoE,MAAMjkC,EAAG9C,EAAIG,QAEtBG,EAAI5hC,KAAKqoE,MAAM1mC,EAAGL,EAAIG,GACxB,OAAOzhC,KAAKksJ,QAAQ1qJ,IAAIogC,GAAG28H,MAAQ,KAAM,CAAE39F,OAAQh/B,EAAGu9B,MAAO79B,EAAIo9B,MAAOj9B,GAE1E,WAAWH,EAAIG,EAAGE,GAChB,OAAOpc,KAAK8hD,yBAAyBrnE,KAAKq3H,eAAe/1F,EAAIG,EAAGE,GAAI3hC,MAEtE,aAAashC,GACX,IAAIG,EAAI,IAAIq7H,GAAGx7H,EAAG69B,OAClB,OAAOn/D,KAAKq+J,gBAAgB58H,EAAG,CAACH,GAAKA,EAAGo9B,OAE1C,WAAWp9B,GACT,IAAIG,EAAI,IAAIg5H,GAAGn5H,EAAG69B,OAAQx9B,GAAI,EAC9B,OAAO3hC,KAAKq+J,gBAAgB58H,EAAG,CAACH,GAAKA,EAAGo9B,MAAO,KAAM/8B,GAEvD,cAAcL,EAAIG,GAChB,IAAIE,EAAI,CAAC+5G,GAAGp6G,EAAG69B,UAAWq9E,GAAGl7G,EAAG69B,QAASv9B,EAAI,CAAE88B,MAAOp9B,EAAGo9B,MAAOS,MAAOx9B,EAAGi/B,OAAQt/B,EAAGs/B,QAAUx8B,EAAI,CAACs3G,GAAGj6G,MAAO+6G,GAAG/6G,IAAK4C,EAAI,IAAIy2H,GAAG12H,EAAGzC,GAAI2C,GAAI,EAAMC,EAAI,CAAC5C,GAAI8C,EAAIzkC,KAAKq+J,gBAAgBh6H,EAAG,CAACzC,GAAIN,EAAGo9B,MAAOn6B,EAAGD,GACzM,MAAO,CAAEs8B,OAAQn8B,EAAEm8B,OAAQzB,MAAO19B,EAAGi9B,MAAOj6B,EAAEi6B,OAEhD,OAAOp9B,EAAIG,GACT,IAAIE,EAAI3hC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAO8nH,SAAUxnH,EAAGu9B,MAAO/6B,EAAGs6B,MAAOr6B,GAAM1C,EACpE,GAAS,MAALF,EAAW,CACb,IAAIsG,EAAI1J,GAAEi+B,cAAcl4B,GAAI4D,EAAIvG,EAAE,GAAKA,EAAE,GAAK,EAC9CpD,GAAE26B,OAAOjxB,GAAKC,EAAG,IAAM,6GAEzB,IAAezD,EAAXD,EAAIo4G,GAAGt4G,GACPG,EAAJ3C,EAAQ,IAAIgtH,GAAGtqH,GAAS,IAAImqH,GAAGnqH,GAC/B,IAAIG,GAAI,EAAMyB,EAAI,CAAM,MAALzE,EAAYA,EAAIm/G,GAAGt8G,IAAKwD,EAAI9nC,KAAKq+J,gBAAgB95H,EAAG,CAAC,CAAE46B,MAAO76B,EAAGo6B,MAAOr6B,EAAGu8B,OAAQt/B,IAAO+C,EAAG6B,EAAGzB,EAAGhD,GACtH,MAAO,CAAEi9B,MAAOr6B,EAAG86B,MAAO/6B,EAAGw8B,OAAQ94B,EAAE84B,QAEzC,gBAAgBt/B,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,EAAOC,GACtC,IAAIC,EAAItkC,KAAKq3H,eAAe/1F,EAAGy4D,YAAap4D,GAAI4C,EAAIvkC,KAAKksJ,QAAQ1qJ,IAAI8iC,EAAEs8B,QACvE,GAAIt/B,EAAGotH,eAAiBnqH,EAAE6kH,UAAW,GAAO9nH,EAAGqtH,mBAAqB5P,GAAGyD,MAAO,CAC5E,IAAIt3G,EAAS,MAAL7G,EAAYA,EAAIu8G,GAAGt/G,EAAGy4D,aAC9Bx1D,EAAEukH,SAAW59G,EAAEqpB,IAAK9nB,GAAU,EAAJA,GAE5B,GAAsB,MAAlBnL,EAAGwtH,cAAwBvqH,EAAEg6H,MAAQj9H,EAAGwtH,aAA2C,IAA7BzwH,GAAEi+B,cAAch4B,EAAE66B,OAC1E,OAAO56B,EAAEzlC,OAASu/B,GAAEm8B,uBAAuBl2B,EAAEo6B,MAAO,GAAIp6B,EAC1D,IAAIG,EAAI,GAAIyB,EAAIzE,EAAE8yB,IAAKrpB,IACrB,GAAgB,cAAZA,EAAEwzB,MACJ,MAAM,IAAIz6B,MAAM,mIAClB,IAAIwI,EAAIzsC,KAAKksJ,QAAQ1qJ,IAAI0pC,EAAE01B,QAC3B,GAAiB,MAAbn0B,EAAE02B,QAAiB,CACrB,IAAK7hC,EAAGunH,cAAgBxqH,GAAEi+B,cAAcpxB,EAAEi0B,QAAUx5C,KAAIq7H,UAAU,6BAChE,MAAO,CAAE7hF,MAAOj0B,EAAEi0B,MAAO+sF,QAAS,KAAMzD,WAAW,EAAMuF,cAAevhH,EAAE3tC,QAC5EwiC,EAAGunH,eAAiBp8G,EAAE28G,UAAW,EAAM38G,EAAE0yB,MAAQj0B,EAAEi0B,OAErD,GAAIn/D,KAAK4/J,YAAY10H,EAAE01B,UAAWn0B,EAAE28G,YAAc9nH,EAAGunH,aACnD39G,EAAIuB,EAAE28G,SAAWppJ,KAAKggK,aAAa90H,GAAKlrC,KAAKigK,WAAW/0H,GAAIzG,EAAEoH,KAAKX,GAAIuB,EAAIzsC,KAAKksJ,QAAQ1qJ,IAAI0pC,EAAE01B,aAC3F,GAAIn0B,EAAE28G,WAAa3L,GAAGhxG,EAAE0yB,MAAOj0B,EAAEi0B,OAAQ,CAC5C,IAAIpyB,EAAI7B,EAAG8B,EAAI9B,EAAEi0B,MACjBj0B,EAAEi0B,MAAQ1yB,EAAE0yB,MAAOj0B,EAAIlrC,KAAKkgK,cAAch1H,EAAG8B,GAAIvI,EAAEoH,KAAKX,GAAIuB,EAAIzsC,KAAKksJ,QAAQ1qJ,IAAI0pC,EAAE01B,QAAS7zB,EAAEoyB,MAAQnyB,EAExG,MAAO,CAAEmyB,MAAOj0B,EAAEi0B,MAAO+sF,QAASz/G,EAAGg8G,WAAW,KAElDzoJ,KAAK4/J,YAAYt7H,EAAEs8B,QACnB,IAAyK10B,EAArKpE,EAAI,CAAEq3B,MAAO76B,EAAE66B,MAAO+sF,QAAS3nH,EAAGkkH,WAAW,GAAS1gH,EAAIwmH,GAAGjtH,EAAI4E,EAAG4B,GAAIE,EAAIhoC,KAAKmgK,iBAAiBp4H,EAAG,IAAMkkH,GAAGjsJ,KAAKi7J,MAAO35H,EAAI4E,EAAG4B,IAAKM,EAAyB,MAArBpoC,KAAKy+J,aACnJr2H,IAAM8D,EAAIlsC,KAAKogK,cAAez6I,KAAInkB,IAAI,wBAA0B4rJ,GAAGptJ,KAAKi7J,MAAOjzH,EAAG9B,EAAG4B,EAAGlG,GAAI6C,EAAEkV,QAASzO,GAAMlrC,KAAKu+H,8BAA8BrzF,IAAK9C,IAAM8D,EAAIlsC,KAAKqgK,SAASn0H,GAAIlsC,KAAKy+J,aAAa5yH,KAAK,CAAEtqC,KAAM+/B,EAAGq0B,YAAYp0D,KAAMwzJ,MAAO/0J,KAAKs2J,aAAapqH,MAC9P,IAAIC,EAAIxmB,KAAIq7H,UAAU,yBACtB,GAAI70G,EAAI,EAAG,CACT,IAAIjB,EAAI7M,GAAEshB,MACVzU,EAAIlrC,KAAK89J,gBAAkB3xH,IAAMnsC,KAAKi7J,MAAM9iG,GAAGq8F,QAASx0J,KAAK89J,gBAAkB5yH,GAEjF,IAAKvlB,KAAIuxC,QAAQ,wBAA0B3yB,EAAE6kH,WAAkB,IAANhlH,EAAa,CACpE,IAAI8G,EAAIlrC,KAAKggK,aAAa17H,GAC1B,OAAOtkC,KAAKu+H,8BAA8Bj6F,GAAI4G,EAEhD,OAAO5G,EAET,cAAchD,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,GAC7B,OAAOzC,EAAIA,GAAKF,EAAE,GAAGi9B,MAAO1+D,KAAKq+J,gBAAgB/8H,EAAIG,EAAGE,EAAGC,EAAGwC,GAEhE,iBAAiB9C,EAAIG,GACnB,OAAOH,KAAMthC,KAAKi+J,cAAgBj+J,KAAKi+J,YAAY38H,GAAMG,KAAMzhC,KAAKi+J,YAAY38H,GAElF,oBACE,OAAOthC,KAAKm+J,eAEd,UACEn+J,KAAK6yJ,WAAaltI,KAAIuxC,QAAQ,YAAct2D,OAAOo9D,KAAKh+D,KAAKi+J,aAAatkH,QAASlY,IACjFzhC,KAAKi7J,MAAM7F,cAAcp1J,KAAKi+J,YAAYx8H,GAAG6qH,qBAAsBtsJ,KAAKi+J,YAAYx8H,KAClFzhC,KAAKm+J,eAAen6I,UAA0B,MAAfhkB,KAAK6zG,QAA8C,oBAArBysD,mBAAoCtgK,KAAK6zG,kBAAkBysD,kBAAoBtgK,KAAK6zG,OAAO0sD,SAAWvgK,KAAK6zG,OAAS,KAAM7zG,KAAKk+J,sBAAwBl+J,KAAKi7J,MAAM7O,QAAU,KAAMpsJ,KAAKi7J,MAAMj3I,WAAYhkB,KAAK6yJ,UAAW,GAE5R,iBACE,OAAmC,MAA5B7yJ,KAAKwgK,sBAAgCxgK,KAAKwgK,oBAAsB/jI,GAAG,KACxE,IAAK9W,KAAInkB,IAAI,gCAAiC,CAC5C,IAAI8/B,EAAK3b,KAAIuxC,QAAQ,SACrBvxC,KAAItjB,IAAI,SAAS,GACjB,IAAIo/B,EAAIzhC,KAAKmc,IAAIsZ,GAAG,OAAO8oC,WAAW,GACtC,GAAI54C,KAAItjB,IAAI,QAASi/B,GAAKG,EAAI,EAC5B,OAAO,GAEX,OAAO,MACJzhC,KAAKwgK,oBAEZ,UACE,OAAiC,KAA1BxgK,KAAK+yD,iBAA0BiqG,GAAKC,GAE7C,YAAY37H,GACV,IAAIG,EAAIzhC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAO69B,MAAOx9B,EAAG+8B,MAAO98B,EAAG9iC,OAAQslC,EAAG++B,QAAS9+B,EAAGk6H,MAAOj6H,EAAG8kH,SAAU7kH,GAAM9C,EACrG,GAAS,MAAL4C,EACF,OACF,IAAmC6B,EAA/BzB,EAAyB,MAArBzkC,KAAKy+J,aACbh6H,IAAMyB,EAAI7H,GAAEshB,OACZ,IAAI7X,EAAIrG,EAAEqnH,SACV,GAAS,MAALhhH,IAAcA,EAAI80G,GAAGj7G,EAAG4C,GAAI9C,EAAEqnH,SAAWhhH,GAAS,MAAL1D,EAAW,CAC1D,IAAe4D,EAAXD,EAAI20G,GAAG/6G,GAAOyG,EAAIN,EAAE,GAAIoE,EAAIpE,EAAE,GAAIqE,EAAI/H,aAAa7B,YAAc6B,aAAaqxB,mBACjFlxB,IAAM4H,MAAQ/D,EAAG8D,GAAK20G,GAAG/4G,EAAE,GAAIA,EAAE,KAAUE,EAAJzD,EAAQ,IAAI4qH,GAAGpnH,EAAGoE,GAAS,IAAI+iH,GAAGnnH,EAAGoE,GAC7E,IAAIjB,EAAIiB,EAAI,CAACD,EAAG9D,GAAKN,EAAG2E,EAAIzsC,KAAKq3H,eAAensF,EAAGtJ,GAAImL,EAAI/sC,KAAKksJ,QAAQ1qJ,IAAIirC,EAAEm0B,QAC1E7zB,EAAEwxH,MAANpyH,EAAc6yG,GAAG4D,OAAmB5D,GAAG2D,OAAQ51G,EAAE+7G,SAAW59G,EAAGlrC,KAAKi7J,MAAMvI,2BAA2B1yJ,KAAKygK,WAAWh0H,EAAEm0B,QAASx4B,EAAG8D,EAAG9H,GACtI,IAAI4I,EAAI,CAAC,CAACd,EAAG9D,IAAK6E,GAAI,EAAMC,EAAIltC,KAAKq+J,gBAAgBr2H,EAAG,CAACyE,GAAI7K,EAAGoL,EAAGC,GAAIG,EAAIptC,KAAKksJ,QAAQ1qJ,IAAI0rC,EAAE0zB,QAC9Fn/B,EAAEqnH,SAAW17G,EAAE07G,SAAUrnH,EAAE2nH,SAAWh8G,EAAEg8G,SAAU3nH,EAAE88H,MAAQnxH,EAAEmxH,MAAO54I,KAAInkB,IAAI,uBAAyBxB,KAAKmmE,YAAYj5B,EAAE0zB,SAAWn/B,EAAE0hC,QAAU/1B,EAAE+1B,QAAS1hC,EAAE3iC,OAAS,KAAMkB,KAAKksJ,QAAQr5F,OAAO3lB,EAAE0zB,SAAU5gE,KAAKu+H,8BAA8B9xF,GAAIhI,IAAMzkC,KAAK49J,cAAgBv/H,GAAEshB,MAAQzZ,OACnR,CACL,IAAI6B,EAAI/nC,KAAK0gK,eAAe54H,EAAGxD,EAAG1C,EAAG2C,GACrC9C,EAAE0hC,QAAUp7B,GAGhB,qBAAqBzG,EAAIG,GACvB,IAAIE,EAAI3hC,KAAKksJ,QAAQ1qJ,IAAI8/B,IAAOo9B,MAAO98B,GAAMD,EAC7C,OAAY,MAALF,IAAcE,EAAE7iC,OAAS6hK,GAAGl/H,EAAGG,IAAKD,EAAE7iC,OAE/C,eAAewiC,EAAIG,EAAGE,EAAGC,GACvB,GAAI5hC,KAAK29J,eAAiB39J,KAAK0/J,aAAap+H,EAAIK,IAAK3hC,KAAK+9J,mBAAqB/9J,KAAK29J,cAA0C,KAA1B39J,KAAKo+J,mBAA4B,KAAM,CACzI,IAAIh6H,GAAKpkC,KAAK29J,cAAgB,KAAO,MAAM19F,QAAQ,GACnDjgE,KAAK+9J,mBAAoB,EAAMvrH,QAAQmB,KAAK,6BAA6BvP,0CAE3E,OAAOpkC,KAAKm+J,eAAeuC,eAAep/H,EAAIG,EAAGG,GAEnD,aAAaN,EAAIG,GACf,OAAOH,EAAG,GAAKA,EAAG,GAAKjD,GAAEg7B,gBAAgB53B,GAE3C,yBACE,IAAK,IAAK,CAAEH,KAAO1gC,OAAO63D,QAAQz4D,KAAKi+J,aACrCj+J,KAAK4gK,iBAAiBt/H,GAE1B,oCACE,IAAIA,EAAK,GACT,GAAIthC,KAAKi7J,MAAM1H,6BAA8B,CAC3C,IAAK,IAAK,CAAE9xH,KAAM7gC,OAAO63D,QAAQz4D,KAAKi+J,aACpC38H,EAAGuK,KAAK7rC,KAAK6gK,sBAAsBp/H,IACrC,OAAO+O,QAAQ5zB,IAAI0kB,GAEnB,IAAK,IAAK,CAAEG,KAAM7gC,OAAO63D,QAAQz4D,KAAKi+J,aAAc,CAClD,IAAIt8H,EAAI,IAAI6O,QAAS5O,IACnB,IACE5hC,KAAK4gK,iBAAiBn/H,GAAIG,GAAE,GAC5B,MAAOwC,GACP,MAAMA,KAGV9C,EAAGuK,KAAKlK,GAEV,OAAO6O,QAAQ5zB,IAAI0kB,GAGvB,4BAA4BA,GAC1B,OAAOthC,KAAKi7J,MAAM9iG,GAAGssF,oBAAoBnjH,EAAGgrH,aAActsJ,KAAKi7J,MAAM1H,6BAA6BuN,uBAAyB9gK,KAAK4gK,iBAAiBt/H,UAAa7R,KAAMzvB,KAAK6gK,sBAAsBv/H,IAEjM,iBAAiBA,GACf,IAAsF,IAAlFthC,KAAKi7J,MAAM9iG,GAAGssF,oBAAoBnjH,EAAGgrH,aAActsJ,KAAKi7J,MAAM9iG,GAAGusF,aACnE,MAAMlyG,QAAQ9mB,IAAI1rB,KAAKi7J,MAAM9iG,GAAGwsF,kBAAkBrjH,EAAGgrH,gBAAsG,IAAtFtsJ,KAAKi7J,MAAM9iG,GAAG8rF,mBAAmB3iH,EAAG+qH,eAAgBrsJ,KAAKi7J,MAAM9iG,GAAG+rF,iBAA6BjG,GAAG38G,EAAGwzC,OAAQ90E,KAAKi7J,MAAM9iG,GAAGgsF,iBAAiB7iH,EAAG+qH,iBAAkB,IAAIpoH,MAAM,uCAAyC,IAAIA,MAAM,+CACrS,OAAO,EAET,sBACE,IAAK,IAAI3C,KAAM1gC,OAAO9B,OAAOkB,KAAKi+J,aAAc,CAC9Cj+J,KAAKi7J,MAAMjO,SAAS1rH,EAAGgrH,cACvB,IAAMG,mBAAoBhrH,EAAGirH,uBAAwB/qH,EAAGgrH,OAAQ/qH,EAAGgrH,OAAQxoH,EAAGyoH,iBAAkBxoH,EAAGyoH,wBAAyBxoH,EAAGyoH,oBAAqBxoH,GAAM0oH,GAAGjtJ,KAAKi7J,MAAO35H,EAAG8qH,QAAS9qH,EAAGgrH,cACxLhrH,EAAGmrH,mBAAqBhrH,EAAGH,EAAGorH,uBAAyB/qH,EAAGL,EAAGqrH,OAAS/qH,EAAGN,EAAGsrH,OAASxoH,EAAG9C,EAAGurH,iBAAmBxoH,EAAG/C,EAAGwrH,wBAA0BxoH,EAAGhD,EAAGyrH,oBAAsBxoH,GAG9K,wBAAwBjD,EAAIG,EAAGE,GAC7BL,EAAGmpC,SAAWnpC,EAAGmpC,UAAY,OAC7B,IAAMtH,QAASvhC,EAAG8oC,OAAQtmC,EAAGumC,MAAOtmC,EAAGomC,SAAUnmC,GAAMhD,EAAIiD,EAAIhf,KAAKrH,QACpE,IAAKqmB,EAAE02H,MAAM9iG,GAAG4oG,UAAUn/H,GACxB,MAAM,IAAIqC,MAAM,iSAClB,IAAIQ,EAAIF,EAAEy8H,aAAap/H,EAAGH,EAAGE,EAAGyC,EAAGC,EAAGC,GACtC,OAAO/e,KAAK07I,qBAAqBx8H,EAAGhD,EAAGE,EAAG4C,KAI9C,SAASo8H,GAAGt/H,EAAGC,GACb,GAAW,YAAPA,GAA2B,cAAPA,EACtB,OAAOD,EACT,GAAW,UAAPC,GAAyB,SAAPA,EAAe,CACnC,IAAIG,EAAW,UAAPH,EAAiB,IAAIsU,WAAWvU,EAAEnhC,QAAU,IAAIqiC,WAAWlB,EAAEnhC,QACrE,IAAK,IAAIyhC,EAAI,EAAGA,EAAIF,EAAEvhC,SAAUyhC,EAC9BF,EAAEE,GAAKoC,KAAK3O,MAAMiM,EAAEM,IACtB,OAAOF,EAEP,MAAM,IAAIwC,MAAM,iBAAiB3C,GAVrC5xB,GAAGwnH,WAAa,EAYhB,IAAIz3F,GAAK,SACT,SAASlY,KACP5B,KAAItjB,IAAI,4BAA4B,GAEtCohB,GAAG2mD,aAAe32C,GAAG,QAAS,IAAM,IAAI/jB,GAAM,GAC9C,IAAIiwB,GAAM,CAAErY,eAAgBC,IACxB25I,GAAK,2DAILC,GAAK,MACP,YAAY7/H,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+5F,YAAc17E,GAAE4jE,2BAA2BxgD,EAAGE,GAAI3hC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAASF,KAAK0pJ,SAAW,8DAE1JpoH,4KAWN8/H,GAAK,qKAMLC,GAAK,MACP,YAAY//H,EAAIG,EAAGE,EAAGC,GAAI,GACxB5hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKshK,sBAAuB,EAAMthK,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAc17E,GAAE4jE,2BAA2BxgD,EAAGE,GAC1K,IAAIyC,EAAIpkC,KAAK+5F,YAAY75F,OACzBF,KAAK0oJ,oBAAsB8F,GAAGpqH,GAC9B,IAAIC,EAAI,GACR,GAAIzC,EACF,GAAU,IAANwC,GAAiD,IAAtC/F,GAAEi+B,cAAct8D,KAAK+5F,aAClC11D,EAAI,gGAKD,GAAIA,EAAI,eACP0nH,GAAG3nH,2CACE,IAANA,EACHpkC,KAAK0oJ,oBAAsBrkH,GAAK,yIAI1BA,GAAK,4CACsBrkC,KAAK+5F,YAAY,8FAI/C,CACH,IAAIx1D,EAAIg2H,GAAG,SAAUn2H,GACrBpkC,KAAK0oJ,oBAAsBrkH,GAAK,2DAEvBE,EAAEH,EAAI,uBAAuBA,kEAE7BG,EAAEH,EAAI,uBAAuBA,gOAIhCC,GAAK,2DAEFE,EAAEH,EAAI,cAAcpkC,KAAK+5F,YAAY31D,EAAI,8DAEzCG,EAAEH,EAAI,cAAcpkC,KAAK+5F,YAAY31D,EAAI,4NAMtDpkC,KAAK0pJ,SAAW,2DAEVpoH,wKAQA+C,mDAOV,SAASk9H,GAAGlgI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,OAAOG,EAAEkgC,OAAOhgC,EAAEi/B,QAAS,CAAEA,OAAQj/B,EAAEi/B,OAAQzB,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,OAE1E,IAAI8iG,GAAK,CAAE7oG,WAAY3rD,GAAI4rD,YAAa,QAASuO,WAAYo6F,IAC7D,SAASE,GAAGpgI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKjO,KAAMuO,EAAGrY,KAAMsY,GAAMN,EAAI8C,EAAI3C,EAAE41F,eAAe11F,EAAEw9B,MAAO,aAAc96B,EAAI5C,EAAEyqH,QAAQ1qJ,IAAI4iC,EAAEw8B,QAASt8B,EAAIi9H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,IAAM8C,EAAIg9H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACtN,OAAO4C,EAAE+yF,mBAAqB,CAAEhkG,KAAMkR,EAAGhb,KAAMib,GAAKH,EAEtD,IAAIs9H,GAAK,CAAE/oG,WAAYjyD,GAAIkyD,YAAa,QAASuO,WAAYs6F,IACzDE,GAAK,+BACLC,GAAK,mIAIT,SAASC,GAAGxgI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM4lD,MAAO9iD,GAAMzC,EAAG0C,EAAI5C,EAAE41F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkBt1B,EAAG,YAAaE,EAAI3e,KAAIuxC,QAAQ,gCAAkC,IAAImqG,GAAGO,GAAIhgI,EAAEu9B,MAAO96B,EAAE86B,OAAS,IAAIgiG,GAAGQ,GAAI//H,EAAEu9B,MAAO96B,EAAE86B,OAAQ56B,EAAI9C,EAAE48H,gBAAgB/5H,EAAG,CAAC1C,EAAGyC,GAAI,WACvS,OAAO5C,EAAE88F,8BAA8Bl6F,GAAIE,EAE7C,IAAIu9H,GAAK,CAAEnpG,WAAY3qD,GAAI4qD,YAAa,QAASuO,WAAY06F,IACzDE,GAAK,+BACLC,GAAK,mIAIT,SAASC,GAAG5gI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,EAAGulD,MAAOtlD,GAAMN,EAAI8C,EAAIze,KAAIuxC,QAAQ,gCAAkC,IAAImqG,GAAGW,GAAIrgI,EAAEw9B,MAAOv9B,EAAEu9B,OAAS,IAAIgiG,GAAGY,GAAIpgI,EAAEw9B,MAAOv9B,EAAEu9B,OACpK,OAAO19B,EAAE48H,gBAAgBj6H,EAAG,CAACzC,EAAGC,GAAI,WAEtC,IAAIsgI,GAAK,CAAEvpG,WAAYnlD,GAAIolD,YAAa,QAASuO,WAAY86F,IACzDE,GAAK,0BACT,SAASC,IAAKC,UAAWhhI,EAAGihI,gBAAiBhhI,EAAIihI,cAAe9gI,EAAGi9B,MAAO/8B,IACxE,MAAO,EAAGi9B,OAAQh9B,EAAG1jB,QAASkmB,MAC5B,IAAM8G,EAAG7G,GAAMzC,EAAG0C,EAAIF,EAAGG,EAAI5C,GAAK0C,EAAEq6B,MACpC,GAAIp6B,EAAEw7H,mBAAmB,CAACz7H,KAAY,MAAL5C,EAAW,CAC1C,IAAIqG,EAAIxD,EAAE4nH,QAAQ1qJ,IAAI6iC,EAAEu8B,QAAS74B,EAAItG,EAAEqG,EAAEhpC,OAAQylC,GACjD,OAAOD,EAAE+yF,eAAehzF,EAAE86B,MAAO56B,EAAGwD,GAEtC,IAAkE7B,EAA9DzB,EAAI9e,KAAIuxC,QAAQ,gCAAwC,MAAN51B,EACtD,OAAW4E,EAAJzB,EAAQ,IAAIo4H,GAAGx4H,EAAE86B,MAAO79B,GAAU,IAAI4H,GAAG7E,EAAE86B,MAAO99B,GAAIiD,EAAE+5H,gBAAgBn4H,EAAG,CAAC7B,GAAIE,IAG3F,SAASi+H,IAAKH,UAAWhhI,EAAGihI,gBAAiBhhI,EAAImhI,iBAAkBhhI,GAAI,EAAOihI,gBAAiB/gI,GAAI,EAAO4gI,cAAe3gI,EAAG88B,MAAOt6B,IACjI,MAAO,EAAGw6B,OAAQv6B,EAAGnmB,QAASomB,MAC5B,IAAMD,EAAGE,EAAGkI,EAAGhI,GAAMJ,EAAG6B,EAAI5B,EAC5B,GAAI3C,GAAiB,cAAZ4C,EAAEm6B,MAAuB,CAChC,IAAIt2B,EAAIlC,EAAEgmH,QAAQ1qJ,IAAI+iC,EAAEq8B,QAAS10B,EAAIhG,EAAEgmH,QAAQ1qJ,IAAIijC,EAAEm8B,SAAUz0B,EAAGjB,GAAK,CAAC,CAAC9C,EAAEgvF,mBAAmBhkG,KAAM8Y,EAAEkrF,mBAAmBhkG,MAAO,CAACgV,EAAEgvF,mBAAmB9tG,KAAM4iB,EAAEkrF,mBAAmB9tG,OAAOirC,IAAKxnB,IAC3L,IAAKC,EAAGC,GAAKF,EAAGG,EAAI,CAAE0zB,OAAQ5zB,EAAE4zB,OAAQlC,MAAO1xB,EAAE0xB,MAAOS,MAAO56B,EAAE46B,OAAS/xB,EAAI,CAAEwzB,OAAQ3zB,EAAE2zB,OAAQlC,MAAOzxB,EAAEyxB,MAAOS,MAAO16B,EAAE06B,OAAS9xB,EAAI,IAAI8zH,GAAG9/H,EAAGkD,EAAE46B,MAAO16B,EAAE06B,OAC7J,OAAOj5B,EAAEm4H,gBAAgBhxH,EAAG,CAACH,EAAGE,GAAInP,GAAG+O,EAAE0xB,MAAOzxB,EAAEyxB,UAChDjyB,EAAIg1H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAM+Y,EAAG7iB,KAAM4hB,GAAKhtB,QAASgoB,IACpD,OAAOA,EAAEq4F,8BAA8BpyF,GAAIjG,EAAEq4F,8BAA8BrzF,GAAIuB,EAEjF,IAAI3E,EAAI1D,GAAKnG,GAAGsG,EAAEm6B,MAAOj6B,EAAEi6B,OAC3B,IAAiB,WAAZn6B,EAAEm6B,OAAkC,WAAZj6B,EAAEi6B,OAAsBx4B,EAAE45H,mBAAmB,CAACv7H,EAAGE,MAAa,MAAL7C,EAAW,CAC/F,IAAIwG,EAAIlC,EAAEgmH,QAAQ1qJ,IAAI+iC,EAAEq8B,QAAQ9hE,OAAQotC,EAAIhG,EAAEgmH,QAAQ1qJ,IAAIijC,EAAEm8B,QAAQ9hE,OAAQqtC,EAAgB,WAAZ5H,EAAEm6B,MAAqBrgD,GAAE69F,uBAAuB9zE,GAAKA,EAAG8C,EAAgB,WAAZ3G,EAAEm6B,MAAqBrgD,GAAE69F,uBAAuBhwE,GAAKA,GAAIO,EAAGM,GAAKnL,EAAE2C,EAAE46B,MAAO16B,EAAE06B,MAAOhzB,EAAGjB,EAAGpD,GAAIkF,EAAI9G,EAAEmxF,eAAetqF,EAAGjF,GAAImF,EAAI/G,EAAEgmH,QAAQ1qJ,IAAIwrC,EAAE4zB,QAC3R,OAAO3zB,EAAEnuC,OAAS2tC,EAAGO,EAEvB,IAAmEhF,EAA/DD,EAAIpiB,KAAIuxC,QAAQ,iCAAyC,MAAN51B,EACvD,OAAW0G,EAAJD,EAAQ,IAAIs5H,GAAG//H,EAAIiD,EAAE46B,MAAO16B,EAAE06B,MAAO19B,GAAS,IAAI0/H,GAAG9/H,EAAGkD,EAAE46B,MAAO16B,EAAE06B,OAAQj5B,EAAEm4H,gBAAgBr2H,EAAG,CAACzD,EAAGE,GAAIqD,IAGnH,SAAS66H,GAAGthI,EAAGC,GAAK,GAClB,GAAU,WAAND,EACF,OAAOC,EAAKk7H,GAAKP,GACnB,GAAU,SAAN56H,EACF,OAAOC,EAAKo7H,GAAKN,GACnB,GAAU,QAAN/6H,EACF,OAAOC,EAAKm7H,GAAKN,GACnB,GAAU,UAAN96H,EACF,OAAOC,EAAKq7H,GAAKN,GACnB,GAAU,UAANh7H,EACF,OAAOC,EAAK0gI,GAAKD,GACnB,GAAU,cAAN1gI,EACF,OAAOC,EAAKsgI,GAAKD,GACnB,GAAU,YAANtgI,EACF,OAAOC,EAAKs7H,GAAKL,GACnB,MAAM,IAAIt4H,MAAM,cAAc5C,qDAEhC,IAAIuhI,GAAK,MACP,YAAYthI,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,EAAOC,GAAI,EAAOC,EAAI,KAAMC,GAAI,EAAOE,GAAI,GAC9EzkC,KAAKmsJ,cAAgB,CAAC,UAAW,WAAYnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAcp4D,EAAG3hC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACtK,IAAIgmC,EAAItE,EAAIN,EAAG,GAAKA,EAAG,GAAIwG,EAAI/D,KAAK3jB,KAAK8lB,EAAI,GAAI6B,EAAInG,EAAI,cAAgB,cAAeoG,EAAI5D,EAAI,cAAgB,cAAegE,EAAIxG,EAAI,CAAC,SAAU,UAAY,CAAC,SAAU,UAAWsK,EAAI9H,EAAI,CAAC,SAAU,UAAY,CAAC,SAAU,UAAW+H,EAAI,GAAIjB,EAAI,GACrP5G,IAAU6H,EAAJ5H,EAAQ,oGAEND,eACCG,EAAQ,4FAETH,eACK,wCACLA,eACA4G,EAAI,gCACZ,IAAIuB,EAAIpI,EAAI,kCAAoC,GAChDA,GAAKrkC,KAAKmsJ,cAActgH,KAAK,QAAStH,GAAKvkC,KAAKmsJ,cAActgH,KAAK,0BAA2BpH,GAAKzkC,KAAKmsJ,cAActgH,KAAK,kBAC3H,IAAIkB,EAAI,OAAQC,EAAI,OACpB1L,EAAG,GAAKG,EAAE,GAAKsL,EAAI,cAAczL,EAAG,MAAQG,EAAE,GAAKH,EAAG,KAAO0L,EAAI,cAAcvL,EAAE,OAAQzhC,KAAK0pJ,SAAW,WACrGv9G,iHAE8BrE,uGAIfiF,4BACAC,mCACOlF,oDACUC,8CACAC,oKAIjBI,EAAE,QAAQ8D,EAAE,8BACZ9D,EAAE,QAAQ8D,EAAE,wKASzBO,gBAEAvB,mDAON23H,GAAK,CAAEC,KAAM,wCAAyCC,KAAM,yCAC5DC,GAAK,MACP,YAAY1hI,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,QAAS,QAAS,QAAS,SAAUnsJ,KAAK+5F,YAAc17E,GAAE4jE,2BAA2BxgD,EAAGE,GAAI3hC,KAAK0pJ,SAAW,4GAG5HpoH,8SAaN2hI,GAAK,gBACT,SAASC,GAAG7hI,GACV,IASIgD,GATEu6B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgD,EAAG1C,EAAG8K,EAAG7K,GAAMN,EAAI8C,EAAI/lB,GAAE2f,WAAW2D,EAAE+8B,MAAO98B,EAAE88B,OACrF,GAAgB,cAAZ/8B,EAAE+8B,MAAuB,CAC3B,IAAIp6B,EAAI7C,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAASr8B,EAAI9C,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAASn8B,EAAI,IAAIu+H,GAAGH,GAAGC,KAAMnhI,EAAEw9B,MAAOv9B,EAAEu9B,OAAQj5B,EAAI,IAAI88H,GAAGH,GAAGE,KAAMphI,EAAEw9B,MAAOv9B,EAAEu9B,OAAQr3B,EAAI,CAAC,CAAE84B,OAAQt8B,EAAE8yF,mBAAmBhkG,KAAKwtC,OAAQlC,MAAOp6B,EAAE8yF,mBAAmBhkG,KAAKsrC,MAAOS,MAAOx9B,EAAEw9B,OAAS,CAAEyB,OAAQt8B,EAAE8yF,mBAAmB9tG,KAAKs3C,OAAQlC,MAAOp6B,EAAE8yF,mBAAmB9tG,KAAKo1C,MAAOS,MAAOx9B,EAAEw9B,OAAS,CAAEyB,OAAQr8B,EAAE6yF,mBAAmBhkG,KAAKwtC,OAAQlC,MAAOn6B,EAAE6yF,mBAAmBhkG,KAAKsrC,MAAOS,MAAOv9B,EAAEu9B,OAAS,CAAEyB,OAAQr8B,EAAE6yF,mBAAmB9tG,KAAKs3C,OAAQlC,MAAOn6B,EAAE6yF,mBAAmB9tG,KAAKo1C,MAAOS,MAAOv9B,EAAEu9B,QAAUp3B,EAAItG,EAAE48H,gBAAgB55H,EAAGqD,EAAG,WAAYE,EAAIvG,EAAE48H,gBAAgBn4H,EAAG4B,EAAG,WAAYM,EAAIq5H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAM2U,EAAGze,KAAM0e,GAAK9pB,QAASujB,IAC1qB,OAAOA,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GAAII,EAEjF,GAAI3G,EAAEq+H,mBAAmB,CAACn+H,EAAGC,IAAK,CAChC,IAAI0C,EAAI7C,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAASr8B,EAAI9C,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,SAAUn8B,EAAGyB,GAAKyyH,GAAGh3H,EAAEw9B,MAAOv9B,EAAEu9B,MAAO76B,EAAExlC,OAAQylC,EAAEzlC,OAAQslC,GAAI0D,EAAIrG,EAAE41F,eAAenxF,EAAG9B,GAAI2D,EAAItG,EAAEyqH,QAAQ1qJ,IAAIsmC,EAAE84B,QACpK,OAAO74B,EAAEjpC,OAAS2lC,EAAGqD,EAGvB,OAAqDzD,EAA9C1e,KAAIuxC,QAAQ,gCAAsC,IAAImqG,GAAG4B,GAAIthI,EAAEw9B,MAAOv9B,EAAEu9B,OAAa,IAAIgiG,GAAG8B,GAAIthI,EAAEw9B,MAAOv9B,EAAEu9B,OAAQ19B,EAAE48H,gBAAgBh6H,EAAG,CAAC1C,EAAGC,GAAIwC,GAEzJ,IAAI++H,GAAK,CAAExqG,WAAYjnD,GAAIknD,YAAa,QAASuO,WAAY+7F,IAC7D,SAASE,GAAG/hI,EAAGC,EAAIG,GACjB,IAAIE,EAAI,CAAC+5G,GAAGr6G,EAAE89B,UAAWq9E,GAAGn7G,EAAE89B,QAASv9B,EAAI,CAAE88B,MAAOr9B,EAAEq9B,MAAOS,MAAOx9B,EAAGi/B,OAAQv/B,EAAEu/B,QAAUx8B,EAAI,CAACs3G,GAAGp6G,MAAQk7G,GAAGl7G,IAAM+C,EAAI,IAAIy2H,GAAG12H,EAAGzC,GAAI2C,GAAI,EAAMC,EAAI,CAAC5C,GAAI8C,EAAIhD,EAAE48H,gBAAgBh6H,EAAG,CAACzC,GAAIP,EAAEq9B,MAAOn6B,EAAGD,GACnM,MAAO,CAAEs8B,OAAQn8B,EAAEm8B,OAAQzB,MAAO79B,EAAIo9B,MAAOj6B,EAAEi6B,OAEjD,SAAS2kG,GAAGhiI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM69B,MAAO/6B,GAAMzC,EAAG0C,EAAI5C,EAAG6C,EAAIjG,GAAEi+B,cAAc16B,EAAEu9B,OAAQ56B,EAAIlG,GAAEy8B,uBAAuB12B,EAAGE,GAAIG,EAAIpG,GAAEi+B,cAAc/3B,GAC5KlG,GAAE26B,OAAO10B,IAAMG,EAAG,IAAM,kBAAkBF,UAAUE,iCAAiC7C,EAAEu9B,cAAc76B,kFACrG,IAAI4B,EAAI7B,EAAE6nH,QAAQ1qJ,IAAIogC,EAAEg/B,QACxB,OAAO16B,EAAEkjH,UAAa3L,GAAG77G,EAAEu9B,MAAO56B,IAAsB,OAAd2B,EAAEi9B,SAAoBs6E,GAAGv3G,EAAEi5B,MAAO56B,IAAqBF,EAAEs9B,OAAO//B,EAAEg/B,QAAS,CAAEA,OAAQh/B,EAAEg/B,OAAQzB,MAAO56B,EAAGm6B,MAAO98B,EAAE88B,QAA1E0kG,GAAGxhI,EAAG2C,EAAGF,GAE7F,IAAIi/H,GAAK,CAAE3qG,WAAYvjD,GAAIwjD,YAAa,QAASuO,WAAYk8F,IACzDE,GAAK,MACP,YAAYjiI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAMqX,WAAY7hI,EAAGq3C,UAAWp3C,EAAG6hI,OAAQr/H,EAAGs/H,QAASr/H,GAAM/C,EAC7DthC,KAAK+5F,YAAc,CAACn4D,EAAGyC,GACvB,IAAIC,EAAwB,EAApBP,KAAK7c,MAAMya,EAAI,GAAQ4C,EAAI5C,EAAI,EAAG8C,EAAI,iCAC9C,GAAS,MAALhD,EAAW,CACb,IAAIqG,EAAI,EAAIrG,EACZgD,EAAI,4BAA4BpG,GAAE48B,MAAMnzB,GAAKA,EAAE67H,YAAY,GAAK77H,YAElE,IAAI5B,EAAI,GACR9B,EAAIzC,EAAI,IAAMuE,EAAI,uCACc9B,kDAG1BpkC,KAAK0pJ,SAAW,gHAIhBxjH,sNAQwBvE,sEAIJ2C,8QASlBG,kDAGqBH,mBACb,IAANC,2FAGFE,yBACe,IAANF,6IAKTE,yBACe,IAANF,iLAMTE,8DAORm/H,GAAK,MACP,YAAYtiI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAMqX,WAAY7hI,EAAGq3C,UAAWp3C,EAAG6hI,OAAQr/H,EAAGs/H,QAASr/H,GAAM/C,EAC7DthC,KAAK+5F,YAAc,CAACn4D,EAAGyC,GACvB,IAAIC,EAAI,MAAOC,EAAI,GACb,SAAN9C,EAAe6C,EAAI,MAAc,QAAN7C,GAAe6C,EAAI,cAAeC,EAAI,OAAe,QAAN9C,IAAgB6C,EAAI,eAAgBC,EAAI,OAClH,IAAIE,EAAI,GAAGhD,KAAKA,KAAKA,sEACf,QAANA,EAAcgD,EAAI,WAAmB,SAANhD,EAAegD,EAAI,YAAoB,QAANhD,EAAcgD,EAAI,WAAmB,QAANhD,IAAgBgD,EAAI,YACnH,IAAIyB,EAAwB,EAApBnC,KAAK7c,MAAMya,EAAI,GAAQmG,EAAInG,EAAI,EAAGoG,EAAI,eAChC,QAANtG,kEAEa,SAANA,mKAIK8C,wCACJ,QAAN9C,QAAwB,QAANA,iCACN8C,0MAOnByD,EAAI,OACD,QAANvG,GAAe6C,EAAI,MAAOyD,EAAI,qMAIzBC,EAAI,SAAiB,QAANvG,IAAgB6C,EAAI,MAAOyD,EAAI,qMAI9CC,EAAI,SACT,IAAII,EAAI,GACRhE,EAAIzC,EAAI,IAAMyG,EAAI,uCACchE,kEAG1BpkC,KAAK0pJ,SAAW,6CACgBplH,kHAIhC8D,sNAQwBzG,yCAEA2C,mKAMJ4B,gEAElB8B,cAAcA,gMAOdD,kDAGqB7B,mBACb,IAAN4B,mBACFE,cAAcA,2KAOdD,yBACe,IAAND,mBACTE,cAAcA,kLAOdD,yBACe,IAAND,mBACTE,cAAcA,yLAOdD,mCAEQtD,uBAKpB,SAASo/H,GAAGxiI,GACV,IAAIC,EAAK,GACT,KAAqB,IAAdA,EAAGphC,QAA8C,IAA9BohC,EAAGA,EAAGphC,OAAS,GAAGwjK,SAAiB,CAC3D,IAAIjiI,EAAIH,EAAGphC,OAASohC,EAAGA,EAAGphC,OAAS,GAAGwjK,QAAUriI,EAAE,GAAIM,EAAItjB,GAAE68F,yBAAyBz5E,GACrFH,EAAGuK,KAAK,CAAE43H,OAAQhiI,EAAG+hI,WAAY7hI,EAAG+hI,QAAS3/H,KAAK3jB,KAAKqhB,EAAIE,KAE7D,OAAOL,EAET,SAASwiI,GAAGziI,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIiiI,GAAGxiI,EAAE89B,OAAQ/6B,EAAI/C,EACzB,IAAK,IAAIgD,EAAI,EAAGA,EAAIzC,EAAE1hC,OAAQmkC,IAAK,CACjC,IAAqD6B,EAAG4B,GAAlD27H,OAAQn/H,EAAGk/H,WAAYj/H,EAAGm/H,QAASj/H,GAAM7C,EAAEyC,GAClC6B,EAAT,SAANzE,EAAyB,IAAN4C,EAAU,IAAIk/H,GAAG,CAAEC,WAAYj/H,EAAGk/H,OAAQn/H,EAAG00C,UAAW33C,EAAE89B,MAAM,GAAIukG,QAASj/H,GAAKH,GAAK,IAAIi/H,GAAG,CAAEC,WAAYj/H,EAAGk/H,OAAQn/H,EAAG00C,UAAW33C,EAAE89B,MAAM,GAAIukG,QAASj/H,IAAW,IAAIm/H,GAAG,CAAEJ,WAAYj/H,EAAGk/H,OAAQn/H,EAAG00C,UAAW33C,EAAE89B,MAAM,GAAIukG,QAASj/H,GAAKhD,GAAIqG,EAAI1D,EAAGA,EAAIzC,EAAE08H,gBAAgBn4H,EAAG,CAAC9B,GAAI9C,GAAKwG,EAAE84B,SAAWv/B,EAAEu/B,QAAUj/B,EAAE48F,8BAA8Bz2F,GAEzW,OAAO1D,EAET,IAAI2/H,GAAK,MACP,YAAYziI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAIxqH,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAImkC,EAAI,EAAGA,EAAI1C,EAAEzhC,OAAQmkC,IAC5B1C,EAAE0C,GAAK/C,EAAGG,EAAE4C,IACdrkC,KAAK+5F,YAAcp4D,EAAG3hC,KAAKi/D,KAAOt9B,EAAEzhC,OACpC,IAAI0hC,EAAImqH,GAAG/rJ,KAAKi/D,MAAO76B,EAAI4/H,GAAGviI,GAC9BzhC,KAAK0pJ,SAAW,8BAEZ9nH,sDACewC,sBAKvB,SAAS4/H,GAAG3iI,GACV,IAAIC,EAAKD,EAAEnhC,OACX,GAAIohC,EAAK,EACP,MAAM2C,MAAM,sBAAsB3C,0BACpC,IAAIG,EAAI,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WAAYE,EAAI,IAAI8yB,MAAMnzB,GAC1F,IAAK,IAAIM,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,IAC5BD,EAAEN,EAAEO,IAAMH,EAAEG,GACd,OAAOD,EAAE+1B,OAEX,IAAIusG,GAAK,MACP,YAAY3iI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAC1E,IAAI/sH,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAIgmC,EAAI,EAAGA,EAAIvE,EAAEzhC,OAAQgmC,IAC5BvE,EAAEuE,GAAK5E,EAAGG,EAAEyE,IACd,GAAIlmC,KAAK+5F,YAAcp4D,EAAG3hC,KAAKi/D,KAAOt9B,EAAEzhC,OAAQF,KAAKi/D,KAAO,EAC1D,MAAMh7B,MAAM,6BAA6BjkC,KAAKi/D,8BAChD,IAAIr9B,EAAImqH,GAAG/rJ,KAAKi/D,MAAO76B,EAAIk2H,GAAG,KAAMt6J,KAAKi/D,MAAO56B,EAAI,IAAIowB,MAAMz0D,KAAKi/D,MACnE,IAAK,IAAI/4B,EAAI,EAAGA,EAAIzE,EAAEvhC,OAAQgmC,IAC5B7B,EAAE5C,EAAEyE,IAAM9B,EAAE8B,GACd,IAAI5B,EAAI,QAAQD,EAAErM,OAAO,GAAG0/B,UAAWnzB,EAAI,KAAKH,EAAEpkC,KAAKi/D,KAAO,QAAQt9B,EAAE3hC,KAAKi/D,KAAO,KAAMx6B,EAAI,mBAAmBJ,EAAEqzB,YAAYpzB,KAC/HtkC,KAAK0pJ,SAAW,8BAEZ9nH,+EAEY6C,gBACTF,6BACWE,wBAEZL,EAAEpkC,KAAKi/D,KAAO,mBACX76B,EAAEpkC,KAAKi/D,KAAO,QAAQt9B,EAAE3hC,KAAKi/D,KAAO,8BAC3Bx6B,kBACTF,+BACWE,kEAQxB,SAASy/H,GAAG7iI,EAAGC,EAAIG,GACjB,IAAIE,EAAIhc,KAAIuxC,QAAQ,+BAAiC,IAAI+sG,GAAG5iI,EAAE89B,MAAO79B,GAAM,IAAIyiI,GAAG1iI,EAAE89B,MAAO79B,GAC3F,OAAOG,EAAE48H,gBAAgB18H,EAAG,CAACN,GAAIA,EAAEq9B,OAErC,SAASylG,GAAG9iI,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIN,EAAI8C,EAAI/C,EAAE89B,MAAMj/D,OAAQmkC,EAAIhG,GAAE29B,eAAep6B,EAAGP,EAAE89B,OAAQ76B,EAAID,EAAGE,EAAIlmB,GAAE+9F,mBAAmB93E,EAAGF,GAAIK,EAAS,MAALF,EAAW2B,EAAI7E,EAC5HoD,IAAMyB,EAAIg+H,GAAG7iI,EAAGkD,EAAG5C,GAAI2C,EAAIjmB,GAAE0+F,iBAAiBz4E,EAAEpkC,OAAQkkC,IAAK/lB,GAAE27F,2BAA2B,MAAO11E,EAAGF,GACpG,IAAK0D,EAAGC,GAAK1pB,GAAE+8F,0BAA0Bl1E,EAAEi5B,MAAO76B,GAAI0D,EAAIF,EAC1DrG,IAAMuG,EAAI3pB,GAAEs9F,qBAAqB7zE,EAAGzD,IACpC,IAAI+D,EAAI/J,GAAEi+B,cAAcv0B,GAAIoE,EAAI9N,GAAEi+B,cAAcj7B,EAAE89B,OAAS/2B,EAAG8C,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGhF,GAAK8gC,MAAO,CAAE7H,MAAO,CAAChzB,EAAG/D,IAAMlqB,QAASyjB,IAAM8K,EAAI1R,GAAGsG,EAAEq9B,OAAQ3xB,EAAI+2H,GAAG54H,EAAGuB,EAAG,MAAO9K,GAAIqL,EAAIq2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG6B,GAAKi6B,MAAO,CAAE7H,MAAOn3B,GAAK9pB,QAASyjB,IACpO,OAAOA,EAAE48F,8BAA8BrzF,GAAIvJ,EAAE48F,8BAA8BxxF,GAAItI,GAAK9C,EAAE48F,8BAA8Br4F,GAAI8G,EAE1H,SAASo3H,GAAG/iI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxF,OAAOwiI,GAAGviI,EAAGwC,EAAGC,EAAG5C,GAErB,IAAI4iI,GAAK,CAAE1rG,WAAY3+C,GAAI4+C,YAAa,QAASuO,WAAYi9F,IAC7D,SAASE,GAAGjjI,GACV,IAGIoD,GAHEm6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+3D,KAAMj1D,GAAMzC,EAAG0C,EAAI5C,EAAG6C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,IAAIkwB,MAAMnwB,GACvH,IAAK,IAAI4B,EAAI,EAAGA,EAAI3B,EAAErkC,OAAQgmC,IAC5B3B,EAAE2B,GAAKtE,EAAEu9B,MAAM/6B,EAAE8B,IAEnB,GAAI7B,EAAEy7H,mBAAmB,CAACl+H,IAAK,CAC7B,IAAIkG,EAAIzD,EAAE6nH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAIqyH,GAAGtyH,EAAGlG,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,EAAGG,GACvEE,EAAIJ,EAAEgzF,eAAe9yF,EAAG3C,EAAE88B,OAC1B,IAAI12B,EAAI3D,EAAE6nH,QAAQ1qJ,IAAIijC,EAAEm8B,QACxB54B,EAAElpC,OAASipC,OAEXtD,EAAIy/H,GAAGtiI,EAAGwC,EAAGC,GACf,OAAOI,EAET,IAAI8/H,GAAK,CAAE5rG,WAAYz9C,GAAI09C,YAAa,QAASuO,WAAYm9F,IACzDE,GAAK,IACT,SAASC,IAAKpgI,EAAGhD,EAAGoL,EAAGnL,EAAI46C,WAAYz6C,EAAG06C,WAAYx6C,EAAGzjB,QAAS0jB,EAAGgmD,KAAMxjD,EAAI,KAAMg3D,uBAAwB/2D,EAAI,KAAMg3D,eAAgB/2D,EAAI,EAAG62D,WAAY52D,EAAI,OAC5J,IAAIE,EAAIpD,EAAE89B,MAAMj/D,OAAQgmC,EAAI5E,EAAG69B,MAAMj/D,OAAQ4nC,EAAIrG,EAAIJ,EAAE89B,MAAM16B,EAAI,GAAKpD,EAAE89B,MAAM16B,EAAI,GAAIsD,EAAIpG,EAAIL,EAAG69B,MAAMj5B,EAAI,GAAK5E,EAAG69B,MAAMj5B,EAAI,GAAI8B,EAAIvG,EAAIJ,EAAE89B,MAAM16B,EAAI,GAAKpD,EAAE89B,MAAM16B,EAAI,GAAI2D,EAAIzG,EAAIL,EAAG69B,MAAMj5B,EAAI,GAAK5E,EAAG69B,MAAMj5B,EAAI,GAAIgG,EAAI7K,EAAE89B,MAAMnnC,MAAM,GAAI,GAAImU,EAAI7K,EAAG69B,MAAMnnC,MAAM,GAAI,GAAIkT,EAAI7M,GAAEi+B,cAAcpwB,GAAIO,EAAIpO,GAAEi+B,cAAcnwB,GAAIa,EAAIntB,GAAGoiE,2BAA2B5gD,EAAE89B,MAAMnnC,MAAM,GAAI,GAAIsJ,EAAG69B,MAAMnnC,MAAM,GAAI,IAAIpX,OAAO,CAAConB,EAAGI,IACpZ/J,GAAE26B,OAAOlxB,IAAMC,EAAG,IAAM,kCAAkCD,WAAWC,6BAA6B1G,EAAE89B,aAAa79B,EAAG69B,wBAAwB19B,oBAAoBE,iBAChK,IAAyXiM,EAArXX,EAAIxL,EAAI,CAACyJ,EAAGpD,EAAGE,GAAK,CAACkD,EAAGlD,EAAGF,GAAIoF,EAAIvL,EAAI,CAAC8K,EAAGrE,EAAGL,GAAK,CAAC0E,EAAG1E,EAAGK,GAAIgF,EAAIi2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOlyB,KAAQI,EAAIg2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOjyB,KAAQI,EAAI,CAACF,EAAGC,GAAIE,EAAIxJ,KAAK3W,IAAI8d,EAAGuB,GAAIxtC,EAAIwiC,EAAI2L,EAAE+xB,MAAM,GAAK/xB,EAAE+xB,MAAM,GAAI3xB,EAAS,MAALpJ,EAAWsJ,EAAS,MAALrJ,EAAWwJ,EAAU,cAANtJ,EAAmB4G,EAAS,MAAL5G,EAAYo+H,GAAGp+H,GAAG,GAAQ,KAAMsP,EAAIrG,GAAKE,GAAKG,GAAU,MAAL1C,EAC9W,IAAW,IAANnD,GAAiB,IAANI,IAAYnpC,EAAIulK,KAAY,IAAN3wH,EAAa,CACjD,IAAIud,EAAIhkB,EAAGwjB,EAAIvjB,EACf5L,IAAM2vB,EAAIkzG,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGkC,GAAKlvB,QAAS0jB,EAAGolC,MAAO,CAAEqyB,KAAM,CAAC,EAAG,EAAG,MAAS/rD,EAAEzB,KAAKulB,IAAKzvB,IAAMivB,EAAI0zG,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGmC,GAAKnvB,QAAS0jB,EAAGolC,MAAO,CAAEqyB,KAAM,CAAC,EAAG,EAAG,MAAS/rD,EAAEzB,KAAK+kB,IAC3K,IAAIC,EAAW,IAANzoB,EAASrB,EAAW,IAANqB,EAASkM,EAAK8c,EACrCP,IAAOvc,EAAK+uH,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGkmB,GAAKlzC,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAO,CAAC5xB,EAAGtuC,EAAG,MAASquC,EAAEzB,KAAKyI,IACtF,IAAItE,EAAW,IAAN5H,EAAU,EAAI,EAAGqM,EAAKmc,EAC/B7pB,IAAO0N,EAAK4uH,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG0lB,GAAK1yC,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAO,CAAC5xB,EAAG,EAAGtuC,MAASquC,EAAEzB,KAAK4I,IACtF,IAAIpN,EAAK67H,GAAG,CAAEtkG,OAAQ,CAAEv6B,EAAGiQ,EAAI7H,EAAGgI,GAAMv2B,QAAS0jB,IACjDgM,EAAIw2H,GAAG,CAAExlG,OAAQ,CAAE1zB,EAAG7D,GAAMnpB,QAAS0jB,EAAGolC,MAAO,CAAEgQ,KAAMhnC,EAAIinC,UAAU,KAAW3pC,EAAEzB,KAAKxE,OAClF,CACL,IAAI+pB,EAAInzB,GAAGoD,EAAEq9B,MAAOp9B,EAAGo9B,OAAQ9N,EAAI,IAAIgyG,GAAG31H,EAAGC,EAAG,CAACK,EAAGvF,EAAGI,GAAI3G,EAAGE,EAAG6L,EAAGrC,EAAGuC,EAAGG,GAAIgjB,EAAK,CAACzjB,EAAGC,GACvF,GAAS,MAALjJ,GAAaysB,EAAGhlB,KAAKzH,GAAIsJ,GAAKmjB,EAAGhlB,KAAKxH,GAAIwJ,EAAG,CAC/C,IAAI9G,EAAKnF,EAAEy1F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkBp1B,EAAG,YAChEusB,EAAGhlB,KAAK9E,GAAKuG,EAAEzB,KAAK9E,GAEtB6G,EAAIhM,EAAEy8H,gBAAgBztG,EAAGC,EAAIO,GAE/B,IAAID,EAAIkyG,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG0C,GAAK1vB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOnyB,KAC3DM,EAAEzB,KAAK+B,GACP,IAAK,IAAIwjB,KAAK9jB,EACZ1L,EAAE28F,8BAA8BntE,GAClC,OAAOD,EAET,SAASuzG,GAAGrjI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM46C,WAAY33C,EAAG43C,WAAY13C,EAAG02D,WAAYj1D,EAAGm1D,eAAgBvzD,GAAMnG,EAC5K,OAAO8iI,GAAG,CAAEpgI,EAAGzC,EAAG6K,EAAGrI,EAAG83C,WAAY33C,EAAG43C,WAAY13C,EAAGvmB,QAASujB,EAAGmmD,KAAMvjD,EAAG+2D,uBAAwB92D,EAAG+2D,eAAgBvzD,EAAGqzD,WAAYj1D,IAEvI,IAAIy+H,GAAK,CAAEhsG,WAAYz8C,GAAI08C,YAAa,QAASuO,WAAYu9F,IACzDE,GAAK,iBACT,SAASC,GAAGxjI,GACV,IAKIO,GALEg9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAIG,EAAEq+H,mBAAmB,CAACn+H,KAAmB,cAAZA,EAAE+8B,MAAuB,CACxD,IAAIt6B,EAAI3C,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAASv8B,EAAIi1H,GAAGl1H,EAAEtlC,QAC1C,OAAO2iC,EAAE41F,eAAe11F,EAAEw9B,MAAOx9B,EAAE+8B,MAAOr6B,GAG5C,OAAoDzC,EAA7Cjc,KAAIuxC,QAAQ,+BAAqC,IAAI2lG,GAAGl7H,EAAEw9B,MAAOylG,IAAU,IAAI17H,GAAGvH,EAAEw9B,MAAOylG,IAAKnjI,EAAE48H,gBAAgBz8H,EAAG,CAACD,GAAIA,EAAE+8B,OAErI,IAAIomG,GAAK,CAAEnsG,WAAYj2D,GAAIk2D,YAAa,QAASuO,WAAY09F,IACzDE,GAAK/I,GAAK,oEAMVgJ,GAAK5C,GAAG,CAAEC,UAAW0C,KACrBE,GAAK,CAAEtsG,WAAY/1D,GAAIg2D,YAAa,QAASuO,WAAY69F,IACzDE,GAAKlJ,GAAK,mEAGVmJ,GAAK/C,GAAG,CAAEC,UAAW6C,KACrBE,GAAK,CAAEzsG,WAAY71D,GAAI81D,YAAa,QAASuO,WAAYg+F,IACzDE,GAAK,gBACLC,GAAK9C,GAAG,CAAEH,UAAWgD,GAAI/C,gBAAiB+C,GAAI3C,iBAAiB,EAAMH,cAAelL,KACpFkO,GAAK,CAAE5sG,WAAYn1D,GAAIo1D,YAAa,QAASuO,WAAYm+F,IACzDE,GAAK,MACP,YAAYlkI,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAcz4D,EAAIthC,KAAKmsJ,cAAgB1qH,EAAE8yB,IAAI,CAACnwB,EAAGC,IAAM,IAAIA,GACvF,IAAI1C,EAAI,GACR3hC,KAAKmsJ,cAAcxyG,QAASvV,IAC1BzC,EAAEkK,KAAK,UAAUzH,UAAUA,qBAE7B,IAAIxC,EAAI5hC,KAAKmsJ,cAAc53F,IAAKnwB,GAAM,IAAIA,GAAKszB,KAAK,OACpD13D,KAAK0pJ,SAAW,kCAEV/nH,EAAE+1B,KAAK,2CAGQ91B,kDAMrB6jI,GAAK,MACP,YAAYnkI,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAcz4D,EAAIthC,KAAKmsJ,cAAgB1qH,EAAE8yB,IAAI,CAACnwB,EAAGC,IAAM,IAAIA,GAC3I,IAAI1C,EAAI,GACR3hC,KAAKmsJ,cAAcxyG,QAASvV,IAC1BzC,EAAEkK,KAAK,SAASzH,UAAUA,qBAE5B,IAAIxC,EAAI5hC,KAAKmsJ,cAAc53F,IAAKnwB,GAAM,IAAIA,GAAKszB,KAAK,OACpD13D,KAAK0pJ,SAAW,kCAEV/nH,EAAE+1B,KAAK,0CAGO91B,kDAMxB,SAAS8jI,GAAGrkI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,EAAGM,EAAIL,EACxC,GAAiB,IAAbK,EAAEzhC,OACJ,OAAOqhK,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGvJ,EAAE,IAAMzjB,QAASujB,IAC5C,GAAIE,EAAEzhC,OAASylB,KAAIq7H,UAAU,gCAAiC,CAC5D,IAAIz8G,EAAIR,KAAK7c,MAAMya,EAAEzhC,OAAS,GAAIukC,EAAIihI,GAAG,CAAE9mG,OAAQj9B,EAAE3J,MAAM,EAAGuM,GAAIrmB,QAASujB,IAAMyE,EAAIw/H,GAAG,CAAE9mG,OAAQj9B,EAAE3J,MAAMuM,GAAIrmB,QAASujB,IACvH,OAAOikI,GAAG,CAAE9mG,OAAQ,CAACn6B,EAAGyB,GAAIhoB,QAASujB,IAEvC,IAAIG,EAAID,EAAE4yB,IAAKhwB,GAAMA,EAAEm6B,OAAO5+D,OAAO,CAACykC,EAAGE,IAAMxG,GAAGsG,EAAGE,IAAKL,EAAIzC,EAAE4yB,IAAKhwB,GAAMA,EAAE46B,OAAQ76B,EAAI3e,KAAIuxC,QAAQ,cAAgB,IAAIuuG,GAAG9jI,EAAE,GAAGw9B,MAAO/6B,GAAK,IAAIohI,GAAG7jI,EAAE,GAAGw9B,MAAO/6B,GAChK,OAAO3C,EAAE48H,gBAAgB/5H,EAAG3C,EAAGC,GAEjC,IAAI+jI,GAAK,CAAEhtG,WAAYj1D,GAAIk1D,YAAa,QAASuO,WAAYu+F,IAC7D,SAASE,GAAGvkI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIF,EAAG2B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGH,GAAIwD,EAAIlG,EACvL,MAALsE,IAAc4B,EAAIw8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQzB,EAAIpmB,GAAE0+F,iBAAiBt4E,EAAEvkC,OAAQokC,IAAKjmB,GAAE27F,2BAA2B,MAAOv1E,EAAGH,GACzJ,IAAiL4G,GAA5KnD,EAAGC,GAAK3pB,GAAE+8F,0BAA0BtzE,EAAEq3B,MAAO16B,GAAI2D,EAAI/J,GAAEi+B,cAAct0B,GAAIkE,EAAIm3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAG/2B,MAAS+D,EAAI23H,GAAG53H,EAAGA,EAAEwyB,MAAO,MAAOj9B,GAC7K,GAAI4C,EAAG,CACL,IAAIoI,EAAIpuB,GAAEs9F,qBAAqB5zE,EAAGxD,GAClC2G,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO1yB,UAEvDvB,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KACzD,OAAOtG,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8BpyF,GAAS,MAALjG,GAAazE,EAAE88F,8BAA8Bz2F,GAAIoD,EAElI,IAAI26H,GAAK,CAAEltG,WAAY/0D,GAAIg1D,YAAa,QAASuO,WAAYy+F,IAC7D,SAASE,GAAGzkI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIF,EAAG2B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGH,GAAIwD,EAAIlG,EACvL,MAALsE,IAAc4B,EAAIw8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQzB,EAAIpmB,GAAE0+F,iBAAiBt4E,EAAEvkC,OAAQokC,IAAKjmB,GAAE27F,2BAA2B,MAAOv1E,EAAGH,GACzJ,IAAiL4G,GAA5KnD,EAAGC,GAAK3pB,GAAE+8F,0BAA0BtzE,EAAEq3B,MAAO16B,GAAI2D,EAAI/J,GAAEi+B,cAAct0B,GAAIkE,EAAIm3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAG/2B,MAAS+D,EAAI23H,GAAG53H,EAAGA,EAAEwyB,MAAO,MAAOj9B,GAC7K,GAAI4C,EAAG,CACL,IAAIoI,EAAIpuB,GAAEs9F,qBAAqB5zE,EAAGxD,GAClC2G,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO1yB,UAEvDvB,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KACzD,OAAOtG,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8BpyF,GAAS,MAALjG,GAAazE,EAAE88F,8BAA8Bz2F,GAAIoD,EAElI,IAAI66H,GAAK,CAAEptG,WAAY70D,GAAI80D,YAAa,QAASuO,WAAY2+F,IACzDE,GAAK,MACP,YAAY1kI,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAMqX,WAAY5hI,EAAGo3C,UAAW50C,EAAGs/H,QAASr/H,GAAM/C,EAClDK,GAAK3hC,KAAKmsJ,cAActgH,KAAK,gBAAiB7rC,KAAK+5F,YAAc,CAAC31D,EAAGC,GACrE,IAAIC,EAAU,QAAN7C,EAAc,IAAM,IAAK8C,EAAI5C,EAAI,gBAAkB,+CAC3D3hC,KAAK0pJ,SAAW,sKAKc9nH,6HAKJA,oCACN2C,gFAEED,oKAUtB2hI,GAAK,MACP,YAAY3kI,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAMrwH,GAAE26B,OAAO13B,EAAGphC,OAAS,EAAG,IAAM,aAAayhC,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,8CAC/J,IAAIoM,EAAI9C,EAAGA,EAAGphC,OAAS,GAAImkC,EAAIN,KAAK3jB,KAAKgkB,EAAI3C,GAC7CzhC,KAAK+5F,YAAcz4D,EAAGtJ,MAAM,GAAI,GAAIqM,EAAI,GAAKrkC,KAAK+5F,YAAYluD,KAAKxH,GAAIzC,GAAK5hC,KAAKmsJ,cAActgH,KAAK,gBACpG,IAAwE/D,EAAGC,EAAvEzD,EAAItkC,KAAK+5F,YAAax1D,EAAID,EAAEpkC,OAAQukC,EAAIsnH,GAAGxnH,GAAI2B,EAAIq0H,GAAG,SAAUh2H,GACpE,GAAU,IAANF,EAAS,CACX0D,EAAIxD,EAAI,EACR,IAAI8I,EAAI0+G,GAAGhkH,GACXD,EAAI,aACAuF,kBAAkBA,KAAKnH,EAAEwxB,0BACvBxxB,EAAE3B,EAAI,gBACR8I,kBAAkBA,KAAKnH,EAAEwxB,0BACvBxxB,EAAE3B,EAAI,gBACR8I,kBAAkBA,KAAKnH,EAAEwxB,0BACvBxxB,EAAE3B,EAAI,gBACR8I,kBAAkBA,KAAKnH,EAAEwxB,0BACvBxxB,EAAE3B,EAAI,WAEZwD,EAAIxD,EAAGuD,EAAI,aACPrD,qCACEyB,EAAE3B,EAAI,gBACRE,qCACEyB,EAAE3B,EAAI,gBACRE,qCACEyB,EAAE3B,EAAI,gBACRE,qCACEyB,EAAE3B,EAAI,MACd,IAAIyD,EAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKhQ,MAAM,EAAG+P,GAAIK,EAAI,IAAMJ,EAAED,EAAI,GAAImE,EAAIlE,EAAEusB,IAAKlnB,GAAM,OAASA,GAAIlB,EAAIouH,GAAG,aAAcxyH,EAAI,GAAGnnB,OAAO,WAAYsqB,EAAIqvH,GAAG,aAAcxyH,EAAI,GAAGnnB,OAAO,WAAY6rB,EAAI8tH,GAAG,aAAcxyH,EAAI,GAAGnnB,OAAO,WAAYmsB,EAAIwtH,GAAG,aAAcxyH,EAAI,GAAGnnB,OAAO,WAAYosB,EAAU,QAANrL,EAAc,cAAgB,WAAYsL,EAAIrL,EAAI,GAAK,yDAC3SuK,EAAEurB,iEACFxsB,EAAEwsB,iEACFjrB,EAAEirB,iEACF3qB,EAAE2qB,aAAcxqB,EAAI,kCAChDf,EAAEurB,kDACWxsB,EAAEwsB,uDACFjrB,EAAEirB,qEACY3qB,EAAE2qB,gBAAiBtqB,EAAIxL,EAAI,GAAK,wCAChDsK,EAAEwrB,wDACK1vB,EAAE0vB,4DACG1vB,EAAEhQ,OAAO,GAAG0/B,qBAEzD13D,KAAK0pJ,SAAW,6BACMx9G,EAAEwrB,6CACK1vB,EAAE0vB,iDACG1vB,EAAEhQ,OAAO,GAAG0/B,6BAE1CtqB,mCAEE3I,4DACkByB,EAAE3B,EAAI,QAAQD,EAAEC,EAAI,GAAK,iCACzB2B,EAAE3B,EAAI,QAAQD,EAAEC,EAAI,GAAK,eAC3CuD,6CAC+BM,gBAAgBA,2BACnCA,gBAAgBA,QAAQ3G,sGAGnByL,qCAEGzL,mDAElBwL,iCACiBC,mGAGVF,6dAcnB,SAASk5H,GAAG7kI,EAAGC,EAAIG,EAAGE,EAAI,MACxB,IAAIC,EAAIN,EAAG69B,MAAM,GAAI/6B,EAAI9C,EAAG69B,MAAM,GAC7B,MAALx9B,IAAcC,EAAID,EAAEw9B,MAAM,GAAI/6B,EAAIzC,EAAEw9B,MAAM,IAC1C,IAAI96B,EAAIhmB,GAAE68F,yBAAyB92E,GAAIE,EAAI,CAAEk/H,WAAYn/H,EAAGo/H,OAAQr/H,EAAG40C,UAAWp3C,EAAG8hI,QAAS3/H,KAAK3jB,KAAKgkB,EAAIC,IAAME,EAAI,IAAIyhI,GAAG1hI,EAAG7C,EAAQ,MAALE,GAAY8C,EAAI,CAACnD,GAC/I,MAALK,GAAa8C,EAAEoH,KAAKlK,GACpB,IAAIuE,EAAI7E,EAAEg9H,gBAAgB95H,EAAGE,EAAG,SAChC,GAAmB,IAAfyB,EAAEi5B,MAAM,GACV,OAAOj5B,EACT,IAAI4B,EAAIo+H,GAAG7kI,EAAGC,EAAIG,EAAGyE,GACrB,OAAO7E,EAAEk9F,8BAA8Br4F,GAAI4B,EAE7C,SAASq+H,GAAG9kI,EAAGC,EAAIG,EAAGE,EAAI,MACxB,IAAIC,EAAS,MAALD,EAAYA,EAAEw9B,MAAQ79B,EAAG69B,MAAO/6B,EAAIxC,EAAEA,EAAE1hC,OAAS,GAAImkC,EAAIhmB,GAAE68F,yBAAyB92E,GAAIE,EAAI,IAAI2hI,GAAGrkI,EAAGyC,EAAG5C,EAAQ,MAALE,GAAY4C,EAAS,MAAL5C,EAAY,CAACL,GAAM,CAACA,EAAIK,GAAI8C,EAAIpD,EAAEg9H,gBAAgB/5H,EAAGC,EAAG,SAC5L,GAAIE,EAAE06B,MAAMj/D,SAAWohC,EAAG69B,MAAMj/D,OAAQ,CACtC,IAAIgmC,EAAIigI,GAAG9kI,EAAGC,EAAIG,EAAGgD,GACrB,OAAOpD,EAAEk9F,8BAA8B95F,GAAIyB,EAE7C,OAAOzB,EAET,SAAS2hI,GAAG/kI,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI,CAACH,GACT,GAAIpjB,GAAE27F,2BAA2B,MAAQr4E,EAAE+pH,OAAO,GAAGl9B,cAAgB7sF,EAAE3J,MAAM,GAAI4J,EAAGN,EAAG69B,MAAMj/D,SAAUylB,KAAIuxC,QAAQ,sBAAwB51B,EAAG69B,MAAMj/D,QAAU,EAAG,CAC/J,IAAIkkC,EAAI,GAAIC,EAAIhD,EAAE6qH,QAAQ1qJ,IAAI8/B,EAAGs/B,QAASt8B,EAAU,OAAND,GAAcA,EAAE+kH,SAAU7kH,EAAIjD,EAC5EgD,IAAMC,EAAIlD,EAAE2+H,aAAa1+H,GAAK8C,EAAEyH,KAAKtH,IACrC,IAAKE,EAAGyB,GAAK7nB,GAAE+8F,0BAA0B72E,EAAE46B,MAAOv9B,GAAIkG,EAAIzJ,GAAEi+B,cAAcp2B,GAAI6B,EAAIs7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASmjB,EAAG2lC,MAAO,CAAE7H,MAAO,EAAE,EAAGr3B,MAC1I1D,EAAEyH,KAAK9D,GACP,IAAIC,EAAIk+H,GAAG7kI,EAAG0G,EAAGpG,GACjByC,EAAEyH,KAAK7D,GACP,IAAII,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASmjB,EAAG2lC,MAAO,CAAE7H,MAAO16B,KAC3D,OAAOL,EAAEuV,QAASzN,GAAM7K,EAAEk9F,8BAA8BryF,IAAK9D,EAE/D,OAAO+9H,GAAG9kI,EAAGC,EAAIK,GAEnB,SAAS0kI,GAAGhlI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACnK,MAALH,IAAcC,EAAI+/H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,SAAU,CAAC31E,EAAE,IAAKE,EAAE46B,MAAMj/D,QACjM,IAAIgmC,EAAIkgI,GAAG3kI,EAAG8C,EAAGF,EAAE,GAAI,OACvB,OAAOI,EAAEkV,QAAS7R,GAAMrG,EAAE88F,8BAA8Bz2F,IAAK5B,EAE/D,IAAIogI,GAAK,CAAE3tG,WAAY30D,GAAI40D,YAAa,QAASuO,WAAYk/F,IAC7D,SAASE,GAAGllI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACnK,MAALH,IAAcC,EAAI+/H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,SAAU,CAAC31E,EAAE,IAAKE,EAAE46B,MAAMj/D,QACjM,IAAIgmC,EAAIkgI,GAAG3kI,EAAG8C,EAAGF,EAAE,GAAI,OACvB,OAAOI,EAAEkV,QAAS7R,GAAMrG,EAAE88F,8BAA8Bz2F,IAAK5B,EAE/D,IAAIsgI,GAAK,CAAE7tG,WAAYz0D,GAAI00D,YAAa,QAASuO,WAAYo/F,IACzDE,GAAKzK,GAAK,oEAMV0K,GAAKtE,GAAG,CAAEC,UAAWoE,KACrBE,GAAK,CAAEhuG,WAAYv0D,GAAIw0D,YAAa,QAASuO,WAAYu/F,IACzDE,GAAK5K,GAAK,qCACV6K,GAAKzE,GAAG,CAAEC,UAAWuE,KACrBE,GAAK,CAAEnuG,WAAYr0D,GAAIs0D,YAAa,QAASuO,WAAY0/F,IACzDE,GAAK/K,GAAK,wBAGVgL,GAAK5E,GAAG,CAAEC,UAAW0E,KACrBE,GAAK,CAAEtuG,WAAYn0D,GAAIo0D,YAAa,QAASuO,WAAY6/F,IACzDE,GAAKhG,GAAK,2BAGViG,GAAK,4MAKH/F,GAAK,uBAGPgG,GAAK5E,GAAG,CAAEH,UAAW6E,GAAI5E,gBAAiB6E,KAC1CE,GAAK,CAAE1uG,WAAYj0D,GAAIk0D,YAAa,QAASuO,WAAYigG,IACzDE,GAAKtL,GAAK,4FAGVuL,GAAKnF,GAAG,CAAEC,UAAWiF,KACrBE,GAAK,CAAE7uG,WAAY/zD,GAAIg0D,YAAa,QAASuO,WAAYogG,IACzDE,GAAK,MACP,YAAYnmI,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,GACnC,GAAIpkC,KAAKmsJ,cAAgB,CAAC,KAAY,QAAN1qH,GAAeE,EAC7C,MAAM,IAAIsC,MAAM,8CAClB,IAAII,EAAI/C,EAAGm4C,YAAan1C,EAAIhD,EAAGg4C,aAAc/0C,EAAIjD,EAAGi4C,YAAa90C,EAAInD,EAAGs4C,eAAgB1zC,EAAI5E,EAAGu4C,cAAe/xC,EAAIxG,EAAGo4C,sBAAuB3xC,EAAIzG,EAAGq4C,qBAAsB3xC,EAAI1G,EAAGs3C,QAAQgC,IAAKxyC,EAAI9G,EAAGs3C,QAAQz5E,KAC5Ma,KAAK+5F,YAAcz4D,EAAGy4C,SACtB,IAAI7tC,EAAU,QAANzK,EAAa0K,EAAI,cAAc7K,EAAG43C,oBAAoB53C,EAAG63C,mBAAmB73C,EAAG83C,iBAAkBluC,EAAI,SAAS5J,EAAG63C,mBAAmB73C,EAAG83C,iBAAkB3sC,EAAI,MACrK,GAAIP,IAAMO,EAAI,gBAAiB9K,EAAG,CAChC,IAAI0L,EAAI,KAqDR,YApDArtC,KAAK0pJ,SAAW,yCACgBplH,MAAMC,yCACTyD,MAAMI,qiBAkBPN,2BACZrD,gFAGYnD,EAAG43C,4FAIDnxC,6BACZ7B,oFAGY5E,EAAG63C,0WAUb9rC,yIAGSzL,EAAIwC,EAAI+H,EAAIjB,EAAI,QAAQnD,0HASvD,IAAIgF,EAAI,MAAOC,EAAI,GAAGvL,KAAKA,KAAKA,sEAC1B,QAANA,IAAgBuL,EAAI,8BACpB,IAAIC,EAAwB,EAApBlJ,KAAK7c,MAAMmd,EAAI,GAAQ6I,EAAI7I,EAAI,EAAG+I,EAAI,eACtClB,uFAGYa,yCAGpB/sC,KAAK0pJ,SAAW,uCACgBplH,MAAMC,uCACTyD,MAAMI,gDACGqE,8KAMZnL,EAAG63C,igBAkBC1sC,6FAIF3E,yBACZrD,4EAGYnD,EAAG43C,sFAIDjsC,uDACK/G,4HAIEA,sDACIA,sDACAA,wCAG/BkH,mDAGkBH,qBACV,IAANC,8NAQFE,2BACe,IAANF,4HAGkBhH,gHAK3BkH,2BACe,IAANF,4HAGkBhH,sDACIA,4EAI/BkH,gDAGMJ,uBAKhB06H,GAAK,MACP,YAAYpmI,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,GACnC,GAAIpkC,KAAKmsJ,cAAgB,CAAC,KAAY,QAAN1qH,GAAeE,EAC7C,MAAM,IAAIsC,MAAM,8CAClB,IAAII,EAAI/C,EAAGm4C,YAAan1C,EAAIhD,EAAG84C,YAAa71C,EAAIjD,EAAGg4C,aAAc70C,EAAInD,EAAGi4C,YAAarzC,EAAI5E,EAAGi5C,cAAezyC,EAAIxG,EAAGs4C,eAAgB7xC,EAAIzG,EAAGu4C,cAAe7xC,EAAI1G,EAAGg5C,qBAAsBlyC,EAAI9G,EAAGo4C,sBAAuBxtC,EAAI5K,EAAGq4C,qBAAsBxtC,EAAI7K,EAAGs3C,QAAQoC,MAAO9vC,EAAI5J,EAAGs3C,QAAQgC,IAAKnuC,EAAInL,EAAGs3C,QAAQz5E,KACzSa,KAAK+5F,YAAcz4D,EAAGy4C,SACtB,IAAIhtC,EAAU,QAANtL,EAAauL,EAAI,MACzB,GAAID,IAAMC,EAAI,gBAAiBrL,EAAG,CAChC,IAAI4L,EAAI,KAgER,YA/DAvtC,KAAK0pJ,SAAW,sDAEFplH,MAAMC,MAAME,yCACG0H,MAAMjB,MAAMuB,qkBAkBbzE,2BACZ9B,gFAGY5E,EAAG64C,2FAID/xC,6BACZN,oFAGYxG,EAAG43C,kGAIDhtC,+BACZnE,wFAGYzG,EAAG63C,+XAUb5rC,+IAGS3L,EAAIwC,EAAI,cAAc9C,EAAG64C,mBAAmB74C,EAAG43C,oBAAoB53C,EAAG63C,mBAAmB73C,EAAG83C,kBAAoB,UAAU93C,EAAG43C,oBAAoB53C,EAAG63C,mBAAmB73C,EAAG83C,kBAAoB,QAAQhxC,OAAO8D,mCACrNA,6IAUzB,IAAIe,EAAI,MAAOC,EAAI,GAAGzL,KAAKA,KAAKA,sEAC1B,QAANA,IAAgByL,EAAI,8BACpB,IAAIE,EAAwB,EAApBrJ,KAAK7c,MAAMmd,EAAI,GAAQgJ,EAAIhJ,EAAI,EAAGiJ,EAAI,eACtCP,uFAGYE,yCAGpBjtC,KAAK0pJ,SAAW,gDAEJplH,MAAMC,MAAME,uCACK0H,MAAMjB,MAAMuB,gDACHO,uLAMZ1L,EAAG63C,okBAmBCnsC,6FAIFhF,yBACZ9B,4EAGY5E,EAAG64C,qFAID/xC,yBACdN,gFAGcxG,EAAG43C,4FAID9rC,yDACKrF,2IAIMA,6DACIA,6DACAA,6CAGnCuF,uDAGkBF,uBACV,IAANC,iPAQFC,6BACe,IAAND,2IAGsBtF,yHAK/BuF,6BACe,IAAND,2IAGsBtF,6DACIA,mFAInCuF,+DAIIJ,uBAKpB,SAASy6H,GAAGtmI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EACzDs4G,GAAGh4G,EAAG,WACN,IAAM85C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EACvEpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAGI,GAAI,IAAM,wEAAwEJ,oBAAoBI,MACnJ,IAAIyB,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GACjD,GAAsB,IAAlB2B,EAAEuzC,aAAwC,IAAnBvzC,EAAEszC,cAAsBn7C,GAAEy6B,YAAY5yB,EAAE4zC,QAAS5zC,EAAE6zC,UAC5E,OAAOwnF,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAIqG,EAAI,IAAI2/H,GAAGvhI,EAAG,OAAO,GACzB,OAAOzE,EAAE48H,gBAAgBv2H,EAAG,CAAClG,GAAI,WAEnC,IAAIgmI,GAAK,CAAEjvG,WAAY7zD,GAAI8zD,YAAa,QAASuO,WAAYwgG,IAC7D,SAASE,GAAGxmI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,EAAG00C,WAAYx0C,GAAM9C,EAAGuE,EAAI,CAAC,EAAG,EAAG,GAAI4B,EAAIzpB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG6B,EAAG5B,EAAGC,EAAGE,GAAIsD,EAAI,IAAI2/H,GAAG5/H,EAAG,OAAO,GACnO,OAAOrG,EAAE48H,gBAAgBt2H,EAAG,CAACnG,GAAI,WAEnC,IAAIkmI,GAAK,CAAEnvG,WAAY3zD,GAAI4zD,YAAa,QAASuO,WAAY0gG,IACzDE,GAAK,MACP,YAAYzmI,GACVthC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QACnD,IAAIr4C,EAAIH,EAAGk4C,aAAc73C,EAAIL,EAAGm4C,YAAa73C,EAAIN,EAAGg4C,aAAcl1C,EAAI9C,EAAGi4C,YAAal1C,EAAI/C,EAAGs4C,eAAgBt1C,EAAIhD,EAAGu4C,cAAet1C,EAAIjD,EAAGo4C,sBAAuBj1C,EAAInD,EAAGq4C,qBAAsBzzC,EAAI3B,EAAI,EAAIjD,EAAGs3C,QAAQgC,IAAK9yC,EAAIrD,EAAI,EAAInD,EAAGs3C,QAAQz5E,KAAM4oC,EAAI,GAAKtG,EAAIE,GACpQ3hC,KAAK0pJ,SAAW,oCACaxjH,MAAM4B,gDACGC,kdAcVxD,yBACZF,uDAC4BzC,6CAEZN,EAAGu3C,6IAKLp0C,wBACfH,yDAC+BF,+CAEZ9C,EAAGw3C,gTAgBrCkvF,GAAK,MACP,YAAY1mI,GACVthC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QACnD,IAAIr4C,EAAIH,EAAG+4C,YAAa14C,EAAIL,EAAGk4C,aAAc53C,EAAIN,EAAGm4C,YAAar1C,EAAI9C,EAAG84C,YAAa/1C,EAAI/C,EAAGg4C,aAAch1C,EAAIhD,EAAGi4C,YAAah1C,EAAIjD,EAAGi5C,cAAe91C,EAAInD,EAAGs4C,eAAgB1zC,EAAI5E,EAAGu4C,cAAe/xC,EAAIxG,EAAGg5C,qBAAsBvyC,EAAIzG,EAAGo4C,sBAAuB1xC,EAAI1G,EAAGq4C,qBAAsBvxC,EAAIN,EAAI,EAAIxG,EAAGs3C,QAAQoC,MAAO9uC,EAAInE,EAAI,EAAIzG,EAAGs3C,QAAQgC,IAAKzuC,EAAInE,EAAI,EAAI1G,EAAGs3C,QAAQz5E,KAAM+rC,EAAI,GAAKzJ,EAAIE,EAAIC,GACjY5hC,KAAK0pJ,SAAW,oCACathH,MAAM8D,MAAMC,gDACHjB,wiBAiBVpD,yBACZvD,uDAC4BH,6CAEZ9C,EAAG24C,4IAKLlyC,2BACZtD,yDAC4BJ,+CAEZ/C,EAAGu3C,sKAML7wC,6BACZ9B,2DAC4B5B,iDAEZhD,EAAGw3C,sVAiB3C,SAASmvF,GAAG5mI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,GAAKs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAI,CAAC,EAAG,EAAG,GAAIC,EAAI1pB,GAAEi9F,kBAAkBj3E,EAAE86B,MAAO76B,EAAGC,EAAGuD,EAAGrD,EAAGyB,GAAI8B,EAAI,IAAIggI,GAAGjgI,GACzN,OAAOtG,EAAE48H,gBAAgBr2H,EAAG,CAACpG,GAAIyC,EAAEq6B,OAErC,IAAIwpG,GAAK,CAAEvvG,WAAYzzD,GAAI0zD,YAAa,QAASuO,WAAY8gG,IAC7D,SAASE,GAAG9mI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,EAC5Ew1G,GAAG,CAACh4G,EAAGwC,GAAI,eACX,IAAMs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,GAAM9C,EAAGuE,EAAI7nB,GAAEg9F,kBAAkBh3E,EAAE86B,MAAO76B,EAAGC,EAAG,EAAGE,GAAIqD,EAAI,IAAIigI,GAAG7hI,GACxG,OAAOzE,EAAE48H,gBAAgBv2H,EAAG,CAAClG,GAAIyC,EAAEq6B,OAErC,IAAI0pG,GAAK,CAAEzvG,WAAYvzD,GAAIwzD,YAAa,QAASuO,WAAYghG,IAC7D,SAASE,GAAGhnI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,GAAM9C,GAAM46C,WAAY73C,EAAG83C,WAAY73C,GAAM3C,EACtG,OAAO8iI,GAAG,CAAEpgI,EAAGzC,EAAG6K,EAAGrI,EAAG83C,WAAY73C,EAAG83C,WAAY73C,EAAGpmB,QAASujB,IAEjE,IAAI6mI,GAAK,CAAE3vG,WAAYnzD,GAAIozD,YAAa,QAASuO,WAAYkhG,IACzDE,GAAK,MACP,YAAYjnI,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1BrkC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,IAAK,OAAQ,YAAa9tI,GAAE4jE,2BAA2B3gD,EAAIG,GAAIpjB,GAAE4jE,2BAA2B3gD,EAAIK,GAC7I,IAAI2C,EAAI,MACH,MAAL1C,IAAcvjB,GAAE4jE,2BAA2B3gD,EAAIM,GAAI5hC,KAAKmsJ,cAActgH,KAAK,UAAWvH,EAAI,0BAC1F,IAAIC,EAAI,MACH,MAALH,IAAc/lB,GAAE4jE,2BAA2B3gD,EAAI8C,GAAIpkC,KAAKmsJ,cAActgH,KAAK,SAAUtH,EAAI,yBAA0BvkC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,uLAKrIplH,6BACDC,gEACmCF,4FAMvDmkI,GAAK,MACP,YAAYlnI,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1BrkC,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAKmsJ,cAAgB,CAAC,IAAK,OAAQ,YAAa9tI,GAAE4jE,2BAA2B3gD,EAAIG,GAAIpjB,GAAE4jE,2BAA2B3gD,EAAIK,GAC1K,IAAI2C,EAAI,YACH,MAAL1C,IAAcvjB,GAAE4jE,2BAA2B3gD,EAAIM,GAAI5hC,KAAKmsJ,cAActgH,KAAK,UAAWvH,EAAI,0BAC1F,IAAIC,EAAI,YACH,MAALH,IAAc/lB,GAAE4jE,2BAA2B3gD,EAAI8C,GAAIpkC,KAAKmsJ,cAActgH,KAAK,SAAUtH,EAAI,yBAA0BvkC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,gDAEtIplH,4BACDC,qMAMkCF,yEAOrDokI,GAAK,EAAG7pG,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MACzC,IAAMyJ,EAAGvJ,EAAG7T,KAAM8T,EAAGy7C,SAAUj5C,EAAGg5C,OAAQ/4C,EAAGqoC,MAAOpoC,GAAMjD,EAC1DhD,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,SAAWkkC,EAAE+6B,MAAMj/D,OAAQ,IAAM,gFAAiFm+B,GAAE26B,OAAY,MAAL30B,GAAazC,EAAEu9B,MAAMj/D,SAAWmkC,EAAE86B,MAAMj/D,OAAQ,IAAM,8EAA+Em+B,GAAE26B,OAAY,MAAL10B,GAAa1C,EAAEu9B,MAAMj/D,SAAWokC,EAAE66B,MAAMj/D,OAAQ,IAAM,6EAChV,IAAMo9E,gBAAiB/4C,GAAM9C,EACxB,MAAL8C,IAAcA,EAAI,MAClB,IAAIE,EAAI,CAAC9C,EAAGC,EAAGwC,GAAI8B,EAAI,KAClB,MAAL7B,IAAc6B,EAAI7B,EAAE86B,MAAO16B,EAAEoH,KAAKxH,IAClC,IAAIyD,EAAI,KACH,MAALxD,IAAcwD,EAAIxD,EAAE66B,MAAO16B,EAAEoH,KAAKvH,IAClC,IAAIyD,EAAIpiB,KAAIuxC,QAAQ,4BAA8B,IAAIsxG,GAAG7mI,EAAEw9B,MAAOv9B,EAAEu9B,MAAO/6B,EAAE+6B,MAAOj5B,EAAG4B,EAAGvD,GAAK,IAAIgkI,GAAG5mI,EAAEw9B,MAAOv9B,EAAEu9B,MAAO/6B,EAAE+6B,MAAOj5B,EAAG4B,EAAGvD,GACvI,OAAOjD,EAAG+8H,gBAAgBt2H,EAAGtD,EAAGA,EAAE,GAAGi6B,QAEnCgqG,GAAK,CAAE/vG,WAAY/sD,GAAIgtD,YAAa,QAASuO,WAAYshG,IACzDE,GAAK,MACP,YAAYrnI,GACVthC,KAAKmsJ,cAAgB,CAAC,UAAWnsJ,KAAK+5F,YAAcz4D,EAAIthC,KAAKi/D,KAAO39B,EAAGphC,OACvE,IAAIuhC,EAAIsqH,GAAG/rJ,KAAKi/D,MAChBj/D,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASynJ,WAAYhpJ,KAAKi/D,KAAM8b,KAAM,QACrE,IAAuBn5C,EAAnBD,EAAIinI,GAAG5oK,KAAKi/D,MAAU76B,EAAI9C,EAAGizB,IAAI,CAAClwB,EAAGC,IAAM,aAAaukI,GAAGvkI,cAAcA,eAAeukI,GAAGvkI,OAC/F1C,EAAI,aACEH,yBACAA,0CACA2C,EAAEszB,KAAK,gBAER13D,KAAK0pJ,SAAW,kCAEf9nH,kCACoBD,wBAK1BknI,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACnC,SAASD,GAAGvnI,GACV,GAAU,IAANA,EACF,MAAO,YACT,GAAIA,GAAK,EACP,OAAOwnI,GAAG7wI,MAAM,EAAGqJ,GAAGkzB,IAAKjzB,GAAO,aAAeA,GAAIo2B,KAAK,KAC5D,MAAMzzB,MAAM,oBAAoB5C,0BAElC,IAAIynI,GAAK,MACP,YAAYxnI,GACVthC,KAAKmsJ,cAAgB,CAAC,UAAWnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAcz4D,EAAIthC,KAAKi/D,KAAO39B,EAAGphC,OAAQF,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASynJ,WAAYhpJ,KAAKi/D,KAAM8b,KAAM,QACxM,IAAIt5C,EAAIsqH,GAAG/rJ,KAAKi/D,MAAOt9B,EAAI44H,GAAG,SAAUv6J,KAAKi/D,MAAOr9B,EAAI24H,GAAG,YAAav6J,KAAKi/D,MAAO76B,EAAkB,IAAdpkC,KAAKi/D,KAAa,YAAc,QAAQr9B,EAAE5J,OAAO,GAAG0/B,UAAWrzB,EAAI,wBAAwBzC,EAAE81B,YAAYtzB,KAAME,EAAI,sBAC5LD,mBACL1C,EAAE3hC,KAAKi/D,KAAO,QAAQ39B,EAAGthC,KAAKi/D,KAAO,oBACvCr9B,EAAE5hC,KAAKi/D,KAAO,2BACL56B,iBACTzC,EAAE5hC,KAAKi/D,KAAO,qBAEnB16B,EAAkB,IAAdvkC,KAAKi/D,KAAa,GAAK,aACxBt9B,EAAE3hC,KAAKi/D,KAAO,oBACVt9B,EAAE3hC,KAAKi/D,KAAO,QAAQ39B,EAAGthC,KAAKi/D,KAAO,oBACvCr9B,EAAE5hC,KAAKi/D,KAAO,2BACL56B,qBACL1C,EAAE3hC,KAAKi/D,KAAO,QAAQ39B,EAAGthC,KAAKi/D,KAAO,sBACvCr9B,EAAE5hC,KAAKi/D,KAAO,6BACL56B,+BAGhBI,EAAIzkC,KAAKi/D,MAAQ,EAAI,qCACdx9B,KAAKH,EAAGizB,IAAI,CAACruB,EAAG4B,IAAM,SAASA,MAAM4vB,WAAap2B,EAAGizB,IAAI,CAACruB,EAAG4B,IAAM,GAAGlG,EAAEkG,QAAQnG,EAAEmG,cAAcA,OAAO4vB,KAAK,MAEtH13D,KAAK0pJ,SAAW,kCAEVjoH,0CACAA,yBACAgD,+CAEAH,cACAC,iDAMV,SAASwkI,GAAG1nI,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAID,EAAEuqH,QAAQ1qJ,IAAI6/B,EAAEu/B,QAASx8B,EAAIzC,EAAE01F,eAAe51F,EAAGJ,EAAEq9B,OAAQr6B,EAAI1C,EAAEuqH,QAAQ1qJ,IAAI4iC,EAAEw8B,QACvFhgE,OAAOmwC,OAAO1M,EAAGzC,GAAIyC,EAAE6hC,SAAW,EAAG7hC,EAAE86B,MAAQ19B,EAAG4C,EAAEq6B,MAAQr9B,EAAEq9B,MAC9D,IAAIp6B,EAAI3L,GAAGo8E,kBAAkBzzE,EAAIjD,GAAEm7B,eAAen4B,EAAE89B,QACpDv9B,EAAE5J,QAAUsM,GAAK1C,EAAE5J,MAAM8zH,YAAaznH,EAAErM,MAAQ,CAAE8zH,WAAYxnH,EAAGm7H,WAAY79H,EAAE5J,OAAS4J,EAAE5J,MAAMynI,YAAcp+H,EAAEu/B,QAChH,IAAIr8B,EAAI5C,EAAE+7H,aAAal8J,IAAI6iC,EAAErM,MAAMynI,aAAe,EAClD,OAAO99H,EAAE+7H,aAAar7J,IAAIgiC,EAAErM,MAAMynI,WAAYl7H,EAAI,GAAIH,EAExD,SAAS4kI,GAAG3nI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG86B,KAAM76B,GAAM1C,GAAI2C,EAAGC,GAAK5L,GAAG88E,iBAAiB7zE,EAAGwC,EAAGC,GAC3H,GAAI1L,GAAGk8E,kBAAkBjzE,EAAG0C,EAAGC,GAA2B,IAAvBlG,GAAEi+B,cAAc/3B,GACjD,OAAO9C,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAO,IACtC,GAAIj9B,EAAEq+H,mBAAmB,CAACl+H,KAAmB,WAAZA,EAAE88B,MAAoB,CACrD,IAAI52B,EAAIrG,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAS74B,EAAIwxH,GAAGzxH,EAAEhpC,OAAQwlC,EAAGC,EAAG3C,EAAEu9B,MAAOv9B,EAAE88B,OACnE,OAAOj9B,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAO32B,GAEtC,IAAMqhH,SAAU3kH,GAAMhD,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAS16B,EAAIvN,GAAG08E,iBAAiBzzE,EAAEu9B,MAAO76B,EAAGC,GACnF,GAAIE,IAAMyB,EAAG,CACX,IAAI4B,EAAIniB,KAAIuxC,QAAQ,+BAAiC,IAAI4xG,GAAGvkI,GAAK,IAAIokI,GAAGpkI,GAAIwD,EAAI,CAACzD,GACjF,OAAO7C,EAAE48H,gBAAgBv2H,EAAG,CAAClG,GAAIA,EAAE88B,MAAO32B,GAE5C,OAAOtG,EAAEm+H,YAAYh+H,EAAEg/B,QAASmoG,GAAGnnI,EAAG0C,EAAGC,EAAG9C,GAE9C,IAAIwnI,GAAK,CAAEtwG,WAAYnhD,GAAIohD,YAAa,QAASuO,WAAY6hG,IACzDE,GAAM7nI,IACR,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAG44C,MAAO34C,GAAM1C,EAC3FtD,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,wEACpC,IAAIokC,EAAIF,EAAEtkC,OAAO,CAAC2sC,EAAGM,IAAMN,EAAIM,GAAIxI,EAAIlmB,GAAE8+F,YAAYv7E,EAAEu9B,MAAO/6B,EAAGE,GAAIG,EAAIpmB,GAAE2+F,YAAYz4E,EAAErkC,OAAQkkC,EAAElkC,QAASgmC,EAAI7nB,GAAEg/F,oBAAoBz7E,EAAEu9B,MAAO/6B,EAAGE,GAAIwD,EAAIzpB,GAAEm/F,oBAAoBn5E,EAAGD,EAAElkC,QAAS6nC,EAAI1pB,GAAEq/F,aAAax3E,EAAG7B,EAAGD,EAAElkC,QAAS8nC,EAAI,GAAII,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ2H,EAAIo4H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQ0H,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQgF,EAAI89H,GAAG,CAAEpqG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO10C,EAAGo3B,KAAMn3B,KACte,OAAOC,EAAE6D,KAAKzD,GAAIJ,EAAE6D,KAAKK,GAAIlE,EAAE6D,KAAKM,GAAInE,EAAE2R,QAASlN,GAAMhL,EAAE88F,8BAA8B9xF,IAAKvB,GAE5Fi+H,GAAK,CAAExwG,WAAYjzD,GAAIkzD,YAAa,QAASuO,WAAY+hG,IAC7D,SAASE,GAAG/nI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,GAAM1C,EAAG2C,EAAI7C,EAAEw/B,SAASr/B,EAAEg/B,QAASr8B,EAAI9C,EAAEw/B,SAAS78B,EAAEw8B,QAASn8B,EAAI6yH,GAAGhzH,EAAGC,EAAGH,EAAEs6B,MAAOt6B,EAAE+6B,MAAO96B,GAC7K,OAAO5C,EAAE41F,eAAe,CAAChzF,GAAID,EAAEs6B,MAAOj6B,GAExC,IAAI4kI,GAAK,CAAE1wG,WAAY/yD,GAAIgzD,YAAa,QAASuO,WAAYiiG,IACzDE,GAAK,qKAOLC,GAAK,2CAGT,SAASC,GAAGnoI,GACV,IAKIiD,GALEs6B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgD,EAAG1C,EAAG8K,EAAG7K,GAAMN,EAAI8C,EAAIze,KAAIuxC,QAAQ,gCAAiC7yB,EAAI1e,KAAIq7H,UAAU,iBAC5H,GAAIv/G,EAAEq+H,mBAAmB,CAACn+H,EAAGC,KAAa,IAANyC,EAAS,CAC3C,IAAIE,EAAI9C,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAAQ9hE,OAAQ2lC,EAAIhD,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAQ9hE,QAASonC,EAAG4B,GAAK0vH,GAAG71H,EAAEw9B,MAAOv9B,EAAEu9B,MAAO56B,EAAGE,EAAG9C,EAAE+8B,OAAQ32B,EAAItG,EAAE41F,eAAevvF,EAAGnG,EAAE+8B,OAAQ12B,EAAIvG,EAAEyqH,QAAQ1qJ,IAAIumC,EAAE64B,QAChL,OAAO54B,EAAElpC,OAASonC,EAAG6B,EAGvB,OAAWzD,EAAJF,EAAQ,IAAIi9H,GAAGiI,GAAI3nI,EAAEw9B,MAAOv9B,EAAEu9B,OAAO,GAAa,IAAIgiG,GAAGoI,GAAI5nI,EAAEw9B,MAAOv9B,EAAEu9B,OAAQ19B,EAAE48H,gBAAgB/5H,EAAG,CAAC3C,EAAGC,GAAID,EAAE+8B,OAExH,IAAI+qG,GAAK,CAAE9wG,WAAY7yD,GAAI8yD,YAAa,QAASuO,WAAYqiG,IAC7D,SAASE,GAAGroI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgJ,GAAI1I,EAAG2I,GAAI1I,GAAMN,EAAI8C,EAAI3C,EAAEw/B,SAASt/B,EAAEi/B,QAASv8B,EAAI5C,EAAEw/B,SAASr/B,EAAEg/B,QAASt8B,EAAIjmB,GAAE4jE,2BAA2BxtB,MAAMwB,KAAK7xB,GAAIqwB,MAAMwB,KAAK5xB,IAC1K,OAAO5C,EAAE41F,eAAe,CAAC/yF,EAAEpkC,QAAS,QAAS01C,WAAWqgB,KAAK3xB,IAE/D,IAAIqlI,GAAK,CAAEhxG,WAAY3yD,GAAI4yD,YAAa,QAASuO,WAAYuiG,IACzDE,GAAK,wBACLC,GAAKrH,GAAG,CAAEH,UAAWuH,GAAIrH,cAAe1J,GAAIn6F,MAAO,SACnDorG,GAAK,CAAEnxG,WAAYvmD,GAAIwmD,YAAa,QAASuO,WAAY0iG,IAC7D,SAASE,GAAG1oI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAC3E,OAAO2gG,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,EAAEw1F,mBAAmBhkG,MAAQlV,QAASujB,IAEjE,IAAIuoI,GAAK,CAAErxG,WAAYnkD,GAAIokD,YAAa,QAASuO,WAAY4iG,IACzDE,GAAK,wBACT,SAASC,GAAG7oI,EAAGC,GACb,IAAIG,EAAI,IAAIyH,GAAG7H,EAAE89B,MAAO8qG,IAAKtoI,EAAIL,EAAG+8H,gBAAgB58H,EAAG,CAACJ,GAAI,SAC5D,MAAO,CAAEu/B,OAAQj/B,EAAEi/B,OAAQzB,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,OAEtD,SAASyrG,GAAG9oI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9B,MAAOt6B,GAAMzC,EAC5E,GAAU,cAANyC,EAAmB,CACrB,GAAgB,cAAZxC,EAAE88B,MACJ,OAAO6iG,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI4C,EAAIhE,GAAGuB,EAAEu9B,OAAQ76B,EAAI6lI,GAAG,CAAEvrG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,aAAgBn6B,EAAIk9H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAMkR,EAAGhb,KAAM+a,GAAKnmB,QAASujB,IAC5I,OAAO4C,EAAErgB,UAAWyd,EAAE88F,8BAA8Bj6F,GAAIC,EAE1D,GAAgB,cAAZ3C,EAAE88B,MAAuB,CAC3B,IAAIr6B,EAAI0lI,GAAG,CAAEnrG,OAAQ,CAAEymB,MAAOzjD,GAAK1jB,QAASujB,IAAM6C,EAAI6lI,GAAG,CAAEvrG,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAOt6B,KACzG,OAAO3C,EAAE88F,8BAA8Bl6F,GAAIC,EAE7C,IAAKjG,GAAEo8B,gBAAgB74B,EAAE88B,MAAOt6B,GAAI,CAClC,IAAIC,EAAIk9H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACxC,MAAO,CAAEm/B,OAAQv8B,EAAEu8B,OAAQzB,MAAO96B,EAAE86B,MAAOT,MAAOt6B,GAEpD,GAAI3C,EAAEq+H,mBAAmB,CAACl+H,IAAK,CAC7B,IAAIyC,EAAI5C,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAQ9hE,QAASwlC,EAAGC,EAAGE,GAAKgzH,GAAGpzH,EAAGzC,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,GAC5E,OAAO3C,EAAE41F,eAAe/yF,EAAGC,EAAGE,GAEhC,GAAU,UAANL,EACF,OAAO8lI,GAAGtoI,EAAGH,GACf,GAAU,SAAN2C,EAAc,CAChB,IAAIC,EAAI5C,EAAE41F,eAAe,GAAI,OAAQh5F,GAAEm8B,uBAAuB,OAAQ,IAAKj2B,EAAIslI,GAAG,CAAEjrG,OAAQ,CAAEv6B,EAAGzC,EAAG6K,EAAGpI,GAAKnmB,QAASujB,IACrH,OAAOA,EAAE88F,8BAA8Bl6F,GAAIE,EAE7C,MAAM,IAAIN,MAAM,iCAAiCrC,EAAE88B,YAAYt6B,KAEjE,IAAIgmI,GAAK,CAAEzxG,WAAYvyD,GAAIwyD,YAAa,QAASuO,WAAYgjG,IACzDE,GAAK,kBACLC,GAAKlI,GAAG,CAAEC,UAAWgI,GAAI/H,gBAAiB+H,GAAI9H,cAAe7K,KAC7D6S,GAAK,CAAE5xG,WAAYryD,GAAIsyD,YAAa,QAASuO,WAAYmjG,IACzDE,GAAK,MACP,YAAYlpI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,SAAUw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,iOAcjK+gB,GAAK,MACP,YAAYnpI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,SAAUw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,iPAczN,SAASghB,GAAGrpI,GACV,IAAuGiD,GAAjGs6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9C,aAAct6C,EAAGu6C,aAAct6C,GAAM1C,EACnE2C,EAAjC3e,KAAIuxC,QAAQ,mBAAyB,IAAIuzG,GAAG7oI,EAAEu9B,OAAa,IAAIqrG,GAAG5oI,EAAEu9B,OACpE,IAAI56B,EAAI,CAAC,CAACH,GAAI,CAACC,IACf,OAAO5C,EAAE48H,gBAAgB/5H,EAAG,CAAC1C,GAAIA,EAAE88B,MAAOn6B,GAE5C,IAAIomI,GAAK,CAAEhyG,WAAYnyD,GAAIoyD,YAAa,QAASuO,WAAYujG,IACzDE,GAAK,MACP,YAAYtpI,GACVthC,KAAKmsJ,cAAgB,CAAC,OAAQ,QAASnsJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,ucAgBlF,SAASmhB,GAAGxpI,EAAGC,GACb,MAAO,CAAEs/B,OAAQt/B,EAAGs/B,OAAQlC,MAAOp9B,EAAGo9B,MAAOS,MAAO99B,EAAE89B,OAExD,SAAS2rG,GAAGzpI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAIH,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAASx8B,EAAI,IAAIwmI,GAAGjpI,EAAEw9B,OAAQ96B,EAAI,CAACwmI,GAAGlpI,EAAGC,EAAEw1F,mBAAmBhkG,MAAOy3I,GAAGlpI,EAAGC,EAAEw1F,mBAAmB9tG,OACvK,OAAOmY,EAAE48H,gBAAgBj6H,EAAGC,EAAGA,EAAE,GAAGq6B,OAEtC,IAAIqsG,GAAK,CAAEpyG,WAAY/xD,GAAIgyD,YAAa,QAASuO,WAAY2jG,IACzDE,GAAK,MACP,YAAY1pI,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAc17E,GAAE42F,gBAAgB3zE,EAAI,GAAIthC,KAAKmsJ,cAAgB7qH,EAAGizB,IAAI,CAAClwB,EAAGC,IAAM,IAAIA,GAC9G,IAAI7C,EAAI,IAAIgzB,MAAMnzB,EAAGphC,OAAS,GAC9BuhC,EAAE,GAAKH,EAAG,GAAG,GACb,IAAK,IAAI+C,EAAI,EAAGA,EAAI5C,EAAEvhC,OAAQmkC,IAC5B5C,EAAE4C,GAAK5C,EAAE4C,EAAI,GAAK/C,EAAG+C,GAAG,GAC1B,IAAI1C,EAAI,CAAC,YAAYF,EAAE,iCACvB,IAAK,IAAI4C,EAAI,EAAGA,EAAI5C,EAAEvhC,OAAQmkC,IAAK,CACjC,IAAIC,EAAI7C,EAAE4C,EAAI,GACd1C,EAAEkK,KAAK,iBAAiBpK,EAAE4C,qBAAqBA,YAAYC,QAE7D,IAAI1C,EAAIH,EAAEvhC,OAAQkkC,EAAI3C,EAAEA,EAAEvhC,OAAS,GACnCyhC,EAAEkK,KAAK,sBAAsBjK,YAAYwC,QAASpkC,KAAK0pJ,SAAW,uIAM5D/nH,EAAE+1B,KAAK,iCAMbuzG,GAAK,MACP,YAAY3pI,EAAIG,GACdzhC,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAc17E,GAAE42F,gBAAgB3zE,EAAIG,GACpH,IAAIE,EAAI3hC,KAAK+5F,YAAan4D,EAAID,EAAEzhC,OAAQkkC,EAAI2nH,GAAGnqH,GAAIyC,EAAIk2H,GAAG,SAAU34H,GAAI0C,EAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKtM,MAAM,EAAG4J,GACpH5hC,KAAKmsJ,cAAgB7qH,EAAGizB,IAAI,CAACroB,EAAGC,IAAM,IAAIA,GAC1C,IAAI5H,EAAI,IAAIkwB,MAAMnzB,EAAGphC,OAAS,GAC9BqkC,EAAE,GAAKjD,EAAG,GAAGG,GACb,IAAK,IAAIyK,EAAI,EAAGA,EAAI3H,EAAErkC,OAAQgsC,IAC5B3H,EAAE2H,GAAK3H,EAAE2H,EAAI,GAAK5K,EAAG4K,GAAGzK,GAC1B,IAAIgD,EAAIH,EAAE7C,GAAIyE,EAAI5B,EAAEtM,OAAO,GAAI8P,EAAIxD,EAAEozB,OAAQ3vB,EAAI,OAAOtD,OAAOF,EAAE,wDAEjDuD,YAAY5B,EAAEwxB,uBAE9B,IAAK,IAAIxrB,EAAI,EAAGA,EAAI3H,EAAErkC,OAAQgsC,IAAK,CACjC,IAAIC,EAAI5H,EAAE2H,EAAI,GACdnE,GAAK,iBACGtD,OAAOF,EAAE2H,UAAUzH,QAAQF,EAAE2H,EAAI,wDAE7BA,KAAKg/H,GAAG5mI,EAAGG,EAAG0H,0BACb++H,GAAGhlI,EAAGzB,EAAG0H,mBAGxB,IAAInE,EAAIzD,EAAErkC,OAAQkoC,EAAI7D,EAAEA,EAAErkC,OAAS,GACnC6nC,GAAK,+CAEOC,KAAKkjI,GAAG5mI,EAAGG,EAAG2D,wBACb8iI,GAAGhlI,EAAGzB,EAAG2D,QAASpoC,KAAK0pJ,SAAW,0BAC5BplH,EAAEiwB,IAAKroB,GAAM,OAASA,kBACnCnE,8CAIA3D,sEAC4BC,+BAE5BA,EAAEzC,EAAI,QAAQyC,EAAEzC,EAAI,wBAChByC,EAAEzC,EAAI,QAAQD,EAAEC,EAAI,wCACFyC,6BAGtBA,EAAEzC,EAAI,QAAQyC,EAAEzC,EAAI,wBAChByC,EAAEzC,EAAI,QAAQD,EAAEC,EAAI,wCACFyC,6BAGtBA,EAAEzC,EAAI,QAAQyC,EAAEzC,EAAI,wBAChByC,EAAEzC,EAAI,QAAQD,EAAEC,EAAI,sBACpByC,EAAEzC,EAAI,QAAQD,EAAEC,EAAI,wCACFyC,8DAOhC,SAAS6mI,GAAG7pI,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE3gC,QAAQ4gC,GAClB,OAAOD,EAAEkzB,IAAI,CAACnwB,EAAGC,IAAMA,IAAM1C,EAAI,GAAGyC,OAAO3C,IAAM2C,GAAGszB,OAEtD,SAASyzG,GAAG9pI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,QAC3E,OAAO2gG,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,EAAEw1F,mBAAmB9tG,MAAQpL,QAASujB,IAEjE,IAAI2pI,GAAK,CAAEzyG,WAAYzrD,GAAI0rD,YAAa,QAASuO,WAAYgkG,IAC7D,SAASE,GAAGhqI,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE,GAAGq9B,MACb,GAAU,cAAN/8B,EAAmB,CACrB,IAAIqG,EAAI3G,EAAEkzB,IAAK9nB,GAAMs9H,GAAG,CAAEnrG,OAAQ,CAAEymB,MAAO54C,GAAKvuB,QAASujB,KAAO2G,EAAI/G,EAAEkzB,IAAK9nB,GAAM0+H,GAAG,CAAEvsG,OAAQ,CAAEymB,MAAO54C,GAAKvuB,QAASujB,KAAOyK,EAAIm/H,GAAGrjI,EAAG1G,EAAIG,GAAI0K,EAAIk/H,GAAGjjI,EAAG9G,EAAIG,GAAIyJ,EAAIu2H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAM8Y,EAAG5iB,KAAM6iB,GAAKjuB,QAASujB,IAChN,OAAOuG,EAAE2R,QAASlN,GAAMhL,EAAE88F,8BAA8B9xF,IAAKrE,EAAEuR,QAASlN,GAAMhL,EAAE88F,8BAA8B9xF,IAAKhL,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8BpyF,GAAIjB,EAE7L,IAAItJ,EAAIH,EAAEq+H,mBAAmBz+H,GAC7B,GAAU,WAANM,IAAmBC,GAAI,GAAOA,EAAG,CACnC,IAAIoG,EAAI3G,EAAEkzB,IAAKvnB,IACb,IAAIE,EAAI,EAAE,EAAG7O,GAAEi+B,cAActvB,EAAEmyB,MAAMnnC,MAAMsJ,KAC3C,OAAO+hI,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG8B,GAAK9uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOjyB,OACxD9E,EAAIJ,EAAEusB,IAAKvnB,IAAM,CAAGqyF,KAAM59F,EAAEw/B,SAASj0B,EAAE4zB,QAASzB,MAAOnyB,EAAEmyB,SAAWjzB,EAAI7tB,GAAE42F,gBAAgBjtE,EAAEusB,IAAKvnB,GAAMA,EAAEmyB,OAAQ,GAAIhzB,EAAsB,IAAlBnE,EAAE,GAAGm3B,MAAM,GAAUj0B,EAAIysH,GAAGvvH,EAAG8D,EAAGvK,EAAGwK,GAAIM,EAAIpuB,GAAE42F,gBAAgB5zE,EAAEkzB,IAAKvnB,GAAMA,EAAEmyB,OAAQ79B,GAAKyL,EAAItL,EAAE41F,eAAe5qF,EAAG9K,EAAGuJ,GACnP,OAAOlD,EAAE2R,QAAS3M,GAAMvL,EAAE88F,8BAA8BvxF,IAAKD,EAE/D,IAAI3I,EAAI/C,EAAEquB,OAAQ1nB,GAAM3J,GAAEi+B,cAAct0B,EAAEm3B,OAAS,GAAI96B,EAAI1e,KAAIuxC,QAAQ,gCAAkC9yB,EAAE,GAAG+6B,MAAMj/D,OAAS,EAC7H,GAAiB,IAAbkkC,EAAElkC,OAAc,CAClB,IAAI8nC,EAAI3D,EAAI,IAAI6E,GAAG7H,EAAE,GAAG89B,MAAOm9F,IAAM,IAAIO,GAAGx7H,EAAE,GAAG89B,MAAOm9F,IACxD,OAAO76H,EAAE48H,gBAAgBr2H,EAAG3G,EAAGM,GAEjC,IAAI2C,EAAI3e,KAAIq7H,UAAU,gCACtB,GAAI58G,EAAElkC,OAASokC,EAAG,CAChB,IAAI0D,EAAI,GACR,IAAK,IAAIkE,EAAI,EAAGA,EAAI9H,EAAElkC,OAAQgsC,GAAK5H,EAAG,CACpC,IAAI6H,EAAI/H,EAAEpM,MAAMkU,EAAGA,EAAI5H,GACvB0D,EAAE6D,KAAKw/H,GAAGl/H,EAAG7K,EAAIG,IAEnB,IAAI2G,EAAIijI,GAAGrjI,EAAG1G,EAAIG,GAClB,IAAK,IAAIyK,KAAKlE,EACZvG,EAAE88F,8BAA8BryF,GAClC,OAAO9D,EAET,GAAI/D,EAAG,CACL,IAAI2D,EAAI,IAAIijI,GAAG7mI,EAAEmwB,IAAKnsB,GAAMA,EAAE+2B,OAAQ79B,GACtC,OAAOG,EAAE48H,gBAAgBr2H,EAAG5D,EAAGzC,GAEjC,IAAM2pI,UAAW/mI,EAAGw1C,SAAUt1C,GAAM8mI,GAAGnnI,EAAG9C,EAAIG,GAAIyE,EAAI,IAAI8kI,GAAGzmI,EAAEgwB,IAAKvsB,GAAMA,EAAEm3B,QAASr3B,EAAIrG,EAAE48H,gBAAgBn4H,EAAG3B,EAAG5C,GACjH4C,EAAEoV,QAAS3R,GAAMvG,EAAE88F,8BAA8Bv2F,IACjD,IAAID,EAAIs7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGpD,GAAKk/B,MAAO,CAAE7H,MAAO16B,GAAKvmB,QAASujB,IAC7D,OAAOA,EAAE88F,8BAA8Bz2F,GAAIC,EAE7C,SAASwjI,GAAGlqI,EAAGC,EAAIG,GACjB,IAAIE,EAAItjB,GAAE42F,gBAAgB5zE,EAAEkzB,IAAKnwB,GAAMA,EAAE+6B,OAAQ79B,GACjD,MAAO,CAAEgqI,UAAWjqI,EAAEkzB,IAAKnwB,GAAMi/H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAK4iC,MAAO,CAAE7H,MAAO,EAAE,EAAG9gC,GAAEi+B,cAAcl4B,EAAE+6B,MAAMnnC,MAAMsJ,MAASpjB,QAASujB,KAAOs4C,SAAUp4C,GAEhJ,SAAS6pI,GAAGnqI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAAGyC,EAAI/F,GAAE29B,eAAep6B,EAAGN,EAAG,GAAG69B,OAAO,GAAI96B,EAAI/C,EAAGizB,IAAK9vB,GAAMA,EAAE06B,OAC5H9gD,GAAE47F,uBAAuB51E,EAAGD,GAC5B,IAAIE,EAAIjmB,GAAE42F,gBAAgB3zE,EAAGizB,IAAK9vB,GAAMA,EAAE06B,OAAQ/6B,GAClD,GAA2B,IAAvB/F,GAAEi+B,cAAch4B,GAClB,OAAO7C,EAAE41F,eAAe/yF,EAAGhD,EAAG,GAAGo9B,MAAO,IAC1C,IAAIn6B,EAAIjD,EAAGouB,OAAQjrB,GAAMpG,GAAEi+B,cAAc73B,EAAE06B,OAAS,GACpD,OAAoB,IAAb56B,EAAErkC,OAAeqhK,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAG3G,EAAE,IAAMrmB,QAASujB,IAAO4pI,GAAG9mI,EAAGH,EAAG3C,GAE7E,IAAIgqI,GAAK,CAAE9yG,WAAY7xD,GAAI8xD,YAAa,QAASuO,WAAYqkG,IACzDE,GAAK,MACP,YAAYpqI,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,EAAOwC,GAAI,GAClDpkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGy4C,SACvD,IAAI11C,EAAI/C,EAAGs3C,QAAQgC,IAAKt2C,EAAIhD,EAAGs3C,QAAQz5E,KAAMolC,EAAIjD,EAAGg4C,aAAc70C,EAAInD,EAAGi4C,YAAarzC,EAAI5E,EAAGs4C,eAAgB9xC,EAAIxG,EAAGu4C,cAAe9xC,EAAIzG,EAAGk4C,aAAcxxC,EAAI1G,EAAGm4C,YAAarxC,EAAoC,EAAhCrE,KAAK7c,MAAMoa,EAAG83C,WAAa,GAAQltC,EAAI5K,EAAG83C,WAAa,EAAGjtC,EAAsB,iBAAlB7K,EAAG23C,WAA+B/tC,EAAIiB,EAAI,EAAI,EAAGM,EAAIN,EAAI,EAAI,EAAGY,EAAIZ,EAAI,EAAI,EAAGa,EAAI,GAAIC,EAAI,GACzUtL,IAAUqL,EAAJpL,EAAQ,uGAEND,eACCyC,EAAQ,+FAETzC,eACK,wDAEHA,2BAEHsL,EAAI,gCACX,IAAIC,EAAIzL,EAAI,kCAAoC,GAChDA,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2BzH,GAAKpkC,KAAKmsJ,cAActgH,KAAK,kBAAmB7rC,KAAK0pJ,SAAW,WAC1J18G,0CAE4BzI,MAAME,uCACTJ,MAAMC,kIAKbyI,8DAGC7B,cAAcuB,oTAOT1E,kDACK7B,uCAEL5E,EAAG43C,sFAIDlxC,oDACKF,yCAELxG,EAAG63C,2FAID/wC,mQAQhB+D,mqBAmBI,IAAND,6BAEEC,6EAEsB/D,0CACPA,gGAGDA,kDACCA,sDAGJ,IAAN8D,0EAEM9D,yCACAA,qDAGX+D,qFAEoB/D,8CACAA,8KAKRA,8CACAA,oIAKD,IAAN8D,0EAEM9D,yCACAA,6CACAA,qDAGX+D,qFAEoB/D,8CACAA,kDACAA,8KAKRA,8CACAA,kDACAA,+LAUtB8E,cACAD,iDAMN0+H,GAAK,MACP,YAAYrqI,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGy4C,SACvD,IAAIt4C,EAAIH,EAAGs3C,QAAQoC,MAAOr5C,EAAIL,EAAGs3C,QAAQgC,IAAKh5C,EAAIN,EAAGs3C,QAAQz5E,KAAMilC,EAAI9C,EAAG84C,YAAa/1C,EAAI/C,EAAGg4C,aAAch1C,EAAIhD,EAAGi4C,YAAah1C,EAAIjD,EAAGi5C,cAAe91C,EAAInD,EAAGs4C,eAAgB1zC,EAAI5E,EAAGu4C,cAAe/xC,EAAIxG,EAAG+4C,YAAatyC,EAAIzG,EAAGk4C,aAAcxxC,EAAI1G,EAAGm4C,YAAarxC,EAAoC,EAAhCrE,KAAK7c,MAAMoa,EAAG83C,WAAa,GAAQltC,EAAI5K,EAAG83C,WAAa,EAC3Tp5E,KAAK0pJ,SAAW,uCACgBtlH,MAAMC,MAAMC,uCACf7C,MAAME,MAAMC,ijBAgBbkG,kDACKvD,uCAELjD,EAAG64C,qFAIDpyC,oDACKtD,yCAELnD,EAAG43C,4FAIDlxC,sDACK9B,2CAEL5E,EAAG63C,iGAID/wC,0mBAiBZ,IAAN8D,+EAEwB9D,4CACPA,qCACJ,IAAN8D,yFAEiB9D,kDACAA,wGAGPA,+CACAA,+GAGJ,IAAN8D,yFAEiB9D,kDACAA,sDACAA,wGAGPA,+CACAA,mDACAA,0LAYjCwjI,GAAK,MACP,YAAYtqI,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,EAAOwC,GAAI,GAClDpkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,OAAQw5E,KAAM,SAAW,CAAEx5E,KAAM,UAAWw5E,KAAM,SAAW,CAAEx5E,KAAM,YAAaw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAC1U,IAAImkC,EAAI/C,EAAGs3C,QAAQz5E,KAAMmlC,EAAIhD,EAAGi4C,YAAah1C,EAAIjD,EAAGu4C,cAAep1C,EAAInD,EAAGk4C,aAActzC,EAAI5E,EAAGm4C,YAAa3xC,EAAI5B,EAAG6B,EAAI,yFAGvH,IAAK,IAAIoE,EAAI,EAAGA,EAAIjG,EAAGiG,IACrBpE,GAAK,4BACkB,EAAJoE,6BACG,EAAJA,mCACK,EAAJA,EAAQ,6BACL,EAAJA,EAAQ,8BACZA,KAChBpE,GAAK,8BACkBtD,0CACGnD,EAAG83C,kCAE7B,IAAK,IAAIjtC,EAAI,EAAGA,EAAIjG,EAAGiG,IACrBpE,GAAK,uBACa,EAAJoE,qCACI,EAAJA,kCACI,EAAJA,EAAQ,qCACJ,EAAJA,EAAQ,6BACbA,iBACXpE,GAAK,kGAIL,IAAK,IAAIoE,EAAI,EAAGA,GAAKrE,EAAI,GAAK,EAAGqE,IAAK,CACpC,IAAIjB,EAAQ,EAAJiB,EACR,GAAIpE,GAAK,gCACcmD,EAAI3G,kBACb,IAAND,GACN,GAAI4G,EAAIhF,IAAM7B,EAAI,IAAM,GAAK0D,GAAK,+GAE6BmD,6CAC3CA,4PAKEA,sEAEFA,mDAESnD,GAAb,IAANxD,GAAW2G,EAAI,EAAS,wBACrBA,mBAAmBA,EAAI,gBAAgBA,4BAClC,odAYDA,gCAAgCA,+DAEhCA,6BAA6BA,qDAE9BnD,GAAK,8DAC8BmD,6CAC/BA,4GAEEA,sEAEFA,yDAGPA,cAAcA,wBACfA,EAAI,EAAIhF,GAAI,CACtB,IAAIuG,EAAIpI,EAAI,IAAM,EAAIhG,GAAEy9B,kBAAkBv3B,GAAKA,EAC/CA,EAAI,IAAM,GAAKF,EAAI,IAAM,GAAKE,EAAI,IAAM,GAAKF,EAAI,IAAM,GAAK0D,GAAK,2DACnB0E,gFAEiBvB,EAAI,+CAC/CA,EAAI,oQAKFA,EAAI,0EAENA,EAAI,yDAEJnD,GAARxD,EAAI,EAAS,sMAIT2G,EAAI,gCAAgCA,EAAI,kEAExCA,EAAI,6BAA6BA,EAAI,wDAEjC,4BACLA,EAAI,mBAAmBA,gBAAgBA,EAAI,iCAChCnD,GAAJ,IAAN0E,EAAe,4BAChBvB,EAAI,cAAcA,4BACb,0CACSuB,kFAEoCvB,EAAI,iDAC/CA,EAAI,gIAEFA,EAAI,8EAENA,EAAI,iEAGXA,EAAI,cAAcA,EAAI,kCAIvCA,EAAIhF,IAAM7B,EAAI,IAAM,GAAK0D,GAAK,2HAEgCmD,6CAC1CA,0PAIEA,sEAEFA,sGAGsCA,EAAI,6CAC1CA,EAAI,kPAIFA,EAAI,sEAENA,EAAI,yDAGXA,mBAAmBA,gBAAgBA,EAAI,0BAC1CA,EAAI,EAAIhF,IAAM6B,GAAK,wQAMdmD,EAAI,mBAAmBA,EAAI,yCAC1BnD,GAAK,6DAC6BmD,6CAC9BA,4GAEEA,sEAEFA,wJAI0CA,EAAI,6CAC9CA,EAAI,wHAEFA,EAAI,qEAENA,EAAI,yDAGXA,wCACOA,gBAAgBA,EAAI,0BAC9BA,EAAI,EAAIhF,IAAM6B,GAAK,0BACdmD,EAAI,mBAAmBA,gBAAgBA,EAAI,+BAE5DA,EAAIhF,IAAM6B,GAAK,mCACWmD,0CACJA,kEACD5J,EAAG83C,8CACAluC,oEAEhBA,EAAI,EAAIhF,IAAM6B,GAAK,qCACCmD,EAAI,4CACRA,EAAI,oEACL5J,EAAG83C,gDACAluC,EAAI,0EAIhCnD,GAAK,gBAEHA,GAAK,gBAELA,GAAK,gBAGP,IAAIC,EAAI,GAAII,EAAI,GAChBzG,IAAUqG,EAAJpG,EAAQ,sGAELD,gBACCyC,EAAQ,8FAETzC,gBACK,yCACLA,gBACAyG,EAAI,gCACb,IAAI8D,EAAIzK,EAAI,kCAAoC,GAChDA,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2BzH,GAAKpkC,KAAKmsJ,cAActgH,KAAK,kBAAmB7rC,KAAK0pJ,SAAW,YACzJ1hH,gaAaED,4EAGAmE,eACA9D,oDAMPyjI,GAAK,MACP,YAAYvqI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,aAAcw5E,KAAM,SAAW,CAAEx5E,KAAM,MAAOw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,SAAW,CAAEx5E,KAAM,WAAYw5E,KAAM,SAAW,CAAEx5E,KAAM,aAAcw5E,KAAM,OAAS,CAAEx5E,KAAM,mBAAoBw5E,KAAM,OAAS,CAAEx5E,KAAM,WAAYw5E,KAAM,QAAU/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAChb,IAAM+4E,WAAYt3C,GAAMF,EAAGG,EAAIylH,KAAMjjH,EAAU,iBAANzC,EAAsB0C,EAAID,EAAI,EAAI,EAAGE,EAAIF,EAAI,EAAI,EAAGG,EAAIvkC,KAAK0oJ,oBAAsB,sDAAwD,mBAAmBpnH,EAAG,eAAeA,EAAG,QAASmD,EAAI,GACzO,IAAK,IAAIyB,EAAI,EAAGA,GAAK,EAAGA,IACtB,IAAK,IAAI4B,EAAI,EAAGA,GAAK,EAAGA,IACtBrD,GAAK,mCACmBqD,8BACP5B,mBAEb3B,mLAIqBF,gaAQEC,0FAIbF,+EAES,EAAJ8B,EAAQ4B,+NAKJ,EAAJ5B,EAAQ4B,uMAQ/B9nC,KAAK0pJ,SAAW,oMASVjlH,gBAEA7C,EAAEqvG,oCAKZ,SAAS66B,GAAGzqI,EAAGC,GACb,IAAIG,EAAIJ,EAAEnhC,OACV,OAAOuhC,GAAK,EAAIH,EAAK,IAAID,EAAErJ,MAAM,GAAI,GAAIqJ,EAAEI,EAAI,GAAKJ,EAAEI,EAAI,GAAIJ,EAAEI,EAAI,IAAM,IAAIJ,EAAErJ,MAAM,GAAI,GAAIqJ,EAAEI,EAAI,GAAIJ,EAAEI,EAAI,GAAKJ,EAAEI,EAAI,KAAOH,GAAY,IAANG,GAAWJ,EAAE,GAAK,EAAI,CAACA,EAAE,GAAI,GAAK,KAE1K,SAAS0qI,IAAK7gI,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAI,KAAMw5D,uBAAwBh3D,EAAI,KAAMi3D,eAAgBh3D,EAAI,EAAG82D,WAAY72D,EAAI,OAChJ,IAAsK6H,EAAlK5H,EAAIlD,EAAE89B,MAAO16B,EAAI9C,EAAEuqH,QAAQ1qJ,IAAI6/B,EAAEu/B,QAAS16B,EAAIzE,EAAE23C,WAAYtxC,EAAIvD,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAIwD,EAAItG,EAAE43C,YAAarxC,EAAqB,iBAAjBvG,EAAEw3C,WAA+B7wC,GAAI,EAAO8D,GAAI,EAAUhB,EAAI,GAC7K,GAAS,MAAL9G,EAAW,CACb,IAAI4I,EAAI8+H,GAAG1nI,EAAE+6B,MAAOn3B,GACf,MAALgF,IAAc5I,EAAIi/H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOnyB,KAAQ9B,EAAEW,KAAKzH,IAEtF,GAAS,MAALxC,EAAW,CACb,IAAIoL,EAAI8+H,GAAGlqI,EAAEu9B,MAAOn3B,GACf,MAALgF,IAAcpL,EAAIyhI,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOnyB,KAAQ9B,EAAEW,KAAKjK,IAEtF,IAAa,IAANkG,GAAiB,IAANC,KAAY7B,EAAIs+H,MAAO//H,EAAE2kH,UAAYphH,GAAkB,MAAbvD,EAAE0+B,SAAmB5+B,EAAE,GAAK,IAAM,GAAKlG,GAAEy6B,YAAYr0B,EAAE06B,MAAMnnC,OAAO,GAAIuM,EAAEvM,OAAO,IAAK,CAChJ,IAAIgV,EAAIzI,EAAE,GAAKA,EAAE,IAAMA,EAAE,GAAK,GAAI0I,EAAI,CAAE2zB,OAAQv/B,EAAEu/B,OAAQzB,MAAO,CAAC,EAAGnyB,EAAGvL,EAAE23C,YAAa1a,MAAOr9B,EAAEq9B,OAASxxB,EAAIzI,EAAE06B,MAC/G16B,EAAE06B,MAAQ16B,EAAE06B,MAAMnnC,QAASyM,EAAE06B,MAAM16B,EAAE06B,MAAMj/D,OAAS,KAAMm+B,GAAE26B,OAAOykF,GAAGh5G,EAAE06B,MAAOlyB,EAAEkyB,OAAQ,IAAM,kBAAkB16B,EAAE06B,YAAYlyB,EAAEkyB,oBACjI,IAAI/xB,EAAIi2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAG19B,EAAE23C,WAAY33C,EAAE43C,gBAChFnuC,EAAEW,KAAKuB,GACP,IAAIC,EAAIo3H,GAAG,CAAEpgI,EAAG4I,EAAGR,EAAGW,EAAGlvB,QAASyjB,EAAGu6C,WAAY9zC,EAAG+zC,WAAYjwC,EAAG07C,KAAMhmD,EAAGu5D,WAAY72D,EAAG82D,uBAAwBh3D,EAAGi3D,eAAgBh3D,IAAMiJ,EAAI3L,EAAEuqH,QAAQ1qJ,IAAI6rC,EAAEuzB,QAChKviC,GAAE26B,OAAO1rB,EAAE87G,SAAU,IAAM,+CAAgD3kH,EAAE06B,MAAQjyB,EAAGI,EAAE6xB,MAAQ19B,EAAEs4C,SAAU5tC,EAAIo1H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGmC,GAAKnvB,QAASyjB,IAAMwK,EAAEgzB,MAAQ19B,EAAEs4C,SAAU7uC,EAAEW,KAAKwB,OAChL,CACL,IAAIL,EAAIvL,EAAEo3C,UAAYp3C,EAAEq3C,SAAU7rC,EAAIo2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOn3B,EAAI,CAACvG,EAAEu3C,UAAWhsC,EAAGvL,EAAE23C,YAAc,CAAC33C,EAAEu3C,UAAWv3C,EAAE23C,WAAYpsC,MAASE,EAAIm2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAG19B,EAAE23C,WAAY33C,EAAE43C,gBAAmBjsC,EAAIq3H,GAAG,CAAEpgI,EAAG2D,EAAIiF,EAAIC,EAAGT,EAAGzE,EAAIkF,EAAID,EAAGivC,YAAal0C,EAAGm0C,WAAYjwC,EAAGhuB,QAASyjB,EAAGimD,KAAMhmD,EAAGu5D,WAAY72D,EAAG82D,uBAAwBh3D,EAAGi3D,eAAgBh3D,IACrZ8H,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGkC,GAAKlvB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO19B,EAAEs4C,YAAe7uC,EAAEW,KAAKoB,GAAI/B,EAAEW,KAAKqB,GAAIhC,EAAEW,KAAKuB,GAEvG,IAAK,IAAIJ,KAAK9B,EACZvJ,EAAE48F,8BAA8BvxF,GAClC,OAAOb,EAET,SAAS8/H,IAAK/gI,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAI,KAAMw5D,uBAAwBh3D,EAAI,KAAMi3D,eAAgBh3D,EAAI,EAAG82D,WAAY72D,EAAI,OAChJ,IAAMm1C,YAAal1C,EAAGi1C,aAAc/0C,EAAG20C,WAAYlzC,EAAG4yC,SAAUhxC,EAAG+wC,UAAW9wC,EAAGkxC,WAAYjxC,GAAMvG,EAAG2G,EAAU,iBAANJ,EAAsBkE,EAAI3H,EAAIE,EAAIyB,EAAGiG,EAAIpE,EAAID,EAAGoD,EAAI,CAACzJ,EAAEu3C,UAAW9sC,EAAGC,GAAIM,GAAI,EAAMM,GAAI,EAAOC,EAAI,GAC5M,GAAS,MAAL5I,EAAW,CACb,IAAI+sB,EAAI26G,GAAG1nI,EAAE+6B,MAAO/2B,GACf,MAAL+oB,IAAc/sB,EAAIi/H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOhO,KAAQnkB,EAAEnB,KAAKzH,IAEtF,GAAS,MAALxC,EAAW,CACb,IAAIuvB,EAAI26G,GAAGlqI,EAAEu9B,MAAO/2B,GACf,MAAL+oB,IAAcvvB,EAAIyhI,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOhO,KAAQnkB,EAAEnB,KAAKjK,IAEtF,IAAIqL,EAAIo2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAGjzB,EAAG7N,GAAEi+B,cAAch7B,EAAG69B,OAASjzB,MAC/Fc,EAAEnB,KAAKoB,GACP,IAAIC,EAAI,IAAI2+H,GAAG3gI,EAAGzJ,GAAI2L,EAAI,CAAC/L,EAAE89B,MAAO,CAAC19B,EAAEm3C,QAAQgC,IAAKn5C,EAAEm3C,QAAQz5E,MAAO,CAACsiC,EAAE63C,aAAc73C,EAAE83C,aAAc,CAAC93C,EAAEm4C,eAAgBn4C,EAAEo4C,eAAgB,CAACp4C,EAAE23C,YAAa,CAAC33C,EAAEg4C,YAAch4C,EAAE23C,YAAa,CAAC33C,EAAEq3C,WAAYzrC,EAAI1L,EAAE08H,gBAAgBnxH,EAAG,CAAC7L,GAAI,UAAW+L,GAAIE,EAAI+1H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGmC,GAAKnvB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOj0B,KAC9S8B,EAAEnB,KAAKwB,GAAIL,EAAEnB,KAAKyB,GAClB,IAAIC,EAAS,MAAL3L,EAAW3iC,EAAS,MAALmlC,EAAWoJ,EAAU,cAANlJ,EAAmBoJ,EAAIpJ,EAAIq+H,GAAGr+H,GAAG,GAAQ,KAAMuJ,EAAI,IAAI+0H,GAAGx6H,EAAIkF,EAAE6xB,MAAQlyB,EAAEkyB,MAAO/2B,EAAI6E,EAAEkyB,MAAQ7xB,EAAE6xB,MAAO/2B,EAAI,CAAC3G,EAAEu3C,UAAW7sC,EAAG1K,EAAE43C,aAAe,CAAC53C,EAAEu3C,UAAWv3C,EAAE43C,YAAaltC,GAAIM,EAAGM,EAAGQ,EAAGG,EAAGzuC,EAAGuuC,GAAIrC,EAAI/C,EAAI,CAACkF,EAAGL,GAAK,CAACA,EAAGK,GAC7P,GAAI1L,GAAKuJ,EAAEU,KAAKjK,GAAI3iC,GAAKksC,EAAEU,KAAKzH,GAAIoJ,EAAG,CACrC,IAAI2jB,EAAIxvB,EAAE01F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkBr1B,EAAG,YAC/D8G,EAAEU,KAAKslB,GAAInkB,EAAEnB,KAAKslB,GAEpB,IAAItd,EAAIlS,EAAE08H,gBAAgBxwH,EAAG1C,EAAG,WAAYyC,EAAIy1H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG2I,GAAK31B,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO19B,EAAEs4C,YACrG/sC,EAAEnB,KAAKgI,GACP,IAAK,IAAIsd,KAAKnkB,EACZrL,EAAE48F,8BAA8BptE,GAClC,OAAOvjB,EAET,SAASs+H,GAAG7qI,GACV,IAAwP2G,GAAlP42B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAG+6C,UAAW76C,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGI,EAAGH,EAAG4B,GAAG,EAAO4B,GACpP,GAAuB,IAAnBC,EAAEyxC,cAAwC,IAAlBzxC,EAAE0xC,aAA0C,IAArB1xC,EAAE6xC,gBAA4C,IAApB7xC,EAAE8xC,eAA0C,IAAnB9xC,EAAEuxC,cAAwC,IAAlBvxC,EAAEwxC,aAAyC,SAAnBxxC,EAAE6wC,QAAQmC,MAAsC,UAAnBhzC,EAAE6wC,QAAQmC,KAExL,GAAIhzC,EAAEwxC,aAAe,GAAW,iBAANzxC,GAAwBniB,KAAIuxC,QAAQ,kBAAmB,CACpF,IAAIhrB,EAAI,IAAI0/H,GAAG7jI,GAAIoE,EAAI,CAAC,CAACpE,EAAE6wC,QAAQgC,IAAK7yC,EAAE6wC,QAAQz5E,MAAO,CAAC4oC,EAAEuxC,aAAcvxC,EAAEwxC,aAAc,CAACxxC,EAAE6xC,eAAgB7xC,EAAE8xC,eAAgB,CAAC9xC,EAAEmxC,SAAUnxC,EAAEoxC,UAC9InxC,EAAIvG,EAAE48H,gBAAgBnyH,EAAG,CAACtK,EAAGwC,GAAI,UAAW+H,QACvC,GAAIxmB,KAAIuxC,QAAQ,qBACrBlvB,EAAIikI,GAAG,CAAE/gI,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAUjkI,EAAG7pB,QAASujB,QAC7C,CACH,IAAIyK,EAAI,IAAIw/H,GAAG3jI,GACfC,EAAIvG,EAAE48H,gBAAgBnyH,EAAG,CAACtK,EAAGwC,GAAI,gBARjC4D,EAAI+jI,GAAG,CAAE7gI,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAUjkI,EAAG7pB,QAASujB,IAUlD,IAAI2G,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,EAAEgyC,YAC7D,OAAOt4C,EAAE88F,8BAA8Bv2F,GAAII,EAE7C,IAAI+jI,GAAK,CAAExzG,WAAY3xD,GAAI4xD,YAAa,QAASuO,WAAY+kG,IACzDE,GAAK,MACP,YAAY9qI,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAK+5F,YAAcz4D,EAAG04C,YACxD,IAAIv4C,EAAIH,EAAGg4C,aAAc33C,EAAIL,EAAGi4C,YAAa33C,EAAIN,EAAGs3C,QAAQgC,IAAKx2C,EAAI9C,EAAGs3C,QAAQz5E,KAAMklC,EAAsB,iBAAlB/C,EAAG23C,WAC7Fj5E,KAAK0pJ,SAAW,uYAYUpoH,EAAG03C,sDACC13C,EAAGu3C,sDACJp3C,OAAOG,yCAENN,EAAG43C,4FAID53C,EAAGw3C,uDACJn3C,OAAOyC,2CAEN9C,EAAG63C,2EAIvB90C,EAAI,yIAE4B,gOAW5CgoI,GAAK,MACP,YAAY/qI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QACxD,IAAIr4C,EAAIH,EAAGk4C,aAAc73C,EAAIL,EAAGm4C,YAAa73C,EAAIN,EAAGg4C,aAAcl1C,EAAI9C,EAAGi4C,YAAal1C,EAAsB,iBAAlB/C,EAAG23C,WAA+B30C,EAAI7C,EAAI,EAAIH,EAAGs3C,QAAQgC,IAAKr2C,EAAI5C,EAAI,EAAIL,EAAGs3C,QAAQz5E,KAAMslC,EAAIJ,EAAI,EAAI,EAAG6B,EAAI7B,EAAI,EAAI,EAAGyD,EAAIzD,EAAI,EAAI,EAC/NrkC,KAAK0pJ,SAAW,oCACaplH,MAAMC,kIAKbuD,gDAEcrD,cAAcyB,gTAOtBzE,6DACgBG,6CAEZN,EAAGu3C,oIAKdp3C,kDAESE,+DACgByC,+CAEZ9C,EAAGw3C,4JAMdn3C,oDAESL,EAAG+3C,6CAEnBh1C,ydAkBhBioI,GAAK,MACP,YAAYhrI,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAK+5F,YAAcz4D,EAAG04C,YACxD,IAAIv4C,EAAIH,EAAG84C,YAAaz4C,EAAIL,EAAGg4C,aAAc13C,EAAIN,EAAGi4C,YAAan1C,EAAI9C,EAAGs3C,QAAQoC,MAAO32C,EAAI/C,EAAGs3C,QAAQgC,IAAKt2C,EAAIhD,EAAGs3C,QAAQz5E,KAC1Ha,KAAK0pJ,SAAW,+QAWUpoH,EAAG03C,sDACC13C,EAAG24C,qDACJx4C,OAAO2C,yCAEN9C,EAAG64C,2FAID74C,EAAGu3C,wDACJl3C,OAAO0C,2CAEN/C,EAAG43C,kGAID53C,EAAGw3C,yDACJl3C,OAAO0C,6CAENhD,EAAG63C,yUAgBrCozF,GAAK,MACP,YAAYjrI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QACxD,IAAIr4C,EAAIH,EAAG+4C,YAAa14C,EAAIL,EAAGk4C,aAAc53C,EAAIN,EAAGm4C,YAAar1C,EAAI9C,EAAG84C,YAAa/1C,EAAI/C,EAAGg4C,aAAch1C,EAAIhD,EAAGi4C,YAAah1C,EAAI9C,EAAI,EAAIH,EAAGs3C,QAAQoC,MAAOv2C,EAAI9C,EAAI,EAAIL,EAAGs3C,QAAQgC,IAAK10C,EAAItE,EAAI,EAAIN,EAAGs3C,QAAQz5E,KAC/Ma,KAAK0pJ,SAAW,oCACanlH,MAAME,MAAMyB,4XAcbzE,6DACgB2C,6CAEZ9C,EAAG24C,mIAKdx4C,kDAESE,+DACgB0C,+CAEZ/C,EAAGu3C,2JAMdl3C,oDAESC,iEACgB0C,iDAEZhD,EAAGw3C,sKAMdl3C,sDAESN,EAAG+3C,oTAazC,SAASmzF,GAAGnrI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAG,EAAGC,EAAGG,GAAG,EAAOqD,GAAIE,EAAI,IAAIokI,GAAGrkI,GAC3P,OAAOtG,EAAE48H,gBAAgBr2H,EAAG,CAACpG,EAAGwC,GAAI,WAEtC,IAAIqoI,GAAK,CAAE9zG,WAAYzxD,GAAI0xD,YAAa,QAASuO,WAAYqlG,IACzDE,GAAK,MACP,YAAYprI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,UAAWw5E,KAAM,SAAW/6E,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAC/N,IAAIuhC,EAAIH,EAAGk4C,aAAc73C,EAAIL,EAAGm4C,YAAa73C,EAAIH,EAAI,EAAIH,EAAGs3C,QAAQgC,IAAKx2C,EAAIzC,EAAI,EAAIL,EAAGs3C,QAAQz5E,KAChGa,KAAK0pJ,SAAW,oCACa9nH,MAAMwC,kVAYP3C,4GAEIH,EAAGu3C,kIAIdp3C,kDAESE,wCACPA,iIAGyBL,EAAGw3C,kNAKAx3C,EAAGw3C,0KAKpBx3C,EAAG+3C,mxBAiBH/3C,EAAG+3C,qcASH/3C,EAAG+3C,idAgBzC,SAASszF,GAAGtrI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAMs+C,WAAYv7C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAG00C,WAAYx0C,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwB92E,GAAIsD,EAAI1pB,GAAEy8F,kBAAkBz2E,EAAGD,EAAE+6B,MAAO76B,EAAG,EAAGC,EAAG2B,GAAG,EAAO4B,GAChP,GAAIniB,KAAIuxC,QAAQ,+BAAuC,iBAANpvB,EAAsB,CACrE,IAAIE,EAAI,CAAC,CAACD,EAAEuxC,aAAcvxC,EAAEwxC,cAAenxC,EAAI,IAAIskI,GAAG3kI,GACtD,OAAOtG,EAAE48H,gBAAgBj2H,EAAG,CAACxG,EAAGwC,GAAI,UAAW4D,GAC1C,CACL,IAAIA,EAAI,IAAIqkI,GAAGtkI,GACf,OAAOtG,EAAE48H,gBAAgBr2H,EAAG,CAACpG,EAAGwC,GAAI,YAGxC,IAAIwoI,GAAK,CAAEj0G,WAAYvxD,GAAIwxD,YAAa,QAASuO,WAAYwlG,IAC7D,SAASE,GAAGxrI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGE,EAAGD,GAAI4B,EAAI,IAAIylI,GAAGlnI,GACjL,OAAOhD,EAAE48H,gBAAgBn4H,EAAG,CAACtE,EAAGwC,GAAI,WAEtC,IAAI0oI,GAAK,CAAEn0G,WAAYrxD,GAAIsxD,YAAa,QAASuO,WAAY0lG,IAC7D,SAASE,GAAG1rI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG01C,YAAaz1C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO56B,EAAGF,EAAG,EAAGC,GAAI4B,EAAI,IAAIomI,GAAG7nI,GACzK,OAAOhD,EAAE48H,gBAAgBn4H,EAAG,CAACtE,EAAGwC,GAAI,WAEtC,IAAI4oI,GAAK,CAAEr0G,WAAYnxD,GAAIoxD,YAAa,QAASuO,WAAY4lG,IAC7D,SAASE,GAAG5rI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM9Q,IAAK6T,EAAG87B,QAAS77B,EAAGs7C,WAAYr7C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBx2E,EAAGH,EAAE+6B,MAAO76B,EAAG,EAAGD,GAAI6B,EAAI,IAAIqmI,GAAG9nI,GAC7K,OAAOhD,EAAE48H,gBAAgBn4H,EAAG,CAACtE,EAAGwC,GAAI,WAEtC,IA6FI8oI,GA7FAC,GAAK,CAAEx0G,WAAYjxD,GAAIkxD,YAAa,QAASuO,WAAY8lG,IACzDG,GAAKjL,GAAK,uBAGVkL,GAAK,2DAGLjM,yBAGAkM,GAAKlL,GAAG,CAAEC,UAAW+K,GAAI9K,gBAAiB+K,KAC1CE,GAAK,CAAE50G,WAAY/wD,GAAIgxD,YAAa,QAASuO,WAAYmmG,IACzDE,GAAK,gEAILC,GAAKrL,GAAG,CAAEC,UAAWmL,KACrBE,GAAK,CAAE/0G,WAAY7wD,GAAI8wD,YAAa,QAASuO,WAAYsmG,IACzDE,GAAK,MACP,YAAYrsI,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,QAAS,QAAS,UAAWnsJ,KAAK+5F,YAAc,GACtE,IAAK11D,EAAGC,EAAGC,EAAGE,GAAKnD,GAAK4E,GAAKzE,GAAIqG,EAAGC,GAAKpG,EACzC3hC,KAAK+5F,YAAc,CAAC7zD,EAAG4B,EAAGC,EAAGtD,GAC7B,IAAIuD,EAAU,aAANpG,EAAmB,EAAI,GAAIwG,EAAG8D,GAAK,CAAI5H,EAAI,EAAP,KAAiBC,EAAI,EAAP,OAAgB4H,EAAGjB,EAAGuB,GAAK3E,EAAI,EAAI,CAAC,IAAIxD,EAAI,IAAMwD,EAAI,GAAM,yBAA0B,MAAMM,+BAAiC,CAAC,MAAO,MAAO,mBAAmBA,IAAO2E,EAAGC,EAAGC,GAAKlF,EAAI,EAAI,CAAC,IAAIxD,EAAI,IAAMwD,EAAI,GAAM,wBAAyB,MAAMmE,8BAAgC,CAAC,MAAO,MAAO,mBAAmBA,GAC7WlsC,KAAK0pJ,SAAW,4CACqBv9G,8CACDY,8cAgBP1I,sEAIF6G,mCACD8B,8BAEPP,wCACYrE,oCACPhE,4DAGL6I,wCACYf,oCACP9H,uGAKf4D,wmCA2BT4lI,GAAMvsI,IACR,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAGk7D,MAAO14D,EAAG24D,OAAQ14D,GAAM/C,GAAM47D,SAAU54D,EAAG04D,OAAQz4D,EAAG04D,mBAAoBx4D,GAAM9C,EAAGuE,EAAI,IAAIynI,GAAG/rI,EAAEu9B,MAAO/6B,EAAE+6B,MAAO76B,EAAGC,EAAGE,GAChL,OAAOhD,EAAE48H,gBAAgBn4H,EAAG,CAACtE,EAAGwC,EAAGC,GAAI,YAErCwpI,GAAK,CAAEl1G,WAAY3wD,GAAI4wD,YAAa,QAASuO,WAAYymG,KAE7D,SAAUvsI,GACRA,EAAE5tB,KAAO,IAAK4tB,EAAEtnB,IAAM,KADxB,CAEGmzJ,KAAOA,GAAK,KACf,IAAIY,GAAK,MACP,YAAYxsI,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKowB,GAAKkR,EAAIthC,KAAK+5F,YAAct4D,EAAGzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASw5E,KAAM,UAC9G,IAAI32C,EAAIpkC,KAAK+5F,YAAY75F,OAAQmkC,EAAIrkC,KAAKowB,KAAO88I,GAAGz5J,KAAO,MAAQ,MAAO6wB,EAAI3C,EAAI0C,EAAI,QAAQ0pI,GAAG3pI,EAAG,SAAUpkC,KAAKowB,OAAQmU,EAAIvkC,KAAK+5F,YAAY/5F,KAAK+5F,YAAY75F,OAAS,GAAIukC,EAAI,GAAIyB,EAAI,GAC1LvE,GAAK8C,EAAI7C,EAAI,WAAU2C,EAAI,GAAM,WAAY2B,EAAItE,EAAI,UAAY,YAAc6C,EAAI7C,EAAI,gBAAgB2C,EAAM,cAAe2B,EAAItE,EAAI,aAAe,cAAe5hC,KAAK0pJ,SAAW,kCAE5KqC,GAAG3nH,qDACO4pI,GAAG5pI,EAAG,SAAUpkC,KAAKowB,6BACnBkU,6DAERG,6BACQyB,iBACV8nI,GAAG5pI,EAAG,SAAUpkC,KAAKowB,6BACjBpwB,KAAKowB,YAAY29I,GAAG3pI,EAAG,SAAUpkC,KAAKowB,6DAOtD,SAAS29I,GAAG1sI,EAAGC,EAAIG,GACjB,GAAU,IAANJ,EACF,MAAO,GAAGC,EACZ,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,MACrB,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,QAASA,MAC9B,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,QAASA,QAASA,MACvC,MAAM,IAAI2C,MAAM,cAAcxC,cAAcJ,0BAE9C,SAAS2sI,GAAG3sI,EAAGC,EAAIG,GACjB,GAAU,IAANJ,EACF,MAAO,GAAGC,EACZ,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,MAAM,IAAI2C,MAAM,cAAcxC,cAAcJ,0BAE9C,SAAS4sI,GAAG5sI,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAI/C,EAAG69B,MAAMj/D,OAAQokC,EAAIjmB,GAAE+9F,mBAAmB,CAACz6E,GAAI0C,GAAIE,EAAIjD,EAC1D,MAALgD,IAAcC,EAAI+/H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,MACrE,IAAIG,EAAIpmB,GAAE0+F,iBAAiB,EAAG14E,GAAG,GACjC,GAAII,IAAMJ,EAAI,EACZ,MAAM,IAAIJ,MAAM,mDAAmD3C,EAAG69B,MAAMj/D,OAAS,kBAAkByhC,KACzG,IAAIuE,EAAI3B,EAAE46B,MAAM16B,GAAIqD,EAAIy5H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,IACxD,IAAK,IAAIsG,EAAI,EAAGA,GAAKhE,KAAK3jB,KAAK2jB,KAAKmqI,KAAKhoI,IAAM,EAAG6B,IAAK,CACrD,IAAIC,EAAI,IAAI8lI,GAAGzsI,EAAGkD,EAAE46B,OAAO,EAAO/6B,GAAIgE,EAAI,CAAC,CAACL,IAAKmE,EAAIpE,EACrDA,EAAIrG,EAAE48H,gBAAgBr2H,EAAG,CAACF,GAAIA,EAAE42B,MAAOt2B,GAAI3G,EAAE88F,8BAA8BryF,GAE7E,GAAItK,EAAG,CACL,IAAImG,EAAI,IAAI+lI,GAAGzsI,EAAGkD,EAAE46B,MAAOv9B,EAAGwC,GAAI4D,EAAIF,EACtCA,EAAIrG,EAAE48H,gBAAgBt2H,EAAG,CAACD,GAAIA,EAAE42B,OAAQj9B,EAAE88F,8BAA8Bv2F,GAE1E,GAAS,MAAL1D,EAAW,CACb,IAAIyD,EAAI1pB,GAAE+gG,uBAAuB96E,GAAI0D,EAAIs8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMtxD,KAC3F,OAAOtG,EAAE88F,8BAA8Bz2F,GAAIrG,EAAE88F,8BAA8Bh6F,GAAIyD,EAEjF,OAAOF,EAET,SAASqmI,GAAG9sI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrG,OAAOssI,GAAGf,GAAGz5J,KAAMmuB,EAAGH,EAAG2C,EAAGC,EAAGC,GAEjC,IAAI8pI,GAAK,CAAEz1G,WAAYzwD,GAAI0wD,YAAa,QAASuO,WAAYgnG,IAC7D,SAASE,GAAGhtI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrG,OAAOssI,GAAGf,GAAGnzJ,IAAK6nB,EAAGH,EAAG2C,EAAGC,EAAGC,GAEhC,IAAIgqI,GAAK,CAAE31G,WAAYvwD,GAAIwwD,YAAa,QAASuO,WAAYknG,IAC7D,SAASE,GAAGltI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,EAAG68C,aAAc58C,GAAM3C,EACxG,GAAuB,IAAnBC,EAAEu9B,MAAMj/D,OAAc,CACxB,IAAIqkC,EAAI9C,EAAEw/B,SAASr/B,EAAEg/B,QAASn8B,EAAIhD,EAAEw/B,SAAS78B,EAAEw8B,QAAS16B,EAAIoxH,GAAG/yH,EAAGE,EAAGL,EAAEs6B,MAAOt6B,EAAE+6B,MAAO96B,GACvF,OAAO5C,EAAE41F,eAAe,CAAChzF,GAAID,EAAEs6B,MAAOx4B,GACjC,GAAuB,IAAnBtE,EAAEu9B,MAAMj/D,OAAc,CAC/B,IAAIqkC,EAAI9C,EAAEknG,WAAW/mG,GAAI6C,EAAIhD,EAAEknG,WAAWvkG,GAAI8B,EAAIqxH,GAAGhzH,EAAGE,EAAGJ,EAAGC,GAC9D,OAAO7C,EAAE41F,eAAenxF,EAAEi5B,MAAO/6B,EAAEs6B,MAAOx4B,EAAEpnC,QAE9C,MAAM,IAAImlC,MAAM,qEAAqErC,EAAEu9B,MAAMj/D,WAE/F,IAAIsuK,GAAK,CAAE71G,WAAYnwD,GAAIowD,YAAa,QAASuO,WAAYonG,IACzDE,GAAK,MACP,YAAYntI,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAcz4D,EAAIthC,KAAKqhF,UAAY5/C,EAAGzhC,KAAKi5E,WAAat3C,EAAG3hC,KAAK0pJ,SAAW,yGAIvH1pJ,KAAK0uK,0CACL1uK,KAAK2uK,yCACL3uK,KAAK4uK,kDAEEntI,oCACQA,6BACRA,oCACQA,yCACIA,4BACzBzhC,KAAK6uK,iFAGQ7uK,KAAK8uK,iEAK1B,uBACE,MAA2B,SAApB9uK,KAAKi5E,WAAwB,YAAc,YAEpD,sBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,YAAc,YAEpD,sBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,YAAc,YAEpD,qBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwBj5E,KAAK+5F,YAAY,GAAK/5F,KAAK+5F,YAAY,GAE7E,yBACE,MAA2B,SAApB/5F,KAAKi5E,WAAwB,4BAA8B,8BAGtE,SAAS81F,GAAG1tI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+/C,UAAWj9C,EAAG60C,WAAY50C,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAM,GAAI56B,EAAU,SAANF,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAI16B,EAAU,SAANJ,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIj5B,EAAU,SAAN7B,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIr3B,EAAIvD,EAAIH,EAAG2D,EAAItD,EAAIL,EAAG4D,EAAI9B,GAAK9B,EAAIA,GAAIgE,EAAU,SAAN/D,EAAe,CAACC,EAAGwD,EAAGC,EAAGC,GAAK,CAAC1D,EAAG0D,EAAGF,EAAGC,GAAImE,EAAI,IAAIuiI,GAAGrmI,EAAGhE,EAAGC,GAC9V,OAAO5C,EAAE48H,gBAAgBnyH,EAAG,CAACtK,GAAIA,EAAE88B,OAErC,IAAIswG,GAAK,CAAEr2G,WAAYjwD,GAAIkwD,YAAa,QAASuO,WAAY4nG,IACzDE,GAAK,MACP,YAAY3tI,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,EAAOwC,GAAI,GAClDpkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,OAAQw5E,KAAM,SAAW,CAAEx5E,KAAM,UAAWw5E,KAAM,SAAW,CAAEx5E,KAAM,YAAaw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QACtR,IAAImkC,EAAI/C,EAAGk4C,aAAcl1C,EAAIhD,EAAGm4C,YAAal1C,EAAIjD,EAAG+3C,YAAc/3C,EAAG83C,WAAY30C,EAAI,GAAIyB,EAAI,GAC7FvE,IAAU8C,EAAJ7C,EAAQ,uGAEND,eACCyC,EAAQ,+FAETzC,eACK,wDAEHA,2BAEHuE,EAAI,gCACX,IAAI4B,EAAIrG,EAAI,kCAAoC,GAChDA,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2BzH,GAAKpkC,KAAKmsJ,cAActgH,KAAK,kBAAmB7rC,KAAK0pJ,SAAW,WAC1JjlH,gNAOgBF,iCACIA,kXASIF,qLAOEC,uWAcxBwD,cACA5B,iDAMNgpI,GAAK,MACP,YAAY5tI,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,EAAOwC,GAAI,GAClDpkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,OAAQw5E,KAAM,SAAW,CAAEx5E,KAAM,UAAWw5E,KAAM,SAAW,CAAEx5E,KAAM,YAAaw5E,KAAM,SAAW,CAAEx5E,KAAM,SAAUw5E,KAAM,UAAY/6E,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK0oJ,oBAAsB8F,GAAGxuJ,KAAK+5F,YAAY75F,QAC1U,IAAImkC,EAAI/C,EAAG+3C,YAAc/3C,EAAG83C,WAAY90C,EAAIhD,EAAGs3C,QAAQz5E,KAAMolC,EAAIjD,EAAGi4C,YAAa90C,EAAInD,EAAGu4C,cAAe3zC,EAAI5E,EAAGk4C,aAAc1xC,EAAIxG,EAAGm4C,YAAa1xC,EAAID,EAAGE,EAAI,uFAG3J,IAAK,IAAIkD,EAAI,EAAGA,EAAIpD,EAAGoD,IACrBlD,GAAK,2BACiB,EAAJkD,4BACG,EAAJA,kCACK,EAAJA,EAAQ,4BACL,EAAJA,EAAQ,6BACZA,KACflD,GAAK,6BACiB9B,oBAEtB,IAAK,IAAIgF,EAAI,EAAGA,EAAIpD,EAAGoD,IACrBlD,GAAK,sBACY,EAAJkD,oCACI,EAAJA,iCACI,EAAJA,EAAQ,oCACJ,EAAJA,EAAQ,4BACbA,iBACVlD,GAAK,+FAIL,IAAK,IAAIkD,EAAI,EAAGA,GAAKnD,EAAI,GAAK,EAAGmD,IAAK,CACpC,IAAIuB,EAAQ,EAAJvB,EACR,GAAIlD,GAAK,+BACayE,EAAIhI,iBACb,IAANF,GACL,GAAIkI,EAAI3E,IAAMxD,EAAI,IAAM,GAAK0D,GAAK,6GAE4ByE,4CAC3CA,wPAKEA,oEAEFA,iDAESzE,GAAb,IAANvD,GAAWgI,EAAI,EAAS,uBACrBA,mBAAmBA,EAAI,gBAAgBA,2BAClC,2cAYDA,gCAAgCA,6DAEhCA,6BAA6BA,mDAE9BzE,GAAK,6DAC8ByE,4CAC/BA,0GAEEA,oEAEFA,uDAGPA,cAAcA,uBACfA,EAAI,EAAI3E,GAAI,CACrB,IAAIiF,EAAIzI,EAAI,IAAM,EAAIjG,GAAEy9B,kBAAkBr3B,GAAKA,EAC/CA,EAAI,IAAM,GAAKH,EAAI,IAAM,GAAKG,EAAI,IAAM,GAAKH,EAAI,IAAM,GAAK0D,GAAK,0DACpB+E,+EAEiBN,EAAI,8CAC/CA,EAAI,gQAKFA,EAAI,wEAENA,EAAI,uDAEJzE,GAARvD,EAAI,EAAS,kMAITgI,EAAI,gCAAgCA,EAAI,gEAExCA,EAAI,6BAA6BA,EAAI,sDAEjC,2BACLA,EAAI,mBAAmBA,gBAAgBA,EAAI,gCAChCzE,GAAJ,IAAN+E,EAAe,2BAChBN,EAAI,cAAcA,2BACb,yCACSM,iFAEoCN,EAAI,gDAC/CA,EAAI,8HAEFA,EAAI,4EAENA,EAAI,+DAGXA,EAAI,cAAcA,EAAI,iCAItCA,EAAI3E,IAAMxD,EAAI,IAAM,GAAK0D,GAAK,yHAE+ByE,4CAC1CA,sPAIEA,oEAEFA,oGAGsCA,EAAI,4CAC1CA,EAAI,8OAIFA,EAAI,oEAENA,EAAI,uDAGXA,mBAAmBA,gBAAgBA,EAAI,yBAC1CA,EAAI,EAAI3E,IAAME,GAAK,kQAMdyE,EAAI,mBAAmBA,EAAI,wCAC1BzE,GAAK,4DAC6ByE,4CAC9BA,0GAEEA,oEAEFA,qJAI0CA,EAAI,4CAC9CA,EAAI,sHAEFA,EAAI,mEAENA,EAAI,uDAGXA,uCACOA,gBAAgBA,EAAI,yBAC9BA,EAAI,EAAI3E,IAAME,GAAK,yBACdyE,EAAI,mBAAmBA,gBAAgBA,EAAI,8BAE3DA,EAAI3E,IAAME,GAAK,kCACUyE,wCACJA,8CACdA,EAAI,EAAI3E,IAAME,GAAK,oCACCyE,EAAI,0CACRA,EAAI,kDAG7BzE,GAAK,cAEJA,GAAK,kBAGN,IAAII,EAAI,GAAI8D,EAAI,GAChBvK,IAAUyG,EAAJxG,EAAQ,oGAEND,eACCyC,EAAQ,4FAETzC,eACK,wCACLA,eACAuK,EAAI,gCACZ,IAAIC,EAAI1K,EAAI,kCAAoC,GAChDA,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2BzH,GAAKpkC,KAAKmsJ,cAActgH,KAAK,kBAAmB7rC,KAAK0pJ,SAAW,WAC1JthH,gNAOgB/D,iCACIA,mOAOlB2D,0EAGAmE,cACAD,iDAMV,SAASijI,GAAG9tI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI3B,EACrI,MAAL2B,IAAcA,EAAI,CAAC,EAAG,IAAK7H,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAG6B,GAAI,IAAM,gFAAgF7B,oBAAoB6B,MACtL,IAAiE6B,EAA7DD,EAAIzpB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAG6B,EAAG5B,EAAGG,GAAG,GAC4CsD,EAAtGpiB,KAAIuxC,QAAQ,6BAA+BpvB,EAAEyxC,aAAe,GAAKzxC,EAAEuxC,YAAcvxC,EAAEsxC,aAAe,EAAQ,IAAI81F,GAAGpnI,GAAS,IAAImnI,GAAGnnI,GACjI,IAAIE,EAAI,CAAC,CAACF,EAAE8wC,QAAQgC,IAAK9yC,EAAE8wC,QAAQz5E,MAAO,CAAC2oC,EAAEwxC,aAAcxxC,EAAEyxC,aAAc,CAACzxC,EAAE8xC,eAAgB9xC,EAAE+xC,eAAgB,CAAC/xC,EAAEoxC,SAAUpxC,EAAEqxC,UAC/H,OAAO13C,EAAE48H,gBAAgBt2H,EAAG,CAACnG,EAAGwC,GAAI,UAAW4D,GAEjD,IAAIonI,GAAK,CAAEz2G,WAAY/vD,GAAIgwD,YAAa,QAASuO,WAAYgoG,IACzDE,GAAK,MACP,YAAY/tI,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAK+5F,YAAcz4D,EAAG04C,YACxD,IAAIv4C,EAAIH,EAAGg4C,aAAc33C,EAAIL,EAAGi4C,YAAa33C,EAAIN,EAAGs3C,QAAQgC,IAAKx2C,EAAI9C,EAAGs3C,QAAQz5E,KAAMklC,EAAI/C,EAAG+3C,YAAc/3C,EAAG83C,WAC9Gp5E,KAAK0pJ,SAAW,2MAOIrlH,sHAKM/C,EAAG03C,sDACC13C,EAAGu3C,sDACJp3C,OAAOG,yCAENN,EAAG43C,4FAID53C,EAAGw3C,uDACJn3C,OAAOyC,2CAEN9C,EAAG63C,sSAenCm2F,GAAK,MACP,YAAYhuI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QACxD,IAAIr4C,EAAIH,EAAGk4C,aAAc73C,EAAIL,EAAGm4C,YAAa73C,EAAIN,EAAGg4C,aAAcl1C,EAAI9C,EAAGi4C,YAAal1C,EAAI5C,EAAI,EAAIH,EAAGs3C,QAAQgC,IAAKt2C,EAAI3C,EAAI,EAAIL,EAAGs3C,QAAQz5E,KAAMolC,EAAIjD,EAAG+3C,YAAc/3C,EAAG83C,WACvKp5E,KAAK0pJ,SAAW,oCACarlH,MAAMC,6TAYP7C,6DACgBG,6CAEZN,EAAGu3C,oIAKdp3C,kDAESE,+DACgByC,+CAEZ9C,EAAGw3C,4JAMdn3C,oGAGS4C,2CACNA,kQAY9B,SAASgrI,GAAGluI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAAGmG,EAAIzpB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAGC,EAAGC,EAAGE,GAAG,GAAOsD,EAAI,IAAIsnI,GAAGvnI,GACpN,OAAOrG,EAAE48H,gBAAgBt2H,EAAG,CAACnG,EAAGwC,GAAI,WAEtC,IAAIorI,GAAK,CAAE72G,WAAY7vD,GAAI8vD,YAAa,QAASuO,WAAYooG,IAC7D,SAASE,GAAGpuI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGm7C,WAAY15C,GAAMvE,EAAGmG,EAAIzpB,GAAEy8F,kBAAkB50E,EAAG9B,EAAE+6B,MAAO96B,EAAGC,EAAGC,EAAGE,GAAG,GAAOsD,EAAI,IAAIunI,GAAGxnI,GACxN,OAAOrG,EAAE48H,gBAAgBt2H,EAAG,CAACnG,EAAGwC,GAAI,WAEtC,IAAIsrI,GAAK,CAAE/2G,WAAY3vD,GAAI4vD,YAAa,QAASuO,WAAYsoG,IACzDE,GAAK,MACP,YAAYruI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,CAACz4D,EAAIA,GAAKthC,KAAK0pJ,SAAW,wLAS7E,SAASkmB,GAAGvuI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAI,IAAID,EAAEw9B,SAAUx9B,EAAEw9B,OAAQ/6B,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIg/H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC/6B,MAASE,EAAI,IAAIqrI,GAAGvrI,GAAIG,EAAI9C,EAAE48H,gBAAgB/5H,EAAG,CAACD,GAAIA,EAAEq6B,OAAQj6B,EAAI4+H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOv9B,KAC9R,OAAOH,EAAE88F,8BAA8Bl6F,GAAI5C,EAAE88F,8BAA8Bh6F,GAAIE,EAEjF,IAAIorI,GAAK,CAAEl3G,WAAYzvD,GAAI0vD,YAAa,QAASuO,WAAYyoG,IACzDE,GAAK,MACP,YAAYxuI,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+5F,YAAcz4D,EAAGy4C,SACvD,IAAMb,SAAUz3C,EAAG03C,QAASx3C,EAAGi3C,QAASh3C,EAAG03C,aAAcl1C,EAAGm1C,YAAal1C,EAAGm1C,aAAcl1C,EAAGm1C,YAAal1C,EAAGq1C,eAAgBn1C,EAAGo1C,cAAe3zC,GAAM5E,GAAMs5C,IAAK9yC,EAAG3oC,KAAM4oC,GAAMnG,EAC/K5hC,KAAK0pJ,SAAW,uCACgBtlH,MAAMC,uCACTyD,MAAMC,+YAaTzD,6CACGG,yCAEChD,yCACA8C,iDACG2B,6CAECvE,0XAmBtC,SAASouI,GAAG1uI,GACV,IAAkL6E,GAA5K04B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAAG8C,EAAIpmB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGC,EAAG,OAAQC,GAAOuD,EAAI,IAAIgoI,GAAGrrI,GAChMyB,EAAIzE,EAAE48H,gBAAgBv2H,EAAG,CAAClG,EAAGwC,GAAI,WACjC,IAAI2D,EAAIs7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGhF,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,EAAEs1C,YAC7D,OAAOt4C,EAAE88F,8BAA8Br4F,GAAI6B,EAE7C,IAAIioI,GAAK,CAAEr3G,WAAYvvD,GAAIwvD,YAAa,QAASuO,WAAY4oG,IAC7D,SAASE,GAAG5uI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK2hD,SAAUphD,GAAMD,EAAGyC,EAAI9C,GAAMi/E,QAASl8E,EAAGm8E,WAAYl8E,EAAGm8E,OAAQl8E,GAAMlmB,GAAEm9F,qBAAqB55E,EAAGwC,EAAElkC,QAClJme,GAAEg8F,oBAAoBh2E,EAAEnkC,OAAQqkC,EAAGH,GACnC,IAAMuvC,KAAMlvC,EAAGm8E,MAAO16E,GAAM7nB,GAAEk+F,qBAAqBj4E,EAAGC,GAAIuD,EAAI5B,EAAEhmC,OAAQ6nC,EAAI,KAAMC,EAAI3D,EAAEnkC,OAAQkoC,EAAI,GACpG,IAAK,IAAI8D,EAAI,EAAGA,EAAIpE,IAAKoE,EAAG,CAC1B,IAAK,IAAIC,KAAKjG,EAAEgG,GAAI,CAClB,IAAgFa,GAA1E2zE,mBAAoBx1E,EAAG9kB,WAAYqmB,GAAMpuB,GAAEo+F,qBAAqBz0E,EAAGzD,EAAE4H,IAC3E9tB,GAAEghG,sBAAsBn0E,GAAK6B,EAAI3I,EAAE+H,IAAMY,EAAIu3H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAG9G,EAAE+H,IAAMjuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnuD,KAAQ9C,EAAEyD,KAAKkB,IACjH,IAAIC,EAAID,EAAEoyB,MAAMnnC,QAChB,IAAK,IAAIiV,EAAI,EAAGA,EAAIR,EAAEvsC,SAAU+sC,EAC9BD,EAAE0N,OAAOjO,EAAEQ,GAAI,EAAG,GACpB5O,GAAEy6B,YAAY/rB,EAAEoyB,MAAOnyB,KAAOD,EAAIs2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQ5E,EAAEyD,KAAKkB,IAAW,OAANhF,EAAaA,EAAIgF,GAAKhF,EAAIm7H,GAAG,CAAEtkG,OAAQ,CAAEv6B,EAAG0I,EAAGN,EAAG1E,GAAK7pB,QAASujB,IAAM2G,EAAEyD,KAAK9D,IAExLmE,EAAIpE,EAAI,IAAMrD,EAAEyH,IAAM,IAAMnE,EAAIq8H,GAAG,CAAExlG,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMvyC,EAAEyH,IAAM7H,EAAEnkC,OAAS8nC,GAAIivC,UAAU,KAAY7uC,EAAEyD,KAAK9D,IAAKC,KAE7I,IAAK,IAAIkE,KAAK9D,EACZ8D,IAAMnE,GAAKtG,EAAE88F,8BAA8BryF,GAC7C,OAAOnE,EAET,IAAImoI,GAAK,CAAEv3G,WAAY7uD,GAAI8uD,YAAa,QAASuO,WAAY8oG,IACzDE,GAAK,0CACLC,GAAK,+PAULC,GAAKjO,GAAG,CAAEC,UAAW8N,GAAI7N,gBAAiB8N,KAC1CE,GAAK,CAAE33G,WAAY3uD,GAAI4uD,YAAa,QAASuO,WAAYkpG,IACzDE,GAAK,yCACLC,GAAK,0IAILC,GAAMpvI,IACR,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKs+C,GAAIh+C,EAAGtD,EAAGuD,GAAMN,EAAI8C,EAAIze,KAAIuxC,QAAQ,gCAAkC,IAAImqG,GAAGmP,GAAI7uI,EAAEw9B,MAAOv9B,EAAEu9B,OAAS,IAAIgiG,GAAGoP,GAAI5uI,EAAEw9B,MAAOv9B,EAAEu9B,OACjK,OAAO19B,EAAE48H,gBAAgBj6H,EAAG,CAACzC,EAAGC,GAAID,EAAE+8B,QAEpCgyG,GAAK,CAAE/3G,WAAYzuD,GAAI0uD,YAAa,QAASuO,WAAYspG,IACzDE,GAAK,kCAGLC,GAAK,wBACLC,GAAKrO,GAAG,CAAEH,UAAWuO,GAAItO,gBAAiBqO,GAAIjyG,MAAO,OAAQ6jG,cAAe3K,KAC5EkZ,GAAK,CAAEn4G,WAAYruD,GAAIsuD,YAAa,QAASuO,WAAY0pG,IACzDE,GAAK,wNAIK1yJ,GAAEi7F,wBACDj7F,GAAEu6F,yBACFv6F,GAAEy6F,yBACFz6F,GAAE26F,yBACF36F,GAAE66F,yBACF76F,GAAE+6F,uKAOb43D,GAAK5O,GAAG,CAAEC,UAAW0O,KACrBE,GAAK,CAAEt4G,WAAYnuD,GAAIouD,YAAa,QAASuO,WAAY6pG,IACzDE,GAAK/O,GAAK,uBAGVgP,GAAK,6OAULC,GAAKhP,GAAG,CAAEC,UAAW6O,GAAI5O,gBAAiB6O,GAAI5O,cAAe1K,GAAIn5F,MAAO,YACxE2yG,GAAK,CAAE14G,WAAYjuD,GAAIkuD,YAAa,QAASuO,WAAYiqG,IAC7D,SAASE,GAAGjwI,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAKikD,IAAK1jD,GAAMH,GAAK4jD,MAAOjhD,GAAM9C,EAAI+C,EAAID,EAAE+6B,MAAMj/D,OAAQokC,EAAIF,EAAE+6B,MAAMnnC,QAASuM,EAAI3C,EAC9H,OAAOA,EAAI,IAAMvD,GAAE26B,SAAS30B,EAAI,IAAMzC,EAAG,IAAM,mCAAmCyC,EAAI,OAAOA,MAAOE,EAAIF,EAAIzC,EAAI,GAAI0C,EAAEoW,OAAOnW,EAAG,EAAG,GAAI8+H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO76B,KAE5L,IAAIitI,GAAK,CAAE54G,WAAY/tD,GAAIguD,YAAa,QAASuO,WAAYmqG,IACzDE,GAAK,uBACLC,GAAKrP,GAAG,CAAEC,UAAWmP,GAAIlP,gBAAiBkP,GAAIjP,cAAezK,KAC7D4Z,GAAK,CAAE/4G,WAAY7tD,GAAI8tD,YAAa,QAASuO,WAAYsqG,IACzDE,GAAK,MACP,YAAYrwI,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,OAAQ,QAC9B,IAAIvqH,EAAIH,EAAE,GACVzhC,KAAK+5F,YAAct4D,EACnB,IAAgF6C,EAA5EF,EAAIzC,EAAI,SAASoC,KAAKw2D,GAAO,UAAUx2D,KAAKw2D,GAAMl2D,EAAI1C,EAAOC,EAAH,KAAW,MACzE,GAAW,SAAPN,EACFgD,EAAI,wCACD,IAAW,SAAPhD,EAGP,MAAM,IAAI2C,MAAM,sDAAsD3C,MAFtEgD,EAAI,oCAGNtkC,KAAK0pJ,SAAW,4CACqBtlH,+FAG/BE,gHAIwC1C,sKAMpBA,oWAS2ByC,2LAazD,SAASutI,GAAGvwI,EAAGC,EAAIG,GACjB,IAAIE,EAAIF,EAAEyqH,QAAQ1qJ,IAAI6/B,EAAEu/B,QAASh/B,EAAIvD,GAAEi+B,cAAcj7B,EAAE89B,OAAQ/6B,EAAI/C,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,GAAImkC,EAAIzC,EAAIwC,EAAGE,EAAI++H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGD,MAASG,EAAID,EAAE66B,MAAO16B,EAAI,IAAIktI,GAAG,OAAQptI,EAAGjD,GAAK4E,EAAI,IAAIyrI,GAAG,OAAQptI,EAAGjD,GAAKwG,EAAI,CAAC,CAAE84B,OAAQj/B,EAAEy1F,mBAAmBhkG,KAAKwtC,OAAQlC,MAAO/8B,EAAEy1F,mBAAmBhkG,KAAKsrC,MAAOS,MAAO56B,GAAK,CAAEq8B,OAAQj/B,EAAEy1F,mBAAmB9tG,KAAKs3C,OAAQlC,MAAO/8B,EAAEy1F,mBAAmB9tG,KAAKo1C,MAAOS,MAAO56B,IAAMwD,EAAItG,EAAE48H,gBAAgB55H,EAAGqD,EAAG,WAAYE,EAAIvG,EAAE48H,gBAAgBn4H,EAAG4B,EAAG,WAAYM,EAAIq5H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAM2U,EAAGze,KAAM0e,GAAK9pB,QAASujB,IACxjBA,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GACpE,IAAIkE,EAAIm3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO99B,EAAE89B,SAC7D,OAAO19B,EAAE88F,8BAA8Bj6F,GAAI7C,EAAE88F,8BAA8Bn2F,GAAI8D,EAEjF,SAAS2lI,GAAGxwI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EACnD,OAAOswI,GAAGjwI,GAAG,EAAOF,GAEtB,IAAIqwI,GAAK,CAAEn5G,WAAY3tD,GAAI4tD,YAAa,QAASuO,WAAY0qG,IACzDE,GAAK,MACP,YAAYzwI,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASw5E,KAAM,UAAY/6E,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,0HAQxJ,SAASsoB,GAAG3wI,GACV,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAK89B,MAAOx9B,EAAG1gC,MAAO2gC,GAAMH,GAAKi9B,MAAOt6B,GAAM3C,EAC9E,GAAI2C,EAAIA,GAAK/F,GAAEw8B,WAAWj5B,GAAU,WAANwC,EAAgB,CAC5C,IAAIC,EAAIhG,GAAEk8B,kBAAkBn2B,EAAG/F,GAAEi+B,cAAc36B,IAC/C,OAAO0C,EAAEzd,KAAKgb,GAAIN,EAAG+1F,eAAe11F,EAAGyC,EAAGC,GACrC,CACL,IAAIA,EAAI,IAAI0tI,GAAGpwI,EAAGC,GAAI0C,EAAI,CAAC,CAAC1C,IAC5B,OAAON,EAAG+8H,gBAAgBh6H,EAAG,GAAID,EAAGE,IAGxC,IAuII2tI,GAvIAC,GAAK,CAAEv5G,WAAYztD,GAAI0tD,YAAa,QAASuO,WAAY6qG,IACzDG,GAAK,MACP,YAAY7wI,GACVthC,KAAKmsJ,cAAgB,CAAC,SAAUnsJ,KAAK+5F,YAAc,GACnD,IAAIt4D,EAAIH,EAAG,GACXthC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,gIAKlBjoH,kFAEcA,6PAUnC2wI,GAAK,CAAEz5G,WAAYvtD,GAAIwtD,YAAa,QAASuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,MAClF,IAAM9X,MAAOiY,GAAMJ,EAAGM,EAAIL,EAAIM,EAAI,IAAIuwI,GAAG1wI,EAAE09B,OAC3C,OAAOx9B,EAAE08H,gBAAgBz8H,EAAG,CAACH,GAAIA,EAAEi9B,SAEjC2zG,GAAK,mBACLC,GAAKlQ,GAAG,CAAEC,UAAWgQ,GAAI/P,gBAAiB+P,GAAI9P,cAAexK,KAC7Dwa,GAAK,CAAE55G,WAAYrtD,GAAIstD,YAAa,QAASuO,WAAYmrG,IACzDE,GAAK,uPAWLC,GAAK,sgBAsBLC,GAAKlQ,GAAG,CAAEH,UAAWmQ,GAAIlQ,gBAAiBmQ,GAAI/zG,MAAO,UACrDi0G,GAAK,CAAEh6G,WAAYntD,GAAIotD,YAAa,QAASuO,WAAYurG,IACzDE,GAAK,MACP,YAAYtxI,GACVthC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAI1qH,EAAI4lH,MAAO1lH,EAAGC,GAAKN,EACvBthC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,wNAMY9nH,QAAQD,kCAEvCF,EAAEgmH,6WAiBtBorB,GAAK,MACP,YAAYvxI,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAO7oJ,KAAK0uJ,cAAe,EAC3E,IAAIjtH,EAAI4lH,MAAO1lH,EAAGC,GAAKN,EACvBthC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,0bAeb9nH,QAAQD,oCACVF,EAAEgmH,ybAgBpBhmH,EAAEwvG,oCAKR6hC,GAAK,CAAEn6G,WAAYjtD,GAAIktD,YAAa,QAASuO,WAAY4rG,IAEzDC,GAAKrtJ,KAAIuxC,QAAQ,yCACrB,SAAS67G,GAAG1xI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgyE,OAAQzxE,GAAMN,GAAMgyE,YAAalvE,GAAMzC,EAAG0C,EAA+B,oBAApB4uE,kBAAmCrxE,aAAaqxE,iBAAkB3uE,EAA+B,oBAApB4uE,kBAAmCtxE,aAAasxE,kBAAmB3uE,EAAGE,GAAKJ,EAAI,CAACzC,EAAE2xE,WAAY3xE,EAAE4xE,aAAe,CAAC5xE,EAAE+oC,MAAO/oC,EAAE8oC,QAASxkC,EAAI,CAACzB,EAAGF,GAAIuD,EAAI,CAACrD,EAAGF,EAAGH,GAC7U,GAAIE,GAAKD,EAAG,CACV,IAAI6H,EAAIvmB,KAAIuxC,QAAQ,0CACb,MAAN+6G,IAAc/lI,IAAM8mI,MAAQA,GAAK9mI,EAAG+lI,GAAKriI,SAASkhD,cAAc,UAAUqiB,WAAW,KAAM,CAAES,mBAAoBo/D,MAAQf,GAAGp+D,OAAOlpC,MAAQpmC,EAAG0tI,GAAGp+D,OAAOnpC,OAASjmC,EAAGwtI,GAAGn+D,UAAUlyE,EAAG,EAAG,EAAG2C,EAAGE,GAAI7C,EAAIqwI,GAAGp+D,OAE3M,IAAI9rE,EAAItG,EAAE41F,eAAenxF,EAAG,SAC5BzE,EAAEyqH,QAAQ1qJ,IAAIumC,EAAE64B,QAAQ29F,MAAQvf,GAAG4D,OAAQnhH,EAAEw5H,MAAMtI,yBAAyBlxH,EAAEg/H,WAAW14H,EAAE64B,QAASh/B,GACpG,IAAIoG,EAAIriB,KAAIuxC,QAAQ,cAAgB,IAAI27G,GAAG/qI,GAAK,IAAI8qI,GAAG9qI,GAAIM,EAAI3G,EAAE48H,gBAAgBr2H,EAAG,CAACD,GAAI,SACzF,OAAOtG,EAAE0kC,YAAYp+B,EAAE64B,QAASx4B,EAElC,SAAS6qI,GAAG5xI,GACV,IAA8T6J,GAAxT0zB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAMzG,EAAGuK,EAAI7tB,GAAEk9F,wBAAwBr1E,GAAIiG,EAAI9tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAGuD,EAAGrD,EAAGsD,GAAG,EAAOmE,GAAOO,EAAI,GAAIM,EAAS,MAAL1I,EAAW2I,EAAS,MAAL1I,EAAW2I,EAAU,cAANjF,EAAmBkF,EAAI,KAChY,IAAIG,EAAI,CAACzL,EAAGwC,GAAIkJ,EAAI,CAACC,EAAGtuC,KACtB,GAAU,SAANA,GAAmC,IAAnBsuC,EAAE4xB,MAAMj/D,QAA+B,IAAfqtC,EAAE4xB,MAAM,GAAU,CAC5D,IAAI3xB,EAAI61H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGqC,GAAKrvB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC5xB,EAAE4xB,MAAM,GAAI,EAAG,MAC3E,OAAO1yB,EAAEZ,KAAK2B,GAAIA,EAEpB,OAAOD,GAET,GAAIR,GAAKM,EAAExB,KAAKyB,EAAEjJ,EAAG6B,IAAK8G,GAAKK,EAAExB,KAAKyB,EAAEhJ,EAAG4B,IAAK+G,EAAG,CACjD,IAAIM,EAAI9L,EAAE41F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkBtxB,EAAG,YAC/DiF,EAAExB,KAAK0B,GAAId,EAAEZ,KAAK0B,GAEpB,OAAOF,GAET,GAAuB,IAAnBlB,EAAEqtC,cAAwC,IAAlBrtC,EAAEstC,aAA0C,IAArBttC,EAAEytC,gBAA4C,IAApBztC,EAAE0tC,eAA0C,IAAnB1tC,EAAEmtC,cAAwC,IAAlBntC,EAAEotC,aAAyC,SAAnBptC,EAAEysC,QAAQmC,MAAsC,UAAnB5uC,EAAEysC,QAAQmC,KAExL,GAAI5uC,EAAEotC,aAAe,GAAW,iBAANrtC,GAAwBvmB,KAAIuxC,QAAQ,kBAAmB,CACpF,IAAI7pB,EAAIrF,EAAI26H,GAAG36H,GAAG,GAAQ,KAAMsF,EAAI,IAAIs+H,GAAGz/H,EAAGY,EAAGM,EAAGL,EAAGC,GAAIM,EAAI,CAAC,CAACpB,EAAEysC,QAAQgC,IAAKzuC,EAAEysC,QAAQz5E,MAAO,CAACgtC,EAAEmtC,aAAcntC,EAAEotC,aAAc,CAACptC,EAAEytC,eAAgBztC,EAAE0tC,eAAgB,CAAC1tC,EAAE+sC,SAAU/sC,EAAEgtC,UAAWl6E,EAAIiuC,IACrMhC,EAAIzJ,EAAE48H,gBAAgB/wH,EAAGruC,EAAG,UAAWsuC,QAClC,GAAI5nB,KAAIuxC,QAAQ,qBACrBhsB,EAAI+gI,GAAG,CAAE/gI,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAU7/H,EAAGjuB,QAASujB,EAAGmmD,KAAMvjD,EAAG82D,WAAYnzD,EAAGozD,uBAAwB92D,EAAG+2D,eAAgBjzD,QACnH,CACH,IAAIiF,EAAIrF,EAAI26H,GAAG36H,GAAG,GAAS,KAAMsF,EAAI,IAAIo+H,GAAGv/H,EAAGY,EAAGM,EAAGL,EAAGC,GAAIM,EAAIL,IAChEhC,EAAIzJ,EAAE48H,gBAAgB/wH,EAAGC,EAAG,gBAR5BrC,EAAI6gI,GAAG,CAAE7gI,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAU7/H,EAAGjuB,QAASujB,EAAGmmD,KAAMvjD,EAAG82D,WAAYnzD,EAAGozD,uBAAwB92D,EAAG+2D,eAAgBjzD,IAUxH,IAAIgF,EAAIi2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,KAAKhtB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOhzB,EAAE4tC,YAC1D,OAAOttC,EAAEZ,KAAKX,GAAIuB,EAAEkN,QAAStM,GAAM5L,EAAE88F,8BAA8BlxF,IAAKD,EAE1E,IAAI8lI,GAAK,CAAEv6G,WAAY7sD,GAAI8sD,YAAa,QAASuO,WAAY8rG,IAC7D,SAASE,GAAG9xI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAG66C,UAAWp5C,EAAGy1C,gBAAiB7zC,EAAGqzD,WAAYpzD,EAAGszD,eAAgBrzD,GAAMrG,EAAGyG,EAAI,GAAI8D,EAAIhG,EACnN,MAALgG,IAAcA,EAAI,CAAC,EAAG,IAAK7N,GAAE26B,OAAO36C,GAAEq9F,+BAA+Bn3E,EAAG2H,GAAI,IAAM,gFAAgF3H,oBAAoB2H,MACtL,IAKIkB,EALAjB,EAAI9tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAG2H,EAAGzH,EAAGqD,GAAG,GAAOoD,EAAIvlB,KAAIuxC,QAAQ,6BAA+B/qB,EAAEotC,aAAe,GAAKptC,EAAEktC,YAAcltC,EAAEitC,aAAe,EAAG3sC,EAAI1E,EAAI46H,GAAG56H,EAAGmD,GAAK,KAAM6B,EAAI,CAACnL,EAAGwC,GAAI4I,EAAS,MAAL3I,EAAW4I,EAAS,MAAL3I,EAAW4I,EAAU,cAANnF,EACjP,GAAIiF,GAAKD,EAAElB,KAAKxH,GAAI4I,GAAKF,EAAElB,KAAKvH,GAAI4I,EAAG,CACrC,IAAIK,EAAI9L,EAAE41F,eAAe,GAAI,UAAWh5F,GAAEq7B,kBAAkB1xB,EAAG,YAC/D+E,EAAElB,KAAK0B,GAAInF,EAAEyD,KAAK0B,GAGhBH,EAAJlC,EAAQ,IAAIgkI,GAAG/iI,EAAGa,EAAGP,EAAGQ,EAAGC,GAAS,IAAI+hI,GAAG9iI,EAAGa,EAAGP,EAAGQ,EAAGC,GACvD,IAAIG,EAAI,CAAC,CAAClB,EAAEysC,QAAQgC,IAAKzuC,EAAEysC,QAAQz5E,MAAO,CAACgtC,EAAEmtC,aAAcntC,EAAEotC,aAAc,CAACptC,EAAEytC,eAAgBztC,EAAE0tC,eAAgB,CAAC1tC,EAAE+sC,SAAU/sC,EAAEgtC,UAAW7rC,EAAI7L,EAAE48H,gBAAgBjxH,EAAGL,EAAG,UAAWM,GACjL,OAAOjF,EAAEuR,QAASpM,GAAM9L,EAAE88F,8BAA8BhxF,IAAKD,EAE/D,IAAI8lI,GAAK,CAAEz6G,WAAY3sD,GAAI4sD,YAAa,QAASuO,WAAYgsG,IACzDE,GAAK,MACP,YAAY/xI,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKszK,SAAWhyI,EAAIthC,KAAKmgE,QAAU1+B,EAAGzhC,KAAKuzK,YAAc3xI,EAAG5hC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK+5F,YAAcp4D,EACtH,IAAIyC,EAAI2nH,GAAGpqH,EAAEzhC,QAASmkC,EAAI,mBAE1B,IAAK,IAAIC,EAAI,EAAGA,EAAItkC,KAAKszK,SAAUhvI,IACjCD,GAAK,mDACqCC,oHAEMtkC,KAAKuzK,YAAYjvI,0CACnCtkC,KAAKmgE,QAAQ77B,MAC7CtkC,KAAK0pJ,SAAW,uCAERtlH,sHAIAC,sGAOZ,SAASmvI,GAAGnyI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK64D,OAAQv4D,EAAGukD,QAAStkD,GAAMN,EAAI8C,EAAIxC,EAAEu9B,MAAO96B,EAAID,EAAEA,EAAElkC,OAAS,GAAIokC,EAAIjG,GAAEi+B,cAAc36B,EAAEw9B,QAAS56B,EAAGE,EAAGyB,EAAG4B,GAAKzpB,GAAEu2F,mBAAmBjzE,EAAGC,GAAImG,EAAIs7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAGJ,MAAS2D,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC9gC,GAAEi+B,cAAc36B,EAAEw9B,OAASj5B,EAAGA,MACzU,GAAIzE,EAAEq+H,mBAAmB,CAACn+H,EAAGC,KAAmB,WAAZD,EAAE+8B,MAAoB,CACxD,IAAIxzB,EAAIzJ,EAAEw/B,SAASr/B,EAAEg/B,QAASn0B,EAAIhL,EAAEknG,WAAWhnG,GAAIoL,EAAIirH,GAAG9sH,EAAGuB,EAAG9K,EAAE+8B,MAAOj6B,EAAGJ,EAAG6B,EAAG4B,EAAGnG,EAAEw9B,MAAO76B,GAC9F,OAAO7C,EAAE41F,eAAe9yF,EAAG5C,EAAE+8B,MAAO3xB,EAAEjuC,QAExC,IAAIspC,EAAI,IAAIirI,GAAGhvI,EAAGyD,EAAG,CAACrD,EAAGyB,GAAIvE,EAAEw9B,OAAQjzB,EAAIzK,EAAE48H,gBAAgBj2H,EAAG,CAACJ,EAAGD,GAAIC,EAAE02B,OAAQvyB,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KACzI,OAAO9C,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8BryF,GAAIC,EAErH,IAAIsnI,GAAK,CAAE96G,WAAYvsD,GAAIwsD,YAAa,QAASuO,WAAYqsG,IACzDE,GAAK,MACP,YAAYpyI,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK+5F,YAAct4D,EAAGzhC,KAAKi/D,KAAOx9B,EAAEvhC,OAC3E,IAAIyhC,EAAIoqH,GAAG/rJ,KAAKi/D,MAAOr9B,EAAI+xI,GAAGryI,EAAI,GAClCthC,KAAK0pJ,SAAW,kCAEV/nH,2IAE0CL,EAAG,uDACnBM,wBAKpC,SAAS+xI,GAAGtyI,EAAGC,GACb,IAAIG,EAAI,CAAC,UAAW,UAAW,UAAW,WAAYE,EAAI,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,IACtB,IAANA,EAAUD,EAAEkK,KAAK,SAAWlK,EAAEkK,KAAK,GAAGpK,EAAEG,IAC1C,OAAOD,EAAE+1B,OAEX,SAASk8G,GAAGvyI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGskD,QAAS9hD,GAAM9C,GAAM01C,KAAM3yC,EAAG8hD,UAAW7hD,GAAM3C,EAAG4C,EAAIlG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GACzI,GAAIx5C,KAAInkB,IAAI,SAAU,CACpB,IAAIirC,EAAIhL,EAAEw/B,SAAS78B,EAAEw8B,QAAS7zB,EAAInL,EAAEu9B,MAAM56B,GAC1C,IAAK,IAAIyI,EAAI,EAAGA,EAAIP,EAAEvsC,SAAU8sC,EAAG,CACjC,IAAIC,EAAIR,EAAEO,GACV3O,GAAE26B,OAAO/rB,GAAKF,EAAI,GAAKE,GAAK,EAAG,IAAM,6BAA6BA,mBAAmBF,EAAI,OAG7F,IAAItI,EAAIpmB,GAAEshG,aAAauB,yBAAyBt/E,EAAGwC,EAAGG,EAAGD,GAAI4B,EAAI7H,GAAEi+B,cAAcl4B,EAAE+6B,OAAQr3B,EAAI,GAAIC,EAAIs7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAEu0C,UAAWv0C,EAAEu8E,UAAWv8E,EAAEw8E,QAASx8E,EAAEozD,cAAiB7vD,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAEu0C,UAAW9yC,EAAIzB,EAAEu0C,cAC9RlxC,EAAE+D,KAAK9D,GAAID,EAAE+D,KAAK7D,GAClB,IAAII,EAAI,CAAC3D,EAAEu0C,UAAWv0C,EAAEu8E,UAAW96E,EAAIzB,EAAEu0C,UAAWv0C,EAAEozD,WACtD,GAAIp2D,EAAEq+H,mBAAmB,CAACl+H,EAAGwC,KAAmB,WAAZxC,EAAE88B,MAAoB,CACxD,IAAIjyB,EAAIhL,EAAEknG,WAAW3gG,GAAI+E,EAAItL,EAAEknG,WAAW5gG,GAAIiF,EAAIirH,GAAGlrH,EAAGN,EAAGrE,GAC3D,OAAON,EAAE6R,QAAS1M,GAAMxL,EAAE88F,8BAA8BtxF,IAAKxL,EAAE41F,eAAe5yF,EAAEs1D,YAAa/sD,EAAE0xB,MAAO1xB,EAAEluC,QAE1G,IAAIotC,EAAI,IAAIwnI,GAAG3rI,EAAEo3B,MAAO/2B,GAAI+D,EAAI1K,EAAE48H,gBAAgBnyH,EAAG,CAACnE,EAAGC,GAAID,EAAE22B,OAC/D52B,EAAE+D,KAAKM,GACP,IAAIjB,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,EAAEs1D,eAC7D,OAAOjyD,EAAE6R,QAASlN,GAAMhL,EAAE88F,8BAA8B9xF,IAAKvB,EAE/D,IAAI2oI,GAAK,CAAEl7G,WAAYrsD,GAAIssD,YAAa,QAASuO,WAAYysG,IACzDE,GAAK,uBACLC,GAAK,wCAGLC,GAAKxR,GAAG,CAAEH,UAAWyR,GAAIxR,gBAAiByR,GAAIxR,cAAerK,GAAIx5F,MAAO,SACxEu1G,GAAK,CAAEt7G,WAAYjsD,GAAIksD,YAAa,QAASuO,WAAY6sG,IACzDE,GAAK,wBACLC,GAAK,6CAGLC,GAAK5R,GAAG,CAAEH,UAAW6R,GAAI5R,gBAAiB6R,GAAIz1G,MAAO,OAAQ6jG,cAAepK,KAC5Ekc,GAAK,CAAE17G,WAAY/rD,GAAIgsD,YAAa,QAASuO,WAAYitG,IAC7D,SAASE,GAAGjzI,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EACnD,OAAOswI,GAAGjwI,GAAG,EAAMF,GAErB,IAAI8yI,GAAK,CAAE57G,WAAY7rD,GAAI8rD,YAAa,QAASuO,WAAYmtG,IACzDE,GAAK,wCACLC,GAAKrS,GAAG,CAAEC,UAAWmS,GAAI91G,MAAO,SAChCg2G,GAAK,CAAE/7G,WAAYvrD,GAAIwrD,YAAa,QAASuO,WAAYstG,IACzDE,GAAM,0BACNC,GAAMxS,GAAG,CAAEC,UAAWsS,GAAKj2G,MAAO,SAClCm2G,GAAK,CAAEl8G,WAAYrrD,GAAIsrD,YAAa,QAASuO,WAAYytG,IACzDE,GAAM,0BACNC,GAAM3S,GAAG,CAAEC,UAAWyS,GAAKp2G,MAAO,SAClCs2G,GAAK,CAAEr8G,WAAYnrD,GAAIorD,YAAa,QAASuO,WAAY4tG,IACzDE,GAAM,uBACNC,GAAM,qCAGNC,GAAM3S,GAAG,CAAEH,UAAW4S,GAAK3S,gBAAiB4S,GAAK3S,cAAenK,GAAI15F,MAAO,SAC3E02G,GAAK,CAAEz8G,WAAYzqD,GAAI0qD,YAAa,QAASuO,WAAYguG,IACzDE,GAAM,wBACNC,GAAM,0CAGNC,GAAM/S,GAAG,CAAEH,UAAWgT,GAAK/S,gBAAiBgT,GAAK/S,cAAelK,GAAI35F,MAAO,SAC3E82G,GAAK,CAAE78G,WAAYvqD,GAAIwqD,YAAa,QAASuO,WAAYouG,IAC7D,SAASE,GAAIp0I,GACX,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAG6lD,IAAKrjD,GAAM3C,EAAG4C,EAAIi0H,GAAG32H,EAAGC,EAAGwC,GACnF,OAAO9C,EAAG+1F,eAAe,CAAChzF,EAAEnkC,QAAS,UAAWmkC,GAElD,IAAIqxI,GAAK,CAAE/8G,WAAYrqD,GAAIsqD,YAAa,QAASuO,WAAYsuG,IACzDE,GAAMxT,GAAK,yCAGXyT,GAAM,mUASNC,GAAMzT,GAAG,CAAEC,UAAWsT,GAAKrT,gBAAiBsT,GAAKrT,cAAehK,KAChEud,GAAK,CAAEn9G,WAAYnqD,GAAIoqD,YAAa,QAASuO,WAAY0uG,IACzDE,GAAM5T,GAAK,6BAGX6T,GAAM5T,GAAG,CAAEC,UAAW0T,KACtBE,GAAK,CAAEt9G,WAAYjqD,GAAIkqD,YAAa,QAASuO,WAAY6uG,IACzDE,GAAM,sCACNC,GAAM,6GAKNC,GAAM5T,GAAG,CAAEH,UAAW6T,GAAK5T,gBAAiB6T,GAAKz3G,MAAO,SACxD23G,GAAK,CAAE19G,WAAY7pD,GAAI8pD,YAAa,QAASuO,WAAYivG,IACzDE,GAAM,6BACNC,GAAMnU,GAAG,CAAEC,UAAWiU,KACtBE,GAAK,CAAE79G,WAAY3pD,GAAI4pD,YAAa,QAASuO,WAAYovG,IACzDE,GAAM,sCACNC,GAAM,4HAMNC,GAAMnU,GAAG,CAAEH,UAAWoU,GAAKnU,gBAAiBoU,GAAKh4G,MAAO,SACxDk4G,GAAK,CAAEj+G,WAAYzpD,GAAI0pD,YAAa,QAASuO,WAAYwvG,IACzDE,GAAK,MACP,YAAYv1I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAC/C,IAAI11D,EAAI5C,EAAG6C,EAAIhD,EAAG,GAAK,EACvBthC,KAAK+5F,YAAcz4D,EACnB,IAAIiD,EAAGE,EAAI,SAAS9C,cAAcC,WACtB2C,EAAN,KAANH,EAAgB,eAAeK,KAAa,IAANL,EAAc,QAAQK,KAAW,WAAWA,eAAeL,OAAQpkC,KAAK0pJ,SAAW,0QASrGrlH,WAAWA,4EAECC,+HAKVC,+CAMtBuyI,GAAK,MACP,YAAYx1I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EACjG,IAAIrqH,EAAI5C,EAAG6C,EAAIhD,EAAG,GAAK,EACvBthC,KAAK+5F,YAAcz4D,EACnB,IAAIiD,EAAGE,EAAI,SAAS9C,cAAcC,WACtB2C,EAAN,KAANH,EAAgB,eAAeK,KAAa,IAANL,EAAc,QAAQK,KAAW,WAAWA,eAAeL,OAAQpkC,KAAK0pJ,SAAW,iNAQ7F1pJ,KAAK+5F,YAAY,sCACjB/5F,KAAK+5F,YAAY,mhBAehB11D,2ZAWRA,WAAWA,+KAGyBC,wyBAqBnBC,kDAMtCwyI,GAAO11I,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMqmD,YAAavjD,EAAGwjD,KAAMvjD,EAAG6iD,MAAO5iD,EAAGujD,KAAMtjD,GAAM5C,EAAG8C,EAAI9e,KAAIuxC,QAAQ,4BAA8B,IAAI4/G,GAAGl1I,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,GAAK,IAAIsyI,GAAGj1I,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,GACtN,OAAO9C,EAAE48H,gBAAgB55H,EAAG,CAAC7C,GAAIA,EAAE88B,QAEjCs4G,GAAK,CAAEr+G,WAAY/qD,GAAIgrD,YAAa,QAASuO,WAAY4vG,IACzDE,GAAK,MACP,YAAY31I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,aAAc,cAAe,MAAOnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAcz4D,EAAIthC,KAAK+rF,MAAQzqD,EAAG,GAAIthC,KAAK2nF,YAAclmD,EAAGzhC,KAAK4nF,KAAOjmD,EAAG3hC,KAAKknF,MAAQtlD,EAAG5hC,KAAK6nF,KAAOzjD,EAAGpkC,KAAK0pJ,SAAW,oNAQtL1pJ,KAAK+rF,oEACiBtqD,iDACXzhC,KAAK+rF,oCACpBtqD,8FAGYzhC,KAAK+rF,4aAelBnqD,qBAAqBD,oPAOLC,+BACfwC,+KAIgBA,iSAiBtC8yI,GAAO71I,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGvD,EAAG+F,EAAGu7C,GAAIt7C,GAAM/C,GAAMqmD,YAAarjD,EAAGsjD,KAAMrjD,EAAG2iD,MAAOziD,EAAGojD,KAAM3hD,GAAMvE,EAAGmG,EAAI,IAAImvI,GAAGr1I,EAAEu9B,MAAO76B,EAAGC,EAAGE,EAAGyB,GAC3J,OAAOzE,EAAE48H,gBAAgBv2H,EAAG,CAAClG,EAAGwC,EAAGC,GAAIzC,EAAE88B,QAEvCy4G,GAAK,CAAEx+G,WAAY7qD,GAAI8qD,YAAa,QAASuO,WAAY+vG,IAC7D,SAASE,GAAG/1I,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIvD,GAAEi+B,cAAch7B,GAAK+C,EAAIhG,GAAEi+B,cAAcj7B,EAAE89B,OAASv9B,EAAG0C,EAAI++H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7J,GAAK2lC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGzC,IAAM1jB,QAASyjB,IAAM4C,EAAIu/H,GAAGx/H,EAAGjD,EAAEq9B,MAAO,MAAO/8B,GAAI8C,EAAI4+H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG3G,GAAKyiC,MAAO,CAAE7H,MAAO19B,GAAKvjB,QAASyjB,IAC1N,OAAOA,EAAE48F,8BAA8Bj6F,GAAI3C,EAAE48F,8BAA8Bh6F,GAAIE,EAEjF,SAAS4yI,GAAGh2I,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2iD,iBAAkB7/C,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIF,EAAG2B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGH,GAAIwD,EAAS,MAAL5B,EAAW6B,EAAItG,EAAEq+H,mBAAmB,CAACl+H,IAAKoG,EAAIpG,EACtP,GAAIkG,EAAG,CACL,GAAIC,EAAG,CACL,IAAIgF,EAAItL,EAAEyqH,QAAQ1qJ,IAAIwmC,EAAE44B,QAAQ9hE,OAAQkuC,EAAI,IAAIynB,MAAMnwB,GACtD,IAAK,IAAI8I,EAAI,EAAGA,EAAIJ,EAAE9sC,OAAQktC,IAC5BJ,EAAEI,GAAKxL,EAAEu9B,MAAMj5B,EAAEkH,IACnB,IAAIH,EAAImtH,GAAGrtH,EAAGnL,EAAEu9B,MAAOv9B,EAAE88B,MAAOx4B,EAAG8G,GACnChF,EAAIvG,EAAE41F,eAAerqF,EAAGpL,EAAE88B,OAC1B,IAAIxxB,EAAIzL,EAAEyqH,QAAQ1qJ,IAAIwmC,EAAE44B,QACxB1zB,EAAEpuC,OAASmuC,OAEXjF,EAAIk8H,GAAGtiI,EAAGsE,EAAGzE,GACfgD,EAAIpmB,GAAE0+F,iBAAiBt4E,EAAEvkC,OAAQokC,GAEnCjmB,GAAE27F,2BAA2B,MAAOv1E,EAAGH,GACvC,IAEI4G,GAFC9C,EAAG8D,GAAK7tB,GAAE+8F,0BAA0BpzE,EAAEm3B,MAAO16B,GAAI0H,EAAI/D,EAG1D,GAFA/D,IAAM8H,EAAI9tB,GAAEs9F,qBAAqBvzE,EAAG7D,IAEhCwD,EAAG,CACL,IAAIgF,EAAItL,EAAEyqH,QAAQ1qJ,IAAIwmC,EAAE44B,QAAQ9hE,OAAQkuC,EAAIwrH,GAAGzrH,EAAG1O,GAAEi+B,cAAcpwB,GAAIC,EAAGvK,EAAE88B,OAC3ExzB,EAAIzJ,EAAE41F,eAAelrF,EAAGvK,EAAE88B,OAC1B,IAAIzxB,EAAIxL,EAAEyqH,QAAQ1qJ,IAAI0pC,EAAE01B,QACxB3zB,EAAEnuC,OAASkuC,OAEX9B,EAAIksI,GAAGpvI,EAAGkE,EAAGC,EAAG1K,GAClB,OAAOqG,GAAKrG,EAAE88F,8BAA8Bv2F,GAAIkD,EAElD,IAAIosI,GAAK,CAAE3+G,WAAY7oD,GAAI8oD,YAAa,QAASuO,WAAYkwG,IACzDE,GAAMrW,GAAK,0BAGXsW,GAAM,iNAKJpW,GAAK,uBAGPqW,GAAMjV,GAAG,CAAEH,UAAWkV,GAAKjV,gBAAiBkV,GAAKjV,cAAe9J,KAChEif,GAAK,CAAE/+G,WAAYjoD,GAAIkoD,YAAa,QAASuO,WAAYswG,IAC7D,SAASE,GAAIt2I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EACzDs4G,GAAGh4G,EAAG,WACN,IAAM85C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EACvEpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAGI,GAAI,IAAM,wEAAwEJ,oBAAoBI,MACnJ,IAAIyB,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GACjD,GAAsB,IAAlB2B,EAAEuzC,aAAwC,IAAnBvzC,EAAEszC,cAAsBn7C,GAAEy6B,YAAY5yB,EAAE4zC,QAAS5zC,EAAE6zC,UAC5E,OAAOwnF,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAIqG,EAAI,IAAI2/H,GAAGvhI,EAAG,OAAO,GACzB,OAAOzE,EAAE48H,gBAAgBv2H,EAAG,CAAClG,GAAIA,EAAE88B,OAErC,IAAIk5G,GAAK,CAAEj/G,WAAY3oD,GAAI4oD,YAAa,QAASuO,WAAYwwG,IAC7D,SAASE,GAAIx2I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI,CAAC,EAAG,EAAG,GAAI4B,EAAIzpB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG6B,EAAG5B,EAAGG,EAAGF,GAAIwD,EAAI,IAAI2/H,GAAG5/H,EAAG,OAAO,GACnO,OAAOrG,EAAE48H,gBAAgBt2H,EAAG,CAACnG,GAAIA,EAAE88B,OAErC,IAAIo5G,GAAK,CAAEn/G,WAAYzoD,GAAI0oD,YAAa,QAASuO,WAAY0wG,IACzDE,GAAK,MACP,YAAYz2I,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,UAAWnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QAC7D,IAAIr4C,EAAIH,EAAGg4C,aAAc33C,EAAIL,EAAGi4C,YAAa33C,EAAIN,EAAGs4C,eAAgBx1C,EAAI9C,EAAGo4C,sBAAuBr1C,EAAI/C,EAAGq4C,qBAAsBr1C,EAAIF,EAAI,EAAI9C,EAAGs3C,QAAQgC,IAAKr2C,EAAIF,EAAI,EAAI/C,EAAGs3C,QAAQz5E,KAAMslC,EAAIL,EAAIC,EAAI,EACpMrkC,KAAK0pJ,SAAW,oCACaplH,MAAMC,kdAcPH,uBACdxC,uDAC8BH,6CAEZH,EAAGu3C,6IAKLx0C,+DACgB1C,+CAEZL,EAAGw3C,uNAOTr0C,2LAIKJ,mMAWjC2zI,GAAK,MACP,YAAY12I,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,UAAWnsJ,KAAK+5F,YAAcz4D,EAAGw4C,QAC7D,IAAIr4C,EAAIH,EAAG84C,YAAaz4C,EAAIL,EAAGg4C,aAAc13C,EAAIN,EAAGi4C,YAAan1C,EAAI9C,EAAGi5C,cAAel2C,EAAI/C,EAAGs4C,eAAgBt1C,EAAIhD,EAAGu4C,cAAet1C,EAAIjD,EAAGg5C,qBAAsB71C,EAAInD,EAAGo4C,sBAAuBxzC,EAAI5E,EAAGq4C,qBAAsB7xC,EAAIvD,EAAI,EAAIjD,EAAGs3C,QAAQoC,MAAOjzC,EAAItD,EAAI,EAAInD,EAAGs3C,QAAQgC,IAAK5yC,EAAI9B,EAAI,EAAI5E,EAAGs3C,QAAQz5E,KAAMipC,EAAI7D,EAAIE,EAAIyB,EAAI,EACnUlmC,KAAK0pJ,SAAW,oCACa5hH,MAAMC,MAAMC,wiBAiBbzD,wBACbH,uDAC6B3C,6CAEZH,EAAG24C,4IAKLx1C,2BACZJ,yDAC4B1C,+CAEZL,EAAGu3C,sKAML3yC,6BACZ5B,2DAC4B1C,iDAEZN,EAAGw3C,8OAOT1wC,kPAMT3D,OAAOyB,+BACPA,sNAYzB,SAAS+xI,GAAI52I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,GAAKs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAI,CAAC,EAAG,EAAG,GAAIC,EAAI1pB,GAAEi9F,kBAAkBj3E,EAAE86B,MAAO76B,EAAGC,EAAGuD,EAAGrD,EAAGyB,GAAI8B,EAAI,IAAI0/H,GAAG3/H,EAAG,OAAO,GAAOK,EAAI3G,EAAE48H,gBAAgBr2H,EAAG,CAAC3D,GAAIA,EAAEq6B,OAAQxyB,EAAI,IAAI8rI,GAAGjwI,GAAIoE,EAAI1K,EAAE48H,gBAAgBnyH,EAAG,CAACtK,EAAGwG,GAAI/D,EAAEq6B,OACpU,OAAOj9B,EAAE88F,8BAA8Bn2F,GAAI+D,EAE7C,IAAI+rI,GAAK,CAAEv/G,WAAYvoD,GAAIwoD,YAAa,QAASuO,WAAY8wG,IAC7D,SAASE,GAAI92I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,EAAG6sG,OAAQ5sG,GAAM/C,EAAIgD,EAAIF,EACvFw1G,GAAG,CAACx1G,EAAGC,GAAI,eACX,IAAMq3C,WAAYn3C,EAAG47B,QAAS17B,EAAGjU,IAAK0V,EAAGy1C,gBAAiB7zC,GAAMnG,EAAGoG,EAAI1pB,GAAEg9F,kBAAkB/2E,EAAE66B,MAAO56B,EAAGE,EAAG,EAAGyB,EAAG4B,GAAIE,GAAI,EAAMI,EAAI,IAAIq/H,GAAG1/H,EAAG,MAAOC,GAAIkE,EAAIzK,EAAE48H,gBAAgBj2H,EAAG,CAAC9D,GAAIA,EAAEo6B,OAAQvyB,EAAI,IAAI4rI,GAAGhwI,GAAImD,EAAIzJ,EAAE48H,gBAAgBlyH,EAAG,CAACvK,EAAGsK,GAAI5H,EAAEo6B,OACjP,OAAOj9B,EAAE88F,8BAA8BryF,GAAIhB,EAE7C,IAAIktI,GAAK,CAAEz/G,WAAYroD,GAAIsoD,YAAa,QAASuO,WAAYgxG,IAC7D,SAASE,GAAGh3I,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAI,IAAI6lI,GAAGhmI,EAAG,OAAO,GAAQ2C,EAAIzC,EAAE08H,gBAAgBz8H,EAAG,CAACP,GAAI,WAC/DO,EAAI,IAAI6lI,GAAGhmI,EAAG,OAAO,GAAM,EAAMH,GACjC,IAAI+C,EAAI1C,EAAE08H,gBAAgBz8H,EAAG,CAACP,GAAI,WAClC,MAAO,CAAC+C,EAAGC,GAEb,IAAIi0I,GAAK,CAAE3/G,WAAYnoD,GAAIooD,YAAa,QAASuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC7F,IAAMyJ,EAAGvJ,GAAMN,GAAKq6C,WAAY95C,EAAGu+B,QAAS/7B,EAAG5T,IAAK6T,EAAG8lD,oBAAqB7lD,GAAMhD,EAAIiD,EAAI9C,EAC1FpD,GAAE26B,OAA0B,IAAnBr3B,EAAEw9B,MAAMj/D,OAAc,IAAM,uDAAuDyhC,EAAEw9B,MAAMj/D,WACpG,IAAIukC,EAAI,CAAC,EAAG,GACZpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Bt3E,EAAGK,GAAI,IAAM,wEAAwEL,oBAAoBK,MACnJ,IAAIyB,EAAI7nB,GAAEg9F,kBAAkB15E,EAAEw9B,MAAOv9B,EAAGwC,EAAGK,EAAGJ,IAAKyD,EAAGC,GAAKswI,GAAG12I,EAAG2C,EAAG4B,EAAG3B,GACvE,MAAO,CAACuD,EAAGC,KAEb,SAASwwI,GAAGl3I,EAAGC,EAAIG,EAAGE,GACpB,IAAIC,EAAIvD,GAAEi+B,cAAch7B,GAAK+C,EAAIhG,GAAEi+B,cAAcj7B,EAAE89B,OAASv9B,EAAG0C,EAAI++H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7J,GAAK2lC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGzC,IAAM1jB,QAASyjB,IAAM4C,EAAIu/H,GAAGx/H,EAAG,UAAW,OAAQ3C,GAAI8C,EAAI4+H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG3G,GAAKyiC,MAAO,CAAE7H,MAAO19B,GAAKvjB,QAASyjB,IAC7N,OAAOA,EAAE48F,8BAA8Bj6F,GAAI3C,EAAE48F,8BAA8Bh6F,GAAIE,EAEjF,IAAI+zI,GAAK,CAAE7/G,WAAY/nD,GAAIgoD,YAAa,QAASuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC7F,IAAMyJ,EAAGvJ,GAAMN,GAAK41C,SAAUr1C,EAAGo1C,KAAM5yC,GAAM9C,EAAI+C,EAAI5C,EAAG6C,EAAI3C,EAAEw9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGzC,EAAEw9B,OAAQ16B,EAAIF,EAAG2B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGH,GAAIwD,EAAS,MAAL5B,EAAW6B,EAAI1D,EAAEy7H,mBAAmB,CAACn+H,IAAKqG,EAAI,GAAII,EAAIzG,EAC/M,GAAImG,EAAG,CACL,GAAIC,EAAG,CACL,IAAIiF,EAAI3I,EAAE6nH,QAAQ1qJ,IAAI4mC,EAAEw4B,QAAQ9hE,OAAQmuC,EAAI,IAAIwnB,MAAMnwB,GACtD,IAAK,IAAI+I,EAAI,EAAGA,EAAIJ,EAAE/sC,OAAQmtC,IAC5BJ,EAAEI,GAAK1L,EAAEw9B,MAAMj5B,EAAEmH,IACnB,IAAIH,EAAIktH,GAAGptH,EAAGrL,EAAEw9B,MAAOx9B,EAAE+8B,MAAOx4B,EAAG+G,GACnC7E,EAAI/D,EAAEgzF,eAAepqF,EAAGtL,EAAE+8B,OAC1B,IAAItxB,EAAI/I,EAAE6nH,QAAQ1qJ,IAAI4mC,EAAEw4B,QACxBxzB,EAAEtuC,OAASouC,OAEX9E,EAAI87H,GAAGviI,EAAGuE,EAAG7B,GACf2D,EAAE6D,KAAKzD,GAAI3D,EAAIpmB,GAAE0+F,iBAAiBt4E,EAAEvkC,OAAQokC,GAE9CjmB,GAAE27F,2BAA2B,MAAOv1E,EAAGH,GACvC,IAAK4H,EAAGC,GAAK9tB,GAAE+8F,0BAA0BhzE,EAAE+2B,MAAO16B,GAAIyG,EAAIgB,EAC1DtK,IAAMsJ,EAAI7sB,GAAEs9F,qBAAqBzvE,EAAG3H,IACpC,IAAIkI,EAAI8rI,GAAGnwI,EAAG+D,EAAGjB,EAAG7G,GACpB,IAAK,IAAI0I,KAAK/E,EACZ3D,EAAEk6F,8BAA8BxxF,GAClC,OAAON,IAET,SAASgsI,GAAIp3I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAIlG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ16B,EAAIF,EAAG2B,EAAI7nB,GAAE+9F,mBAAmB33E,EAAGH,GAAIwD,EAAIlG,EACvL,MAALsE,IAAc4B,EAAIw8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQzB,EAAIpmB,GAAE0+F,iBAAiBt4E,EAAEvkC,OAAQ0hC,EAAEu9B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,MAAOv1E,EAAGH,GACtK,IAAiL4G,GAA5KnD,EAAGC,GAAK3pB,GAAE+8F,0BAA0BtzE,EAAEq3B,MAAO16B,GAAI2D,EAAI/J,GAAEi+B,cAAct0B,GAAIkE,EAAIm3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAG/2B,MAAS+D,EAAI23H,GAAG53H,EAAGA,EAAEwyB,MAAO,MAAOj9B,GAC7K,GAAI4C,EAAG,CACL,IAAIoI,EAAIpuB,GAAEs9F,qBAAqB5zE,EAAGxD,GAClC2G,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO1yB,UAEvDvB,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KACzD,OAAOtG,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8BpyF,GAAS,MAALjG,GAAazE,EAAE88F,8BAA8Bz2F,GAAIoD,EAElI,IAAIwtI,GAAK,CAAE//G,WAAY7nD,GAAI8nD,YAAa,QAASuO,WAAYsxG,IACzDE,GAAMzX,GAAK,0BAGX0X,GAAM,iNAKJxX,GAAK,uBAGPyX,GAAMrW,GAAG,CAAEH,UAAWsW,GAAKrW,gBAAiBsW,GAAKrW,cAAe7J,KAChEogB,GAAK,CAAEngH,WAAY3nD,GAAI4nD,YAAa,QAASuO,WAAY0xG,IACzDE,GAAK,MACP,YAAYz3I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAACruB,EAAG4B,IAAM5B,EAAE,GAAK5E,EAAGwG,GAAK5B,EAAE,IAChF,IAAItE,EAAIN,EAAGphC,OAAQkkC,EAAI2nH,GAAGnqH,GAAIyC,EAAI5C,EAAE8yB,IAAKruB,GAAMA,EAAE,IAAIwxB,KAAK,KAAMpzB,EAAI7C,EAAE8yB,IAAI,CAACruB,EAAG4B,IAAM5B,EAAE,GAAK5E,EAAGwG,IAAI4vB,KAAK,KAAMnzB,EAAI,CAAC,YAAa,YAAa,YAAa,aAAavM,MAAM,EAAG4J,GAAI6C,EAAU,YAAN9C,EAAkB,EAAI,EAkB7M3hC,KAAK0pJ,SAjBK,IAAN9nH,EAiBY,WACZwC,aAAaA,KAAKC,cAClBD,WAAWA,KAAKE,uCAGdF,4DACoBxC,kGAEmB6C,oGAEIA,uCAG3CL,oDACeG,sBA9BH,yBACAF,yBACFC,8IAKoBG,qFAEIA,iFA0BxCu0I,GAAK,MACP,YAAY13I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAACnsB,EAAG8D,IAAM9D,EAAE,GAAK9G,EAAG4K,GAAK9D,EAAE,IACpI,IAAIxG,EAAIN,EAAGphC,OAAQkkC,EAAI2nH,GAAGnqH,GAAIyC,EAAI5C,EAAE8yB,IAAKnsB,GAAMA,EAAE,IAAIsvB,KAAK,KAAMpzB,EAAI7C,EAAE8yB,IAAI,CAACnsB,EAAG8D,IAAM9D,EAAE,GAAK9G,EAAG4K,IAAIwrB,KAAK,KAAMnzB,EAAIg2H,GAAG,KAAM34H,GAAI6C,EAAI81H,GAAG,SAAU34H,GAAIsE,EAAI,GAAG3B,EAAE3C,EAAI,QAAQ5hC,KAAK+5F,YAAYn4D,EAAI,KAAMkG,EAAU,IAANlG,EAAU,SAAW,QAAQ6C,EAAEzM,OAAO,GAAG0/B,UAAW3vB,EAAU,YAANpG,EAAkB,EAAI,EAAGqG,EAAI,GAC5R,GAAU,IAANpG,EAAS,CACX,IAAIwG,EAAI,aACJhE,0FAEgC2D,wFAEIA,kDAIxCC,EAAI,aACA5D,8BACAgE,0CAC4B3D,EAAEizB,YAAY5vB,gBAC1CvD,EAAE3C,EAAI,wBACHsE,mBACDkC,4CAC4B3D,EAAEizB,YAAY5vB,6BAG3C,CACL,IAAIM,EAAI,aACJhE,2BACAA,UAAUA,wCACVA,WAAWA,8CACXA,0GAEmC2D,yDACKA,wCAG5CC,EAAI,aACA5D,8BACAgE,0CAC4B3D,EAAEizB,YAAY5vB,gBAC1CvD,EAAE3C,EAAI,wBACHsE,mBACDkC,4CAC4B3D,EAAEizB,YAAY5vB,oDAG5CvD,EAAE3C,EAAI,wBACH2C,EAAE3C,EAAI,QAAQ5hC,KAAK+5F,YAAYn4D,EAAI,oBACpCwG,4CAC4B3D,EAAEizB,YAAY5vB,kBAC1CvD,EAAE3C,EAAI,0BACHsE,qBACDkC,8CAC4B3D,EAAEizB,YAAY5vB,sCAKpD9nC,KAAK0pJ,SAAW,iBACNtlH,aAAaA,KAAKC,oBAClBD,WAAWA,KAAKE,uCAGpBF,8EAEA4D,iDAMNixI,GAAM,EAAGr6G,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MAC1C,IAAMyJ,EAAGvJ,GAAMN,GAAKwpD,SAAUjpD,EAAGkpD,KAAM1mD,GAAM3C,EAAG4C,EAAI1e,KAAIuxC,QAAQ,+BAAiC,IAAI8hH,GAAGr3I,EAAEw9B,MAAOv9B,EAAGwC,GAAK,IAAI20I,GAAGp3I,EAAEw9B,MAAOv9B,EAAGwC,GAC5I,OAAO9C,EAAG+8H,gBAAgBh6H,EAAG,CAAC1C,GAAIA,EAAE+8B,QAElCw6G,GAAK,CAAEvgH,WAAYznD,GAAI0nD,YAAa,QAASuO,WAAY8xG,IACzDE,GAAM,iDAENC,GAAM,yEAGJhY,GAAK,uBAGPiY,GAAM7W,GAAG,CAAEH,UAAW8W,GAAK7W,gBAAiB8W,KAC5CE,GAAK,CAAE3gH,WAAYvnD,GAAIwnD,YAAa,QAASuO,WAAYkyG,IACzDE,GAAK,MACP,YAAYj4I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,SAAUnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,OAAQw5E,KAAM,UAAY/6E,KAAK+5F,YAAc,CAACz4D,EAAIK,GAAI3hC,KAAK0pJ,SAAW,gMAQ3GjoH,EAAI,sPAURA,EAAI,wBAK1B+3I,GAAM,oDAKNC,GAAM,uTAmBNC,GAAKlX,GAAG,CAAEH,UAAWmX,GAAKlX,gBAAiBmX,GAAKhX,kBAAkB,IAClEkX,GAAK,CAAEhhH,WAAYjkD,GAAIkkD,YAAa,QAASuO,WAAYuyG,IACzDE,GAAK,gBACLC,GAAKrX,GAAG,CAAEH,UAAWuX,GAAItX,gBAAiBsX,GAAIlX,iBAAiB,EAAMH,cAAetI,KACpF6f,GAAK,CAAEnhH,WAAY7+C,GAAI8+C,YAAa,QAASuO,WAAY0yG,IAC7D,SAASE,GAAG14I,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMgkD,IAAKlhD,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe,CAAC53B,GAAIxC,EAAEu9B,OAAQ76B,EAAI+yI,GAAG,CAAEz4G,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEid,iBAAkB5/C,EAAG4yC,UAAU,KAAY1yC,EAAIlmB,GAAEs9F,qBAAqBr3E,EAAE66B,MAAO96B,GAAII,EAAI4+H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ2B,EAAI2zI,GAAG,CAAEj7G,OAAQ,CAAEv6B,EAAGzC,EAAG6K,EAAGhI,GAAKvmB,QAASujB,IAAMqG,EAAIspI,GAAG,CAAExyG,OAAQ,CAAE1zB,EAAGhF,GAAKhoB,QAASujB,IAAMsG,EAAIq8H,GAAG,CAAExlG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM3yC,EAAG4yC,UAAU,KAAYjvC,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ6D,EAAIsxI,GAAG,CAAE96G,OAAQ,CAAEv6B,EAAGyD,EAAG2E,EAAGzE,GAAK9pB,QAASujB,IAC1kB,OAAOA,EAAE88F,8BAA8Bj6F,GAAI7C,EAAE88F,8BAA8B95F,GAAIhD,EAAE88F,8BAA8Br4F,GAAIzE,EAAE88F,8BAA8Bz2F,GAAIrG,EAAE88F,8BAA8Bx2F,GAAItG,EAAE88F,8BAA8Bv2F,GAAII,EAEjO,IAAI4xI,GAAK,CAAErhH,WAAYjhD,GAAIkhD,YAAa,QAASuO,WAAY4yG,IAC7D,SAASE,GAAI54I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMkqD,WAAYpnD,EAAGqnD,KAAMpnD,EAAGqnD,WAAYpnD,GAAM3C,EAAG4C,EAAID,EAAI1C,EAAIm4I,GAAG,CAAEn7G,OAAQ,CAAE2sB,OAAQ3pD,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,EAAEu9B,MAAMj/D,OAAS,KAAQukC,EAAIF,EAAE46B,MAAM,GAAIj5B,EAAI3B,EAAE46B,MAAM,GAAIr3B,EAAI,IAAIyxI,GAAG90I,EAAGyB,EAAG9B,GAAI2D,EAAI,CAAC,CAAC1D,IAAK2D,EAAIvG,EAAE48H,gBAAgBv2H,EAAG,CAACvD,GAAI,QAASwD,GACnT,OAAOzD,GAAK7C,EAAE88F,8BAA8Bh6F,GAAIyD,EAElD,IAAIkyI,GAAK,CAAEvhH,WAAYnnD,GAAIonD,YAAa,QAASuO,WAAY8yG,IACzDE,GAAMne,GAAK,mBAGXoe,GAAM,2OAWV,SAASC,GAAIh5I,GACX,IAKIO,GALEg9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAIG,EAAEq+H,mBAAmB,CAACn+H,IAAK,CAC7B,IAAIyC,EAAI3C,EAAEyqH,QAAQ1qJ,IAAImgC,EAAEi/B,SAAUv8B,EAAGC,GAAKs0H,GAAGx0H,EAAEtlC,OAAQ6iC,EAAEw9B,MAAOx9B,EAAE+8B,OAClE,OAAOj9B,EAAE41F,eAAe/yF,EAAG3C,EAAE+8B,MAAOr6B,GAGtC,OAAoDzC,EAA7Cjc,KAAIuxC,QAAQ,+BAAqC,IAAI2lG,GAAGl7H,EAAEw9B,MAAOi7G,IAAW,IAAIlxI,GAAGvH,EAAEw9B,MAAOg7G,IAAM14I,EAAE48H,gBAAgBz8H,EAAG,CAACD,GAAIA,EAAE+8B,OAEvI,IAAI47G,GAAK,CAAE3hH,WAAY/mD,GAAIgnD,YAAa,QAASuO,WAAYkzG,IACzDE,GAAM9vJ,GAAG22F,wBACb,SAASo5D,GAAIn5I,GACXhjB,GAAEs1B,KAAK,iGACP,IAAMirB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,GAAM5C,EAAG8C,EAAIhD,EAAEw/B,SAASr/B,EAAEg/B,QAAS16B,EAAIzE,EAAEw/B,SAAS78B,EAAEw8B,SAAWg/B,gBAAiB93D,GAAMyyI,GAAI91I,EAAGyB,EAAG7B,EAAGC,EAAGC,GACvO,OAAO9C,EAAE41F,eAAe,CAACvvF,EAAE5nC,QAAS,QAAS,IAAI01C,WAAW9N,IAE9D,IAAI2yI,GAAK,CAAE9hH,WAAY7mD,GAAI8mD,YAAa,QAASuO,WAAYqzG,IACzDE,GAAMjwJ,GAAG42F,wBACb,SAASs5D,GAAIt5I,GACXhjB,GAAEs1B,KAAK,iGACP,IAAMirB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,EAAGg8D,mBAAoB97D,GAAM9C,EAAGuE,EAAIzE,EAAEw/B,SAASr/B,EAAEg/B,QAAS94B,EAAIrG,EAAEw/B,SAAS78B,EAAEw8B,SAAWg/B,gBAAiB73D,EAAG+3D,aAAc93D,GAAM0yI,GAAIx0I,EAAG4B,EAAGzD,EAAGC,EAAGC,EAAGE,GAClR,MAAO,CAAChD,EAAE41F,eAAe,CAACtvF,EAAE7nC,QAAS,QAAS,IAAI01C,WAAW7N,IAAKtG,EAAE41F,eAAe,GAAI,QAAS,IAAIzhF,WAAW,CAAC5N,MAElH,IAAI4yI,GAAK,CAAEjiH,WAAY3mD,GAAI4mD,YAAa,QAASuO,WAAYwzG,IACzDE,GAAMpwJ,GAAG62F,wBACb,SAASw5D,GAAIz5I,GACXhjB,GAAEs1B,KAAK,iGACP,IAAMirB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,EAAGk6D,aAAch6D,GAAM9C,EAAGuE,EAAIzE,EAAEw/B,SAASr/B,EAAEg/B,QAAS94B,EAAIrG,EAAEw/B,SAAS78B,EAAEw8B,QAAS74B,EAAI1D,EAAG2D,EAAI1D,EAAG8D,EAAI7D,EAAG2H,EAAIzH,GAAKm7D,gBAAiBzzD,EAAG0zD,eAAgB30D,GAAM2vI,GAAI30I,EAAG4B,EAAGC,EAAGC,EAAGI,EAAG8D,GAC1S,MAAO,CAACzK,EAAE41F,eAAe,CAAClrF,EAAEjsC,QAAS,QAAS,IAAI01C,WAAWzJ,IAAK1K,EAAE41F,eAAe,CAACnsF,EAAEhrC,QAAS,UAAW,IAAIi2C,aAAajL,KAE7H,IAAI6vI,GAAK,CAAEpiH,WAAYzmD,GAAI0mD,YAAa,QAASuO,WAAY2zG,IACzDE,GAAK,MACP,YAAY15I,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,WAAYnsJ,KAAK+5F,YAAc,CAACz4D,EAAIG,GAAIzhC,KAAK0pJ,SAAW,mJAIpD9nH,aAAaD,0EAMvCs5I,GAAO55I,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,GAAMN,GAAMo9B,MAAOt6B,EAAG2nD,MAAO1nD,EAAG2nD,QAAS1nD,EAAG2nD,SAAU1nD,GAAM5C,EAAG8C,EAAIpG,GAAEi+B,cAAc16B,EAAEu9B,OAAQj5B,EAAI,IAAI80I,GAAGv2I,EAAGJ,EAAGC,EAAGC,GAAIuD,EAAIu7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,MAASsD,EAAItG,EAAE48H,gBAAgBn4H,EAAG,CAAC4B,GAAI1D,GAC7Q3C,EAAE88F,8BAA8Bz2F,GAChC,IAAIE,EAAI,IAAIpG,EAAEu9B,MAAO96B,GAAI+D,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOn3B,KAChF,OAAOvG,EAAE88F,8BAA8Bx2F,GAAIK,GAEzC8yI,GAAK,CAAEviH,WAAYnmD,GAAIomD,YAAa,QAASuO,WAAY8zG,IAC7D,SAASE,GAAG95I,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,cAAZK,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAImoI,GAAG,CAAEnrG,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAI+2I,GAAG,CAAEv8G,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAI8mI,GAAG,CAAEvsG,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAI62I,GAAG,CAAEv8G,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAIk9H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE88F,8BAA8B38F,GAAIH,EAAE88F,8BAA8Bn6F,GAAI3C,EAAE88F,8BAA8Bl6F,GAAI5C,EAAE88F,8BAA8Bj6F,GAAIC,EAEvJ,OAAOytI,GAAG,CAAEhrG,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,MAAOz9D,MAAmB,WAAZ0gC,EAAE+8B,MAAqB,GAAK,GAAKxgD,QAASujB,IAE1G,IAAI25I,GAAK,CAAEziH,WAAY38C,GAAI48C,YAAa,QAASuO,WAAYg0G,IAC7D,SAASE,GAAGh6I,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,WAAZK,EAAE+8B,MACJ,MAAM,IAAIz6B,MAAM,gDAClB,GAAgB,cAAZtC,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAImoI,GAAG,CAAEnrG,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAIi3I,GAAG,CAAEz8G,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAI8mI,GAAG,CAAEvsG,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAI62I,GAAG,CAAEv8G,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAIk9H,GAAG,CAAE7iG,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE88F,8BAA8B38F,GAAIH,EAAE88F,8BAA8Bn6F,GAAI3C,EAAE88F,8BAA8Bl6F,GAAI5C,EAAE88F,8BAA8Bj6F,GAAIC,EAEvJ,OAAOytI,GAAG,CAAEhrG,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,MAAOz9D,MAAO,GAAKid,QAASujB,IAE9E,IAAI65I,GAAK,CAAE3iH,WAAYjmD,GAAIkmD,YAAa,QAASuO,WAAYk0G,IAC7D,SAASE,GAAIl6I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAC5D,GAAkB,IAAdL,EAAGphC,OACL,OAAOoxK,GAAG,CAAE1yG,OAAQ,CAAEymB,MAAO/jD,EAAG,IAAMpjB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAClE,IAAIwC,EAAI9C,EAAG,GAAG69B,MAAO96B,EAAI/C,EAAG,GAAGo9B,MAC/Bp9B,EAAGqY,QAASzT,IACV7H,GAAE86B,kBAAkB/0B,EAAG8B,EAAEi5B,MAAO,yDAA0D9gC,GAAE26B,OAAO30B,IAAM6B,EAAEw4B,MAAO,IAAM,2DAE1H,IAAIp6B,EAAI,GAAIC,EAAIjD,EAAGizB,IAAKruB,IACtB,IAAI4B,EAAIwpI,GAAG,CAAE1yG,OAAQ,CAAEymB,MAAOn/C,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAC7D,OAAO0C,EAAEuH,KAAK/D,GAAIA,IAChBrD,EAAI+mI,GAAG,CAAE5sG,OAAQr6B,EAAGrmB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMp1C,KACnD,OAAO0C,EAAEqV,QAASzT,GAAMzE,EAAE88F,8BAA8Br4F,IAAKzB,EAE/D,IAAI+2I,GAAK,CAAE7iH,WAAY3lD,GAAI4lD,YAAa,QAASuO,WAAYo0G,IACzDE,GAAK,MACP,YAAYn6I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASw5E,KAAM,UAAY/6E,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAAC9vB,EAAGyB,IAAMzB,EAAE,GAAKnD,EAAG4E,GAAKzB,EAAE,IAC1I,IAAI7C,EAAIN,EAAGphC,OAAQkkC,EAAI2nH,GAAGnqH,GAAIyC,EAAI5C,EAAE8yB,IAAK9vB,GAAMA,EAAE,IAAIizB,KAAK,KAAMpzB,EAAI7C,EAAE8yB,IAAI,CAAC9vB,EAAGyB,IAAMzB,EAAE,GAAKnD,EAAG4E,IAAIwxB,KAAK,KAAMnzB,EAAI,CAAC,YAAa,YAAa,YAAa,aAAavM,MAAM,EAAG4J,GAiB/K5hC,KAAK0pJ,SAhBK,IAAN9nH,EAgBY,WACZwC,aAAaA,KAAKC,cAClBD,WAAWA,KAAKE,uCAGdF,wKAIEA,sDACeG,iCAzBL,yBACAF,yBACFC,sPA6BhBo3I,GAAK,MACP,YAAYp6I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,QAASw5E,KAAM,UAAY/6E,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAACroB,EAAGC,IAAMD,EAAE,GAAK5K,EAAG6K,GAAKD,EAAE,IAC9L,IAAItK,EAAIN,EAAGphC,OAAQkkC,EAAI2nH,GAAGnqH,GAAIyC,EAAI5C,EAAE8yB,IAAKroB,GAAMA,EAAE,IAAIwrB,KAAK,KAAMpzB,EAAI7C,EAAE8yB,IAAI,CAACroB,EAAGC,IAAMD,EAAE,GAAK5K,EAAG6K,IAAIurB,KAAK,KAAMnzB,EAAIg2H,GAAG,KAAM34H,GAAI6C,EAAI81H,GAAG,SAAU34H,GAAIsE,EAAI,GAAG3B,EAAE3C,EAAI,QAAQ5hC,KAAK+5F,YAAYn4D,EAAI,KAAMkG,EAAU,IAANlG,EAAU,SAAW,QAAQ6C,EAAEzM,OAAO,GAAG0/B,UAAW3vB,EAAI,CAAI3D,EAAH,mBAAwB,GAAGG,EAAE3C,EAAI,uBACzRsE,eACG,IAANtE,EAAU,GAAK,qCAEf2C,EAAE3C,EAAI,uBACH2C,EAAE3C,EAAI,QAAQ5hC,KAAK+5F,YAAYn4D,EAAI,QAAe,IAANA,EAAU,GAAK,KAAK2C,EAAE3C,EAAI,yBACpEsE,QAAS8B,EAAU,IAANpG,EAAU,0BAA4B,6DAA8DwG,EAAI,GAC/H,IAAK,IAAI8D,EAAI,EAAGC,EAAU,IAANvK,EAAU,EAAI,EAAGsK,EAAIC,EAAGD,IAC1C9D,GAAK,aACDL,EAAEmE,mBACElE,0BACKkE,mDAEP9H,4CACO8H,wBAAwBzH,EAAEizB,YAAY5vB,yBAGrDM,GAAW,IAANxG,EAAU,KAAO,KAAM5hC,KAAK0pJ,SAAW,iBAClCtlH,aAAaA,KAAKC,oBAClBD,WAAWA,KAAKE,uCAGpBF,8EAEAgE,iDAMNuzI,GAAMt6I,IACR,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMupD,SAAUzmD,EAAGooD,cAAenoD,GAAM1C,EACjG,GAAiC,IAA7BtD,GAAEi+B,cAAc16B,EAAEu9B,OAAc,CAClC,IAAI16B,EAAIL,EAAEmwB,IAAI,CAACruB,EAAG4B,IAAM5B,EAAE,GAAKtE,EAAEu9B,MAAMr3B,GAAK5B,EAAE,IAC9C,OAAO8rI,GAAG,CAAE9zJ,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,EAAGxjC,MAAOojC,EAAGq6B,MAAO98B,EAAE88B,SAEhE,IAAIp6B,EAAI3e,KAAIuxC,QAAQ,+BAAiC,IAAIwkH,GAAG95I,EAAEu9B,MAAO/6B,EAAGC,GAAK,IAAIo3I,GAAG75I,EAAEu9B,MAAO/6B,EAAGC,GAAIE,EAAI,CAAC,CAACF,IAC1G,OAAO5C,EAAE48H,gBAAgB/5H,EAAG,CAAC1C,GAAIA,EAAE88B,MAAOn6B,IAExCq3I,GAAK,CAAEjjH,WAAYzlD,GAAI0lD,YAAa,QAASuO,WAAYw0G,IACzDE,GAAM,4LAUNC,GAAM,8vBAgBJ1a,GAAK,uBAGP2a,GAAMvZ,GAAG,CAAEH,UAAWwZ,GAAKvZ,gBAAiBwZ,KAC5CE,GAAK,CAAErjH,WAAYrlD,GAAIslD,YAAa,QAASuO,WAAY40G,IAC7D,SAASE,GAAI56I,GACX,IAEI2G,GAFE42B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,GAAIE,EAAIpG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQj5B,EAAIzB,EAAGqD,EAAIzpB,GAAE+9F,mBAAmBl2E,EAAG5B,GAAIyD,EAAInG,EAGpM,GAFK,MAALkG,IAAcC,EAAIu8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMvxD,KAAQ5B,EAAI7nB,GAAE0+F,iBAAiB72E,EAAEhmC,OAAQokC,GAAIC,EAAEsH,KAAK9D,IAAK1pB,GAAE27F,2BAA2B,OAAQ9zE,EAAG5B,GAEjK7C,EAAEq+H,mBAAmB,CAAC/3H,IAAK,CAC7B,IAAIK,EAAI3G,EAAEyqH,QAAQ1qJ,IAAIumC,EAAE64B,QAAQ9hE,QAAUyiI,QAASr1F,EAAG6tC,SAAU5tC,EAAGq1F,SAAUt2F,GAAM4tH,GAAG/wH,EAAEo3B,MAAOp3B,EAAE22B,MAAOt2B,EAAGlC,GAC3G8B,EAAIvG,EAAE41F,eAAelrF,EAAGjB,EAAGgB,OACtB,CACL,IAAK9D,EAAG8D,GAAK7tB,GAAE+8F,0BAA0BrzE,EAAEo3B,MAAOj5B,GAAIiG,EAAI9N,GAAEi+B,cAAcpwB,GAAIhB,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAGhzB,MAASM,EAAI1R,GAAG6G,EAAE88B,OAAQ3xB,EAAI+2H,GAAG54H,EAAGuB,EAAG,OAAQhL,GACzLuG,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAAQ7D,EAAEsH,KAAKX,GAAI3G,EAAEsH,KAAKkB,GAEnF,GAAI1I,EAAG,CACLE,EAAEsH,KAAK7D,GACP,IAAII,EAAI/pB,GAAEs9F,qBAAqB3zE,EAAEm3B,MAAO16B,GACxCuD,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAEzD,OAAO7D,EAAEoV,QAASvR,GAAM3G,EAAE88F,8BAA8Bn2F,IAAKJ,EAE/D,IAAIk0I,GAAK,CAAEvjH,WAAYjlD,GAAIklD,YAAa,QAASuO,WAAY80G,IAC7D,SAASE,GAAI96I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwsD,mBAAoBjsD,EAAGksD,kBAAmB1pD,EAAG8hD,QAAS7hD,GAAM/C,GAAMysD,iBAAkBzpD,GAAM3C,EAAG4C,EAAI3C,EAAE2yB,IAAKrpB,GAAMzJ,EAAEw/B,SAAS/1B,EAAE01B,SAAUn8B,EAAI7C,EAAE2yB,IAAKrpB,GAAMA,EAAEi0B,OAAQj5B,EAAIzE,EAAEw/B,SAAS78B,EAAEw8B,QAAS94B,EAAIrG,EAAEw/B,SAAS58B,EAAEu8B,SAAU74B,EAAGC,EAAGI,GAAK2wH,GAAGx0H,EAAGE,EAAGyB,EAAG9B,EAAE+6B,MAAO/6B,EAAEs6B,MAAO52B,EAAGzD,EAAE86B,MAAO76B,GAAI4H,EAAInE,EAAEwsB,IAAKrpB,GAAMzJ,EAAE41F,eAAe,CAACnsF,EAAEhrC,QAAS,QAASgrC,IAAKiB,EAAI1K,EAAE41F,eAAejvF,EAAGhE,EAAEs6B,MAAO12B,GAC3Z,OAAOkE,EAAEtrB,OAAO,CAACurB,IAEnB,IAAIiwI,GAAK,CAAEzjH,WAAY7kD,GAAI8kD,YAAa,QAASuO,WAAYg1G,IAC7D,SAASE,GAAIh7I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK+sD,OAAQzsD,EAAG0sD,OAAQzsD,EAAG0sD,OAAQlqD,GAAM9C,EAAI+C,EAAI5C,EAAEw/B,SAASt/B,EAAEi/B,QAASt8B,EAAI7C,EAAEw/B,SAASr/B,EAAEg/B,QAASr8B,EAAI9C,EAAEw/B,SAAS78B,EAAEw8B,SAAUn8B,EAAGyB,GAAK8yH,GAAG30H,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAG1C,EAAEu9B,MAAO56B,EAAGH,EAAE+6B,OAAQr3B,EAAIrG,EAAE41F,eAAe,CAAC5yF,EAAEvkC,QAAS,QAASukC,GAAIsD,EAAItG,EAAE41F,eAAe,CAACnxF,EAAEhmC,QAASyhC,EAAE+8B,MAAOx4B,GAC9S,MAAO,CAAC4B,EAAGC,GAEb,IAAIu0I,GAAK,CAAE3jH,WAAY3kD,GAAI4kD,YAAa,QAASuO,WAAYk1G,IAC7D,SAASE,GAAIl7I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK89B,MAAOv9B,EAAG9iC,OAAQslC,EAAGuqD,aAActqD,EAAGuqD,oBAAqBtqD,GAAMhD,GAAMutD,kBAAmBtqD,GAAM5C,EAAG8C,EAAIhD,EAAEw/B,SAASr/B,EAAEg/B,QAAS16B,EAAIzE,EAAEw/B,SAAS78B,EAAEw8B,QAAS94B,EAAIrG,EAAEw/B,SAAS58B,EAAEu8B,QAAS74B,EAAIzD,EAAEiwB,IAAKpoB,GAAM1K,EAAEw/B,SAAS90B,EAAEy0B,SAAU54B,EAAI1D,EAAEiwB,IAAKpoB,GAAMA,EAAEgzB,QAAS/2B,EAAG8D,GAAK+sH,GAAGx0H,EAAG7C,EAAEu9B,MAAOj5B,EAAG9B,EAAE+6B,MAAO/6B,EAAEs6B,MAAO52B,EAAGzD,EAAE86B,MAAOp3B,EAAGC,EAAGzD,GACnW,OAAO9C,EAAE41F,eAAejvF,EAAGhE,EAAEs6B,MAAOxyB,GAEtC,IAAIswI,GAAK,CAAE7jH,WAAYzkD,GAAI0kD,YAAa,QAASuO,WAAYo1G,IACzDE,GAAMp7I,IACR,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAGxH,KAAMgK,EAAGs6B,MAAOr6B,GAAM5C,EAAG6C,EAAI40H,GAAGv3H,EAAGC,EAAGwC,EAAGC,GACjG,OAAO/C,EAAG+1F,eAAe,CAAC/yF,EAAEpkC,QAASmkC,EAAGC,IAEtCo4I,GAAK,CAAE/jH,WAAYvkD,GAAIwkD,YAAa,QAASuO,WAAYs1G,IACzDE,GAAM,kBACNC,GAAMxa,GAAG,CAAEC,UAAWsa,KACtBE,GAAK,CAAElkH,WAAY/jD,GAAIgkD,YAAa,QAASuO,WAAYy1G,IACzDE,GAAM9gB,GAAK,oCAGX50H,GAAM,iRAWN21I,GAAM3a,GAAG,CAAEC,UAAWya,GAAKxa,gBAAiBl7H,KAC5C41I,GAAK,CAAErkH,WAAY3jD,GAAI4jD,YAAa,QAASuO,WAAY41G,IACzDE,GAAMjhB,GAAK,8CAGXkhB,GAAM,gSAWNC,GAAM/a,GAAG,CAAEC,UAAW4a,GAAK3a,gBAAiB4a,KAC5CE,GAAK,CAAEzkH,WAAYzjD,GAAI0jD,YAAa,QAASuO,WAAYg2G,IACzDE,GAAK,MACP,YAAY/7I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAC/C,IAAK11D,EAAGC,EAAGC,EAAGE,GAAKnD,EACnBthC,KAAK+5F,YAAc,CAAC11D,EAAG5C,EAAGE,EAAG8C,GAC7B,IAAgHsD,EAA5G7B,EAAI,CAACtE,GAAKH,EAAI,EAAI6C,EAAI,EAAIA,EAAG1C,GAAKD,EAAI,EAAI4C,EAAI,EAAIA,GAAIuD,EAAI,CAAClG,GAAKH,EAAI,EAAIA,EAAI,EAAIA,EAAGG,GAAKD,EAAI,EAAIA,EAAI,EAAIA,GACxGoG,EAAJ3D,EAAQ,wEAA8E,8CAA+CpkC,KAAK0pJ,SAAW,yEAE7IxjH,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,8CACkBxD,QAAQC,4OASZwD,+zBAuB/Bu1I,GAAK,MACP,YAAYh8I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAc,GACnG,IAAK11D,EAAGC,EAAGC,EAAGE,GAAKnD,EACnBthC,KAAK+5F,YAAc,CAAC11D,EAAG5C,EAAGE,EAAG8C,GAC7B,IAAgHsD,EAA5G7B,EAAI,CAACtE,GAAKH,EAAI,EAAI6C,EAAI,EAAIA,EAAG1C,GAAKD,EAAI,EAAI4C,EAAI,EAAIA,GAAIuD,EAAI,CAAClG,GAAKH,EAAI,EAAIA,EAAI,EAAIA,EAAGG,GAAKD,EAAI,EAAIA,EAAI,EAAIA,GACxGoG,EAAJ3D,EAAQ,wEAA8E,8CAA+CpkC,KAAK0pJ,SAAW,yEAE7IxjH,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,8CACkBxD,QAAQC,8CACRA,+aAcJwD,oVAQHtD,EAAI,4CACG9C,EAAI,shEAmD3C,SAAS8F,GAAIpG,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,GAAI4C,EAAGE,GAAKH,EAAG4B,EAAIvgB,KAAIuxC,QAAQ,+BAAiC,IAAIomH,GAAG17I,EAAEu9B,MAAO56B,EAAGE,EAAGL,EAAGC,GAAK,IAAIg5I,GAAGz7I,EAAEu9B,MAAO56B,EAAGE,EAAGL,EAAGC,GAC7O,OAAO5C,EAAE48H,gBAAgBn4H,EAAG,CAACtE,GAAI,WAEnC,IAAI27I,GAAK,CAAE5kH,WAAYrjD,GAAIsjD,YAAa,QAASuO,WAAY1/B,IACzD+1I,GAAK,MACP,YAAYl8I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAct4D,EACvE,IAAK,CAAEG,EAAGwC,GAAK3C,GAAI,CAAE4C,EAAGC,GAAKhD,EAAIiD,EAAI,CAAC5C,GAAK0C,EAAI,EAAIzC,EAAI,EAAIA,EAAGD,GAAK2C,EAAI,EAAIF,EAAI,EAAIA,GAAIK,EAAI,CAAC9C,GAAK0C,EAAI,EAAIA,EAAI,EAAIA,EAAG1C,GAAK2C,EAAI,EAAIA,EAAI,EAAIA,GAAI4B,EAAI3B,EAAE,GAAKE,EAAE,GAAIqD,EAAIvD,EAAE,GAAKE,EAAE,GAAIsD,EAAI,EAAI7B,EAAG8B,EAAI,EAAIF,EAAGM,EAAmB,EAAfrE,KAAK3jB,KAAK2nB,GAAS,EAAGmE,EAAmB,EAAfnI,KAAK3jB,KAAK4nB,GAAS,EACtPhoC,KAAK0pJ,SAAW,mQAUsBxjH,+CACD4B,qDAEIC,kDACDC,4CAERI,yCACD8D,+iBAcD7H,4QAQEC,0MAMkB1C,EAAI,6QAMLwC,EAAI,k9BAiCzD,SAASq5I,GAAIp8I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAAG2C,EAAI,IAAIk5I,GAAGp5I,EAAE+6B,MAAOv9B,EAAEu9B,MAAO96B,GAC/H,OAAO5C,EAAE48H,gBAAgB/5H,EAAG,CAACF,GAAIA,EAAEs6B,OAErC,IAAIg/G,GAAK,CAAE/kH,WAAYnjD,GAAIojD,YAAa,QAASuO,WAAYs2G,IACzDE,GAAK,MACP,YAAYr8I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAC/C,IAAK11D,EAAGC,EAAGC,EAAGE,GAAKnD,EACnBthC,KAAK+5F,YAAc,CAAC11D,EAAG5C,EAAGE,EAAG8C,GAC7B,IAAuIuD,EAAnI9B,EAAI,CAACtE,GAAKH,EAAI,EAAI6C,EAAI,EAAIA,EAAG1C,GAAKD,EAAI,EAAI4C,EAAI,EAAIA,GAAIuD,EAAI,CAAClG,GAAKH,EAAI,EAAIA,EAAI,EAAIA,EAAGG,GAAKD,EAAI,EAAIA,EAAI,EAAIA,GAAIoG,EAAInG,EAAI,MAAQ,MAC5HoG,EAAJ5D,EAAQ,4EAAkF,8CAA+CpkC,KAAK0pJ,SAAW,yEAEjJxjH,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,8CACkBxD,QAAQC,4OASZyD,6KAI2BD,qIAQ1D61I,GAAK,MACP,YAAYt8I,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAc,GACnG,IAAK11D,EAAGC,EAAGC,EAAGE,GAAKnD,EACnBthC,KAAK+5F,YAAc,CAAC11D,EAAG5C,EAAGE,EAAG8C,GAC7B,IAAuIuD,EAAnI9B,EAAI,CAACtE,GAAKH,EAAI,EAAI6C,EAAI,EAAIA,EAAG1C,GAAKD,EAAI,EAAI4C,EAAI,EAAIA,GAAIuD,EAAI,CAAClG,GAAKH,EAAI,EAAIA,EAAI,EAAIA,EAAGG,GAAKD,EAAI,EAAIA,EAAI,EAAIA,GAAIoG,EAAInG,EAAI,MAAQ,MAC5HoG,EAAJ5D,EAAQ,4EAAkF,8CAA+CpkC,KAAK0pJ,SAAW,yEAEjJxjH,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,kBACT5B,EAAE,GAAK4B,EAAE,8CACkBxD,QAAQC,8CACRA,+aAcJyD,6KAI2BD,2HAG9BtD,EAAI,4CACG9C,EAAI,0eAgB3C,SAASk8I,GAAIx8I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,GAAI4C,EAAGE,GAAKH,EAAG4B,EAAIvgB,KAAIuxC,QAAQ,+BAAiC,IAAI0mH,GAAGh8I,EAAEu9B,MAAO56B,EAAGE,EAAGL,EAAGC,GAAK,IAAIs5I,GAAG/7I,EAAEu9B,MAAO56B,EAAGE,EAAGL,EAAGC,GAC7O,OAAO5C,EAAE48H,gBAAgBn4H,EAAG,CAACtE,GAAIA,EAAE88B,OAErC,IAAIo/G,GAAK,CAAEnlH,WAAYjjD,GAAIkjD,YAAa,QAASuO,WAAY02G,IACzDE,GAAK,MACP,YAAYz8I,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK+5F,YAAct4D,EACvE,IAAK,CAAEG,EAAGwC,GAAK3C,GAAI,CAAE4C,EAAGC,GAAKhD,EAAIiD,EAAI,CAAC5C,GAAK0C,EAAI,EAAIzC,EAAI,EAAIA,EAAGD,GAAK2C,EAAI,EAAIF,EAAI,EAAIA,GAAIK,EAAI,CAAC9C,GAAK0C,EAAI,EAAIA,EAAI,EAAIA,EAAG1C,GAAK2C,EAAI,EAAIA,EAAI,EAAIA,GAAI4B,EAAI3B,EAAE,GAAKE,EAAE,GAAIqD,EAAIvD,EAAE,GAAKE,EAAE,GAAIsD,EAAI,EAAI7B,EAAG8B,EAAI,EAAIF,EAAGM,EAAmB,EAAfrE,KAAK3jB,KAAK2nB,GAAS,EAAGmE,EAAmB,EAAfnI,KAAK3jB,KAAK4nB,GAAS,EACtPhoC,KAAK0pJ,SAAW,mQAUsBxjH,+CACD4B,qDAEIC,kDACDC,4CAERI,yCACD8D,6jBAcD7H,4QAQEC,0GAKdC,EAAE,8CACcE,EAAE,qEAGhBF,EAAE,gDACcE,EAAE,mFAGd7C,6BACVD,iLAIUyC,6BACVzC,wVAelB,SAASq8I,GAAI38I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAAG2C,EAAI,IAAIy5I,GAAG35I,EAAE+6B,MAAOv9B,EAAEu9B,MAAO96B,GAC/H,OAAO5C,EAAE48H,gBAAgB/5H,EAAG,CAACF,GAAIA,EAAEs6B,OAErC,IAAIu/G,GAAK,CAAEtlH,WAAY/iD,GAAIgjD,YAAa,QAASuO,WAAY62G,IACzDE,GAAK,MACP,YAAY58I,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAIxqH,EAAIL,EAAGphC,OACX,GAAIyhC,EAAI,EACN,MAAM,IAAIsC,MAAM,kCAAkCtC,iCACpD,GAAI3hC,KAAK+5F,YAAcz4D,EAAU,IAANK,EAOzB,YANA3hC,KAAK0pJ,SAAW,+FAGKpoH,EAAG,wCAK1B,IAAIM,EAAK0C,IAAwB,IAAlB7C,EAAE/gC,QAAQ4jC,IAAuB,IAAVhD,EAAGgD,GAAW,GAAGhD,EAAGgD,eAAeA,SAAW,UAAUA,KAAMF,EAAI9C,EAAGizB,IAAI,CAACjwB,EAAGC,IAAM3C,EAAE2C,IAAImzB,KAAK,KAAMrzB,EAAI0nH,GAAGpqH,GACjJ3hC,KAAK0pJ,SAAW,kCAEVrlH,yDACeD,wBAKrB+5I,GAAK,MACP,YAAY78I,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAC1E,IAAI/sH,EAAIL,EAAGphC,OACX,GAAIyhC,EAAI,EACN,MAAM,IAAIsC,MAAM,kCAAkCtC,iCACpD3hC,KAAK+5F,YAAcz4D,EACnB,IAAIM,EAAI24H,GAAG,KAAM54H,GAAIyC,EAAI,GAAGxC,EAAED,EAAI,YAAY3hC,KAAK+5F,YAAYp4D,EAAI,KAAM0C,EAAI,GAAGzC,EAAED,EAAI,YAAY3hC,KAAK+5F,YAAYp4D,EAAI,KAAM2C,EAAIynH,GAAGpqH,GA8BpI,SAAS4C,EAAE6D,GACT,OAAOL,EAAEK,GAEX,SAAS3D,EAAE2D,GACT,OAAOA,EAAEzG,EAAI,GAAK,IAAMyG,EAAEzG,EAAI,GAAK,QAASoG,EAAEK,GAEhD,SAASlC,EAAEkC,GACT,OAAOA,EAAEzG,EAAI,GAAK,IAAMyG,EAAEzG,EAAI,GAAK,QAASoG,EAAEK,GAEhD,SAASN,EAAEM,GACT,OAAOA,EAAEzG,EAAI,GAAK,IAAMyG,EAAEzG,EAAI,GAAK,QAASyG,EAAEzG,EAAI,GAAK,IAAMyG,EAAEzG,EAAI,GAAK,QAASoG,EAAEK,GAErF,SAASL,EAAEK,GACT,IAAI8D,EAAI5K,EAAGizB,IAAI,CAAC9nB,EAAGM,IAAM/E,EAAE+E,EAAG3E,IAAK+D,EAAID,EAAEwrB,KAAK,KAAMxsB,EAAIgB,EAAElU,OAAO,GAAG0/B,KAAK,KACzE,MAAO,mBAAmBvrB,YAAYjB,MAExC,SAASlD,EAAEI,EAAG8D,GACZ,OAAyB,IAAlBzK,EAAE/gC,QAAQ0nC,IAAuB,IAAV9G,EAAG8G,GAAW,GAAG9G,EAAG8G,QAAQ8D,EAAE9D,SAAW,GAAG8D,EAAE9D,GA9CpEpoC,KAAK0pJ,SAAT,IAAN/nH,EAA0B,0IAISL,EAAG,8BAC5BA,EAAG,+BACF8C,iDAC4B9C,EAAG,yCAC5BA,EAAG,qFAIK,sCAEdgD,sFAEWC,EAAE3C,EAAE5J,2BACZoM,+BACUK,EAAE7C,EAAE5J,wCAEdqM,gCACU6B,EAAEtE,EAAE5J,6BACZoM,kCACU0D,EAAElG,EAAE5J,yFA2B/B,SAASomJ,GAAI/8I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMmyD,KAAMrvD,GAAMzC,EAAG0C,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAIjG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAC5H,GAAU,IAAN96B,EACF,OAAOk9H,GAAG,CAAE3iG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI8C,EAAI5e,KAAIuxC,QAAQ,+BAAiC,IAAIinH,GAAGv8I,EAAEu9B,MAAO76B,GAAK,IAAI45I,GAAGt8I,EAAEu9B,MAAO76B,GAC1F,OAAO7C,EAAE48H,gBAAgB95H,EAAG,CAAC3C,GAAIA,EAAE88B,OAErC,IAAI2/G,GAAK,CAAE1lH,WAAY7iD,GAAI8iD,YAAa,QAASuO,WAAYi3G,IACzDE,GAAK,MACP,YAAYh9I,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,SAAUnsJ,KAAK+5F,YAAc,GAAI/5F,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,SAAUw5E,KAAM,SACtG,IAAIp5C,EAAIL,EAAG,GAAIM,EAAIN,EAAG,GACtBthC,KAAK+5F,YAAcz4D,EACnB,IAAI8C,EAAI,GACeA,EAAX,iBAAL3C,EAAoB,uBAAuBA,EAAEw+B,QAAQ,MAAY,8BACjDx+B,EAAEi2B,KAAK,uDACa13D,KAAK0pJ,SAAW,mfAWnDtlH,2CAC2BxC,gCAAgCD,qJAQnE48I,GAAK,CAAE5lH,WAAY3iD,GAAI4iD,YAAa,QAASuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC7F,IAAMjY,MAAOmY,GAAMN,GAAK08D,QAASn8D,EAAGo8D,UAAW55D,EAAG65D,OAAQ55D,GAAM/C,EAAIgD,EAAI7C,EAAG8C,EAAI,IAAI+5I,GAAG38I,EAAEw9B,MAAO/6B,IAAKK,EAAGyB,GAAK7nB,GAAEw+F,eAAex4E,EAAG1C,EAAEw9B,MAAM,GAAIx9B,EAAEw9B,MAAM,IAAKr3B,EAAI,CAAC,CAACrD,EAAGyB,EAAGnC,KAAKnM,IAAIgK,GAAImC,KAAK7hB,IAAI0f,KAC3L,OAAO0C,EAAE+5H,gBAAgB95H,EAAG,CAAC5C,GAAIA,EAAE+8B,MAAO52B,KAExC02I,GAAM,iWAgBNC,GAAMrc,GAAG,CAAEC,UAAWmc,KACtBE,GAAK,CAAE/lH,WAAYziD,GAAI0iD,YAAa,QAASuO,WAAYs3G,IACzDE,GAAM,yBACNC,GAAMxc,GAAG,CAAEC,UAAWsc,GAAKpc,cAAepJ,KAC1C0lB,GAAK,CAAElmH,WAAYviD,GAAIwiD,YAAa,QAASuO,WAAYy3G,IACzDE,GAAK,MACP,YAAYx9I,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAAI,EAAMC,GAAI,GAC3CvkC,KAAKmsJ,cAAgB,CAAC,UAAW,UAAW,gBAAiBnsJ,KAAK+5F,YAAc11D,EAChF,IAAII,EAAIsnH,GAAG3nH,EAAElkC,QAASgmC,EAAI6lH,GAAG1nH,EAAEnkC,QAAS4nC,EAAI,GACtC,IAANnG,EAAUmG,EAAI,IAAY,IAANnG,IAAYmG,EAAI,QACpC,IAAIC,EAAI,cAAcD,KAAME,EAAI,GAC1B,IAANpG,EAAUoG,EAAI,IAAY,IAANpG,IAAYoG,EAAI,gBACpC,IAAII,EAAI,cAAcJ,KAAMkE,EAAI,GAChC3H,IAAM2H,EAAI,wBACV,IAAIC,EAAI,mBAAmBD,KAAMhB,EAAIzJ,EAAI,EAAI,aAAe,UAC5DzhC,KAAK0pJ,SAAW,aACVjlH,eAAeA,KAAKL,2CAGlB8B,2HAGoB5E,mFAEEG,8CACAsG,gDACQmD,2FAGnB9C,wFAIG+D,+CAKtB4yI,GAAK,MACP,YAAYz9I,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,GAAI,EAAMC,GAAI,GAC3CvkC,KAAKmsJ,cAAgB,CAAC,UAAW,UAAW,gBAAiBnsJ,KAAK6oJ,cAAe,EAAM7oJ,KAAK0uJ,cAAe,EAAM1uJ,KAAK+5F,YAAc11D,EACpI,IAAII,EAAIsnH,GAAG3nH,EAAElkC,QAASgmC,EAAI6lH,GAAG1nH,EAAEnkC,QAAS4nC,EAAI,GACtC,IAANnG,EAAUmG,EAAI,IAAY,IAANnG,IAAYmG,EAAI,QACpC,IAAIC,EAAI,cAAcD,KAAME,EAAI,GAC1B,IAANpG,EAAUoG,EAAI,IAAY,IAANpG,IAAYoG,EAAI,gBACpC,IAAII,EAAI,cAAcJ,KAAMkE,EAAI,GAChC3H,IAAM2H,EAAI,wBACV,IAAIC,EAAI,mBAAmBD,KAAMhB,EAAIzJ,EAAI,EAAI,aAAe,UAAWgL,EAAIhL,EAAI,EAAI,iBAAmB,UACtGzhC,KAAK0pJ,SAAW,aACVjlH,eAAeA,KAAKL,2CAGlB8B,kIAGoB5E,6FAEEG,iDACEsG,mDACSmD,iCACjBzJ,sDACmBgL,sPAKhBrE,2nBAiBL+D,wCAK1B,SAAS6yI,GAAI39I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,EAAGo2D,QAAS5zD,GAAM9C,GAAM69B,MAAO96B,GAAM1C,GAAKg2D,UAAWrzD,EAAGszD,WAAYrzD,EAAGszD,UAAWpzD,EAAG07B,QAASj6B,EAAG4xD,WAAYhwD,GAAMzpB,GAAE45E,gBAAgB7zD,EAAGxC,EAAGyC,GAAI0D,EAAI,CAACD,EAAIrD,EAAGA,GACpN,GAAU,IAANqD,EACF,OAAOrG,EAAE41F,eAAehzF,EAAGzC,EAAE88B,OAC/B,IAAwMvyB,EAApMnE,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGD,MAAS8D,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGE,MAASyH,EAAIzK,EAAE41F,eAAe,GAAI,UAAW,IAAIlhF,aAAa,CAAC,KACtKhK,EAA5BxmB,KAAIuxC,QAAQ,cAAoB,IAAI6nH,GAAGx6I,EAAGD,EAAG0D,EAAEm3B,MAAMj/D,OAAQkoC,EAAE+2B,MAAMj/D,OAAQgmC,EAAG6B,GAAS,IAAI+2I,GAAGv6I,EAAGD,EAAG0D,EAAEm3B,MAAMj/D,OAAQkoC,EAAE+2B,MAAMj/D,OAAQgmC,EAAG6B,GACzI,IAAImD,EAAIzJ,EAAE48H,gBAAgBlyH,EAAG,CAAC/D,EAAGJ,EAAGkE,GAAI9D,EAAEs2B,OAAQjyB,EAAI42H,GAAG,CAAEzkG,OAAQ,CAAE1zB,KAAKhtB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO96B,KACtG,OAAO5C,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI3G,EAAE88F,8BAA8BrzF,GAAIzJ,EAAE88F,8BAA8BryF,GAAIO,EAEzJ,IAAIi2B,GAAK,CAAE/J,WAAYniD,GAAIoiD,YAAa,QAASuO,WAAY63G,IACzDC,GAAK,MACP,YAAY39I,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,iBAAkB,UAAWnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,YAAaw5E,KAAM,QAAU/6E,KAAK+5F,YAAc,CAACz4D,EAAIK,GACvI,IAAIyC,EAAI,yBAA0BC,EAAI,uBAAuBN,KAAK3jB,KAAK2jB,KAAKmqI,KAAKzsI,EAAI,wCAAyC6C,EAAuC,IAAnC3e,KAAIq7H,UAAU,iBAAyB58G,EAAIC,EAAGE,EAAU,SAAN3C,EAAe,IAAM,KACzM5hC,KAAK0pJ,SAAW,0IAKTplH,yFAEoCC,oaAqB/C,SAAS26I,GAAI79I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKsoD,eAAgB/nD,EAAG9iC,OAAQslC,GAAM9C,GAAMsoD,KAAMvlD,GAAM1C,EAAG2C,EAAI,IAAI26I,GAAGr9I,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAI96B,GAAIE,EAAI,CAAC,CAAC3C,EAAEu9B,MAAM,KACvK,OAAO19B,EAAE48H,gBAAgB/5H,EAAG,CAAC1C,EAAGwC,GAAI,QAASG,GAE/C,IAAI46I,GAAK,CAAExmH,WAAYjiD,GAAIkiD,YAAa,QAASuO,WAAY+3G,IACzDE,GAAK,MACP,YAAY99I,EAAIG,EAAGE,GAEjB,IAAIC,EAAGwC,EACP,GAFApkC,KAAKmsJ,cAAgB,CAAC,IAAK,IAAK,KAAMnsJ,KAAK+5F,YAAct4D,EAErDE,EAAI,EACN,MAAMsC,MAAM,kBAAkBtC,0BAChC,GAAU,IAANA,EACFyC,EAAI,QAASxC,EAAI,YACd,CACH,IAAI0C,EAAI,CAAC,UAAW,UAAW,UAAW,WAAYC,EAAI,GAAIE,EAAI,GAClE,IAAK,IAAIyB,EAAI,EAAGA,EAAIzE,EAAEvhC,OAAQgmC,IAC5BzB,EAAEoH,KAAK,GAAGvH,EAAE4B,IAAOA,EAAI5E,GAAMiD,EAAEsH,KAAK,GAAGvH,EAAE4B,IAC3CtE,EAAI2C,EAAEmzB,OAAQtzB,EAAIK,EAAEizB,OAEtB,IAAIrzB,EAAI0nH,GAAGpqH,GACX3hC,KAAK0pJ,SAAW,kCAEVrlH,2DACkBzC,6DAEDwC,oDAEAA,mCAM3B,SAASi7I,GAAIh+I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKihD,UAAW3gD,EAAG4gD,EAAG3gD,EAAGH,EAAG2C,GAAM9C,EAAI+C,EAAI,IAAI+6I,GAAGz9I,EAAEw9B,MAAMj/D,OAAQ0hC,EAAEu9B,MAAOv9B,EAAEu9B,MAAMj/D,QACnH,OAAOuhC,EAAE48H,gBAAgBh6H,EAAG,CAAC1C,EAAGC,EAAGwC,GAAInG,GAAG2D,EAAE88B,MAAOt6B,EAAEs6B,QAEvD,IAAI4gH,GAAK,CAAE3mH,WAAY/hD,GAAIgiD,YAAa,QAASuO,WAAYk4G,IACzDE,GAAM,6IAGalhK,GAAEw7F,qCACPx7F,GAAEs7F,gFAGhB6lE,GAAMpd,GAAG,CAAEC,UAAWkd,KACtBE,GAAK,CAAE9mH,WAAY7hD,GAAI8hD,YAAa,QAASuO,WAAYq4G,IACzDE,GAAMvd,GAAK,4CAGXwd,GAAM,oQAWNC,GAAMxd,GAAG,CAAEC,UAAWqd,GAAKpd,gBAAiBqd,GAAKpd,cAAelJ,KAChEwmB,GAAK,CAAElnH,WAAY3hD,GAAI4hD,YAAa,QAASuO,WAAYy4G,IACzDE,GAAM,yDAINC,GAAM3d,GAAG,CAAEC,UAAWyd,KACtBE,GAAK,CAAErnH,WAAYzhD,GAAI0hD,YAAa,QAASuO,WAAY44G,IACzDE,GAAM9d,GAAK,uBAGX+d,GAAM,2DAGN9e,yBAGA+e,GAAM/d,GAAG,CAAEC,UAAW4d,GAAK3d,gBAAiB4d,KAC5CE,GAAK,CAAEznH,WAAYvhD,GAAIwhD,YAAa,QAASuO,WAAYg5G,IACzDE,GAAM,+DAINC,GAAMle,GAAG,CAAEC,UAAWge,KACtBE,GAAK,CAAE5nH,WAAYrhD,GAAIshD,YAAa,QAASuO,WAAYm5G,IACzDE,GAAM,0WAqBNC,GAAMre,GAAG,CAAEC,UAAWme,KACtBE,GAAK,CAAE/nH,WAAY/gD,GAAIghD,YAAa,QAASuO,WAAYs5G,IACzDE,GAAOt/I,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAGymD,SAAUxmD,GAAM1C,EAC9FtD,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,wEACpC,IAAIokC,EAAIF,EAAEtkC,OAAO,CAACorC,EAAGuB,IAAMvB,EAAIuB,GAAIlI,EAAI,CAAC,CAAC,EAAG,IAC5CA,EAAEsH,QAAQxH,GACV,IAAK,IAAI6G,EAAI,EAAI9G,EAAElkC,OAAQgrC,EAAItJ,EAAEu9B,MAAMj/D,SAAUgrC,EAC/C3G,EAAEsH,KAAK,CAAC,EAAG,IACb,IAAIpH,EAAI,GAAIyB,EAAIy1I,GAAG,CAAE/8G,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE6jB,SAAUtmD,EAAGioD,cAAe,KAAQ1kD,EAAIzpB,GAAE8+F,YAAYj3E,EAAEi5B,MAAO/6B,EAAGE,GAAG,GAAQyD,EAAI1pB,GAAE2+F,YAAYl1E,EAAE5nC,OAAQkkC,EAAElkC,QAAQ,GAAQ8nC,EAAI3pB,GAAEg/F,oBAAoBn3E,EAAEi5B,MAAO/6B,EAAGE,GAAG,GAAQ8D,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGhF,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOr3B,KAAQoE,EAAIo4H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMtxD,KAAQoE,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOn3B,KAC5Z,OAAOvD,EAAEoH,KAAK3F,GAAIzB,EAAEoH,KAAKzD,GAAI3D,EAAEoH,KAAKK,GAAIzH,EAAEkV,QAASzO,GAAMzJ,EAAE88F,8BAA8BrzF,IAAKiB,GAE5Fy0I,GAAK,CAAEjoH,WAAY7gD,GAAI8gD,YAAa,QAASuO,WAAYw5G,IAC7D,SAASE,GAAIx/I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6kD,QAASvkD,EAAG7iC,OAAQ8iC,EAAG+iE,WAAYvgE,EAAGuqD,aAActqD,GAAM/C,EAChG,GAAuB,IAAnB8C,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,gDACTG,EAAE+6B,OACX,GAAuB,IAAnBx9B,EAAEw9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,4CACTtC,EAAEw9B,OACX,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,2CACTrC,EAAEu9B,OACX,GAAuB,IAAnB96B,EAAE86B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,iDACVI,EAAE86B,OACV,IAAI76B,EAAI7C,EAAEw/B,SAASt/B,EAAEi/B,QAASr8B,EAAI9C,EAAEw/B,SAASr/B,EAAEg/B,QAASn8B,EAAIhD,EAAEw/B,SAAS78B,EAAEw8B,QAAS16B,EAAIzE,EAAEw/B,SAAS58B,EAAEu8B,QAAQ,IAAK94B,EAAGC,EAAGC,EAAGI,EAAG8D,GAAKstH,GAAGl1H,EAAG3C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOn6B,EAAG3C,EAAE88B,MAAOj6B,EAAGyB,GACxK,MAAO,CAACzE,EAAE41F,eAAetvF,EAAGpG,EAAE+8B,MAAO52B,GAAIrG,EAAE41F,eAAe,CAACtvF,EAAE,IAAKnG,EAAE88B,MAAO12B,GAAIvG,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,OAAQ,IAAIqiC,WAAW6F,EAAEmsB,IAAKpoB,GAAMqnB,OAAOrnB,MAAO1K,EAAE41F,eAAe,CAACnrF,EAAEhsC,QAASyhC,EAAE+8B,MAAO,IAAI9oB,WAAW1J,KAErN,IAAI40I,GAAK,CAAEnoH,WAAY3gD,GAAI4gD,YAAa,QAASuO,WAAY05G,IAC7D,SAASE,GAAI1/I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK8jE,aAAcxjE,EAAGi+C,WAAYh+C,EAAGgzB,SAAUxwB,GAAM9C,EACtF,GAAuB,IAAnBK,EAAEw9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,uDAAuDtC,EAAEw9B,OAC3E,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,qDAAqDrC,EAAEu9B,OACzE,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,sDAAsDG,EAAE+6B,OAC1E,IAAI96B,EAAIowB,MAAMwB,KAAKx0B,EAAEw/B,SAASr/B,EAAEg/B,SAAUt8B,EAAI7C,EAAEw/B,SAASt/B,EAAEi/B,QAASr8B,EAAIkwB,MAAMwB,KAAKx0B,EAAEw/B,SAAS78B,EAAEw8B,UAAWn8B,EAAGyB,EAAG4B,GAAK2xH,GAAGn1H,EAAG3C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOr6B,EAAGE,GACjJ,MAAO,CAAC9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAAIhD,EAAE41F,eAAe,CAACvvF,EAAE5nC,QAASkkC,EAAEs6B,MAAO,IAAI9oB,WAAW9N,KAEhG,IAAIk5I,GAAK,CAAEroH,WAAYzgD,GAAI0gD,YAAa,QAASuO,WAAY45G,IAC7D,SAASE,GAAI5/I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,GAAIK,EAAEw9B,MAAMj/D,OAAS,EACnB,MAAM,IAAI+jC,MAAM,6DAClB,GAAuB,IAAnBrC,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,gEACJrC,EAAEu9B,OAChB,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,oEACJG,EAAE+6B,OAChB,IAAI96B,EAAI5C,EAAEw/B,SAASt/B,EAAEi/B,QAASt8B,EAAI7C,EAAEw/B,SAASr/B,EAAEg/B,QAASr8B,EAAI9C,EAAEw/B,SAAS78B,EAAEw8B,SAAUn8B,EAAGyB,GAAKwzH,GAAGr1H,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAGC,GAAG,GACzH,OAAO9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAEtC,IAAIy8I,GAAK,CAAEvoH,WAAYvgD,GAAIwgD,YAAa,QAASuO,WAAY85G,IAC7D,SAASE,GAAI9/I,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,GAAIK,EAAEw9B,MAAMj/D,OAAS,EACnB,MAAM,IAAI+jC,MAAM,6DAClB,GAAuB,IAAnBrC,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,+DACLrC,EAAEu9B,OACf,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,mEACLG,EAAE+6B,OACf,IAAI96B,EAAI5C,EAAEw/B,SAASt/B,EAAEi/B,QAASt8B,EAAI7C,EAAEw/B,SAASr/B,EAAEg/B,QAASr8B,EAAI9C,EAAEw/B,SAAS78B,EAAEw8B,SAAUn8B,EAAGyB,GAAKwzH,GAAGr1H,EAAG1C,EAAEw9B,MAAOx9B,EAAE+8B,MAAOp6B,EAAGC,GACtH,OAAO9C,EAAE41F,eAAenxF,EAAGvE,EAAE+8B,MAAOj6B,GAEtC,IAAI28I,GAAK,CAAEzoH,WAAYrgD,GAAIsgD,YAAa,QAASuO,WAAYg6G,IAC7D,SAASE,GAAIhgJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw4D,cAAej4D,EAAGk4D,aAAc11D,EAAGuqD,aAActqD,GAAM/C,GAAMy4D,YAAaz1D,GAAM3C,GAAKg2D,UAAWpzD,EAAGqzD,WAAYnzD,EAAGozD,UAAW3xD,EAAGi6B,QAASr4B,EAAGgwD,WAAY/vD,GAAM1pB,GAAE45E,gBAAgB7zD,EAAGxC,EAAG0C,GAAI0D,GAAI,EAC9O,GAAgB,WAAZ5D,EAAEs6B,MAAoB,CACxB,IAAIxzB,EAAIzJ,EAAEknG,WAAW/mG,GAAI6K,EAAIhL,EAAEknG,WAAWvkG,GAAI2I,EAAI1O,GAAEw7B,aAAap4B,EAAEw/B,SAAS58B,EAAEu8B,QAAQ,IAAK5zB,EAAIosH,GAAGluH,EAAGuB,EAAGnI,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGiF,EAAG/E,GAC7H,OAAOvG,EAAE41F,eAAe/yF,EAAG0I,EAAE0xB,MAAO1xB,EAAEluC,QAExC,IAAIspC,EAAI,IAAI02I,GAAGr6I,EAAGF,EAAG3C,EAAEu9B,MAAMj/D,OAAQkkC,EAAE+6B,MAAMj/D,OAAQ4nC,EAAG,CAACC,EAAG,GAAIC,GAAIkE,EAAIzK,EAAE48H,gBAAgBj2H,EAAG,CAAChE,EAAGxC,EAAGyC,GAAID,EAAEs6B,OAAQvyB,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO76B,KACzK,OAAO7C,EAAE88F,8BAA8BryF,GAAIC,EAE7C,IAAIm1I,GAAK,CAAE3oH,WAAYngD,GAAIogD,YAAa,QAASuO,WAAYk6G,IAC7D,SAASE,GAAIlgJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM60D,gBAAiB/xD,EAAG4yC,KAAM3yC,GAAM1C,EAAG2C,EAAIjG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI56B,EAAIlmB,GAAEohG,iBAAiB79E,EAAGwC,EAAGE,GAAIG,EAAI7C,EAAEu9B,MAAMj/D,OAAQgmC,EAAI,IAAIuuB,MAAMhwB,GAAG7d,KAAK,GAAIkhB,EAAIlG,EAAEu9B,MAAMnnC,QAClO,OAAOuM,EAAEgwB,IAAKxsB,IACZ,IAAIC,EAAI,IAAIF,GACZE,EAAE1D,GAAKyD,EACP,IAAIK,EAAI4gI,GAAG,CAAEpqG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAOt2C,EAAGg5B,KAAMl3B,KACpE,OAAO9B,EAAE5B,IAAMyD,EAAGK,IAGtB,IAAIo5I,GAAK,CAAE7oH,WAAYjgD,GAAIkgD,YAAa,QAASuO,WAAYo6G,IACzDE,GAAK,kBACLC,GAAMtf,GAAG,CAAEC,UAAWof,GAAInf,gBAAiBmf,GAAIlf,cAAe5I,KAC9DgoB,GAAK,CAAEhpH,WAAY//C,GAAIggD,YAAa,QAASuO,WAAYu6G,IACzDE,GAAM,gBACNC,GAAMzf,GAAG,CAAEC,UAAWuf,KACtBE,GAAK,CAAEnpH,WAAY7/C,GAAI8/C,YAAa,QAASuO,WAAY06G,IACzDE,GAAK,4BACLC,GAAMxf,GAAG,CAAEH,UAAW0f,GAAIzf,gBAAiByf,KAC3CE,GAAK,CAAEtpH,WAAY3/C,GAAI4/C,YAAa,QAASuO,WAAY66G,IAC7D,SAASE,GAAI7gJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EACzD,GAAgB,WAAZM,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,oCAClB,IAAIG,EAAI3C,EAAEw/B,SAASr/B,EAAEg/B,QAASv8B,EAAIhmB,GAAE69F,uBAAuB93E,GAAIE,EAAIs1H,GAAGv1H,EAAG,SAAU1C,GACnF,OAAOF,EAAE41F,eAAez1F,EAAEu9B,MAAO,SAAU76B,GAE7C,IAAI69I,GAAK,CAAExpH,WAAYz/C,GAAI0/C,YAAa,QAASuO,WAAY+6G,IAC7D,SAASE,IAAMxjH,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,IAC5C,IAAMyJ,EAAGvJ,GAAMN,EAAGO,EAAIo6H,GAAK,sCACM16H,EAAG4lD,cACjC9iD,EAAI,IAAI8E,GAAGvH,EAAEw9B,MAAOv9B,GACvB,OAAOH,EAAE48H,gBAAgBj6H,EAAG,CAACzC,GAAIA,EAAE+8B,OAErC,IAAI2jH,GAAK,CAAE1pH,WAAYv/C,GAAIw/C,YAAa,QAASuO,WAAYi7G,IACzDE,GAAK,MACP,YAAYhhJ,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAcp4D,EAC/C,IAAIC,EAAID,EAAEzhC,OAAQkkC,EAAI2nH,GAAGpqH,EAAEzhC,QAASmkC,EAAI0nH,GAAGpqH,EAAEzhC,QAASokC,EAAI,GAC1D,GAAU,IAAN1C,EACF0C,EAAI,+BACD,CACH,IAAIC,EAAI,EACRD,EAAI3C,EAAE4yB,IAAI,CAAC9vB,EAAGyB,KAAO3B,IAAkB,IAAb5C,EAAEzhC,OAAe,oBAAoBgmC,cAAcA,KAAO,UAAU3B,EAAI,gBAAgB2B,cAAcA,OAAOwxB,KAAK,KAE9I13D,KAAK0pJ,SAAW,WACZtlH,aAAaA,KAAK9C,cAClB8C,eAAeA,KAAK3C,uCAGlB4C,yDACeC,wBAKzB,SAASi+I,GAAIlhJ,GACX,IAAsV4L,GAAhV2xB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG0nC,IAAKznC,EAAG87B,QAAS77B,EAAG0yD,UAAWzyD,EAAG0yD,QAASxyD,EAAGyyD,aAAchxD,EAAGixD,YAAarvD,EAAGsvD,eAAgBrvD,GAAMpG,GAAK01E,iBAAkBrvE,EAAGsvE,WAAYlvE,EAAGmvE,WAAYrrE,EAAGsrE,UAAWrrE,EAAGsrE,cAAevsE,EAAGsxC,MAAO/vC,EAAGq/B,IAAK/+B,EAAGozB,QAASnzB,GAAMrU,GAAGg9E,UAAU/zE,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,EAAGC,GAClV,GAAImE,EACFe,EAAIo2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,UACpD,GAAI+D,GAAKjB,EAAG,CACf7M,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yCAAyC0hC,EAAEu9B,MAAMj/D,QACrF,IAAIktC,EAAIzU,GAAGs8E,gBAAgBxoE,EAAGM,EAAGC,GAAIK,EAAI27H,GAAG,CAAEpqG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO/vC,EAAGyyB,KAAM9xB,KACrGH,EAAIo2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGmC,GAAKnvB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAAQ3G,EAAE88F,8BAA8BlxF,QAC1F,GAAI5L,EAAEq+H,mBAAmB,CAACl+H,IAAK,CACpC,IAAIyL,EAAI5L,EAAEw/B,SAASr/B,EAAEg/B,QAAStzB,EAAIrtB,GAAG2hB,EAAEu9B,MAAOv9B,EAAE88B,MAAOrxB,GAAIE,EAAIssH,GAAG7xH,EAAGsF,EAAGN,EAAGP,GAC3EQ,EAAIxL,EAAE41F,eAAejvF,EAAGxG,EAAE88B,MAAOnxB,EAAEzuC,YAC9B,CACL,IAAIuuC,EAAI,IAAIi1I,GAAG71I,EAAGO,EAAGhF,GACrBiF,EAAIxL,EAAE48H,gBAAgBhxH,EAAG,CAACzL,GAAIA,EAAE88B,OAElC,IAAIxxB,EAAIm2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG+B,GAAK/uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAC3D,OAAO3G,EAAE88F,8BAA8BtxF,GAAIC,EAE7C,IAAIs1I,GAAK,CAAE7pH,WAAYr/C,GAAIs/C,YAAa,QAASuO,WAAYo7G,IAC7D,SAASE,GAAIphJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwkE,UAAWjkE,EAAGkkE,YAAa1hE,EAAG2hE,QAAS1hE,EAAG83B,SAAU73B,EAAG0hE,SAAUzhE,EAAG0hE,uBAAwBxhE,GAAM9C,GAAKib,KAAM1W,EAAGggE,WAAYp+D,GAAMxG,EAAIyG,EAAItG,EAAEw/B,SAAS/6B,EAAE06B,QAAS54B,EAAIvG,EAAEw/B,SAASn5B,EAAE84B,SAAUx4B,EAAG8D,GAAK4tH,GAAG/xH,EAAGC,EAAGpG,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GAC3Q,MAAO,CAAChD,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,SAAUkoC,GAAI3G,EAAE41F,eAAevvF,EAAEq3B,MAAO,QAASjzB,IAExF,IAAIw2I,GAAK,CAAE/pH,WAAYn/C,GAAIo/C,YAAa,QAASuO,WAAYs7G,IAC7D,SAASE,GAAIthJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKmlE,UAAW5kE,GAAMD,GAAK0jD,MAAOjhD,EAAGqiE,UAAWpiE,GAAM/C,EACjG,GAAgB,WAAZ8C,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,oCAClB,GAAuB,IAAnBG,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,sCAAsCG,EAAE+6B,OAC1D,GAAuB,IAAnB96B,EAAE86B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,0CAA0CI,EAAE86B,OAC9D,IAAI76B,EAAI7C,EAAEw/B,SAAS78B,EAAEw8B,QAASr8B,EAAI9C,EAAEw/B,SAAS58B,EAAEu8B,QAAQ,IAAKn8B,EAAGyB,EAAG4B,GAAKiyH,GAAGz1H,EAAGC,EAAG3C,GAAImG,EAAI7B,EAAEhmC,OAC1F,MAAO,CAACuhC,EAAE41F,eAAe,CAACtvF,EAAG,GAAI,QAAStD,GAAIhD,EAAE41F,eAAe,CAACtvF,GAAI,SAAU7B,GAAIzE,EAAE41F,eAAe,CAAC,GAAI,QAAS,IAAIzhF,WAAW9N,KAElI,IAAI86I,GAAK,CAAEjqH,WAAYj/C,GAAIk/C,YAAa,QAASuO,WAAYw7G,IAC7D,SAASE,GAAIxhJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwlE,WAAYjlE,GAAMD,GAAK0jD,MAAOjhD,GAAM9C,EACpF,GAAgB,WAAZ8C,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,oCAClB,GAAIrC,GAAK,EACP,MAAM,IAAIqC,MAAM,wCAClB,IAAII,EAAI5C,EAAEw/B,SAAS78B,EAAEw8B,QAASt8B,EAAI01H,GAAG31H,EAAGzC,GACxC,OAAOH,EAAE41F,eAAejzF,EAAE+6B,MAAO,QAAS76B,GAE5C,IAAIw+I,GAAK,CAAEnqH,WAAY/+C,GAAIg/C,YAAa,QAASuO,WAAY07G,IACzDE,GAAM,iBACNC,GAAM5gB,GAAG,CAAEC,UAAW0gB,KACtBE,GAAK,CAAEtqH,WAAYz+C,GAAI0+C,YAAa,QAASuO,WAAY67G,IACzDE,GAAM,uFAINC,GAAM/gB,GAAG,CAAEC,UAAW6gB,KACtBE,GAAK,CAAEzqH,WAAYv+C,GAAIw+C,YAAa,QAASuO,WAAYg8G,IAC7D,SAASE,GAAIhiJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKjG,OAAQwG,EAAGskD,QAAS9hD,EAAG4zD,QAAS3zD,GAAM/C,KAASK,GAAKg2D,UAAWrzD,EAAGszD,WAAYrzD,EAAGszD,UAAWpzD,EAAG07B,QAASj6B,EAAG4xD,WAAYhwD,GAAMzpB,GAAE45E,gBAAgB5zD,EAAGD,EAAGxC,EAAEu9B,OAAQp3B,EAAI,CAACD,EAAIrD,EAAGA,GAC3N,GAAU,IAANqD,EACF,OAAOrG,EAAE41F,eAAez1F,EAAEu9B,MAAO/6B,EAAEs6B,OACrC,IAAI12B,EAAIq7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGD,MAAS8D,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGE,MAASyH,EAAIm3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAAQoE,EAAI,IAAI2yI,GAAGv6I,EAAGD,EAAG0D,EAAEm3B,MAAMj/D,OAAQkoC,EAAE+2B,MAAMj/D,OAAQgmC,EAAG6B,GAAG,GAAO,GAAOmD,EAAIzJ,EAAE48H,gBAAgBlyH,EAAG,CAAC/D,EAAGJ,EAAGkE,GAAIA,EAAEwyB,OAAQjyB,EAAI42H,GAAG,CAAEzkG,OAAQ,CAAE1zB,KAAKhtB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOv9B,EAAEu9B,SACpX,OAAO19B,EAAE88F,8BAA8Bv2F,GAAIvG,EAAE88F,8BAA8Bn2F,GAAI3G,EAAE88F,8BAA8BryF,GAAIzK,EAAE88F,8BAA8BrzF,GAAIuB,EAEzJ,IAAI62I,GAAK,CAAE3qH,WAAYj+C,GAAIk+C,YAAa,QAASuO,WAAYk8G,IACzDE,GAAK,MACP,YAAYjiJ,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KACtB,IAAIxqH,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAImkC,EAAI,EAAGA,EAAI1C,EAAEzhC,OAAQmkC,IAC5B1C,EAAE0C,GAAK/C,EAAG+C,GAAK5C,EAAE4C,GACnBrkC,KAAK+5F,YAAcp4D,EAAG3hC,KAAKi/D,KAAOt9B,EAAEzhC,OACpC,IAAI0hC,EAAImqH,GAAG/rJ,KAAKi/D,MAAO76B,EAAIo/I,GAAIliJ,GAC/BthC,KAAK0pJ,SAAW,kCAEV9nH,wDACewC,wBAKzB,SAASo/I,GAAIniJ,GACX,IAAIC,EAAKD,EAAEnhC,OACX,GAAIohC,EAAK,EACP,MAAM2C,MAAM,iBAAiB3C,0BAC/B,GAAW,IAAPA,EACF,MAAO,eAAeD,EAAE,MAC1B,IAAII,EAAI,CAAC,UAAW,UAAW,UAAW,UAAW,WAAYE,EAAI,GACrE,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAEnhC,OAAQ0hC,IAC5BD,EAAEkK,KAAK,QAAQpK,EAAEG,OAAOP,EAAEO,OAC5B,OAAOD,EAAE+1B,OAEX,SAAS+rH,GAAGpiJ,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+8C,KAAMj6C,GAAMzC,EAC3E,GAAgB,WAAZC,EAAE88B,OAAsB98B,EAAEu9B,MAAMj/D,OAAS,EAAG,CAC9C,IAAIqkC,EAAI9C,EAAEw/B,SAASr/B,EAAEg/B,QAASn8B,EAAgB,WAAZ7C,EAAE88B,MAAqBn6B,EAAEgwB,IAAKxsB,GAAM1J,GAAEw7B,aAAa9xB,IAAMxD,EAAG2B,EAAIjmB,GAAG2hB,EAAEu9B,MAAOv9B,EAAE88B,MAAOj6B,GAAIqD,EAAIoyH,GAAGh0H,EAAG9B,GACrI,OAAO3C,EAAE41F,eAAevvF,EAAEq3B,MAAOr3B,EAAE42B,MAAO52B,EAAEhpC,QAE9C,IAAIulC,EAAI,IAAIk/I,GAAG3hJ,EAAEu9B,MAAO/6B,GACxB,OAAO3C,EAAE48H,gBAAgBh6H,EAAG,CAACzC,GAAIA,EAAE88B,OAErC,IAAIglH,GAAK,CAAE/qH,WAAY/9C,GAAIg+C,YAAa,QAASuO,WAAYs8G,IACzDE,GAAK,MACP,YAAYriJ,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,IAAKw5E,KAAM,OAAS,CAAEx5E,KAAM,YAAaw5E,KAAM,OAAS,CAAEx5E,KAAM,cAAew5E,KAAM,SAAW,CAAEx5E,KAAM,MAAOw5E,KAAM,OAAS,CAAEx5E,KAAM,MAAOw5E,KAAM,QAAU/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,yxDA2C1Qk6B,GAAK,MACP,YAAYtiJ,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK+oJ,eAAiB,CAAC,CAAExnJ,KAAM,IAAKw5E,KAAM,OAAS,CAAEx5E,KAAM,YAAaw5E,KAAM,OAAS,CAAEx5E,KAAM,IAAKw5E,KAAM,QAAU/6E,KAAK+5F,YAAcz4D,EAAIthC,KAAK0pJ,SAAW,4wDAqCtM,SAASm6B,GAAGxiJ,EAAGC,GACN,OAAPA,GAAeD,EAAEk9F,8BAA8Bj9F,GAEjD,SAASwiJ,GAAGziJ,GACV,IAAIC,EAAK,EACT,KAAOA,EAAKD,GACVC,GAAM,EACR,OAAOA,EAET,SAASyiJ,GAAI1iJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2L,EAAG7I,EAAGk0D,OAAQj0D,GAAM1C,EAAG2C,EAAI3e,KAAIq7H,UAAU,4CAA6Cz8G,EAAI5e,KAAIq7H,UAAU,gCAAiCv8G,EAAI7C,EAAEu9B,MAAOj5B,EAAIzB,EAAEA,EAAEvkC,OAAS,GACtO,GAAIuhC,EAAEq+H,mBAAmB,CAACl+H,KAAOsE,EAAI5B,GAAKF,EAAIG,EAAG,CAC/C,IAAIgJ,EAAI9L,EAAEw/B,SAASr/B,EAAEg/B,SAAU3hE,EAAGuuC,GAAK2sH,GAAG5sH,EAAG9I,EAAG7C,EAAE88B,MAAOt6B,EAAGC,GAC5D,MAAO,CAAC5C,EAAE41F,eAAep4H,EAAEkgE,MAAOlgE,EAAEy/D,MAAOz/D,EAAEH,QAAS2iC,EAAE41F,eAAe7pF,EAAE2xB,MAAO3xB,EAAEkxB,MAAOlxB,EAAE1uC,SAE7F,GAAU,IAANslC,EACF,OAAOK,EAAEA,EAAEvkC,OAAS,GAAK,EAAG,CAACuhC,EAAE41F,eAAe5yF,EAAG7C,EAAE88B,MAAO,IAAKj9B,EAAE41F,eAAe5yF,EAAG,QAAS,KAC9F,GAAU,IAANyB,EACF,MAAO,CAACtE,EAAGowI,GAAG,CAAEhrG,MAAO,CAAE7H,MAAO16B,EAAGi6B,MAAO,QAASz9D,MAAO,GAAKid,QAASujB,KAC1E,IAAIqG,EAAIrG,EAAEyqH,QAAQ1qJ,IAAIogC,EAAEg/B,QAAS74B,EAAU,OAAND,GAAcA,EAAEshH,SAAUphH,EAAID,EAAItG,EAAEu+H,aAAap+H,GAAKA,EAAGsK,EAAI7N,GAAEi+B,cAAc73B,GAAKyB,EAAGiG,EAAIk3H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGlD,GAAKg/B,MAAO,CAAE7H,MAAO,CAACjzB,EAAGhG,IAAMhoB,QAASujB,IACxLsG,GAAK87I,GAAGpiJ,EAAGuG,GACX,IAAIkD,EAAI44I,GAAG1/I,GAAIqI,EAAIq3I,GAAG59I,GAAI6G,EAAI,KAAMC,EAAI,IAAY,OAAND,EAAa,CAACZ,EAAGA,GAAK,CAACA,EAAGY,GAAIE,EAAI,CAACM,EAAGtuC,EAAGuuC,KACrF,IAAIE,EAAIV,IAAKa,EAAI,IAAI81I,GAAGn2I,GAAIqG,EAAI,CAAC,CAAC3N,GAAI,CAAO,OAAN6G,EAAa,EAAI,GAAI,CAACymB,OAAO6qC,mBAAoB,CAAC9wD,GAAI,CAACtuC,IAAK2uC,EAAIb,EACvGA,EAAItL,EAAE48H,gBAAgBxwH,EAAGH,EAAG,QAASmG,GAAIgwI,GAAGpiJ,EAAGmM,IAEjD,IAAK,IAAIL,EAAI,EAAGA,EAAIrC,EAAGqC,GAAK,EAAG,CAC7B,IAAItuC,EAAQ,EAAJsuC,EACR,IAAK,IAAIC,EAAID,EAAGC,GAAK,EAAGA,GAAK,EAC3BP,EAAEhuC,EAAGuuC,EAAG,CAACtB,EAAGO,IAEhB,IAAK,IAAIc,EAAId,EAAGc,EAAIrC,EAAGqC,GAAK,EAAG,CAC7B,IAAItuC,EAAI+tC,IAAKQ,EAAI,IAAIo2I,GAAG,CAAC13I,EAAGqB,EAAI,IAAKM,EAAI,CAAC,CAAC3H,GAAI,CAAO,OAAN6G,EAAa,EAAI,GAAI,CAAC7B,IAAKC,EAAI4B,EAC/EA,EAAItL,EAAE48H,gBAAgB7wH,EAAGvuC,EAAG,QAAS4uC,GAAIg2I,GAAGpiJ,EAAG0J,GAC/C,IAAI0I,EAAI3I,EAAI,EAAG0C,EAAQ,EAAJiG,EACnB,IAAK,IAAIsd,EAAItd,EAAGsd,GAAK,EAAGA,GAAK,EAC3BlkB,EAAEW,EAAGujB,EAAGpkB,EAAEoyB,OAEd,IAAIjyB,EAAIH,EACRA,EAAIi8H,GAAG,CAAEpqG,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO,EAAGtd,KAAM,CAAChzB,EAAG9H,MAASy/I,GAAGpiJ,EAAGyL,GACnF,IAAIE,EAAIwmI,GAAG,CAAEh1G,OAAQ,CAAE1zB,EAAGiB,EAAG+5C,QAASn5C,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM,EAAGmP,UAAW,KACpF09F,GAAGpiJ,EAAG0K,GACN,IAAIkB,EAAI5I,EAAEzM,MAAM,GAAI,GACpBqV,EAAExB,KAAKzH,GAAI8I,EAAIH,EAAGA,EAAIs2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAG6B,GAAKi6B,MAAO,CAAE7H,MAAO9xB,GAAKnvB,QAASujB,IAAMoiJ,GAAGpiJ,EAAGyL,GACvF,IAAII,EAAIF,EACR,OAAOA,EAAIi2H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGkC,GAAK45B,MAAO,CAAE7H,MAAO9xB,GAAKnvB,QAASujB,IAAMoiJ,GAAGpiJ,EAAG6L,GAAI,CAACF,EAAGL,GAEtF,IAAIi3I,GAAK,CAAErrH,WAAY79C,GAAI89C,YAAa,QAASuO,WAAY48G,IACzDE,GAAK,MACP,YAAY3iJ,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1BrkC,KAAKmsJ,cAAgB,CAAC,QAAS,cAAensJ,KAAK+5F,YAAc11D,EACjE,IAAiCE,EAA7BD,EAAU,YAAN3C,EAAkB,EAAI,EAC9B,OAAQC,GACN,IAAK,WACH2C,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,IAAK,OACHA,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,QACEA,EAAI,EACJ,MAEJvkC,KAAK0pJ,SAAW,wHAGDnlH,m9BAwBQA,4qBAiBAA,qVAUiBjD,gCAAiCG,gJAGvC2C,o7BAwBAA,yNAIa3C,0DACAH,+BAE7BgD,6nCA2BtB,SAAS4/I,GAAI7iJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAG8/D,WAAYt9D,GAAM9C,GAAMqgE,cAAet9D,EAAGu9D,SAAUt9D,EAAG05D,UAAWz5D,EAAGw1D,YAAat1D,GAAM9C,GAAIuE,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,OAAQ/2B,EAAG8D,GAAU,MAALzH,EAAYA,EAAI,CAACqD,EAAGC,GAAIoE,EAAI,CAACjG,EAAGkC,EAAG8D,EAAGlE,GAAIkD,EAAI,IAAI+4I,GAAGn8I,EAAGC,EAAG1D,EAAGC,EAAGC,EAAG4H,GAC1P,OAAO1K,EAAE48H,gBAAgBnzH,EAAG,CAACtJ,EAAGwC,GAAI,WAEtC,IAAI+/I,GAAK,CAAExrH,WAAY39C,GAAI49C,YAAa,QAASuO,WAAY+8G,IAC7D,SAASE,GAAI/iJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK21C,KAAMp1C,GAAMH,GAAKyJ,EAAG9G,GAAM9C,EAC1Es4G,GAAGx1G,EAAG,UAAWoO,QAAQmB,KAAK,YAAa,8DAC3C,IAAItP,EAAI1C,EAAEs/B,SAAS78B,EAAEw8B,SAAWikC,aAAcvgE,EAAGy1D,YAAax1D,EAAG2hD,QAASzhD,GAAM41H,GAAGh2H,EAAGzC,EAAGwC,EAAE+6B,MAAO/6B,EAAEs6B,OACpG,MAAO,CAAC/8B,EAAE01F,eAAe9yF,EAAGH,EAAEs6B,MAAOp6B,GAAI3C,EAAE01F,eAAe,CAAC5yF,EAAEvkC,QAAS,QAASukC,IAEjF,IAAI4/I,GAAK,CAAE1rH,WAAYv9C,GAAIw9C,YAAa,QAASuO,WAAYi9G,IAC7D,SAASE,GAAIjjJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKpgC,MAAO2gC,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC/EyC,EAAI,IAAMA,GAAKxC,EAAEu9B,MAAMj/D,QACvB,IAAImkC,EAAIzC,EAAG0C,EAAID,EAAE86B,MAAMj/D,OAAQqkC,EAAI3C,EAAEu9B,MAAM/6B,GAAIK,EAAI,IAAIgwB,MAAMnwB,EAAI,GAAI4B,EAAI,EACzE,IAAK,IAAIgG,EAAI,EAAGA,EAAI5H,EAAG4H,IACrBA,IAAM9H,IAAMK,EAAEyB,KAAO7B,EAAE86B,MAAMjzB,IAC/B,IAAIpE,EAAI,GAAIC,EAAI,IAAI0sB,MAAMnwB,GAAG1d,KAAK,GAAIohB,EAAI3D,EAAE86B,MAAMnnC,QAClDgQ,EAAE5D,GAAK,EACP,IAAIgE,EAAI,IAAIqsB,MAAMlwB,GAClB,IAAK,IAAI2H,EAAI,EAAGA,EAAI9D,EAAEloC,OAAQgsC,IAAK,CACjCnE,EAAE3D,GAAK8H,EACP,IAAIC,EAAI68H,GAAG,CAAEpqG,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAOz0C,EAAGm3B,KAAMl3B,KAAQkD,EAAIm4H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,KACnI2D,EAAE8D,GAAKhB,EAAGpD,EAAE+D,KAAKM,GAEnB,OAAOrE,EAAE6R,QAASzN,GAAMzK,EAAE88F,8BAA8BryF,IAAK9D,EAE/D,IAAIm8I,GAAK,CAAE5rH,WAAYr9C,GAAIs9C,YAAa,QAASuO,WAAYm9G,IACzDE,GAAK,MACP,YAAYljJ,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,IAAK,cAC3B,IAAIxqH,EAAIL,EAAGkiI,WAAY5hI,EAAIN,EAAG03C,UAAW50C,EAAI9C,EAAGmiI,OAAQp/H,EAAI/C,EAAGw3D,YAAax0D,EAAID,EAAIN,KAAK3jB,KAAKgkB,EAAIzC,GAClG3hC,KAAK+5F,YAAc,CAACn4D,EAAG0C,GACvB,IAAIC,EAAI,MAAOE,EAAI,WAAYyB,EAAwB,EAApBnC,KAAK7c,MAAMya,EAAI,GAAQmG,EAAInG,EAAI,EAAGoG,EAAI,sDAEtEC,EAAI,GACP5D,EAAIzC,EAAI,IAAMqG,EAAI,uCACc5D,kEAIhC,IAAIgE,EAAI,GACRhE,EAAIzC,EAAI,IAAMyG,EAAI,uCACchE,mDAG1BpkC,KAAK0pJ,SAAW,6CACgBnlH,+DAGhCyD,2GAKAI,2PASE/D,eAAe1C,+DAC6B0C,yEAI1B6B,2lBAgBlB6B,kDAGqB7B,mBACb,IAAN4B,8aAiBFC,yBACe,IAAND,obAeTC,yBACe,IAAND,+eAeTC,mCAEQtD,uBAKpB,SAASggJ,GAAIpjJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGi3D,WAAYz0D,GAAM9C,GAAMw3D,YAAaz0D,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,GAAIE,EAAI,EAAGyB,EAAI7nB,GAAE+9F,mBAAmB,CAAC33E,GAAIH,GAAIwD,EAAIlG,EACxK,MAALsE,IAAc4B,EAAIw8H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQ3B,EAAEsH,KAAK/D,GAAIrD,EAAIpmB,GAAE0+F,iBAAiB,EAAGz4E,GAAG,IACpH,IAAIyD,EAAI1pB,GAAEshG,aAAa1K,gBAAgBntE,EAAEq3B,MAAO16B,EAAGJ,GAAI2D,EAAI3J,GAAEi+B,cAAc,CAACx0B,EAAEq3B,MAAM16B,KAAM2D,EAAIi7H,GAAG,CAAEzkG,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAGn3B,MACtJzD,EAAEsH,KAAKzD,GACP,IAAI8D,EAAInR,GAAG6G,EAAE88B,OAAQvyB,EAAI,CAACa,EAAGC,EAAGC,EAAGE,EAAGC,KACpC,IAAIC,EAAIN,EAAEmyB,MAAM,GAAI5xB,EAAIP,EAAEmyB,MAAM,GAAIlgE,EAAIof,GAAEshG,aAAawB,8BAA8B5zE,EAAGF,GAAIG,EAAI,CAAEg2H,WAAYvkK,EAAGwkK,OAAQl2H,EAAGyrC,UAAW1rC,EAAGwrD,YAAazrD,GAAKK,EAAI,IAAI82I,GAAGh3I,EAAGP,GAAIY,EAAIpM,EAAEo+H,cAAcnyH,EAAG,CAACV,EAAGE,GAAIE,GAC7M,GAAI7I,EAAEsH,KAAKgC,GAAIA,EAAEsxB,MAAM,KAAO9xB,EAC5B,OAAOQ,EACT,IAAI1C,EAAIsxI,GAAG,CAAEv+J,QAASujB,EAAGulC,MAAO,CAAE6E,MAAO,EAAG2b,KAAMn6C,EAAGjT,KAAM,EAAGskC,MAAO,aAAgB7qB,EAAI4vI,GAAG,CAAE7kH,OAAQ,CAAE1zB,EAAGC,GAAKjtB,QAASujB,EAAGulC,MAAO,CAAEqX,KAAM,CAAC9wC,EAAItuC,MAChJ,OAAOslC,EAAEsH,KAAKV,GAAI5G,EAAEsH,KAAKgI,GAAI1H,EAAE0B,EAAGZ,EAAG4G,EAAGzG,EAAGC,IAC1CnC,EAAIiB,EAAE/D,EAAG,qBAAsBhE,EAAG8H,EAAG7H,GAAIoI,EAAI42H,GAAG,CAAEzkG,OAAQ,CAAE1zB,KAAKhtB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAAQgF,EAAIN,EAC5G,GAAS,MAALvG,EAAW,CACb3B,EAAEsH,KAAKY,GACP,IAAIO,EAAI3uB,GAAE+gG,uBAAuBl5E,GACjC6G,EAAIu3H,GAAG,CAAE1lG,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMrsD,KAExD,OAAOzI,EAAEoV,QAAS3M,GAAMvL,EAAE88F,8BAA8BvxF,IAAKD,EAE/D,IAII23I,GAIAC,GAIAC,GAZAC,GAAK,CAAElsH,WAAYn9C,GAAIo9C,YAAa,QAASuO,WAAYs9G,IACzDK,GAAM,CAACngB,GAAIG,GAAIG,GAAIG,GAAIG,GAAII,GAAIE,GAAIE,GAAIO,GAAIE,GAAIG,GAAIG,GAAIG,GAAII,GAAIG,GAAII,GAAIE,GAAII,GAAIE,GAAIE,GAAII,GAAIS,GAAIE,GAAII,GAAIE,GAAIS,GAAIG,GAAII,GAAIjJ,GAAIqJ,GAAIU,GAAIU,GAAIM,GAAIG,GAAIE,GAAIE,GAAIG,GAAII,GAAIG,GAAIG,GAAIO,GAAIE,GAAIE,GAAIQ,GAAII,GAAII,GAAIE,GAAIG,GAAIG,GAAIE,GAAII,GAAII,GAAII,GAAIG,GAAII,GAAIE,GAAIG,GAAII,GAAII,GAAIE,GAAIG,GAAII,GAAIG,GAAII,GAAIE,GAAIK,GAAII,GAAII,GAAII,GAAI7S,GAAI+S,GAAInJ,GAAIsJ,GAAIG,GAAIG,GAAIlT,GAAIsT,GAAII,GAAIE,GAAII,GAAIG,GAAII,GAAIG,GAAII,GAAII,GAAIG,GAAIG,GAAII,GAAIE,GAAIE,GAAII,GAAIE,GAAIE,GAAIE,GAAIE,GAAII,GAAII,GAAII,GAAIY,GAAI/W,GAAImX,GAAIG,GAAIG,GAAIG,GAAIjR,GAAIoR,GAAII,GAAIE,GAAII,GAAII,GAAI9Z,GAAIga,GAAIE,GAAIE,GAAIE,GAAIE,GAAI1S,GAAI2P,GAAIkD,GAAIG,GAAII,GAAI9Z,GAAIia,GAAIG,GAAII,GAAIG,GAAII,GAAIE,GAAIG,GAAIG,GAAIn8G,GAAIy8G,GAAIG,GAAIG,GAAII,GAAIG,GAAII,GAAIG,GAAItX,GAAI+Q,GAAI0G,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIG,GAAIG,GAAIG,GAAIE,GAAIE,GAAIG,GAAIE,GAAIE,GAAIE,GAAIhJ,GAAIzV,GAAI4e,GAAIG,GAAIE,GAAII,GAAIM,GAAIG,GAAI5f,GAAI8f,GAAIE,GAAIM,GAAIzJ,IAC/qB,IAAK,IAAI/5I,KAAKyjJ,GACZjxJ,GAAGwN,GAUL,SAAS0jJ,GAAI1jJ,GACXujJ,GAAKvjJ,EAAE2jJ,KAAKz1H,MAAMrzC,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErJ,SAAS+oK,GAAI5jJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,EACnG,GAAgB,YAAZM,EAAE88B,OAAmC,YAAZt6B,EAAEs6B,MAC7B,MAAM,IAAIz6B,MAAM,+DAClB,IAAMi4C,WAAY33C,EAAG43C,WAAY13C,EAAG02D,WAAYj1D,EAAGm1D,eAAgBvzD,GAAMnG,EAAGoG,EAAItG,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIr3B,EAAIvG,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIj3B,EAAI,EACpJ,GAAS,MAAL/D,EAAW,CACb,IAAIgJ,EAAI5L,EAAEyjJ,UAAU1jL,IAAI6iC,EAAEu8B,QAC1B,GAAuB,IAAnBvzB,EAAE8xB,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,uDAAuDoJ,EAAE8xB,MAAMj/D,WACjFkoC,EAAIiF,EAAEgyB,GAER,IAAInzB,EAAS,MAAL5H,EAAY,EAAI7C,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAIlzB,EAAIw4I,GAAGz+I,GAC7D,GAAS,MAALiG,EACF,MAAM,IAAIlI,MAASiC,EAAH,sEAClB,IAAIgF,EAAI3G,EAAI3C,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAI1yB,EAAIhI,EAAIL,EAAE+6B,MAAM,GAAK/6B,EAAE+6B,MAAM,GAAIpyB,EAAIltB,GAAGoiE,2BAA2BrgD,EAAEu9B,MAAMnnC,MAAM,GAAI,GAAIoM,EAAE+6B,MAAMnnC,MAAM,GAAI,IAAKgV,EAAIvL,EAAEm8F,WAAW,IAAI7wF,EAAG7B,EAAGuB,GAAI7K,EAAE88B,OAAQzxB,EAAIxL,EAAEyjJ,UAAU1jL,IAAIwrC,EAAE4zB,QAAQvB,GAAInyB,EAAI,IAAI3K,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QAASotB,EAAI,IAAI7K,WAAW,IAAIqT,WAAWxR,EAAE+6B,OAAOn/C,QAC/T,OAAO4kK,GAAG78I,EAAGmF,EAAGtL,EAAEu9B,MAAMj/D,OAAQ8nC,EAAGoF,EAAGhJ,EAAE+6B,MAAMj/D,OAAQqkC,EAAGE,EAAG0H,EAAG/D,EAAG8D,EAAGpE,GAAK,EAAGmF,GAAID,GA1BnF,SAAU3L,GACRA,EAAEA,EAAEyhC,QAAU,GAAK,UAAWzhC,EAAEA,EAAEmJ,MAAQ,GAAK,QAASnJ,EAAEA,EAAE0hC,KAAO,GAAK,OAAQ1hC,EAAEA,EAAE7G,OAAS,GAAK,SAAU6G,EAAEA,EAAE2hC,UAAY,GAAK,aADnI,CAEG0hH,KAAOA,GAAK,KAEf,SAAUrjJ,GACRA,EAAEA,EAAE8jJ,OAAS,GAAK,SAAU9jJ,EAAEA,EAAErN,KAAO,GAAK,OAAQqN,EAAEA,EAAEnN,MAAQ,GAAK,QAASmN,EAAEA,EAAE/P,MAAQ,GAAK,QAAS+P,EAAEA,EAAE+jJ,UAAY,GAAK,YAAa/jJ,EAAEA,EAAE/J,QAAU,GAAK,UAAW+J,EAAEA,EAAEvc,IAAM,GAAK,MADzL,CAEG6/J,KAAOA,GAAK,KAsBf,IAAIU,GAAK,CAAE1sH,WAAYz8C,GAAI08C,YAAa,OAAQmN,UAAWg/G,GAAK59G,WAAY89G,IAC5E,SAASK,GAAGjkJ,EAAGC,GACb,IAAIG,EACJ,SAASE,EAAEyC,GACT3C,EAAI2C,EAAE4gJ,KAAKz1H,MAAMluB,EAAG,KAAM,CAAC,SAAU,SAAU,WAEjD,SAASO,EAAEwC,GACT,IAAMlmB,QAASmmB,EAAGu6B,QAAU1zB,EAAG5G,IAAQF,EAAGG,EAAIF,EAAE6gJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAI56B,EAAIJ,EAAEu5F,WAAWt5F,EAAE66B,MAAO79B,GAAMgD,EAAEo6B,OAAQx4B,EAAI7B,EAAE6gJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GACpJ,OAAoC,IAA7BhhC,GAAEi+B,cAAc73B,EAAE06B,QAAgB19B,EAAE8C,EAAGmgJ,GAAGpgJ,EAAEo6B,OAAQx4B,GAAIzB,EAEjE,MAAO,CAAEk0B,WAAYt3B,EAAGu3B,YAAa,OAAQmN,UAAWpkC,EAAGwlC,WAAYvlC,GAEzE,IAAI2jJ,GAAKD,GAAG5iL,IACR8iL,GAAKF,GAAG1iL,IACR6iL,GAAKH,GAAGxiL,IACZ,SAAS4iL,GAAGrkJ,EAAGC,EAAIG,GACjB,IAAIE,EACJ,SAASC,EAAEyC,GACT1C,EAAI0C,EAAE2gJ,KAAKz1H,MAAMluB,EAAG,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,WAEjG,SAAS+C,EAAEC,GACT,IAAMnmB,QAASomB,EAAGs6B,OAAQr6B,GAAMF,GAAKA,EAAGI,EAAGgI,EAAGvG,GAAM3B,EAAGuD,EAAIxD,EAAE4gJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIt3B,EAAIzD,EAAE4gJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAIr3B,EAAS,MAALvG,EAAYA,EAAIgD,EAAEi6B,MAAOt2B,EAAI/pB,GAAE4jE,2BAA2Bx9C,EAAE06B,MAAOj5B,EAAEi5B,OAAQjzB,EAAI5H,EAAEs5F,WAAWx1F,EAAGJ,GAChO,GAA2B,IAAvB3J,GAAEi+B,cAAcl0B,GAClB,OAAO8D,EACT,IAAIC,EAAI,IAAI5J,WAAW,IAAIqT,WAAWnR,EAAE06B,OAAOn/C,QAASkrB,EAAI,IAAI3I,WAAW,IAAIqT,WAAW1P,EAAEi5B,OAAOn/C,QAASysB,EAAInI,EAAE4gJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GAC1I,MAAO,MAAO19B,EAAEmG,EAAGqE,EAAG1H,EAAE06B,MAAMj/D,OAAQ6nC,EAAGmD,EAAGhF,EAAEi5B,MAAMj/D,OAAQwkL,GAAGjgJ,EAAEi6B,OAAQjyB,IAAlE,GAAyEP,EAElF,MAAO,CAAEysB,WAAYt3B,EAAGu3B,YAAa,OAAQmN,UAAWnkC,EAAGulC,WAAY/iC,GAEzE,IAEIuhJ,GAFAC,IAAM,EACNC,GAAKH,GAAGliL,GAAIoiL,IAEhB,SAASE,GAAIzkJ,GACXskJ,GAAKtkJ,EAAE2jJ,KAAKz1H,MAAM7rD,GAAI,KAAM,CAAC,QAAS,SAAU,SAAU,WAE5D,SAASqiL,GAAI1kJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,EAAGM,EAAIF,EAAEm8F,WAAWt8F,EAAG,GAAG69B,MAAO79B,EAAG,GAAGo9B,OACxE,GAAiC,IAA7BrgC,GAAEi+B,cAAc36B,EAAEw9B,OACpB,OAAOx9B,EACT,IAAIC,EAAIN,EAAGizB,IAAKjwB,GAAM7C,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,IAAKj7B,EAAI,IAAI7B,WAAW,IAAIqT,WAAWhU,GAAG5hB,QAASqkB,EAAI5C,EAAEyjJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GACjI,OAAOsmH,GAAGvhJ,EAAGxC,EAAE1hC,OAAQwkL,GAAG/iJ,EAAE+8B,OAAQr6B,GAAI1C,EAE1C,IAAIqkJ,GAAK,CAAErtH,WAAYj1D,GAAIk1D,YAAa,OAAQmN,UAAW+/G,GAAK3+G,WAAY4+G,IAC5E,SAASE,GAAG5kJ,GACV,IAAMu9B,QAAU1zB,EAAG5J,GAAMpjB,QAASujB,GAAMJ,EACxC,GAAiB,WAAbC,EAAGo9B,MACL,OAAOrjC,GAAGoG,EAAEw/B,SAAS3/B,EAAGs/B,QAASt/B,EAAG69B,MAAO79B,EAAGo9B,OAChD,IAAI/8B,EAAIF,EAAEm8F,WAAWt8F,EAAG69B,MAAO79B,EAAGo9B,OAAQ98B,EAAIH,EAAEykJ,mBAAmB5kJ,GACnE,OAAOG,EAAEykJ,mBAAmBvkJ,GAAGt/B,IAAIu/B,GAAID,EAEzC,IACIwkJ,GADAC,GAAK,CAAEztH,WAAY3rD,GAAI4rD,YAAa,OAAQuO,WAAY8+G,IAE5D,SAASI,GAAIhlJ,GACX8kJ,GAAK9kJ,EAAE2jJ,KAAKz1H,MAAMr0C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,WAEzF,SAASorK,GAAGjlJ,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAIO,EAAGwC,GAAKmiJ,GAAIjlJ,EAAG4J,EAAEi0B,MAAOx9B,EAAE03D,MAAOh1D,GAAI,EACpF,IAAK,IAAI+D,EAAI,EAAGA,EAAIhE,EAAElkC,OAAQkoC,IAC5BhE,EAAEgE,KAAOA,IAAM/D,GAAI,GACrB,IAAIC,EAAIkiJ,GAAIllJ,EAAG4J,EAAEi0B,MAAOx9B,EAAE03D,MAAO90D,EAAI,CAAEq8B,OAAQt/B,EAAG4J,EAAE01B,OAAQzB,MAAOv9B,EAAG88B,MAAOp9B,EAAG4J,EAAEwzB,OAClF,GAAIr6B,EAAG,CACL,IAAI+D,EAAI69I,GAAG,CAAErnH,OAAQt9B,EAAIpjB,QAASujB,IAClC,OAAO2G,EAAE+2B,MAAQ76B,EAAG8D,EAEtB,IAAI3D,EAAIhD,EAAEm8F,WAAWt5F,EAAGC,EAAEm6B,OAAQx4B,EAAIzE,EAAEyjJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAIv3B,EAAIrG,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIt3B,EAAI,IAAIxF,WAAW,IAAIqT,WAAWxR,GAAGpkB,QAASgoB,EAAI,IAAIzF,WAAW,IAAIqT,WAAWrR,EAAE46B,OAAOn/C,QAC/L,OAAOmmK,GAAGjgJ,EAAG8B,EAAGzD,EAAE46B,MAAMj/D,OAAQwkL,GAAGngJ,EAAEm6B,OAAQ52B,EAAGC,EAAG3D,EAAElkC,QAASukC,EAEhE,SAAS+hJ,GAAInlJ,EAAGC,GACd,IAAIG,EAAI,IAAIgzB,MAAMpzB,EAAEnhC,QACpB,IAAK,IAAIyhC,EAAI,EAAGA,EAAIF,EAAEvhC,OAAQyhC,IAC5BF,EAAEE,GAAKN,EAAEC,EAAGK,IACd,OAAOF,EAET,SAAS8kJ,GAAIllJ,EAAGC,GACd,IAAIG,EAAI,GAAIE,EAAI,GAChB,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAEnhC,SAAU0hC,EACrB,IAATP,EAAEO,IAAYH,EAAEoK,KAAKxK,EAAEO,IAAkB,IAAbP,EAAEC,EAAGM,KAAaD,EAAEkK,KAAKvK,EAAGM,IAC1D,IAAK,IAAIA,EAAI,EAAGA,EAAID,EAAEzhC,SAAU0hC,EAAG,CACjC,IAAIwC,GAAK,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAI1C,EAAEzhC,SAAUmkC,EAC9B1C,EAAE0C,IAAMzC,KAAa,IAAPwC,GAAYzC,EAAEyC,GAAKzC,EAAE0C,MAAQD,EAAIC,GACjD1C,EAAEyC,GAAKxC,EAET,MAAO,CAACH,EAAGE,GAEb,IAaI8kJ,GAbAC,GAAK,CAAE/tH,WAAYz9C,GAAI09C,YAAa,OAAQuO,WAAYm/G,GAAIvgH,UAAWsgH,IAC3E,SAASM,GAAGtlJ,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE89B,MAAOv9B,EAAIP,EAAE89B,MAAMj/D,OAAQkkC,EAAI/F,GAAE29B,eAAe16B,EAAIK,GAAI0C,EAAID,EAAGE,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,GAAI2C,EAAI,KAAME,GAAI,EACvH,GAAS,MAALH,EAAW,CACb,IAAI4B,EAAI,IAAIuuB,MAAM7yB,GAClB,IAAK,IAAIoG,EAAI,EAAGA,EAAI9B,EAAEhmC,OAAQ8nC,IAC5B9B,EAAE8B,GAAKrG,EAAE2C,EAAE0D,IACb3D,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQ0hC,GAAI2C,EAAI+hJ,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAG7J,GAAK2lC,MAAO,CAAEqyB,KAAM/0D,GAAKpmB,QAASujB,IAC7F,IAAIqG,EAAIrG,EAAEyjJ,UAAU1jL,IAAI6/B,EAAEu/B,QAAQvB,GAClC59B,EAAEyjJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,KAAOv3B,IAAMrD,GAAI,GAE7C,MAAO,CAAEmiJ,WAAYriJ,EAAGsiJ,aAAcziJ,EAAG0iJ,KAAMziJ,EAAG0iJ,mBAAoBtiJ,GAGxE,SAASuiJ,GAAI3lJ,GACXolJ,GAAKplJ,EAAE2jJ,KAAKz1H,MAAM3rD,GAAI,KAAM,CAAC,2BAE/B,SAASqjL,GAAI5lJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG8C,EAAIjD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI56B,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAClN,GAAI0G,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnC56B,EAAIyB,EAAG3B,EAAIwI,EAEb,IAAI3E,EAAI3D,EAAE06B,MAAMj/D,OAChBme,GAAE27F,2BAA2B,MAAOlyE,EAAGM,GACvC,IAAK8D,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAOr3B,GAAIoD,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAG7H,EAAEq6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnConH,GAAGliJ,EAAG2G,EAAG6B,GAEX,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IACIy6I,GADAC,GAAK,CAAExuH,WAAY/0D,GAAIg1D,YAAa,OAAQmN,UAAWihH,GAAK7/G,WAAY8/G,IAE5E,SAASG,GAAI/lJ,GACX6lJ,GAAK7lJ,EAAE2jJ,KAAKz1H,MAAMzrD,GAAI,KAAM,CAAC,2BAE/B,SAASujL,GAAIhmJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG8C,EAAIjD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI56B,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAClN,GAAI0G,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnC56B,EAAIyB,EAAG3B,EAAIwI,EAEb,IAAI3E,EAAI3D,EAAE06B,MAAMj/D,OAChBme,GAAE27F,2BAA2B,MAAOlyE,EAAGM,GACvC,IAAK8D,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAOr3B,GAAIoD,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAG7H,EAAEq6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnC6nH,GAAG3iJ,EAAG2G,EAAG6B,GAEX,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IAAI66I,GAAK,CAAE3uH,WAAY70D,GAAI80D,YAAa,OAAQmN,UAAWqhH,GAAKjgH,WAAYkgH,IAC5E,SAASE,GAAGlmJ,GACV,IAAIC,EACJ,SAASG,EAAEG,GACTN,EAAKM,EAAEojJ,KAAKz1H,MAAMluB,EAAG,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,WAEtE,SAASM,EAAEC,GACT,IAAM1jB,QAASkmB,EAAGw6B,OAAQv6B,EAAG2iC,MAAO1iC,GAAM1C,GAAKo1C,KAAMzyC,GAAMD,GAAK4G,EAAGzG,GAAMJ,EAAG6B,EAAI9B,EAAE8gJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIv3B,EAAI5B,EAAG6B,EAAItD,GAAKmiJ,WAAY5+I,EAAG8+I,KAAM1+I,EAAG2+I,mBAAoB76I,GAAMy6I,GAAGliJ,EAAGF,EAAGH,GACzL,GAAI8H,EAAG,CACL,IAAIe,EAAI7I,EAAE8gJ,UAAU1jL,IAAIwmC,EAAE44B,QAAQvB,GAClCpyB,IAAM/G,IAAM6B,EAAIC,EAAGF,EAAImF,GAEzB,IAAId,EAAIpE,EAAEo3B,MAAMnnC,MAAM,GAAI,GAAIkT,EAAI9G,EAAEw5F,WAAWzxF,EAAG,SAAUM,EAAIrI,EAAE8gJ,UAAU1jL,IAAI0pC,EAAE01B,QAAQvB,GAAItyB,EAAI1O,GAAEi+B,cAAcpxB,EAAEi0B,OAAQnyB,EAAIjF,EAAEo3B,MAAM/2B,EAAE,IAC1I,OAAO9G,EAAGwG,EAAG48I,GAAG38I,EAAE22B,OAAQ3xB,EAAGC,EAAGP,GAAIP,GAAK9H,EAAE+hC,YAAYn+B,EAAE44B,QAAS11B,EAEpE,MAAO,CAAEytB,WAAYt3B,EAAGu3B,YAAa,OAAQmN,UAAWtkC,EAAG0lC,WAAYxlC,GAEzE,IAOI6lJ,GAPAC,GAAKF,GAAGvjL,IACR0jL,GAAKH,GAAGrjL,IACRyjL,GAAKrC,GAAGlhL,IACRwjL,GAAKtC,GAAGhhL,IACRujL,GAAKvC,GAAG9gL,IACRsjL,GAAKpC,GAAGhhL,IAAI,GACZqjL,GAAKzC,GAAG1gL,IAEZ,SAASojL,GAAI3mJ,GACXmmJ,GAAKnmJ,EAAE2jJ,KAAKz1H,MAAMzqD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEjK,SAASmjL,GAAI5mJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,EAAGO,EAAIN,EAAG4J,EAAG9G,EAAIzC,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,IAAMqc,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAMhD,EAAGyE,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAI5B,EAAEszC,aAAczxC,EAAI7B,EAAEuzC,YAAazxC,EAAI9B,EAAE0yC,QAAQgC,IAAKxyC,EAAIlC,EAAE0yC,QAAQkC,MAAO5uC,EAAIhG,EAAE0yC,QAAQiC,OAAQ1uC,EAAIjG,EAAE0yC,QAAQz5E,KAAM+rC,EAAIhF,EAAEozC,aAAc7sC,EAAIvG,EAAEqzC,YAAaxsC,EAAI7G,EAAEkzC,WAChX,GAAqB,iBAAjBlzC,EAAE+yC,WACJ,MAAM,IAAIh1C,MAAM,6CAA6CiC,EAAE+yC,2CACjE,GAAwB,IAApB/yC,EAAE2zC,eAA4C,IAArB3zC,EAAE0zC,eAC7B,MAAM,IAAI31C,MAAM,0EAA0EiC,EAAE0zC,mBAAmB1zC,EAAE2zC,mBACnH,IAAI7sC,EAAIrL,EAAEi8F,WAAW13F,EAAE6zC,SAAU,WAAY9sC,EAAItL,EAAEujJ,UAAU1jL,IAAIwrC,EAAE4zB,QAAQvB,GAC3E,OAAOmoH,GAAGpjJ,EAAGxC,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIr3B,EAAGC,EAAGC,EAAGI,EAAG8D,EAAGC,EAAGjB,EAAGuB,EAAGM,EAAGE,GAAID,EAElF,IACIk7I,GADAC,GAAK,CAAExvH,WAAY7zD,GAAI8zD,YAAa,OAAQmN,UAAWiiH,GAAK7gH,WAAY8gH,IAE5E,SAASG,GAAI/mJ,GACX6mJ,GAAK7mJ,EAAE2jJ,KAAKz1H,MAAM,YAAa,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE1P,SAAS84H,GAAIhnJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,EAAG00C,WAAYx0C,GAAM9C,EAAGuE,EAAI7nB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG,EAAGC,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEm8F,WAAW13F,EAAE6zC,SAAUn4C,EAAE88B,OAC9N,OAAOwpH,GAAGzmJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIn5B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEi0C,QAASj0C,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE+zC,SAAU/zC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEk0C,YAAal0C,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAEq0C,cAAer0C,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEo0C,qBAAsBp0C,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQoC,MAAO90C,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAEtY,IACIwgJ,GADAC,GAAK,CAAE5vH,WAAY3zD,GAAI4zD,YAAa,OAAQmN,UAAWqiH,GAAKjhH,WAAYkhH,IAE5E,SAASG,GAAInnJ,GACXinJ,GAAKjnJ,EAAE2jJ,KAAKz1H,MAAM,gBAAiB,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE5R,SAASk5H,GAAIpnJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI7nB,GAAEi9F,kBAAkBl3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEm8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OACpN,OAAO4pH,GAAG7mJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIn5B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEi0C,QAASj0C,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE+zC,SAAU/zC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEk0C,YAAal0C,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAEq0C,cAAer0C,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEo0C,qBAAsBp0C,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQoC,MAAO90C,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,KAAM+mC,EAAEm0C,YAAan0C,EAAEszC,aAActzC,EAAEuzC,aAAc3xC,EAEpb,IACI4gJ,GADAC,GAAK,CAAEhwH,WAAYzzD,GAAI0zD,YAAa,OAAQmN,UAAWyiH,GAAKrhH,WAAYshH,IAE5E,SAASG,GAAIvnJ,GACXqnJ,GAAKrnJ,EAAE2jJ,KAAKz1H,MAAM,cAAe,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEpN,SAASs5H,GAAIxnJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,GAAM5C,EAAG8C,EAAIpmB,GAAEg9F,kBAAkBj3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,GAAI2B,EAAIzE,EAAEm8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OAC7L,OAAOgqH,GAAGjnJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAI56B,EAAEu0C,UAAWv0C,EAAE20C,WAAY30C,EAAEy0C,SAAUz0C,EAAE00C,QAAS10C,EAAEo0C,UAAWp0C,EAAEq0C,SAAUr0C,EAAE60C,aAAc70C,EAAE80C,YAAa90C,EAAEm1C,eAAgBn1C,EAAEo1C,cAAep1C,EAAEi1C,sBAAuBj1C,EAAEk1C,qBAAsBl1C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,KAAMslC,EAAE+0C,aAAc/0C,EAAEg1C,aAAcvzC,EAErU,IAAI4iJ,GAAK,CAAEnwH,WAAYvzD,GAAIwzD,YAAa,OAAQmN,UAAW6iH,GAAKzhH,WAAY0hH,IAC5E,SAASE,GAAG1nJ,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,GAAMJ,GAAK6J,EAAGvJ,GAAML,GAAM69B,MAAOv9B,GAAMH,EAAG2C,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIhG,GAAEy8B,uBAAuBl5B,EAAGwC,GACjI,OAAO/F,GAAE26B,OAAO50B,IAAM/F,GAAEi+B,cAAcj4B,GAAI,IAAM,cAAcA,iBAAiB1C,EAAEw9B,yEAA0E99B,EAAEnjB,QAAQyjD,OAAOhgC,EAAEi/B,QAAS,CAAEA,OAAQj/B,EAAEi/B,OAAQzB,MAAO96B,EAAGq6B,MAAO/8B,EAAE+8B,OAEhO,IACIsqH,GADAC,GAAK,CAAEtwH,WAAYvjD,GAAIwjD,YAAa,OAAQuO,WAAY4hH,IAE5D,SAASG,GAAI7nJ,GACX2nJ,GAAK3nJ,EAAE2jJ,KAAKz1H,MAAM/pD,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,WAE7G,SAAS2jL,GAAI9nJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,GAAM9C,GAAM46C,WAAY73C,EAAG83C,WAAY73C,GAAM3C,EACtG,GAAgB,YAAZC,EAAE88B,OAAmC,YAAZt6B,EAAEs6B,MAC7B,MAAM,IAAIz6B,MAAM,8DAClB,IAAIM,EAAI3C,EAAEu9B,MAAMj/D,OAAQukC,EAAIL,EAAE+6B,MAAMj/D,OAAQgmC,EAAI7B,EAAIzC,EAAEu9B,MAAM56B,EAAI,GAAK3C,EAAEu9B,MAAM56B,EAAI,GAAIuD,EAAIxD,EAAIF,EAAE+6B,MAAM16B,EAAI,GAAKL,EAAE+6B,MAAM16B,EAAI,GAAIsD,EAAI1D,EAAIzC,EAAEu9B,MAAM56B,EAAI,GAAK3C,EAAEu9B,MAAM56B,EAAI,GAAIyD,EAAI1D,EAAIF,EAAE+6B,MAAM16B,EAAI,GAAKL,EAAE+6B,MAAM16B,EAAI,GAAI2D,EAAIxG,EAAEu9B,MAAMnnC,MAAM,GAAI,GAAIkU,EAAI9H,EAAE+6B,MAAMnnC,MAAM,GAAI,GAAImU,EAAI9N,GAAEi+B,cAAcl0B,GAAI8C,EAAI7M,GAAEi+B,cAAcpwB,GAAIa,EAAIltB,GAAGoiE,2BAA2BrgD,EAAEu9B,MAAMnnC,MAAM,GAAI,GAAIoM,EAAE+6B,MAAMnnC,MAAM,GAAI,IAAIpX,OAAO,CAACmnB,EAAGC,IAC7Y3J,GAAE26B,OAAO9yB,IAAM4B,EAAG,IAAM,kCAAkC5B,WAAW4B,6BAA6BlG,EAAEu9B,aAAa/6B,EAAE+6B,wBAAwB96B,oBAAoBC,iBAC/J,IAAI0I,EAAI3I,EAAI,CAAC8H,EAAGjG,EAAG6B,GAAK,CAACoE,EAAGpE,EAAG7B,GAAI+G,EAAI3I,EAAI,CAAC4G,EAAGlD,EAAGF,GAAK,CAACoD,EAAGpD,EAAGE,GAAIkF,EAAI67I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQI,EAAI27I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOlyB,KAAQI,EAAI5L,EAAEyjJ,UAAU1jL,IAAI0rC,EAAE0zB,QAAQvB,GAAI/xB,EAAI7L,EAAEyjJ,UAAU1jL,IAAI4rC,EAAEwzB,QAAQvB,GAAI9xB,EAAIlJ,EAAI6I,EAAEiyB,MAAM,GAAKjyB,EAAEiyB,MAAM,GAAIlgE,EAAIqlC,EAAI8I,EAAE+xB,MAAM,GAAK/xB,EAAE+xB,MAAM,GAAI3xB,EAAIzJ,KAAK3W,IAAI+e,EAAGjB,GAAIwC,EAAIjM,EAAEm8F,WAAW,CAACpwF,EAAGD,EAAGtuC,GAAIiuC,EAAEwxB,OAAQ7wB,EAAIpM,EAAEyjJ,UAAU1jL,IAAIksC,EAAEkzB,QAAQvB,GAAIl0B,EAAI,IAAI5I,WAAW,IAAIqT,WAAW1I,EAAEiyB,OAAOn/C,QAAS6zB,EAAI,IAAItR,WAAW,IAAIqT,WAAWxI,EAAE+xB,OAAOn/C,QACjgB,OAAOgpK,GAAG37I,EAAGlC,EAAG+B,EAAEiyB,MAAMj/D,OAAQotC,EAAGuG,EAAGzG,EAAE+xB,MAAMj/D,OAAQmkC,EAAGC,EAAGuJ,GAAIpM,EAAE0kC,YAAYj5B,EAAE0zB,QAASn/B,EAAE0kC,YAAY/4B,EAAEwzB,QAASlzB,EAAEyxB,MAAQpyB,EAAGW,EAEjI,IAAI07I,GAAK,CAAEzwH,WAAYnzD,GAAIozD,YAAa,OAAQmN,UAAWmjH,GAAK/hH,WAAYgiH,IAC5E,SAASE,GAAGhoJ,GACV,IAAMu9B,QAAU1zB,EAAG5J,GAAM0lC,OAASwV,MAAO/6C,EAAGy9B,KAAMv9B,GAAKzjB,QAAS0jB,GAAMP,GAAI+C,EAAGC,GAAK1L,GAAG88E,iBAAiBn0E,EAAIG,EAAGE,GAAI2C,EAAI3L,GAAG08E,iBAAiB/zE,EAAG69B,MAAO/6B,EAAGC,GAAIE,EAAI3C,EAAEq/B,SAAS3/B,EAAGs/B,QAASn8B,EAAI7C,EAAEg8F,WAAWv5F,EAAG/C,EAAGo9B,OAAQx4B,EAAI7H,GAAEm7B,eAAel4B,EAAG69B,OAAQr3B,EAAIlG,EAAEsjJ,UAAU1jL,IAAIijC,EAAEm8B,QAC1Q,GAAIt8B,EAAG,CACL,IAAI8D,EAAIzP,GAAGo8E,kBAAkB3wE,EAAG8B,GAChC,MAAoB,WAAb5E,EAAGo9B,MAAqB52B,EAAEwhJ,YAAc/kJ,EAAEvM,MAAMoQ,EAAGA,EAAI/J,GAAEi+B,cAAcj4B,IAAMzC,EAAEskJ,mBAAmBzhJ,GAAGpiC,IAAIkiC,EAAE0Q,SAAS7M,EAAGA,EAAI/J,GAAEi+B,cAAcj4B,KAAMI,EAE1J,GAAiB,WAAbnD,EAAGo9B,MAAoB,CACzB,IAAIt2B,EAAIwzF,GAAGr3F,EAAGH,EAAGC,EAAG/C,EAAG69B,MAAO79B,EAAGo9B,OACjC,OAAO52B,EAAEwhJ,YAAclhJ,EAAG3D,EAE5B,IAAIsD,EAAInG,EAAEskJ,mBAAmBzhJ,GAAIuD,EAAI1G,EAAG69B,MAAMj/D,OAC9C,GAAU,IAAN8nC,EACFuhJ,GAAIhlJ,EAAG2B,EAAE,GAAI6B,EAAG3D,EAAGC,QAChB,GAAU,IAAN2D,EACPwhJ,GAAIjlJ,EAAG2B,EAAE,GAAIA,EAAE,GAAI6B,EAAG3D,EAAGC,QACtB,GAAU,IAAN2D,EACPyhJ,GAAIllJ,EAAG2B,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI6B,EAAG3D,EAAGC,OAC5B,CACH,IAAI+D,EAAIwzF,GAAGr3F,EAAGH,EAAGC,EAAG/C,EAAG69B,MAAO79B,EAAGo9B,OACjC32B,EAAE1lC,IAAI+lC,GAER,OAAO3D,EAET,SAAS8kJ,GAAIloJ,EAAGC,EAAIG,EAAGE,EAAGC,GACxB,IAAIwC,EAAI,EAAGC,EAAI1C,EAAE,GAAI2C,EAAI3C,EAAE,GAAI4C,EAAIF,EAAIzC,EAAE,GACzC,IAAK,IAAI6C,EAAIJ,EAAGI,EAAIF,EAAGE,IAAK,CAC1B,IAAIyB,EAAIzB,EAAInD,EAAKgD,EACjB7C,EAAEp/B,IAAIg/B,EAAE4T,SAAS/O,EAAGA,EAAItE,EAAE,IAAKwC,GAAIA,GAAKxC,EAAE,IAG9C,SAAS4nJ,GAAInoJ,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC3B,IAAIC,EAAI,EAAGC,EAAI1C,EAAE,GAAI2C,EAAI3C,EAAE,GAAI6C,EAAI7C,EAAE,GAAIsE,EAAI5B,EAAIF,EAAE,GAAI0D,EAAIvD,EAAIH,EAAE,GACjE,IAAK,IAAI2D,EAAIzD,EAAGyD,EAAI7B,EAAG6B,IACrB,IAAK,IAAIC,EAAIzD,EAAGyD,EAAIF,EAAGE,IAAK,CAC1B,IAAII,EAAIL,EAAIzG,EAAK0G,EAAIvG,EAAIgD,EACzB9C,EAAEt/B,IAAIg/B,EAAE4T,SAAS7M,EAAGA,EAAIhE,EAAE,IAAKC,GAAIA,GAAKD,EAAE,IAGhD,SAASqlJ,GAAIpoJ,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC9B,IAAIC,EAAI,EAAGC,EAAIH,EAAE,GAAIK,EAAIL,EAAE,GAAI8B,EAAI9B,EAAE,GAAI0D,EAAIvD,EAAIF,EAAE,GAAI0D,EAAItD,EAAIJ,EAAE,GAAI2D,EAAI9B,EAAI7B,EAAE,GAAI+D,EAAIhE,EAAE,GACzF,IAAK,IAAI8H,EAAI3H,EAAG2H,EAAIpE,EAAGoE,IACrB,IAAK,IAAIC,EAAI1H,EAAG0H,EAAIpE,EAAGoE,IACrB,IAAK,IAAIjB,EAAIhF,EAAGgF,EAAIlD,EAAGkD,IAAK,CAC1B,IAAIuB,EAAIP,EAAI5K,EAAK6K,EAAI1K,EAAIyJ,EAAIvJ,EAAIyG,EACjCxG,EAAEv/B,IAAIg/B,EAAE4T,SAASxI,EAAGA,EAAIpI,EAAE,IAAKC,GAAIA,GAAKD,EAAE,IAGlD,IAAIqlJ,GAAK,CAAE/wH,WAAYnhD,GAAIohD,YAAa,OAAQuO,WAAYkiH,IAC5D,SAASM,GAAItoJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAG44C,MAAO34C,GAAM1C,EAAG2C,EAAIF,EAAEtkC,OAAO,CAACorC,EAAGuB,IAAMvB,EAAIuB,GAAIlI,EAAIlmB,GAAE8+F,YAAYv7E,EAAEu9B,MAAO/6B,EAAGE,GAAIG,EAAIpmB,GAAE2+F,YAAYz4E,EAAErkC,OAAQkkC,EAAElkC,QAASgmC,EAAI7nB,GAAEg/F,oBAAoBz7E,EAAEu9B,MAAO/6B,EAAGE,GAAIwD,EAAIzpB,GAAEm/F,oBAAoBn5E,EAAGD,EAAElkC,QAAS6nC,EAAI1pB,GAAEq/F,aAAax3E,EAAG7B,EAAGD,EAAElkC,QAAS8nC,EAAI+gJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ6D,EAAIk+I,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQyH,EAAI68I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQiG,EAAIk9I,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO10C,EAAGo3B,KAAMn3B,KACxjB,OAAOtG,EAAE0kC,YAAYn+B,EAAE44B,QAASn/B,EAAE0kC,YAAY/9B,EAAEw4B,QAASn/B,EAAE0kC,YAAYj6B,EAAE00B,QAASz0B,EAEpF,IACIy9I,GADAC,GAAK,CAAElxH,WAAYjzD,GAAIkzD,YAAa,OAAQuO,WAAYwiH,IAE5D,SAASG,GAAIzoJ,GACXuoJ,GAAKvoJ,EAAE2jJ,KAAKz1H,MAAM3pD,GAAI,KAAM,CAAC,SAAU,SAAU,UAAW,SAAU,SAAU,WAElF,SAASmkL,GAAI1oJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM3C,GAAKy9B,KAAM76B,GAAM1C,EAAG2C,EAA2C,IAAvCF,EAAE+6B,MAAMr/D,OAAO,CAACgoC,EAAGC,IAAMD,EAAIC,EAAG,GAAUxD,EAAuB,IAAnB3C,EAAEu9B,MAAMj/D,OAAe,CAACmkC,GAAK,CAACzC,EAAEu9B,MAAM,GAAI96B,GAAII,EAAInD,EAAGs8F,WAAWr5F,EAAGH,EAAEs6B,OAChN,SAASx4B,EAAE4B,GACT,OAAOxG,EAAG4jJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAEpC,OAAOuqH,GAAG1jJ,EAAEtE,GAAIyC,EAAGC,EAAG4B,EAAE9B,GAAIsgJ,GAAGtgJ,EAAEs6B,OAAQx4B,EAAEzB,IAAKA,EAElD,IAAIulJ,GAAK,CAAErxH,WAAY/yD,GAAIgzD,YAAa,OAAQmN,UAAW+jH,GAAK3iH,WAAY4iH,IACxEE,IAAM,EACNC,GAAKxE,GAAG5/K,GAAImkL,IAChB,SAASE,GAAI9oJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgJ,GAAI1I,EAAG2I,GAAI1I,GAAMN,EAAI8C,EAAI3C,EAAEykJ,mBAAmBvkJ,GAAI0C,EAAI5C,EAAEykJ,mBAAmBtkJ,GAAI0C,EAAIjmB,GAAE4jE,2BAA2BxtB,MAAMwB,KAAK7xB,GAAIqwB,MAAMwB,KAAK5xB,IAChL,OAAO5C,EAAEm8F,WAAW,CAACt5F,EAAEpkC,QAAS,aAAS,EAAQ,IAAI01C,WAAWtR,IAElE,IAAI8lJ,GAAK,CAAEzxH,WAAY3yD,GAAI4yD,YAAa,OAAQuO,WAAYgjH,IAC5D,SAASE,GAAGhpJ,GACV,IAAMu9B,QAAU1zB,EAAG5J,GAAM0lC,OAAStI,MAAOj9B,GAAKvjB,QAASyjB,GAAMN,EAAGO,EAAID,EAAEi8F,WAAWt8F,EAAG69B,MAAO19B,GAAI2C,EAAIzC,EAAEukJ,mBAAmB5kJ,GACxH,OAAOK,EAAEukJ,mBAAmBtkJ,GAAGv/B,IAAI+hC,GAAIxC,EAEzC,IAEI0oJ,GAFAC,GAAK,CAAE5xH,WAAYvyD,GAAIwyD,YAAa,OAAQuO,WAAYkjH,IACxDG,GAAKlF,GAAGh/K,IAEZ,SAASmkL,GAAIppJ,GACXipJ,GAAKjpJ,EAAE2jJ,KAAKz1H,MAAM/oD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAASkkL,GAAIrpJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9C,aAAct6C,EAAGu6C,aAAct6C,GAAM1C,EAAG2C,EAAI7C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI96B,EAAI9C,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAAQj6B,EAAIhD,EAAEyjJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAC3M,OAAOirH,GAAGhmJ,EAAGF,EAAGC,EAAGI,GAAIF,EAEzB,IAAIomJ,GAAK,CAAEhyH,WAAYnyD,GAAIoyD,YAAa,OAAQmN,UAAW0kH,GAAKtjH,WAAYujH,IAC5E,SAASE,GAAGvpJ,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,EAAGM,EAAItD,GAAE29B,eAAe36B,EAAE2lC,MAAMgQ,KAAM11C,EAAG,GAAG69B,OAAO,GAAIv9B,EAAIN,EAAGizB,IAAKvsB,GAAMA,EAAEm3B,OAC5G9gD,GAAE47F,uBAAuBr4E,EAAGD,GAC5B,IAAIyC,EAAI/lB,GAAE42F,gBAAgB3zE,EAAGizB,IAAKvsB,GAAMA,EAAEm3B,OAAQx9B,GAAI0C,EAAI/C,EAAGouB,OAAQ1nB,GAAM3J,GAAEi+B,cAAct0B,EAAEm3B,OAAS,GACtG,GAAiB,IAAb96B,EAAEnkC,OACJ,OAAO+lL,GAAG,CAAErnH,OAAQ,CAAE1zB,EAAG7G,EAAE,IAAMnmB,QAASujB,IAC5C,IAAI6C,EAAI7C,EAAEm8F,WAAWx5F,EAAG9C,EAAG,GAAGo9B,OAC9B,GAA2B,IAAvBrgC,GAAEi+B,cAAcl4B,GAClB,OAAOE,EACT,GAAmB,WAAfD,EAAE,GAAGq6B,MAAoB,CAC3B,IAAI12B,EAAI3D,EAAEkwB,IAAKxnB,IACb,IAAIE,EAAI,EAAE,EAAG5O,GAAEi+B,cAAcvvB,EAAEoyB,MAAMnnC,MAAM2J,KAC3C,OAAOonJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOlyB,OACxD7E,EAAIJ,EAAEusB,IAAKxnB,IAAM,CAAGsyF,KAAM59F,EAAEw/B,SAASl0B,EAAE6zB,QAASzB,MAAOpyB,EAAEoyB,SAC7D/6B,EAAI/lB,GAAE42F,gBAAgBjtE,EAAEusB,IAAKxnB,GAAMA,EAAEoyB,OAAQ,GAC7C,IAAIjzB,EAAsB,IAAlBlE,EAAE,GAAGm3B,MAAM,GAAUhzB,EAAIgsF,GAAG/vF,EAAGhE,EAAG9C,EAAG,GAAGo9B,MAAOxyB,GAAIhB,EAAI7sB,GAAE42F,gBAAgB5wE,EAAEkwB,IAAKxnB,GAAMA,EAAEoyB,OAAQx9B,GACxG2C,EAAE66B,MAAQj0B,EACV,IAAIuB,EAAIhL,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAC1B,OAAOn0B,EAAE68I,YAAcjrK,GAAE29F,uBAAuB7vE,GAAInE,EAAE2R,QAAS5M,GAAMtL,EAAE0kC,YAAYp5B,EAAE6zB,SAAUt8B,EAEjG,IAAIC,EAAIlG,GAAEi+B,cAAcj4B,EAAE,GAAG86B,MAAMnnC,MAAM,EAAG2J,IAAK8C,EAAI,EAAGyB,EAAI7B,EAAEkwB,IAAKvsB,IACjE,IAAII,EAAI/J,GAAEi+B,cAAct0B,EAAEm3B,MAAMnnC,MAAM2J,IACtC,OAAO8C,GAAK2D,EAAGA,IACbN,EAAIzD,EAAEkwB,IAAKvsB,GAAMvG,EAAEykJ,mBAAmBl+I,IAAKD,EAAItG,EAAEykJ,mBAAmB5hJ,GACxE,IAAK,IAAI0D,EAAI,EAAGA,EAAIzD,EAAGyD,IAAK,CAC1B,IAAII,EAAIJ,EAAIvD,EACZ,IAAK,IAAIyH,EAAI,EAAGA,EAAIpE,EAAE5nC,OAAQgsC,IAAK,CACjC,IAAIC,EAAIjG,EAAEgG,GAAIhB,EAAIlD,EAAImE,EAAGM,EAAI3E,EAAEoE,GAAG+I,SAAS/J,EAAGA,EAAIiB,GAClDpE,EAAE1lC,IAAIoqC,EAAGrE,GAAIA,GAAK+D,GAGtB,OAAO7H,EAET,IACIumJ,GADAC,GAAK,CAAEnyH,WAAY7xD,GAAI8xD,YAAa,OAAQuO,WAAYyjH,IAE5D,SAASG,GAAI1pJ,GACXwpJ,GAAKxpJ,EAAE2jJ,KAAKz1H,MAAMvoD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEnN,SAASgkL,GAAI3pJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,EAAI+C,EAAI1C,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI/6B,EAAI3C,EAAEujJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,IAAMc,QAAS57B,EAAG+6C,UAAW76C,EAAGjU,IAAK0V,EAAGy1C,gBAAiB7zC,EAAGmxC,WAAYlxC,GAAMtG,EAAGuG,EAAI3pB,GAAEk9F,wBAAwBxzE,GAAIK,EAAI/pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAGE,EAAGyB,EAAG4B,GAAG,EAAOE,GAAIkE,EAAI9D,EAAEoxC,aAAcrtC,EAAI/D,EAAEqxC,YAAavuC,EAAI9C,EAAEwwC,QAAQgC,IAAKnuC,EAAIrE,EAAEwwC,QAAQkC,MAAO/tC,EAAI3E,EAAEwwC,QAAQiC,OAAQ7tC,EAAI5E,EAAEwwC,QAAQz5E,KAAM8tC,EAAI7E,EAAEwxC,eAAgB1sC,EAAI9E,EAAEyxC,cAAezsC,EAAIhF,EAAEkxC,aAAcjsC,EAAIjF,EAAEmxC,YAAajsC,EAAIlF,EAAEgxC,WAAY7rC,EAAInF,EAAEixC,YAAap6E,EAAuB,SAAnBmpC,EAAEwwC,QAAQmC,KAAkB,EAAI,EAChlB,GAAqB,iBAAjB3yC,EAAE6wC,WACJ,MAAM,IAAIh1C,MAAM,oDAAoDmE,EAAE6wC,2CACxE,IAAIzrC,EAAI7L,EAAEi8F,WAAWx1F,EAAE2xC,SAAU,WAAYrsC,EAAI/L,EAAEujJ,UAAU1jL,IAAIgsC,EAAEozB,QAAQvB,GAC3E,OAAOwrH,GAAGxmJ,EAAGzC,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAI76B,EAAG4H,EAAGC,EAAGjB,EAAGuB,EAAGM,EAAGC,EAAG/tC,EAAGguC,EAAGC,EAAGE,EAAGC,EAAGC,EAAGC,EAAGG,GAAIF,EAEjG,IACIy9I,GADAC,GAAK,CAAEvyH,WAAY3xD,GAAI4xD,YAAa,OAAQmN,UAAWglH,GAAK5jH,WAAY6jH,IAE5E,SAASG,GAAI9pJ,GACX4pJ,GAAK5pJ,EAAE2jJ,KAAKz1H,MAAMnoD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEnS,SAASgkL,GAAI/pJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM3C,GAAK0+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,EAAGm7C,WAAY15C,GAAMvE,EAAGmG,EAAI,EAAGC,EAAI1pB,GAAEk9F,wBAAwBh3E,GAAIyD,EAAI3pB,GAAEy8F,kBAAkB50E,EAAG9B,EAAE+6B,MAAO96B,EAAGyD,EAAGxD,EAAGG,GAAG,EAAOsD,IAAMixC,UAAW5wC,EAAGoxC,aAActtC,EAAGutC,YAAattC,EAAGitC,WAAYluC,EAAGguC,SAAUzsC,EAAG0sC,QAASpsC,EAAGssC,YAAarsC,EAAG6rC,UAAW5rC,EAAG6rC,SAAU5rC,EAAGosC,aAAclsC,EAAGmsC,YAAalsC,GAAMrF,EAAGsF,EAAIpB,EAAI,EAAIlE,EAAE4wC,QAAQgC,IAAKrtC,EAAIpB,EAAI,EAAInE,EAAE4wC,QAAQz5E,KAAMF,EAAqB,iBAAjB+oC,EAAEixC,WAA+BzrC,EAAInP,GAAEm7B,eAAexxB,EAAE8xC,SAAUpsC,EAAIrP,GAAEm7B,eAAe53B,EAAEu9B,QAAStxB,EAAG1C,EAAG0I,GAAKxV,GAAEm7B,eAAep1B,EAAE+6B,OAAQvxB,EAAIJ,EAAE,GAAI2jB,EAAIlyD,EAAIuuC,EAAE,GAAKA,EAAE,GAAI4jB,EAAInyD,EAAIuuC,EAAE,GAAK,EAAGojB,EAAI3xD,EAAI,EAAIuuC,EAAE,GAAIqjB,EAAKnjB,EAAE,GAAI3G,EAAK9nC,EAAIyuC,EAAE,GAAKA,EAAE,GAAI4G,EAAKr1C,EAAIyuC,EAAE,GAAK,EAAGsC,EAAK/wC,EAAI,EAAIyuC,EAAE,GAAI+G,EAAKnT,EAAGs8F,WAAW51F,EAAE8xC,QAAS,WAAYzyC,EAAK/F,EAAG4jJ,UAAU1jL,IAAIizC,EAAGmsB,QAAQvB,GAAI3qB,EAAKpT,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI1qB,EAAKrT,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GACr4B,OAAO4rH,GAAGv2I,EAAIC,EAAIvM,EAAG8D,EAAGC,EAAGM,EAAGM,EAAG7B,EAAG+B,EAAGC,EAAGF,EAAGI,EAAGC,EAAGC,EAAGC,EAAGM,EAAG1C,EAAG0I,EAAGjG,EAAGujB,EAAGC,EAAGR,EAAGC,EAAI9pB,EAAIuN,EAAItE,EAAI3I,GAAKoN,EAErG,IACI42I,GADAC,GAAK,CAAE3yH,WAAYvxD,GAAIwxD,YAAa,OAAQmN,UAAWolH,GAAKhkH,WAAYikH,IAE5E,SAASG,GAAIlqJ,GACXgqJ,GAAKhqJ,EAAE2jJ,KAAKz1H,MAAMjoD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErQ,SAASkkL,GAAInqJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAC/G,GAAgB,YAAZC,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,yCAAyCrC,EAAE88B,OAC7D,GAAgB,YAAZt6B,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,8CAA8CG,EAAEs6B,OAClE,IAAIj6B,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGE,EAAGD,GAAI4B,EAAIzE,EAAEm8F,WAAWn5F,EAAEs1C,SAAUn4C,EAAE88B,OACvF,OAAO2sH,GAAG5pJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAI56B,EAAEu0C,UAAWv0C,EAAE01C,QAAS11C,EAAEy0C,SAAUz0C,EAAE00C,QAAS10C,EAAE20C,WAAY30C,EAAEw1C,SAAUx1C,EAAEo0C,UAAWp0C,EAAEq0C,SAAUr0C,EAAE40C,YAAa50C,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,YAAa90C,EAAE81C,cAAe91C,EAAEm1C,eAAgBn1C,EAAEo1C,cAAep1C,EAAE41C,YAAa51C,EAAE+0C,aAAc/0C,EAAEg1C,YAAah1C,EAAEm0C,QAAQoC,MAAOv2C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO+mC,EAExZ,IACIulJ,GADAC,GAAK,CAAE/yH,WAAYrxD,GAAIsxD,YAAa,OAAQmN,UAAWwlH,GAAKpkH,WAAYqkH,IAE5E,SAASG,GAAItqJ,GACXoqJ,GAAKpqJ,EAAE2jJ,KAAKz1H,MAAM/nD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErQ,SAASokL,GAAIvqJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG01C,YAAaz1C,GAAM5C,EAC7G,GAAgB,YAAZC,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,0CAA0CrC,EAAE88B,OAC9D,GAAgB,YAAZt6B,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,8CAA8CG,EAAEs6B,OAClE,IAAIj6B,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO56B,EAAGF,EAAG,EAAGC,GAAI4B,EAAIzE,EAAEm8F,WAAWn5F,EAAEu1C,YAAa51C,EAAEs6B,OACpF,OAAO+sH,GAAGhqJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAI56B,EAAEu0C,UAAWv0C,EAAE01C,QAAS11C,EAAEy0C,SAAUz0C,EAAE00C,QAAS10C,EAAE20C,WAAY30C,EAAEw1C,SAAUx1C,EAAEo0C,UAAWp0C,EAAEq0C,SAAUr0C,EAAE40C,YAAa50C,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,YAAa90C,EAAE81C,cAAe91C,EAAEm1C,eAAgBn1C,EAAEo1C,cAAep1C,EAAE41C,YAAa51C,EAAE+0C,aAAc/0C,EAAEg1C,YAAah1C,EAAEm0C,QAAQoC,MAAOv2C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO+mC,EAExZ,IACI2lJ,GADAC,GAAK,CAAEnzH,WAAYnxD,GAAIoxD,YAAa,OAAQmN,UAAW4lH,GAAKxkH,WAAYykH,IAE5E,SAASG,GAAI1qJ,GACXwqJ,GAAKxqJ,EAAE2jJ,KAAKz1H,MAAM7nD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErQ,SAASskL,GAAI3qJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM9Q,IAAK6T,EAAG87B,QAAS77B,EAAGs7C,WAAYr7C,GAAM5C,EACjH,GAAgB,YAAZC,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,0CAA0CrC,EAAE88B,OAC9D,GAAgB,YAAZt6B,EAAEs6B,MACJ,MAAM,IAAIz6B,MAAM,8CAA8CG,EAAEs6B,OAClE,IAAIj6B,EAAIpmB,GAAE08F,kBAAkBx2E,EAAGH,EAAE+6B,MAAO76B,EAAG,EAAGD,GAAI6B,EAAIzE,EAAEm8F,WAAWn5F,EAAEq1C,QAASl4C,EAAE88B,OAChF,OAAOmtH,GAAGpqJ,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAI56B,EAAEu0C,UAAWv0C,EAAE01C,QAAS11C,EAAEy0C,SAAUz0C,EAAE00C,QAAS10C,EAAE20C,WAAY30C,EAAEw1C,SAAUx1C,EAAEo0C,UAAWp0C,EAAEq0C,SAAUr0C,EAAE40C,YAAa50C,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,YAAa90C,EAAE81C,cAAe91C,EAAEm1C,eAAgBn1C,EAAEo1C,cAAep1C,EAAE41C,YAAa51C,EAAE+0C,aAAc/0C,EAAEg1C,YAAah1C,EAAEm0C,QAAQoC,MAAOv2C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO+mC,EAExZ,IAGI+lJ,GAIAC,GAPAC,GAAK,CAAExzH,WAAYjxD,GAAIkxD,YAAa,OAAQmN,UAAWgmH,GAAK5kH,WAAY6kH,IACxEI,GAAK9G,GAAG19K,IACRykL,GAAK/G,GAAGx9K,IAMZ,SAASwkL,GAAIjrJ,GACX6qJ,GAAK7qJ,EAAE2jJ,KAAKz1H,MAAMvnD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,WAExH,SAASukL,GAAIlrJ,GACX,IAAmO6K,GAA7NhuB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK27D,OAAQp7D,EAAGq7D,mBAAoB74D,EAAG84D,SAAU74D,GAAM1C,GAAKnY,MAAO8a,EAAGw4D,MAAOv4D,EAAGw4D,OAAQt4D,GAAMhD,EAAGyE,EAAI3B,EAAE46B,MAAM,IAAKr3B,EAAGC,GAAK1D,EAAG2D,EAAI,CAAC9B,EAAG4B,EAAGC,EAAGzD,EAAE66B,MAAM,IAAK/2B,EAAI9G,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAC9M,YAAZt8B,EAAEo6B,QAAwBxyB,EAAIm+I,GAAG,CAAEnsK,QAASojB,EAAIs9B,OAAQ,CAAE1zB,EAAG5G,GAAK0iC,MAAO,CAAEtI,MAAO,aAAgBt2B,EAAI9G,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,SACzH,IAAIz0B,EAAI/D,EAAEi3B,GAAIn0B,EAAI5J,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAI5yB,EAAInL,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAItyB,EAAIzL,EAAGs8F,WAAW51F,EAAG,WAAYgF,EAAI1L,EAAG4jJ,UAAU1jL,IAAIurC,EAAE6zB,QAAQvB,GAAIpyB,EAAI,IAAI1K,WAAW,IAAIqT,WAAWtR,EAAE66B,OAAOn/C,QACnM,OAAOksK,GAAG//I,EAAGjB,EAAGuB,EAAGvG,EAAG+G,EAAGnF,EAAGC,EAAGkkJ,GAAGrqJ,GAAIwC,EAAG4I,GAAS,MAALd,GAAa5K,EAAG6kC,YAAYj6B,EAAE00B,QAAS7zB,GAXtF,SAAU1L,GACRA,EAAEA,EAAEmrJ,SAAW,GAAK,WAAYnrJ,EAAEA,EAAEorJ,QAAU,GAAK,WADrD,CAEGR,KAAOA,GAAK,KAWf,IACIS,GADAC,GAAK,CAAEh0H,WAAY3wD,GAAI4wD,YAAa,OAAQmN,UAAWumH,GAAKnlH,WAAYolH,IAE5E,SAASK,GAAIvrJ,GACXqrJ,GAAKrrJ,EAAE2jJ,KAAKz1H,MAAMrnD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,WAEjF,SAAS2kL,GAAIxrJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EAAG4C,EAAI3C,EAAEu9B,MAAMj/D,OACpHm+B,GAAE26B,OAAmB,YAAZp3B,EAAE88B,OAAmC,UAAZ98B,EAAE88B,MAAmB,IAAM,4BAA4B98B,EAAE88B,qCAC3F,IAAIj6B,EAAIpmB,GAAE+9F,mBAAmB,CAACh4E,GAAIG,GAAI2B,EAAItE,EACpC,OAAN6C,IAAeyB,EAAIogJ,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEqyB,KAAM50D,GAAKvmB,QAASujB,KACvE,IAAIqG,EAAIzpB,GAAE0+F,iBAAiB,EAAGx4E,GAAG,GACjClmB,GAAE27F,2BAA2B,UAAW,CAAClyE,GAAIvD,GAC7C,IAAIwD,EAAItG,EAAEm8F,WAAW13F,EAAEi5B,MAAOj5B,EAAEw4B,OAAQ12B,EAAI9B,EAAEi5B,MAAMr3B,GAAIM,EAAI3G,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAInzB,EAAIzK,EAAEyjJ,UAAU1jL,IAAIumC,EAAE64B,QAAQvB,GACxHqtH,GAAGtkJ,EAAG/D,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAG0D,EAAGkE,EAAGw4I,GAAG9iJ,EAAE88B,QACvC,IAAIvyB,EAAIpE,EACR,GAAU,OAANtD,EAAY,CACd,IAAIyG,EAAI7sB,GAAE+gG,uBAAuB36E,GACjC0H,EAAIm6I,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGnD,GAAKi/B,MAAO,CAAEqyB,KAAMnuD,GAAKhtB,QAASujB,IAAMA,EAAE0kC,YAAYjgC,EAAE06B,QAASn/B,EAAE0kC,YAAYp+B,EAAE64B,QAEzG,OAAOz0B,EAET,IACI2gJ,GADAC,GAAK,CAAEp0H,WAAYzwD,GAAI0wD,YAAa,OAAQmN,UAAW6mH,GAAKzlH,WAAY0lH,IAE5E,SAASG,GAAI3rJ,GACXyrJ,GAAKzrJ,EAAE2jJ,KAAKz1H,MAAMnnD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,WAEjF,SAAS6kL,GAAI5rJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EAAG4C,EAAI3C,EAAEu9B,MAAMj/D,OACpHm+B,GAAE26B,OAAmB,YAAZp3B,EAAE88B,OAAmC,UAAZ98B,EAAE88B,MAAmB,IAAM,2BAA2B98B,EAAE88B,qCAC1F,IAAIj6B,EAAIpmB,GAAE+9F,mBAAmB,CAACh4E,GAAIG,GAAI2B,EAAItE,EACpC,OAAN6C,IAAeyB,EAAIogJ,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEqyB,KAAM50D,GAAKvmB,QAASujB,KACvE,IAAIqG,EAAIzpB,GAAE0+F,iBAAiB,EAAGx4E,GAAG,GACjClmB,GAAE27F,2BAA2B,SAAU,CAAClyE,GAAIvD,GAC5C,IAAIwD,EAAItG,EAAEm8F,WAAW13F,EAAEi5B,MAAOj5B,EAAEw4B,OAAQ12B,EAAI9B,EAAEi5B,MAAMr3B,GAAIM,EAAI3G,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAInzB,EAAIzK,EAAEyjJ,UAAU1jL,IAAIumC,EAAE64B,QAAQvB,GACxHytH,GAAG1kJ,EAAG/D,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAG0D,EAAGkE,EAAGw4I,GAAG9iJ,EAAE88B,QACvC,IAAIvyB,EAAIpE,EACR,GAAU,OAANtD,EAAY,CACd,IAAIyG,EAAI7sB,GAAE+gG,uBAAuB36E,GACjC0H,EAAIm6I,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGnD,GAAKi/B,MAAO,CAAEqyB,KAAMnuD,GAAKhtB,QAASujB,IAAMA,EAAE0kC,YAAYjgC,EAAE06B,QAASn/B,EAAE0kC,YAAYp+B,EAAE64B,QAEzG,OAAOz0B,EAET,IACI+gJ,GADAC,GAAK,CAAEx0H,WAAYvwD,GAAIwwD,YAAa,OAAQmN,UAAWinH,GAAK7lH,WAAY8lH,IAE5E,SAASG,GAAI/rJ,GACX6rJ,GAAK7rJ,EAAE2jJ,KAAKz1H,MAAM,gBAAiB,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,UAAW,SAAU,SAAU,UAAW,WAE7H,SAAS89H,GAAIhsJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM3C,GAAKy9B,KAAM76B,EAAG68C,aAAc58C,GAAM3C,EAAG4C,EAA2C,IAAvCH,EAAE+6B,MAAMr/D,OAAO,CAACioC,EAAGC,IAAMD,EAAIC,EAAG,GAAUvD,EAAuB,IAAnB7C,EAAEu9B,MAAMj/D,OAAe,CAACmkC,GAAK,CAACzC,EAAEu9B,MAAM,GAAI96B,GAAI6B,EAAI5E,EAAGs8F,WAAWn5F,EAAGL,EAAEs6B,OACjO,SAAS52B,EAAEC,GACT,OAAOzG,EAAG4jJ,UAAU1jL,IAAIumC,EAAE64B,QAAQvB,GAEpC,OAAO6tH,GAAGplJ,EAAElG,GAAI,IAAIW,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QAAS4hB,EAAEu9B,MAAMj/D,OAAQmkC,EAAGE,EAAGuD,EAAE1D,GAAIsgJ,GAAGtgJ,EAAEs6B,OAAQp6B,EAAGwD,EAAE5B,IAAKA,EAErH,IACIonJ,GADAC,GAAK,CAAE50H,WAAYnwD,GAAIowD,YAAa,OAAQmN,UAAWqnH,GAAKjmH,WAAYkmH,IAE5E,SAASG,GAAInsJ,GACXisJ,GAAKjsJ,EAAE2jJ,KAAKz1H,MAAM7mD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,WAE5G,SAAS+kL,GAAIpsJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMH,GAAK4/C,UAAWj9C,EAAG60C,WAAY50C,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAM,GAAI56B,EAAU,SAANF,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAI16B,EAAU,SAANJ,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIj5B,EAAU,SAAN7B,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIr3B,EAAIvD,EAAIH,EAAG2D,EAAItD,EAAIL,EAAG4D,EAAI9B,GAAK9B,EAAIA,GAAIgE,EAAU,SAAN/D,EAAe,CAACC,EAAGwD,EAAGC,EAAGC,GAAK,CAAC1D,EAAG0D,EAAGF,EAAGC,GAAImE,EAAI5K,EAAGs8F,WAAWx1F,EAAG,WAAY8C,EAAI5J,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI5yB,EAAI,IAAIlK,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAe53B,EAAEu9B,QAAQn/C,QAAS+sB,EAAI,IAAIxK,WAAW,IAAIqT,WAAWxN,GAAGpoB,QAASgtB,EAAI,IAAIzK,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAepxB,IAAIpoB,QAASitB,EAAI3L,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GACnmB,OAAOiuH,GAAGpiJ,EAAG9G,EAAS,SAANC,EAAe,EAAI,EAAGoI,EAAG7K,EAAEu9B,MAAMj/D,OAAS,EAAG6sC,EAAGC,EAAG5E,EAAEloC,OAAQ+sC,GAAIf,EAEnF,IACIwhJ,GADAC,GAAK,CAAEh1H,WAAYjwD,GAAIkwD,YAAa,OAAQmN,UAAWynH,GAAKrmH,WAAYsmH,IAE5E,SAASG,GAAIvsJ,GACXqsJ,GAAKrsJ,EAAE2jJ,KAAKz1H,MAAM3mD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEnN,SAASilL,GAAIxsJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,EAAI+C,EAAI1C,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI/6B,EAAI3C,EAAEujJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,IAAMc,QAAS57B,EAAG+6C,UAAW76C,EAAGjU,IAAK0V,EAAGy1C,gBAAiB7zC,GAAMrG,EAAGsG,EAAS,MAALtD,EAAY,CAAC,EAAG,GAAKA,EAAGuD,EAAI3pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAGwD,EAAG7B,EAAG4B,GAAG,GAAOM,EAAIJ,EAAEwxC,aAActtC,EAAIlE,EAAEyxC,YAAattC,EAAInE,EAAE4wC,QAAQgC,IAAK1vC,EAAIlD,EAAE4wC,QAAQkC,MAAOruC,EAAIzE,EAAE4wC,QAAQiC,OAAQ9tC,EAAI/E,EAAE4wC,QAAQz5E,KAAM6tC,EAAIhF,EAAE4xC,eAAgB3sC,EAAIjF,EAAE6xC,cAAe3sC,EAAIlF,EAAEsxC,aAAclsC,EAAIpF,EAAEuxC,YAAalsC,EAAIrF,EAAEoxC,WAAY9rC,EAAItF,EAAEqxC,YAAa9rC,EAAuB,SAAnBvF,EAAE4wC,QAAQmC,KAAkB,EAAI,EACvjB,GAAqB,iBAAjB/yC,EAAEixC,WACJ,MAAM,IAAIh1C,MAAM,mEAAmE+D,EAAEixC,2CACvF,IAAIh6E,EAAI0iC,EAAEi8F,WAAW51F,EAAE+xC,SAAU,WAAYvsC,EAAI7L,EAAEujJ,UAAU1jL,IAAIvC,EAAE2hE,QAAQvB,GAC3E,OAAOquH,GAAGrpJ,EAAGzC,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAI76B,EAAG8D,EAAG8D,EAAGC,EAAGjB,EAAGuB,EAAGM,EAAGQ,EAAGP,EAAGC,EAAGC,EAAGE,EAAGC,EAAGC,EAAGE,GAAIvuC,EAEjG,IACI6uL,GADAC,GAAK,CAAEp1H,WAAY/vD,GAAIgwD,YAAa,OAAQmN,UAAW6nH,GAAKzmH,WAAY0mH,IAE5E,SAASG,GAAI3sJ,GACXysJ,GAAKzsJ,EAAE2jJ,KAAKz1H,MAAM,OAAQ,KAAM,CAAC,SAAU,SAAU,SAAU,WAEjE,SAAS0+H,GAAI5sJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAIvD,GAAEi+B,cAAc36B,EAAEw9B,OAAQ/6B,EAAI3C,EAAEm8F,WAAW,IAAIj8F,EAAEw9B,SAAUx9B,EAAEw9B,OAAQx9B,EAAE+8B,OAC9H,OAAOovH,GAAGrsJ,EAAEyjJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAIqlH,GAAG/iJ,EAAE+8B,OAAQ98B,EAAGH,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,IAAKj7B,EAEzF,IACI8pJ,GADAC,GAAK,CAAEx1H,WAAYzvD,GAAI0vD,YAAa,OAAQmN,UAAWioH,GAAK7mH,WAAY8mH,IAE5E,SAASG,GAAI/sJ,GACX6sJ,GAAK7sJ,EAAE2jJ,KAAKz1H,MAAMnmD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEzM,SAASilL,GAAIhtJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAC/G,GAAIC,EAAE88B,QAAUt6B,EAAEs6B,MAChB,MAAM,IAAIz6B,MAAM,+DAA+DrC,EAAE88B,aAAat6B,EAAEs6B,SAClG,IAAIj6B,EAAIpmB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGC,EAAG,OAAQC,GAAI2B,EAAIzE,EAAEm8F,WAAWn5F,EAAEs1C,SAAUn4C,EAAE88B,OACnG,OAAOwvH,GAAGzsJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAAIqlH,GAAG9iJ,EAAE88B,OAAQj6B,EAAEu0C,UAAWv0C,EAAE20C,WAAY30C,EAAEy0C,SAAUz0C,EAAE00C,QAAS10C,EAAEo0C,UAAWp0C,EAAEq0C,SAAUr0C,EAAE60C,aAAc70C,EAAE80C,YAAa90C,EAAEm1C,eAAgBn1C,EAAEo1C,cAAep1C,EAAE+0C,aAAc/0C,EAAEg1C,YAAah1C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO+mC,EAE/T,IACIooJ,GADAC,GAAK,CAAE51H,WAAYvvD,GAAIwvD,YAAa,OAAQmN,UAAWqoH,GAAKjnH,WAAYknH,IAE5E,SAASG,GAAIntJ,GACXitJ,GAAKjtJ,EAAE2jJ,KAAKz1H,MAAMjmD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEnN,SAASmlL,GAAIptJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGu7C,GAAIt7C,GAAM/C,GAAM6+B,QAAS77B,EAAG9T,IAAK+T,EAAG+6C,UAAW76C,GAAM9C,EACtH,GAAIC,EAAE88B,QAAUt6B,EAAEs6B,OAAS98B,EAAE88B,QAAUr6B,EAAEq6B,MACvC,MAAM,IAAIz6B,MAAM,oFAAoFrC,EAAE88B,UAAUt6B,EAAEs6B,cAAcr6B,EAAEq6B,SACpI,IAAIx4B,EAAI7nB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO76B,EAAGC,EAAG,OAAQE,GAAIqD,EAAIrG,EAAEm8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OAChG,OAAO4vH,GAAG7sJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIqlH,GAAG9iJ,EAAE88B,OAAQx4B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEszC,aAActzC,EAAEuzC,YAAavzC,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAE7V,IACI4mJ,GADAC,GAAK,CAAEh2H,WAAYrvD,GAAIsvD,YAAa,OAAQmN,UAAWyoH,GAAKrnH,WAAYsnH,IAE5E,SAASG,GAAIvtJ,GACXqtJ,GAAKrtJ,EAAE2jJ,KAAKz1H,MAAM/lD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEnN,SAASqlL,GAAIxtJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGu7C,GAAIt7C,GAAM/C,GAAM6+B,QAAS77B,EAAG9T,IAAK+T,EAAG+6C,UAAW76C,GAAM9C,EACtH,GAAIC,EAAE88B,QAAUt6B,EAAEs6B,OAAS98B,EAAE88B,QAAUr6B,EAAEq6B,MACvC,MAAM,IAAIz6B,MAAM,mFAAmFrC,EAAE88B,UAAUt6B,EAAEs6B,cAAcr6B,EAAEq6B,SACnI,IAAIx4B,EAAI7nB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO76B,EAAGC,EAAG,OAAQE,GAAIqD,EAAIrG,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAChG,OAAOgwH,GAAGjtJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIqlH,GAAG9iJ,EAAE88B,OAAQx4B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEszC,aAActzC,EAAEuzC,YAAavzC,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAE7V,IAEIgnJ,GAFAC,GAAK,CAAEp2H,WAAYnvD,GAAIovD,YAAa,OAAQmN,UAAW6oH,GAAKznH,WAAY0nH,IACxEG,GAAK1J,GAAGt7K,IAEZ,SAASilL,GAAI5tJ,GACXytJ,GAAKztJ,EAAE2jJ,KAAKz1H,MAAMrlD,GAAI,KAAM,CAAC,SAAU,SAAU,WAEnD,SAASglL,GAAI7tJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKs+C,GAAIh+C,EAAGtD,EAAGuD,GAAMN,EAAI8C,EAAI3C,EAAEm8F,WAAWh8F,EAAEu9B,MAAO,WAAY96B,EAAKC,GAAM7C,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GACrI,OAAOyvH,GAAGzqJ,EAAEzC,GAAIyC,EAAE1C,GAAI0C,EAAED,IAAKA,EAE/B,IAAI+qJ,GAAK,CAAEx2H,WAAYzuD,GAAI0uD,YAAa,OAAQmN,UAAWkpH,GAAK9nH,WAAY+nH,IACxEE,IAAM,EACNC,GAAK3J,GAAGp7K,GAAI8kL,GAAK,QACjBE,GAAKhK,GAAG96K,IACR+kL,GAAKjK,GAAG56K,GAAI,WAChB,SAAS8kL,GAAGnuJ,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAKgkD,MAAOzjD,GAAMN,GAAMgkD,IAAKlhD,GAAM3C,EAAG4C,EAAIzC,EAAEu9B,MAAMj/D,OAAQokC,EAAI1C,EAAEu9B,MAAMnnC,QAASuM,EAAIH,EAC9H,OAAOA,EAAI,IAAM/F,GAAE26B,SAAS30B,EAAI,IAAMD,EAAG,IAAM,mCAAmCC,EAAI,OAAOA,MAAOE,EAAIF,EAAID,EAAI,GAAIE,EAAEoW,OAAOnW,EAAG,EAAG,GAAIwkJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO76B,KAE5L,IAAImrJ,GAAK,CAAE92H,WAAY/tD,GAAIguD,YAAa,OAAQuO,WAAYqoH,IACxDE,GAAKpK,GAAGx6K,GAAI,WAChB,SAAS6kL,GAAGtuJ,GACV,IAAM2lC,OAAS7H,MAAO79B,EAAIrgC,MAAOwgC,EAAGi9B,MAAO/8B,GAAKzjB,QAAS0jB,GAAMP,EAAG+C,EAAIxC,EAAEg8F,WAAWt8F,EAAIK,GACvF,OAAOC,EAAEskJ,mBAAmB9hJ,GAAGxd,KAAK6a,GAAI2C,EAE1C,IACIwrJ,GADAC,GAAK,CAAEl3H,WAAYztD,GAAI0tD,YAAa,OAAQuO,WAAYwoH,IAE5D,SAASG,GAAIzuJ,GACXuuJ,GAAKvuJ,EAAE2jJ,KAAKz1H,MAAMnkD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,WAEjF,SAAS2kL,GAAI1uJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK7X,MAAOmY,GAAML,EAAIM,EAAIH,EAAEm8F,WAAWj8F,EAAEw9B,MAAOx9B,EAAE+8B,OAAQt6B,EAAI3C,EAAEyjJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAIh7B,EAAI5C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,IAAK/6B,EAAGC,EAAGE,EAAGyB,GAAKvE,EAAEw9B,MAChL,OAAOywH,GAAGxrJ,EAAGE,EAAGC,EAAGE,EAAGyB,EAAG7B,GAAIzC,EAE/B,IAIIouJ,GAJAC,GAAK,CAAEt3H,WAAYvtD,GAAIwtD,YAAa,OAAQuO,WAAY4oH,GAAKhqH,UAAW+pH,IACxEI,GAAK5K,GAAGh6K,IACR6kL,IAAM,EACNC,GAAK1K,GAAGl6K,GAAI2kL,IAEhB,SAASE,GAAIhvJ,GACX2uJ,GAAK3uJ,EAAE2jJ,KAAKz1H,MAAM3jD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE3F,SAAS0kL,GAAIjvJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKi8C,gBAAiB17C,GAAMD,GAAKuJ,EAAG9G,EAAGtW,KAAMuW,EAAGg5C,SAAU/4C,EAAG84C,OAAQ74C,EAAGmoC,MAAOjoC,GAAMhD,EAAGyE,EAAI5E,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIv3B,EAAIxG,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAIt3B,EAAIzG,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAIr3B,EAAS,MAALzD,EAAYjD,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAK,EAAGj3B,EAAS,MAAL3D,EAAYnD,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAK,EAAGnzB,EAAI5K,EAAGs8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OAC/W,GAAiC,IAA7BrgC,GAAEi+B,cAAcl4B,EAAE+6B,OACpB,OAAOjzB,EACT,IAAIC,EAAI7K,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GACnC,OAAO2wH,GAAG9pJ,EAAG4B,EAAGC,EAAGC,EAAGI,EAAGxG,EAAGuK,GAAID,EAElC,IACIqkJ,GADAC,GAAK,CAAE73H,WAAY/sD,GAAIgtD,YAAa,OAAQmN,UAAWsqH,GAAKlpH,WAAYmpH,IAE5E,SAASG,GAAIpvJ,GACXkvJ,GAAKlvJ,EAAE2jJ,KAAKz1H,MAAMzjD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE3P,SAAS4kL,GAAIrvJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAG66C,UAAWp5C,EAAG+yC,WAAYnxC,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAM3G,EAAGyK,EAAI7tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAG2B,EAAGzB,EAAGsD,GAAIoE,EAAIw4I,GAAG38I,GACzR,GAAS,MAALmE,EACF,MAAM,IAAIlI,MAAS+D,EAAH,sEAClB,IAAIkD,EAAIvJ,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI5yB,EAAI9K,EAAEujJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAItyB,EAAIb,EAAEmtC,YAAarsC,EAAI,EAC/F,GAAS,MAAL3I,EAAW,CACb,IAAIiQ,EAAK3S,EAAEujJ,UAAU1jL,IAAI6iC,EAAEu8B,QAC3B,GAAwB,IAApBtsB,EAAG6qB,MAAMj/D,OACX,MAAM,IAAI+jC,MAAM,sDAAsDqQ,EAAG6qB,MAAMj/D,WACjF,GAAIo0C,EAAG6qB,MAAM,KAAOpyB,EAClB,MAAM,IAAI9I,MAAM,2BAA2BqQ,EAAG6qB,wDAAwDpyB,MACxGC,EAAIsH,EAAG+qB,GAET,IAAIpyB,EAAIf,EAAEstC,aAActsC,EAAIhB,EAAEutC,YAAarsC,EAAIlB,EAAE0sC,QAAQgC,IAAKvtC,EAAInB,EAAE0sC,QAAQkC,MAAOxtC,EAAIpB,EAAE0sC,QAAQiC,OAAQttC,EAAIrB,EAAE0sC,QAAQz5E,KAAMF,EAAIitC,EAAE0tC,eAAgBpsC,EAAItB,EAAE2tC,cAAensC,EAAIxB,EAAEotC,aAAczrC,EAAI3B,EAAEqtC,YAAapuC,EAAIe,EAAEktC,WAAYvlC,EAAuB,SAAnB3H,EAAE0sC,QAAQmC,KAAkB,EAAI,EAAGntC,EAAI1B,EAAE8sC,UAAW7nB,EAAIjlB,EAAEgtC,SAAU9nB,EAAIllB,EAAEitC,QAC/S,GAAU,SAANrxC,EACF,MAAM,IAAI7D,MAAM,yDAAyD6D,0BAC3E,IAAI8oB,EAAIjvB,EAAEi8F,WAAW1xF,EAAE6tC,SAAU,WAAYlpB,EAAKlvB,EAAEujJ,UAAU1jL,IAAIovD,EAAEgQ,QAAQvB,GAAIt4B,EAAU,MAALzC,EAAY,EAAI3C,EAAEujJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAC/H,OAAOkxH,GAAGrlJ,EAAG0C,EAAGujB,EAAGC,EAAG3kB,EAAGQ,EAAGC,EAAGF,EAAGI,EAAGC,EAAGC,EAAGC,EAAGsG,EAAG50C,EAAGuuC,EAAGE,EAAGG,EAAG1C,EAAG4B,EAAGZ,EAAGpF,EAAIqB,GAAK,EAAGyoB,GAAKD,EAEzF,IACI+/H,GADAC,GAAK,CAAEj4H,WAAY7sD,GAAI8sD,YAAa,OAAQmN,UAAW0qH,GAAKtpH,WAAYupH,IAE5E,SAASG,GAAIxvJ,GACXsvJ,GAAKtvJ,EAAE2jJ,KAAKz1H,MAAMvjD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE3P,SAAS8kL,GAAIzvJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAG66C,UAAWp5C,EAAG+yC,WAAYnxC,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAM3G,EAAGyK,EAAI7tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAG2B,EAAGzB,EAAGsD,GAAG,GAAOoE,EAAIw4I,GAAG38I,GAC/R,GAAS,MAALmE,EACF,MAAM,IAAIlI,MAAS+D,EAAH,+EAClB,IAAIkD,EAAIvJ,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI5yB,EAAI9K,EAAEujJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAItyB,EAAIb,EAAEmtC,YAAarsC,EAAI,EAC/F,GAAS,MAAL3I,EAAW,CACb,IAAIiQ,EAAK3S,EAAEujJ,UAAU1jL,IAAI6iC,EAAEu8B,QAC3B,GAAwB,IAApBtsB,EAAG6qB,MAAMj/D,OACX,MAAM,IAAI+jC,MAAM,+DAA+DqQ,EAAG6qB,MAAMj/D,WAC1F,GAAIo0C,EAAG6qB,MAAM,KAAOpyB,EAClB,MAAM,IAAI9I,MAAM,oCAAoCqQ,EAAG6qB,wDAAwDpyB,MACjHC,EAAIsH,EAAG+qB,GAET,IAAIpyB,EAAIf,EAAEstC,aAActsC,EAAIhB,EAAEutC,YAAarsC,EAAIlB,EAAE0sC,QAAQgC,IAAKvtC,EAAInB,EAAE0sC,QAAQkC,MAAOxtC,EAAIpB,EAAE0sC,QAAQiC,OAAQttC,EAAIrB,EAAE0sC,QAAQz5E,KAAMF,EAAIitC,EAAE0tC,eAAgBpsC,EAAItB,EAAE2tC,cAAensC,EAAIxB,EAAEotC,aAAczrC,EAAI3B,EAAEqtC,YAAapuC,EAAIe,EAAEktC,WAAYvlC,EAAuB,SAAnB3H,EAAE0sC,QAAQmC,KAAkB,EAAI,EAAGntC,EAAI1B,EAAE8sC,UAAW7nB,EAAIjlB,EAAEgtC,SAAU9nB,EAAIllB,EAAEitC,QAC/S,GAAU,SAANrxC,EACF,MAAM,IAAI7D,MAAM,kEAAkE6D,0BACpF,IAAI8oB,EAAIjvB,EAAEi8F,WAAW1xF,EAAE6tC,SAAU,WAAYlpB,EAAKlvB,EAAEujJ,UAAU1jL,IAAIovD,EAAEgQ,QAAQvB,GAAIt4B,EAAU,MAALzC,EAAY,EAAI3C,EAAEujJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAC/H,OAAOsxH,GAAGzlJ,EAAG0C,EAAGujB,EAAGC,EAAG3kB,EAAGQ,EAAGC,EAAGF,EAAGI,EAAGC,EAAGC,EAAGC,EAAGsG,EAAG50C,EAAGuuC,EAAGE,EAAGG,EAAG1C,EAAG4B,EAAGZ,EAAGpF,EAAIqB,GAAK,EAAGyoB,GAAKD,EAEzF,IACImgI,GADAC,GAAK,CAAEr4H,WAAY3sD,GAAI4sD,YAAa,OAAQmN,UAAW8qH,GAAK1pH,WAAY2pH,IAE5E,SAASG,GAAI5vJ,GACX0vJ,GAAK1vJ,EAAE2jJ,KAAKz1H,MAAMnjD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,WAEpG,SAAS8kL,GAAI7vJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,GAAMJ,GAAK64D,OAAQv4D,EAAGukD,QAAStkD,GAAMH,GAAI2C,EAAGC,EAAGC,EAAGC,GAAKxc,GAAG6sF,mBAAmBjzE,EAAGC,GAAI6C,EAAInD,EAAGs8F,WAAWx5F,EAAGzC,EAAE+8B,OACtI,GAAU,IAANr6B,EACF,OAAOI,EACT,IAAIyB,EAAItE,EAAEu9B,MAAOr3B,EAAI5B,EAAEA,EAAEhmC,OAAS,GAAI8nC,EAAI1G,EAAG4jJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAInzB,EAAI5K,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIlzB,EAAI,IAAI5J,WAAW,IAAIqT,WAAWrR,GAAGvkB,QAASkrB,EAAI5J,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GACzL,OAAO0xH,GAAG/oJ,EAAG08I,GAAG/iJ,EAAE+8B,OAAQxyB,EAAG7H,EAAGyD,EAAGxD,EAAG6H,EAAGjB,GAAIzG,EAE/C,IACI0sJ,GADAC,GAAK,CAAEz4H,WAAYvsD,GAAIwsD,YAAa,OAAQmN,UAAWkrH,GAAK9pH,WAAY+pH,IAE5E,SAASG,GAAIhwJ,GACX8vJ,GAAK9vJ,EAAE2jJ,KAAKz1H,MAAM,SAAU,KAAM,CAAC,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,WAEzG,SAAS+hI,GAAIjwJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGskD,QAAS9hD,GAAM3C,GAAKu1C,KAAM3yC,EAAG8hD,UAAW7hD,GAAM3C,EAAG4C,EAAIlG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI16B,EAAInD,EAAG2/B,SAAS78B,EAAEw8B,QAAS16B,EAAItE,EAAEu9B,MAAM56B,GACnL,IAAK,IAAI+I,EAAI,EAAGA,EAAI7I,EAAEvkC,SAAUotC,EAAG,CACjC,IAAIC,EAAI9I,EAAE6I,GACVjP,GAAE26B,OAAOzrB,GAAKrH,EAAI,GAAKqH,GAAK,EAAG,IAAM,6BAA6BA,mBAAmBrH,EAAI,MAE3F,IAAI4B,EAAIzpB,GAAEshG,aAAauB,yBAAyBt/E,EAAGwC,EAAGG,EAAGD,GAAIyD,EAAIghJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAE7H,MAAO,CAACr3B,EAAEkxC,UAAWlxC,EAAEk5E,UAAWl5E,EAAEm5E,QAASn5E,EAAE+vD,YAAc35E,QAASojB,IAAO0G,EAAI3J,GAAEi+B,cAAcl4B,EAAE+6B,OAAQ/2B,EAAI2gJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAG9G,GAAK4iC,MAAO,CAAE7H,MAAO,CAACr3B,EAAEkxC,UAAWhxC,EAAIF,EAAEkxC,YAAc96D,QAASojB,IAAO4K,EAAI,CAACpE,EAAEkxC,UAAWlxC,EAAEk5E,UAAWh5E,EAAIF,EAAEkxC,UAAWlxC,EAAE+vD,WAAY1rD,EAAI7K,EAAGs8F,WAAW1xF,EAAGtK,EAAE88B,OAC9X,GAAiC,IAA7BrgC,GAAEi+B,cAAc16B,EAAEu9B,OACpB,OAAOhzB,EACT,IAAIjB,EAAInD,EAAEo3B,MAAMj/D,OAAS,EAAG6sC,EAAIzL,EAAG4jJ,UAAU1jL,IAAIumC,EAAE64B,QAAQvB,GAAIpyB,EAAI3L,EAAG4jJ,UAAU1jL,IAAI4mC,EAAEw4B,QAAQvB,GAAInyB,EAAI5L,EAAG4jJ,UAAU1jL,IAAI2qC,EAAEy0B,QAAQvB,GAAIjyB,EAAI,IAAI7K,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAezxB,EAAEo3B,QAAQn/C,QAASqtB,EAAI,IAAI9K,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAettB,IAAIlsB,QAClQ,OAAOmxK,GAAGpkJ,EAAG23I,GAAG9iJ,EAAE88B,OAAQtxB,EAAGlC,EAAG+B,EAAGnF,EAAEkxC,UAAW3rC,EAAGH,GAAI5L,EAAG6kC,YAAYp+B,EAAE64B,QAASt/B,EAAG6kC,YAAY/9B,EAAEw4B,QAASz0B,EAAEgzB,MAAQr3B,EAAEiyD,YAAa5tD,EAEtI,IAQIolJ,GARAC,GAAK,CAAE74H,WAAYrsD,GAAIssD,YAAa,OAAQmN,UAAWsrH,GAAKlqH,WAAYmqH,IACxEG,IAAM,EACNC,GAAKhM,GAAGh5K,GAAI+kL,GAAK,QACjBE,IAAM,EACNC,GAAKlM,GAAG94K,GAAI+kL,GAAK,QACjBE,GAAKvM,GAAGl4K,GAAI,QACZ0kL,GAAKxM,GAAGh4K,GAAI,QACZykL,GAAKzM,GAAG93K,GAAI,QAEhB,SAASwkL,GAAI3wJ,GACXkwJ,GAAKlwJ,EAAE2jJ,KAAKz1H,MAAMvhD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAASikL,GAAI5wJ,GACX,IAAMu9B,QAAU1zB,EAAG5J,GAAM0lC,OAASkgB,MAAOzlD,GAAKvjB,QAASyjB,GAAMN,EAAGO,EAAID,EAAEujJ,UAAU1jL,IAAI8/B,EAAGs/B,QAAQvB,GAAIj7B,EAAIzC,EAAEi8F,WAAWt8F,EAAG69B,MAAO,WAC9H,GAAkC,IAA9B9gC,GAAEi+B,cAAch7B,EAAG69B,OAAc,CACnC,IAAI96B,EAAI1C,EAAEujJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAClCkyH,GAAG3vJ,EAAG8iJ,GAAGpjJ,EAAGo9B,OAAQj9B,EAAG4C,GAEzB,OAAOD,EAET,IAKI8tJ,GALAC,GAAK,CAAEx5H,WAAY3qD,GAAI4qD,YAAa,OAAQmN,UAAWisH,GAAK7qH,WAAY8qH,IACxEG,IAAM,EACNC,GAAK3M,GAAGx3K,GAAIkkL,GAAK,QACjBE,IAAM,EACNC,GAAK7M,GAAGt3K,GAAIkkL,GAAK,QAErB,SAASE,GAAInxJ,GACX6wJ,GAAK7wJ,EAAE2jJ,KAAKz1H,MAAMjhD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAASmkL,GAAIpxJ,GACX,IAAM2lC,MAAO1lC,EAAIpjB,QAASujB,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAG6lD,IAAKrjD,GAAM9C,EAAI+C,EAAIN,KAAK7c,MAAMkd,GAAIE,EAAI7C,EAAEm8F,WAAW,CAACv5F,GAAI,WAChH,OAAO6tJ,GAAGzwJ,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAI19B,EAAGC,EAAGyC,GAAIC,EAEpD,IAUIouJ,GAVAC,GAAK,CAAEh6H,WAAYrqD,GAAIsqD,YAAa,OAAQmN,UAAWysH,GAAKrrH,WAAYsrH,IACxEG,GAAKtN,GAAG92K,IACRqkL,GAAKvN,GAAG52K,IACRokL,IAAM,EACNC,GAAKrN,GAAG52K,GAAIgkL,GAAK,QACjBE,GAAK1N,GAAGt2K,IACRikL,IAAM,EACNC,GAAKxN,GAAGx2K,GAAI+jL,GAAK,QACjBE,IAAM,EACNC,GAAK1N,GAAGt2K,GAAI+jL,GAAK,QAErB,SAASE,GAAIhyJ,GACXqxJ,GAAKrxJ,EAAE2jJ,KAAKz1H,MAAM3hD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE3F,SAAS0lL,GAAIjyJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMqmD,YAAavjD,EAAGwjD,KAAMvjD,EAAG6iD,MAAO5iD,EAAGujD,KAAMtjD,GAAM5C,EAC9G,GAAgB,YAAZC,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,wCAClB,IAAIQ,EAAIhD,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAChC,OAAOg0H,GAAGjxJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIz9B,EAAEu9B,MAAM,GAAI/6B,EAAGC,EAAGC,EAAGC,GAAIE,EAEjG,IACI8uJ,GADAC,GAAK,CAAE76H,WAAY/qD,GAAIgrD,YAAa,OAAQmN,UAAWstH,GAAKlsH,WAAYmsH,IAE5E,SAASG,GAAIpyJ,GACXkyJ,GAAKlyJ,EAAE2jJ,KAAKz1H,MAAMzhD,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE/G,SAAS4lL,GAAIryJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGvD,EAAG+F,EAAGu7C,GAAIt7C,GAAM/C,GAAMqmD,YAAarjD,EAAGsjD,KAAMrjD,EAAG2iD,MAAOziD,EAAGojD,KAAM3hD,GAAMvE,EAC3H,GAAgB,YAAZC,EAAE88B,OAAmC,YAAZt6B,EAAEs6B,OAAmC,YAAZr6B,EAAEq6B,MACtD,MAAM,IAAIz6B,MAAM,uDAClB,IAAI6D,EAAIrG,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAChC,OAAO60H,GAAG9xJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIh7B,EAAE86B,MAAM,GAAI76B,EAAGC,EAAGE,EAAGyB,GAAI4B,EAE7J,IACI6rJ,GADAC,GAAK,CAAEj7H,WAAY7qD,GAAI8qD,YAAa,OAAQmN,UAAW0tH,GAAKtsH,WAAYusH,IAE5E,SAASG,GAAIxyJ,GACXsyJ,GAAKtyJ,EAAE2jJ,KAAKz1H,MAAMz/C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAASgkL,GAAIzyJ,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK4iD,iBAAkBriD,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG8C,EAAIjD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI56B,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAC9N,GAAI0G,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnC56B,EAAIyB,EAAG3B,EAAIwI,EAEb,IAAI3E,EAAI3D,EAAE06B,MAAMj/D,OAChBme,GAAE27F,2BAA2B,MAAOlyE,EAAGM,GACvC,IAAK8D,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAOr3B,GAAIoD,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAG7H,EAAEq6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnCs0H,GAAGpvJ,EAAGmgJ,GAAGrgJ,EAAEq6B,OAAQxzB,EAAG6B,GAExB,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IAGIsnJ,GAHAC,GAAK,CAAEr7H,WAAY7oD,GAAI8oD,YAAa,OAAQmN,UAAW8tH,GAAK1sH,WAAY2sH,IACxEG,IAAM,EACNC,GAAKxO,GAAGh1K,GAAIujL,IAEhB,SAASE,GAAI9yJ,GACX0yJ,GAAK1yJ,EAAE2jJ,KAAKz1H,MAAMv/C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE/L,SAASokL,GAAI/yJ,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,EAAGO,EAAIN,EAAG4J,EAAG9G,EAAIzC,EAAEujJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GACtFhhC,GAAE26B,OAAmB,YAAZp3B,EAAE88B,MAAqB,IAAM,0DAA0D98B,EAAE88B,UAClG,IAAMgd,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAMhD,EAAGyE,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAI5B,EAAEszC,aAAczxC,EAAI7B,EAAEuzC,YAAazxC,EAAI9B,EAAE0yC,QAAQgC,IAAKxyC,EAAIlC,EAAE0yC,QAAQkC,MAAO5uC,EAAIhG,EAAE0yC,QAAQiC,OAAQ1uC,EAAIjG,EAAE0yC,QAAQz5E,KAAM+rC,EAAIhF,EAAE0zC,eAAgBntC,EAAIvG,EAAE2zC,cAAe9sC,EAAI7G,EAAEozC,aAActsC,EAAI9G,EAAEqzC,YAAatsC,EAAI/G,EAAEkzC,WAAYlsC,EAAIhH,EAAEmzC,YACvV,GAAqB,iBAAjBnzC,EAAE+yC,WACJ,MAAM,IAAIh1C,MAAM,6CAA6CiC,EAAE+yC,2CACjE,IAAI7rC,EAAIzL,EAAEi8F,WAAW13F,EAAE6zC,SAAU,WAAY1sC,EAAI1L,EAAEujJ,UAAU1jL,IAAI4rC,EAAEwzB,QAAQvB,GAC3E,OAAO00H,GAAG3vJ,EAAGxC,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAIr3B,EAAGC,EAAGC,EAAGI,EAAG8D,EAAGC,EAAGjB,EAAGuB,EAAGM,EAAGC,EAAGC,EAAGC,EAAGG,GAAID,EAE3F,IACIinJ,GADAC,GAAK,CAAE37H,WAAY3oD,GAAI4oD,YAAa,OAAQmN,UAAWouH,GAAKhtH,WAAYitH,IAE5E,SAASG,GAAIlzJ,GACXgzJ,GAAKhzJ,EAAE2jJ,KAAKz1H,MAAM,YAAa,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE1P,SAASilI,GAAInzJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,EAAG00C,WAAYx0C,GAAM9C,EAAGuE,EAAI7nB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG,EAAGC,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEm8F,WAAW13F,EAAE6zC,SAAUn4C,EAAE88B,OAC9N,OAAO21H,GAAG5yJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIn5B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEi0C,QAASj0C,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE+zC,SAAU/zC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEk0C,YAAal0C,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAEq0C,cAAer0C,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEo0C,qBAAsBp0C,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQoC,MAAO90C,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAEtY,IACI2sJ,GADAC,GAAK,CAAE/7H,WAAYzoD,GAAI0oD,YAAa,OAAQmN,UAAWwuH,GAAKptH,WAAYqtH,IAE5E,SAASG,GAAItzJ,GACXozJ,GAAKpzJ,EAAE2jJ,KAAKz1H,MAAM,gBAAiB,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAExQ,SAASqlI,GAAIvzJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI7nB,GAAEi9F,kBAAkBl3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEm8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OACpN,OAAO+1H,GAAGhzJ,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIn5B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEi0C,QAASj0C,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE+zC,SAAU/zC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEk0C,YAAal0C,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAEq0C,cAAer0C,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEo0C,qBAAsBp0C,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQoC,MAAO90C,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAEpa,IACI+sJ,GADAC,GAAK,CAAEn8H,WAAYvoD,GAAIwoD,YAAa,OAAQmN,UAAW4uH,GAAKxtH,WAAYytH,IAE5E,SAASG,GAAI1zJ,GACXwzJ,GAAKxzJ,EAAE2jJ,KAAKz1H,MAAM,cAAe,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE1M,SAASylI,GAAI3zJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,GAAMo6C,WAAYr3C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI7nB,GAAEg9F,kBAAkBj3E,EAAE+6B,MAAO96B,EAAGC,EAAG,EAAGC,EAAGE,GAAIqD,EAAIrG,EAAEm8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OACpN,OAAOm2H,GAAGpzJ,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIn5B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO2oC,EAEpU,IACImtJ,GADAC,GAAK,CAAEv8H,WAAYroD,GAAIsoD,YAAa,OAAQmN,UAAWgvH,GAAK5tH,WAAY6tH,IAE5E,SAASG,GAAI9zJ,GACX4zJ,GAAK5zJ,EAAE2jJ,KAAKz1H,MAAM,oBAAqB,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErO,SAAS6lI,GAAI/zJ,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAG6lD,oBAAqB5lD,GAAM5C,EAC7HtD,GAAE26B,OAA0B,IAAnBp3B,EAAEu9B,MAAMj/D,OAAc,IAAM,uDAAuD0hC,EAAEu9B,MAAMj/D,WACpG,IAAIukC,EAAI,CAAC,EAAG,GACZpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Br3E,EAAGI,GAAI,IAAM,wEAAwEJ,oBAAoBI,MACnJ,IAAIyB,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAG,CAAC,EAAG,GAAIC,GAAIwD,EAAIrG,EAAEm8F,WAAW13F,EAAE6zC,SAAUn4C,EAAE88B,OAAQ32B,EAAItG,EAAEm8F,WAAW13F,EAAE6zC,SAAU,SAC3H,OAAOk7G,GAAGxzJ,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAIumC,EAAE64B,QAAQvB,GAAIqlH,GAAG9iJ,EAAE88B,OAAQn6B,EAAG2B,EAAE8yC,UAAW9yC,EAAEkzC,WAAYlzC,EAAEgzC,SAAUhzC,EAAEizC,QAASjzC,EAAE2yC,UAAW3yC,EAAE4yC,SAAU5yC,EAAEozC,aAAcpzC,EAAEqzC,YAAarzC,EAAE0zC,eAAgB1zC,EAAE2zC,cAAe3zC,EAAEwzC,sBAAuBxzC,EAAEyzC,qBAAsBzzC,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,MAAO,CAAC2oC,EAAGC,GAExV,IACIstJ,GADAC,GAAK,CAAE38H,WAAYnoD,GAAIooD,YAAa,OAAQmN,UAAWovH,GAAKhuH,WAAYiuH,IAE5E,SAASG,GAAIl0J,GACXg0J,GAAKh0J,EAAE2jJ,KAAKz1H,MAAM3+C,GAAI,KAAM,CAAC,2BAE/B,SAAS4kL,GAAIn0J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG6C,EAAIhD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI96B,EAAID,EAAGG,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAAK8G,EAAIN,EAClO,GAAIE,EAAG,CACL,IAAIgF,EAAI1L,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnCryB,IAAM1I,IAAMG,EAAIyB,EAAG3B,EAAIyI,EAAG5E,EAAI/pB,GAAE0+F,iBAAiB30E,EAAEloC,OAAQukC,EAAE06B,MAAMj/D,SAErEme,GAAE27F,2BAA2B,OAAQ5xE,EAAG3D,EAAE06B,MAAMj/D,QAChD,IAAKgsC,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAO/2B,GAAI8C,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAIhI,EACtE,YAAZA,EAAEi6B,QAAwBjyB,EAAI49I,GAAG,CAAEnsK,QAASojB,EAAIs9B,OAAQ,CAAE1zB,EAAGzG,GAAKuiC,MAAO,CAAEtI,MAAO,aAAgBn6B,EAAIjD,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,IACjI,IAAItyB,EAAIzL,EAAGs8F,WAAW1xF,EAAG,WACzB,GAAiC,IAA7B7N,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAInyB,EAAI1L,EAAG4jJ,UAAU1jL,IAAIurC,EAAE6zB,QAAQvB,GACnCg2H,GAAG9wJ,EAAG2G,EAAG8B,GAEX,GAAIhF,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI4I,EAAI3uB,GAAEs9F,qBAAqB5uE,EAAEoyB,MAAOp3B,GACxCgF,EAAEoyB,MAAQnyB,EAEZ,MAAmB,YAAZvI,EAAEi6B,OAAuBp9B,EAAG6kC,YAAY15B,EAAEm0B,QAAS7zB,EAE5D,IACI0oJ,GADAC,GAAK,CAAE/8H,WAAY/nD,GAAIgoD,YAAa,OAAQmN,UAAWwvH,GAAKpuH,WAAYquH,IAE5E,SAASG,GAAIt0J,GACXo0J,GAAKp0J,EAAE2jJ,KAAKz1H,MAAMz+C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAAS8kL,GAAIv0J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG6C,EAAIhD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI96B,EAAID,EAAGG,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GACzN,GAAI0G,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnCtyB,IAAMzI,IAAMG,EAAIyB,EAAG3B,EAAIwI,GAEzB,IAAI3E,EAAI3D,EAAE06B,MAAMj/D,OAChBme,GAAE27F,2BAA2B,MAAOlyE,EAAGM,GACvC,IAAK8D,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAOr3B,GAAIoD,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAGzH,EAAEi6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnCo2H,GAAGlxJ,EAAGmgJ,GAAGrgJ,EAAEq6B,OAAQxzB,EAAG6B,GAExB,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IAGIopJ,GAIAC,GAPAC,GAAK,CAAEp9H,WAAY7nD,GAAI8nD,YAAa,OAAQmN,UAAW4vH,GAAKxuH,WAAYyuH,IACxEI,IAAM,EACNC,GAAKvQ,GAAG10K,GAAIglL,IAMhB,SAASE,GAAI70J,GACXy0J,GAAKz0J,EAAE2jJ,KAAKz1H,MAAMr+C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,QAAS,QAAS,SAAU,WAElG,SAASilL,GAAI90J,GACX,IAAMu9B,QAAU1zB,EAAG5J,GAAMpjB,QAASujB,EAAGulC,OAAS6jB,SAAUlpD,EAAGmpD,KAAMlpD,IAAQP,EAAG+C,EAAIzC,EAAE4yB,IAAI,CAACnsB,EAAG8D,IAAM9D,EAAE,GAAK9G,EAAG69B,MAAMjzB,GAAK9D,EAAE,IAAK/D,EAAI5C,EAAEyjJ,UAAU1jL,IAAI8/B,EAAGs/B,QAAQvB,GAAI/6B,EAAI7C,EAAEm8F,WAAWx5F,EAAG9C,EAAGo9B,OAAQn6B,EAAI9C,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAI56B,EAAI,IAAIlC,WAAW,IAAIqT,WAAWtU,EAAG69B,OAAOn/C,QAASkmB,EAAIvE,EAAE4yB,IAAKnsB,GAAMA,EAAE,IAAKN,EAAInG,EAAE4yB,IAAKnsB,GAAMA,EAAE,IAAKL,EAAI,IAAIxF,WAAW,IAAIqT,WAAW1P,GAAGlmB,QAASgoB,EAAI,IAAIzF,WAAW,IAAIqT,WAAW9N,GAAG9nB,QACxZ,OAAO81K,GAAGzxJ,EAAGI,EAAGnD,EAAG69B,MAAMj/D,OAAQwkL,GAAGpjJ,EAAGo9B,OAAQ32B,EAAGC,EAAG6tJ,GAAGj0J,GAAI2C,GAAID,GATlE,SAAUjD,GACRA,EAAEA,EAAE+0J,QAAU,GAAK,UAAW/0J,EAAEA,EAAEg1J,UAAY,GAAK,aADrD,CAEGR,KAAOA,GAAK,KASf,IACIS,GADAC,GAAK,CAAE59H,WAAYznD,GAAI0nD,YAAa,OAAQuO,WAAYgvH,GAAKpwH,UAAWmwH,IAE5E,SAASM,GAAIn1J,GACXi1J,GAAKj1J,EAAE2jJ,KAAKz1H,MAAM73C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAAS++K,GAAGp1J,GACV,IAAMnjB,QAASojB,EAAIs9B,QAAU2sB,OAAQ9pD,GAAKulC,OAASse,IAAK3jD,IAAQN,EAAGO,EAAIN,EAAG4jJ,UAAU1jL,IAAIigC,EAAEm/B,QAAQvB,GAAIj7B,EAAI9C,EAAGs8F,WAAWn8F,EAAE09B,MAAO19B,EAAEi9B,OAAQr6B,EAAI/C,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI/6B,EAAI7C,EAAE09B,MAAMx9B,GAAI4C,EAAIlG,GAAEi+B,cAAc76B,EAAE09B,OAAS76B,EAC7N,OAAoC,IAA7BjG,GAAEi+B,cAAcl4B,EAAE+6B,QAAgBm3H,GAAG10J,EAAGyC,EAAGC,EAAGC,GAAIH,EAE3D,IACIsyJ,GADAC,GAAK,CAAEh+H,WAAYjhD,GAAIkhD,YAAa,OAAQmN,UAAWywH,GAAKrvH,WAAYsvH,IAE5E,SAASG,GAAIv1J,GACXq1J,GAAKr1J,EAAE2jJ,KAAKz1H,MAAM/9C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,WAEjF,SAASqlL,GAAIx1J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMkqD,WAAYpnD,EAAGqnD,KAAMpnD,EAAGqnD,WAAYpnD,GAAM3C,EAC9G,GAAgB,YAAZC,EAAE88B,MACJ,MAAM,IAAIz6B,MAAM,8CAA8CrC,EAAE88B,OAClE,IAAIn6B,EAAID,EAAI1C,EAAI60J,GAAG,CAAE73H,OAAQ,CAAE2sB,OAAQ3pD,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,EAAEu9B,MAAMj/D,OAAS,MAASukC,EAAGyB,GAAK3B,EAAE46B,MAAOr3B,EAAIrG,EAAEm8F,WAAW,CAACn5F,EAAGL,GAAI,SAC1I,OAAOsyJ,GAAGj1J,EAAEyjJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAI56B,EAAGyB,EAAG9B,EAAGC,EAAG5C,EAAEyjJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,IAAK/6B,GAAK7C,EAAE0kC,YAAY5hC,EAAEq8B,QAAS94B,EAEnH,IASIgvJ,GATAC,GAAK,CAAEp+H,WAAYnnD,GAAIonD,YAAa,OAAQmN,UAAW6wH,GAAKzvH,WAAY0vH,IACxEG,GAAKtR,GAAGt0K,IAAI,GACZ6lL,IAAM,EACNC,GAAKxR,GAAGh0K,GAAIulL,IACZE,GAAK7R,GAAG1zK,IACZ,SAASwlL,GAAG/1J,EAAGC,GACb,IAAIG,EAAI,IAAImU,WAAWvU,EAAE2jJ,KAAKnvI,OAAO71B,OAAQshB,EAAI,GAAIK,EAAIF,EAAE,GAAIG,EAAIH,EAAE,GAAI2C,EAAI3C,EAAE,GAAI4C,EAAI5C,EAAE,GACzF,OAAOJ,EAAE2jJ,KAAK/3H,MAAM3rB,GAAK,CAAE+1J,iBAAkB11J,EAAG21J,aAAc11J,EAAG21J,gBAAiBnzJ,EAAGozJ,cAAenzJ,GAGtG,SAASozJ,GAAIp2J,GACXy1J,GAAKz1J,EAAE2jJ,KAAKz1H,MAAMz9C,GAAI,SAAU,CAAC,SAAU,SAAU,SAAU,SAAU,WAE3E,SAAS4lL,GAAIr2J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKk9D,aAAc38D,EAAG08D,cAAel6D,EAAGo6D,eAAgBn6D,GAAM1C,GAAKm7D,MAAOx4D,EAAGq6D,OAAQp6D,GAAM9C,EAAGgD,EAAInD,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAIn5B,EAAI5E,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAIv3B,EAAIgvJ,GAAGryJ,EAAGyB,EAAG9B,EAAGxC,EAAGyC,IAAMgzJ,iBAAkBtvJ,EAAGuvJ,aAActvJ,EAAGuvJ,gBAAiBnvJ,EAAGovJ,cAAetrJ,GAAMkrJ,GAAG91J,EAAIwG,GAC9T,OAAOxG,EAAG0jJ,KAAK/3H,MAAM7kB,GAAI9G,EAAG0jJ,KAAK/3H,MAAM/gB,GAAI5K,EAAGs8F,WAAW,CAAC51F,GAAI,QAASD,GAEzE,IACI4vJ,GADAC,GAAK,CAAEj/H,WAAY7mD,GAAI8mD,YAAa,OAAQmN,UAAW0xH,GAAKtwH,WAAYuwH,IAE5E,SAASG,GAAIx2J,GACXs2J,GAAKt2J,EAAE2jJ,KAAKz1H,MAAMv9C,GAAI,SAAU,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAErF,SAAS8lL,GAAIz2J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKk9D,aAAc38D,EAAG08D,cAAel6D,EAAGo6D,eAAgBn6D,EAAGk8D,mBAAoBj8D,GAAM3C,GAAKm7D,MAAOv4D,EAAGo6D,OAAQl6D,GAAMhD,EAAGyE,EAAI5E,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAIv3B,EAAIxG,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIt3B,EAAI4vJ,GAAGzxJ,EAAG4B,EAAG1D,EAAGxC,EAAGyC,EAAGC,IAAM+yJ,iBAAkBrvJ,EAAGsvJ,aAAclvJ,EAAGmvJ,gBAAiBrrJ,EAAGsrJ,cAAerrJ,GAAMirJ,GAAG91J,EAAIyG,GACxVzG,EAAG0jJ,KAAK/3H,MAAM/gB,GACd,IAAIhB,EAAI5J,EAAGs8F,WAAW,CAACx1F,GAAI,QAASJ,GAAIyE,EAAInL,EAAGs8F,WAAW,GAAI,QAASzxF,GACvE,MAAO,CAACjB,EAAGuB,GAEb,IACIsrJ,GADAC,GAAK,CAAEr/H,WAAY3mD,GAAI4mD,YAAa,OAAQmN,UAAW8xH,GAAK1wH,WAAY2wH,IAE5E,SAASG,GAAI52J,GACX02J,GAAK12J,EAAE2jJ,KAAKz1H,MAAMr9C,GAAI,SAAU,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,WAErF,SAASgmL,GAAI72J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKk9D,aAAc38D,EAAG08D,cAAel6D,EAAGo6D,eAAgBn6D,EAAGo6D,aAAcn6D,GAAM3C,GAAKm7D,MAAOv4D,EAAGo6D,OAAQl6D,GAAMhD,EAAGyE,EAAI5E,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GAAIv3B,EAAIxG,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIt3B,EAAIgwJ,GAAG7xJ,EAAG4B,EAAG1D,EAAGxC,EAAGyC,EAAGC,IAAM+yJ,iBAAkBrvJ,EAAGsvJ,aAAclvJ,EAAGmvJ,gBAAiBrrJ,EAAGsrJ,cAAerrJ,GAAMirJ,GAAG91J,EAAIyG,GAClVzG,EAAG0jJ,KAAK/3H,MAAM9gB,GACd,IAAIjB,EAAI5J,EAAGs8F,WAAW,CAACx1F,GAAI,QAASJ,GAAIyE,EAAInL,EAAGs8F,WAAW,CAACx1F,GAAI,UAAW8D,GAC1E,MAAO,CAAChB,EAAGuB,GAEb,IAGI0rJ,GAHAC,GAAK,CAAEz/H,WAAYzmD,GAAI0mD,YAAa,OAAQmN,UAAWkyH,GAAK9wH,WAAY+wH,IACxEG,IAAM,EACNC,GAAK5S,GAAGtzK,GAAIimL,GAAK,QAErB,SAASE,GAAIl3J,GACX82J,GAAK92J,EAAE2jJ,KAAKz1H,MAAM/8C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,WAEvE,SAASgmL,GAAIn3J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,GAAMN,GAAMo9B,MAAOt6B,EAAG2nD,MAAO1nD,EAAG2nD,QAAS1nD,EAAG2nD,SAAU1nD,GAAM5C,EAAG8C,EAAIhD,EAAEm8F,WAAW,IAAIh8F,EAAEu9B,MAAO96B,GAAID,GAAI8B,EAAIzE,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIt3B,EAAItG,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAC9N,OAAO84H,GAAGpwJ,EAAG1D,EAAGC,EAAGC,EAAG2B,GAAIzB,EAE5B,IAAIg0J,GAAK,CAAE9/H,WAAYnmD,GAAIomD,YAAa,OAAQmN,UAAWwyH,GAAKpxH,WAAYqxH,IAC5E,SAASE,GAAIr3J,GACX,IAAMu9B,QAAU1zB,EAAG5J,GAAMpjB,QAASujB,GAAMJ,EAAGM,EAAIF,EAAEm8F,WAAWt8F,EAAG69B,MAAO79B,EAAGo9B,OACzE,OAAOj9B,EAAEykJ,mBAAmBvkJ,GAAG/a,KAAK,GAAI+a,EAE1C,IAAIg3J,GAAK,CAAEhgI,WAAYjmD,GAAIkmD,YAAa,OAAQuO,WAAYuxH,IAC5D,SAASE,GAAIv3J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAC5D,GAAkB,IAAdL,EAAGphC,OACL,OAAOsvL,GAAG,CAAE5wH,OAAQ,CAAEymB,MAAO/jD,EAAG,IAAMpjB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAClE,IAAIwC,EAAI9C,EAAG,GAAG69B,MAAO96B,EAAI/C,EAAG,GAAGo9B,MAC/Bp9B,EAAGqY,QAASzT,IACV7H,GAAE86B,kBAAkB/0B,EAAG8B,EAAEi5B,MAAO,yDAA0D9gC,GAAE26B,OAAO30B,IAAM6B,EAAEw4B,MAAO,IAAM,2DAE1H,IAAIp6B,EAAI,GAAIC,EAAIjD,EAAGizB,IAAKruB,IACtB,IAAI4B,EAAI0nJ,GAAG,CAAE5wH,OAAQ,CAAEymB,MAAOn/C,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAC7D,OAAO0C,EAAEuH,KAAK/D,GAAIA,IAChBrD,EAAImmJ,GAAG,CAAEhsH,OAAQr6B,EAAGrmB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMp1C,KACnD,OAAO0C,EAAEqV,QAASzT,GAAMzE,EAAE0kC,YAAYjgC,EAAE06B,SAAUn8B,EAEpD,IACIo0J,GADAC,GAAK,CAAEngI,WAAY3lD,GAAI4lD,YAAa,OAAQuO,WAAYyxH,IAE5D,SAASG,GAAI13J,GACXw3J,GAAKx3J,EAAE2jJ,KAAKz1H,MAAMr8C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,QAAS,QAAS,SAAU,WAElG,SAAS8lL,GAAI33J,GACX,IAAMu9B,QAAU1zB,EAAG5J,GAAMpjB,QAASujB,EAAGulC,OAAS6jB,SAAUlpD,EAAG6qD,cAAe5qD,IAAQP,EAAG+C,EAAIzC,EAAE4yB,IAAI,CAACroB,EAAGC,IAAMD,EAAE,GAAK5K,EAAG69B,MAAMhzB,GAAKD,EAAE,IAChI,GAAkC,IAA9B7N,GAAEi+B,cAAch7B,EAAG69B,OACrB,OAAOwwH,GAAG,CAAEzxK,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/6B,EAAGnjC,MAAO2gC,EAAG88B,MAAOp9B,EAAGo9B,SACjE,IAAIr6B,EAAI5C,EAAEyjJ,UAAU1jL,IAAI8/B,EAAGs/B,QAAQvB,GAAI/6B,EAAI7C,EAAEm8F,WAAWx5F,EAAG9C,EAAGo9B,OAAQj6B,EAAIhD,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAIn5B,EAAI,IAAI3D,WAAW,IAAIqT,WAAWtU,EAAG69B,OAAOn/C,QAAS8nB,EAAInG,EAAE4yB,IAAKroB,GAAMA,EAAE,IAAKnE,EAAIpG,EAAE4yB,IAAKroB,GAAMA,EAAE,IAAKlE,EAAI,IAAIzF,WAAW,IAAIqT,WAAW9N,GAAG9nB,QAASooB,EAAI,IAAI7F,WAAW,IAAIqT,WAAW7N,GAAG/nB,QAChS,OAAO64K,GAAGx0J,EAAG6B,EAAG5E,EAAG69B,MAAMj/D,OAAQwkL,GAAGpjJ,EAAGo9B,OAAQ12B,EAAGI,EAAGxG,EAAG6C,GAAIH,EAE9D,IAGI20J,GAHAC,GAAK,CAAEvgI,WAAYzlD,GAAI0lD,YAAa,OAAQuO,WAAY6xH,GAAKjzH,UAAWgzH,IACxEI,IAAM,EACNC,GAAK1T,GAAGpyK,GAAI6lL,IAEhB,SAASE,GAAIh4J,GACX43J,GAAK53J,EAAE2jJ,KAAKz1H,MAAM/7C,GAAI,KAAM,CAAC,SAAU,SAAU,WAEnD,SAAS8lL,GAAIj4J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,EAAGulD,MAAOtlD,GAAMN,EAAI8C,EAAI3C,EAAEyjJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAIh7B,EAAI5C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI/6B,EAAIF,EAAGG,EAAI5C,EAAG8C,EAAIF,EACvI,YAAZA,EAAEm6B,QAAwBj6B,EAAI4lJ,GAAG,CAAEnsK,QAASujB,EAAGm9B,OAAQ,CAAE1zB,EAAGvJ,GAAKqlC,MAAO,CAAEtI,MAAO,aAAgBp6B,EAAI7C,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,IAC/H,IAAIn5B,EAAIzE,EAAEm8F,WAAWj8F,EAAEw9B,MAAO,WAAYr3B,EAAIrG,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACxE,OAAO45H,GAAG30J,EAAGD,EAAGyD,GAAgB,YAAZvD,EAAEm6B,OAAuBj9B,EAAE0kC,YAAY1hC,EAAEm8B,QAAS16B,EAExE,IACIqzJ,GADAC,GAAK,CAAE7gI,WAAYnlD,GAAIolD,YAAa,OAAQmN,UAAWszH,GAAKlyH,WAAYmyH,IAE5E,SAASG,GAAIp4J,GACXk4J,GAAKl4J,EAAE2jJ,KAAKz1H,MAAM77C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAASgmL,GAAIr4J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG6C,EAAIhD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI96B,EAAID,EAAGG,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAAK8G,EAAIN,EAClO,GAAIE,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnCtyB,IAAMzI,IAAMG,EAAIyB,EAAG3B,EAAIwI,EAAG3E,EAAI/pB,GAAE0+F,iBAAiB30E,EAAEloC,OAAQukC,EAAE06B,MAAMj/D,SAErEme,GAAE27F,2BAA2B,OAAQ5xE,EAAG3D,EAAE06B,MAAMj/D,QAChD,IAAKgsC,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAO/2B,GAAI8C,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAGzH,EAAEi6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnCk6H,GAAGh1J,EAAG2G,EAAGw5I,GAAGj4I,EAAEiyB,OAAQ3xB,GAExB,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IAWIktJ,GAXAC,GAAK,CAAEjhI,WAAYjlD,GAAIklD,YAAa,OAAQmN,UAAW0zH,GAAKtyH,WAAYuyH,IACxEG,GAAOx4J,IACT,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAGxH,KAAMgK,EAAGs6B,MAAOr6B,GAAM5C,EAAG6C,EAAI62F,GAAGx5F,EAAGC,EAAGwC,EAAGC,GAAIE,EAAIjD,EAAGs8F,WAAW,CAACt5F,EAAEpkC,QAASmkC,GACnI,OAAO/C,EAAG4kJ,mBAAmB3hJ,GAAGliC,IAAIiiC,GAAIC,GAEtCu1J,GAAK,CAAEnhI,WAAYvkD,GAAIwkD,YAAa,OAAQuO,WAAY0yH,IACxDE,IAAM,EACNC,GAAKtU,GAAGhxK,GAAIqlL,IACZE,GAAK3U,GAAG1wK,IACRslL,GAAK5U,GAAGtwK,IACRmlL,GAAK7U,GAAGpwK,IAEZ,SAASklL,GAAI/4J,GACXs4J,GAAKt4J,EAAE2jJ,KAAKz1H,MAAMj6C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEzH,SAAS+kL,GAAIh5J,GACX,IAA8M8K,GAAxMjuB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMH,GAAKq/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,GAAI4C,EAAGE,GAAKH,GAAI4B,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,MAAO/2B,EAAI,CAAClC,EAAG3B,EAAGE,EAAGuD,GAAIkE,EAAI5K,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QACzL,YAAZ10B,EAAEwyB,QAAwBvyB,EAAIk+I,GAAG,CAAEnsK,QAASojB,EAAIs9B,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEtI,MAAO,aAAgBxyB,EAAI5K,EAAG4jJ,UAAU1jL,IAAI2qC,EAAEy0B,SACzH,IAAI11B,EAAIgB,EAAEmzB,GAAI5yB,EAAInL,EAAGs8F,WAAWx1F,EAAG,WACnC,GAAiC,IAA7B/J,GAAEi+B,cAAc16B,EAAEu9B,OACpB,OAAO1yB,EACT,IAAIM,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnC,OAAOs6H,GAAGzuJ,EAAGhF,EAAG4B,EAAGC,EAAGC,EAAGzD,EAAGE,EAAGL,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAG0I,GAAS,MAALZ,GAAa7K,EAAG6kC,YAAYh6B,EAAEy0B,QAASn0B,EAElG,IACI6tJ,GADAC,GAAK,CAAE5hI,WAAYrjD,GAAIsjD,YAAa,OAAQmN,UAAWq0H,GAAKjzH,WAAYkzH,IAE5E,SAASG,GAAIn5J,GACXi5J,GAAKj5J,EAAE2jJ,KAAKz1H,MAAM/5C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,QAAS,QAAS,YAE/E,SAASilL,GAAIp5J,GACX,IAAuKoD,GAAjKm6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAAG2C,EAAI7C,EAAEm8F,WAAWh8F,EAAEu9B,MAAO,WAAY56B,EAAI9C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAC9J,MAAmB,YAAZr8B,EAAEm6B,QAAwBj6B,EAAI4lJ,GAAG,CAAEnsK,QAASujB,EAAGm9B,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEtI,MAAO,aAAgBn6B,EAAI9C,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,SAAU05H,GAAG74J,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAI,IAAI98B,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QAAS,IAAIuiB,WAAW,IAAIqT,WAAWxR,EAAE+6B,OAAOn/C,QAASqkB,GAAS,MAALI,GAAahD,EAAE0kC,YAAY1hC,EAAEm8B,QAASt8B,EAEjX,IACIo2J,GADAC,GAAK,CAAEhiI,WAAYnjD,GAAIojD,YAAa,OAAQmN,UAAWy0H,GAAKrzH,WAAYszH,IAE5E,SAASG,GAAIv5J,GACXq5J,GAAKr5J,EAAE2jJ,KAAKz1H,MAAM75C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEzH,SAASmlL,GAAIx5J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMH,GAAKq/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,GAAI4C,EAAGE,GAAKH,GAAI4B,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,MAAO/2B,EAAI,CAAClC,EAAG3B,EAAGE,EAAGuD,GAAIkE,EAAI5K,EAAGs8F,WAAWx1F,EAAG,WACnM,GAAiC,IAA7B/J,GAAEi+B,cAAc16B,EAAEu9B,OACpB,OAAOjzB,EACT,IAAoChB,EAAhCiB,EAAI7K,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QACf,YAAZz0B,EAAEuyB,QAAwBxzB,EAAIm/I,GAAG,CAAEnsK,QAASojB,EAAIs9B,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEtI,MAAO,aAAgBvyB,EAAI7K,EAAG4jJ,UAAU1jL,IAAI0pC,EAAE01B,SACzH,IAAIn0B,EAAIN,EAAEkzB,GAAItyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GAC7C,OAAOq7H,GAAGjuJ,EAAGvG,EAAG4B,EAAGC,EAAGC,EAAGzD,EAAGE,EAAGL,EAAI,EAAI,EAAGC,EAAI,EAAI,EAAG0I,GAAS,MAAL7B,GAAa5J,EAAG6kC,YAAYj7B,EAAE01B,QAAS10B,EAElG,IACI4uJ,GADAC,GAAK,CAAEpiI,WAAYjjD,GAAIkjD,YAAa,OAAQmN,UAAW60H,GAAKzzH,WAAY0zH,IAE5E,SAASG,GAAI35J,GACXy5J,GAAKz5J,EAAE2jJ,KAAKz1H,MAAM35C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,QAAS,QAAS,YAE/E,SAASqlL,GAAI55J,GACX,IAAuKoD,GAAjKm6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,EAAG2C,EAAI7C,EAAEm8F,WAAWh8F,EAAEu9B,MAAO,WAAY56B,EAAI9C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAC9J,MAAmB,YAAZr8B,EAAEm6B,QAAwBj6B,EAAI4lJ,GAAG,CAAEnsK,QAASujB,EAAGm9B,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEtI,MAAO,aAAgBn6B,EAAI9C,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,SAAUk6H,GAAGr5J,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI59B,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAI,IAAI98B,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QAAS,IAAIuiB,WAAW,IAAIqT,WAAWxR,EAAE+6B,OAAOn/C,QAASqkB,GAAS,MAALI,GAAahD,EAAE0kC,YAAY1hC,EAAEm8B,QAASt8B,EAEjX,IACI42J,GADAC,GAAK,CAAExiI,WAAY/iD,GAAIgjD,YAAa,OAAQmN,UAAWi1H,GAAK7zH,WAAY8zH,IAE5E,SAASG,GAAI/5J,GACX65J,GAAK75J,EAAE2jJ,KAAKz1H,MAAMz5C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,QAAS,SAAU,WAE/E,SAASulL,GAAIh6J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMmyD,KAAMrvD,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OACxG,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,OAAO+lL,GAAG,CAAErnH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI6C,EAAI7C,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAAQn6B,EAAI9C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI56B,EAAIhD,EAAEyjJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAAIn5B,EAAI,IAAI3D,WAAW,IAAIqT,WAAWvR,GAAGrkB,QAAS8nB,EAAI,IAAIvF,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QACrMk7K,GAAG32J,EAAG2B,EAAG7B,EAAEnkC,OAAQ4nC,EAAGlG,EAAEu9B,MAAMj/D,OAAQukC,GACtC,IAAIsD,EAAIghJ,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAG5G,GAAK0iC,MAAO,CAAE7H,MAAOv9B,EAAEu9B,OAASjhD,QAASujB,IACnE,OAAOA,EAAE0kC,YAAY7hC,EAAEs8B,QAAS74B,EAElC,IACIuzJ,GADAC,GAAK,CAAE5iI,WAAY7iD,GAAI8iD,YAAa,OAAQuO,WAAYk0H,GAAKt1H,UAAWq1H,IAE5E,SAASI,GAAIn6J,GACXi6J,GAAKj6J,EAAE2jJ,KAAKz1H,MAAMv5C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,WAElI,SAASylL,GAAIp6J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,GAAMN,GAAMy8D,QAAS35D,EAAG45D,UAAW35D,EAAG45D,OAAQ35D,GAAM3C,EAAG4C,EAAI9C,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAAQj6B,EAAIhD,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIn5B,EAAIzE,EAAEyjJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,IAAKv3B,EAAGC,EAAGC,EAAGI,GAAKxG,EAAEu9B,OAAQjzB,EAAGC,GAAK9tB,GAAEw+F,eAAev4E,EAAGyD,EAAGC,GAAIkD,EAAU,IAAN7G,EAASoI,EAAI,IAAKM,EAAgB,iBAAL1I,EAAgB,CAACA,EAAGA,EAAGA,EAAG6G,EAAI,EAAIuB,GAAK,IAAIpI,EAAGoI,GAAIO,EAAI,IAAIzK,WAAW,IAAIqT,WAAW7I,GAAG/sB,QAC1Y,OAAOs7K,GAAG72J,EAAGqD,EAAGC,EAAGC,EAAGI,EAAGhE,EAAG8H,EAAGC,EAAGa,EAAGD,EAAE7sC,OAAQgmC,GAAI3B,EAErD,IAGIm3J,GAHAC,GAAK,CAAEhjI,WAAY3iD,GAAI4iD,YAAa,OAAQuO,WAAYs0H,GAAK11H,UAAWy1H,IACxEI,GAAKtW,GAAGpvK,IACR2lL,GAAKvW,GAAGlvK,IAEZ,SAAS0lL,GAAIz6J,GACXq6J,GAAKr6J,EAAE2jJ,KAAKz1H,MAAM/4C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,WAE9G,SAASulL,GAAI16J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,EAAGo2D,QAAS5zD,GAAM3C,GAAK09B,MAAO96B,GAAM1C,EAAG2C,EAAIhD,EAAGs8F,WAAWv5F,EAAGD,EAAEs6B,OACvH,GAA2B,IAAvBrgC,GAAEi+B,cAAcj4B,GAClB,OAAOC,EACT,IAAMqzD,UAAWpzD,EAAGqzD,WAAYnzD,EAAGozD,UAAW3xD,EAAGi6B,QAASr4B,EAAGgwD,WAAY/vD,GAAMlS,GAAGoiE,gBAAgB7zD,EAAGxC,EAAGyC,GAAI+D,EAAI9G,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIlzB,EAAI7K,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIn0B,EAAI,IAAI3I,WAAW,IAAIqT,WAAW9N,GAAG9nB,QAASysB,EAAInL,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GAC/P,OAAOq8H,GAAGtzJ,EAAG+D,EAAGu4I,GAAGtgJ,EAAEs6B,OAAQn6B,EAAGE,EAAGyB,EAAGgF,EAAGnD,EAAG0E,GAAInI,EAElD,IACI03J,GADAC,GAAK,CAAEtjI,WAAYniD,GAAIoiD,YAAa,OAAQmN,UAAW+1H,GAAK30H,WAAY40H,IAE5E,SAASG,GAAI76J,GACX26J,GAAK36J,EAAE2jJ,KAAKz1H,MAAM74C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,WAEnG,SAASylL,GAAI96J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKsoD,eAAgB/nD,EAAG9iC,OAAQslC,GAAM9C,GAAMsoD,KAAMvlD,GAAM1C,EACnG,GAAIC,EAAE88B,QAAUt6B,EAAEs6B,MAChB,MAAM,IAAIz6B,MAAM,+EAA+ErC,EAAE88B,aAAat6B,EAAEs6B,SAClH,IAAIp6B,EAAI7C,EAAEm8F,WAAWx5F,EAAE+6B,MAAO,SAC9B,SAAS56B,EAAEE,GACT,OAAOhD,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAEnC,OAAO28H,GAAGz3J,EAAE3C,GAAI2C,EAAEH,GAAIxC,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,GAAI/6B,EAAE+6B,MAAM,GAAIulH,GAAG9iJ,EAAE88B,OAAc,SAANr6B,EAAcE,EAAED,IAAKA,EAE9F,IACI83J,GADAC,GAAK,CAAE1jI,WAAYjiD,GAAIkiD,YAAa,OAAQmN,UAAWm2H,GAAK/0H,WAAYg1H,IAE5E,SAASG,GAAIj7J,GACX+6J,GAAK/6J,EAAE2jJ,KAAKz1H,MAAM,WAAY,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,WAE/E,SAASgtI,GAAIl7J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKihD,UAAW3gD,EAAG4gD,EAAG3gD,EAAGH,EAAG2C,GAAM9C,EAAI+C,EAAI5C,EAAEyjJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAI/6B,EAAI7C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI96B,EAAI9C,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI56B,EAAIhD,EAAEm8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAAQx4B,EAAIzE,EAAEyjJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIv3B,EAAInG,EAAEw9B,MAAMj/D,OAAQ6nC,EAAInG,EAAEu9B,MAAMj/D,OAAQ8nC,EAAU,IAANF,GAAWA,EAAI,GAAW,IAANC,EAAU,EAAI1J,GAAEi+B,cAAc16B,EAAEu9B,MAAMnnC,MAAM,IAC/V,OAAOokK,GAAG/3J,EAAGC,EAAGC,EAAGyD,EAAG9B,GAAIzB,EAE5B,IAEI+3J,GAFAC,GAAK,CAAE9jI,WAAY/hD,GAAIgiD,YAAa,OAAQuO,WAAYo1H,GAAKx2H,UAAWu2H,IACxEI,GAAKpX,GAAGxuK,IAEZ,SAAS6lL,GAAIt7J,GACXm7J,GAAKn7J,EAAE2jJ,KAAKz1H,MAAMv4C,GAAI,KAAM,CAAC,SAAU,WAEzC,SAAS4lL,GAAIv7J,GACX,IAAMnjB,QAASojB,EAAIs9B,QAAU1zB,EAAGzJ,IAAQJ,EAAGM,EAAIL,EAAG4jJ,UAAU1jL,IAAIigC,EAAEm/B,QAAQvB,GAAIz9B,EAAIN,EAAGs8F,WAAWn8F,EAAE09B,MAAO19B,EAAEi9B,OAAQt6B,EAAI9C,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAClJ,OAAoC,IAA7BhhC,GAAEi+B,cAAc16B,EAAEu9B,QAAgBq9H,GAAG76J,EAAGyC,GAAIxC,EAErD,IAAIi7J,GAAK,CAAElkI,WAAY,UAAWC,YAAa,OAAQmN,UAAW42H,GAAKx1H,WAAYy1H,IAC/EE,GAAKxX,GAAGpuK,IACR6lL,GAAKzX,GAAGluK,IACR4lL,GAAK1X,GAAGhuK,IACR2lL,GAAK3X,GAAG1tK,IACZ,SAASslL,GAAI77J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAGymD,SAAUxmD,GAAM1C,EAAG2C,EAAIjG,GAAEi+B,cAAcl4B,GAAIG,EAAI,CAAC,CAAC,EAAG,IAClIA,EAAEsH,QAAQxH,GACV,IAAK,IAAI6I,EAAI,EAAI9I,EAAElkC,OAAQgtC,EAAItL,EAAEu9B,MAAMj/D,SAAUgtC,EAC/C3I,EAAEsH,KAAK,CAAC,EAAG,IACb,IAAIpH,EAAIy0J,GAAG/xH,WAAW,CAAEvI,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE6jB,SAAUtmD,EAAGioD,cAAe,KAAQtmD,EAAI7nB,GAAE8+F,YAAY14E,EAAE06B,MAAO/6B,EAAGE,GAAG,GAAQwD,EAAIzpB,GAAE2+F,YAAY92E,EAAEhmC,OAAQkkC,EAAElkC,QAAQ,GAAQ6nC,EAAI1pB,GAAEg/F,oBAAoB54E,EAAE06B,MAAO/6B,EAAGE,GAAG,GAAQ4H,EAAI68I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGzG,GAAKvmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQuG,EAAI65I,GAAG,CAAE1nH,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMvxD,KAAQmF,EAAI87I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGuB,GAAKvuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAC/Z,OAAOtG,EAAE0kC,YAAY1hC,EAAEm8B,QAASn/B,EAAE0kC,YAAYj6B,EAAE00B,QAASn/B,EAAE0kC,YAAY15B,EAAEm0B,QAAS3zB,EAEpF,IACIkwJ,GADAC,GAAK,CAAEzkI,WAAY7gD,GAAI8gD,YAAa,OAAQuO,WAAY+1H,IAE5D,SAASG,GAAIh8J,GACX87J,GAAK97J,EAAE2jJ,KAAKz1H,MAAM,sBAAuB,SAAU,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAEpK,SAAS+tI,GAAIj8J,GACX,IAAssBkM,GAAhsBrvB,QAASojB,EAAIs9B,OAAQn9B,GAAMJ,GAAK6kD,QAASvkD,EAAG7iC,OAAQ8iC,EAAG+iE,WAAYvgE,EAAGuqD,aAActqD,GAAM5C,EAAG6C,EAAI3C,EAAEw9B,MAAM,GAAI56B,EAAI5C,EAAEw9B,MAAM,GAAI16B,EAAInD,EAAG2/B,SAAS78B,EAAEw8B,QAAQ,GAAI16B,EAAI,CAAC5B,EAAIG,EAAGF,GAAIuD,EAAIxG,EAAG4jJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAIt3B,EAAIzG,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIr3B,EAAI1G,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAIj3B,EAAI9G,EAAGs8F,WAAW13F,EAAGvE,EAAE+8B,OAAQxyB,EAAI5K,EAAG4jJ,UAAU1jL,IAAI4mC,EAAEw4B,QAAQvB,GAAIlzB,EAAI7K,EAAGs8F,WAAW13F,EAAElO,MAAM,EAAG,GAAI4J,EAAE88B,OAAQxzB,EAAI5J,EAAG4jJ,UAAU1jL,IAAI2qC,EAAEy0B,QAAQvB,GAAI5yB,EAAInL,EAAGs8F,WAAW,CAACn5F,GAAI,QAASsI,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GAAIryB,EAAI1L,EAAGs8F,WAAW,CAACt5F,GAAI3C,EAAE+8B,OAAQzxB,EAAI3L,EAAG4jJ,UAAU1jL,IAAIwrC,EAAE4zB,QAAQvB,GAAInyB,EAAI5L,EAAGs8F,WAAW,CAAC,GAAI,SAAUxwF,EAAI9L,EAAG4jJ,UAAU1jL,IAAI0rC,EAAE0zB,QAAQvB,GAAIhyB,EAAI8vJ,GAAGr1J,EAAGC,EAAG28I,GAAG9iJ,EAAE88B,OAAQp6B,EAAGG,EAAGF,EAAGyD,EAAGkE,EAAGhB,EAAG6B,EAAGE,EAAGG,GAAIE,EAAIhM,EAAG2/B,SAAS/zB,EAAE0zB,QAC7rB,OAAQtzB,EAAE,IACR,KAAK,EACHC,EAAIlvB,GAAEu/F,gDAAgDtwE,EAAE,IACxD,MAEF,KAAK,EACHC,EAAIlvB,GAAEy/F,gDAAgDxwE,EAAE,GAAIA,EAAE,IAC9D,MAEF,KAAK,EACHC,EAAIlvB,GAAE2/F,kDAAkD1wE,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACtE,MACF,QACEC,EAAI,GAER,GAAIjM,EAAG6kC,YAAYj5B,EAAE0zB,QAASrzB,EAC5B,MAAMjM,EAAG6kC,YAAY/9B,EAAEw4B,QAASt/B,EAAG6kC,YAAYh6B,EAAEy0B,QAASt/B,EAAG6kC,YAAY15B,EAAEm0B,QAASt/B,EAAG6kC,YAAYn5B,EAAE4zB,QAAS,IAAI38B,MAAMsJ,GAC1H,IAAItuC,EAAImpC,EAAGoF,EAAIrB,EACf,OAAOkB,IAAMnH,EAAE,KAAOjnC,EAAIoqL,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAG9C,GAAK4+B,MAAO,CAAEwV,MAAO,EAAGtd,KAAM,CAAC7xB,EAAG9I,IAAMrmB,QAASojB,IAAOkM,EAAI67I,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAGiB,GAAK66B,MAAO,CAAEwV,MAAO,EAAGtd,KAAM7xB,GAAKnvB,QAASojB,IAAOA,EAAG6kC,YAAY/9B,EAAEw4B,QAASt/B,EAAG6kC,YAAYh6B,EAAEy0B,SAAU,CAAC3hE,EAAGuuC,EAAGf,EAAGO,GAE9O,IACIuwJ,GADAC,GAAK,CAAE7kI,WAAY3gD,GAAI4gD,YAAa,OAAQmN,UAAWs3H,GAAKl2H,WAAYm2H,IAE5E,SAASG,GAAIp8J,GACXk8J,GAAKl8J,EAAE2jJ,KAAKz1H,MAAMr3C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAE3F,SAASwlL,GAAIr8J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,GAAMJ,GAAK8jE,aAAcxjE,EAAGi+C,WAAYh+C,EAAGgzB,SAAUxwB,GAAM3C,EACtF,GAAuB,IAAnBE,EAAEw9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,gEACVtC,EAAEw9B,OACV,GAAuB,IAAnBv9B,EAAEu9B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,8DACVrC,EAAEu9B,OACV,GAAuB,IAAnB/6B,EAAE+6B,MAAMj/D,OACV,MAAM,IAAI+jC,MAAM,sDAAsDG,EAAE+6B,OAC1E,IAAI96B,EAAI/C,EAAG4jJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAI/6B,EAAIhD,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAI96B,EAAIjD,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI56B,EAAI9C,EAAEw9B,MAAM,GAAIj5B,EAAI7H,GAAEi+B,cAAcl4B,EAAE+6B,OAAQr3B,EAAIxG,EAAGs8F,WAAW,CAACn5F,EAAGyB,GAAIvE,EAAE+8B,OAAQ32B,EAAIzG,EAAG4jJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GAAIr3B,EAAI1G,EAAGs8F,WAAW,CAAC13F,GAAI9B,EAAEs6B,OAAQt2B,EAAI9G,EAAG4jJ,UAAU1jL,IAAIwmC,EAAE44B,QAAQvB,GAAInzB,EAAI5K,EAAGs8F,WAAW,CAAC,GAAI,SAAUzxF,EAAI7K,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GACtWk+H,GAAGl5J,EAAGC,EAAGC,EAAGE,EAAGsD,EAAGK,EAAG+D,GACrB,IAA+BM,EAA3BvB,EAAI5J,EAAG2/B,SAAS/0B,EAAE00B,QACtB,OAAQ11B,EAAE,IACR,KAAK,EACHuB,EAAIpuB,GAAEmgG,yDAAyDtzE,EAAE,GAAIA,EAAE,IACvE,MAEF,KAAK,EACHuB,EAAIpuB,GAAEqgG,8CAA8CxzE,EAAE,GAAIA,EAAE,IAC5D,MAEF,KAAK,EACHuB,EAAIpuB,GAAE6/F,uDACN,MACF,KAAK,EAAG,CACN,IAAInxE,EAAI0nB,MAAMwB,KAAK30B,EAAG2/B,SAASr/B,EAAEg/B,SAAU5zB,EAAIynB,MAAMwB,KAAK30B,EAAG2/B,SAASj5B,EAAE44B,SACxEn0B,EAAIpuB,GAAEigG,gDAAgDvxE,EAAGC,GACzD,MAEF,KAAK,EAAG,CACN,IAAID,EAAI0nB,MAAMwB,KAAK30B,EAAG2/B,SAASr/B,EAAEg/B,SAAU5zB,EAAIynB,MAAMwB,KAAK30B,EAAG2/B,SAASj5B,EAAE44B,SACxEn0B,EAAIpuB,GAAE+/F,gDAAgDrxE,EAAGC,GACzD,MAEF,QACEP,EAAI,GAER,GAAInL,EAAG6kC,YAAYj6B,EAAE00B,QAASn0B,EAC5B,MAAMnL,EAAG6kC,YAAYr+B,EAAE84B,QAASt/B,EAAG6kC,YAAYn+B,EAAE44B,QAAS,IAAI38B,MAAMwI,GACtE,MAAO,CAAC3E,EAAGE,GAEb,IACI21J,GADAC,GAAK,CAAEjlI,WAAYzgD,GAAI0gD,YAAa,OAAQmN,UAAW03H,GAAKt2H,WAAYu2H,IAE5E,SAASG,GAAGx8J,GACVs8J,GAAKt8J,EAAE2jJ,KAAKz1H,MAAM,yBAA0B,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAErI,SAASuuI,GAAGz8J,EAAGC,GACb,IAAMpjB,QAASujB,EAAGm9B,OAAQj9B,GAAMN,GAAKub,KAAMhb,EAAGskD,QAAS9hD,EAAGy0D,WAAYx0D,GAAM1C,EAAG2C,EAAIF,EAAE+6B,MAAM,GAAI56B,EAAI9C,EAAEw/B,SAAS58B,EAAEu8B,OAAQt8B,EAAI,EAAGA,GAAG,GAAI4B,EAAI5B,EAAI,EAAIC,EAAI,EAAI,EAC1J,GAAI2B,EAAI,EACN,MAAM,IAAIjC,MAAM5lB,GAAEygG,2DACpB,IAAIh3E,EAAIlG,EAAEu9B,MAAMnnC,QAChB8P,EAAE,GAAK5B,EACP,IAAI6B,EAAItG,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIr3B,EAAIvG,EAAEyjJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIj3B,EAAI3G,EAAEyjJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAInzB,EAAIzK,EAAEm8F,WAAW91F,EAAGlG,EAAE88B,OAAQvyB,EAAI1K,EAAEyjJ,UAAU1jL,IAAI0qC,EAAE00B,QAAQvB,GAAIn0B,EAAIzJ,EAAEm8F,WAAW,CAAC,GAAI,SAAUnxF,EAAIhL,EAAEyjJ,UAAU1jL,IAAI0pC,EAAE01B,QAAQvB,GACxOs+H,GAAG51J,EAAG28I,GAAG9iJ,EAAE88B,OAAQ98B,EAAEu9B,MAAM,GAAIn3B,EAAGI,EAAG+D,EAAGM,EAAGnL,EAAI,GAC/C,IAA8B0L,EAA1BD,EAAItL,EAAEw/B,SAAS/1B,EAAE01B,QACrB,OAAQ7zB,EAAE,IACR,KAAK,EACHC,EAAI3uB,GAAEygG,0DACN,MAEF,KAAK,EACH9xE,EAAI3uB,GAAE2gG,+DACN,MAEF,KAAK,EACHhyE,EAAI3uB,GAAE6gG,yDAAyDnyE,EAAE,GAAIA,EAAE,IACvE,MACF,KAAK,EACHC,EAAI3uB,GAAEugG,uDAAuD7xE,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAC3E,MACF,QACEC,EAAI,GAER,GAAIvL,EAAE0kC,YAAYj7B,EAAE01B,QAAS5zB,EAC3B,MAAMvL,EAAE0kC,YAAYj6B,EAAE00B,QAAS,IAAI38B,MAAM+I,GAC3C,OAAOd,EAET,SAAS6xJ,GAAI18J,GACX,OAAOy8J,GAAGz8J,GAAG,GAEf,IAAI28J,GAAK,CAAErlI,WAAYvgD,GAAIwgD,YAAa,OAAQmN,UAAW83H,GAAI12H,WAAY42H,IAC3E,SAASE,GAAI58J,GACX,OAAOy8J,GAAGz8J,GAAG,GAEf,IACI68J,GADAC,GAAK,CAAExlI,WAAYrgD,GAAIsgD,YAAa,OAAQmN,UAAW83H,GAAI12H,WAAY82H,IAE3E,SAASG,GAAI/8J,GACX68J,GAAK78J,EAAE2jJ,KAAKz1H,MAAM/2C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,WAElI,SAAS6lL,GAAIh9J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKw4D,cAAej4D,EAAGk4D,aAAc11D,EAAGuqD,aAActqD,GAAM5C,GAAKs4D,YAAaz1D,GAAM3C,EAAG4C,EAAIjD,EAAGs8F,WAAWt5F,EAAGD,EAAEq6B,OACzJ,GAA2B,IAAvBrgC,GAAEi+B,cAAch4B,GAClB,OAAOC,EACT,IAAMozD,UAAWlzD,EAAGmzD,WAAY1xD,EAAG2xD,UAAW/vD,EAAGq4B,QAASp4B,EAAG+vD,WAAY9vD,GAAM3pB,GAAE45E,gBAAgB7zD,EAAGxC,EAAG0C,GAAI8D,EAAI9G,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAInzB,EAAI5K,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIlzB,EAAI7K,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAIn0B,EAAI,IAAI3I,WAAW,IAAIqT,WAAW7N,GAAG/nB,QAASysB,EAAInL,EAAG4jJ,UAAU1jL,IAAI+iC,EAAEq8B,QAAQvB,GACjS,OAAO6+H,GAAG91J,EAAG8D,EAAG9H,EAAE+6B,MAAMj/D,OAAQisC,EAAGu4I,GAAGrgJ,EAAEq6B,OAAQj6B,EAAGyB,EAAG4B,EAAGoD,EAAGlD,EAAGyE,GAAIlI,EAErE,IAAI+5J,GAAK,CAAE3lI,WAAYngD,GAAIogD,YAAa,OAAQmN,UAAWq4H,GAAKj3H,WAAYk3H,IAC5E,SAASE,GAAIl9J,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM60D,gBAAiB/xD,EAAG4yC,KAAM3yC,GAAM5C,EAAG6C,EAAIjG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI56B,EAAIlmB,GAAEohG,iBAAiB79E,EAAGwC,EAAGE,GAAIG,EAAI,IAAIgwB,MAAM7yB,EAAEu9B,MAAMj/D,QAAQ0mB,KAAK,GAAIsf,EAAItE,EAAEu9B,MAAMnnC,QAC3N,OAAOuM,EAAEgwB,IAAKzsB,IACZ,IAAIC,EAAI,IAAI7B,GACZ6B,EAAEzD,GAAKwD,EACP,IAAIE,EAAIqhJ,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEwV,MAAO/3C,EAAGy6B,KAAMn3B,GAAK7pB,QAASyjB,IACtE,OAAO8C,EAAEH,IAAMwD,EAAGE,IAGtB,IAKIw2J,GALAC,GAAK,CAAE9lI,WAAYjgD,GAAIkgD,YAAa,OAAQuO,WAAYo3H,IACxDG,GAAKpZ,GAAG1sK,IACR+lL,GAAKrZ,GAAGxsK,IACR8lL,IAAM,EACNC,GAAKnZ,GAAG1sK,GAAI4lL,IAEhB,SAASE,GAAIz9J,GACXm9J,GAAKn9J,EAAE2jJ,KAAKz1H,MAAMn2C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAAS2lL,GAAI19J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6lD,MAAOtlD,GAAMD,GAAKuJ,EAAG9G,GAAM3C,EAAG4C,EAAI/C,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI/6B,EAAIhD,EAAGs8F,WAAWx5F,EAAE+6B,MAAO/6B,EAAEs6B,OAAQn6B,EAAIjD,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GACrL,OAAOm/H,GAAGn6J,EAAGzC,EAAG8iJ,GAAGtgJ,EAAEs6B,OAAQn6B,GAAID,EAEnC,IACI06J,GADAC,GAAK,CAAEtmI,WAAYv/C,GAAIw/C,YAAa,OAAQmN,UAAW+4H,GAAK33H,WAAY43H,IAE5E,SAASG,GAAI79J,GACX29J,GAAK39J,EAAE2jJ,KAAKz1H,MAAMj2C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,WAEnH,SAAS6lL,GAAI99J,GACX,IAAqV4L,GAA/U/uB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMH,GAAK+6C,MAAOp4C,EAAG0nC,IAAKznC,EAAG87B,QAAS77B,EAAG0yD,UAAWzyD,EAAG0yD,QAASxyD,EAAGyyD,aAAchxD,EAAGixD,YAAarvD,EAAGsvD,eAAgBrvD,GAAMpG,GAAK01E,iBAAkBrvE,EAAGsvE,WAAYlvE,EAAGmvE,WAAYrrE,EAAGsrE,UAAWrrE,EAAGsrE,cAAevsE,EAAGsxC,MAAO/vC,EAAGq/B,IAAK/+B,EAAGozB,QAASnzB,GAAMrU,GAAGg9E,UAAU/zE,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,EAAGC,GACjV,GAAImE,EACFe,EAAI87I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASojB,EAAI0lC,MAAO,CAAE7H,MAAO/2B,UACrD,GAAI+D,GAAKjB,EAAG,CACf7M,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yCAAyC0hC,EAAEu9B,MAAMj/D,QACrF,IAAIgtC,EAAIvU,GAAGs8E,gBAAgBxoE,EAAGM,EAAGC,GAAII,EAAIi8I,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASojB,EAAI0lC,MAAO,CAAEwV,MAAO/vC,EAAGyyB,KAAMhyB,KACtGD,EAAI87I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGkC,GAAKlvB,QAASojB,EAAI0lC,MAAO,CAAE7H,MAAO/2B,KAAQ9G,EAAG6kC,YAAY/4B,EAAEwzB,YAC5E,CACL,IAAI1zB,EAAI5L,EAAGs8F,WAAW51F,EAAG,WAAYoF,EAAI9L,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIhyB,EAAI,IAAI9K,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAe53B,EAAEu9B,QAAQn/C,QAASstB,EAAI,IAAI/K,WAAW,IAAIqT,WAAWnJ,GAAGzsB,QAASutB,EAAI,IAAIhL,WAAW,IAAIqT,WAAW7I,GAAG/sB,QAAS/gB,EAAI,IAAIsjC,WAAW,IAAIqT,WAAW5I,GAAGhtB,QAASwtB,EAAI,IAAIjL,WAAW,IAAIqT,WAAW5N,GAAGhoB,QAAS0tB,EAAI,IAAInL,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAexxB,IAAIhoB,QAAS6tB,EAAIvM,EAAG4jJ,UAAU1jL,IAAI0rC,EAAE0zB,QAAQvB,GACra2/H,GAAG5xJ,EAAGC,EAAGzL,EAAEu9B,MAAMj/D,OAAQotC,EAAGC,EAAGtuC,EAAGuuC,EAAGE,EAAG1F,EAAE9nC,OAAQ2tC,GAAIZ,EAAI87I,GAAG,CAAEnqH,OAAQ,CAAE1zB,EAAGgC,GAAKhvB,QAASojB,EAAI0lC,MAAO,CAAE7H,MAAO/2B,KAAQ9G,EAAG6kC,YAAYj5B,EAAE0zB,QAEzI,OAAO3zB,EAET,IAAImyJ,GAAK,CAAEzmI,WAAYr/C,GAAIs/C,YAAa,OAAQmN,UAAWm5H,GAAK/3H,WAAYg4H,IAC5E,SAASE,GAAIh+J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKub,KAAMhb,EAAGskE,WAAY9hE,GAAM3C,GAAKokE,UAAWxhE,EAAGyhE,YAAaxhE,EAAGyhE,QAASxhE,EAAG43B,SAAU13B,EAAGuhE,SAAU9/D,EAAG+/D,uBAAwBn+D,GAAMnG,EAAGoG,EAAIzG,EAAG2/B,SAASr/B,EAAEg/B,QAAS54B,EAAI1G,EAAG2/B,SAAS78B,EAAEw8B,SAAUx4B,EAAG8D,GAAK0wF,GAAG70F,EAAGC,EAAG3D,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,GAAIqE,EAAI7K,EAAGs8F,WAAW,CAACx1F,EAAEloC,QAAS,UAAWgrC,EAAI5J,EAAG4jJ,UAAU1jL,IAAI2qC,EAAEy0B,QAChV11B,EAAEo+I,YAAclhJ,EAChB,IAAIqE,EAAInL,EAAGs8F,WAAWx5F,EAAE+6B,MAAO,SAC/B,OAAO79B,EAAG4kJ,mBAAmBz5I,GAAGpqC,IAAI6pC,GAAI,CAACC,EAAGM,GAE9C,IAAI6yJ,GAAK,CAAE3mI,WAAYn/C,GAAIo/C,YAAa,OAAQuO,WAAYk4H,IAC5D,SAASE,GAAIl+J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKgkD,MAAOzjD,EAAG6kE,UAAWriE,GAAM3C,GAAK+kE,UAAWniE,GAAM1C,EAAG2C,EAAIhD,EAAG2/B,SAASr/B,EAAEg/B,QAASr8B,EAAIjD,EAAG2/B,SAAS78B,EAAEw8B,SAAUn8B,EAAGyB,EAAG4B,GAAKg1F,GAAGx4F,EAAGC,EAAE,GAAIF,GAAI0D,EAAI7B,EAAEhmC,OAAQ8nC,EAAI1G,EAAGs8F,WAAW,CAAC71F,EAAG,GAAI,SAC9NzG,EAAG4kJ,mBAAmBl+I,GAAG3lC,IAAIoiC,GAC7B,IAAIyH,EAAI5K,EAAGs8F,WAAW,CAAC71F,GAAI,UAAWoE,EAAI7K,EAAG4jJ,UAAU1jL,IAAI0qC,EAAE00B,QAC7Dz0B,EAAEm9I,YAAcpjJ,EAChB,IAAIgF,EAAI5J,EAAGs8F,WAAW,CAAC,GAAI,SAC3B,OAAOt8F,EAAG4kJ,mBAAmBh7I,GAAG7oC,IAAIylC,GAAI,CAACE,EAAGkE,EAAGhB,GAEjD,IAAIs0J,GAAK,CAAE7mI,WAAYj/C,GAAIk/C,YAAa,OAAQuO,WAAYo4H,IAC5D,SAASE,GAAIp+J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKgkD,MAAOzjD,GAAMH,GAAKolE,WAAYziE,GAAMzC,EAAG0C,EAAI/C,EAAG2/B,SAASr/B,EAAEg/B,QAASt8B,EAAI04F,GAAG34F,EAAGD,GAAIG,EAAIjD,EAAGs8F,WAAWh8F,EAAEu9B,MAAO,SAC3J,OAAO79B,EAAG4kJ,mBAAmB3hJ,GAAGliC,IAAIiiC,GAAIC,EAE1C,IAGIm7J,GAHAC,GAAK,CAAEhnI,WAAY/+C,GAAIg/C,YAAa,OAAQuO,WAAYs4H,IACxDG,IAAM,EACNC,GAAKna,GAAG5rK,GAAI8lL,IAEhB,SAASE,GAAIz+J,GACXq+J,GAAKr+J,EAAE2jJ,KAAKz1H,MAAMv1C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,WAE7D,SAAS+lL,GAAI1+J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,EAAGq1C,SAAU7yC,GAAMzC,GAAKuJ,EAAG7G,GAAM5C,EAAG6C,EAAIhD,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI96B,EAAID,EAAGG,EAAIJ,GAAKuiJ,WAAY1gJ,EAAG4gJ,KAAMh/I,EAAG++I,aAAc9+I,EAAGg/I,mBAAoB/+I,GAAM2+I,GAAGtiJ,EAAGzC,EAAGN,GAAK8G,EAAIN,EAClO,GAAIE,EAAG,CACL,IAAI+E,EAAIzL,EAAG4jJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GACnCtyB,IAAMzI,IAAMG,EAAIyB,EAAG3B,EAAIwI,EAAG3E,EAAI/pB,GAAE0+F,iBAAiB30E,EAAEloC,OAAQukC,EAAE06B,MAAMj/D,SAErEme,GAAE27F,2BAA2B,MAAO5xE,EAAG3D,EAAE06B,MAAMj/D,QAC/C,IAAKgsC,EAAGC,GAAK9tB,GAAE+8F,0BAA0B32E,EAAE06B,MAAO/2B,GAAI8C,EAAI7M,GAAEi+B,cAAcnwB,GAAIM,EAAInL,EAAGs8F,WAAW1xF,EAAGzH,EAAEi6B,OACrG,GAAiC,IAA7BrgC,GAAEi+B,cAAc73B,EAAE06B,OAAc,CAClC,IAAIpyB,EAAIzL,EAAG4jJ,UAAU1jL,IAAIirC,EAAEm0B,QAAQvB,GACnCqgI,GAAGn7J,EAAG2G,EAAGw5I,GAAGj4I,EAAEiyB,OAAQ3xB,GAExB,GAAI/E,GAAK1G,EAAG6kC,YAAYjgC,EAAE06B,QAASx8B,EAAG,CACpC,IAAI2I,EAAI1uB,GAAEs9F,qBAAqBlvE,EAAE0yB,MAAOp3B,GACxC0E,EAAE0yB,MAAQpyB,EAEZ,OAAON,EAET,IAGIuzJ,GAHAC,GAAK,CAAEtnI,WAAY3+C,GAAI4+C,YAAa,OAAQmN,UAAW+5H,GAAK34H,WAAY44H,IACxEG,GAAK5a,GAAGprK,IACRimL,GAAK7a,GAAGlrK,IAEZ,SAASgmL,GAAI/+J,GACX2+J,GAAK3+J,EAAE2jJ,KAAKz1H,MAAM70C,GAAI,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,WAExH,SAAS2lL,GAAIh/J,GACX,IAAMnjB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAKjG,OAAQwG,EAAGskD,QAAS9hD,EAAG4zD,QAAS3zD,GAAM5C,KAAQE,EAAG2C,EAAIhD,EAAGs8F,WAAWh8F,EAAEu9B,MAAOv9B,EAAE88B,OAC9H,GAAiC,IAA7BrgC,GAAEi+B,cAAc16B,EAAEu9B,OACpB,OAAO76B,EACT,IAAMqzD,UAAWpzD,EAAGqzD,WAAYnzD,EAAGozD,UAAW3xD,EAAGi6B,QAASr4B,EAAGgwD,WAAY/vD,GAAMlS,GAAGoiE,gBAAgB5zD,EAAGD,EAAGxC,EAAEu9B,OAAQ/2B,EAAI9G,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAIlzB,EAAI7K,EAAG4jJ,UAAU1jL,IAAI6iC,EAAEu8B,QAAQvB,GAAI5yB,EAAInL,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAItyB,EAAI,IAAIxK,WAAW,IAAIqT,WAAW9N,GAAG9nB,QAASgtB,EAAI1L,EAAG4jJ,UAAU1jL,IAAI8iC,EAAEs8B,QAAQvB,GACxS,OAAO2gI,GAAG53J,EAAG+D,EAAGu4I,GAAGrgJ,EAAEq6B,OAAQn6B,EAAGE,EAAGyB,EAAG6G,EAAGhF,EAAGiF,EAAGP,GAAInI,EAErD,IACIg8J,GADAC,GAAK,CAAE5nI,WAAYj+C,GAAIk+C,YAAa,OAAQmN,UAAWq6H,GAAKj5H,WAAYk5H,IAE5E,SAASG,GAAIn/J,GACXi/J,GAAKj/J,EAAE2jJ,KAAKz1H,MAAM30C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,QAAS,SAAU,WAE/E,SAAS6lL,GAAIp/J,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,EAAI8C,EAAI3C,EAAEyjJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,IAAMgf,KAAMh6C,GAAM1C,EAAG2C,EAAI,IAAImwB,MAAM7yB,EAAEu9B,MAAMj/D,QACtI,IAAK,IAAI6nC,EAAI,EAAGA,EAAIzD,EAAEpkC,OAAQ6nC,IAC5BzD,EAAEyD,GAAKnG,EAAEu9B,MAAMp3B,GAAK1D,EAAE0D,GACxB,IAAIxD,EAAI,IAAIhC,WAAW,IAAIqT,WAAWhU,EAAEu9B,OAAOn/C,QAASykB,EAAI,IAAIlC,WAAW,IAAIqT,WAAWtR,GAAGtkB,QAASkmB,EAAIzE,EAAEm8F,WAAWt5F,EAAG1C,EAAE88B,OAAQ52B,EAAIrG,EAAEyjJ,UAAU1jL,IAAI0kC,EAAE06B,QAAQvB,GAClK,OAAOihI,GAAGl8J,EAAGG,EAAG3C,EAAEu9B,MAAMj/D,OAAQukC,EAAGH,EAAEpkC,OAAQwkL,GAAGx+I,EAAEw4B,OAAQ52B,GAAI5B,EAEhE,IACIw6J,GADAC,GAAK,CAAEhoI,WAAY/9C,GAAIg+C,YAAa,OAAQmN,UAAWy6H,GAAKr5H,WAAYs5H,IAE5E,SAASG,GAAIv/J,GACXq/J,GAAKr/J,EAAE2jJ,KAAKz1H,MAAMz0C,GAAI,KAAM,CAAC,SAAU,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,WAElG,IAOI+lL,GAPAC,GAAM,EAAGliI,OAAQv9B,EAAGnjB,QAASojB,EAAI0lC,MAAOvlC,MAC1C,IAAMyJ,EAAGvJ,GAAMN,GAAK4L,EAAGrL,EAAG02D,OAAQl0D,GAAM3C,EAAG4C,EAAI/C,EAAG4jJ,UAAU1jL,IAAImgC,EAAEi/B,QAAQvB,GAAI/6B,EAAI,IAAI/B,WAAW,IAAIqT,WAAWjU,EAAEw9B,OAAOn/C,QAASukB,EAAI5C,EAAEw9B,MAAMnnC,QAC9IuM,EAAEA,EAAErkC,OAAS,GAAK0hC,EAClB,IAAI6C,EAAInD,EAAGs8F,WAAWr5F,EAAG5C,EAAE+8B,OAAQx4B,EAAI5E,EAAG4jJ,UAAU1jL,IAAIijC,EAAEm8B,QAAQvB,GAAIv3B,EAAIxG,EAAGs8F,WAAWr5F,EAAG,SAAUwD,EAAIzG,EAAG4jJ,UAAU1jL,IAAIsmC,EAAE84B,QAAQvB,GACpI,OAAOqhI,GAAGr8J,EAAGC,EAAG3C,EAAEw9B,MAAMj/D,OAAQwkL,GAAG/iJ,EAAE+8B,OAAQ98B,EAAGwC,EAAG8B,EAAG6B,GAAI,CAACtD,EAAGqD,IAE5Di5J,GAAK,CAAEpoI,WAAY79C,GAAI89C,YAAa,OAAQmN,UAAW66H,GAAKz5H,WAAY25H,IAE5E,SAASE,GAAI3/J,GACXw/J,GAAKx/J,EAAE2jJ,KAAKz1H,MAAMv0C,GAAI,KAAM,CAAC,SAAU,SAAU,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,WAE3L,SAASimL,GAAI5/J,GACX,IAA0gBkM,GAApgBrvB,QAASojB,EAAIs9B,OAAQn9B,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAG8/D,WAAYt9D,GAAM3C,GAAKkgE,cAAet9D,EAAGu9D,SAAUt9D,EAAG05D,UAAWz5D,EAAGw1D,YAAat1D,GAAM9C,GAAIuE,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,OAAQ/2B,EAAG8D,GAAU,MAALzH,EAAYA,EAAI,CAACqD,EAAGC,GAAIoE,EAAI,CAACjG,EAAGkC,EAAG8D,EAAGlE,GAAIkD,EAAI,IAAI3I,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAe53B,EAAEu9B,QAAQn/C,QAASysB,EAAI,IAAIlK,WAAW,IAAIqT,WAAWvX,GAAEm7B,eAAertB,IAAInsB,QAAS+sB,EAAIzL,EAAGs8F,WAAWzxF,EAAGvK,EAAE88B,OAAQ1xB,EAAI1L,EAAG4jJ,UAAU1jL,IAAIurC,EAAE6zB,QAAQvB,GAAInyB,EAAI5L,EAAG4jJ,UAAU1jL,IAAIogC,EAAEg/B,QAAQvB,GAAIhyB,EAAI/L,EAAG4jJ,UAAU1jL,IAAI4iC,EAAEw8B,QAAQvB,GAAI/xB,EAAU,YAANjJ,EAAkB,EAAI,EACvgB,OAAQC,GACN,IAAK,WACHiJ,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,IAAK,OACHA,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,QACEA,EAAI,EACJ,MAEJ,OAAOszJ,GAAG3zJ,EAAGG,EAAGjJ,EAAE+6B,MAAM,GAAK,EAAGj5B,EAAGkC,EAAG8D,EAAGlE,EAAGD,EAAGD,EAAGoD,EAAGtJ,EAAEu9B,MAAMj/D,OAAS,EAAGusC,EAAGN,EAAEjsC,OAAS,EAAGotC,EAAGC,EAAGhJ,EAAGyI,GAAID,EAEzG,IAAIm0J,GAAK,CAAEvoI,WAAY39C,GAAI49C,YAAa,OAAQmN,UAAWi7H,GAAK75H,WAAY85H,IAC5E,SAASE,GAAI9/J,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK21C,KAAMp1C,GAAMH,GAAKyJ,EAAG9G,GAAM9C,GAAMujE,aAAcxgE,EAAG01D,YAAaz1D,EAAG4hD,QAAS3hD,GAAMm5F,GAAG/7F,EAAEs/B,SAAS78B,EAAEw8B,QAASh/B,EAAGwC,EAAE+6B,MAAO/6B,EAAEs6B,OACvK,MAAO,CAAC/8B,EAAEi8F,WAAWt5F,EAAGF,EAAEs6B,WAAO,EAAQr6B,GAAI1C,EAAEi8F,WAAW,CAACr5F,EAAErkC,QAAS,aAAS,EAAQqkC,IAEzF,IAAI68J,GAAK,CAAEzoI,WAAYv9C,GAAIw9C,YAAa,OAAQuO,WAAYg6H,IAC5D,SAASE,GAAIhgK,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKpgC,MAAO2gC,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC/EyC,EAAI,IAAMA,GAAKxC,EAAEu9B,MAAMj/D,QACvB,IAAImkC,EAAIzC,EAAEu9B,MAAM/6B,GAAIE,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,IAAIkwB,MAAMnwB,EAAI,GAAIG,EAAI,EAClE,IAAK,IAAIuD,EAAI,EAAGA,EAAI1D,EAAG0D,IACrBA,IAAM5D,IAAMG,EAAEE,KAAO7C,EAAEu9B,MAAMn3B,IAC/B,IAAI9B,EAAI,IAAIuuB,MAAMpwB,GAAIyD,EAAI,IAAI2sB,MAAMnwB,GAAG1d,KAAK,GAAImhB,EAAInG,EAAEu9B,MAAMnnC,QAC5D+P,EAAE3D,GAAK,EACP,IAAK,IAAI4D,EAAI,EAAGA,EAAI9B,EAAEhmC,OAAQ8nC,IAC5BF,EAAE1D,GAAK4D,EAAG9B,EAAE8B,GAAKqhJ,GAAG,CAAEzqH,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAEwV,MAAO10C,EAAGo3B,KAAMn3B,GAAK7pB,QAASujB,IACjF,OAAOyE,EAAEquB,IAAI,EAAGqM,OAAQ54B,EAAG02B,MAAOt2B,MAAQ,CAAGw4B,OAAQ54B,EAAG02B,MAAOt2B,EAAG+2B,MAAO56B,KAE3E,IAAI+8J,GAAK,CAAE3oI,WAAYr9C,GAAIs9C,YAAa,OAAQuO,WAAYk6H,IAC5D,SAASE,GAAIlgK,GACX,IAAMu9B,QAAU1zB,EAAG5J,GAAMpjB,QAASujB,GAAMJ,EAAGM,EAAIF,EAAEm8F,WAAWt8F,EAAG69B,MAAO79B,EAAGo9B,OACzE,OAAOj9B,EAAEykJ,mBAAmBvkJ,GAAG/a,KAAK,GAAI+a,EAE1C,IAAI6/J,GAAK,CAAE7oI,WAAY38C,GAAI48C,YAAa,OAAQuO,WAAYo6H,IACxDE,GAAM,CAACpc,GAAIE,GAAIC,GAAIC,GAAII,GAAIG,GAAImB,GAAIG,GAAIG,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAII,GAAIW,GAAIP,GAAII,GAAIS,GAAIS,GAAIG,GAAIE,GAAIE,GAAIG,GAAIC,GAAIG,GAAIG,GAAII,GAAII,GAAII,GAAII,GAAIK,GAAIC,GAAIC,GAAIM,GAAII,GAAII,GAAII,GAAII,GAAII,GAAII,GAAII,GAAII,GAAII,GAAIC,GAAIG,GAAIE,GAAIC,GAAIC,GAAIE,GAAIC,GAAIG,GAAII,GAAIC,GAAIE,GAAII,GAAII,GAAII,GAAII,GAAII,GAAIE,GAAIE,GAAIxL,GAAIyL,GAAIC,GAAIC,GAAII,GAAIE,GAAIE,GAAII,GAAIE,GAAID,GAAIG,GAAIC,GAAIE,GAAIE,GAAII,GAAII,GAAII,GAAIE,GAAII,GAAII,GAAII,GAAII,GAAII,GAAII,GAAIK,GAAIE,GAAIM,GAAIQ,GAAIC,GAAIE,GAAIC,GAAIS,GAAII,GAAII,GAAIE,GAAIG,GAAIE,GAAIG,GAAII,GAAIE,GAAII,GAAII,GAAIE,GAAIE,GAAIC,GAAIC,GAAIC,GAAIlR,GAAIsR,GAAII,GAAII,GAAII,GAAII,GAAII,GAAIC,GAAIC,GAAII,GAAII,GAAII,GAAIC,GAAIG,GAAIC,GAAIC,GAAIC,GAAItT,GAAIiN,GAAIsG,GAAIG,GAAII,GAAII,GAAII,GAAIG,GAAIG,GAAIG,GAAIC,GAAIC,GAAIE,GAAII,GAAIG,GAAIE,GAAIE,GAAIG,GAAIE,GAAII,GAAIC,GAAIC,GAAII,GAAII,GAAII,GAAIG,GAAIxa,GAAI0a,GAAIE,GAAIE,IAC3nB,IAAK,IAAIngK,KAAKogK,GACZ5tK,GAAGwN,GACL,IAAIqgK,GAAK/7K,KACT+7K,GAAG32H,aAAa,wBAAyBoB,UACvC,IACE,OAAO/pC,YAAYu/J,SAAS,IAAIp/J,WAAW,CAAC,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,MAC5I,MAAOlB,KACP,OAAO,KAGXqgK,GAAG32H,aAAa,+BAAgCoB,UAC9C,GAAIu1H,GAAGlgM,IAAI,WACT,OAAO,EACT,IACE,OAAO,IAAIogM,gBAAiBC,MAAMhnJ,YAAY,IAAI7F,kBAAkB,IAAK5S,YAAYu/J,SAAS,IAAIp/J,WAAW,CAAC,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,EAAG,GAAI,MACvO,MAAOlB,KACP,OAAO,KAGX,IAAIygK,GAAKjgK,EAAG2N,KACRuyJ,GAAKlgK,EAAGkuB,KACRiyI,GAAKngK,EAAGsuB,KACR8xI,GAAKH,GAAG/kI,SAAW+kI,GACnBI,GAAMF,GAAGjlI,SAAWilI,GACpB18L,GAAK,cAAcoI,EACrB,YAAY4zB,GACVmgC,QAASzhE,KAAKglL,KAAO1jJ,EAAIthC,KAAKmiM,iBAAmB,EAAGniM,KAAKglL,KAAKod,KAAKC,qBAAqBC,IAAKC,GAAKviM,KAAKglL,KAAKod,KAAK55K,kBAAmBxoB,KAAKklL,UAAY,IAAI58K,EAAGtI,KAAMulB,MAEpK,MAAM+b,EAAIG,EAAGE,GACX,IAAIC,EAAI,CAAEy9B,GAAIr/D,KAAKmiM,oBACnB,OAAOniM,KAAKomE,KAAKxkC,EAAGN,EAAIG,EAAGE,EAAG,GAAIC,EAEpC,aACE,OAAO5hC,KAAKklL,UAAUj+G,aAExB,WAAW3lC,GACT,IAAIG,EAAIpD,GAAEshB,MACV,OAAOre,IAAM,CAAEk9B,SAAUngC,GAAEshB,MAAQle,GAErC,KAAKH,EAAIG,EAAGE,EAAGC,EAAGwC,GAChB,IAAIC,EAAIrkC,KAAKmiM,mBACb,GAAU,WAANvgK,EAAgB,CAClB,IAAIsE,EAAIzE,EAER,YADAzhC,KAAKklL,UAAU7iL,IAAIi/B,EAAI,CAAE+9B,GAAIh7B,EAAGilJ,YAAapjJ,EAAGi5B,MAAOx9B,EAAG+8B,MAAO98B,EAAG4gK,aAAc,KAAMt8H,SAAU9hC,IAGpG,IAAIE,EAAIjG,GAAEi+B,cAAc36B,GAAI4C,EAAID,EAAIjG,GAAEg7B,gBAAgBz3B,GAAI6C,EAAIzkC,KAAKglL,KAAKj4H,QAAQxoB,KAAO,EACvFvkC,KAAKklL,UAAU7iL,IAAIi/B,EAAI,CAAE+9B,GAAIh7B,EAAGm+J,aAAc/9J,EAAG06B,MAAOx9B,EAAG+8B,MAAO98B,EAAGskC,SAAU9hC,IAAMpkC,KAAKglL,KAAKod,KAAKK,eAAep+J,EAAGC,EAAGG,GAAS,MAALhD,GAAazhC,KAAKglL,KAAKnvI,OAAOxzC,IAAI,IAAIkgC,WAAWd,EAAEzhB,OAAQyhB,EAAE4rC,WAAY9oC,GAAIE,GAE5M,WAAWnD,GACT,OAAOthC,KAAKihE,SAAS3/B,GAEvB,SAASA,EAAIG,EAAGE,GACd,IAAM6gK,aAAc5gK,EAAG88B,MAAOt6B,EAAG+6B,MAAO96B,EAAGilJ,YAAahlJ,GAAMtkC,KAAKklL,UAAU1jL,IAAI8/B,GACjF,GAAU,WAAN8C,EACF,OAAa,MAAL3C,GAAmB,IAANA,KAAkB,MAALE,GAAaA,GAAK2C,EAAEpkC,QAAcokC,EAAEtM,MAAMyJ,EAAGE,GAAf2C,EAClE7C,EAAIA,GAAK,EAAGE,EAAIA,GAAKtD,GAAEi+B,cAAcj4B,GACrC,IAAIE,EAAIlG,GAAEg7B,gBAAgBj1B,GAAIK,EAAIzkC,KAAKglL,KAAKnvI,OAAO7d,MAAM4J,EAAIH,EAAI8C,EAAG3C,EAAID,EAAI4C,GAC5E,OAAOm+J,GAAIj+J,EAAEzkB,OAAQokB,GAEvB,YAAY9C,EAAIG,GAAI,GAClB,GAAIzhC,KAAKklL,UAAUrjL,IAAIy/B,GAAK,CAC1B,IAAIK,EAAI3hC,KAAKklL,UAAU1jL,IAAI8/B,GAC3B,GAAIK,EAAEukC,YAAazkC,GAAKE,EAAEukC,SAAW,EACnC,OAAO,EACTlmE,KAAKglL,KAAK/3H,MAAMtrB,EAAE6gK,cAAexiM,KAAKglL,KAAKod,KAAKj8H,YAAYxkC,EAAE09B,IAAKr/D,KAAKklL,UAAUryH,OAAOvxB,GAE3F,OAAO,EAET,SAASA,GACP,OAAOthC,KAAKklL,UAAUrjL,IAAIy/B,GAAMthC,KAAKklL,UAAU1jL,IAAI8/B,GAAI4kC,SAAW,EAEpE,OAAO5kC,GACL,IAAIG,EAAIzhC,KAAKklL,UAAU1jL,IAAI8/B,GACtB,MAALG,GAAaA,EAAEykC,WAEjB,iBACE,OAAO,GAET,gBAAgB5kC,GACd,OAAOthC,KAAKklL,UAAU1jL,IAAI8/B,GAAIkhK,aAEhC,UACExiM,KAAKglL,KAAKod,KAAKp+K,UAAW,YAAahkB,KAAKglL,MAAQhlL,KAAKglL,KAAK9mI,QAAQtC,sBAAuB57C,KAAKglL,KAAO,KAE3G,SACE,MAAO,CAAEt8G,YAAY,GAEvB,WAAWpnC,EAAIG,EAAGE,EAAGC,GACnB,IAAIwC,EACJ,GAAS,MAALzC,EACFyC,EAAIpkC,KAAKqoE,MAAW,MAALzmC,EAAYA,EAAI,KAAMN,EAAIG,OACtC,CACH,IAAI4C,EAAIrkC,KAAKmiM,mBACb/9J,EAAI,CAAEi7B,GAAIh7B,GAAKrkC,KAAKklL,UAAU7iL,IAAI+hC,EAAG,CAAEi7B,GAAIh7B,EAAGm+J,aAAc7gK,EAAGw9B,MAAO79B,EAAIo9B,MAAOj9B,EAAGykC,SAAU,IAC9F,IAAI5hC,EAAIjG,GAAEi+B,cAAch7B,GACxBthC,KAAKglL,KAAKod,KAAKK,eAAep+J,EAAGC,EAAG3C,GAEtC,MAAO,CAAEi/B,OAAQx8B,EAAG+6B,MAAO79B,EAAIo9B,MAAOj9B,GAExC,oBAAqB09B,MAAO79B,EAAIo9B,MAAOj9B,EAAGm/B,OAAQj/B,IAChD,IAAIC,EAAI5hC,KAAKglL,KAAKnvI,OAAO71B,QAAUwiL,aAAcp+J,GAAMpkC,KAAKklL,UAAU1jL,IAAImgC,GAAI0C,EAAIhG,GAAEi+B,cAAch7B,GAClG,OAAQG,GACN,IAAK,UACH,OAAO,IAAI0U,aAAavU,EAAGwC,EAAGC,GAChC,IAAK,QACH,OAAO,IAAIuR,WAAWhU,EAAGwC,EAAGC,GAC9B,IAAK,OACH,OAAO,IAAI9B,WAAWX,EAAGwC,EAAGC,GAC9B,QACE,MAAM,IAAIJ,MAAM,iBAAiBxC,MAIzC,SAASkhK,GAAIthK,GACX,MAAO,CAACC,EAAIG,KAAOpD,GAAEqa,MAAMrX,EAAG,CAAEsX,YAAa,gBAAiBC,KAAMjX,IAClEA,EAAEkX,IAAMvX,EAAG5b,IAAI2e,EAAE,uCAAuChD,MAAOM,EAAEmX,cAAcF,KAAMhX,IACnFQ,YAAY4X,YAAYpY,EAAGN,GAAIsX,KAAMxU,IACnC3C,EAAE2C,EAAE0V,SAAU1V,EAAE2V,cAGlB,IAEN,SAAS6oJ,GAAGvhK,EAAGC,EAAIG,GACjB,GAAU,MAANohK,GACF,OAAOA,GACT,IAAIlhK,EAAI,yBACR,OAAON,GAAKC,EAAKK,EAAI,uCAAyCN,IAAMM,EAAI,+BAAsC,MAANmhK,IAAuB,MAATA,GAAGnhK,GAAamhK,GAAGnhK,GAAKF,EAAIE,EAEpJwqC,eAAe42H,KACb,IAAK1hK,EAAGC,SAAYkP,QAAQ5zB,IAAI,CAAC+I,KAAIq9K,SAAS,yBAA0Br9K,KAAIq9K,SAAS,kCACrF,OAAO,IAAIxyJ,QAAQ,CAAC/O,EAAGE,KACrB,IAAIC,EAAI,CACR,WAAe,CAAC0C,EAAGC,KACjB,GAAID,EAAE0mC,SAAS,cAAe,CAC5B,IAAIvmC,EAAIs9J,GAAG7xI,mBAAmB/d,QAAQ,MAAO,OAAQjM,EAAI,IAAI8mC,KAAK,CAACvoC,GAAI,CAAEs2C,KAAM,2BAC/E,OAAOppC,IAAIy9D,gBAAgBlpE,GAE7B,OAAO5B,EAAE0mC,SAAS,SAAW43H,GAAGvhK,EAAGC,EAAU,MAAN2hK,GAAaA,GAAK1+J,GAAKA,EAAID,IACjE4+J,KAAOthK,EAAEsY,gBAAkByoJ,GAAIC,GAAGvhK,EAAGC,EAAU,MAAN2hK,GAAaA,GAAK,MAC9D,IAMI5+J,EANAD,GAAI,EACRxC,EAAEsW,QAAU,KACN9T,GAAK++J,KAETA,IAAK,EAAMxhK,EAAE,CAAEyY,QAAS,sMAG1B9Y,GAAMD,GAAW,MAANwhK,IAAcjhK,EAAEgc,oBAAsB,IAAIovB,KAAK,CAAC,uCAAyCi1H,GAAGn8J,YAAa,CAAEi1C,KAAM,oBAAsB12C,EAAI49J,GAAGrgK,IAAMyC,EAAI69J,GAAItgK,GAAIyC,EAAEuU,KAAMtU,IACjLF,GAAI,EAAM++J,IAAK,EACf,IAAI5+J,EAAI,KACRD,EAAE89J,KAAO,CAAEjmJ,KAAM7X,EAAEirB,MAAM,OAAQ,KAAM,IAAK8yI,qBAAsB/9J,EAAEirB,MAAM,0BAA2B,KAAM,CAAC,WAAY/mC,gBAAiB8b,EAAEirB,MAAM,oBAAqB,SAAU,IAAKkzI,eAAgBn+J,EAAEirB,MAAM,kBAAmB,KAAM,CAAC,SAAU,SAAU,WAAY4W,YAAa7hC,EAAEirB,MAAM,eAAgBhrB,EAAG,CAAC,WAAYvgB,QAASsgB,EAAEirB,MAAM,UAAWhrB,EAAG,KAAO9C,EAAE,CAAEujJ,KAAM1gJ,MAC3WyU,MAAMpX,KAGb,SAAS+gK,GAAIrhK,EAAGC,GACd,OAAQA,GACN,IAAK,UACH,OAAO,IAAI6U,aAAa9U,GAC1B,IAAK,QACH,OAAO,IAAIuU,WAAWvU,GACxB,IAAK,OACH,OAAO,IAAIkB,WAAWlB,GACxB,QACE,MAAM,IAAI4C,MAAM,iBAAiB3C,IAGvC,IAAI8hK,GAAM,CAAC,yBAA0B,8BAA+B,wCAChEP,GAAK,KACLI,GAAK,KACLH,GAAK,GACLK,IAAK,EACLD,IAAK,EACT,SAASrsK,GAAIwK,EAAGC,GAAK,GACnB,GAAIre,GAAG,qGAAsGkgL,GAC3G,MAAM,IAAIl/J,MAAM,kIAClB4+J,GAAKxhK,EAAG6hK,GAAK5hK,EAEf,SAASvK,GAAIsK,EAAGC,GAAK,GACnB,GAAI6hK,GACF,MAAM,IAAIl/J,MAAM,mIAClB,GAAgB,iBAAL5C,EACT4hK,GAAK5hK,MACF,CACHyhK,GAAKzhK,EACL,IAAII,EAAI2hK,GAAI1zI,OAAQ/tB,GAAe,MAATmhK,GAAGnhK,IAC7B,GAAIF,EAAEvhC,OAAS,EACb,MAAM,IAAI+jC,MAAM,2DAA2DxC,EAAEi2B,KAAK,qKAEtFwrI,GAAK5hK,EAEP,IAAIghK,IAAM,EACNC,IAAM,EACV,SAAS5rK,GAAI0K,GACXihK,GAAKjhK,EAEP,SAAS5Y,KACP,IAAY,IAAR85K,GACF,MAAM,IAAIt+J,MAAM,iCAClB,OAAOs+J,GAET,IAAIhjK,GAAM,SACN8jK,GAAM,EACV5vK,GAAG,OAAQ04C,UACT,IAAM64G,KAAM3jJ,SAAY0hK,KACxB,OAAO,IAAIz9L,GAAG+7B,IACbgiK,IACH,IAAIC,GAAK39K,KACT29K,GAAGv4H,aAAa,oCAAqC,IAAM,IAC3Du4H,GAAGv4H,aAAa,qBAAsB,KAAM,GAC5Cu4H,GAAGv4H,aAAa,6BAA8B,KAAO,GACrDu4H,GAAGv4H,aAAa,oCAAqC,KAAM,GAC3Du4H,GAAGv4H,aAAa,2BAA4B,KAAM,GAClDu4H,GAAGv4H,aAAa,oCAAqC,IAAM,KAC3Du4H,GAAGv4H,aAAa,0BAA2B,KAAM,GACjDu4H,GAAGv4H,aAAa,iCAAkC,KAAM,GACxDu4H,GAAGv4H,aAAa,gCAAiC,KAAM,GACvDu4H,GAAGv4H,aAAa,qDAAsD,KAAO,GAC7Eu4H,GAAGv4H,aAAa,qCAAsC,KAAM,GAC5Du4H,GAAGv4H,aAAa,sBAAuB,IAAM,IAC7Cu4H,GAAGv4H,aAAa,6BAA8B,KAAM,GACpD,IAAIw4H,GAAK,MACP,YAAYjiK,GACVA,IAAOthC,KAAK8pE,OAASxoC,EAAGwoC,OAAQ9pE,KAAKwjM,aAAeliK,EAAGkiK,aAAcxjM,KAAKyjM,mBAAqBzjM,KAAK0jM,yBAEtG,wBACE,GAAI1jM,KAAK2jM,UAAW,CAClB,GAAI3jM,KAAKwjM,aAAajrJ,WAAW,OAC/B,OAAOib,OAAOxzD,KAAKwjM,aAAa9xF,MAAM,QACxC,GAAI1xG,KAAKwjM,aAAajrJ,WAAW,MAC/B,OAAO,GAEX,OAAO,EAET,UACE,MAAuB,UAAhBv4C,KAAK8pE,SAGZ85H,GAAK,MACP,YAAYtiK,GACVthC,KAAK6jM,OAASviK,EAAIthC,KAAK8jM,eAAiB,EAAG9jM,KAAK+jM,eAAiB,EAAG/jM,KAAKgkM,YAA8B,IAAI9rI,IAAOl4D,KAAKikM,YAA8B,IAAI/rI,IAAOl4D,KAAKkkM,aAAe,EAAGlkM,KAAKk/J,kBAAoB,EAElN,cAAc59H,EAAIG,EAAGE,GAAI,EAAOC,GAAI,GAClC,IAAIwC,EAAGC,EAAI8/J,GAAG7iK,EAAIG,GAClB,OAAOG,GAAK5hC,KAAKgkM,YAAYniM,IAAIwiC,IAAMrkC,KAAKgkM,YAAY3hM,IAAIgiC,EAAG,IAAKrkC,KAAKgkM,YAAYxiM,IAAI6iC,GAAGnkC,OAAS,GAAKkkC,EAAIpkC,KAAKgkM,YAAYxiM,IAAI6iC,GAAGyZ,MAAO99C,KAAK+jM,mBAAqB3/J,EAAIpkC,KAAK6jM,OAAOh/C,aAAa,CAAE3lF,KAAM59B,EAAIi9H,MAAO98H,EAAG2iK,iBAAkBziK,IAAM3hC,KAAKk/J,mBAAqB59H,KAAQ8C,EAAIpkC,KAAK6jM,OAAOh/C,aAAa,CAAE3lF,KAAM59B,EAAIi9H,MAAO98H,EAAG2iK,iBAAkBziK,IAAM3hC,KAAKk/J,mBAAqB59H,GAAKthC,KAAKikM,YAAYpiM,IAAIwiC,IAAMrkC,KAAKikM,YAAY5hM,IAAIgiC,EAAG,IAAKrkC,KAAKikM,YAAYziM,IAAI6iC,GAAGwH,KAAKzH,GAAIpkC,KAAK8jM,iBAAkB9jM,KAAKkkM,cAAgB5iK,EAAI8C,EAEzgB,cAAc9C,EAAIG,GAAI,GACpB,GAA8B,IAA1BzhC,KAAKgkM,YAAY9kI,KACnB,OACF,IAAIv9B,EAAIL,EAAG49B,KAAMt9B,EAAIN,EAAGi9H,MAAOn6H,EAAI+/J,GAAGxiK,EAAGC,GAAIyC,EAAIrkC,KAAKikM,YAAYziM,IAAI4iC,GAAIE,EAAID,EAAE3jC,QAAQ4gC,GACxF,GAAIgD,EAAI,EACN,MAAM,IAAIL,MAAM,4CAClBI,EAAEC,GAAKD,EAAEA,EAAEnkC,OAAS,GAAImkC,EAAEyZ,MAAO99C,KAAK8jM,iBAAkB9jM,KAAKkkM,cAAgBviK,EAAGF,GAAKzhC,KAAKgkM,YAAYxiM,IAAI4iC,GAAGyH,KAAKvK,GAAKthC,KAAK+jM,mBAAqBziK,EAAG+iK,UAAWrkM,KAAKk/J,mBAAqBv9H,GAE3L,oBACE,OAAO3hC,KAAK8jM,eAEd,oBACE,OAAO9jM,KAAK+jM,eAEd,UACE/jM,KAAKgkM,YAAYrqJ,QAAQ,CAACrY,EAAIG,KAC5BH,EAAGqY,QAAShY,IACVA,EAAE0iK,cAEFrkM,KAAKikM,YAAYtqJ,QAAQ,CAACrY,EAAIG,KAChCH,EAAGqY,QAAShY,IACVA,EAAE0iK,cAEFrkM,KAAKgkM,YAA8B,IAAI9rI,IAAOl4D,KAAKikM,YAA8B,IAAI/rI,IAAOl4D,KAAK8jM,eAAiB,EAAG9jM,KAAK+jM,eAAiB,EAAG/jM,KAAKkkM,aAAe,EAAGlkM,KAAKk/J,kBAAoB,IAGtM,SAASilC,GAAG9iK,EAAGC,GACb,MAAO,GAAGD,KAAKC,IAEjB,IAAIgjK,GAAK,MACP,YAAYhjK,GACVthC,KAAK6jM,OAASviK,EAAIthC,KAAKk7J,gBAAkB,EAAGl7J,KAAKm7J,gBAAkB,EAAGn7J,KAAKs7J,aAA+B,IAAIpjG,IAAOl4D,KAAKu7J,aAA+B,IAAIrjG,IAAOl4D,KAAKkkM,aAAe,EAAGlkM,KAAKk/J,kBAAoB,EAEtN,eAAe59H,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAImgK,GAAG5iK,GAAI0C,EAAI/C,EAAKG,EAAI2C,EAAGE,EAAIkgK,GAAGljK,EAAIG,EAAGE,EAAGC,GAChD,GAAI5hC,KAAKs7J,aAAaz5J,IAAIyiC,IAAMtkC,KAAKs7J,aAAaj5J,IAAIiiC,EAAG,IAAKtkC,KAAKu7J,aAAa15J,IAAIyiC,IAAMtkC,KAAKu7J,aAAal5J,IAAIiiC,EAAG,IAAKtkC,KAAKkkM,cAAgB7/J,EAAGrkC,KAAKk7J,kBAAmBl7J,KAAKs7J,aAAa95J,IAAI8iC,GAAGpkC,OAAS,EAAG,CAC3MF,KAAKm7J,kBACL,IAAI12H,EAAIzkC,KAAKs7J,aAAa95J,IAAI8iC,GAAG6S,QACjC,OAAOn3C,KAAKu7J,aAAa/5J,IAAI8iC,GAAGuH,KAAKpH,GAAIA,EAE3CzkC,KAAKk/J,mBAAqB76H,EAC1B,IAAIE,EAAIvkC,KAAK6jM,OAAOxoD,cAAc,CAAEn8E,KAAM,CAAC59B,EAAIG,GAAIisC,OAAQ/rC,EAAG48H,MAAO38H,IACrE,OAAO5hC,KAAKu7J,aAAa/5J,IAAI8iC,GAAGuH,KAAKtH,GAAIA,EAE3C,eAAejD,GACb,GAA+B,IAA3BthC,KAAKs7J,aAAap8F,KACpB,OACF,IAAIz9B,EAAIH,EAAGqpC,MAAOhpC,EAAIL,EAAGopC,OAAQ9oC,EAAIN,EAAGosC,OAAQtpC,EAAI9C,EAAGi9H,MAAOl6H,EAAImgK,GAAG/iK,EAAGE,EAAGC,EAAGwC,GAC9EpkC,KAAKs7J,aAAaz5J,IAAIwiC,IAAMrkC,KAAKs7J,aAAaj5J,IAAIgiC,EAAG,IAAKrkC,KAAKs7J,aAAa95J,IAAI6iC,GAAGwH,KAAKvK,GAAKthC,KAAKm7J,kBAAmBn7J,KAAKk7J,kBAC1H,IAAI52H,EAAItkC,KAAKu7J,aAAa/5J,IAAI6iC,GAAIE,EAAID,EAAE5jC,QAAQ4gC,GAChD,GAAIiD,EAAI,EACN,MAAM,IAAIN,MAAM,4EAClBK,EAAEoW,OAAOnW,EAAG,GACZ,IAAIE,EAAI8/J,GAAG3iK,GAAIsE,EAAIzE,EAAIE,EAAI8C,EAC3BzkC,KAAKkkM,cAAgBh+J,EAEvB,qBACE,OAAOlmC,KAAKk7J,gBAEd,qBACE,OAAOl7J,KAAKm7J,gBAEd,UACEn7J,KAAKs7J,aAAa3hH,QAAQ,CAACrY,EAAIG,KAC7BH,EAAGqY,QAAShY,IACVA,EAAE0iK,cAEFrkM,KAAKu7J,aAAa5hH,QAAQ,CAACrY,EAAIG,KACjCH,EAAGqY,QAAShY,IACVA,EAAE0iK,cAEFrkM,KAAKs7J,aAA+B,IAAIpjG,IAAOl4D,KAAKu7J,aAA+B,IAAIrjG,IAAOl4D,KAAKk7J,gBAAkB,EAAGl7J,KAAKm7J,gBAAkB,EAAGn7J,KAAKkkM,aAAe,EAAGlkM,KAAKk/J,kBAAoB,IAG1M,SAASslC,GAAGnjK,EAAGC,EAAIG,EAAGE,GACpB,MAAO,GAAGN,KAAKC,KAAMG,KAAKE,IAE5B,SAAS4iK,GAAGljK,GACV,GAAU,eAANA,EACF,OAAO,GACT,MAAM,IAAI4C,MAAS5C,EAAH,sBAElB,SAASojK,GAAGpjK,EAAGC,GACb,GAAIyC,KAAK3W,OAAOiU,GAAK,EACnB,MAAM,IAAI4C,MAAM,4DAClB,IAAIxC,EAAIJ,EAAEnhC,OAAQyhC,EAAI,SAAUC,EAAIP,EAAEkzB,IAAKlwB,GAAM,GAAG/C,KAAMK,EAAE0C,MAAOD,EAAI,IAAIqwB,MAAMhzB,EAAI,GACrF2C,EAAE3C,EAAI,GAAKG,EAAEH,EAAI,GACjB,IAAK,IAAI4C,EAAI5C,EAAI,EAAG4C,GAAK,IAAKA,EAC5BD,EAAEC,GAAK,IAAID,EAAEC,EAAI,QAAQzC,EAAEyC,EAAI,MACjC,OAAOD,EAET,IAaIsgK,GAbAC,GAAK,CAACtjK,EAAGC,EAAIG,IAAY,UAANA,EAAgB,aAAaJ,mBAAmBC,OAAU,+HAIrBA,mHAERD,2KAQpD,SAAUA,GACRA,EAAEA,EAAEujK,YAAc,GAAK,cAAevjK,EAAEA,EAAEwjK,KAAO,GAAK,QADxD,CAEGH,KAAOA,GAAK,KACf,IAAII,GAAK,CAACzjK,EAAGC,EAAIG,EAAGE,EAAGC,KACrB,IAAIwC,EAAI,CAAEs6B,MAAO/8B,EAAE+8B,MAAOS,MAAOx9B,EAAEw9B,OAAS96B,EAAI0gK,GAAItjK,EAAG2C,EAAG9C,GAAKgD,EAAIjD,EAAE2jK,mBAAmB,CAAEC,KAAM5gK,EAAG6gK,MAAO5jK,EAAGq0B,YAAYp0D,OAASgjC,EAAI5e,KAAInkB,IAAI,uBAC9I,GAAU,KAAN+iC,EAAU,CACZA,EAAIA,EAAEqzB,cACN,IAAInzB,EAAIF,EAAE/K,MAAM,MACT,QAAN+K,GAAeE,EAAE8+B,KAAMr9B,GAAM5E,EAAG6jK,UAAUvtI,cAAcr3D,SAAS2lC,OAASsM,QAAQ65B,MAAM/qC,EAAG6jK,WAAY3yJ,QAAQ2iH,MAAM9wH,GAAImO,QAAQ4yJ,YAEpI,OAAOxjK,EAAIP,EAAEgkK,2BAA2B,CAAEvhE,QAAS,CAAE/pF,OAAQzV,EAAGghK,WAAY,UAAYJ,MAAO5jK,EAAGq0B,YAAYp0D,KAAMgkM,OAAQ,SAAYlkK,EAAEmkK,sBAAsB,CAAE1hE,QAAS,CAAE/pF,OAAQzV,EAAGghK,WAAY,UAAYJ,MAAO5jK,EAAGq0B,YAAYp0D,KAAMgkM,OAAQ,UAElPE,GAAK,CAACpkK,EAAGC,EAAK,SAChB,OAAQD,GACN,KAAK,EACH,MAAO,GAAGC,EACZ,KAAK,EACH,MAAO,QAAQA,KACjB,KAAK,EACH,MAAO,QAAQA,KACjB,KAAK,EACH,MAAO,QAAQA,KACjB,QACE,MAAM,IAAI2C,MAAM,GAAG5C,eAAeC,yBAGxC,SAASokK,GAAGrkK,GACV,GAAIA,GAAK,EACP,MAAO,MACT,GAAU,IAANA,EACF,MAAO,YACT,GAAU,IAANA,EACF,MAAO,YACT,GAAU,IAANA,EACF,MAAO,YACT,GAAU,IAANA,EACF,MAAO,OACT,GAAU,IAANA,EACF,MAAO,OACT,MAAM4C,MAAM,gBAAgB5C,0BAE9B,SAASskK,GAAGtkK,GACV,GAAU,IAANA,EACF,MAAO,IACT,GAAU,IAANA,EACF,MAAO,IACT,GAAU,IAANA,EACF,MAAO,IACT,GAAU,IAANA,EACF,MAAO,IACT,GAAU,IAANA,EACF,MAAO,IACT,GAAU,IAANA,EACF,MAAO,IACT,MAAM4C,MAAM,SAAS5C,0BAEvB,SAAS4tH,MAAK5tH,GACZ,IAAIC,EACJ,OAAQD,EAAEnhC,QACR,KAAK,EACHohC,EAAK,8BAGL,MACF,KAAK,EACHA,EAAK,qBACOD,EAAE,oBAEd,MACF,QACE,MAAM4C,MAAM,eAEhB,OAAO3C,EAET,SAASskK,GAAGvkK,EAAGC,GACb,IAAIG,EACJ,OAAOA,EAAI,UACNokK,GAAIvkK,4gBAWDD,EAAI,0BAA4B,4BAEnCI,EAEP,SAASokK,GAAIxkK,GACX,MAAO,gCACoBA,EAAEykK,cAAc,OAAOzkK,EAAEykK,cAAc,OAAOzkK,EAAEykK,cAAc,QAG3F,SAASf,GAAI1jK,EAAGC,EAAIG,GAClB,IAAIE,EAAI,GAAIC,EAAIH,EAAEqkK,cAAc,GAAKrkK,EAAEqkK,cAAc,GAAKrkK,EAAEqkK,cAAc,GAC1E,GAAIrkK,EAAEskK,gBAAkBtkK,EAAEskK,gBAAkBtkK,EAAEskK,gBAAkB,EAAGpkK,EAAEkK,KAAK,wUAUlEm6J,GAAGvkK,GAAK,4BAA8B,yIACqBG,iEAI3C,MAAlBH,EAAEwkK,aAAsB,CAC5B,IAAI79J,EAAI3G,EAAEwkK,eAAiBvB,GAAGE,YAAc,gEAAgEsB,GAAG5kK,EAAGo9B,MAAOj9B,EAAEskK,qBAAuB,0DAA0DG,GAAG7kK,EAAE,GAAGq9B,MAAOj9B,EAAEskK,qBAAsB75J,EAAwB,IAApB5K,EAAG69B,MAAMj/D,OAAe,YAAc,MAC7RyhC,EAAEkK,KAAK,2DAEmBK,mIAMpB9D,4EAGN,IAAI+D,EAAIg6J,GAAG1kK,GACX,MAAO,CAAC2kK,GAAIzkK,EAAE+1B,KAAK,MACnB2uI,GAAG/kK,EAAG69B,OAAQ19B,EAAE6kK,cAAeV,GAAGz5J,EAAG1K,IAAIi2B,KAAK,MAGhD,IAAItzB,EAAGC,EAAGC,EAAI,gDACd7C,EAAE0qH,cAAcxyG,QAAQ,CAACvR,EAAG8D,KAC1B,IAAIC,EAAIu5J,GAAGrkK,EAAE6K,GAAGizB,MAAMj/D,QACtBokC,GAAK,GAAG8D,EAAEsjH,OAAO,GAAG9zF,cAAgBxvB,EAAEpQ,MAAM,aAAamU,MAAO/H,EAAI/C,EAAE6K,GAAGizB,MAAMj/D,OAAS,EAAGmkC,EAAIqhK,GAAGthK,GAAIE,GAAK,GAAG8D,EAAEsjH,OAAO,GAAG9zF,cAAgBxvB,EAAEpQ,MAAM,mBAAmBqM,QAEvK,IAAIE,EAAImhK,GAAGpkK,EAAG69B,MAAMj/D,QACpBokC,GAAK,cAAcC,MAAOH,EAAI9C,EAAG69B,MAAMj/D,OAAS,EAAGmkC,EAAIqhK,GAAGthK,GAAIE,GAAK,+BACzCD,MAAO5C,EAAEy9B,OAAS56B,GAAK,gBAAiB7C,EAAE8kK,WAAajiK,GAAK7C,EAAE8kK,UAAWjiK,GAAK,KAAMA,EAAIkiK,GAAIliK,GAAI3C,EAAEkK,KAAKvH,GAAI7C,EAAEglK,OAAS9kK,EAAEkK,KAAK,4FAEhJlK,EAAEkK,KAAK,wEACqDq6J,GAAG5kK,EAAGo9B,MAAOj9B,EAAEskK,4BAC5EtkK,EAAE0qH,cAAcxyG,QAAQ,CAACvR,EAAG8D,KAChCvK,EAAEkK,KAAK,8BACgB,EAAIK,yBAAyB9D,YAAY3G,EAAEilK,mBAAqBR,GAAG7kK,EAAE6K,GAAGwyB,MAAOj9B,EAAEilK,mBAAmBx6J,IAAMg6J,GAAG7kK,EAAE6K,GAAGwyB,MAAOj9B,EAAEskK,kCAE1I,KAANzhK,GAAY3C,EAAEkK,KAAK,8BACE,EAAIpK,EAAE0qH,cAAcjsJ,oDAE7C,IAAIukC,EAAIkiK,GAAIrlK,EAAG69B,MAAO19B,EAAEmlK,gBAAiB1gK,EAAI,CAACkgK,GAAIzkK,EAAE+1B,KAAK,MACtDmvI,GAAKR,GAAG/kK,EAAG69B,OAAQ16B,EAAGqiK,GAAIxlK,EAAG69B,MAAMj/D,SACtCuhC,EAAEglK,QAAUvgK,EAAE2F,KAAKk7J,GAAIzlK,EAAG69B,MAAO79B,EAAGo9B,MAAOj9B,EAAEskK,kBAAmBtkK,EAAE0qH,cAAcxyG,QAAQ,CAACvR,EAAG8D,KAC1FhG,EAAE2F,KAAK,GAAGw6J,GAAGhlK,EAAE6K,GAAGizB,MAAO/2B,MAE3B,IAAIN,EAAIzG,EAAEkzB,IAAI,CAACnsB,EAAG8D,IAAM86J,GAAI5+J,EAAG9G,EAAG69B,MAAO19B,EAAEilK,mBAAqBjlK,EAAEilK,mBAAmBx6J,GAAKzK,EAAEskK,gBAAiBtkK,EAAEmlK,eAAe17J,EAAEhrC,SAAWohC,EAAG69B,MAAMj/D,SAASw3D,KAAK,MAElKxxB,EAAE2F,KAAK/D,GAAI5B,EAAE2F,KAAKpK,EAAE6kK,eACpB,IAAIv+J,EAAIo+J,GAAG1kK,GACX,OAAOyE,EAAE2F,KAAK+5J,GAAG79J,EAAGtG,IAAKyE,EAAEwxB,KAAK,MAGlC,SAASuvI,GAAG5lK,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE8jK,UACV,GAAsB,MAAlB9jK,EAAE4kK,aACJ,OAAOtkK,EACT,IAAIC,EAAI,GAAIwC,EAAI,GAChB9C,EAAGqY,QAASzT,IACVtE,EAAEiK,KAAK3F,EAAEi5B,OAAQ/6B,EAAEyH,KAAK3F,EAAEw4B,SACxB98B,EAAEiK,KAAKpK,EAAE09B,OAAQ/6B,EAAEyH,KAAKpK,EAAEi9B,OAC9B,IAAIr6B,EAAI/C,EAAGizB,IAAKruB,GAAM7nB,GAAE6jE,iBAAiBh8C,EAAEi5B,MAAO19B,EAAE09B,QAAS76B,EAAIhD,EAAGizB,IAAKruB,GAAM7H,GAAEy6B,YAAY5yB,EAAEi5B,MAAO19B,EAAE09B,QAAQzH,KAAK,KAAMnzB,EAAIF,EAAEkwB,IAAKruB,GAAMA,EAAEwxB,KAAK,MAAMA,KAAK,KAAMjzB,EAAIuhK,GAAG3kK,GAAK,eAAiB,GACjM,OAAOM,GAAK,KAAON,EAAEykK,cAAgBzkK,EAAEykK,cAAcpuI,KAAK,KAAO,IAAM91B,EAAE2yB,IAAKruB,GAAMA,EAAEhmC,QAAQw3D,KAAK,KAAOtzB,EAAEszB,KAAK,KAAOr2B,EAAE8qH,cAAcz0F,KAAK,KAAOnzB,EAAID,EAAIG,EAAG9C,EAEjK,IAAIykK,GAAK,8+EAmDLS,GAAM,qFAKV,SAASR,GAAGhlK,EAAGC,EAAK,IAClB,IAAIG,EAAIJ,EAAEnhC,OAAQyhC,EAAW,KAAPL,EAAY,MAAMA,EAAGoqH,OAAO,GAAGl9B,cAAgBltF,EAAGtJ,MAAM,oBAAsB,qBAAsB4J,EAAW,KAAPN,EAAeA,EAAGoqH,OAAO,GAAG9zF,cAAgBt2B,EAAGtJ,MAAM,GAAzC,eAA4D,kBACtM,GAAIyJ,GAAK,EACP,MAAO,MAAME,0CACf,IAQI4C,EARAH,EAAI/F,GAAEm7B,eAAen4B,GAAIgD,EAAIqhK,GAAGjkK,GAAI6C,EAAI,GAC5C,IAAK,IAAIG,EAAI,EAAGA,EAAIhD,EAAGgD,IACrBH,EAAEuH,KAAK,IAAIpH,GACb,OAAiB,IAAbL,EAAElkC,OACG,UAAUyhC,kEACaC,qCAAqCA,8CAI9D2C,EAAI,sBAAwBH,EAAEmwB,IAAI,CAAC9vB,EAAGyB,KAC3C,IAAI4B,EAAI,OAAOxD,EAAE4B,0BAA0BtE,KAAK+jK,GAAGz/J,KAAM6B,EAAI7B,IAAM9B,EAAElkC,OAAS,EAAI,OAAOokC,EAAE4B,EAAI,iBAAiB5B,EAAE4B,iBAAiBtE,KAAK+jK,GAAGz/J,KAAO,qBAAqB5B,EAAE4B,iBAAiBtE,KAAK+jK,GAAGz/J,KAClM,MAAO,GAAG4B,MAAMC,OACf2vB,KAAK,IAAK,YACN/1B,qBAAqB0C,cACtBE,mBACOF,KAAKC,EAAEozB,KAAK,qBAI3B,SAASwvI,GAAI7lK,EAAGC,GACd,IAAIG,EAAIJ,EAAE9/B,KAAMogC,EAAIN,EAAE89B,MAAMj/D,OAAQ0hC,EAAI8jK,GAAG/jK,GAAIyC,EAAI,MAAQ3C,EAAEiqH,OAAO,GAAGl9B,cAAgB/sF,EAAEzJ,MAAM,GAAIqM,EAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMrM,MAAM,EAAG2J,GAAI2C,EAAID,EAAEkwB,IAAKruB,GAASA,EAAH,UAAcwxB,KAAK,MAC7L,GAAI/1B,EAAI,EACN,MAAO,cACAyC,UAAUqhK,GAAGnkK,wBACPmkK,GAAGnkK,MAAOG,wBAGzB,IAAI8C,EAAI,YAAY9C,EAAEiqH,OAAO,GAAG9zF,cAAgBn2B,EAAEzJ,MAAM,UAAWyM,EAAO9C,EAAH,IACvE,OAAa,IAANA,IAAY8C,EAAI,MAAO,YACvBL,KAAKE,SAASmhK,GAAGnkK,sBACXmkK,GAAGnkK,MAAOG,uBAAuBgD,KAAK7C,KAAKyC,EAAEqzB,KAAK,mBACvDnzB,KAAY,IAAPjD,EAAW,GAAK,MAAMA,mBAIrC,SAAS6lK,GAAI9lK,EAAGC,EAAIG,EAAGE,GACrB,IAAIC,EAAIP,EAAE9/B,KAAM6iC,EAAIxC,EAAE8pH,OAAO,GAAGl9B,cAAgB5sF,EAAE5J,MAAM,GAAIqM,EAAI,MAAQD,EAAI,WAAYE,EAAIjD,EAAE89B,MAAMj/D,OAAQqkC,EAAIjD,EAAGphC,OAAQukC,EAAIihK,GAAGnhK,GAClI,GAAIlG,GAAEy6B,YAAYz3B,EAAE89B,MAAO79B,IAAOK,EAChC,MAAO,YACF0C,gCAAgCohK,GAAGhkK,sBAC7BgkK,GAAGhkK,MAAMG,qCAGfyC,oBAAoBI,SAASghK,GAAGhkK,sBAC1BgkK,GAAGhkK,MAAMG,KAAK2C,EAAI,EAAI,mCAAqC,WAAiB,IAAN9C,EAAU,GAAK,MAAMA,oBAGxG,IAAIyE,EAAI7nB,GAAE6jE,iBAAiB7gD,EAAE89B,MAAO79B,GAAKwG,EAAIvD,EAAID,EAAGyD,EAAI,GACxD,GAAU,IAANzD,EACF,MAAO,YACFD,gCAAgCohK,GAAGhkK,wBAC1B2C,yBAGTC,oBAAoBI,SAASghK,GAAGhkK,wBACvB2C,kBAGS2D,EAAzBxD,EAAI,GAAK2B,EAAEhmC,QAAU,EAAQ,cAAoBgmC,EAAEquB,IAAKpoB,GAAM,UAAUw5J,GAAGx5J,EAAIrE,WAAW4vB,KAAK,MAE/F,IAAI1vB,EAAI,GACR,GAAIzD,EAAI,GAAKD,EAAI,EACf0D,EAAI,cACD,GAAIzD,EAAI,EAAG,CACd,IAAI4H,EAAIu5J,GAAGphK,GAAI4G,EAAI7J,EAAE89B,MAAM5K,IAAI,CAAC9nB,EAAGM,IAAM,UAAU44J,GAAG54J,EAAIjF,IAAM4vB,KAAK,MACrE1vB,EAAI,GAAGmE,KAAKjB,UAEZlD,EAAI,SACN,IAAII,EAAI,YAAYxG,EAAE8pH,OAAO,GAAG9zF,cAAgBh2B,EAAE5J,MAAM,UAAWkU,EAAO5H,EAAH,IACvE,MAAO,UACFD,gCAAgCohK,GAAGhkK,gEAEpCsG,iBACO09J,GAAGhkK,MAAMG,uBAAuBsK,KAAKlE,MAAMI,KAAW,IAAN3G,EAAU,GAAK,MAAMA,qBAG3E4C,sBAAsBI,SAASghK,GAAGhkK,yCAEnCsG,iBACO09J,GAAGhkK,MAAMG,uBAAuBsK,KAAKlE,MAAMI,KAAW,IAAN3G,EAAU,GAAK,MAAMA,cAIlF,SAASulK,GAAI3lK,EAAGC,EAAIG,EAAGE,GACrB,IAAIC,EAAIslK,GAAI7lK,EAAGI,GACf,OAAOJ,EAAE89B,MAAMj/D,QAAUohC,EAAGphC,SAAW0hC,GAAKulK,GAAI9lK,EAAGC,EAAIG,EAAGE,IAAKC,EAEjE,SAAS+kK,GAAItlK,EAAGC,GACd,IAAM4J,EAAGzJ,EAAGpD,EAAGsD,EAAI,GAAIwJ,EAAGvJ,EAAI,IAAON,EAAI8C,EAAI/C,EAAEnhC,OAAQmkC,EAAI5C,EAAEvhC,OAASyhC,EAAEzhC,OAAS0hC,EAAE1hC,OACnF,GAAImkC,IAAMD,EACR,MAAO,GACT,GAAI3C,EAAEvhC,SAAWkkC,EACf,MAAO,2BAA2BshK,GAAGthK,qGAKvC,IAAIE,EAAI,GAAIC,EAAI,CAAC9C,EAAGE,EAAGC,GACvB,IAAK,IAAImG,EAAI,EAAGA,EAAIxD,EAAErkC,OAAQ6nC,IAAK,CACjC,IAAIC,EAAIzD,EAAEwD,GACV,GAAiB,IAAbC,EAAE9nC,OACJ,GAAiB,IAAb8nC,EAAE9nC,OACJokC,GAAK,QAAQ0D,EAAE,qBAAqBD,WACjC,CACH,IAAIK,EAAIq8J,GAAGz8J,EAAG,qBACd1D,GAAK,YAAYyD,oBAAoBA,OACrC,IAAK,IAAImE,EAAI,EAAGA,EAAI9D,EAAEloC,OAAQgsC,IAC5B5H,GAAK,QAAQ0D,EAAEkE,aAAanE,OAAOK,EAAE8D,MAAOA,IAAM9D,EAAEloC,OAAS,EAAIokC,GAAK,QAAQ0D,EAAEkE,EAAI,aAAanE,QAAQC,EAAEkE,QAAQ9D,EAAE8D,MAAQ5H,GAAK,QAAQyD,YAAYA,QAAQC,EAAEkE,QAAQ9D,EAAE8D,OAGlL,IAAIzH,EAAI,GACR,IAAK,IAAIsD,EAAI,EAAGA,EAAI1D,EAAG0D,IACrBtD,EAAEoH,KAAK,IAAI9D,GACb,IAAI7B,EAAIw/J,GAAGrhK,GAAIyD,EAAI,2BAA2B5B,UAC5C5B,MAEF,OAAoB,IAAbG,EAAEvkC,OAAe4nC,GAAK,UAAU5B,UAAY4B,GAAK,UAAU5B,KAAKzB,EAAEizB,KAAK,WAAY5vB,EAE5F,SAASg/J,GAAIzlK,GACX,IAAIC,EAAK,GACT,OAAQD,GACN,KAAK,EACL,KAAK,EACHC,GAAM,8GAKN,MACF,KAAK,EACHA,GAAM,iKAKN,MACF,KAAK,EACHA,GAAM,+LAKN,MACF,KAAK,EACHA,GAAM,yOAMN,MACF,KAAK,EACHA,GAAM,6UASN,MACF,KAAK,EACHA,GAAM,oYAUN,MACF,QACEjD,GAAE26B,QAAO,EAAO,IAAM,eAAe33B,YACrC,MAEJ,OAAOC,EAET,SAAS0kK,GAAG3kK,GACV,OAAyB,IAAlBA,EAAE+lK,SAAS,IAA8B,IAAlB/lK,EAAE+lK,SAAS,GAE3C,SAASlB,GAAG7kK,EAAGC,EAAK,GAClB,GAAU,YAAND,EACF,OAAOokK,GAAGnkK,EAAI,OAChB,GAAU,UAAND,GAAuB,SAANA,EACnB,OAAOokK,GAAGnkK,EAAI,OAChB,MAAM,IAAI2C,MAAM,QAAQ5C,uBAE1B,SAAS0lK,GAAI1lK,EAAGC,EAAIG,GAClB,IAAIE,EAAIN,EAAEnhC,OAAQ0hC,EAAIskK,GAAG5kK,EAAIG,GAAI2C,EAAI,gDAAgDqhK,GAAGhkK,oCAC9DG,2EAG0B6jK,GAAGhkK,EAAG,wCAChCG,yBAG1B,GAAID,GAAK,EAAG,CACV,IAAI0C,EAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMrM,MAAM,EAAG2J,GAAI2C,EAAIohK,GAAG/jK,GACjEyC,GAAK,gCACoBC,EAAEkwB,IAAKhwB,GAASA,EAAH,UAAcmzB,KAAK,kBAAkB+tI,GAAGhkK,2DAC/B6C,KAAKD,EAAEqzB,KAAK,+CACrB,IAANj2B,EAAU,GAAK,MAAMA,sDAEzB4C,EAAEkwB,IAAKhwB,GAASA,EAAH,UAAcmzB,KAAK,kBAAkB+tI,GAAGhkK,EAAG,+DACrC6C,KAAKD,EAAEqzB,KAAK,kDAClB,IAANj2B,EAAU,GAAK,MAAMA,4BAI1D,OAAO2C,EAET,SAASoiK,GAAInlK,GACX,IAAIC,EAAK,wBACTD,EAAIA,EAAE8Q,QAAQ7Q,EAAKK,GAAM,cAAgBA,GACzC,IAAIF,EAAI,wBACR,OAAOJ,EAAIA,EAAE8Q,QAAQ1Q,EAAG,CAACE,EAAGC,EAAGwC,IAAM,MAAMxC,iBAAiBwC,KAAM/C,EAEpE,SAAS8kK,GAAG9kK,GACV,QAASA,EAAEulK,eAAezlK,eAAe,MAAsC,IAA9BE,EAAEulK,eAAevoK,EAAEn+B,QAAgBmhC,EAAEulK,eAAezlK,eAAe,MAAsC,IAA9BE,EAAEulK,eAAez7J,EAAEjrC,QAEjJ,IAAI6/B,GAAK,GACTyB,EAAGzB,GAAI,CAAEsnK,mBAAoB,IAAMC,GAAIC,kBAAmB,IAAMC,GAAI7tD,iBAAkB,IAAM8tD,GAAIC,gBAAiB,IAAMC,GAAGC,8BAA+B,IAAMC,GAAIC,8BAA+B,IAAMC,GAAIC,8BAA+B,IAAMC,GAAIC,mBAAoB,IAAM97J,GAAG+7J,kBAAmB,IAAMC,GAAIC,wBAAyB,IAAMC,KAC9U,IAiDId,GAjDAe,GAAMlnK,IACR,IAAIC,EAAK,EACT,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAEnhC,OAAQuhC,IAC5BH,GAAMD,EAAEI,GACV,OAAOH,GAET,SAASgnK,GAAIjnK,EAAGC,GACd,GAAID,EAAEnhC,SAAWohC,EAAGphC,OAClB,MAAM,IAAI+jC,MAAM,+BAA+B5C,EAAEnhC,qCAAqCohC,EAAGphC,oCAC3F,OAAOohC,EAAG2gB,MAAM,CAACxgB,EAAGE,IAAMF,EAAIJ,EAAEM,KAAO,GAEzC,SAASgmK,GAAEtmK,EAAGC,EAAIG,EAAI,CAAC,EAAG,EAAG,GAAIE,EAAI,CAAC,EAAG,EAAG,IAC1C,IAAKC,EAAGwC,EAAGC,GAAK,CAACN,KAAK3jB,KAAKmoL,GAAGlnK,EAAE6J,EAAEqpB,IAAKjwB,GAAMhD,EAAGgD,MAAQ7C,EAAE,GAAKE,EAAE,KAAMN,EAAEhD,EAAI0F,KAAK3jB,KAAKmoL,GAAGlnK,EAAEhD,EAAEk2B,IAAKjwB,GAAMhD,EAAGgD,MAAQ7C,EAAE,GAAKE,EAAE,KAAO,EAAGN,EAAE8J,EAAIpH,KAAK3jB,KAAKmoL,GAAGlnK,EAAE8J,EAAEopB,IAAKjwB,GAAMhD,EAAGgD,MAAQ7C,EAAE,GAAKE,EAAE,KAAO,GACpM,MAAO,CAACC,EAAGwC,EAAGC,GAEhB,SAAS0jK,GAAG1mK,EAAGC,EAAIG,EAAGE,GAAI,GACxB,IAAIC,EAAI,CAAC,EAAG,EAAG,GAAIwC,EAAI,CAAC,EAAG,EAAG,GAC9B,OAAOzC,IAAMN,GAAK,IAAM+C,EAAE,GAAK,GAAI9C,GAAM,IAAMG,GAAK,KAAOG,EAAE,GAAK,IAAK,CAAEkkK,cAAelkK,EAAG4mK,kBAAmBpkK,GAEhH,SAAS6jK,GAAG5mK,EAAGC,EAAIG,GAAI,GACrB,GAAIA,EACF,MAAO,CAAC,EAAG,EAAG,GAChB,IAAIE,EAAI4mK,GAAGlnK,EAAE6J,EAAEqpB,IAAKnwB,GAAM9C,EAAG8C,KAAMxC,EAAI2mK,GAAGlnK,EAAEhD,EAAEk2B,IAAKnwB,GAAM9C,EAAG8C,KAC5D,OAAOzC,GAAK,EAAI,CAAC,EAAG,GAAI,GAAKC,GAAK,EAAI,CAAC,GAAI,EAAG,GAAK,CAAC,GAAI,GAAI,GAE9D,SAASimK,GAAGxmK,EAAGC,EAAIG,GAAI,GACrB,GAAIA,EACF,MAAO,CAAC,EAAG,EAAG,GAChB,IAAIE,EAAI4mK,GAAGlnK,EAAE6J,EAAEqpB,IAAKnwB,GAAM9C,EAAG8C,KAAMxC,EAAI2mK,GAAGlnK,EAAEhD,EAAEk2B,IAAKnwB,GAAM9C,EAAG8C,KAC5D,OAAOzC,GAAK,EAAI,CAAC,EAAG,EAAG,GAAKC,GAAK,EAAI,CAAC,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,GAE1D,SAASwK,GAAE/K,GACT,MAAO,CAAE6J,EAAG7J,EAAEkzB,IAAI,CAACjzB,EAAIG,IAAMA,IAE/B,SAAS6lK,GAAGjmK,GACV,GAAU,YAANA,GAAyB,UAANA,GAAuB,SAANA,GAAsB,WAANA,EACtD,OAAO,EACT,GAAU,cAANA,EACF,OAAO,EACT,MAAM,IAAI4C,MAAM,iBAAiB5C,GAEnC,SAAS+mK,KACP,OAAyB,oBAAVp3J,QAAqD,oBAArBm5B,sBAAuCj8B,UAAUu6J,IAElG,SAAShB,GAAGpmK,EAAGC,GACbmzB,MAAMC,QAAQrzB,KAAOA,EAAI,CAACA,IAAKA,EAAEsY,QAASlY,IACnC,MAALA,GAAapD,GAAE26B,OAAmB,cAAZv3B,EAAEi9B,MAAuB,IAASp9B,EAAH,iEAIzD,SAAUD,GACRA,EAAEA,EAAEqnK,oBAAsB,GAAK,sBAAuBrnK,EAAEA,EAAEsnK,oBAAsB,GAAK,sBAAuBtnK,EAAEA,EAAEunK,6BAA+B,GAAK,+BAAgCvnK,EAAEA,EAAEwnK,oBAAsB,GAAK,sBAAuBxnK,EAAEA,EAAEynK,UAAY,GAAK,aADjQ,CAEGtB,KAAOA,GAAK,KACf,IA8UIuB,GA9UAC,GAAMrjL,KAAIq7H,UAAU,qCACpBioD,GAAM,CAAC5nK,EAAGC,KACZ,IAAIG,EAAIJ,EAAEgtD,OAAO66G,iCAAkCvnK,EAAIL,EAAGslK,eAAgBhlK,EAAIN,EAAG8lK,SACjF,GAAIxlK,EAAEqgB,MAAO5d,GAAMA,GAAK5C,GACtB,OAAOG,EACTvD,GAAE26B,OAAOp3B,EAAE,GAAKH,QAAa,IAARE,EAAEtD,QAAwB,IAARsD,EAAEwJ,EAAc,IAAM,4DAC7D,IAAI/G,EAAIL,KAAK3jB,KAAK2jB,KAAKrK,KAAKkI,EAAE,KAC9B,OAAOwC,EAAI3C,GAAK2C,EAAIL,KAAK3jB,KAAK2jB,KAAKolK,KAAKvnK,EAAE,KAAMvD,GAAE26B,OAAO50B,GAAK3C,EAAG,IAAM,+CAAgD,CAAC2C,EAAGA,EAAGA,IAAM,CAACA,EAAGA,EAAG,IAEzItoB,GAAK,cAAcpO,EACrB,aACE,OAAOoO,GAAGo7G,aAEZ,YAAY51F,EAAIG,GACd,GAAIggC,QAASzhE,KAAKopM,qBAAuC,IAAIjnM,QAAWnC,KAAKqpM,oBAAsB,EAAGrpM,KAAK6yJ,UAAW,EAAO7yJ,KAAK69J,eAAiB,EAAG79J,KAAKspM,0BAA4B,GAAItpM,KAAKupM,mBAAqB,KAAMvpM,KAAKwpM,SAAW,KAAMxpM,KAAKypM,cAAgB,EAAGzpM,KAAK0pM,uBAAyB,GAAI1pM,KAAK2pM,uBAAyB,GAAI3pM,KAAK49J,aAAe,EAAG59J,KAAK4pM,mBAAoB,EAAO5pM,KAAK6pM,yBAA0B,GAAQzB,KACza,MAAM,IAAInkK,MAAM,0CAClBjkC,KAAK8pM,cAAgB,GAAI9pM,KAAK6jM,OAASviK,EAAIthC,KAAKi9C,MAAQ3b,EAAG2b,MAAOj9C,KAAK+pM,eAAiB,KAAM/pM,KAAKgqM,mBAAqB,KAAMhqM,KAAKiqM,YAAc,IAAI1G,GAAG9hK,GAAIzhC,KAAKkqM,sBAAwBlqM,KAAK6jM,OAAOsG,SAAStoM,IAAI,mBAAoB7B,KAAKoqM,8BAAgCpqM,KAAKiqM,YAAYxG,oBAAsB,GAAK,GAAK,EAAGzjM,KAAKqqM,cAAgB,IAAIzG,GAAG5jM,KAAK6jM,QAAS7jM,KAAKm+J,eAAiB,IAAImmC,GAAGtkM,KAAK6jM,QAAS7jM,KAAKurH,UAAY,IAAIjjH,EAAGtI,KAAMulB,MAAOI,KAAIuxC,QAAQ,6BAA+Bl3D,KAAKsqM,YAAc16J,SAASkhD,cAAc,UAAW9wF,KAAKsqM,YAAY3/H,MAAQ,EAAG3qE,KAAKsqM,YAAY5/H,OAAS,EAAG1qE,KAAKuqM,aAAevqM,KAAKsqM,YAAYn3F,WAAW,UAAWnzG,KAAKuqM,aAAaC,UAAU,CAAE3G,OAAQviK,EAAIosC,OAAQ,eAAiB99B,SAASwhE,KAAK/f,YAAYrxF,KAAKsqM,cAEjvB,iBACE,OAAO,GAET,YAAYhpK,EAAIG,GAAI,GAClB,IAAKzhC,KAAKurH,UAAU1pH,IAAIy/B,GACtB,OAAO,EACT,IAAIK,EAAI3hC,KAAKurH,UAAU/pH,IAAI8/B,GAC3B,OAAOG,EAAIE,EAAEukC,SAAW,EAAIvkC,EAAEukC,aAAYvkC,EAAEukC,SAAW,KAAqC,MAAxBvkC,EAAEy1F,qBAA+Bp3H,KAAKmmE,YAAYxkC,EAAEy1F,mBAAmBhkG,KAAKwtC,QAAS5gE,KAAKmmE,YAAYxkC,EAAEy1F,mBAAmB9tG,KAAKs3C,SAAU5gE,KAAKopM,qBAAqBvnM,IAAIy/B,IAAOthC,KAAKspM,0BAA0Bz9J,KAAKvK,IAAK,IAASthC,KAAKyqM,gBAAgBnpK,GAAKthC,KAAKurH,UAAU14D,OAAOvxB,IAAK,IAE5V,SACE,MAAO,CAAEq8H,cAAe39J,KAAKqqM,cAAcnG,aAAcwG,uBAAwB1qM,KAAKqqM,cAAcnrC,kBAAmBx2F,YAAY,GAErI,gBAAgBpnC,GACd,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,GAC3B,GAAOG,GAAMA,EAAEkpK,SAAW,CACxB,GAAIlpK,EAAEmpK,SAEJ,YADAnpK,EAAEkpK,SAAW,MAGflpK,EAAEkpK,oBAAoBrnI,UAAYtjE,KAAKqqM,cAAcQ,cAAcppK,EAAEkpK,UAAYlpK,EAAEkpK,oBAAoBG,YAAc9qM,KAAKm+J,eAAewB,eAAel+H,EAAEkpK,UAAWlpK,EAAEkpK,SAAW,MAGtL,SAASrpK,GACP,OAAOthC,KAAKurH,UAAU1pH,IAAIy/B,GAAMthC,KAAKurH,UAAU/pH,IAAI8/B,GAAI4kC,SAAW,EAEpE,OAAO5kC,GACL,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,GAC3BG,EAAEykC,WAEJ,OAAO5kC,GACL,GAAIthC,KAAKurH,UAAU1pH,IAAIy/B,GAAK,CAC1B,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,GAC3BG,EAAEykC,YAGN,MAAM5kC,EAAIG,EAAGE,GACX,GAAU,cAANA,GAA2B,MAANL,EACvB,MAAM,IAAI2C,MAAM,yEAClB,IAAIrC,EAAI,CAAEy9B,GAAIr/D,KAAKk3H,cACnB,OAAOl3H,KAAKurH,UAAUlpH,IAAIu/B,EAAG,CAAE88B,MAAO/8B,EAAGw9B,MAAO19B,EAAG3iC,OAAQwiC,EAAI4kC,SAAU,IAAMtkC,EAEjF,KAAKN,EAAIG,EAAGE,EAAGC,EAAGwC,GAChB,GAAU,cAANxC,EACF,MAAM,IAAIqC,MAAM,yEAClBjkC,KAAKurH,UAAUlpH,IAAIi/B,EAAI,CAAEo9B,MAAO98B,EAAGu9B,MAAOx9B,EAAG7iC,OAAQ2iC,EAAGykC,SAAU9hC,IAEpE,cACEpkC,KAAKi9C,MAAM8tJ,OAAO,CAAC/qM,KAAK+pM,eAAe/1C,WAAYh0J,KAAK+pM,eAAiB,KAAM/pM,KAAKqpM,oBAAsB,EAAGrpM,KAAKopM,qBAAuC,IAAIjnM,QAAWnC,KAAKspM,0BAA0B3vJ,QAASrY,IAC9MthC,KAAKyqM,gBAAgBnpK,GAAKthC,KAAKurH,UAAU14D,OAAOvxB,KAC9CthC,KAAK2pM,uBAAuBhwJ,QAASrY,GAAOthC,KAAKqqM,cAAcQ,cAAcvpK,IAAMthC,KAAK0pM,uBAAuB/vJ,QAASrY,GAAOthC,KAAKqqM,cAAcQ,cAAcvpK,GAAI,IAASthC,KAAKspM,0BAA4B,GAAItpM,KAAK2pM,uBAAyB,GAAI3pM,KAAK0pM,uBAAyB,GAExR,4BACE1pM,KAAK+pM,iBAAmB/pM,KAAK+pM,eAAiB/pM,KAAK6jM,OAAOmH,wBAE5D,wBACEhrM,KAAKgqM,qBAAuBhqM,KAAKgqM,mBAAmBl+H,MAAO9rE,KAAKgqM,mBAAqB,MAEvF,oCACE,IAAI1oK,EACJ,IACEA,QAAWkP,QAAQ5zB,IAAIhc,OAAO9B,OAAOkB,KAAK8pM,gBAC1C,MAAOroK,GACP,MAAM,IAAIwC,MAAMxC,EAAE2Y,SAEpBx5C,OAAOo9D,KAAKh+D,KAAK8pM,eAAev1I,IAAI,CAAC9yB,EAAGE,KACtC3hC,KAAK8pM,cAAcroK,GAAKH,EAAGK,KAG/B,oBAAoBL,GAClB,GAAI3b,KAAIuxC,QAAQ,8BACd,OAAO1kB,QAAQmB,KAAK,sIAAuI,KAC7J,IAAIlS,EAAIH,EAAG49B,KAAMv9B,EAAI3hC,KAAKqqM,cAAcY,cAAcxpK,EAAGypK,eAAeC,SAAWD,eAAeE,UAClGprM,KAAKqrM,4BAA6BrrM,KAAKsrM,wBAAyBtrM,KAAK+pM,eAAewB,mBAAmBjqK,EAAI,EAAGK,EAAG,EAAGF,GAAIzhC,KAAKwrM,oBAAqB7pK,EAAE8pK,SAASC,WAAWC,MACxK,IAAI/pK,EAAID,EAAEiqK,iBAAiB5zK,MAAM,GACjC,OAAO2J,EAAEkqK,QAAc,MAALlqK,GAAa3hC,KAAKqqM,cAAcQ,cAAclpK,GAAIhc,KAAIuxC,QAAQ,6BAA+B74B,GAAE26B,YAA6B,IAAtBh5D,KAAKuqM,aAAyB,IAAM,0CAA2CvqM,KAAKuqM,aAAauB,qBAAsBlqK,EAEjP,qBAAqBN,EAAIG,GACvB,IAAIE,EAAI3hC,KAAKurH,UAAU/pH,IAAI8/B,GAC3B,OAAOK,EAAE7iC,OAAS2iC,EAAGE,EAAE7iC,OAEzB,SAASwiC,GACP,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,IAAOxiC,OAAQ6iC,EAAGy1F,mBAAoBx1F,GAAMH,EACvE,GAAS,MAALE,GAAyB,WAAZF,EAAEi9B,MACjB,OAAO/8B,EACT,GAAgB,cAAZF,EAAEi9B,MAAuB,CAC3B,IAAIxyB,EAAIlsC,KAAKihE,SAASr/B,EAAExO,KAAKwtC,QAASz0B,EAAInsC,KAAKihE,SAASr/B,EAAEtY,KAAKs3C,QAAS11B,EAAI7M,GAAEo7B,mCAAmCp7C,GAAEkhG,uBAAuBrzE,EAAGC,GAAGnsB,OAAQ,WACxJ,OAAOhgB,KAAKw+J,qBAAqBl9H,EAAI4J,GAAIA,EAE3ClrC,KAAK4pM,oBAAsB5pM,KAAK4pM,mBAAoB,EAAMp3J,QAAQmB,KAAK,uIACvE,IAAIvP,EAAI,CAAC,SAAU,iBAAkBC,EAAI5C,EAAEkpK,SAAUrmK,EAAID,EAAE66B,KAC3D7gC,GAAE26B,OAAO10B,EAAI,IAAM,EAAG,IAAM,8EAC5B,IAAIC,EAAID,EAAI,EAAGG,EAAI,IAAIsnC,YAAYznC,GAAI4B,EAAI,IAAK4B,EAAI,IAAKC,EAAI3D,EAAEmwB,IAAKroB,GAAM,IAAIwnE,gBAAgBxtE,EAAG4B,IAAKE,EAAI,IAAI0rE,gBAAgBxtE,EAAG4B,GACjI9nC,KAAKsrM,wBAAyBvjK,EAAEwsB,IAAI,CAACroB,EAAGC,KACtC,IAAIjB,EAAIgB,EAAEinE,WAAW,UACrB,OAAOjoE,EAAEs/J,UAAU,CAAE3G,OAAQ7jM,KAAK6jM,OAAQn2H,OAAQ,aAAc6wF,MAAOwtC,gBAAgBZ,SAAUa,UAAW5nK,EAAE+H,KAAOjB,EAAE4gK,sBACtHv3I,IAAI,CAACroB,EAAGC,KACT,IAAIjB,EAAQ,EAAJhF,EAAOuG,EAAI,CAACY,EAAGC,EAAGC,KACxBvtC,KAAKqrM,4BAA6BrrM,KAAK+pM,eAAekC,oBAAoB,CAAEjsL,OAAQqkB,EAAG6nK,YAAahhK,EAAGkyC,OAAQ7vC,GAAK,CAAE41B,QAASj3B,GAAK,CAAEy+B,MAAOt9B,EAAGq9B,OAAQp9B,IAAMttC,KAAKwrM,cACnK,IAAIvsM,EAAI+oC,EAAEmrE,WAAW,KAAM,CAAES,oBAAoB,IACjD30G,EAAEktM,UAAU,EAAG,EAAG9+J,EAAGC,GAAIruC,EAAE60G,UAAU/rE,EAAEoE,GAAI,EAAG,GAC9C,IAAIqB,EAAIvuC,EAAEw0G,aAAa,EAAG,EAAGpmE,EAAGC,GAAGsP,KAAMlP,EAAItJ,EAAE+H,GAAI0B,EAAI,IAAI4nB,kBAAkBhxB,EAAG8I,EAAGF,EAAIC,EAAI,GAC3F,IAAK,IAAInC,EAAI,EAAGA,EAAI0C,EAAE3tC,OAAQirC,GAAK,EACjC,GAAU,kBAANuC,EACFG,EAAE1C,EAAI,GAAKqC,EAAErC,EAAI,OACd,CACH,IAAI0I,EAAIrG,EAAErC,GACV0C,EAAE1C,GAAKqC,EAAErC,EAAI,GAAI0C,EAAE1C,EAAI,GAAKqC,EAAErC,EAAI,GAAI0C,EAAE1C,EAAI,GAAK0I,IAEpD9G,EAAIhJ,KAAK7c,MAAMqd,GAAK2B,EAAI4B,IAAKkF,EAAI9G,EAAG+G,EAAInF,EAAGoF,EAAI,EAClD,IAAK,IAAIG,EAAI,EAAGA,EAAIN,EAAGM,IACrBZ,EAAEO,EAAGC,EAAGC,GAAIA,GAAKhH,EAAI4B,EAAI,EAC3B,IAAIsF,EAAI7I,GAAK2B,EAAI4B,GACjBmF,EAAIlJ,KAAK7c,MAAMkmB,EAAIlH,GAAI+G,EAAI,IAAMR,EAAEO,EAAGC,EAAGC,GAAIA,GAAKD,GAAS,EAAJ/G,IAAS8G,EAAII,EAAIlH,EAAG8G,EAAI,GAAKP,EAAEO,EAAG,EAAGE,KAE9F,IAAI9E,EAAI/J,GAAEo7B,mCAAmCh1B,EAAGhD,EAAEi9B,OAClD,OAAO1+D,KAAKw+J,qBAAqBl9H,EAAI8G,GAAIA,EAE3C,WAAW9G,GACT,IAAKthC,KAAKurH,UAAU1pH,IAAIy/B,GACtB,MAAM,IAAI2C,MAAM,UAAU3C,yBAC5B,IAGIM,EAHAH,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,IAAOxiC,OAAQ6iC,GAAMF,EAChD,GAAS,MAALE,EACF,OAAOA,EAET,GAAgB,cAAZF,EAAEi9B,MAAuB,CAC3B,IAAIt6B,QAAUoM,QAAQ5zB,IAAI,CAAC5c,KAAK+gE,KAAKt/B,EAAE21F,mBAAmBhkG,KAAKwtC,QAAS5gE,KAAK+gE,KAAKt/B,EAAE21F,mBAAmB9tG,KAAKs3C,UAAWv8B,EAAID,EAAE,GAAIE,EAAIF,EAAE,GACvIxC,EAAIvjB,GAAEkhG,uBAAuBl7E,EAAGC,OAC3B,CACL,IAAIF,QAAUpkC,KAAKosM,cAAc3qK,EAAEkpK,UACnC/oK,EAAIvD,GAAEo7B,mCAAmCr1B,EAAG3C,EAAEi9B,OAEhD,OAAO1+D,KAAKw+J,qBAAqBl9H,EAAIM,GAAIA,EAE3C,WAAWN,GACT,IAAIG,EAAIH,EAAG49B,KAAMv9B,EAAIL,EAAGi9H,MAAO38H,EAAI5hC,KAAKqqM,cAAcY,cAAcxpK,EAAGE,GACvE,OAAO3hC,KAAKqrM,4BAA6BrrM,KAAKsrM,wBAAyBtrM,KAAK+pM,eAAewB,mBAAmBjqK,EAAI,EAAGM,EAAG,EAAGH,GAAIzhC,KAAKwrM,cAAe5pK,EAErJ,wBAAwBN,EAAIG,EAAGE,GAC7B,IAAIC,EAAIN,EAAGthB,OACX,GAAU,cAAN2hB,EACF,MAAM,IAAIsC,MAAM,uCAClB,IAAIG,EAAI,CAAEi7B,GAAIr/D,KAAKk3H,cACnBl3H,KAAKurH,UAAUlpH,IAAI+hC,EAAG,CAAEs6B,MAAO/8B,EAAGw9B,MAAO19B,EAAG3iC,OAAQ,KAAMonE,SAAU,EAAG0kI,SAAUtpK,EAAG+qK,WACpF,IAAIhoK,EAAIrkC,KAAKurH,UAAU/pH,IAAI4iC,GAAIE,EAAIgjK,GAAGjjK,EAAEq6B,OAASrgC,GAAEi+B,cAAcj4B,EAAE86B,OACnE,GAAI79B,EAAGthB,OAAOk/C,KAAO56B,EACnB,MAAM,IAAIL,MAAM,kBAAkB3C,EAAGthB,OAAOk/C,qCAAqC56B,OACnF,IAAKhD,EAAGthB,OAAOu+I,OAAS2sC,eAAeoB,QAAUpB,eAAeqB,cAAgBrB,eAAeoB,QAAUpB,eAAeqB,UACtH,MAAM,IAAItoK,MAAM,oFAClB,OAAuB,IAAhB3C,EAAG+qK,WAAsBzqK,EAAI5hC,KAAKwsM,WAAW5qK,IAAKyC,EAAEsmK,SAAW/oK,EAAGrc,KAAK07I,qBAAqB78H,EAAG3C,EAAGE,EAAG3hC,MAE9G,UAAUshC,GACR,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,IAAOxiC,OAAQ6iC,EAAG+8B,MAAO98B,EAAGu9B,MAAO/6B,EAAGumK,SAAUtmK,GAAM5C,EACjF,GAAU,cAANG,EACF,MAAM,IAAIqC,MAAM,wDAClB,GAAS,MAALI,EACF,MAAW,MAAL1C,EAAY,IAAIsC,MAAM,kCAAoC,IAAIA,MAAM,mCAC5E,IAAIK,EAAID,EAAGE,EAAID,EAAE46B,KAAMz6B,EAAIH,EAAEi6H,MAAOr4H,EAAIlmC,KAAKqqM,cAAcY,cAAc1mK,EAAGE,GAC5EzkC,KAAKqrM,4BAA6BrrM,KAAKsrM,wBAAyBtrM,KAAK+pM,eAAewB,mBAAmBlnK,EAAG,EAAG6B,EAAG,EAAG3B,GAAIvkC,KAAKwrM,cAC5H,IAAI1jK,EAAI9nC,KAAKq3H,eAAejzF,EAAGxC,GAAImG,EAAIxiB,KAAK8hD,yBAAyBv/B,GAAIE,EAAIhoC,KAAKurH,UAAU/pH,IAAIsmC,EAAE84B,QAClG,OAAO54B,EAAE2iK,SAAWzkK,EAAG,CAAE44H,UAAW/2H,EAAG/nB,OAAQkmB,GAEjD,WAAW5E,GACT,IAAIG,EAAIzhC,KAAKihE,SAAS3/B,EAAGs/B,QACzB,GAAiB,WAAbt/B,EAAGo9B,MACL,IACE,IAAI/8B,EAAIF,EAAE8yB,IAAK3yB,GAAMvD,GAAEw7B,aAAaj4B,IACpC,OAAO3hB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAO/8B,GAC9B,MAAOA,GACP,MAAM,IAAIsC,MAAM,oDAEpB,OAAOhkB,GAAGqhB,EAAG69B,MAAO79B,EAAGo9B,MAAOj9B,GAEhC,WAAWH,IACRthC,KAAKkqM,wBAA0BlqM,KAAK6pM,0BAA4Br3J,QAAQmB,KAAK,yOAA0O3zC,KAAK6pM,yBAA0B,GACvV,IAAIpoK,EAAIzhC,KAAKy+J,aAAc98H,EAAI,GAAIC,GAAI,EACZ,MAA3B5hC,KAAKg/J,oBAA8Bh/J,KAAKg/J,mBAAqBr9H,EAAGC,GAAI,GAAQ5hC,KAAKy+J,aAAa5yH,KAAKlK,GAAI3hC,KAAKy+J,aAAe98H,EAAGL,IAC9H,IAAI8C,EAAI/F,GAAEg8B,QAAQr6D,KAAKy+J,aAAalqG,IAAK9vB,GAAMA,EAAEswH,QAAQrlG,OAAQjrB,GAAW,MAALA,GAAYJ,EAAIhG,GAAEg8B,QAAQr6D,KAAKy+J,aAAalqG,IAAK9vB,GAAMA,EAAEljC,OAAOmuD,OAAQjrB,GAAW,MAALA,GACrJzkC,KAAKy+J,aAAeh9H,EAAGG,IAAM5hC,KAAKg/J,mBAAqB,MACvD,IAAI16H,EAAI,CAAEs5H,aAAc59J,KAAK49J,aAAcC,eAAgB79J,KAAK69J,eAAgBr/F,SAAU,KAAM4K,OAAQ,MAAQ7kC,QAAUiM,QAAQ5zB,IAAIwnB,GACtI,OAAOE,EAAEk6B,SAAWngC,GAAEzD,IAAI2J,GAAID,EAAEy6B,oBAAsB,IAAMx6B,EAAEgwB,IAAI,CAAC9vB,EAAGyB,KAAM,CAAG3kC,KAAM8iC,EAAE6B,GAAI9vB,GAAIquB,KAAM8vB,IAAK9vB,GAAM,GAAGA,EAAEljC,SAASkjC,EAAEruB,MAAMshD,KAAK,MAAO13D,KAAK49J,aAAe,EAAG59J,KAAK69J,eAAiB,EAAGv5H,EAEpM,eAAehD,EAAIG,EAAGE,GACpB,MAAa,WAANF,GAAuB,MAALE,GAAaA,EAAEzhC,OAAS,GAAKm+B,GAAEg9B,SAAS15B,EAAE,MAAQA,EAAIA,EAAE4yB,IAAKnwB,GAAM/F,GAAE27B,aAAa51B,KAAM,CAAEw8B,OAAQ5gE,KAAKqoE,MAAM1mC,EAAGL,EAAIG,GAAI09B,MAAO79B,EAAIo9B,MAAOj9B,GAErK,gBAAgBH,GACd,IAAKA,EACH,OAAO,KACT,IAAIK,EAAI3hC,KAAKurH,UAAU/pH,IAAI8/B,EAAGs/B,QAAQ+pI,SACtC,OAAOhpK,aAAa2hC,UAAY,CAAEtjD,OAAQ2hB,GAAMA,aAAampK,WAAanpK,EAAE8qK,aAAe9qK,EAE7F,YAAYL,GACV,IAAIG,EAAIzhC,KAAKurH,UAAU/pH,IAAI8/B,GAC3B,GAAkB,MAAdG,EAAEkpK,SACJ,OACF,IAAgD/oK,EAA5CD,EAAI2lK,GAAG7lK,EAAEi9B,OAASrgC,GAAEi+B,cAAc76B,EAAE09B,OAAW/6B,EAAI8mK,eAAeoB,QAAUpB,eAAeqB,SAAWrB,eAAeC,SACzH,GAAI1pK,EAAE3iC,OAAQ,CACZ,GAAI8iC,EAAI5hC,KAAKqqM,cAAcY,cAActpK,EAAGyC,GAAG,GAAsB,aAAfxC,EAAE8qK,SAAyB,CAC/E,IAAIroK,EAAIrkC,KAAKqqM,cAAcY,cAActpK,EAAGupK,eAAeyB,UAAYzB,eAAeqB,UAAU,GAAM,GAAQjoK,EAAID,EAAEunK,iBACxG,UAAZnqK,EAAEi9B,OAAiC,SAAZj9B,EAAEi9B,MAAmB,IAAI9oB,WAAWtR,GAAGjiC,IAAIo/B,EAAE3iC,QAAU,IAAIq3C,aAAa7R,GAAGjiC,IAAIo/B,EAAE3iC,QAASulC,EAAEwnK,QAAS7rM,KAAKqrM,4BAA6BrrM,KAAKsrM,wBAAyBtrM,KAAK+pM,eAAewB,mBAAmBlnK,EAAG,EAAGzC,EAAG,EAAGD,GAAI3hC,KAAK0pM,uBAAuB79J,KAAKxH,OAC/Q,CACL,IAAIA,EAAIzC,EAAEgqK,iBACE,UAAZnqK,EAAEi9B,OAAiC,SAAZj9B,EAAEi9B,MAAmB,IAAI9oB,WAAWvR,GAAGhiC,IAAIo/B,EAAE3iC,QAAU,IAAIq3C,aAAa9R,GAAGhiC,IAAIo/B,EAAE3iC,QAAS8iC,EAAEiqK,QAErHpqK,EAAE3iC,OAAS,UAEX8iC,EAAI5hC,KAAKqqM,cAAcY,cAActpK,EAAGyC,GAC1C3C,EAAEkpK,SAAW/oK,EAEf,aAAaN,GACX,IAAIG,EAAI,EAAGE,EAAI,EAAGC,EAAI,GAAIwC,EAAI,EAC9B9C,EAAGqY,QAASpV,IAEV,IAAIE,EACJ,OAFkB,IAAlBF,EAAEqY,KAAK18C,SAAiBqkC,EAAEqY,KAAO,CAAC,IAE1BrY,EAAEqY,KAAK18C,QACb,KAAK,EACHukC,EAAI,EACJ,MACF,KAAK,EACHA,EAAI,EACJ,MACF,KAAK,EACHA,EAAI,GACJ,MACF,KAAK,EACHA,EAAI,GACJ,MACF,KAAK,EACHA,EAAI,GACJ,MACF,KAAK,EACHA,EAAI,GACJ,MACF,QACEpG,GAAE26B,QAAO,EAAO,IAAM,eAAez0B,EAAEqY,KAAK18C,kBAEzC,IAANyhC,GAAiB,IAANA,KAAa8C,EAAI,IAAKA,EAAIL,IAAMA,EAAIK,GAAIhD,EAAIsC,KAAK3jB,KAAKqhB,EAAIgD,GAAKA,EAAG9C,EAAI4C,EAAEqY,KAAK18C,OAAQ0hC,EAAEiK,KAAKpK,GAAIA,GAAqB,EAAhB8C,EAAEqY,KAAK18C,SACtHuhC,EAAIsC,KAAK3jB,KAAKqhB,EAAI2C,GAAKA,EAC3B,IAAIC,EAAI,IAAI0nC,YAAYtqC,GACxBH,EAAGqY,QAAQ,CAACpV,EAAGE,KACb,IAAIyB,EAAItE,EAAE6C,GACC,UAAXF,EAAEw2C,KAAmB,IAAInlC,WAAWvR,EAAG6B,EAAG3B,EAAEqY,KAAK18C,QAAQmC,IAAIkiC,EAAEqY,MAAmB,WAAXrY,EAAEw2C,KAAoB,IAAI9kC,YAAY5R,EAAG6B,EAAG3B,EAAEqY,KAAK18C,QAAQmC,IAAIkiC,EAAEqY,MAAQ,IAAIzG,aAAa9R,EAAG6B,EAAG3B,EAAEqY,KAAK18C,QAAQmC,IAAIkiC,EAAEqY,QAE9L,IAAItY,EAAItkC,KAAKqqM,cAAcY,cAAcxpK,EAAGypK,eAAeC,SAAWD,eAAe0B,SACrF,OAAO5sM,KAAKi9C,MAAM4vJ,YAAYvoK,EAAG,EAAGD,EAAG,EAAG5C,GAAIzhC,KAAK2pM,uBAAuB99J,KAAKvH,GAAI,CAAE84C,OAAQ,EAAGle,KAAMz9B,EAAGzhB,OAAQskB,GAEnH,iBAAiBhD,EAAIG,EAAGE,EAAGC,EAAGwC,GAC5B,GAAIA,IAAMA,EAAIpkC,KAAKq3H,eAAe/1F,EAAGy4D,YAAap4D,IAAkC,IAA7BtD,GAAEi+B,cAAcl4B,EAAE+6B,OACvE,OAAOn/D,KAAKurH,UAAU/pH,IAAI4iC,EAAEw8B,QAAQ9hE,OAASu/B,GAAEm8B,uBAAuBp2B,EAAEs6B,MAAO,GAAIt6B,EACrFpkC,KAAK4/J,YAAYx7H,EAAEw8B,QAASt/B,EAAG8lK,SAAW6B,GAAIjpM,KAAK6jM,OAAQviK,GAC3D,IAAI+C,EAAI5C,EAAE8yB,IAAI,CAAChwB,EAAGE,KAChB,GAAgB,cAAZF,EAAEm6B,MACJ,MAAM,IAAIz6B,MAAM,mIAClB,OAAOjkC,KAAK4/J,YAAYr7H,EAAEq8B,QAAS,CAAElC,MAAO1+D,KAAKurH,UAAU/pH,IAAI+iC,EAAEq8B,QAAQlC,MAAOS,MAAO56B,EAAE46B,MAAO59D,KAAM+/B,EAAG6qH,cAAc1nH,MAEzHnD,EAAG6jK,UAAY8B,GAAG3lK,EAAI+C,EAAGD,GACzB,IAAIE,EAAI3e,KAAIuxC,QAAQ,8BACpB,OAAO51B,EAAG6jK,aAAanlM,KAAK8pM,gBAAkB9pM,KAAK8pM,cAAcxoK,EAAG6jK,WAAaL,GAAG9kM,KAAK6jM,OAAQviK,EAAI+C,EAAGD,EAAGE,IAAKhD,EAAGwrK,SAAW9sM,KAAK8pM,cAAcxoK,EAAG6jK,WAAY7gK,GAAKtkC,KAAK+sM,gBAAgBzrK,EAAI8C,EAAG3C,EAAGG,GAAIwC,EAE1M,gBAAgB9C,EAAIG,EAAGE,EAAGC,GACxB,GAAIN,EAAGwrK,oBAAoBt8J,QACzB,MAAM,IAAIvM,MAAM,mFAClB,IAAIG,EAAI,GAAIC,EAAI,GAAIC,EAAI,QACxB,GAAuB,MAAnBhD,EAAG2kK,aAAsB,CAC3B7hK,EAAEyH,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAM,CAAC80C,MAAQ,CAAE3W,KAAM,UAAWn+B,KAAM,CAAC,OAAWvY,EAAI1C,EAAE/gB,OAAO6gB,GAAG8yB,IAAKvsB,GAAMA,EAAEm3B,OAC3G,IAAIp3B,EAAI,QACR1D,EAAEkwB,IAAKvsB,IACL5D,EAAEyH,KAAK,CAAEkvC,KAAMhzC,EAAG6U,KAAM5U,IACxB,IAAII,EAAI/J,GAAEm7B,eAAexxB,GACzB5D,EAAEyH,KAAK,CAAEkvC,KAAMhzC,EAAG6U,KAAMxU,UAErB,CACL,IAAIL,EAAI1J,GAAEm7B,eAAe/3B,EAAE09B,OAC3B/6B,EAAEyH,KAAK,CAAEkvC,KAAMz2C,EAAGsY,KAAM7U,IAE1B,GAAIzG,EAAG49B,KAAM,CACX,IAAIn3B,EAAI1J,GAAEi+B,cAAch7B,EAAGy4D,aAC3B31D,EAAEyH,KAAK,CAAEkvC,KAAMz2C,EAAGsY,KAAM,CAACtb,EAAGykK,gBAAkBh+J,EAAIzG,EAAGykK,gBAAkBh+J,KAEzEnG,IAAMwC,EAAI,IAAIA,KAAMxC,IACpB,IAAI2C,EAAI,CAACvkC,KAAKgtM,gBAAgBvrK,MAAOE,EAAE4yB,IAAKxsB,GAAM/nC,KAAKgtM,gBAAgBjlK,IAAK/nC,KAAKitM,aAAa7oK,IAC9FzC,EAAEgY,QAAS5R,IACT/nC,KAAKopM,qBAAqBhnM,IAAI2lC,EAAE64B,UAC9B5gE,KAAKopM,qBAAqBhnM,IAAIq/B,EAAEm/B,QACpC,IAAIn8B,EAAIzkC,KAAK6jM,OAAOqJ,gBAAgB,CAAE3H,OAAQjkK,EAAGwrK,SAASK,mBAAmB,GAAI10I,QAASl0B,EAAEgwB,IAAI,CAACxsB,EAAGC,KAAM,CAAGolK,QAASplK,EAAG2iK,SAAU5iK,OAAU7B,EAAyB,MAArBlmC,KAAKy+J,aACtJz+J,KAAKqrM,4BACL,IAAIvjK,EAAI,GACR5B,GAAKlmC,KAAKkqM,uBAAyBlqM,KAAKsrM,wBAA0C,MAAjBtrM,KAAKwpM,WAAqBxpM,KAAKwpM,SAAWxpM,KAAK6jM,OAAOwJ,eAAe,CAAEtyH,KAAM,YAAauyH,MAAOttM,KAAKypM,iBAAmB3hK,EAAEylK,gBAAkB,CAAC,CAAE/D,SAAUxpM,KAAKwpM,SAAUgE,WAAY,EAAG76J,SAAU,aAAe,CAAE62J,SAAUxpM,KAAKwpM,SAAUgE,WAAY,EAAG76J,SAAU,QAAU3yC,KAAKgqM,mBAAqBhqM,KAAK+pM,eAAe0D,iBAAiB3lK,IAAM9nC,KAAKgqM,qBAAuBhqM,KAAKgqM,mBAAqBhqM,KAAK+pM,eAAe0D,iBAAiB3lK,IAAK9nC,KAAKgqM,mBAAmB0D,YAAYpsK,EAAGwrK,UAAW9sM,KAAKgqM,mBAAmB2D,aAAa,EAAGlpK,GAAIzkC,KAAKgqM,mBAAmB4D,mBAAmBtsK,EAAG8lK,SAAS,GAAI9lK,EAAG8lK,SAAS,GAAI9lK,EAAG8lK,SAAS,IAAKpnM,KAAKqpM,uBAAwBnjK,GAAKvgB,KAAInkB,IAAI,sCAAwCxB,KAAKqpM,qBAAuB/nK,EAAG2kK,eAAiBvB,GAAGG,QAAU7kM,KAAKsrM,wBAAyBplK,EAAIlmC,KAAKy+J,aAAa5yH,KAAK,CAAEtqC,KAAM+/B,EAAGq0B,YAAYp0D,KAAMwzJ,MAAO/0J,KAAKs2J,iBAAoBt2J,KAAKwrM,eAE37B,qBACE,IAAKxrM,KAAKkqM,sBACR,OAAO,EACkB,MAA3BlqM,KAAKupM,qBAA+BvpM,KAAKupM,mBAAqBvpM,KAAKqqM,cAAcY,cAAmC,EAArBjrM,KAAKypM,cAAmByB,eAAeqB,SAAWrB,eAAeC,SAAWD,eAAe2C,gBAAiB7tM,KAAK+pM,eAAe+D,gBAAgB9tM,KAAKwpM,SAAU,EAAGxpM,KAAKypM,cAAezpM,KAAKupM,mBAAoB,GAC9S,IAAIjoK,EAAKthC,KAAKqqM,cAAcY,cAAmC,EAArBjrM,KAAKypM,cAAmByB,eAAeE,SAAWF,eAAeC,UAC3GnrM,KAAK+pM,eAAewB,mBAAmBvrM,KAAKupM,mBAAoB,EAAGjoK,EAAI,EAAwB,EAArBthC,KAAKypM,eAAoBzpM,KAAKwrM,oBAAqBlqK,EAAGmqK,SAASC,WAAWC,MACpJ,IAAIlqK,EAAI,IAAIssK,eAAezsK,EAAGsqK,kBAAmBjqK,EAAI6xB,OAAO/xB,EAAE,GAAKA,EAAE,IAAM,IAC3E,OAAOH,EAAGuqK,QAAS7rM,KAAKqqM,cAAcQ,cAAcvpK,GAAKK,EAE3D,mBAAmBL,EAAIG,EAAIunK,IACzB,OAAOrjL,KAAIuxC,QAAQ,uBAAyB51B,EAAG2gB,MAAOtgB,GAA+C,MAAzC3hC,KAAKurH,UAAU/pH,IAAImgC,EAAEi/B,QAAQ+pI,UAAoBtsK,GAAEi+B,cAAc36B,EAAEw9B,OAAS19B,GAE1I,aACE,OAAOzhC,KAAKurH,UAAUtkD,aAAejnE,KAAKspM,0BAA0BppM,OAEtE,UACEF,KAAK6yJ,WAA8B,MAAjB7yJ,KAAKwpM,UAAoBxpM,KAAKwpM,SAASnF,UAAWrkM,KAAKqqM,cAAcrmL,UAAWhkB,KAAKm+J,eAAen6I,UAAWhkB,KAAK6yJ,UAAW,KAGrJ/2I,GAAGo7G,WAAa,EAChBkxE,MAAQ30K,GAAG,SAAU04C,UACnB,IAAI9qC,EAAI,CAAE2sK,gBAAiBroL,KAAInkB,IAAI,4BAA8B,YAAc,oBAAsB8/B,QAAW4M,UAAUu6J,IAAIwF,eAAe5sK,GAAII,EAAI,GAAIE,EAAI,GAC7JL,EAAG6oK,SAAStoM,IAAI,oBAAsB8/B,EAAEkK,KAAK,mBAAoBvK,EAAG6oK,SAAStoM,IAAI,uBAAyB8/B,EAAEkK,KAAK,CAAC,uBAAwBpK,EAAEysK,iBAAmBvsK,EAC/J,IAAIC,EAAIN,EAAG+sD,OACX5sD,EAAE0sK,eAAiB,CAAEC,+BAAgCxsK,EAAEwsK,+BAAgClF,iCAAkCtnK,EAAEsnK,iCAAkCmF,4BAA6BzsK,EAAEysK,4BAA6BC,cAAe1sK,EAAE0sK,cAAeC,yBAA0B3sK,EAAE2sK,yBAA0BC,kCAAmC5sK,EAAE4sK,mCACpV,IAAIpqK,QAAU9C,EAAGmtK,cAAchtK,GAAI4C,QAAU/C,EAAGotK,qBAChD,OAAO,IAAI5yL,GAAGsoB,EAAGC,IAChB,GAEH,SAAUhD,GACRA,EAAEA,EAAEstK,IAAM,GAAK,MAAOttK,EAAEA,EAAEutK,MAAQ,GAAK,QAASvtK,EAAEA,EAAEwtK,sBAAwB,GAAK,wBAAyBxtK,EAAEA,EAAEytK,sBAAwB,GAAK,wBAAyBztK,EAAEA,EAAE0tK,IAAM,GAAK,MAAO1tK,EAAEA,EAAE2tK,QAAU,GAAK,UAAW3tK,EAAEA,EAAE4tK,MAAQ,GAAK,QAAS5tK,EAAEA,EAAE6tK,UAAY,GAAK,YAAa7tK,EAAEA,EAAE8tK,QAAU,GAAK,UAAW9tK,EAAEA,EAAE+tK,cAAgB,GAAK,gBAAiB/tK,EAAEA,EAAEguK,KAAO,IAAM,OAAQhuK,EAAEA,EAAEiuK,WAAa,IAAM,aAAcjuK,EAAEA,EAAEkuK,YAAc,IAAM,cAAeluK,EAAEA,EAAEmuK,WAAa,IAAM,aAAcnuK,EAAEA,EAAEouK,IAAM,IAAM,MAAOpuK,EAAEA,EAAEquK,IAAM,IAAM,MAAOruK,EAAEA,EAAEsuK,IAAM,IAAM,MAAOtuK,EAAEA,EAAEuuK,IAAM,IAAM,MAAOvuK,EAAEA,EAAEwuK,UAAY,IAAM,YAAaxuK,EAAEA,EAAEyuK,IAAM,IAAM,MAAOzuK,EAAEA,EAAE0uK,MAAQ,IAAM,QAAS1uK,EAAEA,EAAE2uK,mBAAqB,IAAM,qBAAsB3uK,EAAEA,EAAE4uK,IAAM,IAAM,MAD9tB,CAEGlH,KAAOA,GAAK,KACf,IAqNImH,GArNAC,GAAM,0BACNC,GAAM,gCACNC,GAAM,kDACNC,GAAM,kDACNC,GAAM,0BACNC,GAAM,yDACNC,GAAM,iHAKNC,GAAM,qOAONC,GAAM,gHAKNC,GAAM,iHAKNC,GAAM,gHAKNC,GAAM,iHAKNC,GAAM,oCACNC,GAAM,+EAENC,GAAM,oCACNC,GAAM,kGAENC,GAAM,8BACNC,GAAM,8BACNC,GAAM,oKAMNC,GAAM,0jBAgBNC,GAAM,0BACNC,GAAM,gEAINC,GAAM,sEAINC,GAAM,+LAQNC,GAAM,ooBAsBNC,GAAM,4CACNC,GAAM,yIAINC,GAAM,sCACNC,GAAM,0BACV,SAASC,GAAG3wK,EAAGC,GACb,IAAIG,EACJ,EAAG,CACD,OAAQJ,GACN,KAAK0nK,GAAG6F,MACNntK,EAAI2uK,GACJ,MACF,KAAKrH,GAAG0G,IACNhuK,EAAI0vK,GACJ,MACF,KAAKpI,GAAG2G,IACNjuK,EAAI2vK,GACJ,MACF,KAAKrI,GAAG4G,IACNluK,EAAIH,EAAKgwK,GAAMD,GACf,MACF,KAAKtI,GAAG8G,UACNpuK,EAAIH,EAAKmwK,GAAMD,GACf,MACF,KAAKzI,GAAG+G,IACNruK,EAAIH,EAAKqwK,GAAMD,GACf,MACF,QACE,SAEJ,IAAI/vK,EAAGC,EAAGwC,EACV,OAAO9C,GAAMK,EAAI,YAAaC,EAAI,YAAawC,EAAI,eAAiBzC,EAAI,QAASC,EAAI,MAAOwC,EAAI,QAAS,wBACxFzC,kDACqBC,uCACrBD,kDACqBC,8KAMhCH,sDAEgBG,gCACZwC,oDAGH,GACT,OAAQ/C,GACN,KAAK0nK,GAAG4F,IACNltK,EAAI0uK,GACJ,MACF,KAAKpH,GAAG8F,sBACNptK,EAAI6uK,GACJ,MACF,KAAKvH,GAAG+F,sBACNrtK,EAAI4uK,GACJ,MACF,KAAKtH,GAAGgG,IACNttK,EAAI8uK,GACJ,MACF,KAAKxH,GAAGiG,QACNvtK,EAAI+uK,GACJ,MACF,KAAKzH,GAAGkG,MACNxtK,EAAIgvK,GACJ,MACF,KAAK1H,GAAGmG,UACNztK,EAAIivK,GACJ,MACF,KAAK3H,GAAGoG,QACN1tK,EAAIkvK,GACJ,MACF,KAAK5H,GAAGqG,cACN3tK,EAAImvK,GACJ,MACF,KAAK7H,GAAGsG,KACN5tK,EAAIovK,GACJ,MACF,KAAK9H,GAAGuG,WACN7tK,EAAIqvK,GACJ,MACF,KAAK/H,GAAGwG,YACN,OAAOjuK,EAAK0vK,GAAMD,GACpB,KAAKhI,GAAGyG,WACN,OAAOluK,EAAK4vK,GAAMD,GACpB,KAAKlI,GAAG6G,IACNnuK,EAAI8vK,GACJ,MACF,KAAKxI,GAAGgH,MACN,OAAOzuK,EAAKuwK,GAAMD,GACpB,KAAK7I,GAAGiH,mBACNvuK,EAAIqwK,GACJ,MACF,KAAK/I,GAAGkH,IACNxuK,EAAIswK,GACJ,MACF,SAEF,MAAO,SACHtwK,iCAKN,SAAUJ,GACRA,EAAEA,EAAE4wK,IAAM,GAAK,MAAO5wK,EAAEA,EAAE6wK,KAAO,GAAK,OAAQ7wK,EAAEA,EAAE8wK,MAAQ,GAAK,QAAS9wK,EAAEA,EAAE+wK,KAAO,GAAK,OAAQ/wK,EAAEA,EAAEgxK,MAAQ,GAAK,QAAShxK,EAAEA,EAAEixK,KAAO,GAAK,OAAQjxK,EAAEA,EAAEkxK,MAAQ,GAAK,QAASlxK,EAAEA,EAAEmxK,KAAO,GAAK,OAAQnxK,EAAEA,EAAEoxK,IAAM,GAAK,MAAOpxK,EAAEA,EAAEqxK,KAAO,GAAK,OAAQrxK,EAAEA,EAAEsxK,IAAM,IAAM,MAAOtxK,EAAEA,EAAEuxK,IAAM,IAAM,MAAOvxK,EAAEA,EAAEwxK,IAAM,IAAM,MAAOxxK,EAAEA,EAAEyxK,MAAQ,IAAM,QAASzxK,EAAEA,EAAE0xK,MAAQ,IAAM,QAAS1xK,EAAEA,EAAE2xK,UAAY,IAAM,YAAa3xK,EAAEA,EAAE4xK,OAAS,IAAM,SAAU5xK,EAAEA,EAAE6xK,OAAS,IAAM,SAAU7xK,EAAEA,EAAE8xK,OAAS,IAAM,SAAU9xK,EAAEA,EAAE+xK,IAAM,IAAM,MAAO/xK,EAAEA,EAAEgyK,MAAQ,IAAM,QAAShyK,EAAEA,EAAEiyK,YAAc,IAAM,cAAejyK,EAAEA,EAAEkyK,IAAM,IAAM,MAAOlyK,EAAEA,EAAEmyK,KAAO,IAAM,OAAQnyK,EAAEA,EAAEoyK,MAAQ,IAAM,QAASpyK,EAAEA,EAAEqyK,UAAY,IAAM,YAAaryK,EAAEA,EAAEsyK,WAAa,IAAM,aAActyK,EAAEA,EAAEuyK,MAAQ,IAAM,QAASvyK,EAAEA,EAAEwyK,MAAQ,IAAM,QAASxyK,EAAEA,EAAEyyK,KAAO,IAAM,OAAQzyK,EAAEA,EAAE0yK,QAAU,IAAM,UAAW1yK,EAAEA,EAAE2yK,KAAO,IAAM,OAAQ3yK,EAAEA,EAAE4yK,IAAM,IAAM,MAAO5yK,EAAEA,EAAE6yK,KAAO,IAAM,OAAQ7yK,EAAEA,EAAE8yK,SAAW,IAAM,WAAY9yK,EAAEA,EAAE+yK,KAAO,IAAM,OAAQ/yK,EAAEA,EAAEgzK,OAAS,IAAM,SAAUhzK,EAAEA,EAAEizK,KAAO,IAAM,OAAQjzK,EAAEA,EAAEkzK,IAAM,IAAM,MAAOlzK,EAAEA,EAAEmzK,KAAO,IAAM,OAAQnzK,EAAEA,EAAEozK,OAAS,IAAM,UAD/jC,CAEGvE,KAAMA,GAAI,KACb,IAAIwE,GAAM,iBACNC,GAAM,6EAMNC,GAAM,yEAMNC,GAAM,6EAMNC,GAAM,mBACNC,GAAM,0EAMNC,GAAM,4LAYNC,GAAM,kBACNC,GAAM,iBACNC,GAAM,8DAINC,GAAM,uBACNC,GAAM,sDACNC,GAAM,wQAgBNC,GAAM,sNAIEl3L,GAAEi7F,sBACDj7F,GAAEu6F,uBACFv6F,GAAEy6F,uBACFz6F,GAAE26F,uBACF36F,GAAE66F,uBACF76F,GAAE+6F,iMAOXo8F,GAAM,iBACNC,GAAM,mBACNC,GAAM,sCACNC,GAAM,wBACNC,GAAM,wBACNC,GAAM,YACNC,GAAM,0DAENC,GAAM,4DAINC,GAAM,2BACNC,GAAM,aACNC,GAAM,wDACNC,GAAM,sJAINC,GAAM,kBACNC,GAAM,kCACNC,GAAM,6BACNC,GAAM,iFACNC,GAAM,8DAGNC,GAAM,mBACNC,GAAM,yBACNC,GAAM,mCAEGt4L,GAAEs7F,2CAEFt7F,GAAEw7F,2CAGX+8F,GAAM,sCACNC,GAAM,kBACNC,GAAM,iBACNC,GAAM,6DAINC,GAAM,oTAgBNC,GAAM,kBACNC,GAAM,gBACNC,GAAM,kGAONC,GAAM,iBACNC,GAAM,qFAINC,GAAM,wBACV,SAASC,GAAGl2K,EAAGC,GACb,OAAQD,GACN,KAAK6uK,GAAE+B,IACL,OAAOyC,GACT,KAAKxE,GAAEgC,KACL,OAAOyC,GACT,KAAKzE,GAAEiC,MACL,OAAOyC,GACT,KAAK1E,GAAEkC,KACL,OAAOyC,GACT,KAAK3E,GAAEmC,MACL,OAAOyC,GACT,KAAK5E,GAAEoC,KACL,OAAOyC,GACT,KAAK7E,GAAEqC,MACL,OAAOyC,GACT,KAAK9E,GAAEuC,IACL,OAAOyC,GACT,KAAKhF,GAAEwC,KACL,OAAOyC,GACT,KAAKjF,GAAEsC,KACL,OAAOyC,GACT,KAAK/E,GAAEyC,IACL,OAAOrxK,EAAKg0K,GAAMD,GACpB,KAAKnF,GAAE0C,IACL,OAAO2C,GACT,KAAKrF,GAAE2C,IACL,OAAO2C,GACT,KAAKtF,GAAE4C,MACL,OAAOsC,GACT,KAAKlF,GAAE6C,MACL,OAAO0C,GACT,KAAKvF,GAAE8C,UACL,OAAO0C,GACT,KAAKxF,GAAE+C,OACL,OAAO0C,GACT,KAAKzF,GAAEgD,OACL,OAAO0C,GACT,KAAK1F,GAAEiD,OACL,OAAO0C,GACT,KAAK3F,GAAEkD,IACL,OAAO0C,GACT,KAAK5F,GAAEmD,MACL,OAAO0C,GACT,KAAK7F,GAAEoD,YACL,OAAO0C,GACT,KAAK9F,GAAEqD,IACL,OAAO0C,GACT,KAAK/F,GAAEwD,UACL,OAAOpyK,EAAK60K,GAAMD,GACpB,KAAKhG,GAAEyD,WACL,OAAOyC,GACT,KAAKlG,GAAEsD,KACL,OAAOlyK,EAAKk1K,GAAMH,GACpB,KAAKnG,GAAEuD,MACL,OAAOnyK,EAAKi1K,GAAMD,GACpB,KAAKpG,GAAE0D,MACL,OAAO6C,GACT,KAAKvG,GAAE2D,MACL,OAAO6C,GACT,KAAKxG,GAAE4D,KACL,OAAO6C,GACT,KAAKzG,GAAE6D,QACL,OAAO6C,GACT,KAAK1G,GAAE8D,KACL,OAAO6C,GACT,KAAK3G,GAAE+D,IACL,OAAO6C,GACT,KAAK5G,GAAEgE,KACL,OAAO6C,GACT,KAAK7G,GAAEiE,SACL,OAAO6C,GACT,KAAK9G,GAAEkE,KACL,OAAO6C,GACT,KAAK/G,GAAEmE,OACL,OAAO6C,GACT,KAAKhH,GAAEoE,KACL,OAAO6C,GACT,KAAKjH,GAAEqE,IACL,OAAO6C,GACT,KAAKlH,GAAEsE,KACL,OAAO6C,GACT,KAAKnH,GAAEuE,OACL,OAAO6C,GACT,QACE,MAAM,IAAIrzK,MAAM,cAAc5C,0BAGpC,SAASm2K,GAAGn2K,EAAGC,GAAK,EAAOG,GAAI,EAAOE,EAAI,GACxC,GAAU,OAANN,EACF,MAAO,GACT,IAAIO,EAAI,GACR,GAAU,WAANP,EACFO,EAAI21K,GAAGrH,GAAEiD,aACN,GAAU,SAAN9xK,EACPO,EAAI21K,GAAGrH,GAAEsD,KAAM/xK,QACZ,GAAU,QAANJ,EACPO,EAAI21K,GAAGrH,GAAEyC,IAAKlxK,QACX,GAAU,UAANJ,EACPO,EAAI21K,GAAGrH,GAAEuD,MAAOhyK,QACb,GAAU,UAANJ,EACPO,EAAIowK,GAAGjJ,GAAGgH,MAAOtuK,QACd,GAAU,YAANJ,EACPO,EAAI21K,GAAGrH,GAAE6D,QAAStyK,OACf,IAAU,cAANJ,EAGP,MAAM,IAAI4C,MAAM,cAAc5C,sDAF9BO,EAAI21K,GAAGrH,GAAEwD,UAAWjyK,GAGtB,IAAI4C,EAAIohK,GAAGhkK,EAAI,EAAI,GAAI6C,EAAI,GAC3B,OAAYA,EAALhD,EAAS,6BACQ+C,kBAAkB1C,cAAc0C,kFAEhDzC,aACK,6BACWyC,kBAAkB1C,cAAc0C,gBAChDzC,aACA0C,EAEV,SAASmzK,GAAGp2K,EAAGC,GACb,MAAO,WACDD,EAAI,iDAAmD,aACvDC,EAAK,qCAAuC,aAGpD,SAASo2K,GAAGr2K,EAAGC,EAAIG,GAAI,EAAOE,GAAI,EAAOC,GAAI,EAAOwC,EAAI,GACtD/F,GAAE26B,OAAO33B,GAAW,IAAN+C,IAAY/C,EAAG,IAAM,cAAcA,2CAA2C+C,KAC5F,IAAIC,EAAI,WACFhD,EAAI,iCAAmC,2CAExCiD,EAAIhD,EAAK,iCAAmC,iCACjD,MAAO,sDAC0CmkK,GAAGrhK,yBACpCqhK,GAAGrhK,iBACf3C,GAAKG,EAAIyC,EAAI,SACbhD,EAAI,0DAA4D,4EAE9DgD,gGAM2CohK,GAAGrhK,yBACpCqhK,GAAGrhK,iBACfE,gCAKN,SAASqzK,GAAGt2K,EAAGC,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,EAAOC,GAAI,EAAOC,EAAI,GAC5D,MAAO,OACLozK,GAAGj2K,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,8DACmCmhK,GAAGnhK,cACtD1C,GAAKwC,EAAI,GAAK,yJAIZqzK,GAAGp2K,EAAGC,uFAMd,IAAIs2K,GAAM,CAACv2K,EAAGC,IAAOD,EAAI,iIAGeC,gBAC5B,4HAGoBA,gBAE5Bu2K,GAAM,CAACx2K,EAAGC,EAAIG,EAAGE,KACnB,GAAIN,EACF,MAAO,+BACiBM,qIAGEF,mGAI5B,CACE,IAAIG,EAAI,GAAIwC,EAAI,GAChB,IAAK,IAAIC,EAAI,EAAGA,EAAI/C,EAAI+C,IACtBzC,GAAK,cAAcyC,mBAAmB/C,OAAQ+C,eAAgBD,GAAK,uBAAuBC,wBAAwBA,gBACpH,MAAO,+BACiB1C,EAAIL,sBACtBM,kCACoBH,0EAElB2C,0BAKZ,SAAS0zK,GAAGz2K,EAAGC,EAAIG,GAAI,EAAOE,EAAI,GAAIC,GAAI,EAAOwC,EAAI,GAAIC,GAAI,GAC3D,IAAIC,EAAIhD,EAAG,GAAKD,EAAE,GAAIkD,EAAIjD,EAAG,GAAKD,EAAE,GAAIoD,EAAIhD,EAAI6C,EAAI3C,EAAGuE,EAAIzE,EAAIE,EAAI2C,EAAGwD,EAAIrD,EAAInD,EAAG,GAAIyG,EAAIpG,EAAIL,EAAG,GAAI0G,EAAI3G,EAAE,GAAI+G,EAAI/G,EAAE,GACpH,OAAOhD,GAAE26B,QAAQv3B,GAAW,IAANqG,GAAoB,IAATzG,EAAE,KAAaI,IAAY,IAANqG,GAAiB,IAANA,KAAarD,EAAInD,EAAG,KAAO,GAAKK,EAAIL,EAAG,KAAO,GAAc,IAATD,EAAE,GAAU,IAAM,iBAAiBI,+BAA+BqG,0BAA0BzG,EAAE,wDAC5KyG,uCACrBrD,0CAA0CnD,EAAG,iBAAiBK,2CAA2CL,EAAG,oBAAoBD,EAAE,iBAAkB,+CAC3HyG,WAAWrD,EAAIqD,OAAO5B,0DACd3B,EAAIlD,EAAE,QAAQM,YAE9DstH,4EAE2BjnH,kFAGSA,6CACAI,uBACtBxG,EAAI,IAAM,wCACTA,IAAMyC,EAAI,QAAU,mDACpBzC,IAAMyC,EAAI,QAAU,gFACSC,4BAE3B1C,EAAI,GAAGmC,KAAK3jB,KAAKgkB,EAAIzC,GAAO,6BAA6BA,8BAC3DC,EAAI,qBAAqBwC,EAAM,yCAElB4D,4EAGAD,6IAGYC,sHAG9B4vK,GAAIn2K,EAAGqG,gHAIuBC,2OAKhBpG,kGAIlBk2K,GAAIp2K,EAAGqG,EAAGE,EAAGrG,mFAIiBqG,yGAKxC,IAAI+vK,GAAM12K,GAAMA,EAAI,0IAIR,0IAKR22K,GAAO32K,GAAMA,EAAI,gDAAkD,gDACvE,SAAS42K,GAAG52K,EAAGC,EAAIG,GAAI,EAAOE,EAAI,GAAIC,GAAI,EAAOwC,EAAI,GAAIC,GAAI,EAAOC,GAAI,GACtE,IAAIC,EAAIlD,EAAE,GAAKC,EAAG,GAAImD,EAAIpD,EAAE,GAAKC,EAAG,GAAI4E,EAAIzE,EAAI8C,EAAI5C,EAAGmG,EAAIrG,EAAIE,EAAI4C,EACnElG,GAAE26B,OAAOlxB,EAAIxG,EAAG,KAAO,GAAK4E,EAAI5E,EAAG,KAAO,GAAKK,EAAIL,EAAG,KAAO,EAAG,IAAM,cAAcwG,0CAA0CxG,EAAG,kBAAkB4E,0CAA0C5E,EAAG,iBAAiBK,0CAA0CL,EAAG,MAC9P,IAAIyG,EAAID,EAAIxG,EAAG,GAAI0G,EAAI9B,EAAI5E,EAAG,GAAI8G,EAAIzG,EAAIL,EAAG,GAAI4K,EAAI7K,EAAE,GAAI8K,EAAI9K,EAAE,GAAI6J,EAAI7G,EAAI,iIAG7BE,uDACAE,8LAKCqD,4BAA4BxG,EAAG,6DAC7B4E,4BAA4B5E,EAAG,sBACtEy2K,GAAGt2K,kIAIkCE,4BAA4BL,EAAG,iEACzBmD,4BAA4BnD,EAAG,qMAM5DK,2HAIOwK,oCACLxK,oDACUwK,6EACqB7K,EAAG,kEAElB4K,+CAClBzK,EAAI,oCAAoCH,EAAG,OAAS,iCAAiCA,EAAG,4DACpE6K,gQAQND,+EACkB5K,EAAG,kDACnB6K,iFACkB7K,EAAG,mGAIvD,sCACyB4K,wCACAC,6CAEGD,2CACAC,mDACQ5H,2CAEVwD,yCACAC,yCACAI,qKAIIL,6DACEC,uHAGhC+vK,GAAGt2K,6GAK2B2G,6DACE+D,4QAQlBxK,+GAIOwK,gCACLxK,gDACUwK,4HAIMD,6BAChC8rK,GAAIv2K,iDAC8B0K,oOAUND,2DACEC,2IAMtC,MAAO,mDACuCjG,OAAO4B,sDACPrD,OAAO9C,cAEjDstH,6BACcrtH,EAAI,IAAM,0CACTA,IAAM0C,EAAI,QAAU,qDACpB1C,IAAM0C,EAAI,QAAU,uDAClB1C,EAAI,GAAGmC,KAAK3jB,KAAKgkB,EAAIzC,GAAO,6BAA6BA,gCAC3DC,EAAI,qBAAqBwC,EAAM,4CAEjB+H,OAAOD,uHAGAA,+DACEC,yFAIpCjB,eAIR,IAAIgtK,GAAO72K,GAAMA,EAAI,0LAKf,0LAMN,SAAS82K,GAAI92K,EAAGC,GAAK,GACnBjD,GAAE26B,OAAgB,IAAT33B,EAAE,IAAqB,IAATA,EAAE,GAAU,IAAM,iDAAiDA,MAC1F,IAAII,EAAW,EAAPJ,EAAE,GACV,MAAO,mDACuCA,EAAE,eAE5C4tH,iLAK2CxtH,uYAUxBA,0DACcy2K,GAAI52K,wHAIbG,EAAI,uCACPA,8eAiB3B,IAAI22K,GAAK,MACP,YAAY92K,EAAIG,EAAGE,GAAI,EAAOC,GAAI,EAAOwC,EAAI,KAAMC,EAAI,KAAMC,EAAI,KAAMC,GAAI,GACzEvkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oDAAqDvmM,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,IACxK,IAAI1G,EAAI9C,EAAIL,EAAG,GAAKA,EAAG,GACvB,GAAIthC,KAAKq4M,QAAU5zK,EAAI,IAAM,IAAM9C,GAAKF,EAAE,GAAK,IAAM,GAAKE,IAAMF,EAAE,GAAK,IAAM,IAAMG,EAAG5hC,KAAK+lM,gBAAkB/lM,KAAKq4M,OAAS,EAAI,EAAGr4M,KAAKs4M,UAAqB,IAAT72K,EAAE,KAAaE,GAAI3hC,KAAKq4M,QAAUr4M,KAAKs4M,UACxLt4M,KAAKwoM,kBAAoB,CAAC,EAAG,EAAG,GAAIxoM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,OAC9D,CACH,IAAI/9J,EAAIggK,GAAGtmK,EAAE,GAAIgD,EAAGhD,EAAE,GAAIE,GAC1B3hC,KAAK8lM,cAAgB/9J,EAAE+9J,cAAe9lM,KAAKwoM,kBAAoBzgK,EAAEygK,kBAEnExoM,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe9lM,KAAKwoM,mBAClF,IAAItiK,EAAS,MAAL9B,EAAW0D,EAAS,MAALxD,EACvB4B,GAAKlmC,KAAKmsJ,cAActgH,KAAK,QAAS/D,GAAK9nC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKu4M,0BAA4Bh0K,EAAGvkC,KAAKk8E,WAAav6C,EAAG3hC,KAAKm8E,WAAav6C,EAAG5hC,KAAKw4M,QAAUtyK,EAAGlmC,KAAKm7F,WAAa92D,EAAGrkC,KAAKy4M,0BAA4B3wK,GAAI9nC,KAAK04M,UAAW14M,KAAK24M,UAAW34M,KAAK44M,UAAY54M,KAAK64M,YAAYp3K,EAAE,GAAIA,EAAE,GAAIgD,GAAIzkC,KAAKmlM,UAAY,gBAAgBnlM,KAAKwoM,qBAAqB7mK,KAAKC,KAAK5hC,KAAKm7F,cAAcn7F,KAAK04M,aAAa14M,KAAK24M,aAAa34M,KAAK44M,YAAY54M,KAAKq4M,UAAUr4M,KAAKs4M,aAAat4M,KAAKu4M,4BAE/f,YAAYj3K,EAAIG,EAAGE,GACjB,IAAIC,EAAI5hC,KAAK8lM,cAAc,GAAK9lM,KAAKwoM,kBAAkB,GAAIpkK,EAAIpkC,KAAK8lM,cAAc,GAAK9lM,KAAKwoM,kBAAkB,IAC7GxoM,KAAKq4M,QAAUr4M,KAAKs4M,UAAYt4M,KAAK84M,UAAoC,EAAxB94M,KAAK8lM,cAAc,GAAS9lM,KAAK84M,UAAY10K,EAC/F,IAAIC,EAAI/C,EAAKM,IAAM,EAAG0C,EAAI7C,EAAI2C,IAAM,EAAGG,EAAI5C,EAAI3hC,KAAK84M,YAAc,EAClE,MAAO,CAACz0K,EAAGC,EAAGC,GAEhB,cACE,MAAO,WACHizK,GAAGx3M,KAAKm7F,WAAYn7F,KAAKy4M,0BAA2Bz4M,KAAKq4M,kBACzDV,GAAG33M,KAAKw4M,QAASx4M,KAAKm7F,YAAY,EAAOn7F,KAAKm8E,WAAYn8E,KAAK04M,UAAW14M,KAAK24M,UAAW34M,KAAK44M,SAAU54M,KAAKq4M,OAAS,EAAI,aAC3Hr4M,KAAKq4M,OAASP,GAAG93M,KAAKwoM,kBAAmBxoM,KAAK8lM,cAAe9lM,KAAKk8E,WAAYl8E,KAAK84M,WAAW,EAAO,MAAM,GAAQ94M,KAAKs4M,UAAYH,GAAIn4M,KAAK8lM,cAAe9lM,KAAKk8E,YAAc+7H,GAAGj4M,KAAKwoM,kBAAmBxoM,KAAK8lM,cAAe9lM,KAAKk8E,WAAYl8E,KAAK84M,WAAW,EAAO,KAAM94M,KAAKu4M,2BAA2B,aAIpT,SAASQ,GAAI13K,GACX,MAAO,+CACmCA,YACtC4tH,4VASmD5tH,gPAQ3BA,EAAI,6YAgBlC,IAAI23K,GAAK,MACP,YAAY13K,EAAIG,GAAI,EAAOE,GAAI,EAAOC,EAAI,KAAMwC,EAAI,KAAMC,EAAI,MAC5DrkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oDAAqDvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiB,CAAE17J,EAAG,GAAI7M,EAAG,CAAC,EAAG,GAAI8M,EAAG,CAAC,IAAMnrC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eACjR,IAAIxhK,EAAS,MAAL1C,EAAW2C,EAAS,MAALF,EACvBC,GAAKtkC,KAAKmsJ,cAActgH,KAAK,QAAStH,GAAKvkC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKk8E,WAAaz6C,EAAGzhC,KAAKm8E,WAAax6C,EAAG3hC,KAAKw4M,QAAUl0K,EAAGtkC,KAAKm7F,WAAa/2D,EAAGpkC,KAAKy4M,0BAA4Bl0K,EAAGvkC,KAAKmlM,UAAY,gBAAgBnlM,KAAKm7F,cAAc15D,KAAKE,IAE9Q,cACE,MAAO,WACH61K,GAAGx3M,KAAKm7F,WAAYn7F,KAAKy4M,qCACzBd,GAAG33M,KAAKw4M,QAASx4M,KAAKm7F,WAAYn7F,KAAKk8E,WAAYl8E,KAAKm8E,sBACxD48H,GAAI/4M,KAAK8lM,cAAc,cAI/B,SAASmT,GAAI53K,GACX,IAAIC,EAAKD,EAAE,GAAII,EAAIJ,EAAE,GAAIM,EAAIL,EAAKG,EAAIH,EAAKG,EAC3C,MAAO,iDACqCE,OAAOL,oDACPG,OAAOE,4dAQjDstH,8XAU2CttH,oUAQfA,qCACAA,wcAYEA,uCACAA,mCAENA,yLAU5B,IAAIu3K,GAAK,MACP,YAAY53K,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,GAAI,EAAOC,EAAI,KAAMC,EAAI,KAAMC,EAAI,MAClEvkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oDAAqDvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAK+5F,YAAcp4D,EAAG3hC,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,IAAMnrC,KAAKonM,SAAW,CAACrjK,KAAK3jB,KAAKuhB,EAAE,GAAK3hC,KAAK8lM,cAAc,IAAK/hK,KAAK3jB,KAAKuhB,EAAE,GAAK3hC,KAAK8lM,cAAc,IAAKnkK,EAAE,IACpT,IAAI8C,EAAS,MAALJ,EACRI,GAAKzkC,KAAKmsJ,cAActgH,KAAK,QAC7B,IAAI3F,EAAS,MAAL3B,EACR2B,GAAKlmC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKk8E,WAAat6C,EAAG5hC,KAAKm8E,WAAa/3C,EAAGpkC,KAAKw4M,QAAU/zK,EAAGzkC,KAAKm7F,WAAa72D,EAAGtkC,KAAKy4M,0BAA4BvyK,EAAGlmC,KAAKmlM,UAAY,yBAAyBnlM,KAAKm7F,cAAcv5D,KAAKwC,IAEjP,cACE,MAAO,WACHozK,GAAGx3M,KAAKm7F,WAAYn7F,KAAKy4M,qCACzBd,GAAG33M,KAAKw4M,QAASx4M,KAAKm7F,WAAYn7F,KAAKk8E,WAAYl8E,KAAKm8E,sBACxD88H,GAAIj5M,KAAK8lM,yBAIbqT,GAAK,MACP,YAAY73K,EAAIG,EAAGE,GAAI,EAAOC,GAAI,GAChC5hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oDAAqDvmM,KAAK8lM,cAAgB,CAAC,EAAG,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAKo5M,gBAAkB,IAAK/6K,GAAE26B,OAAiB,IAAV13B,EAAG,GAAU,IAAM,gDAAiDthC,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IACzU,IAAI/G,GAAKzC,GAAK3hC,KAAK+5F,YAAY,GAAK,IAAM,IAAMp4D,GAAKF,EAAI,IAAM,IAAMzhC,KAAK+5F,YAAY,GAAK,IAAM,EACjG/5F,KAAKwoM,kBAAoB,CAAC,EAAG,EAAGxoM,KAAKo5M,iBAAkBp5M,KAAK+lM,gBAAkB3hK,EAAI,EAAI,EAAGA,IAAMpkC,KAAK+5F,YAAY,GAAK,KAAO/5F,KAAKwoM,kBAAkB,GAAK,GAAIxoM,KAAK+5F,YAAY,GAAK,KAAO/5F,KAAKwoM,kBAAkB,GAAK,IAAKxoM,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB,CAAC5mM,KAAK+5F,YAAY,GAAI/5F,KAAK+5F,YAAY,GAAI/5F,KAAK+5F,YAAY,GAAIt4D,GAAIzhC,KAAK8lM,cAAe9lM,KAAKwoM,mBAAoBxoM,KAAKk8E,WAAav6C,EAAG3hC,KAAKm8E,WAAav6C,EAAG5hC,KAAKmlM,UAAY,gBAAgBxjK,KAAKC,KAAK5hC,KAAKwoM,qBAAqBxoM,KAAK+lM,kBAExe,cACE,IAAIzkK,EAAKthC,KAAK+lM,gBACd,MAAO,WACH2R,IAAG,EAAO13M,KAAKm8E,YAAY,GAAO,GAAO,EAAO76C,mEACMmkK,GAAGnkK,2XAMjCA,gCAClBqjK,GAAG,yBAA0B,IAAGrjK,EAAK,EAAI,WAAa,SAAW,sDAIhE,IAAPA,EAAWw2K,GAAG93M,KAAKwoM,kBAAmBxoM,KAAK8lM,cAAe9lM,KAAKk8E,WAAY,IAAI,EAAMl8E,KAAKo5M,iBAAmBnB,GAAGj4M,KAAKwoM,kBAAmBxoM,KAAK8lM,cAAe9lM,KAAKk8E,WAAY,IAAI,EAAMl8E,KAAKo5M,2BAIhMC,GAAK,MACP,YAAY/3K,EAAIG,EAAI,KAAME,EAAI,KAAMC,EAAI,MACtC5hC,KAAKumM,SAAW,GAAIvmM,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKw4M,QAAe,MAAL/2K,EAAWzhC,KAAKy4M,0BAAiC,MAAL72K,EAAW5hC,KAAKm7F,WAAax5D,EAAG3hC,KAAKw4M,SAAWx4M,KAAKmsJ,cAActgH,KAAK,QAAS7rC,KAAKy4M,2BAA6Bz4M,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKmlM,UAAY,kBAAkBxjK,EAEzf,cACE,MAAO,SACL61K,GAAGx3M,KAAKm7F,WAAYn7F,KAAKy4M,mCACzBxpD,GAAE,2JAIEwoD,GAAGz3M,KAAKw4M,QAASx4M,KAAKm7F,+EAO5Bm+G,GAAK,MACP,YAAYh4K,GACVthC,KAAKmsJ,cAAgB,GAAInsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,eAAgBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,OAEtS,cACE,MAAO,SACLl2C,GAAE,yHAQR,SAASsqD,GAAGl4K,GACV,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAK89B,MAAOx9B,EAAG1gC,MAAO2gC,GAAMH,GAAKi9B,MAAOt6B,GAAM3C,EAC9E,GAAI2C,EAAIA,GAAK/F,GAAEw8B,WAAWj5B,GAAU,WAANwC,EAAgB,CAC5C,IAAIC,EAAIhG,GAAEk8B,kBAAkBn2B,EAAG/F,GAAEi+B,cAAc36B,IAC/C,OAAO0C,EAAEzd,KAAKgb,GAAIN,EAAG+1F,eAAe11F,EAAGyC,EAAGC,GACrC,CACL,IAAIA,EAAI,IAAIi1K,GAAG33K,GAAI2C,EAAI,CAAC,CAAEy2C,KAAM,UAAWn+B,KAAM,CAAChb,KAClD,OAAON,EAAGk4K,iBAAiBn1K,EAAG,GAAID,EAAGE,IAGzC,IAAIm1K,GAAK,CAAE9gJ,WAAYztD,GAAI0tD,YAAa,SAAUuO,WAAYoyI,IAC9D,SAASG,GAAGr4K,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,GAAMJ,GAAK6J,EAAGvJ,GAAML,GAAM69B,MAAOv9B,GAAMH,EAAG2C,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIhG,GAAEy8B,uBAAuBl5B,EAAGwC,GAAIE,EAAIjG,GAAEi+B,cAAcj4B,GACzJ,OAAOhG,GAAE26B,OAAO50B,IAAME,EAAG,IAAM,kBAAkBD,UAAUC,iCAAiC3C,EAAEw9B,cAAc/6B,kFAAmF/C,EAAEnjB,QAAQyjD,OAAOhgC,EAAEi/B,QAAS,CAAEA,OAAQj/B,EAAEi/B,OAAQzB,MAAO96B,EAAGq6B,MAAO/8B,EAAE+8B,OAEpQ,IAAIi7I,GAAK,CAAEhhJ,WAAYvjD,GAAIwjD,YAAa,SAAUuO,WAAYuyI,IAC9D,SAASE,IAAKv1K,EAAGhD,EAAGoL,EAAGnL,EAAI46C,WAAYz6C,EAAG06C,WAAYx6C,EAAGzjB,QAAS0jB,EAAGgmD,KAAMxjD,EAAI,KAAMg3D,uBAAwB/2D,EAAI,KAAMg3D,eAAgB/2D,EAAI,EAAG62D,WAAY52D,EAAI,OAC5J,IAAIE,EAAIpD,EAAE89B,MAAMj/D,OAAQgmC,EAAI5E,EAAG69B,MAAMj/D,OAAQ4nC,EAAIrG,EAAIJ,EAAE89B,MAAM16B,EAAI,GAAKpD,EAAE89B,MAAM16B,EAAI,GAAIsD,EAAIpG,EAAIL,EAAG69B,MAAMj5B,EAAI,GAAK5E,EAAG69B,MAAMj5B,EAAI,GAAI8B,EAAIvG,EAAIJ,EAAE89B,MAAM16B,EAAI,GAAKpD,EAAE89B,MAAM16B,EAAI,GAAI2D,EAAIzG,EAAIL,EAAG69B,MAAMj5B,EAAI,GAAK5E,EAAG69B,MAAMj5B,EAAI,GAAIgG,EAAI7K,EAAE89B,MAAMnnC,MAAM,GAAI,GAAImU,EAAI7K,EAAG69B,MAAMnnC,MAAM,GAAI,GAAIkT,EAAI7M,GAAEi+B,cAAcpwB,GAAIO,EAAIpO,GAAEi+B,cAAcnwB,GAAIa,EAAIntB,GAAGoiE,2BAA2B5gD,EAAE89B,MAAMnnC,MAAM,GAAI,GAAIsJ,EAAG69B,MAAMnnC,MAAM,GAAI,IAAIpX,OAAO,CAAConB,EAAGI,IACpZ/J,GAAE26B,OAAOlxB,IAAMC,EAAG,IAAM,kCAAkCD,WAAWC,6BAA6B1G,EAAE89B,aAAa79B,EAAG69B,wBAAwB19B,oBAAoBE,iBAChK,IAA6U+L,EAAGG,EAA5UZ,EAAIxL,EAAI,CAACyJ,EAAGpD,EAAGE,GAAK,CAACkD,EAAGlD,EAAGF,GAAIoF,EAAIvL,EAAI,CAAC8K,EAAGrE,EAAGL,GAAK,CAAC0E,EAAG1E,EAAGK,GAAIgF,EAAIssK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOlyB,KAAQI,EAAIqsK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOjyB,KAAQI,EAAI,CAACF,EAAGC,GAAIE,EAAIxJ,KAAK3W,IAAI8d,EAAGuB,GAAIxtC,EAAI,CAACmuC,EAAGC,GAAIG,EAAI,CAAC,CAAEutC,KAAM,QAASn+B,KAAM,CAAC5U,IAAM,CAAE+yC,KAAM,QAASn+B,KAAM,CAACxU,IAAM,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC9U,KAAaqD,EAAI,CAACoC,EAAGvF,EAAGI,GAAIyL,EAAIluB,KAAInkB,IAAI,8BAC9W,GAAIqyC,EAAI,EAAG,CACT,IAAIsd,EAAIxrC,KAAIq7H,UAAU,sDAAuD5vF,EAAID,EAAI,EAAIA,EAAIvvB,EAAEwoK,8BAA+Bx5I,EAAIrjB,EAAIxJ,KAAK3jB,KAAK4nB,EAAI,IAAMjE,KAAK3jB,KAAKgoB,EAAI,IACpHyL,EAApD+c,GAAKQ,GAAKppB,GAAK,GAAK4oB,GAAS,EAAJQ,EAAQ7jB,EAAIvF,EAAII,GAAK,IAAUo/J,GAAGkB,oBAA4B,IAANn7J,GAAWxF,GAAK,IAAUy/J,GAAGmB,oBAA0BnB,GAAGoB,6BAAmCpB,GAAGqB,oBAEnL,OAAQh1J,GACN,KAAK2zJ,GAAGkB,oBACNh7J,EAAI,IAAIsrK,GAAG7tK,EAAG1J,EAAGE,EAAGyC,EAAGG,EAAGF,GAC1B,MACF,KAAKmjK,GAAGmB,oBACN,GAAI96J,EAAI0rK,GAAG,CAAEr7L,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOh0B,EAAGlqC,MAAO,EAAGy9D,MAAOr9B,EAAEq9B,SAAYhxB,EAAI,IAAIyrK,GAAGhuK,EAAGpD,EAAGtG,EAAGE,GAAIyC,GAAKG,EAAG,CACzGsJ,EAAIjM,EAAE43K,iBAAiB9rK,EAAGzuC,EAAGoiC,EAAEq9B,MAAOlxB,EAAGK,GACzC,IAAIujB,EAAI,IAAIioJ,GAAGxrK,EAAEsxB,MAAO/6B,EAAGG,EAAGF,GAAIusB,EAAI,KAAMC,EAAK,CAAChjB,GAClDzJ,GAAKysB,EAAGhlB,KAAKzH,GAAIC,GAAKwsB,EAAGhlB,KAAKxH,GAAU,cAANE,IAAsBqsB,EAAI,CAAC,CAAEmqB,KAAM,UAAWn+B,KAAM,CAACtY,KAAO8sB,EAAEm1I,UAAY,iBAC5G,IAAIx/J,EAAKnF,EAAE43K,iBAAiBpoJ,EAAGP,EAAIhjB,EAAE6wB,MAAO9N,GAC5CtjB,EAAEzB,KAAKgC,GACP,IAAIyG,EAAKolK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGnE,GAAM7oB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOnyB,KAC7DM,EAAEzB,KAAK9E,GACP,IAAK,IAAIiJ,KAAM1C,EACb1L,EAAEukC,YAAYn2B,EAAG4wB,QACnB,OAAOtsB,EAET,MAEF,KAAKkzJ,GAAGoB,6BACNl7J,EAAI,IAAIwrK,GAAGjsK,EAAGC,EAAG/B,EAAG1J,EAAGE,EAAGyC,EAAGG,EAAGF,GAChC,MACF,KAAKmjK,GAAGqB,oBACN,IAAI13I,EAAIvvB,EAAEqoK,YAAYtG,UACtBj2J,EAAI,IAAI0qK,GAAGnrK,EAAG9B,EAAG1J,EAAGE,EAAGyC,EAAGG,EAAGF,EAAG8sB,GAChC,MACF,QACE,MAAM,IAAIltB,MAAM,iCAAiC4P,MAErDzP,GAAKnlC,EAAE4sC,KAAKzH,GAAIC,GAAKplC,EAAE4sC,KAAKxH,GAAU,cAANE,IAAsBiJ,EAAE3B,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAM,CAACtY,KAAOoJ,EAAE64J,UAAY,iBAAkB14J,EAAIjM,EAAE43K,iBAAiB9rK,EAAGzuC,EAAGoiC,EAAEq9B,MAAOlxB,EAAGK,GACvK,IAAID,EAAI8rK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG2C,GAAK3vB,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOnyB,KAC3DM,EAAEzB,KAAKgC,GACP,IAAK,IAAIsjB,KAAK7jB,EACZ1L,EAAEukC,YAAYhV,EAAEyP,QAClB,OAAOhzB,EAET,SAASisK,GAAIx4K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM46C,WAAY33C,EAAG43C,WAAY13C,EAAG02D,WAAYj1D,EAAGm1D,eAAgBvzD,GAAMnG,EAC5K,OAAOi4K,GAAG,CAAEv1K,EAAGzC,EAAG6K,EAAGrI,EAAG83C,WAAY33C,EAAG43C,WAAY13C,EAAGvmB,QAASujB,EAAGmmD,KAAMvjD,EAAG+2D,uBAAwB92D,EAAG+2D,eAAgBvzD,EAAGqzD,WAAYj1D,IAEvI,IAAI4zK,GAAK,CAAEnhJ,WAAYz8C,GAAI08C,YAAa,SAAUuO,WAAY0yI,IAC1DE,GAAK,MACP,YAAYz4K,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,QAAS,QAAS,QAAS,SAAUnsJ,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc17E,GAAE4jE,2BAA2BxgD,EAAGE,GAAI3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,mBAAmB7jK,EAAMthC,KAAKowB,GAAKkR,EAErV,cACE,MAAO,gHAGD0wK,GAAGhyM,KAAKowB,IAAI,wBAGd6+H,GAAE,mXAYN+qD,GAAK,MACP,YAAY14K,EAAIG,EAAGE,GACjB,GAAI3hC,KAAKk/D,MAAO,EAAMl/D,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAK+5F,YAAc17E,GAAE4jE,2BAA2BxgD,EAAGE,GAAI3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKowB,GAAKkR,EAAIthC,KAAKi6M,qBAAuBx4K,EAAEvhC,QAAU,GAAKyhC,EAAEzhC,OAAS,GAAKuhC,EAAE,GAAK,IAAKzhC,KAAKk6M,qBAAuBv4K,EAAEzhC,QAAU,GAAKuhC,EAAEvhC,OAAS,GAAKyhC,EAAE,GAAK,IAAK3hC,KAAKi6M,sBAAwBj6M,KAAKk6M,qBACzVl6M,KAAK+lM,gBAAkB,EAAG/lM,KAAK0mM,mBAAqB,CAAC,EAAG,GAAI1mM,KAAKm6M,kBAAoBn6M,KAAKk6M,qBAAuBv4K,EAAE,GAAKF,EAAE,GAAIzhC,KAAKmlM,UAAY,UAAU7jK,KAAMthC,KAAKm6M,oBAAqBn6M,KAAK+6E,KAAO,SAAU/6E,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,OAC1O,CACH,IAAIlkK,EAAIH,EAAEvhC,OAAS,GAAKuhC,EAAEA,EAAEvhC,OAAS,GAAK,IAAM,EAAGkkC,EAAIzC,EAAEzhC,OAAS,GAAKyhC,EAAEA,EAAEzhC,OAAS,GAAK,IAAM,EAC/F0hC,GAAKwC,GAAKpkC,KAAK+lM,gBAAkB,EAAG/lM,KAAK0mM,mBAAqB,CAAC,EAAG,IAAM9kK,IAAMvD,GAAE+8B,cAAcz5B,IAA0B,IAApBA,EAAEA,EAAEzhC,OAAS,KAAakkC,IAAM/F,GAAE+8B,cAAc35B,IAA0B,IAApBA,EAAEA,EAAEvhC,OAAS,KAAaF,KAAK+lM,gBAAkB,EAAG/lM,KAAK0mM,mBAAqB9kK,EAAI,CAAC,EAAG,GAAK,CAAC,EAAG,KAAO5hC,KAAK+lM,gBAAkB,EAAG/lM,KAAK0mM,mBAAqB,CAAC,EAAG,IAAK1mM,KAAK+6E,KAAO,YAAa/6E,KAAKmlM,UAAY,UAAU7jK,KAAMthC,KAAK0mM,qBAAsB1mM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAElb9lM,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAK+lM,gBAAiB,EAAG,IAEzG,cACE,IAAIzkK,EAAIG,EAA6B,IAAzBzhC,KAAK+lM,gBAAwB,YAAc,MAAOpkK,EAAI,gCACzCF,UAAUA,SAASA,cACxCuwK,GAAGhyM,KAAKowB,GAA6B,IAAzBpwB,KAAK+lM,iCAGrB,GAAkB,WAAd/lM,KAAK+6E,KAAmB,CAC1B,IAAIn5C,EAAI5hC,KAAKm6M,kBAAoB,EAAI,UAAUn6M,KAAK+5F,YAAY75F,OAAS,KAAO,IAAKkkC,EAAIpkC,KAAKk6M,qBAAuB,kEAC7Ft4K,MAAQ,qBAAqBA,mDAErDN,EAAK,aACDK,oDACsC3hC,KAAKm6M,gCAC3ClrD,GAAE,qIAGgBjvJ,KAAKm6M,iEACSn6M,KAAKk6M,qBAAuB,IAAM,4KAM9D91K,wGAMR9C,EAAK,YACFK,aACAstH,GAAE,yGAE0CjvJ,KAAK+lM,yCACrCtkK,sDACAA,4HAKjB,OAAOH,IAGX,SAAS84K,GAAG/4K,GACV,IAAMu9B,OAAQt9B,GAAOD,GAAK6J,EAAGzJ,GAAMH,EACnC,OAAOD,EAAEnjB,QAAQyjD,OAAOlgC,EAAEm/B,QAAS,CAAEA,OAAQn/B,EAAEm/B,OAAQzB,MAAO19B,EAAE09B,MAAOT,MAAOj9B,EAAEi9B,OAElF,IAAI27I,GAAK,CAAE1hJ,WAAY3rD,GAAI4rD,YAAa,SAAUuO,WAAYizI,IAC9D,SAASE,GAAGj5K,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKjO,KAAMuO,EAAGrY,KAAMsY,GAAMN,EAAI8C,EAAI3C,EAAE41F,eAAe11F,EAAEw9B,MAAO,aAAc96B,EAAI5C,EAAE8pF,UAAU/pH,IAAI4iC,EAAEw8B,QAASt8B,EAAI81K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,IAAM8C,EAAI61K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACxN,OAAO4C,EAAE+yF,mBAAqB,CAAEhkG,KAAMkR,EAAGhb,KAAMib,GAAKH,EAEtD,IAAIm2K,GAAK,CAAE5hJ,WAAYjyD,GAAIkyD,YAAa,SAAUuO,WAAYmzI,IAC1DE,GAAK,MACP,YAAYl5K,EAAIG,EAAGE,EAAI,IACrB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKk/D,MAAO,EACxC,IAAIt9B,EAAI,IACR5hC,KAAK8lM,cAAgB,CAAClkK,EAAG,EAAG,GAAI5hC,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKowB,GAAKqR,EAAS,KAANE,IAAa3hC,KAAKumM,SAAW5kK,GAAI3hC,KAAKmlM,UAAY,SAAS1jK,EAE1P,cACE,MAAO,wDAED81K,GAAGv3M,KAAKowB,IAAI,sBAEd6+H,GAAE,qLASV,SAASwrD,IAAKC,OAAQr5K,EAAGkhI,cAAejhI,EAAIo9B,MAAOj9B,IACjD,MAAO,EAAGm9B,OAAQj9B,EAAGzjB,QAAS0jB,MAC5B,IAAMsJ,EAAG9G,GAAMzC,EAAG0C,EAAIzC,EAAG0C,EAAI7C,GAAK2C,EAAEs6B,MACpC,GAAIr6B,EAAEy7H,mBAAmB,CAAC17H,KAAa,MAAN9C,EAAY,CAC3C,IAAImD,EAAIJ,EAAEknF,UAAU/pH,IAAI4iC,EAAEw8B,QAAS16B,EAAI5E,EAAGmD,EAAE3lC,OAAQwlC,GACpD,OAAOD,EAAEgzF,eAAejzF,EAAE+6B,MAAO76B,EAAG4B,GAEtC,IAAI3B,EAAI,IAAIi2K,GAAGp2K,EAAE+6B,MAAO99B,GACxB,OAAOgD,EAAEm1K,iBAAiBj1K,EAAG,CAACH,GAAIE,IAGtC,SAASq2K,IAAKD,OAAQr5K,EAAGkhI,cAAejhI,EAAIohI,gBAAiBjhI,GAAI,EAAOi9B,MAAO/8B,IAC7E,MAAO,EAAGi9B,OAAQh9B,EAAG1jB,QAASkmB,MAC5B,IAAI,EAAEC,EAAGoI,EAAGnI,GAAM1C,EAAG2C,EAAIH,EACzB,GAAI3C,GAAiB,cAAZ4C,EAAEq6B,MAAuB,CAChC,IAAkE12B,EAAGI,EAAjEN,EAAIvD,EAAEgnF,UAAU/pH,IAAI6iC,EAAEu8B,QAAS74B,EAAIxD,EAAEgnF,UAAU/pH,IAAI8iC,EAAEs8B,QACzD,GAAIv/B,IAAM0nK,GAAG6G,KACV5nK,EAAGI,GAAK,CAAC,CAACN,EAAEsvF,mBAAmBhkG,KAAM2U,EAAEqvF,mBAAmBhkG,MAAO,CAAC0U,EAAEsvF,mBAAmB9tG,KAAMye,EAAEqvF,mBAAmB9tG,OAAOirC,IAAKpoB,IAC7H,IAAKjB,EAAGuB,GAAKN,EAAGY,EAAI,CAAE6zB,OAAQ11B,EAAE01B,OAAQlC,MAAOxzB,EAAEwzB,MAAOS,MAAO96B,EAAE86B,OAASnyB,EAAI,CAAE4zB,OAAQn0B,EAAEm0B,OAAQlC,MAAOjyB,EAAEiyB,MAAOS,MAAO76B,EAAE66B,OAASlyB,EAAI,IAAI+sK,GAAG34K,EAAGgD,EAAE86B,MAAO76B,EAAE66B,OAC7J,OAAO56B,EAAEi1K,iBAAiBvsK,EAAG,CAACF,EAAGC,GAAI/O,GAAGiN,EAAEwzB,MAAOjyB,EAAEiyB,cAElD,CACH,IAAIvyB,EAAI,IAAI4tK,GAAGhR,GAAG+F,sBAAuBzqK,EAAE86B,MAAO76B,EAAE66B,OAAQj0B,EAAI,IAAI6uK,GAAGhR,GAAG8F,sBAAuBxqK,EAAE86B,MAAO76B,EAAE66B,OAAQ1yB,EAAI,CAAC,CAAEm0B,OAAQ94B,EAAEsvF,mBAAmBhkG,KAAKwtC,OAAQlC,MAAO52B,EAAEsvF,mBAAmBhkG,KAAKsrC,MAAOS,MAAO96B,EAAE86B,OAAS,CAAEyB,OAAQ94B,EAAEsvF,mBAAmB9tG,KAAKs3C,OAAQlC,MAAO52B,EAAEsvF,mBAAmB9tG,KAAKo1C,MAAOS,MAAO96B,EAAE86B,OAAS,CAAEyB,OAAQ74B,EAAEqvF,mBAAmBhkG,KAAKwtC,OAAQlC,MAAO32B,EAAEqvF,mBAAmBhkG,KAAKsrC,MAAOS,MAAO76B,EAAE66B,OAAS,CAAEyB,OAAQ74B,EAAEqvF,mBAAmB9tG,KAAKs3C,OAAQlC,MAAO32B,EAAEqvF,mBAAmB9tG,KAAKo1C,MAAOS,MAAO76B,EAAE66B,QACxgBn3B,EAAIzD,EAAEi1K,iBAAiBrtK,EAAGM,EAAG,WAAYrE,EAAI7D,EAAEi1K,iBAAiBtuK,EAAGuB,EAAG,WAExE,IAAIP,EAAIouK,GAAG,CAAE17I,OAAQ,CAAExrC,KAAM4U,EAAG1e,KAAM8e,GAAKlqB,QAASqmB,IACpD,OAAOA,EAAE4hC,YAAYn+B,EAAE44B,QAASr8B,EAAE4hC,YAAY/9B,EAAEw4B,QAAS10B,EAE3D,IAAIzH,EAAI9C,GAAK1D,GAAGoG,EAAEq6B,MAAOp6B,EAAEo6B,OAC3B,IAAiB,WAAZr6B,EAAEq6B,OAAkC,WAAZp6B,EAAEo6B,OAAsBn6B,EAAEu7H,mBAAmB,CAACz7H,EAAGC,MAAc,MAANhD,EAAY,CAChG,IAAIwG,EAAIvD,EAAEgnF,UAAU/pH,IAAI6iC,EAAEu8B,QAAQ9hE,OAAQipC,EAAIxD,EAAEgnF,UAAU/pH,IAAI8iC,EAAEs8B,QAAQ9hE,OAAQkpC,EAAgB,WAAZ3D,EAAEq6B,MAAqBrgD,GAAE69F,uBAAuBp0E,GAAKA,EAAGM,EAAgB,WAAZ/D,EAAEq6B,MAAqBrgD,GAAE69F,uBAAuBn0E,GAAKA,GAAImE,EAAGC,GAAK7K,EAAG+C,EAAE86B,MAAO76B,EAAE66B,MAAOn3B,EAAGI,EAAG3D,GAC5O,OAAOF,EAAE8yF,eAAelrF,EAAG1H,EAAGyH,GAEhC,IAAIhG,EAAI,IAAI8zK,GAAG34K,EAAGgD,EAAE86B,MAAO76B,EAAE66B,OAC7B,OAAO56B,EAAEi1K,iBAAiBtzK,EAAG,CAAC7B,EAAGC,GAAIG,IAGzC,IAAM6yF,QAASsjF,GAAI9iF,SAAU+iF,GAAI7iF,SAAU8iF,GAAI5iF,WAAY6iF,GAAI3iF,UAAW4iF,GAAI1iF,QAAS2iF,GAAIziF,UAAW0iF,GAAItiF,UAAWuiF,GAAIziF,aAAc0iF,GAAItiF,aAAcuiF,GAAIriF,aAAcsiF,GAAIpiF,iBAAkBqiF,GAAIniF,YAAaoiF,GAAIliF,cAAemiF,GAAIjiF,SAAUkiF,GAAI9hF,QAAS+hF,GAAI7hF,QAAS8hF,GAAI5hF,YAAa6hF,GAAI3hF,YAAa4hF,GAAI1hF,aAAc2hF,GAAIzhF,QAAS0hF,GAAIxhF,aAAcyhF,GAAIvhF,SAAUwhF,GAAIhhF,UAAWihF,GAAI/gF,UAAWghF,GAAI9gF,YAAa+gF,GAAI3gF,cAAe4gF,GAAI3gF,UAAW4gF,GAAI9/E,iBAAkB+/E,GAAI7/E,iBAAkB8/E,GAAIx/E,QAASy/E,GAAIv/E,SAAUw/E,GAAIt/E,SAAUu/E,GAAIr/E,cAAes/E,GAAIp/E,WAAYq/E,IAAQzlL,GAC3jB0lL,GAAMtC,GAAG,CAAEC,OAAQxK,GAAE+B,IAAK1vC,cAAe+5C,KACzCU,GAAK,CAAErkJ,WAAYj2D,GAAIk2D,YAAa,SAAUuO,WAAY41I,IAC1DE,GAAMxC,GAAG,CAAEC,OAAQxK,GAAEgC,OACrBgL,GAAK,CAAEvkJ,WAAY/1D,GAAIg2D,YAAa,SAAUuO,WAAY81I,IAC1DE,GAAM1C,GAAG,CAAEC,OAAQxK,GAAEiC,QACrBiL,GAAK,CAAEzkJ,WAAY71D,GAAI81D,YAAa,SAAUuO,WAAYg2I,IAC1DE,GAAM1C,GAAG,CAAED,OAAQ3R,GAAG4F,IAAKpsC,cAAeq4C,GAAIl4C,iBAAiB,IAC/D46C,GAAK,CAAE3kJ,WAAYn1D,GAAIo1D,YAAa,SAAUuO,WAAYk2I,IAC1DE,GAAK,MACP,YAAYj8K,GACVthC,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAG,GAAIthC,KAAKmsJ,cAAgB7qH,EAAGizB,IAAI,CAAC9yB,EAAGE,IAAM,IAAIA,GAAM3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAAKx9M,KAAKmlM,UAAY,OAE7T,cACE,IAAI7jK,EAAK,GACTthC,KAAKmsJ,cAAcxyG,QAAS/X,IAC1BN,EAAGuK,KAAK,QAAQjK,UAAUA,8BAE5B,IAAIH,EAAIzhC,KAAKmsJ,cAAc53F,IAAK3yB,GAAM,IAAIA,GAAK81B,KAAK,OACpD,MAAO,WACHu3F,GAAE,2CACoBjvJ,KAAKw9M,kEACCx9M,KAAKw9M,wIAG3Bl8K,EAAGo2B,KAAK,0DAEoBj2B,+CAO1C,SAASg8K,GAAIp8K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,EAAGM,EAAIL,EACxC,GAAiB,IAAbK,EAAEzhC,OACJ,OAAOk6M,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGvJ,EAAE,IAAMzjB,QAASujB,IAC5C,IAAIG,EAAID,EAAE4yB,IAAKjwB,GAAMA,EAAEo6B,OAAO5+D,OAAO,CAACwkC,EAAGC,IAAMtG,GAAGqG,EAAGC,IAAKH,EAAIzC,EAAE4yB,IAAKjwB,GAAMA,EAAE66B,OAAQ96B,EAAI,IAAIk5K,GAAGn5K,GAChG,OAAO3C,EAAE+3K,iBAAiBn1K,EAAG1C,EAAGC,GAElC,IAAI87K,GAAK,CAAE/kJ,WAAYj1D,GAAIk1D,YAAa,SAAUuO,WAAYs2I,IAC1DE,GAAK,MACP,YAAYr8K,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,GAAI,GAC1D,IAAInkK,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAI0hC,EAAI,EAAGA,EAAID,EAAEzhC,OAAQ0hC,IAC5BD,EAAEC,GAAKN,EAAGG,EAAEG,IACd5hC,KAAK+5F,YAAcp4D,EAAG3hC,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,IAAMr+B,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC,EAAG,EAAG,IAAK9lM,KAAKmlM,UAAY,kBAE5K,cACE9mK,GAAE26B,OAAOh5D,KAAK8lM,cAAc,KAAO9lM,KAAK8lM,cAAc,GAAI,IAAM,gDAAgD9lM,KAAK8lM,cAAc,QAAQ9lM,KAAK8lM,cAAc,MAC9J,IAAIxkK,EAAKthC,KAAK8lM,cAAc,GAC5B,MAAO,kDACoC9lM,KAAK8lM,cAAc,GAAK,OAAO9lM,KAAK8lM,cAAc,eACzF72C,gDAC+B3tH,6DACAA,iSAQJA,yDACAA,mLAS/Bs8K,GAAK,MACP,YAAYt8K,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EACjG,IAAIv9B,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAI0hC,EAAI,EAAGA,EAAID,EAAEzhC,OAAQ0hC,IAC5BD,EAAEC,GAAKN,EAAGG,EAAEG,IACd5hC,KAAK+5F,YAAcp4D,EAAG3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAAKx9M,KAAK69M,OAASp8K,EAAGzhC,KAAKmlM,UAAY,aAAa1jK,EAE5N,cACE,IAAIH,EAAKokK,GAAG1lM,KAAK+5F,YAAY75F,QAASuhC,EAAIq8K,GAAG99M,KAAK69M,QAClD,MAAO,WACH5uD,GAAE,0CACmBjvJ,KAAKw9M,kEACEx9M,KAAKw9M,uLAGqBx9M,KAAK+5F,YAAY75F,2BAC/DohC,KAAMG,mEAOtB,SAASq8K,GAAGz8K,GACV,IAAIC,EAAKD,EAAEnhC,OACX,GAAIohC,EAAK,EACP,MAAM2C,MAAM,sBAAsB3C,0BACpC,IAAIG,EAAI,IAAIgzB,MAAMnzB,GAClB,IAAK,IAAIK,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IAC5BF,EAAEJ,EAAEM,IAAM,UAAUgkK,GAAGhkK,GACzB,OAAOF,EAAEi2B,OAEX,SAASqmJ,GAAG18K,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+3D,KAAMj1D,GAAMzC,EAAG0C,EAAI5C,EAAG6C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,IAAIkwB,MAAMnwB,GACvH,IAAK,IAAI4B,EAAI,EAAGA,EAAI3B,EAAErkC,OAAQgmC,IAC5B3B,EAAE2B,GAAKtE,EAAEu9B,MAAM/6B,EAAE8B,IACnB,GAAIzE,EAAEq+H,mBAAmB,CAACl+H,IAAK,CAC7B,IAAIkG,EAAIzD,EAAEknF,UAAU/pH,IAAIogC,EAAEg/B,QAAQ9hE,OAAQipC,EAAI80K,GAAG/0K,EAAGlG,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,EAAGG,GACzE,OAAO9C,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAO32B,GAEtC,GAAuB,IAAnBnG,EAAEu9B,MAAMj/D,QAAgBm+B,GAAEy6B,YAAY10B,EAAG,CAAC,EAAG,IAAK,CACpD,IAAI8B,EAAI,IAAIy3K,GAAG/7K,EAAEu9B,MAAO/6B,GACxB,OAAOC,EAAEm1K,iBAAiBtzK,EAAG,CAACtE,GAAIA,EAAE88B,OAEtC,IAAIj6B,EAAI,IAAIm5K,GAAGh8K,EAAEu9B,MAAO/6B,GACxB,OAAOC,EAAEm1K,iBAAiB/0K,EAAG,CAAC7C,GAAIA,EAAE88B,OAEtC,IAAIs/I,GAAK,CAAErlJ,WAAYz9C,GAAI09C,YAAa,SAAUuO,WAAY42I,IAC1DE,GAAK,MACP,YAAY38K,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,oBAAqBvmM,KAAKk/D,MAAO,EAAMl/D,KAAK4/E,WAAa,CAACt+C,EAAG03C,UAAW13C,EAAGmiI,QACvH,IAAK7hI,GAAKvjB,GAAE+8F,0BAA0Bp7G,KAAK4/E,WAAY,CAAC,IACxD5/E,KAAK+5F,YAA2B,IAAbn4D,EAAE1hC,OAAe,CAAC,GAAK0hC,EAAGN,EAAGmiI,QAAU,OAAS9hI,GAAK,IAAM3hC,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAKxkK,EAAGmiI,QAAU,KAAOzjK,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAK9lM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa,CAAC,EAAG,EAAG,IAAK/5F,KAAKk+M,WAAaz8K,EAAGzhC,KAAKmlM,UAAY,UAAU1jK,EAE3W,cACE,IAAIH,EAAK,GAAIG,EAAI,MAAOE,EAAI3hC,KAAK8lM,cAAc,GAC3B,QAApB9lM,KAAKk+M,YAA4C,QAApBl+M,KAAKk+M,YAAwB58K,EAAK,+HAGM,QAApBthC,KAAKk+M,WAAuB,IAAM,yDAC9Cz8K,EAAI,kBAAwC,QAApBzhC,KAAKk+M,YAA4C,SAApBl+M,KAAKk+M,WAAwB58K,EAAK,uCAA6D,SAApBthC,KAAKk+M,YAAyB58K,EAAK,uCAAwCG,EAAI,OAA6B,QAApBzhC,KAAKk+M,YAAwB58K,EAAK,2DAA4DG,EAAI,OAA6B,QAApBzhC,KAAKk+M,aAAyB58K,EAAK,2DAA4DG,EAAI,OAC3c,IAAIG,EAAwB,SAApB5hC,KAAKk+M,WAAwB,uEAAyE,4CAC9G,MAAO,+JAMwCv8K,sJAIC,IAA5B3hC,KAAK+5F,YAAY75F,OAAe,eAAiB,wFAGhE+uJ,GAAE,kDAC0BttH,+EAEVF,sGAE0BE,gHAE9BA,oEAEVL,2IAKgCK,uSAM/BL,gOAQFM,kCAMRu8K,GAAM,CAAErwL,KAAM,UAAWlR,IAAK,OAAQE,IAAK,QAC/C,SAASshM,GAAG/8K,EAAGC,EAAIG,EAAGE,EAAGC,GACvB,IAAIwC,EAAI/C,EAAE89B,MAAMj/D,OAAQmkC,EAAI,GAAIC,EAAIjG,GAAE29B,eAAe16B,EAAID,EAAE89B,OAAQ56B,EAAID,EAAGG,EAAIpmB,GAAE+9F,mBAAmB73E,EAAGH,GAAI8B,EAAI7E,EACzG,MAALoD,IAAcyB,EAAI63K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAG7J,GAAK2lC,MAAO,CAAEqyB,KAAM50D,GAAKvmB,QAAS0jB,IAAM2C,EAAIlmB,GAAE0+F,iBAAiBx4E,EAAErkC,OAAQkkC,GAAIC,EAAEwH,KAAK3F,IAAK7nB,GAAE27F,2BAA2Br4E,EAAG4C,EAAGH,GAChK,IAEIgE,GAFCN,EAAGC,GAAK1pB,GAAE+8F,0BAA0Bl1E,EAAEi5B,MAAO56B,GAAIyD,EAAIF,EAG1D,GAFArG,IAAMuG,EAAI3pB,GAAEs9F,qBAAqB7zE,EAAGxD,IAEzB,QAAN3C,GAAqB,SAANA,IAAiBC,EAAEk+H,mBAAmB,CAAC55H,IAcpD,CACL,IAAIgG,EAAI7N,GAAEi+B,cAAcv0B,GAAImD,EAAI7M,GAAEi+B,cAAcp2B,EAAEi5B,OAASjzB,EAAGO,EAAI,CAAE+2H,WAAYt3H,EAAGu3H,OAAQv3H,EAAG8sC,UAAW9tC,EAAGw4H,QAAS,GAAK32H,EAAIoxK,GAAIx8K,IAAM5G,GAAGsG,EAAEq9B,OAAQ1xB,EAAI,CAAC,CAAE+tC,KAAM,QAASn+B,KAAM,CAAC1Q,KAAOe,EAAI,IAAIgxK,GAAGxxK,EAAG9K,EAAGC,EAAEiiK,OAAOx1G,OAAOkgH,0BAA2BrhK,EAAItL,EAAE43K,iBAAiBvsK,EAAG,CAAC/G,GAAI6G,EAAGC,GACvR3I,EAAEwH,KAAKqB,GAAI9E,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGgC,GAAK85B,MAAO,CAAE7H,MAAOn3B,GAAK9pB,QAAS0jB,QAhBN,CAC9D,IAAIsK,EAAItK,EAAE2pF,UAAU/pH,IAAI0kC,EAAE06B,QAAQ9hE,OAClC,OAAQ6iC,GACN,IAAK,MACH,IAAIwK,EAAIyvK,GAAG1vK,EAAG7N,GAAEi+B,cAAcv0B,GAAIC,EAAG3G,EAAEq9B,OACvCt2B,EAAIxG,EAAEy1F,eAAervF,EAAG3G,EAAEq9B,MAAOvyB,GACjC,MACF,IAAK,OACH,IAAMo1F,QAASr2F,EAAG6uC,SAAUttC,EAAG+0F,SAAUz0F,GAAMmvK,GAAGh2K,EAAEi5B,MAAOj5B,EAAEw4B,MAAOxyB,EAAG3H,GACvE6D,EAAIxG,EAAEy1F,eAAe5qF,EAAGM,EAAG7B,GAC3B,MACF,QACE,MAAM,IAAIjH,MAAStC,EAAH,8CAMtB,OAAO0C,EAAEsV,QAASzN,GAAMtK,EAAEukC,YAAYj6B,EAAE00B,SAAUx4B,EAEpD,SAASi2K,GAAIh9K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM21C,SAAU7yC,EAAG4yC,KAAM3yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGyC,EAAGD,EAAG,MAAO3C,GAE5B,IAAI68K,GAAK,CAAE3lJ,WAAY/0D,GAAIg1D,YAAa,SAAUuO,WAAYk3I,IAC9D,SAASE,GAAIl9K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM21C,SAAU7yC,EAAG4yC,KAAM3yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGyC,EAAGD,EAAG,MAAO3C,GAE5B,IAAI+8K,GAAK,CAAE7lJ,WAAY70D,GAAI80D,YAAa,SAAUuO,WAAYo3I,IAC1DE,GAAK,MACP,YAAYn9K,EAAIG,EAAGE,GACjB3hC,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,uBAAwBvmM,KAAKk/D,MAAO,EACjH,IAAIt9B,EAAI,CAACH,GACTzhC,KAAKowB,GAAW,QAANuR,EAAc,IAAM,IAC9B,IAAKyC,EAAGC,GAAKhmB,GAAE+8F,0BAA0B95E,EAAIM,GAC7C5hC,KAAK+5F,YAA2B,IAAb31D,EAAElkC,OAAe,CAAC,GAAKkkC,EAAGpkC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc17D,GAAEi+B,cAAcj4B,GAAK,IAAMrkC,KAAK+6E,KAAO,QAAS/6E,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,iBAAmB9lM,KAAK+6E,KAAO,SAAU/6E,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa,CAAC,EAAG,EAAG,KAAM/5F,KAAK4/E,WAAat+C,EAAIthC,KAAKmlM,UAAY,aAAanlM,KAAKowB,MAAMpwB,KAAK+6E,OAE3X,cACE,IAAIz5C,EAAKthC,KAAK8lM,cAAc,GAAIrkK,EAAI,IAAiC,IAA3BzhC,KAAK4/E,WAAW1/E,OAAe,kBAAoB,mBAAmBylM,GAAG3lM,KAAK4/E,WAAW1/E,OAAS,GAAMyhC,EAAI,KACpJ,IAAIC,EAAI,GACR,GAAgC,IAA5B5hC,KAAK+5F,YAAY75F,OACQ,IAA3BF,KAAK4/E,WAAW1/E,SAAiB0hC,GAAK,sBAEtC,IAAK,IAAIwC,EAAI,EAAGA,EAAIpkC,KAAK+5F,YAAY75F,OAAQkkC,IAC3CxC,GAAK,gBAAgB+jK,GAAGvhK,MAC5B,OAAOxC,GAET,MAAqB,WAAd5hC,KAAK+6E,KAAoB,0JAMaz5C,sDACDA,sBAGxC2tH,GAAE,iDAC0B3tH,kCACPG,6QAMPH,wCACWK,yDACc3hC,KAAKowB,sRASFkR,iTAMtBthC,KAAKowB,icAczB,WACA6+H,GAAE,2KAIuBttH,yCACFF,8FAEIE,sCACP3hC,KAAKowB,kMAWjC,SAASsuL,GAAIr9K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACnK,MAALH,IAAcC,EAAIw5K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,SAAU,CAAC31E,EAAE,IAAKE,EAAE46B,MAAMj/D,QACjM,IAAIgmC,EAAI,IAAIu4K,GAAGl6K,EAAE46B,MAAO96B,EAAE,GAAI,OAAQyD,EAAI,CAAC,CAAEizC,KAAM,UAAWn+B,KAAM,CAAC4W,OAAO6qC,qBAAuBt2D,EAAItG,EAAE+3K,iBAAiBtzK,EAAG,CAAC3B,GAAI,QAASuD,GAC3I,OAAOrD,EAAEkV,QAAS3R,GAAMvG,EAAE0kC,YAAYn+B,EAAE44B,SAAU74B,EAEpD,IAAI42K,GAAK,CAAEhmJ,WAAY30D,GAAI40D,YAAa,SAAUuO,WAAYu3I,IAC9D,SAASE,GAAIv9K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAAG0C,EAAIhG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQ76B,EAAIjmB,GAAE+9F,mBAAmB/3E,EAAGzC,EAAEu9B,MAAMj/D,QAASqkC,EAAI3C,EAAG6C,EAAI,GACnK,MAALH,IAAcC,EAAIw5K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,KAAQG,EAAEoH,KAAKtH,GAAIF,EAAIhmB,GAAE0+F,iBAAiB14E,EAAEnkC,OAAQqkC,EAAE46B,MAAMj/D,SAAUme,GAAE27F,2BAA2B,SAAU,CAAC31E,EAAE,IAAKE,EAAE46B,MAAMj/D,QACjM,IAAIgmC,EAAI,IAAIu4K,GAAGl6K,EAAE46B,MAAO96B,EAAE,GAAI,OAAQyD,EAAI,CAAC,CAAEizC,KAAM,UAAWn+B,KAAM,CAAC4W,OAAOu+D,qBAAuBhqF,EAAItG,EAAE+3K,iBAAiBtzK,EAAG,CAAC3B,GAAI,QAASuD,GAC3I,OAAOrD,EAAEkV,QAAS3R,GAAMvG,EAAE0kC,YAAYn+B,EAAE44B,SAAU74B,EAEpD,IAAI82K,GAAK,CAAElmJ,WAAYz0D,GAAI00D,YAAa,SAAUuO,WAAYy3I,IAC1DE,GAAMrE,GAAG,CAAEC,OAAQxK,GAAEkC,OACrB2M,GAAK,CAAEpmJ,WAAYv0D,GAAIw0D,YAAa,SAAUuO,WAAY23I,IAC1DE,GAAMvE,GAAG,CAAEC,OAAQxK,GAAEmC,QACrB4M,GAAK,CAAEtmJ,WAAYr0D,GAAIs0D,YAAa,SAAUuO,WAAY63I,IAC1DE,GAAMzE,GAAG,CAAEC,OAAQxK,GAAEoC,OACrB6M,GAAK,CAAExmJ,WAAYn0D,GAAIo0D,YAAa,SAAUuO,WAAY+3I,IAC1DE,GAAMzE,GAAG,CAAED,OAAQ3R,GAAG6F,QACtByQ,GAAK,CAAE1mJ,WAAYj0D,GAAIk0D,YAAa,SAAUuO,WAAYi4I,IAC1DE,GAAM7E,GAAG,CAAEC,OAAQxK,GAAEqC,QACrBgN,GAAK,CAAE5mJ,WAAY/zD,GAAIg0D,YAAa,SAAUuO,WAAYm4I,IAC1DE,GAAK,MACP,YAAYl+K,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,uBAAwBvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,8BAEpS,cACE,MAAO,WACHl2C,GAAE,mbAiBNwwD,GAAK,MACP,YAAYn+K,EAAIG,EAAGE,GAAI,EAAOC,GAAI,EAAOwC,GAAI,GAC3C,GAAIpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,8GAA+GvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAY,QAANz9B,GAAeE,EAChO,MAAM,IAAIsC,MAAM,8CAClBjkC,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK0/M,SAAWj+K,EAAGzhC,KAAK2/M,iBAAmBh+K,EAAG3hC,KAAK4/M,iBAAmBh+K,EAAG5hC,KAAK6/M,kBAAoBz7K,EAAGpkC,KAAKmlM,UAAY,UAAU1jK,KAAKE,KAAKC,KAAKwC,IAE1S,cACE,IAAI9C,EACsBA,EAAR,QAAlBthC,KAAK0/M,SAA0B,0DAA4D1/M,KAAK2/M,iBAAwB,+KAIpG3/M,KAAK4/M,iBAAmB5/M,KAAK6/M,kBAAoB,yFAA2F,0DAA4D,8CAChN,yCACZ,IAAIp+K,EAAI,cACR,MAAyB,QAAlBzhC,KAAK0/M,WAAuBj+K,EAAI,iCAAkC,WACrEwtH,GAAE,kVASEjvJ,KAAK2/M,iBAAmB,8FAEA,qBAAuC,QAAlB3/M,KAAK0/M,SAAqB,MAAQ,8kBAiB3Ep+K,8CAIJthC,KAAK2/M,iBAAmB,2CAA6C,2BAA2Bl+K,oCAMxGq+K,GAAK,MACP,YAAYx+K,EAAIG,EAAGE,GAAI,EAAOC,GAAI,EAAOwC,GAAI,GAC3C,GAAIpkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,uFAAwFvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAY,QAANz9B,GAAeE,EACzM,MAAM,IAAIsC,MAAM,8CAClBjkC,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK0/M,SAAWj+K,EAAGzhC,KAAK2/M,iBAAmBh+K,EAAG3hC,KAAK4/M,iBAAmBh+K,EAAG5hC,KAAK6/M,kBAAoBz7K,EAAGpkC,KAAKmlM,UAAY,UAAU1jK,KAAKE,KAAKC,KAAKwC,IAE1S,cACE,IAAI9C,EACsBA,EAAR,QAAlBthC,KAAK0/M,SAA0B,sCAAwC1/M,KAAK2/M,iBAAwB,+KAIhF3/M,KAAK4/M,iBAAmB5/M,KAAK6/M,kBAAoB,kHAAoH,oFAAsF,mGACnQ,yCACZ,IAAIp+K,EAAI,cACR,MAAyB,QAAlBzhC,KAAK0/M,WAAuBj+K,EAAI,iCAAkC,WACrEwtH,GAAE,yYAWEjvJ,KAAK2/M,iBAAmB,8FAEA,qBAAuC,QAAlB3/M,KAAK0/M,SAAqB,MAAQ,4vBAsBzEp+K,+DAKNthC,KAAK2/M,iBAAmB,2CAA6C,2BAA2Bl+K,oCAM5G,SAASs+K,GAAG1+K,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2iD,iBAAkB7/C,EAAG6yC,SAAU5yC,GAAM1C,EACpG,OAAOy8K,GAAGx8K,EAAGwC,EAAGC,EAAG,MAAO5C,GAE5B,IAAIu+K,GAAK,CAAErnJ,WAAY7oD,GAAI8oD,YAAa,SAAUuO,WAAY44I,IAC9D,SAASE,GAAG5+K,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM21C,SAAU7yC,EAAG4yC,KAAM3yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGyC,EAAGD,EAAG,OAAQ3C,GAE7B,IAAIy+K,GAAK,CAAEvnJ,WAAY/nD,GAAIgoD,YAAa,SAAUuO,WAAY84I,IAC9D,SAASE,GAAG9+K,EAAGC,EAAIG,EAAGE,GACpB,GAAuB,IAAnBL,EAAGm4C,aAAyC,IAApBn4C,EAAGk4C,cAAsBn7C,GAAEy6B,YAAYx3B,EAAGw4C,QAASx4C,EAAGy4C,UAChF,OAAOqgI,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASyjB,IACzC,GAAIL,EAAGm4C,cAAgBn4C,EAAG63C,SAAW73C,EAAGk4C,eAAiBl4C,EAAG43C,UAA6B,IAAjB53C,EAAG03C,WAAuC,UAApB13C,EAAGs3C,QAAQmC,KAAkB,CACzH,IAAuIx2C,EAAnIF,EAAIhD,EAAE89B,MAAMj/D,OAAQokC,EAAIo1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC99B,EAAE89B,MAAM96B,EAAI,GAAKhD,EAAE89B,MAAM96B,EAAI,GAAIhD,EAAE89B,MAAM96B,EAAI,OACvH,QAAN5C,EAAc8C,EAAI07K,GAAG,CAAErhJ,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASyjB,EAAGqlC,MAAO,CAAEgQ,KAAM,EAAGC,UAAU,MAAc54C,GAAE26B,OAAa,QAANv3B,EAAa,IAAM,qBAAqBA,GAAM8C,EAAIw7K,GAAG,CAAEnhJ,OAAQ,CAAE1zB,EAAG5G,GAAKpmB,QAASyjB,EAAGqlC,MAAO,CAAEid,iBAAkB,EAAGhN,UAAU,MACrO,IAAIxyC,EAAIi1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO79B,EAAGy4C,YAC9D,OAAOp4C,EAAEwkC,YAAY7hC,EAAEs8B,QAASj/B,EAAEwkC,YAAY5hC,EAAEq8B,QAASn8B,EAE3D,IAAI7C,EAAGwC,EAAI,CAAC,CAAE22C,KAAM,QAASn+B,KAAM,CAACtb,EAAGg4C,aAAch4C,EAAGi4C,eACxD,OAA2B,IAApBj4C,EAAGk4C,cAAyC,IAAnBl4C,EAAGm4C,YAAoB73C,EAAI,IAAI49K,GAAGl+K,IAAa,QAANG,EAAcG,EAAI,IAAI69K,GAAGn+K,EAAI,QAAUjD,GAAE26B,OAAa,QAANv3B,EAAa,IAAM,qBAAqBA,GAAMG,EAAI,IAAI69K,GAAGn+K,EAAI,QAAS8C,EAAEyH,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAACtb,EAAGs3C,QAAQgC,IAAKt5C,EAAGs3C,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAACtb,EAAGs4C,eAAgBt4C,EAAGu4C,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAACtb,EAAG43C,SAAU53C,EAAG63C,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAACtb,EAAGo4C,sBAAuBp4C,EAAGq4C,yBAA2Bh4C,EAAE63K,iBAAiB53K,EAAG,CAACP,GAAIA,EAAEq9B,MAAOt6B,GAE5e,SAASg8K,GAAI/+K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EAAGyB,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GAChL,OAAO47K,GAAGv+K,EAAGsE,EAAG,MAAOzE,GAEzB,IAAI4+K,GAAK,CAAE1nJ,WAAY7zD,GAAI8zD,YAAa,SAAUuO,WAAYi5I,IAC9D,SAASE,GAAIj/K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI,CAAC,EAAG,EAAG,GAAI4B,EAAIzpB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG6B,EAAG5B,EAAGG,EAAGF,GAAIwD,EAAI,IAAI+3K,GAAGh4K,EAAG,OAAQE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEsyC,YAAatyC,EAAEwxC,aAAcxxC,EAAEyxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE8wC,QAAQoC,MAAOlzC,EAAE8wC,QAAQgC,IAAK9yC,EAAE8wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC9U,EAAEqyC,QAASryC,EAAEoxC,SAAUpxC,EAAEqxC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwyC,qBAAsBxyC,EAAE4xC,sBAAuB5xC,EAAE6xC,wBACrgB,OAAOl4C,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,GAAIA,EAAE88B,MAAO12B,GAE7C,IAAIu4K,GAAK,CAAE5nJ,WAAY3zD,GAAI4zD,YAAa,SAAUuO,WAAYm5I,IAC1DE,GAAK,MACP,YAAYl/K,GACVthC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAKumM,SAAW,sJACcvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,oBAEzR,cACE,MAAO,WACHl2C,GAAE,qzCAwCNwxD,GAAK,MACP,YAAYn/K,GACVthC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAKumM,SAAW,+IAC8BvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,oBAEzS,cACE,MAAO,WACHl2C,GAAE,4oDAkDV,SAASyxD,GAAIr/K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,GAAKs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAIzpB,GAAEi9F,kBAAkBj3E,EAAE86B,MAAO76B,EAAGC,EAAG,EAAGE,EAAGyB,GAAI6B,EAAI,IAAI04K,GAAG34K,GAAIE,EAAI,GAAKF,EAAEuyC,YAAcvyC,EAAE0xC,aAAe1xC,EAAE2xC,aAAcrxC,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEsyC,YAAatyC,EAAEwxC,aAAcxxC,EAAEyxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwyC,qBAAuB,EAAIxyC,EAAE8wC,QAAQoC,MAAOlzC,EAAE4xC,sBAAwB,EAAI5xC,EAAE8wC,QAAQgC,IAAK9yC,EAAE6xC,qBAAuB,EAAI7xC,EAAE8wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwyC,qBAAsBxyC,EAAE4xC,sBAAuB5xC,EAAE6xC,uBAAyB,CAAEoB,KAAM,QAASn+B,KAAM,CAAC9U,EAAEmyC,WAAa,CAAEc,KAAM,QAASn+B,KAAM,CAAC9U,EAAE+wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEgxC,WAAa,CAAEiC,KAAM,UAAWn+B,KAAM,CAAC5U,KAC7uB,OAAOvG,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,GAAIyC,EAAEq6B,MAAOt2B,GAE7C,IAAIu4K,GAAK,CAAEhoJ,WAAYzzD,GAAI0zD,YAAa,SAAUuO,WAAYu5I,IAC9D,SAASE,GAAIv/K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,EAC5EqjK,GAAG,CAAC7lK,EAAGwC,GAAI,eACX,IAAMs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,GAAM9C,EAAGuE,EAAI7nB,GAAEg9F,kBAAkBh3E,EAAE86B,MAAO76B,EAAGC,EAAG,EAAGE,GAAIqD,EAAI,IAAI04K,GAAGt6K,GAAI6B,EAAI,GAAK7B,EAAEszC,aAAetzC,EAAEuzC,aAAczxC,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC1W,EAAEozC,aAAcpzC,EAAEqzC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC1W,EAAEwzC,sBAAwB,EAAIxzC,EAAE0yC,QAAQgC,IAAK10C,EAAEyzC,qBAAuB,EAAIzzC,EAAE0yC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0zC,eAAgB1zC,EAAE2zC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAAC1W,EAAEwzC,sBAAuBxzC,EAAEyzC,uBAAyB,CAAEoB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE2yC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC1W,EAAE4yC,WAAa,CAAEiC,KAAM,UAAWn+B,KAAM,CAAC7U,KAC7jB,OAAOtG,EAAE+3K,iBAAiB1xK,EAAG,CAAClG,GAAIyC,EAAEq6B,MAAO12B,GAE7C,IAAI64K,GAAK,CAAEloJ,WAAYvzD,GAAIwzD,YAAa,SAAUuO,WAAYy5I,IAC9D,SAASE,GAAIz/K,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgD,EAAGzC,EAAG6K,EAAGrI,GAAM9C,GAAM46C,WAAY73C,EAAG83C,WAAY73C,GAAM3C,EACtG,OAAOi4K,GAAG,CAAEv1K,EAAGzC,EAAG6K,EAAGrI,EAAG83C,WAAY73C,EAAG83C,WAAY73C,EAAGpmB,QAASujB,IAEjE,IAAIs/K,GAAK,CAAEpoJ,WAAYnzD,GAAIozD,YAAa,SAAUuO,WAAY25I,IAC1DE,GAAK,MACP,YAAY1/K,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,UAAWnsJ,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAGzhC,KAAKi/D,KAAOx9B,EAAEvhC,OAAQF,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAAKx9M,KAAK6rE,MAAQvqC,EAAIthC,KAAKumM,SAAW,WAAWb,GAAGpkK,EAAGphC,YAAaF,KAAKmlM,UAAY,QAE/X,cACE,IAA4CxjK,EAAxCL,EAAKokK,GAAG1lM,KAAKi/D,MAAOx9B,EAAIw/K,GAAIjhN,KAAKi/D,MACrC,OAAiCt9B,EAAJ,IAAtB3hC,KAAK6rE,MAAM3rE,OAAmBF,KAAK+5F,YAAYxlC,IAAI,CAACnwB,EAAGC,IAAM,wCAA8CrkC,KAAK+5F,YAAYxlC,IAAI,CAACnwB,EAAGC,IAAM,aAAa68K,GAAG78K,uBAAuBshK,GAAGthK,eAAe68K,GAAG78K,OAAQ,WACjN4qH,GAAE,+EAEkB3tH,oEAEhBK,EAAE+1B,KAAK,sDAE2Bj2B,mCAM1Cy/K,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KACnC,SAASD,GAAI5/K,GACX,GAAU,IAANA,EACF,MAAO,YACT,GAAIA,GAAK,EACP,OAAO6/K,GAAGlpL,MAAM,EAAGqJ,GAAGkzB,IAAKjzB,GAAO,aAAaA,GAAMo2B,KAAK,KAC5D,MAAMzzB,MAAM,oBAAoB5C,0BAElC,SAAS8/K,GAAG9/K,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG86B,KAAM76B,GAAM1C,GAAI2C,EAAGC,GAAK5L,GAAG88E,iBAAiB7zE,EAAGwC,EAAGC,GAC3H,GAAI1L,GAAGk8E,kBAAkBjzE,EAAG0C,EAAGC,GAAI9C,EAAEq+H,mBAAmB,CAACl+H,KAAmB,WAAZA,EAAE88B,MAAoB,CACpF,IAAI52B,EAAIrG,EAAE8pF,UAAU/pH,IAAIogC,EAAEg/B,QAAS74B,EAAIw0K,GAAGz0K,EAAEhpC,OAAQwlC,EAAGC,EAAG3C,EAAEu9B,MAAOv9B,EAAE88B,OACrE,OAAOj9B,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAO32B,GAEtC,GAA2B,IAAvB1J,GAAEi+B,cAAc/3B,GAClB,OAAO9C,EAAE41F,eAAe9yF,EAAG3C,EAAE88B,MAAO,IACtC,IAAIj6B,EAAI,IAAIu8K,GAAG18K,EAAGC,GAAI2B,EAAI,CAAC,CAAE60C,KAAM,QAASn+B,KAAMtY,IAClD,OAAO7C,EAAE+3K,iBAAiB/0K,EAAG,CAAC7C,GAAIA,EAAE88B,MAAOx4B,GAE7C,IAAIk7K,GAAK,CAAEzoJ,WAAYnhD,GAAIohD,YAAa,SAAUuO,WAAYg6I,IAC1DE,GAAOhgL,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAG44C,MAAO34C,GAAM1C,EAC3FtD,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yEACpC,IAAIokC,EAAIF,EAAEtkC,OAAO,CAAC2sC,EAAGM,IAAMN,EAAIM,GAAIxI,EAAIlmB,GAAE8+F,YAAYv7E,EAAEu9B,MAAO/6B,EAAGE,GAAIG,EAAIpmB,GAAE2+F,YAAYz4E,EAAErkC,OAAQkkC,EAAElkC,QAASgmC,EAAI7nB,GAAEg/F,oBAAoBz7E,EAAEu9B,MAAO/6B,EAAGE,GAAIwD,EAAIzpB,GAAEm/F,oBAAoBn5E,EAAGD,EAAElkC,QAAS6nC,EAAI1pB,GAAEq/F,aAAax3E,EAAG7B,EAAGD,EAAElkC,QAAS8nC,EAAI,GAAII,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQ2H,EAAI6xK,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM50D,KAAQ0H,EAAIutK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,KAAQgF,EAAIi2K,GAAG,CAAEviJ,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO10C,EAAGo3B,KAAMn3B,KACte,OAAOC,EAAE6D,KAAKzD,GAAIJ,EAAE6D,KAAKK,GAAIlE,EAAE6D,KAAKM,GAAInE,EAAE2R,QAASlN,GAAMhL,EAAE0kC,YAAY15B,EAAEm0B,SAAU11B,GAEjFo2K,GAAK,CAAE3oJ,WAAYjzD,GAAIkzD,YAAa,SAAUuO,WAAYk6I,IAC1DE,GAAM,wDAEJ5c,GAAG,iBAAkB,QAAS,oBAGhC6c,GAAM,gHAKNC,GAAK,MACP,YAAYngL,EAAIG,EAAGE,GAAI,GACrB3hC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,sBAAuBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK0hN,YAAa,EAAM1hN,KAAKkhF,cAAe,EAAOlhF,KAAK+5F,YAAcz4D,EAAIthC,KAAKi/D,KAAO39B,EAAGphC,OAAQF,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKkhF,aAAev/C,EAAGA,IAAM3hC,KAAKymM,QAAS,GAAQzmM,KAAK0hN,WAAajgL,EAAGzhC,KAAK0hN,YAAc1hN,KAAKmsJ,cAActgH,KAAK,KAAM7rC,KAAKmlM,UAAY,YAAYnlM,KAAK0hN,cAAc1hN,KAAKkhF,gBAAgBlhF,KAAKi/D,OAE9iB,cACE,MAAO,SACLj/D,KAAKkhF,aAAesgI,GAAMD,SAC5BtyD,GAAE,mBACc,IAAdjvJ,KAAKi/D,KAAa,8IAGFj/D,KAAKkhF,aAAe,EAAIlhF,KAAK0hN,WAAa,cAAgB,kEAGvE,wNAIa1hN,KAAKkhF,aAAe,EAAIlhF,KAAK0hN,WAAa,2BAA6B,iHAQ7F,SAASC,GAAItgL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,GAAM1C,EAAG2C,EAAIjG,GAAEi+B,cAAc16B,EAAEu9B,OAAQ16B,EAAIpG,GAAEi+B,cAAcl4B,EAAE+6B,OAAS,EAAGj5B,EAAI,CAAC7B,GAAIyD,EAAI1D,EAAEs6B,MAAO32B,EAAIwxK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,EAAGjlC,MAAO,EAAGy9D,MAAO52B,KAAQE,EAAI,IAAIy5K,GAAG,CAACn9K,GAAIG,GAAI2D,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAACvY,KAAO6H,EAAIzH,EAAI,CAAC7C,EAAGwC,GAAK,CAACxC,GAC3T,OAAOH,EAAE+3K,iBAAiBxxK,EAAGkE,EAAGpE,EAAGM,EAAGL,GAExC,IAAI65K,GAAK,CAAEjpJ,WAAY/yD,GAAIgzD,YAAa,SAAUuO,WAAYw6I,IAC1DE,GAAK,MACP,YAAYvgL,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAM,MAAOnsJ,KAAKumM,SAAW,+BAAgCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,GAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,gBAElU,cACE,MAAO,OACPl2C,GAAE,6nBA2BN,SAAS6yD,GAAIzgL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgJ,GAAI1I,EAAG2I,GAAI1I,GAAMN,EACvD,GAAIG,EAAEq+H,mBAAmB,CAACn+H,EAAGC,IAAK,CAChC,IAAIsE,EAAIzE,EAAE8pF,UAAU/pH,IAAImgC,EAAEi/B,QAAS94B,EAAIrG,EAAE8pF,UAAU/pH,IAAIogC,EAAEg/B,QAAS74B,EAAI7B,EAAEpnC,OAAQkpC,EAAIF,EAAEhpC,OAAQspC,EAAI/pB,GAAE4jE,2BAA2BxtB,MAAMwB,KAAKluB,GAAI0sB,MAAMwB,KAAKjuB,IACzJ,OAAOvG,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,QAAS01C,WAAWqgB,KAAK7tB,IAE/D,IAAIhE,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIhG,GAAEi+B,cAAc16B,EAAEu9B,OAAQ76B,EAAIP,KAAK3W,IAAIgX,EAAGC,GAAIE,EAAI,IAAIs9K,GAAGv9K,GAAIG,EAAI,CAAC,CAAEs2C,KAAM,QAASn+B,KAAM,CAACxY,IAAM,CAAE22C,KAAM,QAASn+B,KAAM,CAACvY,KAC9J,OAAO5C,EAAE+3K,iBAAiBj1K,EAAG,CAAC5C,EAAGC,GAAI,QAAS6C,GAEhD,IAAIs9K,GAAK,CAAEppJ,WAAY3yD,GAAI4yD,YAAa,SAAUuO,WAAY26I,IAC1DE,GAAKrH,GAAG,CAAED,OAAQ3R,GAAG8G,UAAWnxI,MAAO,OAAQ6jG,cAAe05C,KAC9DgG,GAAK,CAAEtpJ,WAAYvmD,GAAIwmD,YAAa,SAAUuO,WAAY66I,IAC9D,SAASE,GAAG7gL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAE8pF,UAAU/pH,IAAImgC,EAAEi/B,QAC7E,OAAOw5I,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,EAAEw1F,mBAAmBhkG,MAAQlV,QAASujB,IAEjE,IAAI0gL,GAAK,CAAExpJ,WAAYnkD,GAAIokD,YAAa,SAAUuO,WAAY+6I,IAC9D,SAASE,GAAG/gL,EAAGC,GACb,IAAIG,EAAI,IAAI+4K,GAAGn5K,EAAE89B,MAAO+wI,GAAEuE,QAAS9yK,EAAIL,EAAGk4K,iBAAiB/3K,EAAG,CAACJ,GAAI,SACnE,MAAO,CAAEu/B,OAAQj/B,EAAEi/B,OAAQzB,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,OAEtD,SAAS2jJ,GAAGhhL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9B,MAAOt6B,GAAMzC,EAC5E,GAAU,cAANyC,EAAmB,CACrB,GAAgB,cAAZxC,EAAE88B,MACJ,OAAO07I,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI4C,EAAIhE,GAAGuB,EAAEu9B,OAAQ76B,EAAI+9K,GAAG,CAAEzjJ,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAO,aAAgBn6B,EAAI+1K,GAAG,CAAE17I,OAAQ,CAAExrC,KAAMkR,EAAGhb,KAAM+a,GAAKnmB,QAASujB,IAC5I,OAAO4C,EAAErgB,UAAWyd,EAAE0kC,YAAY7hC,EAAEs8B,QAASr8B,EAE/C,GAAgB,cAAZ3C,EAAE88B,MAAuB,CAC3B,IAAIr6B,EAAI69K,GAAG,CAAEtjJ,OAAQ,CAAEymB,MAAOzjD,GAAK1jB,QAASujB,IAAM6C,EAAI+9K,GAAG,CAAEzjJ,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAEtI,MAAOt6B,KACzG,OAAO3C,EAAE0kC,YAAY9hC,EAAEu8B,QAASt8B,EAElC,IAAKjG,GAAEo8B,gBAAgB74B,EAAE88B,MAAOt6B,GAAI,CAClC,IAAIC,EAAI+1K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACxC,MAAO,CAAEm/B,OAAQv8B,EAAEu8B,OAAQzB,MAAO96B,EAAE86B,MAAOT,MAAOt6B,GAEpD,GAAI3C,EAAEq+H,mBAAmB,CAACl+H,IAAK,CAC7B,IAAIyC,EAAI5C,EAAE8pF,UAAU/pH,IAAIogC,EAAEg/B,QAAQ9hE,QAASwlC,EAAGC,EAAGE,GAAKo2K,GAAGx2K,EAAGzC,EAAEu9B,MAAOv9B,EAAE88B,MAAOt6B,GAC9E,OAAO3C,EAAE41F,eAAe/yF,EAAGC,EAAGE,GAEhC,GAAU,UAANL,EACF,OAAOg+K,GAAGxgL,EAAGH,GACf,GAAU,SAAN2C,EAAc,CAChB,IAAIC,EAAI5C,EAAE41F,eAAe,GAAI,OAAQh5F,GAAEm8B,uBAAuB,OAAQ,IAAKj2B,EAAIy9K,GAAG,CAAEpjJ,OAAQ,CAAEv6B,EAAGzC,EAAG6K,EAAGpI,GAAKnmB,QAASujB,IACrH,OAAOA,EAAE0kC,YAAY9hC,EAAEu8B,QAASr8B,EAElC,MAAM,IAAIN,MAAM,iCAAiCrC,EAAE88B,YAAYt6B,KAEjE,IAAIk+K,GAAK,CAAE3pJ,WAAYvyD,GAAIwyD,YAAa,SAAUuO,WAAYk7I,IAC1DE,GAAM9H,GAAG,CAAEC,OAAQxK,GAAEsC,KAAMjwC,cAAeu4C,KAC1C0H,GAAK,CAAE7pJ,WAAYryD,GAAIsyD,YAAa,SAAUuO,WAAYo7I,IAC1DE,GAAK,MACP,YAAYnhL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,8BAA+BvmM,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAK+lM,gBAAkB,EAAG/lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAAKx9M,KAAKmlM,UAAY,WAE/W,cACE,MAAO,WACHl2C,GAAE,8WAYNyzD,GAAK,MACP,YAAYphL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,8BAA+BvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,OAEjS,cACE,MAAO,WACHl2C,GAAE,iUAaV,SAAS0zD,GAAIthL,GACX,IAAuGiD,GAAjGs6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo9C,aAAct6C,EAAGu6C,aAAct6C,GAAM1C,EAAM4C,EAAI,CAAC,CAAEw2C,KAAM,UAAWn+B,KAAM,CAACxY,IAAM,CAAE22C,KAAM,UAAWn+B,KAAM,CAACvY,KACzK,OAA4CC,EAArCjG,GAAEi+B,cAAc16B,EAAEu9B,OAAS,IAAM,EAAQ,IAAIsjJ,GAAG7gL,EAAEu9B,OAAa,IAAIujJ,GAAG9gL,EAAEu9B,OAAQ19B,EAAE+3K,iBAAiBl1K,EAAG,CAAC1C,GAAIA,EAAE88B,MAAOn6B,GAE7H,IAAIq+K,GAAK,CAAEjqJ,WAAYnyD,GAAIoyD,YAAa,SAAUuO,WAAYw7I,IAC1DE,GAAK,MACP,YAAYvhL,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,OAAQ,QAASnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,aAEpR,cACE,MAAO,SACLl2C,GAAE,kdAcR,SAAS6zD,GAAGzhL,EAAGC,GACb,MAAO,CAAEs/B,OAAQt/B,EAAGs/B,OAAQlC,MAAOp9B,EAAGo9B,MAAOS,MAAO99B,EAAE89B,OAExD,SAAS4jJ,GAAI1hL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAIH,EAAE8pF,UAAU/pH,IAAImgC,EAAEi/B,QAASx8B,EAAI,IAAIy+K,GAAGlhL,EAAEw9B,OAAQ96B,EAAI,CAACy+K,GAAGnhL,EAAGC,EAAEw1F,mBAAmBhkG,MAAO0vL,GAAGnhL,EAAGC,EAAEw1F,mBAAmB9tG,OACzK,OAAOmY,EAAE+3K,iBAAiBp1K,EAAGC,EAAGA,EAAE,GAAGq6B,OAEvC,IAAIskJ,GAAK,CAAErqJ,WAAY/xD,GAAIgyD,YAAa,SAAUuO,WAAY47I,IAC1DE,GAAK,MACP,YAAY3hL,GACVthC,KAAKumM,SAAW,GAAIvmM,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc17E,GAAE42F,gBAAgB3zE,EAAI,GAAIthC,KAAKmsJ,cAAgB7qH,EAAGizB,IAAI,CAAC9yB,EAAGE,IAAM,IAAIA,GAAM3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAAKx9M,KAAKkjN,aAAe5hL,EAAGphC,OAAS,EACjX,IAAK,IAAIuhC,EAAI,EAAGA,EAAIzhC,KAAKkjN,aAAczhL,IACrCzhC,KAAKumM,UAAY,SAAS9kK,WAC5BzhC,KAAKmlM,UAAY,SAEnB,cACE,IAAI7jK,EAAK,GACT,GAAIthC,KAAKkjN,aAAe,EAAG,CACzB5hL,EAAGuK,KAAK,uFACR,IAAK,IAAIzH,EAAI,EAAGA,EAAIpkC,KAAKkjN,aAAc9+K,IACrC9C,EAAGuK,KAAK,gCAAgC,CAACzH,kDAAkDA,6BAA6BA,EAAI,UAC9H,IAAIzC,EAAI3hC,KAAKkjN,aAActhL,EAAI5hC,KAAKkjN,aAAe,EACnD5hL,EAAGuK,KAAK,oDAAoDlK,6BAA6BC,eAEzFN,EAAGuK,KAAK,yDACV,MAAO,WACHojH,GAAE,0CACmBjvJ,KAAKw9M,kEACEx9M,KAAKw9M,yMAM3Bl8K,EAAGo2B,KAAK,yDAQtB,SAASyrJ,GAAG9hL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EAAIM,EAAIH,EAAE8pF,UAAU/pH,IAAImgC,EAAEi/B,QAC7E,OAAOw5I,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,EAAEw1F,mBAAmB9tG,MAAQpL,QAASujB,IAEjE,IAAI2hL,GAAK,CAAEzqJ,WAAYzrD,GAAI0rD,YAAa,SAAUuO,WAAYg8I,IAC9D,SAASE,GAAGhiL,EAAGC,EAAIG,GACjB,IAAIE,EAAIN,EAAE,GAAGq9B,MACb,GAAU,cAAN/8B,EAAmB,CACrB,IAAIyG,EAAI/G,EAAEkzB,IAAKxnB,GAAMm1K,GAAG,CAAEtjJ,OAAQ,CAAEymB,MAAOt4C,GAAK7uB,QAASujB,KAAOyK,EAAI7K,EAAEkzB,IAAKxnB,GAAMo2K,GAAG,CAAEvkJ,OAAQ,CAAEymB,MAAOt4C,GAAK7uB,QAASujB,KAAO0K,EAAIk3K,GAAGj7K,EAAG9G,EAAIG,GAAIyJ,EAAIm4K,GAAGn3K,EAAG5K,EAAIG,GAAIgL,EAAI6tK,GAAG,CAAE17I,OAAQ,CAAExrC,KAAM+Y,EAAG7iB,KAAM4hB,GAAKhtB,QAASujB,IAChN,OAAO2G,EAAEuR,QAAS5M,GAAMtL,EAAE0kC,YAAYp5B,EAAE6zB,SAAU10B,EAAEyN,QAAS5M,GAAMtL,EAAE0kC,YAAYp5B,EAAE6zB,SAAUn/B,EAAE0kC,YAAYh6B,EAAEy0B,QAASn/B,EAAE0kC,YAAYj7B,EAAE01B,QAASn0B,EAEjJ,IAAI7K,EAAIH,EAAEq+H,mBAAmBz+H,GAC7B,GAAU,WAANM,IAAmBC,GAAI,GAAOA,EAAG,CACnC,IAAIwG,EAAI/G,EAAEkzB,IAAKtnB,IACb,IAAIG,EAAI,EAAE,EAAG/O,GAAEi+B,cAAcrvB,EAAEkyB,MAAMnnC,MAAMsJ,KAC3C,OAAOo4K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG+B,GAAK/uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/xB,OACxDlB,EAAI9D,EAAEmsB,IAAKtnB,IAAM,CAAGoyF,KAAM59F,EAAEw/B,SAASh0B,EAAE2zB,QAASzB,MAAOlyB,EAAEkyB,SAAWhzB,EAAI9tB,GAAE42F,gBAAgB7sE,EAAEmsB,IAAKtnB,GAAMA,EAAEkyB,OAAQ,GAAIj0B,EAAsB,IAAlB9C,EAAE,GAAG+2B,MAAM,GAAU1yB,EAAIsuK,GAAG7uK,EAAGC,EAAGxK,EAAGuJ,GAAI6B,EAAI1uB,GAAE42F,gBAAgB5zE,EAAEkzB,IAAKtnB,GAAMA,EAAEkyB,OAAQ79B,GAAK0L,EAAIvL,EAAE41F,eAAetqF,EAAGpL,EAAG8K,GACnP,OAAOrE,EAAEuR,QAAS1M,GAAMxL,EAAE0kC,YAAYl5B,EAAE2zB,SAAU5zB,EAEpD,IAAI5I,EAAI3C,EAAEoiK,OAAOx1G,OAAOi1H,gCAAkC,EAC1D,GAAIjiL,EAAEnhC,OAASkkC,EAAG,CAChB,IAAIgE,EAAI,GACR,IAAK,IAAI+D,EAAI,EAAGA,EAAI9K,EAAEnhC,OAAQisC,GAAK/H,EAAG,CACpC,IAAI8G,EAAI7J,EAAErJ,MAAMmU,EAAGA,EAAI/H,GACvBgE,EAAEyD,KAAKw3K,GAAGn4K,EAAG5J,EAAIG,IAEnB,IAAIyK,EAAIm3K,GAAGj7K,EAAG9G,EAAIG,GAClB,IAAK,IAAI0K,KAAK/D,EACZ3G,EAAE0kC,YAAYh6B,EAAEy0B,QAClB,OAAO10B,EAET,IAAMo/H,UAAWjnI,EAAG01C,SAAUz1C,GAAMi/K,GAAIliL,EAAGC,EAAIG,GAAI8C,EAAIF,EAAEkwB,IAAKnsB,GAAMA,EAAE+2B,OAAQ16B,EAAI,IAAIw+K,GAAG1+K,GAAI2B,EAAI,GAAI4B,EAAI,IAAI2sB,MAAMlwB,EAAErkC,OAAS,GAC9H,GAAI4nC,EAAE5nC,OAAS,EAAG,CAChB4nC,EAAE,GAAKvD,EAAE,GAAG,GAAI2B,EAAE2F,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC9U,EAAE,MACjD,IAAK,IAAIM,EAAI,EAAGA,EAAIN,EAAE5nC,OAAQkoC,IAC5BN,EAAEM,GAAKN,EAAEM,EAAI,GAAK7D,EAAE6D,GAAG,GAAIlC,EAAE2F,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEM,MAEhE,IAAIL,EAAItG,EAAE+3K,iBAAiB/0K,EAAGJ,EAAGA,EAAE,GAAGq6B,MAAOx4B,GAC7C7B,EAAEsV,QAASvR,GAAM3G,EAAE0kC,YAAY/9B,EAAEw4B,SACjC,IAAI54B,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO76B,KAC3D,OAAO7C,EAAE0kC,YAAYp+B,EAAE64B,QAAS54B,EAElC,SAASu7K,GAAIliL,EAAGC,EAAIG,GAClB,IAAIE,EAAItjB,GAAE42F,gBAAgB5zE,EAAEkzB,IAAKnwB,GAAMA,EAAE+6B,OAAQ79B,GACjD,MAAO,CAAEgqI,UAAWjqI,EAAEkzB,IAAKnwB,GAAMs1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC9gC,GAAEi+B,cAAcl4B,EAAE+6B,MAAMnnC,MAAM,EAAGsJ,IAAMjD,GAAEi+B,cAAcl4B,EAAE+6B,MAAMnnC,MAAMsJ,SAAay4C,SAAUp4C,GAEnL,SAAS6hL,GAAGniL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAAGyC,EAAI/F,GAAE29B,eAAep6B,EAAGN,EAAG,GAAG69B,OAAO,GAAI96B,EAAI/C,EAAGizB,IAAK9vB,GAAMA,EAAE06B,OAC5H9gD,GAAE47F,uBAAuB51E,EAAGD,GAC5B,IAAIE,EAAIjmB,GAAE42F,gBAAgB3zE,EAAGizB,IAAK9vB,GAAMA,EAAE06B,OAAQ/6B,GAClD,GAA2B,IAAvB/F,GAAEi+B,cAAch4B,GAClB,OAAO7C,EAAE41F,eAAe/yF,EAAGhD,EAAG,GAAGo9B,MAAO,IAC1C,IAAIn6B,EAAIjD,EAAGouB,OAAQjrB,GAAMpG,GAAEi+B,cAAc73B,EAAE06B,OAAS,GACpD,OAAoB,IAAb56B,EAAErkC,OAAek6M,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAG3G,EAAE,IAAMrmB,QAASujB,IAAO4hL,GAAG9+K,EAAGH,EAAG3C,GAE7E,IAAIgiL,GAAK,CAAE9qJ,WAAY7xD,GAAI8xD,YAAa,SAAUuO,WAAYq8I,IAC9D,SAASE,GAAIriL,EAAGC,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,EAAI,KAAMC,GAAI,EAAOC,EAAI,EAAGC,EAAI,EAAGE,EAAI,GAC1E,IAAIyB,EAAKoH,IACP,OAAQA,GACN,KAAK,EACH,MAAO,4BACT,KAAK,EACH,MAAO,gEACT,KAAK,EACH,MAAO,sCACT,QACE,MAAM,IAAIrJ,MAAM,oBAAoBqJ,yBAEvCxF,EAAKwF,IACN,OAAQA,GACN,KAAK,EACH,MAAO,iDACT,KAAK,EACH,MAAO,6DACT,QACE,MAAM,IAAIrJ,MAAM,oBAAoBqJ,yBAEvCvF,EAAI1G,EAAI,iEAEH,iEAED2G,EAAI3G,EAAI,2HAMP,2HAMD+G,EAAI/G,EAAI,qBAAuB,qBAAsB6K,EAAI7K,EAAI,qBAAuB,qBAAsB8K,EAAI9K,EAAI,MAAQ,MAAO6J,EAAI7J,EAAI,MAAQ,MAAOoL,EAAI,sEAE9IpL,EAAI,uBAAyB,+CAC/B8K,qCACAA,qCAEFjB,gEACAA,iQAGDA,wCACIu6J,GAAGnhK,6JAGO8D,4BAA4B8D,iBAClDnE,kFAEA7B,EAAE5B,qCAEYyI,EAAI1L,EAAIC,GAAMK,EAAI,WAClC8K,EAAM,+EAEJA,4BAEKg5J,GAAGnhK,WAAa3C,GAAKF,EAAI,WAChCgL,EAAM,+EAEJA,4BAEKg5J,GAAGnhK,WAAY0I,EAAI,GAAGlF,EAAEvD,GAAM0I,EAAIw4J,GAAGhhK,GAAIyI,EAAQu4J,GAAJpkK,EAAOiD,EAAQC,GAAI6I,EAAQq4J,GAAJpkK,EAAOkD,EAAQD,GAChG,MAAO,WACDkzK,GAAGpzK,EAAGC,EAAS,IAANI,EAAS,8DAC+ByI,gBAC/C7L,EAAI0L,EAAIC,wEAGuCI,gBAC/C/L,EAAI2L,EAAID,+EAG8CE,4IAIvC5L,EAAI,uBAAyB,oCAC5C2G,cACAyvK,GAAG71K,EAAGwC,wGAKhB,IAAIu/K,GAAK,MACP,YAAYriL,EAAIG,EAAGE,EAAGC,EAAGwC,GAAI,EAAOC,EAAI,KAAMC,GAAI,EAAOC,GAAI,GAC3DvkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,0IAA2IvmM,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4jN,eAAmC,iBAAlBtiL,EAAG23C,WAA+Bj5E,KAAKq4M,SAAW/2K,EAAG83C,WAAa,IAAM,GAAK93C,EAAG83C,WAAa,IAAM,IAAMp5E,KAAK4jN,gBAAkBtiL,EAAGw3C,SAAW,IAAM,IAAM94E,KAAK4jN,iBAAmBtiL,EAAG+3C,YAAc,IAAM,EAAGr5E,KAAK4mM,eAAiB5mM,KAAK4jN,eAAiB,CAAE14K,EAAG,CAAC,GAAI7M,EAAG,CAAC,EAAG,GAAI8M,EAAG,CAAC,IAAO,CAAED,EAAG,CAAC,EAAG,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,IAAMnrC,KAAK8lM,cAAgBmC,GAAGjoM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAKq4M,QAASr4M,KAAKwoM,kBAAoBX,GAAG7nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAKq4M,QAASr4M,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe9lM,KAAKwoM,mBAAoBxoM,KAAKq4M,QAAUr4M,KAAK+lM,gBAAkB,EAAG/lM,KAAK4jN,gBAAkBtiL,EAAG83C,WAAa,IAAM,GAAKp5E,KAAK6jN,iBAAmB,EAAG7jN,KAAK0mM,mBAAqB,CAAC,EAAG,KAAO1mM,KAAK6jN,iBAAmB,EAAG7jN,KAAK0mM,mBAAqB,CAAC,EAAG,IAAKtiK,IAAMpkC,KAAKmsJ,cAActgH,KAAK,QAAS7rC,KAAK0mM,mBAAmB76J,KAAK,IAAKvH,IAAMtkC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAK0mM,mBAAmB76J,KAAK,MAAQ7rC,KAAK6jN,iBAAmB7jN,KAAKwoM,kBAAkB,GAAIpkK,GAAKpkC,KAAKmsJ,cAActgH,KAAK,QAASvH,GAAKtkC,KAAKmsJ,cAActgH,KAAK,2BAA4B7rC,KAAKu4M,0BAA4Bh0K,EAAGvkC,KAAKw4M,QAAUp0K,EAAGpkC,KAAKm7F,WAAa92D,EAAGrkC,KAAKy4M,0BAA4Bn0K,EAAGtkC,KAAK8jN,WAAa9jN,KAAK8lM,cAAc,GAAK9lM,KAAKwoM,kBAAkB,GAAIxoM,KAAK+jN,WAAa/jN,KAAK8lM,cAAc,GAAK9lM,KAAKwoM,kBAAkB,GAAIxoM,KAAK84M,UAAY/0K,KAAK3W,IAAIptB,KAAK8lM,cAAc,GAAK9lM,KAAK6jN,iBAAkB7jN,KAAK8lM,cAAc,IAAK9lM,KAAK04M,UAAYj3K,EAAIzhC,KAAK8jN,aAAe,EAAG9jN,KAAK24M,UAAYh3K,EAAI3hC,KAAK+jN,aAAe,EAAG/jN,KAAK44M,SAAWh3K,EAAI5hC,KAAK84M,YAAc,EAAG94M,KAAKmlM,UAAY,YAAYnlM,KAAKwoM,qBAAqBxoM,KAAKm7F,eAAen7F,KAAK04M,aAAa14M,KAAK24M,aAAa34M,KAAK44M,YAAY54M,KAAKq4M,UAAUr4M,KAAK6jN,oBAAoB7jN,KAAK4jN,kBAAkB5jN,KAAKu4M,4BAEj+D,cACE,IAAIj3K,EAAKthC,KAAKq4M,OAASP,GAAG93M,KAAKwoM,kBAAmBxoM,KAAK8lM,eAAgB9lM,KAAK4jN,eAAgB5jN,KAAK84M,WAAab,GAAGj4M,KAAKwoM,kBAAmBxoM,KAAK8lM,eAAgB9lM,KAAK4jN,eAAgB5jN,KAAK84M,WAAW,EAAO,KAAM94M,KAAKu4M,2BAA4B92K,EAAIzhC,KAAKq4M,OAAS,CAACr4M,KAAK6jN,iBAAkB,EAAG,GAAK,CAAC,EAAG,EAAG,GAC1S,MAAO,SACLH,GAAI1jN,KAAK4jN,eAAgB5jN,KAAK04M,UAAW14M,KAAK24M,UAAW34M,KAAK44M,SAAU54M,KAAKw4M,QAASx4M,KAAKm7F,WAAYn7F,KAAKy4M,0BAA2Bh3K,EAAE,GAAIA,EAAE,GAAIA,EAAE,YACrJH,UAIF0iL,GAAK,MACP,YAAY1iL,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,GACvC5hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oFAAqFvmM,KAAK8lM,cAAgB,CAAC,EAAG,EAAG,GAAI9lM,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4jN,eAAmC,iBAAlBtiL,EAAG23C,WAA+Bj5E,KAAK4mM,eAAiB5mM,KAAK4jN,eAAiB,CAAE14K,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IAAO,CAAED,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IAAMnrC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKw4M,QAAU/2K,EAAGzhC,KAAKm7F,WAAax5D,EAAG3hC,KAAKy4M,0BAA4B72K,EAAGH,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKmlM,UAAY,eAAenlM,KAAKm7F,cAAcn7F,KAAK4jN,iBAE1pB,cACE,MAAO,YACFpM,GAAGx3M,KAAKm7F,WAAYn7F,KAAKy4M,2BAA2B,EAAO,gvBAkB5Cz4M,KAAK4jN,eAAiB,oCAAsC,iJAGvEnM,GAAGz3M,KAAKw4M,QAASx4M,KAAKm7F,2HAI1B8zD,GAAE,oHAGiBjvJ,KAAK4jN,eAAiB,aAAe,uCACzC5jN,KAAK4jN,eAAiB,aAAe,uCACrC5jN,KAAK4jN,eAAiB,aAAe,ucAMZ5jN,KAAK4jN,eAAiB,sBAAwB,oEAC9E5jN,KAAK4jN,eAAiB,gDAAkD,mRAWrFK,GAAK,MACP,YAAY3iL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,kIACrBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK4jN,eAAiBniL,EAAGzhC,KAAKmlM,UAAY,UAAUnlM,KAAK4jN,eAErR,cACE,IAAItiL,EAAKthC,KAAK4jN,eAAiB,EAAI,EAAGniL,EAAIzhC,KAAK4jN,eAAiB,EAAI,EAAGjiL,EAAI3hC,KAAK4jN,eAAiB,YAAc,YAAahiL,EAAI5hC,KAAK4jN,eAAiB,YAAc,YAAax/K,EAAIpkC,KAAK4jN,eAAiB,8BAAgC,8BAC3O,MAAO,SACL30D,GAAE,mJAIYttH,yBACAC,uPAIgBN,wVAMEG,2CAChB2C,6FAStB,SAAS8/K,GAAG7iL,EAAGC,GACb,IAAIG,EAAIJ,EAAEnhC,OACV,OAAOuhC,GAAK,EAAIH,EAAK,IAAID,EAAErJ,MAAM,GAAI,GAAIqJ,EAAEI,EAAI,GAAKJ,EAAEI,EAAI,GAAIJ,EAAEI,EAAI,IAAM,IAAIJ,EAAErJ,MAAM,GAAI,GAAIqJ,EAAEI,EAAI,GAAIJ,EAAEI,EAAI,GAAKJ,EAAEI,EAAI,KAAOH,GAAY,IAANG,GAAWJ,EAAE,GAAK,EAAI,CAACA,EAAE,GAAI,GAAK,KAE1K,SAAS8iL,IAAMj5K,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAI,KAAMw5D,uBAAwBh3D,EAAI,KAAMi3D,eAAgBh3D,EAAI,EAAG82D,WAAY72D,EAAI,OACjJ,IAAyK0D,EAAGI,EAAxK7D,EAAqB,iBAAjB9C,EAAEw3C,WAA+Bx0C,GAAKF,EAAG2B,GAAI,EAAO4B,EAAIvD,GAAK9C,EAAE+3C,eAAiB/3C,EAAEy3C,UAAYz3C,EAAEg4C,cAAgBh4C,EAAE03C,SAA8B,UAAnB13C,EAAEm3C,QAAQmC,KAAkBhzC,EAAI,GACrK,GAAID,EAAG,CACL,IAAIoD,EAAIzJ,EAAEy3C,SAAWz3C,EAAE03C,QAAU13C,EAAE23C,WACnCpxC,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAG19B,EAAEu3C,UAAW9tC,MAAS9C,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAGj0B,EAAGzJ,EAAE43C,qBAElJrxC,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO56B,EAAI,CAAC9C,EAAEu3C,UAAWv3C,EAAEy3C,SAAWz3C,EAAE03C,QAAS13C,EAAE23C,YAAc,CAAC33C,EAAEu3C,UAAWv3C,EAAE23C,WAAY33C,EAAEy3C,SAAWz3C,EAAE03C,YAAe/wC,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAG19B,EAAE23C,WAAY33C,EAAE43C,gBACzP,GAAItxC,EAAE8D,KAAK7D,GAAID,EAAE8D,KAAKzD,GAAS,MAALhE,EAAW,CACnC,IAAI8G,EAAIg5K,GAAG9/K,EAAE+6B,MAAO56B,GACf,MAAL2G,IAAc9G,EAAIs1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOj0B,KAAQnD,EAAE8D,KAAKzH,IAEtF,GAAS,MAALxC,EAAW,CACb,IAAIsJ,EAAIg5K,GAAGtiL,EAAEu9B,MAAO56B,GACf,MAAL2G,IAActJ,EAAI83K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOj0B,KAAQnD,EAAE8D,KAAKjK,IAEtF,IAAIsK,EAAI0tK,GAAG,CAAEv1K,EAAGE,EAAIyD,EAAII,EAAGqE,EAAGlI,EAAI6D,EAAIJ,EAAGk0C,WAAYz3C,EAAG03C,WAAYj2C,EAAGhoB,QAASyjB,EAAGimD,KAAMhmD,EAAGu5D,WAAY72D,EAAG82D,uBAAwBh3D,EAAGi3D,eAAgBh3D,IAAM8H,EAAIutK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGgB,GAAKhuB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO19B,EAAEs4C,YACrNhyC,EAAE8D,KAAKK,GACP,IAAK,IAAIhB,KAAKnD,EACZpG,EAAEwkC,YAAYj7B,EAAE01B,QAClB,OAAOz0B,EAET,SAASi4K,IAAMl5K,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAI,KAAMw5D,uBAAwBh3D,EAAI,KAAMi3D,eAAgBh3D,EAAI,EAAG82D,WAAY72D,EAAI,OACjJ,IAAMm1C,YAAal1C,EAAGi1C,aAAc/0C,EAAG20C,WAAYlzC,EAAGqzC,YAAazxC,EAAGwxC,aAAcvxC,EAAG6wC,QAAS5wC,EAAG8wC,SAAU1wC,EAAGywC,UAAW3sC,EAAG2tC,cAAe1tC,EAAGytC,eAAgB1uC,EAAG+tC,WAAYxsC,GAAMhL,EAAGsL,EAAU,iBAANN,EAAsBO,EAAIzI,EAAIE,EAAIyB,EAAG+G,EAAIf,EAAI9D,EAAG8E,EAAIH,EAAI,CAACtL,EAAEu3C,UAAW/rC,EAAGD,GAAK,CAACvL,EAAEu3C,UAAWhsC,EAAGC,GAAIG,EAAI,IAAI62K,GAAG/2K,EAAGH,GAAIM,EAAI,CAAC,CAAE0tC,KAAM,QAASn+B,KAAM,CAAC5U,EAAE4yC,IAAK5yC,EAAE7oC,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAGD,IAAM,CAAEizC,KAAM,QAASn+B,KAAM,CAAC1R,EAAGiB,IAAM,CAAE4uC,KAAM,QAASn+B,KAAM,CAACxU,IAAM,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC1W,EAAI3B,IAAM,CAAEw2C,KAAM,QAASn+B,KAAM,CAAC1W,KAAOoH,EAAI3L,EAAE63K,iBAAiBpsK,EAAG,CAAC/L,GAAIA,EAAEq9B,MAAOrxB,GAAIE,EAAI,GACjjBA,EAAE1B,KAAKyB,GACP,IAAIruC,EAAIy6M,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC,EAAGnyB,GAAI,MACpE,GAAIO,EAAE1B,KAAK5sC,GAAS,MAALmlC,EAAW,CACxB,IAAIyP,EAAIqwK,GAAG9/K,EAAE+6B,MAAOpyB,GACf,MAAL8G,IAAczP,EAAIs1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOtrB,KAAQtG,EAAE1B,KAAKzH,IAEtF,GAAS,MAALxC,EAAW,CACb,IAAIiS,EAAIqwK,GAAGtiL,EAAEu9B,MAAOpyB,GACf,MAAL8G,IAAcjS,EAAI83K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAOtrB,KAAQtG,EAAE1B,KAAKjK,IAEtF,IAAIiM,EAAI+rK,GAAG,CAAEv1K,EAAG0I,EAAIO,EAAIruC,EAAGwtC,EAAGM,EAAI9tC,EAAIquC,EAAG4uC,YAAanvC,EAAGovC,YAAY,EAAOj+D,QAASyjB,EAAGimD,KAAMhmD,EAAGu5D,WAAY72D,EAAG82D,uBAAwBh3D,EAAGi3D,eAAgBh3D,IAAM8G,EAAIuuK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG2C,GAAK3vB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO19B,EAAEs4C,YAC1NxsC,EAAE1B,KAAKgC,GACP,IAAK,IAAIgG,KAAKtG,EACZ5L,EAAEwkC,YAAYtyB,EAAE+sB,QAClB,OAAOz1B,EAET,SAASk5K,IAAKn5K,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAI,KAAMw5D,uBAAwBh3D,EAAI,KAAMi3D,eAAgBh3D,EAAI,EAAG82D,WAAY72D,EAAI,OAChJ,IAAIC,EAAS,MAAL3C,EAAW6C,EAAS,MAALL,EAAW8B,EAAqB,iBAAjBzE,EAAEw3C,WAA+BnxC,EAAI5B,GAAKzE,EAAE+3C,eAAiB/3C,EAAEy3C,UAAYz3C,EAAEg4C,cAAgBh4C,EAAE03C,SAA8B,UAAnB13C,EAAEm3C,QAAQmC,KAAkBhzC,EAAIpiB,KAAIuxC,QAAQ,iCAC5L,IAAKnvB,IAAMD,GAAwB,IAAnBrG,EAAE+3C,cAAwC,IAAlB/3C,EAAEg4C,aAA0C,IAArBh4C,EAAEm4C,gBAA4C,IAApBn4C,EAAEo4C,eAA0C,IAAnBp4C,EAAE63C,cAAwC,IAAlB73C,EAAE83C,cAAyC,SAAnB93C,EAAEm3C,QAAQmC,MAAsC,UAAnBt5C,EAAEm3C,QAAQmC,OACvM,OAAOopI,GAAI,CAAEj5K,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAGu5D,WAAY72D,EAAG82D,uBAAwBh3D,EAAGi3D,eAAgBh3D,IAC7H,IAAI2D,EAAIriB,KAAIq7H,UAAU,sDAAuD54G,EAAIJ,GAAK,EAAIA,EAAIrG,EAAEyoK,8BAA+Bl+J,EAAIzK,EAAEu3C,UAAYj1C,KAAK3jB,KAAKqhB,EAAEo3C,UAAYp3C,EAAEq3C,SAAW,IAAM/0C,KAAK3jB,KAAKqhB,EAAE43C,YAAc,IACtN,GAAI1zD,KAAIuxC,QAAQ,uCAAyChrB,GAAK9D,EAC5D,OAAOg8K,GAAI,CAAEl5K,EAAG7J,EAAGquB,OAAQpuB,EAAI0qI,SAAUvqI,EAAGvjB,QAASyjB,EAAGimD,KAAMhmD,EAAGw5D,uBAAwBh3D,EAAGi3D,eAAgBh3D,EAAG82D,WAAY72D,IAC7H,IAAI6H,EAAGjB,EAAI,CAACzJ,EAAEm3C,QAAQgC,IAAKn5C,EAAEm3C,QAAQz5E,MAAOstC,EAAI,CAAC,CAAEsuC,KAAM,QAASn+B,KAAM,CAACnb,EAAE+3C,aAAc/3C,EAAEg4C,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,IAAI1R,IAAM,CAAE6vC,KAAM,QAASn+B,KAAM,CAACnb,EAAE63C,aAAc73C,EAAE83C,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAACnb,EAAEm4C,eAAgBn4C,EAAEo4C,iBAClP,GAAI9xC,EACFoE,EAAI,IAAI63K,GAAGviL,EAAG8C,EAAGD,EAAGG,OACjB,CACH,IAAIyI,EAAIhH,EAAIzE,EAAEo3C,UAAYp3C,EAAEq3C,SAAWr3C,EAAE43C,YAAajsC,EAAIlH,EAAIzE,EAAE43C,YAAc53C,EAAEo3C,UAAYp3C,EAAEq3C,SAAUzrC,EAAI5L,EAAE+3C,aAAe/3C,EAAEg4C,YAAch4C,EAAE23C,WAC/I3sC,EAAEZ,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC1P,IAAM,CAAE6tC,KAAM,QAASn+B,KAAM,CAACxP,IAAM,CAAE2tC,KAAM,QAASn+B,KAAM,CAACvP,KAC3F,IAAIC,EAAI3L,EAAEsoK,YAAYtG,UACtBx3J,EAAI,IAAIw3K,GAAGliL,EAAGyL,EAAGE,EAAGC,EAAG9I,EAAGD,EAAGG,EAAG6I,GAElC,IAAIP,EAAI,GAAIC,EAAI,CAAC3L,EAAGC,GACpBiD,KAAO2B,GAAwB,IAAnBtE,EAAEu9B,MAAMj/D,SAAiB0hC,EAAI83K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAACv9B,EAAEu9B,MAAM,GAAI,EAAG,MAASpyB,EAAElB,KAAKjK,IAAKoL,EAAEnB,KAAKjK,IAAK6C,KAAOyB,GAAwB,IAAnB9B,EAAE+6B,MAAMj/D,SAAiBkkC,EAAIs1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO,CAAC/6B,EAAE+6B,MAAM,GAAI,EAAG,MAASpyB,EAAElB,KAAKzH,IAAK4I,EAAEnB,KAAKzH,IAAW,cAANE,IAAsBmI,EAAEZ,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAM,CAACvY,KAAO8H,EAAEo6J,UAAY,iBACtW,IAAIt5J,EAAItL,EAAE63K,iBAAiBrtK,EAAGa,EAAG3L,EAAEq9B,MAAOjyB,GAC1C,IAAK,IAAIS,KAAKH,EACZpL,EAAEwkC,YAAYj5B,EAAE0zB,QAClB,OAAO3zB,EAET,SAASq3K,GAAIjjL,GACX,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAG+6C,UAAW76C,EAAGk3C,gBAAiBz1C,GAAMzE,EAAGqG,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGI,EAAGH,EAAG4B,GAAG,EAAO4B,GACpP,OAAOu8K,GAAG,CAAEn5K,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAUjkI,EAAG7pB,QAASyjB,IAErD,IAAI4iL,GAAK,CAAE5rJ,WAAY3xD,GAAI4xD,YAAa,SAAUuO,WAAYm9I,IAC1DE,GAAK,MACP,YAAYljL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAKumM,SAAW,0FAA2FvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAOl/D,KAAKq4M,QAAS,EAAOr4M,KAAKw9M,cAAgB,EAAGx9M,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4jN,eAAmC,iBAAlBtiL,EAAG23C,WAA+Bj5E,KAAKq4M,OAASr4M,KAAK4jN,gBAAkBtiL,EAAG+3C,YAAc,IAAM,GAAK/3C,EAAG83C,WAAa,IAAM,EAAGp5E,KAAKq4M,QAAUr4M,KAAKw9M,cAAgB,EAAGx9M,KAAK+lM,gBAAkB,EAAG/lM,KAAK8lM,cAAgB,CAAC,EAAG,EAAG,GAAI9lM,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IAAMnrC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC,EAAG9lM,KAAKw9M,cAAe,MAAQx9M,KAAKk/D,MAAO,EAAMl/D,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,gBAAiB9lM,KAAKmlM,UAAY,kBAAkBnlM,KAAK4jN,kBAAkB5jN,KAAKq4M,UAAUr4M,KAAKw9M,gBAEv7B,cACE,IAAIl8K,EAAKthC,KAAK4jN,eAAiB,EAAI,EAAGniL,EAAIzhC,KAAK4jN,eAAiB,EAAI,EAAGjiL,EAAI3hC,KAAK4jN,eAAiB,EAAI,EAAGhiL,EAAI,SAC1GqtH,6JAG4BjvJ,KAAKw9M,2SAODx9M,KAAKw9M,8CACfx9M,KAAKw9M,8tHAgFLx9M,KAAKw9M,uQAQ7B,OAAOx9M,KAAKq4M,OAAS,SACnBz2K,UACE,SACFqtH,GAAE,2JAIkBttH,kDAEgBL,cAAeG,mpCA0B5BzhC,KAAK4jN,eAAiB,+BAAiC,wPAYhFa,GAAK,MACP,YAAYnjL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAKumM,SAAW,0HAA2HvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAG04C,YAAah6E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK4jN,eAAmC,iBAAlBtiL,EAAG23C,WAA+Bj5E,KAAKmlM,UAAY,mBAAmBnlM,KAAK4jN,eAE/d,cACE,MAAO,SACL30D,GAAE,27BAyBYjvJ,KAAK4jN,meAkBrBc,GAAK,MACP,YAAYpjL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAKumM,SAAW,iKACkCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAG04C,YAAah6E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,kBAEtT,cACE,MAAO,SACLl2C,GAAE,myCA0CJ01D,GAAK,MACP,YAAYrjL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAKumM,SAAW,4IACsBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,iBAEtS,cACE,MAAO,SACLl2C,GAAE,4xDAuDR,SAAS21D,GAAIvjL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAI1pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAG,EAAGC,EAAGG,GAAG,EAAOqD,GAAIE,EAAI,IAAIy8K,GAAG18K,GAAIK,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAE6wC,QAAQgC,IAAK7yC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEixC,YAAc,CAAE+B,KAAM,QAASn+B,KAAM,CAAC7U,EAAE8wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC7U,EAAE+wC,WAAa,CAAEiC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEmxC,WAAa,CAAE6B,KAAM,QAASn+B,KAAM,CAAC7U,EAAEoxC,WAChjB,OAAO13C,EAAE+3K,iBAAiBxxK,EAAG,CAACpG,EAAGwC,GAAIxC,EAAE88B,MAAOt2B,GAEhD,IAAIy8K,GAAK,CAAElsJ,WAAYzxD,GAAI0xD,YAAa,SAAUuO,WAAYy9I,IAC9D,SAASE,GAAIzjL,EAAI,GACf,IAAIC,EAAM8C,IACR,OAAQA,GACN,KAAK,EACH,MAAO,0DACT,KAAK,EACH,MAAO,ujBAUT,QACE,MAAM,IAAIH,MAAM,oBAAoBG,yBAEvCzC,EAAI,okBAUQ8jK,GAAGpkK,qHAGHokK,GAAGpkK,qNAO0CA,8BAE/CokK,GAAGpkK,WAChB,MAAO,wDAC4CokK,GAAGpkK,aAClDM,gEAG+C8jK,GAAGpkK,0cAShDC,EAAGD,yBAEEokK,GAAGpkK,iFAG+CokK,GAAGpkK,2TAQDA,0BAIjE,IAAI0jL,GAAK,MACP,YAAYzjL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,4IAA6IvmM,KAAK+5F,YAAcz4D,EAAGw4C,QAASz7C,GAAE26B,OAAyB,iBAAlB13B,EAAG23C,WAA+B,IAAM,+BAAgCj5E,KAAKq4M,OAAS/2K,EAAG83C,WAAa,IAAM,GAAK93C,EAAG+3C,YAAc,IAAM,EAAGr5E,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,EAAG,GAAI8M,EAAG,CAAC,IAAMnrC,KAAK8lM,cAAgBmC,GAAGjoM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAKq4M,QAASr4M,KAAKwoM,kBAAoBX,GAAG7nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAKq4M,QAASr4M,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe9lM,KAAKwoM,mBAAoBxoM,KAAKq4M,SAAWr4M,KAAK+lM,gBAAkB,EAAG/lM,KAAK0mM,mBAAqB,CAAC,EAAG,IAAK1mM,KAAKmlM,UAAY,oBAAoBnlM,KAAKq4M,UAAUr4M,KAAKwoM,oBAElzB,cACE,IAAIlnK,EAAKthC,KAAKq4M,OAASP,GAAG93M,KAAKwoM,kBAAmBxoM,KAAK8lM,eAAiBmS,GAAGj4M,KAAKwoM,kBAAmBxoM,KAAK8lM,eACxG,MAAO,SACLgf,GAAI9kN,KAAKq4M,OAAS,EAAI,WACtB/2K,YAIN,SAAS0jL,GAAI3jL,GACX,IAAiiB+G,GAA3hBw2B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAMs+C,WAAYv7C,EAAG87B,QAAS77B,EAAG9T,IAAK+T,EAAG00C,WAAYx0C,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwB92E,GAAIsD,EAAI1pB,GAAEy8F,kBAAkBz2E,EAAGD,EAAE+6B,MAAO76B,EAAG,EAAGC,EAAG2B,GAAG,EAAO4B,GAAIE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEyxC,aAAczxC,EAAE0xC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEyxC,aAAe,EAAIzxC,EAAE6wC,QAAQgC,IAAK7yC,EAAE0xC,YAAc,EAAI1xC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEixC,UAAWjxC,EAAE8wC,UAAW9wC,EAAE+wC,SAAU/wC,EAAEsxC,eAChhB,GAAI1zD,KAAIuxC,QAAQ,sCAAyD,iBAAjBnvB,EAAEkxC,WACxD7wC,EAAI,IAAIo8K,GAAGz8K,OACR,CACHK,EAAI,IAAI28K,GAAGh9K,GACX,IAAImE,EAAInE,EAAEmxC,SAAWnxC,EAAEoxC,QAAShtC,EAAIpE,EAAEqxC,WAAYluC,EAAInD,EAAEyxC,aAAezxC,EAAE0xC,YAAc1xC,EAAEsxC,YACzFrxC,EAAE6D,KAAK,CAAEkvC,KAAM,SAAUn+B,KAAM,CAAC1Q,IAAM,CAAE6uC,KAAM,SAAUn+B,KAAM,CAACzQ,IAAM,CAAE4uC,KAAM,SAAUn+B,KAAM,CAAC1R,KAEhG,OAAOzJ,EAAE+3K,iBAAiBpxK,EAAG,CAACxG,EAAGwC,GAAI,UAAW4D,GAElD,IAAIi9K,GAAK,CAAEtsJ,WAAYvxD,GAAIwxD,YAAa,SAAUuO,WAAY69I,IAC1DE,GAAK,MACP,YAAY5jL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,oFAAqFvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,cAErW,cACE,MAAO,SACLl2C,GAAE,wuGAoFR,SAASk2D,GAAI9jL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGE,EAAGD,GAAI4B,EAAI,CAACzB,EAAEm0C,QAAQoC,MAAOv2C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO2oC,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM,CAACnY,EAAE41C,YAAa51C,EAAE+0C,aAAc/0C,EAAEg1C,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,IAAI1W,IAAM,CAAE60C,KAAM,QAASn+B,KAAM,CAACnY,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAACnY,EAAE81C,cAAe91C,EAAEm1C,eAAgBn1C,EAAEo1C,iBAAmB9xC,EAAI,IAAIm9K,GAAGzgL,GAAIuD,EAAI/J,GAAG2D,EAAE88B,MAAOt6B,EAAEs6B,OACrgB,OAAOj9B,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,GAAI4D,EAAGF,GAE1C,IAAIs9K,GAAK,CAAEzsJ,WAAYrxD,GAAIsxD,YAAa,SAAUuO,WAAYg+I,IAC9D,SAASE,GAAIhkL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG01C,YAAaz1C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBn5E,EAAEu9B,MAAO56B,EAAGF,EAAG,EAAGC,GAAI4B,EAAI,IAAIw+K,GAAGjgL,GAAIqD,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM,CAACnY,EAAEm0C,QAAQoC,MAAOv2C,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAACnY,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAACnY,EAAEu0C,YAAc,CAAE+B,KAAM,QAASn+B,KAAM,CAACnY,EAAEw1C,WAAa,CAAEc,KAAM,QAASn+B,KAAM,CAACnY,EAAEo0C,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAACnY,EAAEq0C,WAAa,CAAEiC,KAAM,QAASn+B,KAAM,CAACnY,EAAE01C,UAAY,CAAEY,KAAM,QAASn+B,KAAM,CAACnY,EAAEy0C,WAAa,CAAE6B,KAAM,QAASn+B,KAAM,CAACnY,EAAE00C,WAC3kB,OAAO13C,EAAE+3K,iBAAiBtzK,EAAG,CAACtE,EAAGwC,GAAIA,EAAEs6B,MAAO52B,GAEhD,IAAIw9K,GAAK,CAAE3sJ,WAAYnxD,GAAIoxD,YAAa,SAAUuO,WAAYk+I,IAC9D,SAASE,GAAIlkL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGs7C,WAAYr7C,GAAM5C,EAAG8C,EAAIpmB,GAAE08F,kBAAkBx2E,EAAGH,EAAE+6B,MAAO96B,EAAG,EAAGC,GAAI4B,EAAI,IAAIy+K,GAAGlgL,GAAIqD,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM,CAACnY,EAAE41C,YAAa51C,EAAE+0C,aAAc/0C,EAAEg1C,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAACnY,EAAE41C,YAAc,EAAI51C,EAAEm0C,QAAQoC,MAAOv2C,EAAE+0C,aAAe,EAAI/0C,EAAEm0C,QAAQgC,IAAKn2C,EAAEg1C,YAAc,EAAIh1C,EAAEm0C,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAACnY,EAAE21C,YAAa31C,EAAE60C,aAAc70C,EAAE80C,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAACnY,EAAEw1C,WAAa,CAAEc,KAAM,QAASn+B,KAAM,CAACnY,EAAEo0C,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAACnY,EAAEq0C,WAAa,CAAEiC,KAAM,QAASn+B,KAAM,CAACnY,EAAE40C,eAChmB,OAAO53C,EAAE+3K,iBAAiBtzK,EAAG,CAACtE,EAAGwC,GAAIxC,EAAE88B,MAAO52B,GAEhD,IA6EI09K,GA7EAC,GAAK,CAAE9sJ,WAAYjxD,GAAIkxD,YAAa,SAAUuO,WAAYo+I,IAC1DG,GAAMjL,GAAG,CAAEC,OAAQxK,GAAEuC,MACrBkT,GAAK,CAAEhtJ,WAAY/wD,GAAIgxD,YAAa,SAAUuO,WAAYu+I,IAC1DE,GAAMnL,GAAG,CAAEC,OAAQxK,GAAEwC,OACrBmT,GAAK,CAAEltJ,WAAY7wD,GAAI8wD,YAAa,SAAUuO,WAAYy+I,IAC1DE,GAAK,MACP,YAAYxkL,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,QAAS,QAAS,UAAWnsJ,KAAKumM,SAAW,4BAA6BvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAC7I,IAAK96B,GAAK3C,EACVzhC,KAAK+5F,YAAc,CAAC31D,EAAGzC,EAAE,GAAIA,EAAE,GAAIL,GAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK+lN,SAAiB,aAANnkL,EAAmB,EAAI,EAAG5hC,KAAKgmN,sBAAwBhmN,KAAK+5F,YAAY,GAAK,EAAG/5F,KAAKimN,qBAAuBjmN,KAAK+5F,YAAY,GAAK,EAAG/5F,KAAKmlM,UAAY,iBAAiBnlM,KAAK+lN,YAAY/lN,KAAKgmN,yBAAyBhmN,KAAKimN,uBAE9Y,cACE,IAAK3kL,EAAIG,GAAK,CAAC,kCAAmC,oCAAqCE,EAAGC,EAAGwC,GAAKpkC,KAAKgmN,sBAAwB,CAAC,IAAI1kL,qCAAuC,yBAA0B,MAAMA,6BAAgC,CAAC,MAAO,MAAO,mBAAmBA,IAAQ+C,EAAGC,EAAGC,GAAKvkC,KAAKimN,qBAAuB,CAAC,IAAIxkL,qCAAsC,wBAAyB,MAAMA,4BAA8B,CAAC,MAAO,MAAO,mBAAmBA,GACtc,MAAO,SACLwtH,GAAE,mIAGyBttH,sCACD0C,6dAeHzC,iCACD0C,0BACPF,wCACc9C,4HAIdiD,wCACc9C,2KAKtBzhC,KAAK+lN,wqCA0BdG,GAAO7kL,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAGk7D,MAAO14D,EAAG24D,OAAQ14D,GAAM/C,GAAM47D,SAAU54D,EAAG04D,OAAQz4D,EAAG04D,mBAAoBx4D,GAAM9C,EAAGuE,EAAI,IAAI4/K,GAAGlkL,EAAEu9B,MAAM,GAAI/6B,EAAE+6B,MAAO76B,EAAGC,GAAIuD,EAAI,CAAC,CAAEizC,KAAM,UAAWn+B,KAAM,CAACnY,KACnN,OAAOhD,EAAE+3K,iBAAiBtzK,EAAG,CAACtE,EAAGwC,EAAGC,GAAI,UAAWyD,IAEjDq+K,GAAK,CAAExtJ,WAAY3wD,GAAI4wD,YAAa,SAAUuO,WAAY++I,KAE9D,SAAU7kL,GACRA,EAAE5tB,KAAO,IAAK4tB,EAAEtnB,IAAM,KADxB,CAEGyrM,KAAOA,GAAK,KACf,IAAIY,GAAK,MACP,YAAY9kL,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,eAAgBvmM,KAAKk/D,MAAO,EAAMl/D,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK6gF,UAAYl/C,EAAG3hC,KAAKw0B,QAAUoN,EAAG5hC,KAAKowB,GAAKkR,EAAIthC,KAAKmlM,UAAY,OAAOnlM,KAAKowB,MAAMpwB,KAAK6gF,aAAa7gF,KAAKw0B,UAE/W,cACE,IAAI8M,EAAKthC,KAAK+5F,YAAY75F,OAAQuhC,EAAIzhC,KAAKowB,KAAOo1L,GAAG/xM,KAAO,MAAQ,MAAOkuB,EAAI3hC,KAAK6gF,UAAYp/C,EAAI,QAAQ4kL,GAAG/kL,EAAI,SAAUthC,KAAKowB,OAAQwR,EAAI5hC,KAAK+5F,YAAY/5F,KAAK+5F,YAAY75F,OAAS,GAAIkkC,EAAI,GAAIC,EAAI,GACzM,OAAOrkC,KAAK6gF,WAAaz8C,EAAIpkC,KAAKw0B,QAAU,WAAUoN,EAAI,GAAM,WAAYyC,EAAIrkC,KAAKw0B,QAAU,UAAY,YAAc4P,EAAIpkC,KAAKw0B,QAAU,gBAAgBoN,EAAM,cAAeyC,EAAIrkC,KAAKw0B,QAAU,aAAe,cAAe,WAC9Ny6H,GAAE,2HAIWq3D,GAAGhlL,EAAI,SAAUthC,KAAKowB,4BACtBuR,wEAENyC,8BACQC,kBACViiL,GAAGhlL,EAAI,SAAUthC,KAAKowB,8BAClBpwB,KAAKowB,YAAYi2L,GAAG/kL,EAAI,SAAUthC,KAAKowB,uFAQxD,SAASi2L,GAAGhlL,EAAGC,EAAIG,GACjB,GAAU,IAANJ,EACF,MAAO,GAAGC,EACZ,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,MACrB,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,QAASA,MAC9B,GAAU,IAAND,EACF,MAAO,GAAGC,QAASA,QAASA,QAASA,MACvC,MAAM2C,MAAM,cAAcxC,cAAcJ,0BAE1C,SAASilL,GAAGjlL,EAAGC,EAAIG,GACjB,GAAU,IAANJ,EACF,MAAO,GAAGC,EACZ,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,GAAU,IAAND,EACF,OAAUC,EAAH,KACT,MAAM2C,MAAM,cAAcxC,cAAcJ,0BAE1C,SAASklL,GAAGllL,EAAGC,EAAIG,EAAGE,EAAGC,EAAGwC,GAC1B,IAAIC,EAAI/C,EAAG69B,MAAMj/D,OAAQokC,EAAIjmB,GAAE+9F,mBAAmB,CAACz6E,GAAI0C,GAAIE,EAAIjD,EAC1D,MAALgD,IAAcC,EAAIw5K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAG5J,GAAMpjB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAM/0D,MACrE,IAAIG,EAAIpmB,GAAE0+F,iBAAiB,EAAG14E,GAAG,GACjC,GAAII,IAAMJ,EAAI,EACZ,MAAM,IAAIJ,MAAM,oDAAoD3C,EAAG69B,MAAMj/D,OAAS,kBAAkByhC,KAC1G,IAAIuE,EAAI3B,EAAE46B,MAAM16B,GAAIqD,EAAIsyK,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,IACxD,IAAK,IAAIsG,EAAI,EAAGA,GAAKhE,KAAK3jB,KAAK2jB,KAAKmqI,KAAKhoI,IAAM,EAAG6B,IAAK,CACrD,IAAIC,EAAI,IAAIo+K,GAAG/kL,EAAGkD,EAAE46B,OAAO,EAAO/6B,GAAIgE,EAAIN,EAAGoE,EAAI,CAAC,CAAE6uC,KAAM,UAAWn+B,KAAM,CAAC7U,KAC5ED,EAAIrG,EAAE+3K,iBAAiBxxK,EAAG,CAACF,GAAIA,EAAE42B,MAAOxyB,GAAIzK,EAAE0kC,YAAY/9B,EAAEw4B,QAE9D,GAAIh/B,EAAG,CACL,IAAImG,EAAI,IAAIq+K,GAAG/kL,EAAGkD,EAAE46B,MAAOv9B,EAAGwC,GAAI4D,EAAIF,EAAGM,EAAI,CAAC,CAAE2yC,KAAM,UAAWn+B,KAAM,CAAC,KACxE9U,EAAIrG,EAAE+3K,iBAAiBzxK,EAAG,CAACD,GAAIA,EAAE42B,MAAOt2B,GAAI3G,EAAE0kC,YAAYn+B,EAAE44B,QAE9D,GAAS,MAALt8B,EAAW,CACb,IAAIyD,EAAI1pB,GAAE+gG,uBAAuB96E,GAAI0D,EAAI+1K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMtxD,KAC3F,OAAOtG,EAAE0kC,YAAYr+B,EAAE84B,QAASn/B,EAAE0kC,YAAY5hC,EAAEq8B,QAAS54B,EAE3D,OAAOF,EAET,SAAS0+K,GAAInlL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrG,OAAO4kL,GAAGf,GAAG/xM,KAAMmuB,EAAGH,EAAG2C,EAAGC,EAAGC,GAEjC,IAAImiL,GAAK,CAAE9tJ,WAAYzwD,GAAI0wD,YAAa,SAAUuO,WAAYq/I,IAC9D,SAASE,GAAIrlL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAGy8C,UAAWx8C,EAAG7P,QAAS8P,GAAM3C,EACrG,OAAO4kL,GAAGf,GAAGzrM,IAAK6nB,EAAGH,EAAG2C,EAAGC,EAAGC,GAEhC,IAAIqiL,GAAK,CAAEhuJ,WAAYvwD,GAAIwwD,YAAa,SAAUuO,WAAYu/I,IAC9D,SAASE,GAAIvlL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGktC,QAAS1qC,GAAM9C,GAAM49B,KAAM76B,EAAG68C,aAAc58C,GAAM3C,EAAG4C,EAAuB,IAAnB3C,EAAEu9B,MAAMj/D,OAAcgmC,EAAI7H,GAAEi+B,cAAcl4B,EAAE+6B,OAAS,EAAGr3B,EAAI1D,EAAEs6B,MAAO32B,EAAIxD,EAAI,CAAC3C,EAAEu9B,MAAM,IAAM,CAACv9B,EAAEu9B,MAAM,GAAIv9B,EAAEu9B,MAAM,IAAKn3B,EAAIzD,EAAI,CAACF,GAAK,CAACzC,EAAEu9B,MAAM,GAAI96B,GAAI+D,EAAImxK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOn3B,EAAG/mC,MAAO,EAAGy9D,MAAO52B,KAAQoE,EAAI,IAAIu1K,GAAG15K,EAAG7B,EAAG5B,GAAI6H,EAAI,CAAC,CAAE4uC,KAAM,QAASn+B,KAAM,CAACvY,KAAO6G,EAAIhF,EAAI,CAACtE,EAAGwC,GAAK,CAACxC,GAChZ,OAAOH,EAAE+3K,iBAAiBttK,EAAGhB,EAAGpD,EAAGqE,EAAG/D,GAExC,IAAIy+K,GAAK,CAAEluJ,WAAYnwD,GAAIowD,YAAa,SAAUuO,WAAYy/I,IAC1DE,GAAK,MACP,YAAYxlL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAKumM,SAAW,mBAAoBvmM,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,gBAAgB1jK,EAAKzhC,KAAKi5E,WAAax3C,EAE7T,cACE,MAAO,WACHwtH,GAAE,wJAIUjvJ,KAAK0uK,8CACL1uK,KAAK2uK,6CACL3uK,KAAK4uK,gTAOX5uK,KAAK6uK,oFAGG7uK,KAAK8uK,yFAKzB,uBACE,MAA2B,SAApB9uK,KAAKi5E,WAAwB,YAAc,YAEpD,sBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,YAAc,YAEpD,sBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,YAAc,YAEpD,qBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,uBAAyB,uBAE/D,yBACE,MAA2B,SAApBj5E,KAAKi5E,WAAwB,4BAA8B,8BAGtE,SAAS8tI,GAAI1lL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+/C,UAAWj9C,EAAG60C,WAAY50C,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAM,GAAI56B,EAAU,SAANF,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAI16B,EAAU,SAANJ,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIj5B,EAAU,SAAN7B,EAAezC,EAAEu9B,MAAM,GAAKv9B,EAAEu9B,MAAM,GAAIr3B,EAAIvD,EAAIH,EAAG2D,EAAItD,EAAIL,EAAG4D,EAAI9B,GAAK9B,EAAIA,GAAIgE,EAAU,SAAN/D,EAAe,CAACC,EAAGwD,EAAGC,EAAGC,GAAK,CAAC1D,EAAG0D,EAAGF,EAAGC,GAAImE,EAAI,CAAC,CAAE6uC,KAAM,QAASn+B,KAAM,CAACxY,KAAO+H,EAAI,IAAI26K,GAAG1+K,EAAG/D,GAC/X,OAAO5C,EAAE+3K,iBAAiBrtK,EAAG,CAACvK,GAAIA,EAAE88B,MAAOxyB,GAE7C,IAAI86K,GAAK,CAAEruJ,WAAYjwD,GAAIkwD,YAAa,SAAUuO,WAAY4/I,IAC1DE,GAAK,MACP,YAAY3lL,EAAIG,EAAGE,EAAGC,GAAI,EAAOwC,EAAI,KAAMC,GAAI,GAC7CrkC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,wCAAyCvmM,KAAK8lM,cAAgB,CAAC,GAAI,GAAI,GAAI9lM,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IAAMnrC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgBlkK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,QAASxH,GAAKrkC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKw4M,QAAU52K,EAAG5hC,KAAKm7F,WAAa/2D,EAAGpkC,KAAKknN,mBAAqB7iL,EAAGrkC,KAAKw5E,aAAe/3C,EAAGzhC,KAAKy5E,YAAc93C,EAAG3hC,KAAKmlM,UAAY,iBAAiBnlM,KAAKm7F,cAAcn7F,KAAKw5E,gBAAgBx5E,KAAKy5E,cAEtjB,cACE,IAAIn4C,EAAKthC,KAAKy5E,YAAcz5E,KAAKw5E,aAAc/3C,EAAIzhC,KAAK8lM,cAAc,GAAK9lM,KAAK8lM,cAAc,GAAK9lM,KAAK8lM,cAAc,GAAInkK,EAAI3hC,KAAK8lM,cAAc,GAAK9lM,KAAKw5E,aAAe,EAAG53C,EAAI5hC,KAAK8lM,cAAc,GAAK9lM,KAAKy5E,YAAc,EAC5N,MAAO,WACH+9H,GAAGx3M,KAAKm7F,WAAYn7F,KAAKknN,oBAAoB,EAAO,yDAEVtlL,OAAOD,wDACP3hC,KAAKy5E,iBAAiBz5E,KAAKw5E,kUAUrEy1E,iiBAe2CttH,4BAA4B3hC,KAAK8lM,cAAc,6DAC7ClkK,4BAA4B5hC,KAAK8lM,cAAc,4VAS1FxkK,EAAKG,EAAI,gBAAgBH,KAAQ,kBAAkBA,wBAAyBG,oDAGtDzhC,KAAKy5E,+CACLz5E,KAAKy5E,+KAOLz5E,KAAKw5E,iEACHx5E,KAAKy5E,qNAM7Bg+H,GAAGz3M,KAAKw4M,QAASx4M,KAAKm7F,uLAQ5BgsH,GAAK,MACP,YAAY7lL,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,GACvC5hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,4DAA6DvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKw9M,cAAgB,EAAGx9M,KAAK+lM,gBAAkB,EAAG/lM,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAKonN,aAAerjL,KAAK3jB,KAAKpgB,KAAK+5F,YAAY,GAAK/5F,KAAKw9M,eAAiBx9M,KAAKw9M,cAChT,IAAIp5K,EAAI,CAACpkC,KAAK+5F,YAAY,GAAI/5F,KAAK+5F,YAAY,GAAI/5F,KAAKonN,aAAcpnN,KAAK+5F,YAAY,IACvF/5F,KAAK4mM,eAAiBx6J,GAAEhI,GAAIpkC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBxiK,EAAGpkC,KAAK8lM,cAAe,CAAC9lM,KAAK+lM,gBAAkB/lM,KAAKw9M,cAAe,EAAG,IAAKn/K,GAAE26B,OAAyB,iBAAlB13B,EAAG23C,WAA+B,IAAM,+BAAgCx3C,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKgsK,SAAW1qI,EAAIthC,KAAKw4M,QAAU/2K,EAAGzhC,KAAKm7F,WAAax5D,EAAG3hC,KAAKknN,mBAAqBtlL,EAAG5hC,KAAKmlM,UAAY,iBAAiBxjK,KAAK3hC,KAAKgsK,SAASxyF,gBAAgBx5E,KAAKgsK,SAASvyF,eAAez5E,KAAKgsK,SAAS1yF,gBAAgBt5E,KAAKgsK,SAASzyF,eAAev5E,KAAKw9M,gBAEzjB,cACE,IAAIl8K,GAAMthC,KAAKw9M,cAAgB,GAAKx9M,KAAKgsK,SAASzyF,YAAcv5E,KAAKgsK,SAASvyF,YAAah4C,EAAIzhC,KAAKgsK,SAAS1yF,aAAc33C,EAAI3hC,KAAKgsK,SAASzyF,YAC7I,MAAO,WACHi+H,GAAGx3M,KAAKm7F,WAAYn7F,KAAKknN,oBAAoB,EAAM,uRASnDj4D,GAAE,2DACoCjvJ,KAAK+lM,yDACb/lM,KAAK+lM,wGAEI/lM,KAAKw9M,uDACdx9M,KAAKw9M,gNAKW/7K,MAAME,yIAIrBL,+CACEthC,KAAKw9M,gDAChBx9M,KAAKw9M,sLAKHx9M,KAAKgsK,SAASxyF,wJAGZl4C,6HAGEthC,KAAKgsK,SAASvyF,mHAEdz5E,KAAKw9M,qEACI77K,wHAMf3hC,KAAKw9M,uMAIrB/F,GAAGz3M,KAAKw4M,QAASx4M,KAAKm7F,0IAQhCksH,GAAK,MACP,YAAY/lL,EAAIG,GAAI,EAAOE,EAAI,KAAMC,GAAI,GACvC5hC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,kIACkBvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK4jN,eAAmC,iBAAlBtiL,EAAG23C,WAA+Bx3C,GAAKzhC,KAAKmsJ,cAActgH,KAAK,QAASjK,GAAK5hC,KAAKmsJ,cAActgH,KAAK,0BAA2B7rC,KAAKgsK,SAAW1qI,EAAIthC,KAAKw4M,QAAU/2K,EAAGzhC,KAAKm7F,WAAax5D,EAAG3hC,KAAKknN,mBAAqBtlL,EAAG5hC,KAAKmlM,UAAY,aAAanlM,KAAKm7F,cAAcn7F,KAAK4jN,iBAEtjB,cACE,IAAItiL,EAAKthC,KAAK4jN,eAAiB,2BAA6B,2BAC5D,MAAO,WACHpM,GAAGx3M,KAAKm7F,WAAYn7F,KAAKknN,oBAAoB,EAAO,eAEpDj4D,GAAE,6KAImCjvJ,KAAK4jN,eAAiB,KAAO,wEAC9C5jN,KAAK4jN,eAAiB,EAAI,2xCA4BvBtiL,0sBAoBAA,yKAMjBm2K,GAAGz3M,KAAKw4M,QAASx4M,KAAKm7F,2HAOpC,SAASmsH,GAAIjmL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAG+6C,UAAW76C,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAIzpB,GAAEk9F,wBAAwBh3E,GAAIwD,EAAItD,EACtL,MAALsD,IAAcA,EAAI,CAAC,EAAG,IACtB,IAA2NoE,EAAvNnE,EAAI3pB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAG0D,EAAGzD,EAAG4B,GAAG,EAAM4B,GAAIM,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC5U,EAAE4wC,QAAQgC,IAAK5yC,EAAE4wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC5U,EAAEkxC,SAAUlxC,EAAEmxC,WAAajtC,EAAqB,iBAAjBlE,EAAEixC,WAC5L,OAAQ/sC,GAAKlE,EAAEkxC,SAAW,IAAMlxC,EAAEmxC,QAAU,IAAyB,IAAnBnxC,EAAEsxC,cAAwC,IAAlBtxC,EAAEuxC,aAAyC,IAApBvxC,EAAE6xC,eAA4C,IAArB7xC,EAAE4xC,gBAAwB5xC,EAAEoxC,aAAepxC,EAAEqxC,YAAcltC,EAAI,IAAI86K,GAAGj/K,EAAE+xC,SAAU/xC,EAAEwxC,aAAcxxC,EAAEyxC,aAAevtC,GAAKlE,EAAE6wC,UAAY,GAAK7wC,EAAE8wC,SAAW,GAAK9wC,EAAEuxC,aAAe,GAAKvxC,EAAEoxC,aAAepxC,EAAEqxC,aAAoC,IAArBrxC,EAAE4xC,gBAA4C,IAApB5xC,EAAE6xC,eAAuB7xC,EAAEoxC,WAAa,IAAM,GAAKjtC,EAAI,IAAIg7K,GAAGn/K,GAAII,EAAEyD,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAACzQ,EAAEi7K,kBAAqBj7K,EAAI,IAAIk7K,GAAGr/K,GAAII,EAAEyD,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC5U,EAAEwxC,eAAiB,CAAEuB,KAAM,QAASn+B,KAAM,CAAC5U,EAAEyxC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC5U,EAAEsxC,aAActxC,EAAEuxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC5U,EAAE4xC,eAAgB5xC,EAAE6xC,kBAAoBp4C,EAAE+3K,iBAAiBrtK,EAAG,CAACvK,EAAGwC,GAAIxC,EAAE88B,MAAOt2B,GAE/uB,IAAIm/K,GAAK,CAAE5uJ,WAAY/vD,GAAIgwD,YAAa,SAAUuO,WAAYmgJ,IAC1DE,GAAK,MACP,YAAYlmL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,MAAOnsJ,KAAKumM,SAAW,2KACoCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAG04C,YAAah6E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,mCAExT,cACE,MAAO,WACHl2C,GAAE,6iCAqCNw4D,GAAK,MACP,YAAYnmL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,KAAMnsJ,KAAKumM,SAAW,4HACMvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,kCAEtR,cACE,MAAO,WACHl2C,GAAE,y3CA4CV,SAASy4D,GAAIrmL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG+9C,GAAIv7C,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGu1C,YAAa9zC,GAAMvE,EAAGmG,EAAIzpB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAOj5B,EAAG7B,EAAGC,EAAGC,EAAGE,GAAG,GAAOsD,EAAI,IAAIy/K,GAAG1/K,GAAIE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwxC,aAAcxxC,EAAEyxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE8wC,QAAQgC,IAAK9yC,EAAE8wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC9U,EAAE0xC,aAAc1xC,EAAE2xC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE+wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEgxC,WAAa,CAAEiC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEoxC,WAAa,CAAE6B,KAAM,QAASn+B,KAAM,CAAC9U,EAAEqxC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC9U,EAAEkxC,YAAc,CAAE+B,KAAM,QAASn+B,KAAM,CAAC9U,EAAEuxC,YAAcvxC,EAAEsxC,cACznB,OAAO33C,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,GAAI,UAAW4D,GAElD,IAAI2/K,GAAK,CAAEhvJ,WAAY7vD,GAAI8vD,YAAa,SAAUuO,WAAYugJ,IAC9D,SAASE,GAAIvmL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAGi7C,UAAWh7C,EAAG9T,IAAK+T,EAAGo3C,gBAAiBl3C,EAAGm7C,WAAY15C,GAAMvE,EAAGmG,EAAIzpB,GAAEy8F,kBAAkB50E,EAAG9B,EAAE+6B,MAAO96B,EAAGC,EAAGC,EAAGE,GAAG,GAAOsD,EAAI,IAAI0/K,GAAG3/K,GAAIE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwxC,aAAcxxC,EAAEyxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE0xC,aAAe,EAAI1xC,EAAE8wC,QAAQgC,IAAK9yC,EAAE2xC,YAAc,EAAI3xC,EAAE8wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC9U,EAAE0xC,aAAc1xC,EAAE2xC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE+wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEgxC,WAAa,CAAEiC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEuxC,YAAcvxC,EAAEsxC,cACjjB,OAAO33C,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,GAAIxC,EAAE88B,MAAO12B,GAEhD,IAAI6/K,GAAK,CAAElvJ,WAAY3vD,GAAI4vD,YAAa,SAAUuO,WAAYygJ,IAC1DE,GAAK,MACP,YAAYxmL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,EAAIA,GAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,OAExP,cACE,MAAO,WACHl2C,GAAE,kPAUV,SAAS84D,GAAI1mL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAAIM,EAAI,IAAID,EAAEw9B,SAAUx9B,EAAEw9B,OAAQ/6B,EAAI/F,GAAEi+B,cAAc36B,EAAEw9B,OAAQ96B,EAAIq1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC/6B,MAASE,EAAI,IAAIwjL,GAAG1jL,GAAIG,EAAI9C,EAAE+3K,iBAAiBl1K,EAAG,CAACD,GAAIA,EAAEq6B,OAAQj6B,EAAIi1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOv9B,KAC/R,OAAOH,EAAE0kC,YAAY9hC,EAAEu8B,QAASn/B,EAAE0kC,YAAY5hC,EAAEq8B,QAASn8B,EAE3D,IAAIujL,GAAK,CAAErvJ,WAAYzvD,GAAI0vD,YAAa,SAAUuO,WAAY4gJ,IAC1DE,GAAK,MACP,YAAY3mL,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,KAAMnsJ,KAAKumM,SAAW,mFAAoFvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGy4C,SAAU/5E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,aAEpW,cACE,MAAO,YACFl2C,GAAE,ylCAkCX,SAASi5D,GAAI7mL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,GAAM9C,GAAM6+B,QAAS97B,EAAG7T,IAAK8T,EAAGg7C,UAAW/6C,GAAM5C,EAAG8C,EAAIpmB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO96B,EAAGC,EAAG,OAAQC,GAAI2B,EAAI,CAACzB,EAAEm0C,QAAQgC,IAAKn2C,EAAEm0C,QAAQz5E,MAAO2oC,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM,CAACnY,EAAE+0C,aAAc/0C,EAAEg1C,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,IAAI1W,IAAM,CAAE60C,KAAM,QAASn+B,KAAM,CAACnY,EAAE60C,aAAc70C,EAAE80C,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAACnY,EAAEm1C,eAAgBn1C,EAAEo1C,iBAAmB9xC,EAAI,IAAIkgL,GAAGxjL,GAC3b,OAAOhD,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,GAAIxC,EAAE88B,MAAO52B,GAEhD,IAAIqgL,GAAK,CAAExvJ,WAAYvvD,GAAIwvD,YAAa,SAAUuO,WAAY+gJ,IAC1DE,GAAK,MACP,YAAY9mL,EAAIG,GACd,GAAIzhC,KAAKmsJ,cAAgB,CAAC,IAAK,IAAK,MAAOnsJ,KAAKumM,SAAW,iGAAkGvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAE9K,EAAGy4C,UAAW/5E,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBtlK,EAAGy4C,SAAU/5E,KAAK8lM,eAAsB,YAANrkK,GAAyB,UAANA,EACjX,MAAM,IAAIwC,MAAM,8FACcxC,WAChCzhC,KAAK+6E,KAAOt5C,EAAGzhC,KAAKmlM,UAAY,0BAElC,cACE,MAAO,YACFl2C,GAAE,miDAuCE01C,GAAG,uBAAwB,QAAS3kM,KAAK+6E,uCAMlDstI,GAAK,MACP,YAAY/mL,EAAIG,EAAGE,GACjB,GAAI3hC,KAAKmsJ,cAAgB,CAAC,IAAK,IAAK,MAAOnsJ,KAAKumM,SAAW,iGAAkGvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAcz4D,EAAG04C,YAAah6E,KAAK4mM,eAAiBx6J,GAAE9K,EAAGy4C,UAAW/5E,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBtlK,EAAGy4C,SAAU/5E,KAAK8lM,eAAsB,YAANnkK,GAAyB,UAANA,EACrX,MAAM,IAAIsC,MAAM,+FACctC,WAChC3hC,KAAK+6E,KAAOp5C,EAAG3hC,KAAKmlM,UAAY,2BAElC,cACE,MAAO,YACFl2C,GAAE,w/CAsCE01C,GAAG,uBAAwB,QAAS3kM,KAAK+6E,uCAMtD,SAASutI,GAAIjnL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGu7C,GAAIt7C,GAAM/C,GAAM6+B,QAAS77B,EAAG9T,IAAK+T,EAAG+6C,UAAW76C,GAAM9C,EAAGuE,EAAI7nB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO76B,EAAGC,EAAG,OAAQE,GAAIqD,EAAI1D,EAAEs6B,MAAO32B,EAAI,IAAIsgL,GAAGniL,EAAG9B,EAAE+6B,MAAOr3B,GAAIE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC1W,EAAEszC,aAActzC,EAAEuzC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC1W,EAAEozC,aAAcpzC,EAAEqzC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0zC,eAAgB1zC,EAAE2zC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAACve,GAAEi+B,cAAcp2B,EAAE6zC,aAAe3xC,EAAImxK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/6B,EAAE+6B,MAAOl+D,MAAO,EAAGy9D,MAAO52B,KAC1kB,OAAOrG,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,EAAGC,GAAIyD,EAAGE,EAAGI,GAEhD,IAAImgL,GAAK,CAAE5vJ,WAAYrvD,GAAIsvD,YAAa,SAAUuO,WAAYmhJ,IAC9D,SAASE,GAAInnL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGu7C,GAAIt7C,GAAM/C,GAAM6+B,QAAS77B,EAAG9T,IAAK+T,EAAG+6C,UAAW76C,GAAM9C,EAAGuE,EAAI7nB,GAAE48F,sBAAsBr5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO76B,EAAGC,EAAG,OAAQE,GAAIqD,EAAIlG,EAAE88B,MAAO32B,EAAI,IAAIqgL,GAAGliL,EAAG4B,GAAIE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC1W,EAAEszC,aAActzC,EAAEuzC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC1W,EAAEozC,aAAcpzC,EAAEqzC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0zC,eAAgB1zC,EAAE2zC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAACve,GAAEi+B,cAAcp2B,EAAE6zC,aAAe3xC,EAAImxK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOj5B,EAAE4zC,QAAS74E,MAAO,EAAGy9D,MAAO52B,KACnkB,OAAOrG,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,EAAGwC,EAAGC,GAAIyD,EAAGE,EAAGI,GAEhD,IAAIqgL,GAAK,CAAE9vJ,WAAYnvD,GAAIovD,YAAa,SAAUuO,WAAYqhJ,IAC1DE,GAAK,MACP,YAAYpnL,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,SAAUnsJ,KAAKumM,SAAW,cAAevmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKimM,aAAevB,GAAGG,KAAM7kM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK+6E,KAAOt5C,EAAGzhC,KAAK2oN,cAAgBhnL,EAAG3hC,KAAKmlM,UAAY,QAAQ1jK,KAAKE,IAEtW,cACE,IAAIL,EAAIG,EAAkB,YAAdzhC,KAAK+6E,KAAqB,QAAU,gBAChD,OAAOz5C,EAAK,+DAEIG,yBACAA,yBACAA,yCAEAA,cACV,oEACuDzhC,KAAK2oN,kCAC7D15D,GAAE,+QAKI3tH,wRAYf,SAASsnL,GAAIvnL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,GAAMN,GAAMuyE,OAAQzvE,EAAGqwE,QAASpwE,GAAM1C,GAAI2C,EAAGC,GAAK3C,EAAEu9B,MAAMnnC,MAAM,EAAG,IAAMw8E,aAAc/vE,GAAMJ,GAAK,GAAI6B,GAAU,MAALzB,OAAY,EAASA,EAAEyiD,QAAU,EAAGp/C,EAAIrG,EAAEoiK,OAAOsG,SAAStoM,IAAI,sBAAwB,aAAe,aAAckmC,EAAI,CAACzD,EAAGC,GAAIyD,EAAI,IAAI0gL,GAAG3gL,EAAGnG,EAAE88B,MAAO52B,GACxT1D,EAAEumC,MAAQpmC,EAAGH,EAAEsmC,OAASpmC,EACxB,IAAuC6H,EAAnC/D,EAAI,SAAU8D,EAAI9H,EAAE+uE,WAAW/qE,GACnC8D,IAAMC,EAAI,IAAIunE,gBAAgBnvE,EAAGD,GAAI4H,EAAIC,EAAEgnE,WAAW/qE,IACtD,IAAI8C,EAAuB,IAAnBtJ,EAAEu9B,MAAMj/D,OAAe0hC,EAAEu9B,MAAM,GAAK,EAC5CjzB,EAAEs+J,UAAU,CAAE3G,OAAQpiK,EAAEoiK,OAAQn2H,OAAQ5lC,EAAGy2H,MAAOwtC,gBAAgB8c,gBAAiB7c,UAAW,kBAC9F,IAAIv/J,EAAI,QAASM,EAAItL,EAAE41F,eAAetvF,EAAG0E,GAAIO,EAAIvL,EAAE8pF,UAAU/pH,IAAIurC,EAAE6zB,QACnE5zB,EAAE29J,SAAWz+J,EAAE4/J,oBAAqB9+J,EAAE49J,UAAW,EACjD,IAAI39J,EAAI,CAAC,CAAE8tC,KAAM,SAAUn+B,KAAM,CAAC1R,IAAM,CAAE6vC,KAAM,UAAWn+B,KAAM,CAAC1W,KAClE,GAAIzE,EAAE+3K,iBAAiBxxK,EAAG,CAACpG,GAAI6K,EAAGQ,EAAGF,GAAIZ,EAAG,CAC1C,IAAIe,EAAI9I,EAAE+uE,WAAW,MACrB,IAAKjmE,EACH,MAAM,IAAIjJ,MAAM,6EAClBiJ,EAAE4mE,UAAU3nE,EAAG,EAAG,GAEpB,OAAO1K,EAAE0kC,YAAYp5B,EAAE6zB,QAASh/B,EAElC,IAAIknL,GAAK,CAAEnwJ,WAAYjvD,GAAIkvD,YAAa,SAAUuO,WAAYyhJ,IAC1Dv+K,GAAKswK,GAAG,CAAED,OAAQ3R,GAAG6G,IAAKrtC,cAAew5C,GAAIr5C,iBAAiB,IAC9DqmD,GAAK,CAAEpwJ,WAAYjnD,GAAIknD,YAAa,SAAUuO,WAAY98B,IAC9D,SAAS2+K,GAAG3nL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGwC,EAAGC,EAAG,MAAO5C,GAE5B,IAAIwnL,GAAK,CAAEtwJ,WAAY3+C,GAAI4+C,YAAa,SAAUuO,WAAY6hJ,IAC9D,SAASE,GAAI7nL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK2hD,SAAUphD,GAAMD,EAAGyC,EAAI9C,GAAMi/E,QAASl8E,EAAGm8E,WAAYl8E,EAAGm8E,OAAQl8E,GAAMlmB,GAAEm9F,qBAAqB55E,EAAGwC,EAAElkC,QAClJme,GAAEg8F,oBAAoBh2E,EAAEnkC,OAAQqkC,EAAGH,GACnC,IAAMuvC,KAAMlvC,EAAGm8E,MAAO16E,GAAM7nB,GAAEk+F,qBAAqBj4E,EAAGC,GAAIuD,EAAI5B,EAAEhmC,OAAQ6nC,EAAI,KAAMC,EAAI3D,EAAEnkC,OAAQkoC,EAAI,GACpG,IAAK,IAAI8D,EAAI,EAAGA,EAAIpE,IAAKoE,EAAG,CAC1B,IAAK,IAAIC,KAAKjG,EAAEgG,GAAI,CAClB,IAAgFa,GAA1E2zE,mBAAoBx1E,EAAG9kB,WAAYqmB,GAAMpuB,GAAEo+F,qBAAqBz0E,EAAGzD,EAAE4H,IAC3E9tB,GAAEghG,sBAAsBn0E,GAAK6B,EAAI3I,EAAE+H,IAAMY,EAAIgxK,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAG9G,EAAE+H,IAAMjuB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnuD,KAAQ9C,EAAEyD,KAAKkB,IACjH,IAAIC,EAAID,EAAEoyB,MAAMnnC,QAChB,IAAK,IAAIiV,EAAI,EAAGA,EAAIR,EAAEvsC,SAAU+sC,EAC9BD,EAAE0N,OAAOjO,EAAEQ,GAAI,EAAG,GACpB5O,GAAEy6B,YAAY/rB,EAAEoyB,MAAOnyB,KAAOD,EAAI2sK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOnyB,KAAQ5E,EAAEyD,KAAKkB,IAAW,OAANhF,EAAaA,EAAIgF,GAAKhF,EAAIsC,GAAG,CAAEu0B,OAAQ,CAAEv6B,EAAG0I,EAAGN,EAAG1E,GAAK7pB,QAASujB,IAAM2G,EAAEyD,KAAK9D,IAExLmE,EAAIpE,EAAI,IAAMrD,EAAEyH,IAAM,IAAMnE,EAAIihL,GAAG,CAAEpqJ,OAAQ,CAAE1zB,EAAGnD,GAAK7pB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMvyC,EAAEyH,IAAM7H,EAAEnkC,OAAS8nC,GAAIivC,UAAU,KAAY7uC,EAAEyD,KAAK9D,IAAKC,KAE7I,IAAK,IAAIkE,KAAK9D,EACZ8D,IAAMnE,GAAKtG,EAAE0kC,YAAYj6B,EAAE00B,QAC7B,OAAO74B,EAET,IAAIohL,GAAK,CAAExwJ,WAAY7uD,GAAI8uD,YAAa,SAAUuO,WAAY+hJ,IAC1DE,GAAM3O,GAAG,CAAEC,OAAQxK,GAAEyC,MACrB0W,GAAK,CAAE1wJ,WAAY3uD,GAAI4uD,YAAa,SAAUuO,WAAYiiJ,IAC1DE,GAAOjoL,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKs+C,GAAIh+C,EAAGtD,EAAGuD,GAAMN,EAAI8C,EAAI,IAAI41K,GAAGjR,GAAGiG,QAASrtK,EAAEw9B,MAAOv9B,EAAEu9B,OAC5F,OAAO19B,EAAE+3K,iBAAiBp1K,EAAG,CAACzC,EAAGC,GAAID,EAAE+8B,QAErC6qJ,GAAK,CAAE5wJ,WAAYzuD,GAAI0uD,YAAa,SAAUuO,WAAYmiJ,IAC1DE,GAAM7O,GAAG,CAAED,OAAQ3R,GAAGkG,MAAOvwI,MAAO,OAAQ6jG,cAAey4C,KAC3DyO,GAAK,CAAE9wJ,WAAYruD,GAAIsuD,YAAa,SAAUuO,WAAYqiJ,IAC1DE,GAAMjP,GAAG,CAAEC,OAAQxK,GAAE0C,MACrB+W,GAAK,CAAEhxJ,WAAYnuD,GAAIouD,YAAa,SAAUuO,WAAYuiJ,IAC1DE,GAAMnP,GAAG,CAAEC,OAAQxK,GAAE2C,IAAKtwC,cAAe04C,GAAIv8I,MAAO,YACpDmrJ,GAAK,CAAElxJ,WAAYjuD,GAAIkuD,YAAa,SAAUuO,WAAYyiJ,IAC9D,SAASE,GAAGzoL,GACV,IAAMu9B,OAAQt9B,EAAI0lC,MAAOvlC,EAAGvjB,QAASyjB,GAAMN,GAAKikD,IAAK1jD,GAAMH,GAAK4jD,MAAOjhD,GAAM9C,EAAI+C,EAAID,EAAE+6B,MAAMj/D,OAAQokC,EAAIF,EAAE+6B,MAAMnnC,QAASuM,EAAI3C,EAC9H,OAAOA,EAAI,IAAMvD,GAAE26B,SAAS30B,EAAI,IAAMzC,EAAG,IAAM,mCAAmCyC,EAAI,OAAOA,MAAOE,EAAIF,EAAIzC,EAAI,GAAI0C,EAAEoW,OAAOnW,EAAG,EAAG,GAAIm1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASyjB,EAAGqlC,MAAO,CAAE7H,MAAO76B,KAE5L,IAAIylL,GAAK,CAAEpxJ,WAAY/tD,GAAIguD,YAAa,SAAUuO,WAAY2iJ,IAC1DE,GAAMvP,GAAG,CAAEC,OAAQxK,GAAE4C,MAAOvwC,cAAe24C,KAC3C+O,GAAK,CAAEtxJ,WAAY7tD,GAAI8tD,YAAa,SAAUuO,WAAY6iJ,IAC1DE,GAAK,MACP,YAAY5oL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,OAAQ,QAASnsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,8CAA+CvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmqN,UAAY7oL,EAAIthC,KAAKmlM,UAAY,OAAO7jK,EAE9W,cACE,MAAO,uFAEgB,SAAnBthC,KAAKmqN,UAAuB,oCAAsC,4uBAyBpEl7D,GAAE,mLASR,SAASm7D,GAAG/oL,EAAGC,EAAIG,GACjB,IAAIE,EAAIF,EAAE8pF,UAAU/pH,IAAI6/B,EAAEu/B,QAASh/B,EAAIvD,GAAEi+B,cAAcj7B,EAAE89B,OAAQ/6B,EAAI/C,EAAE89B,MAAM99B,EAAE89B,MAAMj/D,OAAS,GAAImkC,EAAIzC,EAAIwC,EAAGE,EAAI,GAAIC,EAAIm1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7J,GAAKnjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC96B,EAAGD,MAChLE,EAAEuH,KAAKtH,GACP,IAAIE,EAAIF,EAAE46B,MAAOj5B,EAAI,IAAIgkL,GAAG,OAAQzlL,GAAIqD,EAAI,IAAIoiL,GAAG,OAAQzlL,GAAIsD,EAAI,CAAC,CAAE64B,OAAQj/B,EAAEy1F,mBAAmBhkG,KAAKwtC,OAAQlC,MAAO/8B,EAAEy1F,mBAAmBhkG,KAAKsrC,MAAOS,MAAO16B,GAAK,CAAEm8B,OAAQj/B,EAAEy1F,mBAAmB9tG,KAAKs3C,OAAQlC,MAAO/8B,EAAEy1F,mBAAmB9tG,KAAKo1C,MAAOS,MAAO16B,IAAMuD,EAAI1G,EAAK,EAAIyC,KAAKw2D,IAAM,EAAIx2D,KAAKw2D,GAAInyD,EAAI9G,EAAKmD,EAAE,GAAK,EAAGyH,EAAI,CAAC,CAAE6uC,KAAM,UAAWn+B,KAAM,CAAC5U,IAAM,CAAE+yC,KAAM,UAAWn+B,KAAM,CAACxU,KAAO+D,EAAI1K,EAAE+3K,iBAAiBtzK,EAAG6B,EAAG,UAAWmE,GAC3a5H,EAAEuH,KAAKM,GACP,IAAIjB,EAAIzJ,EAAE+3K,iBAAiB1xK,EAAGC,EAAG,UAAWmE,GAC5C5H,EAAEuH,KAAKX,GACP,IAAIuB,EAAI6tK,GAAG,CAAE17I,OAAQ,CAAExrC,KAAM+Y,EAAG7iB,KAAM4hB,GAAKhtB,QAASujB,IACpD6C,EAAEuH,KAAKY,GACP,IAAIM,EAAI2sK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGuB,GAAKvuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO99B,EAAE89B,SAC7D,OAAO76B,EAAEqV,QAAS3M,GAAMvL,EAAE0kC,YAAYn5B,EAAE4zB,SAAU7zB,EAEpD,SAASs9K,GAAIhpL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EACnD,OAAO8oL,GAAGzoL,GAAG,EAAOF,GAEtB,IAgDI6oL,GAhDAC,GAAK,CAAE5xJ,WAAY3tD,GAAI4tD,YAAa,SAAUuO,WAAYkjJ,IAC1DG,GAAK,MACP,YAAYlpL,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,gBAEzQ,cACE,MAAO,WACHl2C,GAAE,2TAWNw7D,GAAK,CAAE9xJ,WAAYvtD,GAAIwtD,YAAa,SAAUuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,MACnF,IAAM9X,MAAOiY,GAAMJ,EAAGM,EAAIL,EAAIM,EAAI,IAAI4oL,GAAG/oL,EAAE09B,OAC3C,OAAOx9B,EAAE63K,iBAAiB53K,EAAG,CAACH,GAAIA,EAAEi9B,SAElCgsJ,GAAMjQ,GAAG,CAAEC,OAAQxK,GAAE6C,MAAOxwC,cAAe44C,KAC3CwP,GAAK,CAAEhyJ,WAAYrtD,GAAIstD,YAAa,SAAUuO,WAAYujJ,IAC1DE,GAAMjQ,GAAG,CAAED,OAAQ3R,GAAGmG,UAAW3sC,cAAe64C,GAAI18I,MAAO,UAC3DmsJ,GAAK,CAAElyJ,WAAYntD,GAAIotD,YAAa,SAAUuO,WAAYyjJ,IAC1DE,GAAK,MACP,YAAYxpL,EAAIG,EAAGE,GAAI,GACrB3hC,KAAKimM,aAAevB,GAAGE,YAAa5kM,KAAK+5F,YAAc,CAAC,GAAI/5F,KAAKmsJ,cAAgB,GAAInsJ,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAACrkK,EAAG,EAAG,IAAKzhC,KAAK+qN,YAAcppL,EAAG3hC,KAAKmlM,UAAY,cAAcnlM,KAAK+qN,YAE9U,cACE,IAAIzpL,EAAKthC,KAAK+qN,YAAc,0CAA4C,4CACxE,MAAO,0CAC4B/qN,KAAK+qN,YAAc,mBAAqB,6BACvE97D,GAAE,8LAIe3tH,kLASrB0pL,GAAK,CAAEryJ,WAAYjtD,GAAIktD,YAAa,SAAUuO,WAAY8jJ,IAE1DC,GAAKvlM,KAAIuxC,QAAQ,yCACrB,SAAS+zJ,GAAI5pL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKgyE,OAAQzxE,GAAMN,GAAMgyE,YAAalvE,GAAMzC,EACvF,GAAS,MAALC,EACF,MAAM,IAAIqC,MAAM,4DAClB,IAAII,EAA+B,oBAApB4uE,kBAAmCrxE,aAAaqxE,iBAAkB3uE,EAA+B,oBAApB4uE,kBAAmCtxE,aAAasxE,iBAAkB3uE,EAAgC,oBAArB+7H,mBAAoC1+H,aAAa0+H,mBAA+C,oBAAnB5sD,iBAAkC9xE,aAAa8xE,gBAAiBjvE,EAA0B,oBAAf2uE,aAA8BxxE,aAAawxE,aAAcltE,EAAG4B,GAAKzD,EAAI,CAACzC,EAAE2xE,WAAY3xE,EAAE4xE,aAAe,CAAC5xE,EAAE+oC,MAAO/oC,EAAE8oC,QAAS3iC,EAAI,CAACD,EAAG5B,EAAG9B,GAAI4D,GAAI,EAAOI,EAAI/D,GAAKC,EAC9d,GAAIG,GAAKF,GAAK6D,EAAG,CACf,IAAIqE,EACJ,GAAIzE,EACFyE,EAAIhL,EAAEoiK,OAAOsnB,sBAAsB,CAAEr2I,OAAQlzC,QAC1C,CACH,GAAIwG,EAAG,CACL,IAAIsF,EAAI/nB,KAAIuxC,QAAQ,0CACb,MAANozJ,IAAc58K,IAAMw9K,MAAQA,GAAKx9K,EAAG48K,GAAK16K,SAASkhD,cAAc,UAAUqiB,WAAW,KAAM,CAAES,mBAAoBs3G,MAAQZ,GAAGz2G,OAAOlpC,MAAQzkC,EAAGokL,GAAGz2G,OAAOnpC,OAAS5iC,EAAGwiL,GAAGx2G,UAAUlyE,EAAG,EAAG,EAAGsE,EAAG4B,GAAIlG,EAAI0oL,GAAGz2G,OAE3M,IAAItmE,EAAIw+J,gBAAgBZ,SAAWY,gBAAgBqf,kBAAoBrf,gBAAgBsf,gBAAiBpsN,EAAI,aAAcuuC,EAAI/L,EAAE08H,eAAeuC,eAAe34H,EAAE,GAAIA,EAAE,GAAI9oC,EAAGsuC,GAC7K9L,EAAEwb,MAAMquK,2BAA2B,CAAEx2I,OAAQlzC,GAAK,CAAEuhC,QAAS31B,GAAK,CAACzF,EAAE,GAAIA,EAAE,KAAM0E,EAAIe,EAEvF,IAAIT,EAAI1O,GAAEi+B,cAAcv0B,GAAIiF,EAAI3O,GAAEm7B,eAAezxB,GAAIkF,EAAI,IAAI69K,GAAG/iL,EAAG3D,EAAG4D,GAAIkF,EAAI,CAAC,CAAE6tC,KAAM,SAAUn+B,KAAM,CAAC7P,IAAM,CAAEguC,KAAM,SAAUn+B,KAAM,CAACxY,IAAM,CAAE22C,KAAM,SAAUn+B,KAAM,IAAI5P,KAAOI,EAAI3L,EAAE41F,eAAe,CAACvvF,EAAG5B,GAAI,SAAUmH,EAAI5L,EAAE8pF,UAAU/pH,IAAI4rC,EAAEwzB,QAC7OvzB,EAAEs9J,SAAWl+J,EACb,IAAIa,EAAI7L,EAAE+3K,iBAAiBvsK,EAAG,CAACG,GAAI,QAASF,GAC5C,OAAOzL,EAAE0kC,YAAY/4B,EAAEwzB,QAAStzB,EAElC,IAAIpB,EAAItK,EAAEgb,KAAMzQ,EAAID,EACpB,GAAS,MAAL9H,GAAmB,IAANA,EAAS,CACxB+H,EAAI,IAAI5J,WAAWX,EAAE+oC,MAAQ/oC,EAAE8oC,OAAStmC,GACxC,IAAIqI,EAAIP,EAAEhsC,OAAQ6sC,EAAI,EACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAGO,IACrBA,EAAI,EAAI5I,IAAM+H,EAAEY,KAAOb,EAAEc,IAE7B,IAAI9B,EAAIzJ,EAAE41F,eAAetvF,EAAG,QAAS,IAAI6N,WAAWzJ,IACpD,OAAO1K,EAAEm+H,YAAY10H,EAAE01B,QAAS11B,EAElC,IAAIqgL,GAAK,MACP,YAAYjqL,EAAIG,EAAGE,EAAGC,EAAGwC,GACvBpkC,KAAKumM,SAAW,yBAA0BvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAKmsJ,cAAgB,CAAC,IAAK,OAAQ,YAAa9tI,GAAE4jE,2BAA2B3gD,EAAIG,GAAIpjB,GAAE4jE,2BAA2B3gD,EAAIK,GAAI3hC,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAqB,MAALlkK,IAAcvjB,GAAE4jE,2BAA2B3gD,EAAIM,GAAI5hC,KAAKmsJ,cAActgH,KAAK,WAAiB,MAALzH,IAAc/lB,GAAE4jE,2BAA2B3gD,EAAI8C,GAAIpkC,KAAKmsJ,cAActgH,KAAK,UAAW7rC,KAAKwrN,YAAc5pL,EAAG5hC,KAAKyrN,WAAarnL,EAAGpkC,KAAKmlM,UAAY,YAEnlB,cACE,IAAI7jK,EAAK,MACW,MAApBthC,KAAKwrN,cAAwBlqL,EAAK,iCAClC,IAAIG,EAAI,MACR,OAA0B,MAAnBzhC,KAAKyrN,aAAuBhqL,EAAI,gCAAiC,WACpEwtH,GAAE,kQAMoB3tH,kCACDG,yOAQzBiqL,GAAK,CAAE/yJ,WAAY/sD,GAAIgtD,YAAa,SAAUuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC9F,IAAMyJ,EAAGvJ,EAAG+qC,MAAO9qC,EAAGw7C,OAAQh5C,EAAGtW,KAAMuW,EAAGg5C,SAAU/4C,GAAMjD,GAAKi8C,gBAAiB/4C,GAAMjD,EAAImD,EAAIhD,EAAGyE,EAAI,CAACvE,EAAG0C,EAAGC,GAAIwD,EAAI,KAC/G,MAAL1D,IAAc0D,EAAI1D,EAAE+6B,MAAOj5B,EAAE2F,KAAKzH,IAClC,IAAI2D,EAAI,KACH,MAALnG,IAAcmG,EAAInG,EAAEu9B,MAAOj5B,EAAE2F,KAAKjK,IAClC,IAAIoG,EAAI,IAAIujL,GAAG5pL,EAAEw9B,MAAO96B,EAAE86B,MAAO76B,EAAE66B,MAAOr3B,EAAGC,GAAIK,EAAI,CAAC,CAAE2yC,KAAM,UAAWn+B,KAAM,CAACrY,KAChF,OAAOE,EAAE+0K,iBAAiBxxK,EAAG9B,EAAGvE,EAAE+8B,MAAOt2B,KAE3C,SAASujL,GAAItqL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAGw0C,WAAY/yC,EAAGo5C,UAAWx3C,EAAG6zC,gBAAiB5zC,EAAGozD,WAAYnzD,EAAGqzD,eAAgBjzD,GAAMzG,EAAGuK,EAAI7tB,GAAEk9F,wBAAwBr1E,GAAIiG,EAAI9tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAGuD,EAAGrD,EAAGsD,GAAG,EAAOmE,GAC1T,OAAOm4K,GAAG,CAAEn5K,EAAGtJ,EAAG8tB,OAAQtrB,EAAG4nI,SAAU7/H,EAAGjuB,QAASujB,EAAGmmD,KAAMvjD,EAAG+2D,uBAAwB92D,EAAG+2D,eAAgBjzD,EAAG+yD,WAAYnzD,IAE3H,IAAI4jL,GAAK,CAAEjzJ,WAAY7sD,GAAI8sD,YAAa,SAAUuO,WAAYwkJ,IAC9D,SAASE,GAAIxqL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAG8tB,OAAQtrB,EAAGwjD,KAAMvjD,EAAG+2D,uBAAwB92D,GAAMhD,GAAM6+B,QAAS57B,EAAG/T,IAAKiU,EAAG66C,UAAWp5C,EAAGy1C,gBAAiB7zC,EAAGqzD,WAAYpzD,EAAGszD,eAAgBrzD,GAAMrG,EAAGyG,EAAIlC,EAC3M,MAALkC,IAAcA,EAAI,CAAC,EAAG,IAAK/J,GAAE26B,OAAO36C,GAAEq9F,+BAA+Bn3E,EAAG6D,GAAI,IAAM,gFAAgF7D,oBAAoB6D,MACtL,IAAI8D,EAAI7tB,GAAEy8F,kBAAkBl5E,EAAEu9B,MAAO/6B,EAAE+6B,MAAO56B,EAAG6D,EAAG3D,EAAGqD,GAAG,GAAOqE,EAAI,CAACvK,EAAGwC,GAAI8G,EAAS,MAAL7G,EAAWoI,EAAS,MAALnI,EAChG4G,GAAKiB,EAAEN,KAAKxH,GAAIoI,GAAKN,EAAEN,KAAKvH,GAC5B,IAAsH0I,EAAlHD,EAAI,CAAC,CAAEguC,KAAM,QAASn+B,KAAM,CAAC1Q,EAAE0sC,QAAQgC,IAAK1uC,EAAE0sC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC1Q,EAAEgtC,SAAUhtC,EAAEitC,WACzG,OAAOjtC,EAAE2sC,UAAY,GAAK3sC,EAAE4sC,SAAW,GAAK5sC,EAAEqtC,aAAe,GAAKrtC,EAAEktC,aAAeltC,EAAEmtC,aAAoC,IAArBntC,EAAE0tC,gBAA4C,IAApB1tC,EAAE2tC,eAAuB3tC,EAAEktC,WAAa,IAAM,GAAKpsC,EAAI,IAAIm6K,GAAGj7K,EAAGhB,EAAGnD,EAAG0E,GAAIM,EAAElB,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC5P,EAAEo6K,kBAAqBp6K,EAAI,IAAIq6K,GAAGn7K,EAAGhB,EAAGnD,EAAG0E,GAAIM,EAAElB,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAAC1Q,EAAEstC,eAAiB,CAAEuB,KAAM,QAASn+B,KAAM,CAAC1Q,EAAEutC,cAAgB,CAAEsB,KAAM,QAASn+B,KAAM,CAAC1Q,EAAEotC,aAAcptC,EAAEqtC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC1Q,EAAE0tC,eAAgB1tC,EAAE2tC,kBAA0B,cAAN9xC,IAAsBgF,EAAElB,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAM,CAAC5U,KAAOgF,EAAEu5J,UAAY,iBAAkB9kK,EAAE+3K,iBAAiBxsK,EAAGb,EAAG,UAAWY,GAEjnB,IAAI++K,GAAK,CAAEnzJ,WAAY3sD,GAAI4sD,YAAa,SAAUuO,WAAY0kJ,IAC1DE,GAAK,MACP,YAAYzqL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,YAAY7jK,EAAMthC,KAAKszK,SAAWhyI,EAAIthC,KAAKumM,SAAW,6BAA6Bb,GAAGpkK,MAElV,cACE,IAAIA,EACJ,OAA2BA,EAApBthC,KAAKszK,SAAW,EAAS,sBAA6B,mBAAoB,WAC7ErkB,GAAE,uSAMoB3tH,uLAU9B,SAAS0qL,GAAI3qL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK64D,OAAQv4D,EAAGukD,QAAStkD,GAAMN,EAAI8C,EAAIxC,EAAEu9B,MAAO96B,EAAID,EAAEA,EAAElkC,OAAS,GAAIokC,EAAIjG,GAAEi+B,cAAc36B,EAAEw9B,QAAS56B,EAAGE,EAAGyB,EAAG4B,GAAKzpB,GAAEu2F,mBAAmBjzE,EAAGC,GAAImG,EAAI2xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAGJ,MAAS2D,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGvJ,GAAKzjB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC9gC,GAAEi+B,cAAc36B,EAAEw9B,OAASj5B,EAAGA,MACzU,GAAIzE,EAAEq+H,mBAAmB,CAACn+H,EAAGC,KAAmB,WAAZD,EAAE+8B,MAAoB,CACxD,IAAIjyB,EAAIhL,EAAEw/B,SAASr/B,EAAEg/B,QAAS7zB,EAAItL,EAAEknG,WAAWhnG,GAAIqL,EAAIquK,GAAG5uK,EAAGM,EAAGpL,EAAE+8B,MAAOj6B,EAAGJ,EAAG6B,EAAG4B,EAAGnG,EAAEw9B,MAAO76B,GAC9F,OAAO7C,EAAE41F,eAAe9yF,EAAG5C,EAAE+8B,MAAO1xB,EAAEluC,QAExC,IAAIspC,EAAI,IAAI2jL,GAAG1nL,EAAG,CAACI,EAAGyB,IAAKgG,EAAI,CAAC,CAAE6uC,KAAM,QAASn+B,KAAM,CAACvY,IAAM,CAAE02C,KAAM,QAASn+B,KAAM9U,IAAMqE,EAAI1K,EAAE+3K,iBAAiBpxK,EAAG,CAACJ,EAAGD,GAAIC,EAAE02B,MAAOxyB,GAAIhB,EAAIwuK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KACjM,OAAO9C,EAAE0kC,YAAYp+B,EAAE64B,QAASn/B,EAAE0kC,YAAYn+B,EAAE44B,QAASn/B,EAAE0kC,YAAYh6B,EAAEy0B,QAAS11B,EAEpF,IAAI+gL,GAAK,CAAEtzJ,WAAYvsD,GAAIwsD,YAAa,SAAUuO,WAAY6kJ,IAC1DE,GAAK,MACP,YAAY5qL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGtJ,QAASh4B,KAAKmsN,OAAS7qL,EAAIthC,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,SAE7S,cACE,IAAI7jK,EAAK8qL,GAAIpsN,KAAKmsN,QAClB,MAAO,WACHl9D,GAAE,4SAK0C3tH,mCAMpD,SAAS8qL,GAAI/qL,GACX,IAAIC,EAAK,CAAC,UAAW,UAAW,UAAW,WAAYG,EAAI,GAC3D,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAEnhC,OAAQyhC,IACtB,IAANA,EAAUF,EAAEoK,KAAK,UAAYpK,EAAEoK,KAAK,GAAGvK,EAAGK,IAC5C,OAAOF,EAAEi2B,OAEX,SAAS20J,GAAGhrL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGskD,QAAS9hD,GAAM9C,GAAM01C,KAAM3yC,EAAG8hD,UAAW7hD,GAAM3C,EAAG4C,EAAIlG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI16B,EAAIpmB,GAAEshG,aAAauB,yBAAyBt/E,EAAGwC,EAAGG,EAAGD,GAAI4B,EAAI7H,GAAEi+B,cAAcl4B,EAAE+6B,OAAQr3B,EAAI,GAAIC,EAAI2xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAEu0C,UAAWv0C,EAAEu8E,UAAWv8E,EAAEw8E,QAASx8E,EAAEozD,cAAiB7vD,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAEu0C,UAAW9yC,EAAIzB,EAAEu0C,cACvalxC,EAAE+D,KAAK9D,GAAID,EAAE+D,KAAK7D,GAClB,IAAII,EAAI,CAAC3D,EAAEu0C,UAAWv0C,EAAEu8E,UAAW96E,EAAIzB,EAAEu0C,UAAWv0C,EAAEozD,WACtD,GAAIp2D,EAAEq+H,mBAAmB,CAACl+H,EAAGwC,IAAK,CAChC,IAAI2I,EAAItL,EAAE8pF,UAAU/pH,IAAIwmC,EAAE44B,QAAQ9hE,OAAQkuC,EAAI/sB,GAAG+nB,EAAEm3B,MAAOn3B,EAAE02B,MAAO3xB,GAAIG,EAAIzL,EAAE8pF,UAAU/pH,IAAIumC,EAAE64B,QAAQ9hE,OAAQsuC,EAAIntB,GAAG8nB,EAAEo3B,MAAOp3B,EAAE22B,MAAOxxB,GAAIG,EAAIiuK,GAAGluK,EAAGJ,EAAG5E,GACvJ,OAAON,EAAE6R,QAASrM,GAAM7L,EAAE0kC,YAAY74B,EAAEszB,SAAUn/B,EAAE41F,eAAe5yF,EAAEs1D,YAAa1sD,EAAEqxB,MAAOrxB,EAAEvuC,QAE/F,IAAIotC,EAAI,IAAIggL,GAAGnkL,EAAEo3B,MAAO/2B,GAAI+D,EAAI1K,EAAE+3K,iBAAiBttK,EAAG,CAACnE,EAAGC,GAAID,EAAE22B,OAChE52B,EAAE+D,KAAKM,GACP,IAAIjB,EAAIwuK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,EAAEs1D,eAC7D,OAAOjyD,EAAE6R,QAASlN,GAAMhL,EAAE0kC,YAAY15B,EAAEm0B,SAAU11B,EAEpD,IAAIohL,GAAK,CAAE3zJ,WAAYrsD,GAAIssD,YAAa,SAAUuO,WAAYklJ,IAC1DE,GAAM5R,GAAG,CAAED,OAAQ3R,GAAGoG,QAAS5sC,cAAei5C,GAAI98I,MAAO,SACzD8tJ,GAAK,CAAE7zJ,WAAYjsD,GAAIksD,YAAa,SAAUuO,WAAYolJ,IAC1DE,GAAM9R,GAAG,CAAED,OAAQ3R,GAAGqG,cAAe1wI,MAAO,OAAQ6jG,cAAeg5C,KACnEmR,GAAK,CAAE/zJ,WAAY/rD,GAAIgsD,YAAa,SAAUuO,WAAYslJ,IAC9D,SAASE,GAAItrL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKgkD,MAAO1jD,GAAML,EACnD,OAAO8oL,GAAGzoL,GAAG,EAAMF,GAErB,IAAImrL,GAAK,CAAEj0J,WAAY7rD,GAAI8rD,YAAa,SAAUuO,WAAYwlJ,IAC1DE,GAAMpS,GAAG,CAAEC,OAAQxK,GAAE8C,UAAWt0I,MAAO,SACvCouJ,GAAK,CAAEn0J,WAAYvrD,GAAIwrD,YAAa,SAAUuO,WAAY0lJ,IAC1DE,GAAMtS,GAAG,CAAEC,OAAQxK,GAAE+C,OAAQv0I,MAAO,SACpCsuJ,IAAK,CAAEr0J,WAAYrrD,GAAIsrD,YAAa,SAAUuO,WAAY4lJ,IAC1DE,IAAMxS,GAAG,CAAEC,OAAQxK,GAAEgD,OAAQx0I,MAAO,SACpCwuJ,IAAK,CAAEv0J,WAAYnrD,GAAIorD,YAAa,SAAUuO,WAAY8lJ,KAC9D,SAASE,IAAI9rL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM4lD,MAAO9iD,GAAMzC,EAAG0C,EAAI,CAAC,CAAE02C,KAAM,UAAWn+B,KAAM,CAACxY,KAAOE,EAAI,IAAIk2K,GAAG54K,EAAEu9B,MAAO+wI,GAAEwD,UAAW,gBACtJ,OAAOjyK,EAAE+3K,iBAAiBl1K,EAAG,CAAC1C,GAAI,UAAWyC,GAE/C,IAAI+oL,IAAK,CAAEz0J,WAAY3qD,GAAI4qD,YAAa,SAAUuO,WAAYgmJ,KAC1DE,IAAM1S,GAAG,CAAED,OAAQ3R,GAAGsG,KAAM3wI,MAAO,OAAQ6jG,cAAem5C,KAC1D4R,IAAK,CAAE30J,WAAYzqD,GAAI0qD,YAAa,SAAUuO,WAAYkmJ,KAC1DE,IAAM5S,GAAG,CAAED,OAAQ3R,GAAGuG,WAAY5wI,MAAO,OAAQ6jG,cAAek5C,KAChE+R,IAAK,CAAE70J,WAAYvqD,GAAIwqD,YAAa,SAAUuO,WAAYomJ,KAC1DE,IAAK,MACP,YAAYnsL,GACVthC,KAAKmsJ,cAAgB,GAAInsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,2BAA4BvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,GAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,WAEpT,cACE,MAAO,WACHl2C,GAAE,gKAQV,SAASy+D,IAAIrsL,GACX,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAG6lD,IAAKrjD,GAAM3C,EAAG4C,GAAKzC,EAAID,IAAMyC,EAAI,GAAIE,EAAI,IAAImpL,IAAGrpL,GAAIG,EAAI,CAAC,CAAEw2C,KAAM,UAAWn+B,KAAM,CAACjb,IAAM,CAAEo5C,KAAM,UAAWn+B,KAAM,CAACvY,KAC3K,OAAO/C,EAAGk4K,iBAAiBl1K,EAAG,GAAI,UAAWC,GAE/C,IAAIopL,IAAK,CAAEh1J,WAAYrqD,GAAIsqD,YAAa,SAAUuO,WAAYumJ,KAC1DE,IAAMnT,GAAG,CAAEC,OAAQxK,GAAEkD,IAAK7wC,cAAeo5C,KACzCkS,IAAK,CAAEl1J,WAAYnqD,GAAIoqD,YAAa,SAAUuO,WAAYymJ,KAC1DE,IAAMrT,GAAG,CAAEC,OAAQxK,GAAEmD,QACrB0a,IAAK,CAAEp1J,WAAYjqD,GAAIkqD,YAAa,SAAUuO,WAAY2mJ,KAC1DE,IAAMrT,GAAG,CAAED,OAAQ3R,GAAGwG,YAAa7wI,MAAO,SAC1CuvJ,IAAK,CAAEt1J,WAAY7pD,GAAI8pD,YAAa,SAAUuO,WAAY6mJ,KAC1DE,IAAMzT,GAAG,CAAEC,OAAQxK,GAAEoD,cACrB6a,IAAK,CAAEx1J,WAAY3pD,GAAI4pD,YAAa,SAAUuO,WAAY+mJ,KAC1DE,IAAMzT,GAAG,CAAED,OAAQ3R,GAAGyG,aACtB6e,IAAK,CAAE11J,WAAYzpD,GAAI0pD,YAAa,SAAUuO,WAAYinJ,KAC1DE,IAAK,4RAWLC,IAAK,MACP,YAAYjtL,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,qDAAsDvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,MAE/U,cACE,MAAO,SACLl2C,GAAE,ghBAiBEq/D,8EAQNE,IAAK,MACP,YAAYltL,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,qDAAsDvmM,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKyuN,eAAiB,GAAIpwL,GAAE26B,OAAOv3B,GAAKzhC,KAAKyuN,eAAgB,IAAM,wCAAwCzuN,KAAKyuN,qCAAqChtL,KAAMzhC,KAAK+5F,YAAcz4D,EAAIthC,KAAK0uN,qBAAuB1uN,KAAK8lM,cAAc,GAAK,EAAI9lM,KAAKyuN,eAAgBzuN,KAAK4mM,eAAiB,CAAE17J,EAAG,CAAC,GAAI7M,EAAG,CAAC,GAAI8M,EAAG,CAAC,EAAG,IAAMnrC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa,CAAC/5F,KAAK0uN,qBAAsB1uN,KAAK8lM,cAAc,GAAI9lM,KAAK8lM,cAAc,KAAM9lM,KAAKmlM,UAAY,aAEvmB,cACE,MAAO,2CAC6BnlM,KAAK8lM,cAAc,0CACxB9lM,KAAK0uN,qDACX1uN,KAAKyuN,0BAE5Bx/D,s2BAuBIq/D,6FAOV,SAASK,IAAIttL,GACX,IAAiHoD,GAA3Gm6B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMqmD,YAAavjD,EAAGwjD,KAAMvjD,EAAG6iD,MAAO5iD,EAAGujD,KAAMtjD,GAAM5C,EACrG8C,EAATL,EAAI,GAAS,IAAImqL,IAAG3sL,EAAEu9B,OAAa,IAAIqvJ,IAAG5sL,EAAEu9B,MAAO/6B,GACnD,IAAI8B,EAAI,CAAC,CAAE60C,KAAM,QAASn+B,KAAM,CAACxY,IAAM,CAAE22C,KAAM,UAAWn+B,KAAM,CAACvY,IAAM,CAAE02C,KAAM,UAAWn+B,KAAM,CAACtY,IAAM,CAAEy2C,KAAM,UAAWn+B,KAAM,CAACrY,KACjI,OAAO9C,EAAE+3K,iBAAiB/0K,EAAG,CAAC7C,GAAIA,EAAE88B,MAAOx4B,GAE7C,IAAI0oL,IAAK,CAAEj2J,WAAY/qD,GAAIgrD,YAAa,SAAUuO,WAAYwnJ,KAC1DE,IAAK,MACP,YAAYvtL,GACVthC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,aAAc,cAAe,MAAOnsJ,KAAKumM,SAAW,0DAA2DvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,WAElX,cACE,MAAO,SACLl2C,GAAE,2mDAoDR,SAAS6/D,IAAIztL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGvD,EAAG+F,EAAGu7C,GAAIt7C,GAAM/C,GAAMqmD,YAAarjD,EAAGsjD,KAAMrjD,EAAG2iD,MAAOziD,EAAGojD,KAAM3hD,GAAMvE,EAAGmG,EAAI,IAAI+mL,IAAGjtL,EAAEu9B,OAAQp3B,EAAI,CAAC,CAAEgzC,KAAM,QAASn+B,KAAM,CAACtY,IAAM,CAAEy2C,KAAM,UAAWn+B,KAAM,CAACrY,IAAM,CAAEw2C,KAAM,UAAWn+B,KAAM,CAACnY,IAAM,CAAEs2C,KAAM,UAAWn+B,KAAM,CAAC1W,KAChR,OAAOzE,EAAE+3K,iBAAiB1xK,EAAG,CAAClG,EAAGwC,EAAGC,GAAIzC,EAAE88B,MAAO32B,GAEnD,IAAIgnL,IAAK,CAAEp2J,WAAY7qD,GAAI8qD,YAAa,SAAUuO,WAAY2nJ,KAC1DE,IAAMrU,GAAG,CAAED,OAAQ3R,GAAG0G,IAAKltC,cAAes5C,KAC1CoT,IAAK,CAAEt2J,WAAYjoD,GAAIkoD,YAAa,SAAUuO,WAAY6nJ,KAC9D,SAASE,IAAI7tL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAGq3C,gBAAiBp3C,GAAM5C,EAAG8C,EAAI,EAAGyB,EAAI7nB,GAAEg9F,kBAAkBz5E,EAAEu9B,MAAO/6B,EAAGC,EAAGI,EAAGH,EAAGC,GAChL,OAAO47K,GAAGv+K,EAAGsE,EAAG,MAAOzE,GAEzB,IAAI0tL,IAAK,CAAEx2J,WAAY3oD,GAAI4oD,YAAa,SAAUuO,WAAY+nJ,KAC9D,SAASE,IAAI/tL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMo6C,WAAYt3C,EAAG+7B,QAAS97B,EAAG7T,IAAK8T,EAAG20C,WAAY10C,EAAGo3C,gBAAiBl3C,GAAM9C,EAAGuE,EAAI,CAAC,EAAG,EAAG,GAAI4B,EAAIzpB,GAAEi9F,kBAAkB15E,EAAEu9B,MAAO/6B,EAAGC,EAAG6B,EAAG5B,EAAGG,EAAGF,GAAIwD,EAAI,IAAI+3K,GAAGh4K,EAAG,OAAQE,EAAI,CAAC,CAAE+yC,KAAM,QAASn+B,KAAM,CAAC9U,EAAEsyC,YAAatyC,EAAEwxC,aAAcxxC,EAAEyxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC9U,EAAE8wC,QAAQoC,MAAOlzC,EAAE8wC,QAAQgC,IAAK9yC,EAAE8wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC9U,EAAEqyC,QAASryC,EAAEoxC,SAAUpxC,EAAEqxC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC9U,EAAEwyC,qBAAsBxyC,EAAE4xC,sBAAuB5xC,EAAE6xC,wBACrgB,OAAOl4C,EAAE+3K,iBAAiBzxK,EAAG,CAACnG,GAAIA,EAAE88B,MAAO12B,GAE7C,IAAIqnL,IAAK,CAAE12J,WAAYzoD,GAAI0oD,YAAa,SAAUuO,WAAYioJ,KAC1DE,IAAK,MACP,YAAYhuL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,UAAWnsJ,KAAKumM,SAAW,gIAClBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,oBAEnQ,cACE,MAAO,WACHl2C,GAAE,oqDA8CNsgE,IAAK,MACP,YAAYjuL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAM,UAAWnsJ,KAAKumM,SAAW,wHACHvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAGw4C,QAAS95E,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,oBAElR,cACE,MAAO,WACHl2C,GAAE,mnEA2DV,SAASugE,IAAInuL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,GAAM9C,EAAI+C,EAAID,GAAKs3C,WAAYp3C,EAAG67B,QAAS57B,EAAG/T,IAAKiU,EAAGk3C,gBAAiBz1C,GAAMvE,EAAGmG,EAAI,CAAC,EAAG,EAAG,GAAIC,EAAI1pB,GAAEi9F,kBAAkBj3E,EAAE86B,MAAO76B,EAAGC,EAAGuD,EAAGrD,EAAGyB,GAAI8B,EAAI,IAAI83K,GAAG/3K,EAAG,OAAO,GAAOK,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEqyC,YAAaryC,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAE6wC,QAAQoC,MAAOjzC,EAAE6wC,QAAQgC,IAAK7yC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAEoyC,QAASpyC,EAAEmxC,SAAUnxC,EAAEoxC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuyC,qBAAsBvyC,EAAE2xC,sBAAuB3xC,EAAE4xC,wBAA0BztC,EAAIzK,EAAE+3K,iBAAiBxxK,EAAG,CAAC3D,GAAI,QAAS+D,GAAI+D,EAAI,IAAIojL,IAAGxnL,GAC5lBK,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEqyC,YAAaryC,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuyC,qBAAuB,EAAIvyC,EAAE6wC,QAAQoC,MAAOjzC,EAAE2xC,sBAAwB,EAAI3xC,EAAE6wC,QAAQgC,IAAK7yC,EAAE4xC,qBAAuB,EAAI5xC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuyC,qBAAsBvyC,EAAE2xC,sBAAuB3xC,EAAE4xC,uBAAyB,CAAEoB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEkyC,WAAa,CAAEc,KAAM,QAASn+B,KAAM,CAAC7U,EAAE8wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC7U,EAAE+wC,YAC9b,IAAI5tC,EAAIzJ,EAAE+3K,iBAAiBrtK,EAAG,CAACvK,EAAGsK,GAAI7H,EAAEq6B,MAAOt2B,GAC/C,OAAO3G,EAAE0kC,YAAYj6B,EAAE00B,QAAS11B,EAElC,IAAIukL,IAAK,CAAE92J,WAAYvoD,GAAIwoD,YAAa,SAAUuO,WAAYqoJ,KAC9D,SAASE,IAAIruL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKs+C,GAAI/9C,EAAGyjD,MAAOjhD,EAAG6sG,OAAQ5sG,GAAM/C,EAAIgD,EAAIF,EACvFqjK,GAAG,CAACrjK,EAAGC,GAAI,eACX,IAAMq3C,WAAYn3C,EAAG47B,QAAS17B,EAAGjU,IAAK0V,EAAGy1C,gBAAiB7zC,GAAMnG,EAAGoG,EAAI1pB,GAAEg9F,kBAAkB/2E,EAAE66B,MAAO56B,EAAGE,EAAG,EAAGyB,EAAG4B,GAAIE,EAAI,IAAIy3K,GAAG13K,EAAG,OAAO,GAAOK,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAE6wC,QAAQgC,IAAK7yC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAE6xC,eAAgB7xC,EAAE8xC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAAC7U,EAAEmxC,SAAUnxC,EAAEoxC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC7U,EAAE2xC,sBAAuB3xC,EAAE4xC,wBAA0BztC,EAAIzK,EAAE+3K,iBAAiBxxK,EAAG,CAAC1D,GAAI,QAAS8D,GAAI+D,EAAI,IAAImjL,IAAGvnL,GAC7fK,EAAI,CAAC,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,EAAEuxC,aAAcvxC,EAAEwxC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC7U,EAAE2xC,sBAAwB,EAAI3xC,EAAE6wC,QAAQgC,IAAK7yC,EAAE4xC,qBAAuB,EAAI5xC,EAAE6wC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC7U,EAAE6xC,eAAgB7xC,EAAE8xC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAAC7U,EAAE2xC,sBAAuB3xC,EAAE4xC,uBAAyB,CAAEoB,KAAM,QAASn+B,KAAM,CAAC7U,EAAE8wC,YAAc,CAAEkC,KAAM,QAASn+B,KAAM,CAAC7U,EAAE+wC,YAChY,IAAI5tC,EAAIzJ,EAAE+3K,iBAAiBrtK,EAAG,CAACvK,EAAGsK,GAAI5H,EAAEo6B,MAAOt2B,GAC/C,OAAO3G,EAAE0kC,YAAYj6B,EAAE00B,QAAS11B,EAElC,IAAIykL,IAAK,CAAEh3J,WAAYroD,GAAIsoD,YAAa,SAAUuO,WAAYuoJ,KAC9D,SAASE,IAAIvuL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKq6C,WAAY95C,EAAGu+B,QAAS/7B,EAAG5T,IAAK6T,EAAG8lD,oBAAqB7lD,GAAM3C,GAAKuJ,EAAG3G,GAAMjD,EAC5HjD,GAAE26B,OAA0B,IAAnBz0B,EAAE46B,MAAMj/D,OAAc,IAAM,uDAAuDqkC,EAAE46B,MAAMj/D,WACpG,IAAIukC,EAAI,CAAC,EAAG,GACZpG,GAAE26B,OAAO36C,GAAEq9F,+BAA+Bt3E,EAAGK,GAAI,IAAM,wEAAwEL,oBAAoBK,MACnJ,IAAIyB,EAAI7nB,GAAEg9F,kBAAkB92E,EAAE46B,MAAOv9B,EAAGwC,EAAGK,EAAGJ,GAAIyD,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM,CAAC1W,EAAEozC,aAAcpzC,EAAEqzC,cAAgB,CAAEwB,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0yC,QAAQgC,IAAK10C,EAAE0yC,QAAQz5E,OAAS,CAAE47E,KAAM,QAASn+B,KAAM,CAAC1W,EAAE0zC,eAAgB1zC,EAAE2zC,gBAAkB,CAAEkB,KAAM,QAASn+B,KAAM,CAAC1W,EAAEgzC,SAAUhzC,EAAEizC,UAAY,CAAE4B,KAAM,QAASn+B,KAAM,CAAC1W,EAAEwzC,sBAAuBxzC,EAAEyzC,wBAA0B5xC,EAAI,IAAI03K,GAAGv5K,EAAG,OAAO,GAAQ8B,EAAIvG,EAAE+3K,iBAAiBzxK,EAAG,CAACxD,GAAIA,EAAEm6B,MAAO52B,GAC7aC,EAAI,IAAI03K,GAAGv5K,EAAG,OAAO,GAAM,EAAM5B,GACjC,IAAI8D,EAAI3G,EAAE+3K,iBAAiBzxK,EAAG,CAACxD,GAAI,QAASuD,GAC5C,MAAO,CAACE,EAAGI,GAEb,IAAIynL,IAAK,CAAEl3J,WAAYnoD,GAAIooD,YAAa,SAAUuO,WAAYyoJ,KAC9D,SAASE,IAAIzuL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGwC,EAAGC,EAAG,MAAO5C,GAE5B,IAAIsuL,IAAK,CAAEp3J,WAAY7nD,GAAI8nD,YAAa,SAAUuO,WAAY2oJ,KAC1DE,IAAMrV,GAAG,CAAED,OAAQ3R,GAAG2G,IAAKntC,cAAeu5C,KAC1CmU,IAAK,CAAEt3J,WAAY3nD,GAAI4nD,YAAa,SAAUuO,WAAY6oJ,KAC1DE,IAAK,MACP,YAAY5uL,EAAIG,EAAGE,GACjB3hC,KAAKumM,SAAW,GAAIvmM,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAAC3yB,EAAGwC,IAAMxC,EAAE,GAAKN,EAAG8C,GAAKxC,EAAE,IAAK5hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmwN,OAAS7uL,EAAIG,EAAE8yB,IAAI,CAAC3yB,EAAGwC,KAC/SpkC,KAAKumM,UAAY,OAAOniK,mBACtBpkC,KAAKo9E,OAAe,YAANz7C,EAAkB,EAAI,EAAG3hC,KAAKmlM,UAAY,aAAaxjK,EAE3E,cACE,IAAIL,EAAKthC,KAAKmwN,OAAOjwN,OAAQuhC,EAAIzhC,KAAKmwN,OAAO57J,IAAI,CAAC9vB,EAAGyB,IAAM,eAAeA,QAAQwxB,KAAK,KAAM/1B,EAAI3hC,KAAKmwN,OAAO57J,IAAI,CAAC9vB,EAAGyB,IAAM,eAAeA,yBAAyB5E,EAAK,EAAI,IAAI4E,KAAO,MAAMwxB,KAAK,KAAM91B,EAAW,IAAPN,EAAW,QAAU,WAAY8C,EAAW,IAAP9C,EAAW,MAAQ,SAAU+C,EAAW,IAAP/C,EAAW,OAAS,UAAWgD,EAAIohK,GAAGpkK,GAAKiD,EAAIjD,EAAK,EAAI,CAAC,YAAa,YAAa,YAAa,aAAatJ,MAAM,EAAGsJ,GAAM,SAC9Y,MAAO,WACH2tH,GAAE,2EAEc3qH,KAAK7C,4BACP6C,KAAK3C,uFAEKL,oCACd+C,OAAOzC,uBACTyC,OAAOzC,WAAWyC,OAAOrkC,KAAKo9E,kCACtB/4C,QAAQD,uBAChBC,QAAQD,gBAAgBC,OAAOrkC,KAAKo9E,qHAIX74C,mCAMrC6rL,IAAK,CAAEz3J,WAAYznD,GAAI0nD,YAAa,SAAUuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC9F,IAAMyJ,EAAGvJ,GAAMN,GAAKwpD,SAAUjpD,EAAGkpD,KAAM1mD,GAAM9C,EAAI+C,EAAI5C,EAAG6C,EAAI1C,EAAE2yB,IAAKruB,IAAM,CAAG60C,KAAM,QAASn+B,KAAM,CAAC1W,EAAE,GAAIA,EAAE,OAAS3B,EAAI,IAAI2rL,IAAGvuL,EAAEw9B,MAAOv9B,EAAGwC,GAC1I,OAAOC,EAAEm1K,iBAAiBj1K,EAAG,CAAC5C,GAAIA,EAAE+8B,MAAOp6B,KAEzC+rL,IAAM1V,GAAG,CAAED,OAAQ3R,GAAG4G,MACtB2gB,IAAK,CAAE33J,WAAYvnD,GAAIwnD,YAAa,SAAUuO,WAAYkpJ,KAC1DE,IAAK,MACP,YAAYjvL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,SAAUnsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,gCAAiCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,EAAIG,GAAIzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,cAEnU,cACE,MAAO,iXAWLl2C,GAAE,gsBAyBJuhE,IAAK,MACP,YAAYlvL,GACVthC,KAAKmsJ,cAAgB,CAAC,UAAWnsJ,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAW,CAACpnM,KAAK+5F,YAAY,GAAI,EAAG,GAAI/5F,KAAK+5F,YAAY,IAAM,KAAO/5F,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAK9lM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKmlM,UAAY,UAErQ,cACE,MAAO,yCAC2BnlM,KAAK8lM,cAAc,+GAGjC9lM,KAAK8lM,cAAc,YACrC72C,GAAE,6jDAyDR,SAASwhE,IAAGpvL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMgkD,IAAKlhD,GAAMzC,EAAG0C,EAAIq1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC9gC,GAAEi+B,cAAc16B,EAAEu9B,OAASv9B,EAAEu9B,MAAM/6B,GAAIxC,EAAEu9B,MAAM/6B,OAAUE,EAAI,IAAIksL,IAAGnsL,EAAE86B,OAAQ56B,EAAI9C,EAAE+3K,iBAAiBl1K,EAAG,CAACD,GAAIzC,EAAE88B,OAAQj6B,EAAIi1K,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG3G,GAAKrmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOv9B,EAAEu9B,SAC1T,OAAO19B,EAAE0kC,YAAY9hC,EAAEu8B,QAASn/B,EAAE0kC,YAAY5hC,EAAEq8B,QAASn8B,EAE3D,IAAIisL,IAAK,CAAE/3J,WAAYjhD,GAAIkhD,YAAa,SAAUuO,WAAYspJ,KAC9D,SAASE,IAAItvL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKkqD,OAAQ3pD,GAAMN,GAAMkqD,WAAYpnD,EAAGqnD,KAAMpnD,EAAGqnD,WAAYpnD,GAAM3C,EAAG4C,EAAID,EAAI1C,EAAI6uL,IAAG,CAAE7xJ,OAAQ,CAAE2sB,OAAQ3pD,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,EAAEu9B,MAAMj/D,OAAS,KAAQukC,EAAIF,EAAE46B,MAAM,GAAIj5B,EAAI3B,EAAE46B,MAAM,GAAIr3B,EAAI,IAAIyoL,IAAG9rL,EAAGL,GAAI2D,EAAI,CAAC,CAAEgzC,KAAM,UAAWn+B,KAAM,CAACvY,IAAM,CAAE02C,KAAM,QAASn+B,KAAM,CAAC1W,KAAO8B,EAAIvG,EAAE+3K,iBAAiB1xK,EAAG,CAACvD,GAAI,QAASwD,GAC1W,OAAOzD,GAAK7C,EAAE0kC,YAAY5hC,EAAEq8B,QAAS54B,EAEvC,IAAI4oL,IAAK,CAAEj4J,WAAYnnD,GAAIonD,YAAa,SAAUuO,WAAYwpJ,KAC9D,SAASE,IAAIxvL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAIG,EAAEq+H,mBAAmB,CAACn+H,IAAK,CAC7B,IAAIyC,EAAI3C,EAAE8pF,UAAU/pH,IAAImgC,EAAEi/B,SAAUv8B,EAAGC,GAAK03K,GAAG53K,EAAEtlC,OAAQ6iC,EAAEw9B,MAAOx9B,EAAE+8B,OACpE,OAAOj9B,EAAE41F,eAAe/yF,EAAG3C,EAAE+8B,MAAOr6B,GAEtC,IAAIzC,EAAI,IAAI44K,GAAG74K,EAAEw9B,MAAO+wI,GAAEqD,KAC1B,OAAO9xK,EAAE+3K,iBAAiB53K,EAAG,CAACD,GAAIA,EAAE+8B,OAEtC,IAAIoyJ,IAAK,CAAEn4J,WAAY/mD,GAAIgnD,YAAa,SAAUuO,WAAY0pJ,KAC9D,SAASE,IAAI1vL,GACXmR,QAAQmB,KAAK,kGACb,IAAMirB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,GAAM5C,EAAG8C,EAAIhD,EAAEw/B,SAASr/B,EAAEg/B,QAAS16B,EAAIzE,EAAEw/B,SAAS78B,EAAEw8B,SAAWg/B,gBAAiB93D,GAAMrd,GAAG22F,wBAAwB38E,EAAGyB,EAAG7B,EAAGC,EAAGC,GAC9P,OAAO9C,EAAE41F,eAAe,CAACvvF,EAAE5nC,QAAS,QAAS,IAAI01C,WAAW9N,IAE9D,IAAIkpL,IAAK,CAAEr4J,WAAY7mD,GAAI8mD,YAAa,SAAUuO,WAAY4pJ,KAC9D,SAASE,IAAI5vL,GACXmR,QAAQmB,KAAK,kGACb,IAAMirB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKy7D,MAAOl7D,EAAG+8D,OAAQv6D,GAAM9C,GAAMg9D,cAAej6D,EAAGk6D,aAAcj6D,EAAGk6D,eAAgBj6D,EAAGk6D,aAAch6D,GAAM9C,EAAGuE,EAAIzE,EAAEw/B,SAASr/B,EAAEg/B,QAAS94B,EAAIrG,EAAEw/B,SAAS78B,EAAEw8B,QAAS74B,EAAI1D,EAAG2D,EAAI1D,EAAG8D,EAAI7D,EAAG2H,EAAIzH,GAAKm7D,gBAAiBzzD,EAAG0zD,eAAgB30D,GAAMzgB,GAAG62F,wBAAwBp7E,EAAG4B,EAAGC,EAAGC,EAAGI,EAAG8D,GACjU,MAAO,CAACzK,EAAE41F,eAAe,CAAClrF,EAAEjsC,QAAS,QAAS,IAAI01C,WAAWzJ,IAAK1K,EAAE41F,eAAe,CAACnsF,EAAEhrC,QAAS,UAAW,IAAIi2C,aAAajL,KAE7H,IAAIgmL,IAAK,CAAEv4J,WAAYzmD,GAAI0mD,YAAa,SAAUuO,WAAY8pJ,KAC1DE,IAAK,MACP,YAAY7vL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,iCAAkCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,EAAIG,GAAIzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,SAEzS,cACE,MAAO,WACHl2C,GAAE,mSAUV,SAASmiE,IAAI/vL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,GAAMN,GAAMo9B,MAAOt6B,EAAG2nD,MAAO1nD,EAAG2nD,QAAS1nD,EAAG2nD,SAAU1nD,GAAM5C,EAAG8C,EAAIpG,GAAEi+B,cAAc16B,EAAEu9B,OAAQj5B,EAAI,IAAIirL,IAAG1sL,EAAGJ,GAAIyD,EAAI4xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,MAASsD,EAAI,CAAC,CAAEgzC,KAAM,UAAWn+B,KAAM,CAACtY,IAAM,CAAEy2C,KAAM,UAAWn+B,KAAM,CAACrY,KAAOyD,EAAIvG,EAAE+3K,iBAAiBtzK,EAAG,CAAC4B,GAAI1D,EAAG2D,GACjVtG,EAAE0kC,YAAYr+B,EAAE84B,QAChB,IAAIx4B,EAAI,IAAIxG,EAAEu9B,MAAO96B,GAAI6H,EAAIwtK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGlD,GAAK9pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAChF,OAAO3G,EAAE0kC,YAAYn+B,EAAE44B,QAAS10B,EAElC,IAAImlL,IAAK,CAAE14J,WAAYnmD,GAAIomD,YAAa,SAAUuO,WAAYiqJ,KAC9D,SAASE,IAAGjwL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,cAAZK,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAIsgL,GAAG,CAAEtjJ,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAIktL,IAAG,CAAE1yJ,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAI8+K,GAAG,CAAEvkJ,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAIgtL,IAAG,CAAE1yJ,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAI+1K,GAAG,CAAE17I,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE0kC,YAAYvkC,EAAEg/B,QAASn/B,EAAE0kC,YAAY/hC,EAAEw8B,QAASn/B,EAAE0kC,YAAY9hC,EAAEu8B,QAASn/B,EAAE0kC,YAAY7hC,EAAEs8B,QAASr8B,EAE3G,OAAOg1K,GAAG,CAAEvyI,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,MAAOz9D,MAAmB,WAAZ0gC,EAAE+8B,MAAqB,GAAK,GAAKxgD,QAASujB,IAE1G,IAAI8vL,IAAK,CAAE54J,WAAY38C,GAAI48C,YAAa,SAAUuO,WAAYmqJ,KAC9D,SAASE,IAAGnwL,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,GAAML,EAC/C,GAAgB,WAAZK,EAAE+8B,MACJ,MAAM,IAAIz6B,MAAM,gDAClB,GAAgB,cAAZtC,EAAE+8B,MAAuB,CAC3B,IAAI98B,EAAIsgL,GAAG,CAAEtjJ,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM2C,EAAIotL,IAAG,CAAE5yJ,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IAAM4C,EAAI8+K,GAAG,CAAEvkJ,OAAQ,CAAEymB,MAAO1jD,GAAKzjB,QAASujB,IAAM6C,EAAIgtL,IAAG,CAAE1yJ,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,IAAM8C,EAAI+1K,GAAG,CAAE17I,OAAQ,CAAExrC,KAAMgR,EAAG9a,KAAMgb,GAAKpmB,QAASujB,IACpO,OAAOA,EAAE0kC,YAAYvkC,EAAEg/B,QAASn/B,EAAE0kC,YAAY/hC,EAAEw8B,QAASn/B,EAAE0kC,YAAY9hC,EAAEu8B,QAASn/B,EAAE0kC,YAAY7hC,EAAEs8B,QAASr8B,EAE3G,OAAOg1K,GAAG,CAAEvyI,MAAO,CAAE7H,MAAOx9B,EAAEw9B,MAAOT,MAAO/8B,EAAE+8B,MAAOz9D,MAAO,GAAKid,QAASujB,IAE9E,IAAIgwL,IAAK,CAAE94J,WAAYjmD,GAAIkmD,YAAa,SAAUuO,WAAYqqJ,KAC9D,SAASE,IAAIrwL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK21C,KAAMp1C,GAAMD,EAC5D,GAAkB,IAAdL,EAAGphC,OACL,OAAO4pN,GAAG,CAAElrJ,OAAQ,CAAEymB,MAAO/jD,EAAG,IAAMpjB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAClE,IAAIwC,EAAI9C,EAAG,GAAG69B,MAAO96B,EAAI/C,EAAG,GAAGo9B,MAC/Bp9B,EAAGqY,QAASzT,IACV7H,GAAE86B,kBAAkB/0B,EAAG8B,EAAEi5B,MAAO,yDAA0D9gC,GAAE26B,OAAO30B,IAAM6B,EAAEw4B,MAAO,IAAM,2DAE1H,IAAIp6B,EAAI,GAAIC,EAAIjD,EAAGizB,IAAKruB,IACtB,IAAI4B,EAAIgiL,GAAG,CAAElrJ,OAAQ,CAAEymB,MAAOn/C,GAAKhoB,QAASujB,EAAGulC,MAAO,CAAEse,IAAK1jD,KAC7D,OAAO0C,EAAEuH,KAAK/D,GAAIA,IAChBrD,EAAI++K,GAAG,CAAE5kJ,OAAQr6B,EAAGrmB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAMp1C,KACnD,OAAO0C,EAAEqV,QAASzT,GAAMzE,EAAE0kC,YAAYjgC,EAAE06B,SAAUn8B,EAEpD,IAAIktL,IAAK,CAAEh5J,WAAY3lD,GAAI4lD,YAAa,SAAUuO,WAAYuqJ,KAC9D,SAASE,IAAGvwL,EAAGC,GAAK,GAClB,IAAIG,EAAIJ,EAAEnhC,OAAQyhC,EAAI+jK,GAAGjkK,GAAIG,EAAIP,EAAEkzB,IAAI,CAACzsB,EAAGC,IAAM,eAAeA,QAAQ2vB,KAAK,KAAMtzB,EAAI/C,EAAEkzB,IAAI,CAACzsB,EAAGC,IAAM,eAAeA,yBAAyBtG,EAAI,EAAI,IAAIsG,KAAO,MAAM2vB,KAAK,KAAMrzB,EAAI5C,EAAI,EAAI,GAAGE,KAAKC,KAAO,GAAGA,EAAK0C,EAAI7C,EAAI,EAAI,GAAGE,KAAKyC,KAAO,GAAGA,EAAKG,EAAI9C,EAAI,EAAI,4BAA8B,uBAAwBgD,EAAIhD,EAAI,EAAI,2BAA6B,sBAAuByE,EAAIzE,EAAI,EAAI,CAAC,YAAa,YAAa,YAAa,aAAazJ,MAAM,EAAGyJ,GAAK,SAC1c,MAAO,yBACa4C,yBACFC,mBACNC,QAAQE,2CACcnD,EAAK,EAAI,sIAGJ4E,sBAIzC,IAAI2rL,IAAK,MACP,YAAYvwL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,uBAAwBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAE8yB,IAAI,CAAC5yB,EAAGC,IAAMD,EAAE,GAAKL,EAAGM,GAAKD,EAAE,IAAK3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgBrkK,EAAE8yB,IAAI,CAAC5yB,EAAGC,KACjT5hC,KAAKumM,UAAY,OAAO3kK,mBACtB5hC,KAAKmwN,OAAS7uL,EAAIthC,KAAKmlM,UAAY,MAEzC,cACE,MAAO,WACHl2C,GAAE,wHAGE2iE,IAAG5xN,KAAKmwN,sCAMhB2B,IAAOzwL,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMupD,SAAUzmD,EAAGooD,cAAenoD,GAAM1C,EACjG,GAAIyC,EAAE6d,MAAOxd,GAAMpG,GAAEy6B,YAAYr0B,EAAG,CAAC,EAAG,KACtC,OAAO21K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,GAAiC,IAA7BpD,GAAEi+B,cAAc16B,EAAEu9B,OAAc,CAClC,IAAI16B,EAAIL,EAAEmwB,IAAI,CAACruB,EAAG4B,IAAM5B,EAAE,GAAKtE,EAAEu9B,MAAMr3B,GAAK5B,EAAE,IAC9C,OAAOqzK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,EAAGxjC,MAAOojC,EAAGq6B,MAAO98B,EAAE88B,SAEhE,IAAIp6B,EAAI,CAAC,CAAEy2C,KAAM,UAAWn+B,KAAM,CAACvY,KACnCD,EAAEmwB,IAAK9vB,GAAMH,EAAEuH,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAACnY,EAAE,GAAIA,EAAE,OACpD,IAAIF,EAAI,IAAIstL,IAAGjwL,EAAEu9B,MAAO/6B,GACxB,OAAO3C,EAAE+3K,iBAAiBj1K,EAAG,CAAC3C,GAAIA,EAAE88B,MAAOp6B,IAEzCytL,IAAK,CAAEp5J,WAAYzlD,GAAI0lD,YAAa,SAAUuO,WAAY2qJ,KAC1DE,IAAMrX,GAAG,CAAED,OAAQ3R,GAAG+G,MACtBmiB,IAAK,CAAEt5J,WAAYrlD,GAAIslD,YAAa,SAAUuO,WAAY6qJ,KAC9D,SAASE,IAAI7wL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAK6J,EAAGvJ,EAAGulD,MAAOtlD,GAAMN,EAAI8C,EAAI,IAAI41K,GAAGjR,GAAGgH,MAAOpuK,EAAEw9B,MAAOv9B,EAAEu9B,OAC7F,OAAO19B,EAAE+3K,iBAAiBp1K,EAAG,CAACzC,EAAGC,GAAI,WAEvC,IAAIuwL,IAAK,CAAEx5J,WAAYnlD,GAAIolD,YAAa,SAAUuO,WAAY+qJ,KAC9D,SAASE,IAAI/wL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM01C,KAAM5yC,EAAG6yC,SAAU5yC,GAAM1C,EACxF,OAAOy8K,GAAGx8K,EAAGwC,EAAGC,EAAG,OAAQ5C,GAE7B,IAAI4wL,IAAK,CAAE15J,WAAYjlD,GAAIklD,YAAa,SAAUuO,WAAYirJ,KAC1DE,IAAOjxL,IACT,IAAMnjB,QAASojB,EAAI0lC,MAAOvlC,GAAMJ,GAAKwqC,MAAOlqC,EAAG6lD,KAAM5lD,EAAGxH,KAAMgK,EAAGs6B,MAAOr6B,GAAM5C,EAAG6C,EAAI63K,GAAGx6K,EAAGC,EAAGwC,EAAGC,GACjG,OAAO/C,EAAG+1F,eAAe,CAAC/yF,EAAEpkC,QAASmkC,EAAGC,IAEtCiuL,IAAK,CAAE55J,WAAYvkD,GAAIwkD,YAAa,SAAUuO,WAAYmrJ,KAC1DE,IAAM7X,GAAG,CAAED,OAAQ3R,GAAGgG,MACtB0jB,IAAK,CAAE95J,WAAYjkD,GAAIkkD,YAAa,SAAUuO,WAAYqrJ,KAC1DE,IAAMjY,GAAG,CAAEC,OAAQxK,GAAEyD,aACrBgf,IAAK,CAAEh6J,WAAY/jD,GAAIgkD,YAAa,SAAUuO,WAAYurJ,KAC1DE,IAAMnY,GAAG,CAAEC,OAAQxK,GAAEsD,OACrBqf,IAAK,CAAEl6J,WAAY3jD,GAAI4jD,YAAa,SAAUuO,WAAYyrJ,KAC1DE,IAAMrY,GAAG,CAAEC,OAAQxK,GAAEuD,QACrBsf,IAAK,CAAEp6J,WAAYzjD,GAAI0jD,YAAa,SAAUuO,WAAY2rJ,KAC1DE,IAAK,MACP,YAAY1xL,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,yDAA0DvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,EAAG,GAAIG,EAAGE,EAAGL,EAAG,IAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,iBAE9U,cACE,MAAO,WACHl2C,GAAE,qvDA6CV,SAASgkE,IAAI5xL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG86B,KAAM76B,EAAG08D,iBAAkBz8D,GAAM3C,GAAI4C,EAAGE,GAAKJ,EAAG6B,EAAI9B,GAAKG,EAAI,EAAI,EAAI,EAAGuD,EAAI1D,GAAKK,EAAI,EAAI,EAAI,EAAGuD,EAAI,CAAC,CAAE+yC,KAAM,UAAWn+B,KAAM,CAAC1W,EAAG4B,IAAM,CAAEizC,KAAM,UAAWn+B,KAAM,CAACtY,EAAI,GAAM,KAAO8D,EAAI,IAAI4qL,IAAGpxL,EAAEu9B,MAAO56B,EAAGE,GAC/R,OAAOhD,EAAE+3K,iBAAiBpxK,EAAG,CAACxG,GAAI,UAAWoG,GAE/C,IAAIkrL,IAAK,CAAEv6J,WAAYrjD,GAAIsjD,YAAa,SAAUuO,WAAY8rJ,KAC1DE,IAAK,MACP,YAAY7xL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAKumM,SAAW,mLACoCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK8gG,aAAer/D,EAAGzhC,KAAKmlM,UAAY,0BAA0B1jK,EAExV,cACE,MAAO,WACHwtH,GAAE,usFA4EV,SAASmkE,IAAI/xL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,GAAI,CAAE2C,EAAGC,GAAK3C,EAAEu9B,OAAQ,CAAE16B,EAAGyB,GAAK9B,EAAE+6B,MAAOr3B,EAAI,CAACzD,GAAKI,EAAI,EAAIH,EAAI,EAAIA,EAAGD,GAAK6B,EAAI,EAAI3B,EAAI,EAAIA,GAAIwD,EAAI,CAAC1D,GAAKI,EAAI,EAAIA,EAAI,EAAIA,EAAGJ,GAAK6B,EAAI,EAAIA,EAAI,EAAIA,GAAI8B,EAAIF,EAAE,GAAKC,EAAE,GAAIK,EAAIN,EAAE,GAAKC,EAAE,GAAImE,EAAI,EAAIlE,EAAGmE,EAAI,EAAI/D,EAAG8C,EAAmB,EAAfnH,KAAK3jB,KAAK8rB,GAAS,EAAGO,EAAmB,EAAf1I,KAAK3jB,KAAK+rB,GAAS,EAAGY,EAAI,IAAIomL,IAAGvxL,EAAEu9B,MAAO96B,GAAI2I,EAAI,CAAC,CAAE+tC,KAAM,QAASn+B,KAAM9U,GAAK,CAAEizC,KAAM,QAASn+B,KAAM7U,GAAK,CAAEgzC,KAAM,UAAWn+B,KAAM,CAAC5U,IAAM,CAAE+yC,KAAM,UAAWn+B,KAAM,CAACxU,IAAM,CAAE2yC,KAAM,UAAWn+B,KAAM,CAAC1Q,IAAM,CAAE6uC,KAAM,UAAWn+B,KAAM,CAACzQ,IAAM,CAAE4uC,KAAM,QAASn+B,KAAM,CAAC1R,IAAM,CAAE6vC,KAAM,QAASn+B,KAAM,CAACnQ,KAC7mB,OAAOhL,EAAE+3K,iBAAiBzsK,EAAG,CAAC3I,GAAIA,EAAEs6B,MAAO1xB,GAE7C,IAAIqmL,IAAK,CAAE16J,WAAYnjD,GAAIojD,YAAa,SAAUuO,WAAYisJ,KAC1DE,IAAK,MACP,YAAYhyL,EAAIG,EAAGE,EAAGC,GACpB5hC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKumM,SAAW,kDAAmDvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAc,CAACz4D,EAAG,GAAIG,EAAGE,EAAGL,EAAG,IAAKthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK+gG,iBAAmBn/D,EAAG5hC,KAAKmlM,UAAY,iBAAiBvjK,EAEnX,cACE,IAAIN,EACJ,OAA+BA,EAAxBthC,KAAK+gG,iBAAwB,0FAAiG,kDAAmD,WACpLkuD,GAAE,0uBAmB0B3tH,4bAcpC,SAASiyL,IAAIlyL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,GAAMN,GAAMw/D,aAAc18D,EAAG28D,iBAAkB18D,EAAG66B,KAAM56B,GAAM3C,GAAI4C,EAAGE,GAAKH,EAAG4B,EAAI9B,GAAKG,EAAI,EAAI,EAAI,EAAGuD,EAAI1D,GAAKK,EAAI,EAAI,EAAI,EAAGuD,EAAI,CAAC,CAAE+yC,KAAM,UAAWn+B,KAAM,CAAC1W,EAAG4B,IAAM,CAAEizC,KAAM,UAAWn+B,KAAM,CAACxY,EAAI,GAAM,KAAOgE,EAAI,IAAIkrL,IAAG1xL,EAAEu9B,MAAO56B,EAAGE,EAAGJ,GAClS,OAAO5C,EAAE+3K,iBAAiBpxK,EAAG,CAACxG,GAAIA,EAAE88B,MAAO12B,GAE7C,IAAIwrL,IAAK,CAAE76J,WAAYjjD,GAAIkjD,YAAa,SAAUuO,WAAYosJ,KAC1DE,IAAK,MACP,YAAYnyL,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,MAAOnsJ,KAAKumM,SAAW,8IACPvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK8gG,aAAer/D,EAAGzhC,KAAKmlM,UAAY,gCAAgC1jK,EAEnT,cACE,MAAO,WACHwtH,GAAE,8lDA0CUjvJ,KAAK8gG,aAAe,6BAA+B,kJAInD9gG,KAAK8gG,aAAe,6BAA+B,qTAevE,SAAS4yH,IAAIryL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw/D,OAAQj/D,EAAG+9C,GAAIv7C,GAAM9C,GAAMw/D,aAAcz8D,GAAM1C,GAAI,CAAE2C,EAAGC,GAAK3C,EAAEu9B,OAAQ,CAAE16B,EAAGyB,GAAK9B,EAAE+6B,MAAOr3B,EAAI,CAACzD,GAAKI,EAAI,EAAIH,EAAI,EAAIA,EAAGD,GAAK6B,EAAI,EAAI3B,EAAI,EAAIA,GAAIwD,EAAI,CAAC1D,GAAKI,EAAI,EAAIA,EAAI,EAAIA,EAAGJ,GAAK6B,EAAI,EAAIA,EAAI,EAAIA,GAAI8B,EAAIF,EAAE,GAAKC,EAAE,GAAIK,EAAIN,EAAE,GAAKC,EAAE,GAAImE,EAAI,EAAIlE,EAAGmE,EAAI,EAAI/D,EAAG8C,EAAmB,EAAfnH,KAAK3jB,KAAK8rB,GAAS,EAAGO,EAAmB,EAAf1I,KAAK3jB,KAAK+rB,GAAS,EAAGY,EAAI,IAAI0mL,IAAG7xL,EAAEu9B,MAAO96B,GAAI2I,EAAI,CAAC,CAAE+tC,KAAM,QAASn+B,KAAM9U,GAAK,CAAEizC,KAAM,QAASn+B,KAAM7U,GAAK,CAAEgzC,KAAM,UAAWn+B,KAAM,CAAC1Q,IAAM,CAAE6uC,KAAM,UAAWn+B,KAAM,CAACzQ,IAAM,CAAE4uC,KAAM,QAASn+B,KAAM,CAAC1R,IAAM,CAAE6vC,KAAM,QAASn+B,KAAM,CAACnQ,KAC7iB,OAAOhL,EAAE+3K,iBAAiBzsK,EAAG,CAAC3I,GAAIA,EAAEs6B,MAAO1xB,GAE7C,IAAI2mL,IAAK,CAAEh7J,WAAY/iD,GAAIgjD,YAAa,SAAUuO,WAAYusJ,KAC1DE,IAAK,MACP,YAAYtyL,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKumM,SAAW,qBAAsBvmM,KAAKmlM,UAAY,UAExR,cACE,MAAO,gvBAsBHl2C,GAAE,4TAWV,SAAS4kE,IAAIxyL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMmyD,KAAMrvD,GAAMzC,EAAG0C,EAAIzC,EAAEu9B,MAAMj/D,OAC1F,GAAU,IAANmkC,EACF,OAAO+1K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,IACzC,IAAI6C,EAAI1C,EAAEu9B,MAAO56B,EAAI,CAAC,EAAG,EAAG,EAAG,GAC/BD,EAAEqV,QAAQ,CAACxN,EAAGjB,KACZ,IAAIuB,EAAIvB,EAAI,EAAI7G,EAChBE,EAAEkI,GAAKN,IAET,IAAI1H,EAAIpG,GAAE29B,eAAe53B,EAAGxC,EAAEu9B,OAAQj5B,EAAI,CAAC,EAAG,EAAG,EAAG,GACpDzB,EAAEkV,QAASxN,IACT,IAAIjB,EAAIiB,EAAI,EAAI9H,EAChB6B,EAAEgF,GAAK,IAET,IAAIpD,EAAI,CAAC,CAAEizC,KAAM,QAASn+B,KAAM1W,IAAM6B,EAAI2xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO56B,KAAQyD,EAAI,IAAI4rL,IAAGrvL,GAAI6D,EAAI3G,EAAE+3K,iBAAiBxxK,EAAG,CAACD,GAAIA,EAAE22B,MAAO52B,GAC5JrG,EAAE0kC,YAAYp+B,EAAE64B,QAChB,IAAI10B,EAAIwtK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO76B,KAC3D,OAAO7C,EAAE0kC,YAAY/9B,EAAEw4B,QAAS10B,EAElC,IAAI4nL,IAAK,CAAEn7J,WAAY7iD,GAAI8iD,YAAa,SAAUuO,WAAY0sJ,KAC1DE,IAAK,MACP,YAAYzyL,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKumM,SAAW,+EAC5OvmM,KAAKmlM,UAAY,SAAUnlM,KAAK+5F,YAAcz4D,EAAgB,iBAALG,GAAiBzhC,KAAKumM,UAAY,oBAAqBvmM,KAAKg0N,YAAc,wCAAyCh0N,KAAKmlM,WAAa,WAAanlM,KAAKumM,UAAY,0BAA2BvmM,KAAKg0N,YAAc,mDAAoDh0N,KAAKmlM,WAAa,SAE5W,cACE,MAAO,aACDl2C,GAAE,onBAWEjvJ,KAAKg0N,wTAWfC,IAAK,CAAEt7J,WAAY3iD,GAAI4iD,YAAa,SAAUuO,WAAY,EAAGvI,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,MAC9F,IAAMjY,MAAOmY,GAAMN,GAAK08D,QAASn8D,EAAGo8D,UAAW55D,EAAG65D,OAAQ55D,GAAM/C,EAAIgD,EAAI7C,EAAG8C,EAAI,IAAIwvL,IAAGpyL,EAAEw9B,MAAO/6B,IAAKK,EAAGyB,GAAK7nB,GAAEw+F,eAAex4E,EAAG1C,EAAEw9B,MAAM,GAAIx9B,EAAEw9B,MAAM,IAAKr3B,EAAI,CAAC,CAAEizC,KAAM,UAAWn+B,KAAM,CAACnY,IAAM,CAAEs2C,KAAM,UAAWn+B,KAAM,CAAC1W,IAAM,CAAE60C,KAAM,UAAWn+B,KAAM,CAAC7Y,KAAKnM,IAAIgK,KAAO,CAAEm5C,KAAM,UAAWn+B,KAAM,CAAC7Y,KAAK7hB,IAAI0f,MAC3S,MAAmB,iBAALwC,EAAgB0D,EAAE+D,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAM,CAAC4W,OAAOwM,WAAW57B,EAAE67B,QAAQ,OAAUn4B,EAAE+D,KAAK,CAAEkvC,KAAM,UAAWn+B,KAAMxY,IAAME,EAAEk1K,iBAAiBj1K,EAAG,CAAC5C,GAAIA,EAAE+8B,MAAO52B,KAE7KosL,IAAMzZ,GAAG,CAAEC,OAAQxK,GAAE0D,QACrBugB,IAAK,CAAEx7J,WAAYziD,GAAI0iD,YAAa,SAAUuO,WAAY+sJ,KAC1DE,IAAM3Z,GAAG,CAAEC,OAAQxK,GAAE2D,MAAOtxC,cAAe65C,KAC3CiY,IAAK,CAAE17J,WAAYviD,GAAIwiD,YAAa,SAAUuO,WAAYitJ,KAC1DE,IAAK,MACP,YAAYhzL,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,EAAGC,EAAGC,GAAI,GACpCvkC,KAAKmsJ,cAAgB,CAAC,UAAW,WAAYnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAc11D,EAAGrkC,KAAK+6E,KAAOz2C,EAAGtkC,KAAKu0N,eAAiBhwL,EAAGvkC,KAAK4mM,eAAiBx6J,GAAE9K,GAAKthC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBtlK,EAAIthC,KAAK8lM,eAAgB9lM,KAAKw0N,uBAAyB/yL,EAAI,EAAGzhC,KAAKmlM,UAAY,WAAWxjK,KAAKC,KAAK5hC,KAAKw0N,0BAA0BlwL,KAAKC,IAC5W,IAAIE,EAAIihK,GAAGthK,EAAElkC,QACbF,KAAKumM,SAAW,4BAA4B9hK,uBAAwBzkC,KAAKy0N,YAAc7yL,EAAG5hC,KAAK00N,YAAc/yL,EAE/G,cACE,IAAIL,EAAK,GACY,IAArBthC,KAAK00N,YAAoBpzL,EAAK,YAAmC,IAArBthC,KAAK00N,cAAsBpzL,EAAK,gBAC5E,IAAIG,EAAI,cAAcH,KAAOK,EAAI3hC,KAAKw0N,uBAAyB,sBAAwB,mBAAoB5yL,EAAI,GAAIwC,EAAI,GACtF,IAAjCpkC,KAAK4mM,eAAe17J,EAAEhrC,QAAgB0hC,EAAI,iBAAkBwC,EAAI,0GAIxB,IAAjCpkC,KAAK4mM,eAAe17J,EAAEhrC,SAAiB0hC,EAAI,uCAAwCwC,EAAI,ugBAY9F,IAAIE,EAAI,cAAcmwB,MAAMwB,KAAK,CAAE/1D,OAAQF,KAAKy0N,aAAe,CAAChwL,EAAGyB,IAAM,UAAUA,MAAMwxB,KAAK,SAC9F,MAAO,SACLtzB,YACE6qH,GAAE,oQAKgCxtH,qEACoBE,+DAG9CukK,GAAGlmM,KAAK+6E,SAASz2C,2DACoB1C,oBAEzC5hC,KAAKu0N,eAAiB5vB,GAAG,qBAAsB,cAAe3kM,KAAK+6E,MAAQ,sFAKvF,SAAS45I,IAAItzL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6kD,QAAStkD,EAAGo2D,QAAS5zD,GAAM9C,GAAM69B,MAAO96B,GAAM1C,GAAKg2D,UAAWrzD,EAAGszD,WAAYrzD,EAAGszD,UAAWpzD,EAAG07B,QAASj6B,EAAG4xD,WAAYhwD,GAAMzpB,GAAE45E,gBAAgB7zD,EAAGxC,EAAGyC,GAAI0D,EAAI,CAACD,EAAIrD,EAAGA,GACpN,GAAU,IAANqD,EACF,OAAOrG,EAAE41F,eAAehzF,EAAGzC,EAAE88B,OAC/B,IAAI12B,EAAI0xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGD,MAAS8D,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGE,MAASyH,EAAI9D,EAAEs2B,MAAOvyB,EAAIotK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,EAAG9mC,MAAO,EAAGy9D,MAAOxyB,KAAQhB,EAAI7M,GAAEi+B,cAAcl0B,EAAE+2B,OAAQ1yB,EAAI,CAAC,CAAEsuC,KAAM,QAASn+B,KAAM,CAACtY,IAAM,CAAEy2C,KAAM,QAASn+B,KAAM1W,GAAK,CAAE60C,KAAM,QAASn+B,KAAM,CAAC1R,KAAO6B,EAAI,IAAIunL,IAAGlsL,EAAE+2B,MAAO76B,EAAG0D,EAAEm3B,MAAMj/D,OAAQkoC,EAAE+2B,MAAMj/D,OAAQgmC,EAAG6B,EAAGmE,GAAIc,EAAIvL,EAAE+3K,iBAAiBzsK,EAAG,CAAC3E,EAAGJ,GAAIkE,EAAGO,EAAGN,GAAIc,EAAIysK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG8B,GAAK9uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO96B,KAC1f,OAAO5C,EAAE0kC,YAAYn+B,EAAE44B,QAASn/B,EAAE0kC,YAAY/9B,EAAEw4B,QAASn/B,EAAE0kC,YAAYn5B,EAAE4zB,QAAS3zB,EAEpF,IAAI2nL,IAAK,CAAEj8J,WAAYniD,GAAIoiD,YAAa,SAAUuO,WAAYwtJ,KAC1DE,IAAK,MACP,YAAYvzL,EAAIG,GACdzhC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,iBAAkB,UAAWnsJ,KAAKumM,SAAW,mBAAoBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAK4pF,KAAOnoD,EAAGzhC,KAAKmlM,UAAY,iBAAiB1jK,EAEpW,cACE,MAAO,oPAMiD,SAAdzhC,KAAK4pF,KAAkB,IAAM,6JASnEqlE,GAAE,4PAUV,SAAS6lE,IAAIzzL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKsoD,eAAgB/nD,EAAG9iC,OAAQslC,GAAM9C,GAAMsoD,KAAMvlD,GAAM1C,EAAG2C,EAAI,IAAIuwL,IAAG,CAACzwL,EAAE+6B,MAAM,GAAI/6B,EAAE+6B,MAAM,IAAK96B,GAAIE,EAAI,CAAC,CAAEw2C,KAAM,QAASn+B,KAAM,CAAChb,EAAEu9B,MAAM,MACpL,OAAO19B,EAAE+3K,iBAAiBl1K,EAAG,CAAC1C,EAAGwC,GAAI,QAASG,GAEhD,IAAIwwL,IAAK,CAAEp8J,WAAYjiD,GAAIkiD,YAAa,SAAUuO,WAAY2tJ,KAC1DE,IAAK,MACP,YAAY1zL,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,IAAK,IAAK,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKi1N,MAAQ3zL,EAAIthC,KAAKi/D,KAAOt9B,EAAG3hC,KAAKmlM,UAAY,SAE3R,cACE,IAAI7jK,EAAIG,EACR,GAAIzhC,KAAKi/D,KAAO,EACd,MAAMh7B,MAAM,kBAAkBjkC,KAAKi/D,6BACrC,GAAkB,IAAdj/D,KAAKi/D,KACPx9B,EAAI,QAASH,EAAK,YACf,CACH,IAAIM,EAAI,CAAC,UAAW,UAAW,UAAW,WAAYwC,EAAI,GAAIC,EAAI,GAClE,IAAK,IAAIC,EAAI,EAAGA,EAAItkC,KAAK+5F,YAAY75F,OAAQokC,IAC3CD,EAAEwH,KAAK,GAAGjK,EAAE0C,IAAOA,EAAItkC,KAAKi1N,OAAS7wL,EAAEyH,KAAK,GAAGjK,EAAE0C,IACnDhD,EAAK8C,EAAEszB,OAAQj2B,EAAI4C,EAAEqzB,OAEvB,MAAO,WACHu3F,GAAE,iIAGkB3tH,+EAEeG,sEAEAA,gDAO3C,SAASyzL,IAAI7zL,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKihD,UAAW3gD,EAAG4gD,EAAG3gD,EAAGH,EAAG2C,GAAM9C,EAAI+C,EAAI,IAAI2wL,IAAGrzL,EAAEw9B,MAAMj/D,OAAQ0hC,EAAEu9B,MAAOv9B,EAAEu9B,MAAMj/D,QACnH,OAAOuhC,EAAE+3K,iBAAiBn1K,EAAG,CAAC1C,EAAGC,EAAGwC,GAAInG,GAAG2D,EAAE88B,MAAOt6B,EAAEs6B,QAExD,IAAIy2J,IAAK,CAAEx8J,WAAY/hD,GAAIgiD,YAAa,SAAUuO,WAAY+tJ,KAC1DE,IAAM3a,GAAG,CAAEC,OAAQxK,GAAE4D,OACrBuhB,IAAK,CAAE18J,WAAY7hD,GAAI8hD,YAAa,SAAUuO,WAAYiuJ,KAC1DE,IAAM7a,GAAG,CAAEC,OAAQxK,GAAE6D,UACrBwhB,IAAK,CAAE58J,WAAY3hD,GAAI4hD,YAAa,SAAUuO,WAAYmuJ,KAC1DE,IAAM/a,GAAG,CAAEC,OAAQxK,GAAE8D,OACrByhB,IAAK,CAAE98J,WAAYzhD,GAAI0hD,YAAa,SAAUuO,WAAYquJ,KAC1DE,IAAMjb,GAAG,CAAEC,OAAQxK,GAAE+D,MACrB0hB,IAAK,CAAEh9J,WAAYvhD,GAAIwhD,YAAa,SAAUuO,WAAYuuJ,KAC1DE,IAAMnb,GAAG,CAAEC,OAAQxK,GAAEgE,OACrB2hB,IAAK,CAAEl9J,WAAYrhD,GAAIshD,YAAa,SAAUuO,WAAYyuJ,KAC1DE,IAAMrb,GAAG,CAAEC,OAAQxK,GAAEiE,WACrB4hB,IAAK,CAAEp9J,WAAY/gD,GAAIghD,YAAa,SAAUuO,WAAY2uJ,KAC1DE,IAAK,MACP,YAAY10L,EAAIG,EAAGE,EAAGC,EAAGwC,EAAGC,GAC1BrkC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,GAAIvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EACpH,IAAI56B,EAAI,IAAImwB,MAAM7yB,EAAE1hC,QACpB,IAAK,IAAIqkC,EAAI,EAAGA,EAAID,EAAEpkC,OAAQqkC,IAC5BD,EAAEC,GAAK3C,EAAEwC,EAAEG,IACbvkC,KAAK+5F,YAAcz1D,EAAGtkC,KAAK69M,OAASz5K,EAAGpkC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmwN,OAAS7uL,EAAIthC,KAAKi2N,aAAex0L,EAAGzhC,KAAKumM,UAAY,0BAA0Bb,GAAG9jK,EAAE1hC,kCAAkCwlM,GAAGrhK,OAAQ1C,EAAE4yB,IAAI,CAAChwB,EAAGE,KAC9SzkC,KAAKumM,UAAY,OAAO9hK,mBACtBzkC,KAAKmlM,UAAY,kBAAkB/gK,EAEzC,cACE,IAAI9C,EAAKokK,GAAG1lM,KAAK+5F,YAAY75F,QAASuhC,EAAIq8K,GAAG99M,KAAK69M,QAClD,MAAO,WACHxX,GAAGrmM,KAAKi2N,aAAc,qBACtBhnE,GAAE,uJAGwCjvJ,KAAK+5F,YAAY75F,WAAWohC,KAAMG,0HAExEmwL,IAAG5xN,KAAKmwN,QAAQ,iCAMxB+F,IAAO70L,IACT,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMy7C,WAAY34C,EAAGymD,SAAUxmD,GAAM1C,EAC9FtD,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yEACpC,IAAIokC,EAAIF,EAAEtkC,OAAO,CAAC2sC,EAAGM,IAAMN,EAAIM,GAAIxI,EAAI,CAAC,CAAC,EAAG,IAC5CA,EAAEsH,QAAQxH,GACV,IAAK,IAAIoI,EAAI,EAAIrI,EAAElkC,OAAQusC,EAAI7K,EAAEu9B,MAAMj/D,SAAUusC,EAC/ClI,EAAEsH,KAAK,CAAC,EAAG,IACb,IAAIpH,EAAIF,EAAEgwB,IAAI,CAAC9nB,EAAGM,IAAMN,EAAE,GAAK7K,EAAEu9B,MAAMpyB,GAAKN,EAAE,IAAKvG,EAAI7nB,GAAE8+F,YAAY14E,EAAGL,EAAGE,GAAG,GAAQwD,EAAIzpB,GAAE2+F,YAAY92E,EAAEhmC,OAAQkkC,EAAElkC,QAAQ,GAAQ6nC,EAAI1pB,GAAEg/F,oBAAoB54E,EAAGL,EAAGE,GAAG,GAAQ0D,EAAI3J,GAAEm7B,eAAe/0B,GAAI2D,EAAI,IAAI4tL,IAAGp0L,EAAEu9B,MAAO16B,EAAGF,EAAG2B,EAAG4B,EAAGE,EAAE9nC,QAASgsC,EAAI,CAAC,CAAE6uC,KAAM,QAASn+B,KAAM1W,GAAK,CAAE60C,KAAM,QAASn+B,KAAM5U,IAC3SzD,EAAEgwB,IAAK9nB,GAAMP,EAAEL,KAAK,CAAEkvC,KAAM,QAASn+B,KAAM,CAACnQ,EAAE,GAAIA,EAAE,OACpD,IAAIN,EAAI1K,EAAE+3K,iBAAiBpxK,EAAG,CAACxG,GAAIA,EAAE88B,MAAOxyB,GAAIhB,EAAIwuK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KACvG,OAAOtG,EAAE0kC,YAAYh6B,EAAEy0B,QAAS11B,GAE9BirL,IAAK,CAAEx9J,WAAY7gD,GAAI8gD,YAAa,SAAUuO,WAAY+uJ,KAC1DE,IAAK,MACP,YAAY90L,EAAIG,EAAGE,GACjB3hC,KAAKmsJ,cAAgB,CAAC,QAAS,UAAW,cAAensJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,uCAAwCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAcz4D,EAAIthC,KAAK+6E,KAAOp5C,EAAG3hC,KAAK4mM,eAAiBx6J,GAAE,CAAC3K,IAAKzhC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB,CAACnlK,GAAIzhC,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,mBAErV,cACE,MAAO,SACLl2C,GAAE,2cASE01C,GAAG,oBAAqB,QAAS3kM,KAAK+6E,8BAM5Cs7I,IAAK,MACP,YAAY/0L,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,cAAensJ,KAAK+5F,YAAc,GAAI/5F,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAc,CAACz4D,GAAKthC,KAAK4mM,eAAiBx6J,GAAE3K,GAAIzhC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBnlK,EAAGzhC,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,8BAExP,cACE,MAAO,SACLl2C,GAAE,kHAGE01C,GAAG,qBAAsB,IAAK,iCAMpC2xB,IAAK,MACP,YAAYh1L,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,aAAc,sBAAuBnsJ,KAAK+5F,YAAc,GAAI/5F,KAAKumM,SAAW,oBAAqBvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK+6E,KAAOt5C,EAAGzhC,KAAK4mM,eAAiBx6J,GAAE9K,GAAKthC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBtlK,EAAIthC,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,oBAEhU,cACE,MAAO,SACLl2C,GAAE,mMAKkB,YAAdjvJ,KAAK+6E,KAAqB,2DAA6D,4FAOnG,SAAS4E,IAAGt+C,EAAGC,EAAIG,EAAGE,GAAI,EAAOC,GAC/B,IAAmJmG,EAA/I1D,EAAIhG,GAAEi+B,cAAcj7B,EAAE89B,OAAS99B,EAAE89B,MAAM,GAAI76B,EAAIjD,EAAEq9B,MAAOn6B,EAAIlG,GAAEi+B,cAAch7B,EAAG69B,OAAQ16B,EAAI7C,EAAEq/B,SAASx/B,EAAEm/B,QAAS94B,EAAIvD,EAAI,EAAIE,EAAEF,EAAI,GAAK,EAAI,EAAMyD,EAAI3G,EAAE89B,MAAMnnC,QAClKgQ,EAAE,GAAKF,EACP,IAAIM,EAAI7D,EAAIF,EAAG6H,EAAIqtK,GAAG,CAAEr7L,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOn3B,EAAG/mC,MAAO,EAAGy9D,MAAOp6B,KACxEyD,EAAI,IAAIquL,IAAGpuL,EAAGI,EAAG9D,GACjB,IAAI6H,EAAI,CAAC,CAAE4uC,KAAM,QAASn+B,KAAM,CAACvY,IAAM,CAAE02C,KAAM,QAASn+B,KAAM,CAACxU,KAAO8C,EAAItJ,EAAE43K,iBAAiBzxK,EAAG,CAAC1G,EAAGC,EAAIG,GAAI6C,EAAG6H,EAAGD,GAClH,GAAIvK,EACF,OAAOuJ,EACT,IAAIuB,EAAI8sK,GAAG,CAAEr7L,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAO,CAACr3B,GAAI7mC,MAAO,EAAGy9D,MAAO,WAC/D32B,EAAI,IAAIsuL,IAAGvuL,EAAGrG,EAAE09B,OAChB,IAAIpyB,EAAInL,EAAE43K,iBAAiBzxK,EAAG,CAACtG,GAAI,QAAS,KAAMgL,GAAIO,EAAIusK,GAAG,CAAEr7L,QAAS0jB,EAAGolC,MAAO,CAAE7H,MAAOn3B,EAAG/mC,MAAO,EAAGy9D,MAAOp6B,KAC/GyD,EAAI,IAAIuuL,IAAGtuL,EAAG1D,GAAI6H,EAAI,CAAC,CAAE4uC,KAAM,QAASn+B,KAAM,CAACvY,KAC/C,IAAI4I,EAAIrL,EAAE43K,iBAAiBzxK,EAAG,CAACmD,EAAG6B,GAAIzI,EAAG6H,EAAGa,GAC5C,OAAOpL,EAAEukC,YAAYj7B,EAAE01B,QAASh/B,EAAEukC,YAAYp5B,EAAE6zB,QAAS3zB,EAE3D,SAASspL,IAAIl1L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,OAAOq+C,IAAGh+C,EAAGC,EAAGwC,GAAG,EAAO3C,GAE5B,IAAI+0L,IAAK,CAAE79J,WAAYvgD,GAAIwgD,YAAa,SAAUuO,WAAYovJ,KAC9D,SAASE,IAAIp1L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,GAAMJ,GAAKub,KAAMjb,EAAGukD,QAAStkD,EAAGi3D,WAAYz0D,GAAM9C,EAC7E,OAAOq+C,IAAGh+C,EAAGC,EAAGwC,GAAG,EAAM3C,GAE3B,IAAIi1L,IAAK,CAAE/9J,WAAYrgD,GAAIsgD,YAAa,SAAUuO,WAAYsvJ,KAC1DE,IAAK,MACP,YAAYr1L,EAAIG,GACdzhC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EACzE,IAAIv9B,EAAI,IAAI8yB,MAAMnzB,EAAGphC,QACrB,IAAK,IAAI0hC,EAAI,EAAGA,EAAID,EAAEzhC,OAAQ0hC,IAC5BD,EAAEC,GAAKN,EAAGM,GAAKH,EAAEG,GACnB5hC,KAAK+5F,YAAcp4D,EAAG3hC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKi/D,KAAOj/D,KAAK+5F,YAAY75F,OAAQF,KAAKmlM,UAAY,OAEvM,cACE,IAAI7jK,EAAKs1L,IAAI52N,KAAKi/D,KAAM,aACxB,MAAO,WACHgwF,GAAE,8IAG+B3tH,mCAMzC,SAASs1L,IAAIv1L,EAAGC,EAAK,IACnB,GAAID,GAAK,EACP,MAAM4C,MAAM,iBAAiB5C,0BAC/B,GAAU,IAANA,EACF,MAAO,YAAYC,WACrB,IAAIG,EAAI,CAAC,UAAW,UAAW,UAAW,WAAYE,EAAI,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAGO,IACrBD,EAAEkK,KAAK,IAAIpK,EAAEG,QAAQN,WAAYM,OACnC,OAAOD,EAAE+1B,OAEX,SAASm/J,IAAGx1L,GACV,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM+8C,KAAMj6C,GAAMzC,EAC3E,GAAIF,EAAEq+H,mBAAmB,CAACl+H,KAAmB,WAAZA,EAAE88B,OAAsB98B,EAAEu9B,MAAMj/D,QAAU,EAAG,CAC5E,IAAIqkC,EAAI9C,EAAEw/B,SAASr/B,EAAEg/B,QAASn8B,EAAgB,WAAZ7C,EAAE88B,MAAqBn6B,EAAEgwB,IAAKxsB,GAAM1J,GAAEw7B,aAAa9xB,IAAMxD,EAAG2B,EAAIjmB,GAAG2hB,EAAEu9B,MAAOv9B,EAAE88B,MAAOj6B,GAAIqD,EAAI60K,GAAGz2K,EAAG9B,GACrI,OAAO3C,EAAE41F,eAAevvF,EAAEq3B,MAAOr3B,EAAE42B,MAAO52B,EAAEhpC,QAE9C,IAAIulC,EAAI,IAAIsyL,IAAG/0L,EAAEu9B,MAAO/6B,GACxB,OAAO3C,EAAE+3K,iBAAiBn1K,EAAG,CAACzC,GAAIA,EAAE88B,OAEtC,IAAIo4J,IAAK,CAAEn+J,WAAY/9C,GAAIg+C,YAAa,SAAUuO,WAAY0vJ,KAC9D,SAASE,IAAI11L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKw4D,cAAej4D,EAAGk4D,aAAc11D,EAAGuqD,aAActqD,GAAM/C,GAAMy4D,YAAaz1D,GAAM3C,GAAKg2D,UAAWpzD,EAAGqzD,WAAYnzD,EAAGozD,UAAW3xD,EAAGi6B,QAASr4B,EAAGgwD,WAAY/vD,GAAM1pB,GAAE45E,gBAAgB7zD,EAAGxC,EAAG0C,GAAI0D,GAAI,EAC9O,GAAgB,WAAZ5D,EAAEs6B,MAAoB,CACxB,IAAIrxB,EAAI5L,EAAEknG,WAAW/mG,GAAI0L,EAAI7L,EAAEknG,WAAWvkG,GAAImJ,EAAIlP,GAAEw7B,aAAap4B,EAAEw/B,SAAS58B,EAAEu8B,QAAQ,IAAK3hE,EAAIo9M,GAAGhvK,EAAGC,EAAGhJ,EAAGyD,EAAG7B,EAAGzB,EAAGF,EAAGuD,EAAGyF,EAAGvF,GAC7H,OAAOvG,EAAE41F,eAAe/yF,EAAGrlC,EAAEy/D,MAAOz/D,EAAEH,QAExC,IAAIspC,EAAI,CAACL,EAAI7B,EAAGA,GAAIgG,EAAIwtK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAGF,MAAS4H,EAAI/H,EAAE+6B,MAAMj/D,OAASw5M,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC16B,EAAGyB,MAAUk0K,GAAG,CAAEx7I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,IAAMyJ,EAAIiB,EAAEuyB,MAAOjyB,EAAIhL,EAAE41F,eAAe,GAAInsF,EAAG7M,GAAEu9B,oBAAoB,EAAG1wB,IAAK6B,EAAI2sK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO1K,MAAMrsB,EAAEloC,QAAQ0mB,KAAK,MAASomB,EAAI6pL,IAAG,CAAEj4J,OAAQ,CAAE1zB,EAAG6B,GAAK7uB,QAASujB,EAAGulC,MAAO,CAAEqX,KAAMj2C,KAAQ6E,EAAI5O,GAAEi+B,cAAc,CAAC73B,EAAGyB,IAAKgH,EAAI,CAAC,CAAE6tC,KAAM,QAASn+B,KAAM,CAACrY,IAAM,CAAEw2C,KAAM,QAASn+B,KAAM9U,GAAK,CAAEizC,KAAM,QAASn+B,KAAM,CAAC3P,KACliB,OAAQxI,GACN,KAAK,EACH,MACF,KAAK,EACH,CACE,IAAI4I,EAAI,IAAIinL,IAAG,CAAC7vL,EAAGyB,GAAI3B,EAAG2H,EAAEizB,MAAMj/D,OAAQisC,EAAEgzB,MAAMj/D,OAAQ4nC,EAAGM,EAAG8C,EAAGlD,GACnEvG,EAAE+3K,iBAAiBnsK,EAAG,CAAClB,EAAGD,GAAIhB,EAAGgC,EAAGF,GAEtC,MACF,QACE,CACE,IAAIK,EAAI,IAAIinL,IAAG,CAAC7vL,EAAGyB,GAAI3B,EAAG2H,EAAEizB,MAAMj/D,OAAQusC,EAAE0yB,MAAMj/D,OAAQ4nC,EAAGM,EAAG8C,EAAGlD,GACnEvG,EAAE+3K,iBAAiBnsK,EAAG,CAACZ,EAAGP,GAAIhB,EAAGgC,EAAGF,GAEtC,CACE,IAAIK,EAAI,IAAIinL,IAAG,CAAC7vL,EAAGyB,GAAI3B,EAAG2H,EAAEizB,MAAMj/D,OAAQisC,EAAEgzB,MAAMj/D,OAAQ4nC,EAAGM,EAAG8C,GAChEzJ,EAAE+3K,iBAAiBnsK,EAAG,CAAClB,EAAGD,GAAIhB,EAAGgC,EAAGF,IAG1C,IAAII,EAAIssK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG8B,GAAK9uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO76B,KAC3D,OAAO7C,EAAE0kC,YAAYj6B,EAAE00B,QAASn/B,EAAE0kC,YAAYh6B,EAAEy0B,QAASn/B,EAAE0kC,YAAYp5B,EAAE6zB,QAASn/B,EAAE0kC,YAAY15B,EAAEm0B,QAASn/B,EAAE0kC,YAAYn5B,EAAE4zB,QAASxzB,EAEtI,IAAI4pL,IAAK,CAAEr+J,WAAYngD,GAAIogD,YAAa,SAAUuO,WAAY4vJ,KAC9D,SAASE,IAAI51L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM60D,gBAAiB/xD,EAAG4yC,KAAM3yC,GAAM1C,EAAG2C,EAAIjG,GAAE29B,eAAe33B,EAAGzC,EAAEu9B,OAAO,GAAI56B,EAAIlmB,GAAEohG,iBAAiB79E,EAAGwC,EAAGE,GAAIG,EAAI7C,EAAEu9B,MAAMj/D,OAAQgmC,EAAI,IAAIuuB,MAAMhwB,GAAG7d,KAAK,GAAIkhB,EAAIlG,EAAEu9B,MAAMnnC,QAClO,OAAOuM,EAAEgwB,IAAKxsB,IACZ,IAAIC,EAAI,IAAIF,GACZE,EAAE1D,GAAKyD,EACP,IAAIK,EAAI+4K,GAAG,CAAEviJ,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAOt2C,EAAGg5B,KAAMl3B,KACpE,OAAO9B,EAAE5B,IAAMyD,EAAGK,IAGtB,IAAI8uL,IAAK,CAAEv+J,WAAYjgD,GAAIkgD,YAAa,SAAUuO,WAAY8vJ,KAC1DE,IAAM1c,GAAG,CAAEC,OAAQxK,GAAEkE,OACrBgjB,IAAK,CAAEz+J,WAAY//C,GAAIggD,YAAa,SAAUuO,WAAYgwJ,KAC1DE,IAAK,CAAE1+J,WAAY7/C,GAAI8/C,YAAa,SAAUuO,WAAY,EAAGvI,OAAQv9B,EAAGnjB,QAASojB,MACnF,IAAM4J,EAAGzJ,GAAMJ,EAAGM,EAAIL,EAAIM,EAAI,IAAI44K,GAAG/4K,EAAE09B,MAAO+wI,GAAEmE,QAChD,OAAO1yK,EAAE63K,iBAAiB53K,EAAG,CAACH,GAAIA,EAAEi9B,SAElC44J,IAAM3c,GAAG,CAAED,OAAQ3R,GAAGiH,qBACtBunB,IAAK,CAAE5+J,WAAY3/C,GAAI4/C,YAAa,SAAUuO,WAAYmwJ,KAC9D,SAASE,KAAM54J,OAAQv9B,EAAG2lC,MAAO1lC,EAAIpjB,QAASujB,IAC5C,IAAMyJ,EAAGvJ,GAAMN,EAAGO,EAAI,IAAI44K,GAAG74K,EAAEw9B,MAAO+wI,GAAEoE,KAAM,oBAAqBlwK,EAAI,CAAC,CAAE22C,KAAM,UAAWn+B,KAAM,CAACtb,EAAG4lD,SACrG,OAAOzlD,EAAE+3K,iBAAiB53K,EAAG,CAACD,GAAIA,EAAE+8B,MAAOt6B,GAE7C,IAAIqzL,IAAK,CAAE9+J,WAAYv/C,GAAIw/C,YAAa,SAAUuO,WAAYqwJ,KAC1DE,IAAK,MACP,YAAYp2L,GACVthC,KAAKmsJ,cAAgB,CAAC,KAAMnsJ,KAAKw9M,cAAgB,EAAGx9M,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,cAAe,CAAC9lM,KAAKw9M,cAAe,EAAG,IAC9Q,IAAI/7K,EAAIikK,GAAG1lM,KAAK+5F,YAAY75F,QAC5BF,KAAKumM,SAAW,WAAW9kK,iBAAiBA,MAAOzhC,KAAKmlM,UAAY,eAEtE,cACE,IAAI7jK,EAAKthC,KAAK+5F,YAAY75F,OAAQuhC,EAAI,GACtC,GAAW,IAAPH,EACFG,EAAI,iDACD,CACH,IAAIG,EAAI,EACRH,EAAIzhC,KAAK+5F,YAAYxlC,IAAI,CAACnwB,EAAGC,KAAOzC,IAAiC,IAA5B5hC,KAAK+5F,YAAY75F,OAAe,6BAA6BmkC,uBAAuBA,KAAO,UAAUzC,EAAI,yBAAyByC,uBAAuBA,OAAOqzB,KAAK,KAEhN,MAAO,YACFu3F,GAAE,kJAG+BxtH,sCAM1C,SAASk2L,IAAIt2L,GACX,IAAsV4L,GAAhV2xB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAMk7C,MAAOp4C,EAAG0nC,IAAKznC,EAAG87B,QAAS77B,EAAG0yD,UAAWzyD,EAAG0yD,QAASxyD,EAAGyyD,aAAchxD,EAAGixD,YAAarvD,EAAGsvD,eAAgBrvD,GAAMpG,GAAK01E,iBAAkBrvE,EAAGsvE,WAAYlvE,EAAGmvE,WAAYrrE,EAAGsrE,UAAWrrE,EAAGsrE,cAAevsE,EAAGsxC,MAAO/vC,EAAGq/B,IAAK/+B,EAAGozB,QAASnzB,GAAMrU,GAAGg9E,UAAU/zE,EAAEu9B,MAAO/6B,EAAGC,EAAGC,EAAGC,EAAGE,EAAGyB,EAAG4B,EAAGC,GAClV,GAAImE,EACFe,EAAIysK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,UACpD,GAAI+D,GAAKjB,EAAG,CACf7M,GAAE26B,OAAOp3B,EAAEu9B,MAAMj/D,QAAU,EAAG,IAAM,yCAAyC0hC,EAAEu9B,MAAMj/D,QACrF,IAAIgtC,EAAIvU,GAAGs8E,gBAAgBxoE,EAAGM,EAAGC,GAAII,EAAI+zK,GAAG,CAAEviJ,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO/vC,EAAGyyB,KAAMhyB,KACrGD,EAAIysK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGkC,GAAKlvB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAAQ3G,EAAE0kC,YAAY/4B,EAAEwzB,aAC1E,GAAIn/B,EAAEq+H,mBAAmB,CAACl+H,IAAK,CACpC,IAAIwL,EAAI3L,EAAEw/B,SAASr/B,EAAEg/B,QAASvzB,EAAIptB,GAAG2hB,EAAEu9B,MAAOv9B,EAAE88B,MAAOtxB,GAAIE,EAAIkvK,GAAGx0K,EAAGqF,EAAGL,EAAGP,GAC3EQ,EAAIxL,EAAE41F,eAAejvF,EAAGxG,EAAE88B,MAAOpxB,EAAExuC,YAC9B,CACL,IAAIsuC,EAAI,IAAIsqL,IAAG1vL,GAAIqF,EAAI,CAAC,CAAE0tC,KAAM,QAASn+B,KAAMnQ,GAAK,CAAEsuC,KAAM,QAASn+B,KAAM5P,IAAMM,EAAI7L,EAAE+3K,iBAAiBpsK,EAAG,CAACxL,GAAIA,EAAE88B,MAAOrxB,GACzHJ,EAAIysK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGoC,GAAKpvB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO/2B,KAAQ3G,EAAE0kC,YAAY74B,EAAEszB,QAEjF,OAAO3zB,EAET,IAAI2qL,IAAK,CAAEj/J,WAAYr/C,GAAIs/C,YAAa,SAAUuO,WAAYwwJ,KAC9D,SAASE,IAAIx2L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKwkE,UAAWjkE,EAAGkkE,YAAa1hE,EAAG2hE,QAAS1hE,EAAG83B,SAAU73B,EAAG0hE,SAAUzhE,EAAG0hE,uBAAwBxhE,GAAM9C,GAAKib,KAAM1W,EAAGggE,WAAYp+D,GAAMxG,EAAIyG,EAAItG,EAAEw/B,SAAS/6B,EAAE06B,QAAS54B,EAAIvG,EAAEw/B,SAASn5B,EAAE84B,SAAUx4B,EAAG8D,GAAKuwK,GAAG10K,EAAGC,EAAGpG,EAAGwC,EAAGC,EAAGC,EAAGC,EAAGE,GAC3Q,MAAO,CAAChD,EAAE41F,eAAe,CAACjvF,EAAEloC,QAAS,SAAUkoC,GAAI3G,EAAE41F,eAAevvF,EAAEq3B,MAAO,QAASjzB,IAExF,IAAI4rL,IAAK,CAAEn/J,WAAYn/C,GAAIo/C,YAAa,SAAUuO,WAAY0wJ,KAC1DE,IAAMpd,GAAG,CAAED,OAAQ3R,GAAGkH,IAAK1tC,cAAem6C,GAAIh6C,iBAAiB,IAC/Ds1D,IAAK,CAAEr/J,WAAY7+C,GAAI8+C,YAAa,SAAUuO,WAAY4wJ,KAC1DE,IAAMxd,GAAG,CAAEC,OAAQxK,GAAEqE,MACrB2jB,IAAK,CAAEv/J,WAAYz+C,GAAI0+C,YAAa,SAAUuO,WAAY8wJ,KAC1DE,IAAM1d,GAAG,CAAEC,OAAQxK,GAAEsE,OACrB4jB,IAAK,CAAEz/J,WAAYv+C,GAAIw+C,YAAa,SAAUuO,WAAYgxJ,KAC9D,SAASE,IAAIh3L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKjG,OAAQwG,EAAGskD,QAAS9hD,EAAG4zD,QAAS3zD,GAAM/C,KAASK,GAAKg2D,UAAWrzD,EAAGszD,WAAYrzD,EAAGszD,UAAWpzD,EAAG07B,QAASj6B,EAAG4xD,WAAYhwD,GAAMzpB,GAAE45E,gBAAgB5zD,EAAGD,EAAGxC,EAAEu9B,OAAQp3B,EAAI,CAACD,EAAIrD,EAAGA,GAC3N,GAAU,IAANqD,EACF,OAAOrG,EAAE41F,eAAez1F,EAAEu9B,MAAO/6B,EAAEs6B,OACrC,IAAI12B,EAAI,GAAII,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9G,GAAKlmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGD,MACvE0D,EAAE6D,KAAKzD,GACP,IAAI8D,EAAIwtK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,CAAC56B,EAAGE,MAC/DuD,EAAE6D,KAAKK,GACP,IAAIC,EAAIutK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAC3DC,EAAE6D,KAAKM,GACP,IAAIjB,EAAI2rL,IAAG,CAAEj4J,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAEqX,KAAM5pB,MAAM1sB,EAAE7nC,QAAQ0mB,KAAK,MAAS6lB,EAAI,IAAI6nL,IAAG,CAAC/vL,EAAGE,GAAIH,EAAG8D,EAAE+2B,MAAMj/D,OAAQgsC,EAAEizB,MAAMj/D,OAAQgmC,EAAG6B,EAAGnG,EAAE88B,OAAO,GAAQ3xB,EAAI1O,GAAEi+B,cAAc,CAAC/3B,EAAGE,IAAKuI,EAAI,CAAC,CAAE+tC,KAAM,QAASn+B,KAAM,CAACtY,IAAM,CAAEy2C,KAAM,QAASn+B,KAAM1W,GAAK,CAAE60C,KAAM,QAASn+B,KAAM,CAAC7P,KAAOE,EAAIxL,EAAE+3K,iBAAiB/sK,EAAG,CAACP,EAAG9D,GAAI+D,EAAEuyB,MAAO1xB,EAAG9B,GAC9UlD,EAAE6D,KAAKoB,GACP,IAAIC,EAAIwsK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG+B,GAAK/uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOv9B,EAAEu9B,SAC7D,OAAOn3B,EAAE2R,QAASvM,GAAM3L,EAAE0kC,YAAY/4B,EAAEwzB,SAAU1zB,EAEpD,IAAIorL,IAAK,CAAE3/J,WAAYj+C,GAAIk+C,YAAa,SAAUuO,WAAYkxJ,KAC1DE,IAAK,MACP,YAAYj3L,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKumM,SAAW,sFAC/NvmM,KAAKmlM,UAAY,OAE/C,cACE,MAAO,aACDl2C,GAAE,m+EAqERupE,IAAK,MACP,YAAYl3L,GACVthC,KAAKmsJ,cAAgB,CAAC,IAAK,WAAYnsJ,KAAK8lM,cAAgB,CAAC,IAAK,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKumM,SAAW,6CAA8CvmM,KAAKmlM,UAAY,QAE5T,cACE,MAAO,aACDl2C,GAAE,g4EA6DZ,SAASwpE,IAAGp3L,EAAGC,GACN,OAAPA,GAAeD,EAAE8kC,YAAY7kC,EAAGs/B,QAElC,SAAS83J,IAAGr3L,GACV,IAAIC,EAAK,EACT,KAAOA,EAAKD,GACVC,GAAM,EACR,OAAOA,EAET,SAASq3L,IAAIt3L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,GAAMN,GAAM2L,EAAG7I,EAAGk0D,OAAQj0D,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAO56B,EAAID,EAAEA,EAAEpkC,OAAS,GACpH,GAAIuhC,EAAEq+H,mBAAmB,CAACl+H,IAAK,CAC7B,IAAIqL,EAAIxL,EAAEw/B,SAASr/B,EAAEg/B,SAAU1zB,EAAGE,GAAKwvK,GAAG3vK,EAAG3I,EAAG1C,EAAE88B,MAAOt6B,EAAGC,GAC5D,MAAO,CAAC5C,EAAE41F,eAAenqF,EAAEiyB,MAAOjyB,EAAEwxB,MAAOxxB,EAAEpuC,QAAS2iC,EAAE41F,eAAejqF,EAAE+xB,MAAO/xB,EAAEsxB,MAAOtxB,EAAEtuC,SAE7F,GAAU,IAANslC,EACF,OAAOE,EAAEA,EAAEpkC,OAAS,GAAK,EAAG,CAACuhC,EAAE41F,eAAe/yF,EAAG1C,EAAE88B,MAAO,IAAKj9B,EAAE41F,eAAe/yF,EAAG,QAAS,KAC9F,GAAU,IAANC,EACF,MAAO,CAAC3C,EAAG23K,GAAG,CAAEvyI,MAAO,CAAE7H,MAAO76B,EAAGo6B,MAAO,QAASz9D,MAAO,GAAKid,QAASujB,KAC1E,IAAIyE,EAAI7H,GAAEi+B,cAAch4B,GAAKC,EAAGuD,EAAI4xK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGtJ,GAAKolC,MAAO,CAAE7H,MAAO,CAACj5B,EAAG3B,IAAMrmB,QAASujB,IAAMsG,EAAI2wL,IAAGt0L,GAAI4D,EAAI0wL,IAAGn0L,GAAI6D,EAAI,KAAM8D,EAAI,IAAY,OAAN9D,EAAa,CAACN,EAAGA,GAAK,CAACA,EAAGM,GAAI+D,EAAI,CAACc,EAAGC,EAAGE,KACrL,IAAIC,EAAInB,IAAKoB,EAAI,IAAIirL,IAAGnrL,GAAInuC,EAAI,CAAC,CAAE87E,KAAM,QAASn+B,KAAM,CAACrY,IAAM,CAAEw2C,KAAM,QAASn+B,KAAM,CAAO,OAANxU,EAAa,EAAI,IAAM,CAAE2yC,KAAM,UAAWn+B,KAAM,CAAC4W,OAAO6qC,oBAAsB,CAAEtjB,KAAM,QAASn+B,KAAM,CAAC3P,IAAM,CAAE8tC,KAAM,QAASn+B,KAAM,CAAC1P,KAAOM,EAAIpF,EACtOA,EAAI3G,EAAE+3K,iBAAiBlsK,EAAGD,EAAG,QAASpuC,GAAIw5N,IAAGh3L,EAAG+L,IAElD,IAAK,IAAIP,EAAI,EAAGA,EAAIlF,EAAGkF,GAAK,EAAG,CAC7B,IAAIC,EAAQ,EAAJD,EACR,IAAK,IAAIG,EAAIH,EAAGG,GAAK,EAAGA,GAAK,EAC3BjB,EAAEe,EAAGE,EAAG,CAAClH,EAAG8B,IAEhB,IAAK,IAAIiF,EAAIjF,EAAGiF,EAAIlF,EAAGkF,GAAK,EAAG,CAC7B,IAAIC,EAAIhB,IAAKkB,EAAI,IAAIorL,IAAG,CAACtyL,EAAG+G,EAAI,IAAKK,EAAI,CAAC,CAAEytC,KAAM,QAASn+B,KAAM,CAACrY,IAAM,CAAEw2C,KAAM,QAASn+B,KAAM,CAAO,OAANxU,EAAa,EAAI,IAAM,CAAE2yC,KAAM,QAASn+B,KAAM,CAAC7U,KAAOwF,EAAInF,EAC1JA,EAAI3G,EAAE+3K,iBAAiBpsK,EAAGF,EAAG,QAASI,GAAImrL,IAAGh3L,EAAG8L,GAChD,IAAItuC,EAAI8oC,EAAI,EAAGyF,EAAQ,EAAJvuC,EACnB,IAAK,IAAIyuC,EAAIzuC,EAAGyuC,GAAK,EAAGA,GAAK,EAC3BvB,EAAEqB,EAAGE,EAAGtF,EAAE+2B,OAEd,IAAIj0B,EAAI9C,EACRA,EAAI+4K,GAAG,CAAEviJ,OAAQ,CAAE1zB,EAAG9C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAO,EAAGtd,KAAM,CAACh5B,EAAG9B,MAASq0L,IAAGh3L,EAAGyJ,GACnF,IAAIuB,EAAI4/K,GAAG,CAAEztJ,OAAQ,CAAE1zB,EAAGpD,EAAGo+C,QAAS99C,GAAKlqB,QAASujB,EAAGulC,MAAO,CAAEgQ,KAAM,EAAGmP,UAAW,KACpFsyI,IAAGh3L,EAAGqG,GACN,IAAIiF,EAAIzI,EAAEtM,MAAM,GAAI,GACpB+U,EAAElB,KAAKzH,GAAI8G,EAAI9C,EAAGA,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG9C,GAAK4+B,MAAO,CAAE7H,MAAOpyB,GAAK7uB,QAASujB,IAAMg3L,IAAGh3L,EAAGyJ,GACvF,IAAI8B,EAAIP,EACR,OAAOA,EAAIitK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGuB,GAAKu6B,MAAO,CAAE7H,MAAOpyB,GAAK7uB,QAASujB,IAAMg3L,IAAGh3L,EAAGuL,GAAI,CAACP,EAAGrE,GAEtF,IAAIwwL,IAAK,CAAEjgK,WAAY79C,GAAI89C,YAAa,SAAUuO,WAAYwxJ,KAC1DE,IAAK,MACP,YAAYv3L,GACVthC,KAAKmsJ,cAAgB,CAAC,QAAS,cAAensJ,KAAKumM,SAAW,gEAAiEvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKk/D,MAAO,EAAMl/D,KAAK+5F,YAAcz4D,EAAIthC,KAAK4mM,eAAiBx6J,GAAEpsC,KAAK+5F,aAAc/5F,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgB5mM,KAAK+5F,YAAa/5F,KAAK8lM,eAAgB9lM,KAAKmlM,UAAY,YAErV,cACE,MAAO,w5EAgECl2C,GAAE,02EAuDd,SAAS6pE,IAAIz3L,GACX,IAA4Q0L,GAAtQ6xB,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK7X,MAAOoY,EAAG8/D,WAAYt9D,GAAM9C,GAAMqgE,cAAet9D,EAAGu9D,SAAUt9D,EAAG05D,UAAWz5D,EAAGw1D,YAAat1D,GAAM9C,GAAIuE,EAAG4B,EAAGC,EAAGC,GAAKpG,EAAEu9B,OAAQ/2B,EAAG8D,GAAU,MAALzH,EAAYA,EAAI,CAACqD,EAAGC,GAAIoE,EAAI,CAACjG,EAAGkC,EAAG8D,EAAGlE,GAAIkD,EAAI,IAAI2tL,IAAG1sL,GAAIM,EAAU,YAANpI,EAAkB,EAAI,EACzQ,OAAQC,GACN,IAAK,WACHyI,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,IAAK,OACHA,EAAI,EACJ,MACF,IAAK,UACHA,EAAI,EACJ,MACF,QACEA,EAAI,EACJ,MAEJ,IAAIC,EAAI,CAAC,CAAE+tC,KAAM,QAASn+B,KAAM,CAACnQ,IAAM,CAAEsuC,KAAM,QAASn+B,KAAM,CAAC7P,IAAM,CAAEguC,KAAM,UAAWn+B,KAAM,CAACrY,KAC/F,OAAO9C,EAAE+3K,iBAAiBtuK,EAAG,CAACtJ,EAAGwC,GAAI,UAAW4I,GAElD,IAAI+rL,IAAK,CAAEpgK,WAAY39C,GAAI49C,YAAa,SAAUuO,WAAY2xJ,KAC9D,SAASE,IAAI33L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAKpgC,MAAO2gC,GAAMN,GAAM01C,KAAM5yC,GAAMzC,EAC/EyC,EAAI,IAAMA,GAAKxC,EAAEu9B,MAAMj/D,QACvB,IAAImkC,EAAIzC,EAAG0C,EAAID,EAAE86B,MAAMj/D,OAAQqkC,EAAI3C,EAAEu9B,MAAM/6B,GAAIK,EAAI,IAAIgwB,MAAMnwB,EAAI,GAAI4B,EAAI,EACzE,IAAK,IAAIgG,EAAI,EAAGA,EAAI5H,EAAG4H,IACrBA,IAAM9H,IAAMK,EAAEyB,KAAO7B,EAAE86B,MAAMjzB,IAC/B,IAAIpE,EAAI,GAAIC,EAAI,IAAI0sB,MAAMnwB,GAAG1d,KAAK,GAAIohB,EAAI3D,EAAE86B,MAAMnnC,QAClDgQ,EAAE5D,GAAK,EACP,IAAIgE,EAAI,IAAIqsB,MAAMlwB,GAClB,IAAK,IAAI2H,EAAI,EAAGA,EAAI9D,EAAEloC,OAAQgsC,IAAK,CACjCnE,EAAE3D,GAAK8H,EACP,IAAIC,EAAIg1K,GAAG,CAAEviJ,OAAQ,CAAE1zB,EAAG7G,GAAKnmB,QAASujB,EAAGulC,MAAO,CAAEwV,MAAOz0C,EAAGm3B,KAAMl3B,KAAQkD,EAAIwuK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGiB,GAAKjuB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO16B,KACnI2D,EAAE8D,GAAKhB,EAAGpD,EAAE+D,KAAKM,GAEnB,OAAOrE,EAAE6R,QAASzN,GAAMzK,EAAE0kC,YAAYj6B,EAAE00B,SAAUx4B,EAEpD,IAAI6wL,IAAK,CAAEtgK,WAAYr9C,GAAIs9C,YAAa,SAAUuO,WAAY6xJ,KAC1DE,IAAK,MACP,YAAY53L,EAAIG,EAAGE,GACjB,GAAI3hC,KAAK+5F,YAAc,GAAI/5F,KAAKmsJ,cAAgB,CAAC,IAAK,cAAensJ,KAAKumM,SAAW,iCAAkCvmM,KAAK8lM,cAAgB,CAAC,GAAI,EAAG,GAAI9lM,KAAKymM,QAAS,EAAMzmM,KAAK+5F,YAAct4D,EAAGzhC,KAAK4mM,eAAiBx6J,GAAE9K,GAAKthC,KAAKonM,SAAWO,GAAE3nM,KAAK4mM,eAAgBtlK,EAAIthC,KAAK8lM,eAAsB,YAANnkK,GAAyB,UAANA,EAChT,MAAM,IAAIsC,MAAM,6FACkBtC,WACpC3hC,KAAK+6E,KAAOp5C,EAAG3hC,KAAKmlM,UAAY,qBAElC,cACE,MAAO,SACLl2C,GAAE,kYAWI01C,GAAG,qBAAsB,QAAS3kM,KAAK+6E,yCAOnD,SAASo+I,IAAI93L,GACX,IAAMu9B,OAAQt9B,EAAIpjB,QAASujB,EAAGulC,MAAOrlC,GAAMN,GAAK6J,EAAGtJ,EAAGi3D,WAAYz0D,GAAM9C,GAAMw3D,YAAaz0D,GAAM1C,EAAG2C,EAAI1C,EAAEu9B,MAAMj/D,OAAQqkC,EAAI,GAAIE,EAAI,EAAGyB,EAAI7nB,GAAE+9F,mBAAmB,CAAC33E,GAAIH,GAAIwD,EAAIlG,EACxK,MAALsE,IAAc4B,EAAIi2K,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAGtJ,GAAK1jB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMnzD,KAAQ3B,EAAEsH,KAAK/D,GAAIrD,EAAIpmB,GAAE0+F,iBAAiB,EAAGz4E,GAAG,IACpH,IAAIyD,EAAI1pB,GAAEshG,aAAa1K,gBAAgBntE,EAAEq3B,MAAO16B,EAAGJ,GAAI2D,EAAI3J,GAAEi+B,cAAc,CAACx0B,EAAEq3B,MAAM16B,KAAM2D,EAAIsxK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAGpD,GAAK5pB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAO,EAAE,EAAGn3B,MACtJzD,EAAEsH,KAAKzD,GACP,IAAI8D,EAAItK,EAAE88B,MAAOvyB,EAAI,CAAC/D,EAAE+2B,MAAM,GAAI96B,GAAI6G,EAAIquK,GAAG,CAAEr7L,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOhzB,EAAGlrC,MAAO,EAAGy9D,MAAOxyB,KAAQO,EAAI,IAAIysL,IAAG9wL,EAAE+2B,MAAOhzB,EAAGD,GAAIa,EAAI,CAAC,CAAEguC,KAAM,QAASn+B,KAAM,CAACvY,IAAM,CAAE02C,KAAM,QAASn+B,KAAM,CAACve,GAAEi+B,cAAcl0B,EAAE+2B,UAAYnyB,EAAIvL,EAAE+3K,iBAAiB/sK,EAAG,CAACrE,EAAGhE,GAAI8H,EAAGa,EAAG7B,GAAI+B,EAAIysK,GAAG,CAAE96I,OAAQ,CAAE1zB,EAAG8B,GAAK9uB,QAASujB,EAAGulC,MAAO,CAAE7H,MAAOp3B,KAC9TxD,EAAEsH,KAAKmB,GACP,IAAIE,EAAID,EACR,GAAS,MAAL/G,EAAW,CACb3B,EAAEsH,KAAKoB,GACP,IAAIG,EAAI/uB,GAAE+gG,uBAAuBl5E,GACjCgH,EAAI6wK,GAAG,CAAEn/I,OAAQ,CAAE1zB,EAAGgC,GAAKhvB,QAASujB,EAAGulC,MAAO,CAAEqyB,KAAMjsD,KAExD,OAAO7I,EAAEoV,QAASvM,GAAM3L,EAAE0kC,YAAY/4B,EAAEwzB,SAAU1zB,EAEpD,IAAIksL,IAAK,CAAEzgK,WAAYn9C,GAAIo9C,YAAa,SAAUuO,WAAYgyJ,KAC1DE,IAAM,CAACvf,GAAIkD,GAAIE,GAAIE,GAAIE,GAAII,GAAIY,GAAIE,GAAIG,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIc,GAAIE,GAAII,GAAIE,GAAIE,GAAIO,GAAIM,GAAIG,GAAIO,GAAIE,GAAII,GAAIrI,GAAIyI,GAAIS,GAAIc,GAAIM,GAAII,GAAIG,GAAIE,GAAIG,GAAIE,GAAIE,GAAIM,GAAIM,GAAIE,GAAIE,GAAIG,GAAIW,GAAIE,GAAIN,GAAIS,GAAIG,GAAII,GAAIE,GAAIK,GAAIK,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIE,GAAIM,GAAI9Q,GAAIgR,GAAIO,GAAIL,GAAIE,GAAIa,GAAIE,GAAIE,GAAIG,GAAIK,GAAIE,GAAIE,GAAIrS,GAAIuS,GAAIxJ,GAAI0J,GAAIE,IAAIE,IAAIE,IAAIE,IAAIE,IAAIG,IAAII,IAAIF,IAAII,IAAIE,IAAIE,IAAIO,IAAIG,IAAI/O,GAAIiP,IAAIE,IAAIQ,IAAIN,IAAII,IAAII,IAAI3P,GAAI6P,IAAIE,IAAIG,IAAIE,IAAIM,IAAI7H,GAAI+H,IAAIE,IAAIE,IAAIjP,GAAIoP,IAAII,IAAIE,IAAII,IAAIE,IAAIE,IAAIE,IAAIE,IAAIpQ,GAAIsQ,IAAIE,IAAIE,IAAIE,IAAIpZ,GAAIuZ,IAAIG,IAAIG,IAAIG,IAAIG,IAAIG,IAAIE,IAAIE,IAAIO,IAAIG,IAAII,IAAIE,IAAIE,IAAIE,IAAIE,IAAIE,IAAIzU,GAAIqW,IAAIG,IAAIE,IAAIpH,IAAIqF,IAAII,IAAIK,IAAIE,IAAIM,IAAIE,IAAIE,IAAIC,IAAIE,IAAIS,IAAI/O,GAAIiP,IAAIE,IAAIE,IAAIxB,IAAI8B,IAAIG,IAAI/a,GAAIib,IAAIG,IAAI7H,KAC/oB,IAAK,IAAIlwL,KAAKg4L,IACZxlM,GAAGwN,GACL,IAAIi4L,IAAK,SACLC,IAAM,SACNC,IAAM,SACNC,IAAM,SACNC,IAAM,SACNC,IAAM,SACN56L,IAAM,CAAEqjK,KAAMk3B,IAAI,YAAaA,IAAI,iBAAkBC,IAAK,mBAAoBC,IAAK,qBAAsBC,IAAK,oBAAqBC,IAAK,sBAAuBC,KAGnK,SAASjuM,OAAO9pB,GACd,MAAMg4N,EAAsB,IAAI9tL,KAC1B+tL,EAAM,GAAGD,EAAIE,WAAWh0L,WAAWi0L,SAAS,EAAG,QAAQH,EAAII,aAAal0L,WAAWi0L,SAAS,EAAG,QAAQH,EAAIK,aAAan0L,WAAWi0L,SAAS,EAAG,QAAQH,EAAIM,kBAAkBp0L,WAAWi0L,SAAS,EAAG,OACtMn4N,GACF4wC,QAAQ9mB,IAAImuM,EAAK,YAAaj4N,GAElC,SAAS81D,IAAKyiK,EAAQC,GACpB,MAAMv0H,EAAYs0H,EAAOnvJ,SAAS,KAAO,GAAK,IACxCqvJ,EAAWD,EAAK7hL,WAAW,MAAQ6hL,EAAK7hL,WAAW,MAAQ6hL,EAAK7hL,WAAW,UAAY6hL,EAAK7hL,WAAW,WAAa6hL,EAAK7hL,WAAW,SACpIo7B,EAAO0mJ,EAAW,GAAGD,EAAS,GAAGD,IAASt0H,IAAYu0H,IAC5D,IAAKzmJ,EAAK2mJ,oBAAoB/5N,SAAS,SACrC,MAAM,IAAI0jC,MAAM,yCAAyC0vC,GAC3D,OAAOA,EAET,IAAIh0B,IAAM,IACmB,qBAAhBlM,YACFA,YAAYkM,MACdnb,UAAUgvB,OAAO7iB,EAAQ6P,OAAO+5K,UAAY,IAAM,KAAKz0L,YAEhE,SAAS67J,IAAS64B,EAAUC,EAASjoG,EAAS,SAAUkoG,EAAO,IAC7D,IAAK,MAAM15N,KAAOJ,OAAOo9D,KAAKy8J,GAC5B,GAA4B,kBAAjBA,EAAQz5N,GACjB2gM,IAAS64B,EAASx5N,GAAMy5N,EAAQz5N,GAAMA,EAAK05N,OACtC,CACL,MAAMC,EAAUH,GAAqC,qBAAlBA,EAASx5N,GACvC25N,GACHD,EAAK7uL,KAAK,CAAE+uL,OAAQ,mBAAoB56L,MAAO,GAAGwyF,KAAUxxH,OAASy5N,EAAQz5N,OAC/E,MAAM65N,EAAOL,UAAmBA,EAASx5N,YAAgBy5N,EAAQz5N,GAC7D25N,IAAYE,GACdH,EAAK7uL,KAAK,CAAE+uL,OAAQ,yBAA0B56L,MAAO,GAAGwyF,KAAUxxH,OAASy5N,EAAQz5N,KAAQ85N,gBAAiBN,EAASx5N,KAK3H,OAFIy5N,EAAQtlE,OAAoB,WAAX3iC,GAAuBkoG,EAAKx6N,OAAS,GACxDwrB,IAAI,wBAAyBgvM,GACxBA,EAET,SAASK,OAAaC,GACpB,MAAMC,EAAYl6N,GAAQA,GAAsB,kBAARA,EACxC,OAAOi6N,EAAQl7N,OAAO,CAACo7N,EAAMn6N,KAC3BH,OAAOo9D,KAAKj9D,GAAO,IAAI44C,QAAS34C,IAC9B,MAAMm6N,EAAOD,EAAKl6N,GACZo6N,EAAOr6N,EAAIC,GACbyzD,MAAMC,QAAQymK,IAAS1mK,MAAMC,QAAQ0mK,GACvCF,EAAKl6N,GAAOm6N,EAAKv6M,UAAUw6M,GACpBH,EAASE,IAASF,EAASG,GAClCF,EAAKl6N,GAAO+5N,IAAUI,EAAMC,GAE5BF,EAAKl6N,GAAOo6N,IAETF,GACN,IAIL,IAAIG,IAAS,CACXn9M,QAAS,GACTo9M,cAAe,GACfC,aAAa,EACbC,gBAAgB,EAChBC,SAAU,GACVC,mBAAmB,EACnBvmE,OAAO,EACPhpF,OAAO,EACPwvJ,OAAQ,OACRC,iBAAkB,GAClBC,aAAa,EACbC,YAAY,EACZnlK,MAAO,GACPolK,iBAAiB,EACjBrsK,OAAQ,CACNssK,SAAS,EACTC,cAAc,EACdtxJ,MAAO,EACPD,OAAQ,EACRwxJ,MAAM,EACNC,QAAQ,EACRC,gBAAgB,EAChBC,WAAY,EACZC,SAAU,EACVC,UAAW,EACXC,KAAM,EACNC,WAAY,EACZla,IAAK,EACLma,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,SAAU,GAEZC,QAAS,CACPjB,SAAS,GAEXkB,KAAM,CACJlB,SAAS,EACTmB,SAAU,CACRtsJ,UAAW,iBACXusJ,UAAU,EACVC,YAAa,EACbC,WAAY,GACZC,SAAU,KACVC,cAAe,GACfC,QAAS,EACTl/H,aAAc,GACdm/H,MAAM,EACNvB,QAAQ,GAEVwB,KAAM,CACJ3B,SAAS,EACTnrJ,UAAW,gBACX+sJ,aAAa,GAEfC,UAAW,CACT7B,SAAS,EACTnrJ,UAAW,2BAEbitJ,KAAM,CACJ9B,SAAS,EACTnrJ,UAAW,aAEbktJ,QAAS,CACP/B,SAAS,EACTwB,cAAe,GACfF,WAAY,GACZC,SAAU,KACV1sJ,UAAW,gBAEbmtJ,YAAa,CACXhC,SAAS,EACTnrJ,UAAW,eACXysJ,WAAY,GACZC,SAAU,IACVC,cAAe,IAEjBS,UAAW,CACTjC,SAAS,EACTsB,WAAY,GACZC,SAAU,IACV1sJ,UAAW,kBAEbqtJ,SAAU,CACRlC,SAAS,EACTsB,WAAY,GACZC,SAAU,IACV1sJ,UAAW,kBAGfugC,KAAM,CACJ4qH,SAAS,EACTnrJ,UAAW,yBACXwsJ,aAAc,EACdG,cAAe,GACfF,WAAY,EACZC,SAAU,KAEZY,KAAM,CACJnC,SAAS,EACToB,UAAU,EACVE,WAAY,GACZC,SAAU,IACVC,cAAe,GACfj/H,aAAc,GACd8+H,aAAc,EACde,WAAW,EACXjB,SAAU,CACRtsJ,UAAW,kBAEbwtJ,SAAU,CACRxtJ,UAAW,2BAGfytJ,OAAQ,CACNtC,SAAS,EACTnrJ,UAAW,iBACX2sJ,cAAe,GACfj/H,aAAc,GACd8+H,YAAa,GACbC,WAAY,GACZC,SAAU,KAEZgB,aAAc,CACZvC,SAAS,EACTnrJ,UAAW,WACX2tJ,MAAO,GACP1zI,KAAM,YAKN2zI,IAAiB,wNAWjBC,IAAuB,qfAavBC,IAA0B,mZAa1B3B,IAAW,iVAcXR,IAAO,6/CAwBPoC,IAAc,49BAyBdC,IAAU,CAAC/pJ,EAAQgqJ,EAAQC,KAC7B,MAAM19L,EAAI,IAAIojG,OAAO,MAAQq6F,EAAS,eAAgB,MACtDhqJ,EAAO3iC,QAAQ9Q,EAAG,CAAC29L,EAAQz9N,KACzBw9N,EAAWx9N,GAAQ,EACZy9N,KAGPC,IAAY,MACd,YAAYC,EAAKC,EAAcC,GAC7B39N,EAAczB,KAAM,UAAW,IAC/ByB,EAAczB,KAAM,YAAa,IACjCyB,EAAczB,KAAM,MACpByB,EAAczB,KAAM,MACpByB,EAAczB,KAAM,UAAW,CAAC80E,EAAQiG,KACtC,MAAMskJ,EAASr/N,KAAKm4D,GAAG0rF,aAAa9oE,GACpC,OAAKskJ,GAILr/N,KAAKm4D,GAAG4rF,aAAas7E,EAAQvqJ,GAC7B90E,KAAKm4D,GAAG6rF,cAAcq7E,GACjBr/N,KAAKm4D,GAAG8rF,mBAAmBo7E,EAAQr/N,KAAKm4D,GAAG+rF,gBAIzCm7E,GAHL3zM,IAAI,+BAA8B1rB,KAAKm4D,GAAGgsF,iBAAiBk7E,IAAW,YAC/D,QAPP3zM,IAAI,mCACG,QAUX1rB,KAAKm4D,GAAK+mK,EACV,MAAMjqE,EAAej1J,KAAKo0H,QAAQ+qG,EAAcn/N,KAAKm4D,GAAG2rF,eAClDuI,EAAiBrsJ,KAAKo0H,QAAQgrG,EAAgBp/N,KAAKm4D,GAAGisF,iBAE5D,GADApkJ,KAAKq/D,GAAKr/D,KAAKm4D,GAAG4iF,gBACbka,GAAiB5I,EAEtB,GAAKrsJ,KAAKq/D,GAOV,GAHAr/D,KAAKm4D,GAAG+8F,aAAal1J,KAAKq/D,GAAI41F,GAC9Bj1J,KAAKm4D,GAAG+8F,aAAal1J,KAAKq/D,GAAIgtF,GAC9BrsJ,KAAKm4D,GAAG2lF,YAAY99I,KAAKq/D,IACpBr/D,KAAKm4D,GAAGssF,oBAAoBzkJ,KAAKq/D,GAAIr/D,KAAKm4D,GAAGusF,aAAlD,CAIA1kJ,KAAKm4D,GAAGk9F,WAAWr1J,KAAKq/D,IACxBw/J,IAAQM,EAAc,YAAan/N,KAAKsnJ,WACxC,IAAK,MAAMjjH,KAAKrkC,KAAKsnJ,UACnBtnJ,KAAKsnJ,UAAUjjH,GAAKrkC,KAAKm4D,GAAGgtF,kBAAkBnlJ,KAAKq/D,GAAIh7B,GACzDw6L,IAAQM,EAAc,UAAWn/N,KAAKktJ,SACtC2xE,IAAQO,EAAgB,UAAWp/N,KAAKktJ,SACxC,IAAK,MAAMzoH,KAAKzkC,KAAKktJ,QACnBltJ,KAAKktJ,QAAQzoH,GAAKzkC,KAAKm4D,GAAGwtF,mBAAmB3lJ,KAAKq/D,GAAI56B,QAVtD/Y,IAAI,4BAA2B1rB,KAAKm4D,GAAGwsF,kBAAkB3kJ,KAAKq/D,KAAO,iBAPrE3zC,IAAI,4CAoBV,SAAS4zM,MACP,IAAIC,EAAY,EACZC,EAAgB,KAChBC,GAAc,EACdC,GAA2B,EAC3BC,EAAmB,CAAC,KAAM,MAC1BC,EAAc,GACdhsE,EAAe,KACfisE,EAAiB,KACrB,MAAMC,EAAWjsH,IAAO,IAAK,KACvBksH,EAAqB,GACrBl7B,EAAO,CAAEm7B,aAAc,GACvBd,EAAMY,EAAS3sH,WAAW,SAChC,IAAK+rH,EAEH,YADAxzM,IAAI,oCAIN,SAAS4iG,EAAO3jD,EAAOD,GACrB,GAAIC,IAAUm1J,EAASn1J,OAASD,IAAWo1J,EAASp1J,OAApD,CAIA,GAFAo1J,EAASn1J,MAAQA,EACjBm1J,EAASp1J,OAASA,GACbkpF,EAAc,CACjB,MAAMqsE,EAAW,IAAI9pL,aAAa,EAAE,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC9Gy9G,EAAesrE,EAAIr6E,eACnBq6E,EAAIp6E,WAAWo6E,EAAIn6E,aAAc6O,GACjCsrE,EAAIl6E,WAAWk6E,EAAIn6E,aAAck7E,EAAUf,EAAIj6E,aAC/Ci6E,EAAIgB,YAAYhB,EAAIiB,gCAAgC,GAEtDjB,EAAIn5E,SAAS,EAAG,EAAG+5E,EAASn1J,MAAOm1J,EAASp1J,QAC5Ci1J,EAAmB,CAAC,KAAM,OAE5B,SAASS,EAAyBz1J,EAAOD,GACvC,MAAM21J,EAAMnB,EAAIrkF,oBAChBqkF,EAAIr5E,gBAAgBq5E,EAAIp5E,YAAau6E,GACrC,MAAMC,EAAepB,EAAIqB,qBACzBrB,EAAIsB,iBAAiBtB,EAAIuB,aAAcH,GACvC,MAAMn9J,EAAU+7J,EAAI7jF,gBAUpB,OATA6jF,EAAIz5E,YAAYy5E,EAAIx5E,WAAYviF,GAChC+7J,EAAIl4E,WAAWk4E,EAAIx5E,WAAY,EAAGw5E,EAAIz9E,KAAM92E,EAAOD,EAAQ,EAAGw0J,EAAIz9E,KAAMy9E,EAAI5uE,cAAe,MAC3F4uE,EAAI1vE,cAAc0vE,EAAIx5E,WAAYw5E,EAAIpvE,mBAAoBovE,EAAI/rB,QAC9D+rB,EAAI1vE,cAAc0vE,EAAIx5E,WAAYw5E,EAAItvE,mBAAoBsvE,EAAI/rB,QAC9D+rB,EAAI1vE,cAAc0vE,EAAIx5E,WAAYw5E,EAAIzvE,eAAgByvE,EAAIxvE,eAC1DwvE,EAAI1vE,cAAc0vE,EAAIx5E,WAAYw5E,EAAIvvE,eAAgBuvE,EAAIxvE,eAC1DwvE,EAAIj5E,qBAAqBi5E,EAAIp5E,YAAao5E,EAAIh5E,kBAAmBg5E,EAAIx5E,WAAYviF,EAAS,GAC1F+7J,EAAIz5E,YAAYy5E,EAAIx5E,WAAY,MAChCw5E,EAAIr5E,gBAAgBq5E,EAAIp5E,YAAa,MAC9B,CAAEu6E,MAAKl9J,WAEhB,SAASu9J,EAAmBC,GAE1B,OADAhB,EAAiBgB,GAAUhB,EAAiBgB,IAAWP,EAAyBN,EAASn1J,MAAOm1J,EAASp1J,QAClGi1J,EAAiBgB,GAE1B,SAASruH,EAAK37C,EAAQ,GACpB,IAAKkpK,EACH,OACF,IAAI/qJ,EAAS,KACT/1E,EAAS,KACT6hO,GAAQ,EAEV9rJ,EADgB,IAAdyqJ,EACOC,EAEAkB,EAAmBhB,GAAyBv8J,SAAW,KAClEo8J,KACIE,GAAiB9oK,EAAQkuI,EAAKm7B,cAIhCN,GAA2BA,EAA0B,GAAK,EAC1D3gO,EAAS2hO,EAAmBhB,GAAyBW,KAAO,OAJ5DthO,EAAS,KACT6hO,EAAQrB,EAAY,IAAM,GAK5BL,EAAIz5E,YAAYy5E,EAAIx5E,WAAY5wE,GAChCoqJ,EAAIr5E,gBAAgBq5E,EAAIp5E,YAAa/mJ,GACrCmgO,EAAIxxE,UAAUmyE,EAAe3yE,QAAQ,SAAU0zE,GAAS,EAAI,GAC5D1B,EAAI2B,WAAW3B,EAAIvpE,UAAW,EAAG,GAEnC,SAAS3R,EAAco7E,GACrB,GAAIW,EAAmBX,GAGrB,OAFAS,EAAiBE,EAAmBX,GACpCF,EAAI7pE,YAAYwqE,EAAiBA,EAAexgK,GAAK,OAAS,MACvDwgK,EAGT,GADAA,EAAiB,IAAIZ,IAAUC,EAAKT,IAAgBW,IAC/CS,EAEH,OADAn0M,IAAI,uCACG,KAET,MAAMo1M,EAAY3qL,aAAa4qL,kBACzBC,EAAW,EAAIF,EAMrB,OALA5B,EAAI75E,wBAAwBw6E,EAAev4E,UAAU,QACrD43E,EAAI95E,oBAAoBy6E,EAAev4E,UAAU,OAAQ,EAAG43E,EAAI39E,OAAO,EAAOy/E,EAAU,EAAIF,GAC5F5B,EAAI75E,wBAAwBw6E,EAAev4E,UAAU,OACrD43E,EAAI95E,oBAAoBy6E,EAAev4E,UAAU,MAAO,EAAG43E,EAAI39E,OAAO,EAAOy/E,EAAU,EAAIF,GAC3Ff,EAAmBX,GAAkBS,EAC9BA,EA9ET7/N,KAAKm4D,GAAK+mK,EAgFV,MAAMxvK,EAAS,CACbuxK,YAAcC,IACZ,MAAMn5L,EAAI,IAAIoO,aAAa+qL,GAC3Bn5L,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACT,MAAMs3L,EAAmB,IAAVt3L,EAAE,KAAsB,IAATA,EAAE,IAAqB,IAATA,EAAE,IAAsB,IAAVA,EAAE,KAAuB,IAAVA,EAAE,KAAuB,IAAVA,EAAE,KAAuB,IAAVA,EAAE,KAAuB,IAAVA,EAAE,IAAY42L,IAA0BD,IACxJtyE,EAAUpI,EAAcq7E,GACzBjzE,IAEL8yE,EAAIjxE,WAAW7B,EAAQc,QAAQ,KAAMnlH,GACrCuqE,MAEF+pH,WAAaA,IACX,MAAM5vL,GAAK4vL,GAAc,GAAK,EAC9B3sK,EAAOuxK,YAAY,CACjBx0L,EACA,EACA,EACA,EACA,EACA,EACAA,EACA,EACA,EACA,EACA,EACA,EACAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAGJgwL,WAAa0E,IACX,MAAMj2L,EAAoB,GAAfi2L,GAAU,GAAS,EAAI,EAC5BC,GAAgB,IAAVl2L,EAAI,GAChBwkB,EAAOuxK,YAAY,CACjB/1L,EACAk2L,EACAA,EACA,EACA,EACAA,EACAl2L,EACAk2L,EACA,EACA,EACAA,EACAA,EACAl2L,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAGJm2L,WAAY,KACV3xK,EAAO+sK,YAAY,IAErBH,SAAW6E,IACT,MAAMG,GAAOH,GAAU,GAAK,EACtBx/L,GAAK,KAAO2/L,EAAM,GACxB5xK,EAAOuxK,YAAY,CACjBK,EACA,EACA,EACA,EACA3/L,EACA,EACA2/L,EACA,EACA,EACA3/L,EACA,EACA,EACA2/L,EACA,EACA3/L,EACA,EACA,EACA,EACA,EACA,KAGJ+6L,SAAU,KACRhtK,EAAO4sK,UAAU,IAEnB/Z,IAAM6a,IACJA,GAAYA,GAAY,GAAK,IAAMr5L,KAAKw2D,GACxC,MAAMr4E,EAAM6hB,KAAK7hB,IAAIk7M,GACfxlM,EAAMmM,KAAKnM,IAAIwlM,GACfmE,EAAO,KACPC,EAAO,KACPC,EAAO,KACb/xK,EAAOuxK,YAAY,CACjBM,EAAOr/M,GAAO,EAAIq/M,GAAQ3pM,GAAO2pM,EACjCC,EAAOt/M,GAAOs/M,EAAO5pM,GAAO4pM,EAC5BC,EAAOv/M,GAAOu/M,EAAO7pM,GAAO,EAAI6pM,GAChC,EACA,EACAF,EAAOr/M,GAAOq/M,EAAa,KAAN3pM,EACrB4pM,EAAOt/M,GAAO,EAAIs/M,GAAc,IAAN5pM,EAC1B6pM,EAAOv/M,GAAOu/M,GAAc,KAAP7pM,EACrB,EACA,EACA2pM,EAAOr/M,GAAOq/M,EAAO3pM,IAAQ,EAAI2pM,GACjCC,EAAOt/M,GAAOs/M,EAAO5pM,EAAM4pM,EAC3BC,EAAOv/M,GAAO,EAAIu/M,GAAQ7pM,EAAM6pM,EAChC,EACA,EACA,EACA,EACA,EACA,EACA,KAGJC,oBAAqB,KACnBhyK,EAAOuxK,YAAY,CACjB,SACA,QACA,SACA,GACC,KACD,SACA,QACA,SACA,GACC,KACD,SACA,QACA,SACA,GACC,KACD,EACA,EACA,EACA,EACA,KAGJtE,MAAO,KACLjtK,EAAOuxK,YAAY,CACjB,KACA,SACA,UACA,EACA,EACA,KACA,SACA,UACA,EACA,EACA,KACA,SACA,UACA,EACA,EACA,EACA,EACA,EACA,EACA,KAGJU,QAAS,KACPjyK,EAAOuxK,YAAY,CACjB,kBACA,oBACC,kBACD,EACA,mBACC,oBACD,kBACA,mBACA,GACC,kBACD,oBACC,mBACD,mBACA,GACC,kBACD,EACA,EACA,EACA,EACA,KAGJW,eAAgB,KACdlyK,EAAOuxK,YAAY,CACjB,kBACA,mBACC,mBACD,EACA,kBACA,mBACA,kBACA,mBACA,EACA,kBACA,mBACC,kBACD,kBACA,EACA,kBACA,EACA,EACA,EACA,EACA,KAGJpE,WAAY,KACVntK,EAAOuxK,YAAY,CACjB,oBACC,mBACA,mBACD,EACA,mBACC,mBACD,oBACC,mBACD,EACA,oBACC,oBACA,kBACD,mBACA,EACA,kBACA,EACA,EACA,EACA,EACA,KAGJnE,YAAa,KACXptK,EAAOuxK,YAAY,CACjB,oBACC,mBACA,mBACD,EACA,oBACC,kBACD,oBACC,mBACD,GACC,mBACA,kBACA,kBACD,kBACA,EACA,mBACA,EACA,EACA,EACA,EACA,KAGJlE,SAAU,KACRrtK,EAAOuxK,YAAY,CACjB,OACC,MACA,KAC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,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAElBC,IAAS,CACX,IACA,GACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEEC,IAAQ,CAEV,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,EACA,IACA,EACA,GACA,GACA,EACA,IACA,IAEA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,GACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GAEA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,KAEEC,IAAQ,CAAC,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAC1JC,IAAO,CAAC,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,KAC3BF,IAAMzjL,IAAKrpB,GAAM4sM,IAAM5sM,IACvB+sM,IAAM1jL,IAAKrpB,GAAM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kBn5O,OAAO63D,QAAQ+gL,KAA0CjlL,IAAI,EAAE2wI,EAAOh/G,KAAaA,EAAQ3xB,IAAKosK,GAAW,CAACA,EAAQz7B,KAAS80C,OAE/IC,KADgC,IAAI/hL,IAAI6hL,KACL,CACrC,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,IACA,IAEA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAEA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAEA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,MAGEG,IAAuC,CACzC,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IAEA,IACA,GACA,GACA,GACA,GACA,GACA,IAEA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,GACA,IACA,GACA,GACA,GACA,GAEA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,KAGEC,IAAwC,CAC1C,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IACA,IACA,IACA,IACA,IAEA,IACA,IAC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AAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,QAAU7M,EAAG,SAClB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,OAAS7M,EAAG,QACjB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,EAAG,MAAQ7M,EAAG,OAChB,CAAE6M,E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","file":"js/chunk-234750f0.ee32b41c.js","sourcesContent":["var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","/*\n Human\n homepage: \n author: '\n*/\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all2) => {\n for (var name in all2)\n __defProp(target, name, { get: all2[name], enumerable: true });\n};\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\n\n// dist/tfjs.esm.js\nvar tfjs_esm_exports = {};\n__export(tfjs_esm_exports, {\n Abs: () => Xs,\n Acos: () => Wo,\n Acosh: () => Uo,\n AdadeltaOptimizer: () => np,\n AdagradOptimizer: () => sp,\n AdamOptimizer: () => ap,\n AdamaxOptimizer: () => ip,\n Add: () => uo,\n AddN: () => Go,\n All: () => Ho,\n Any: () => Ko,\n ArgMax: () => Ys,\n ArgMin: () => Qs,\n Asin: () => qo,\n Asinh: () => jo,\n Atan: () => Xo,\n Atan2: () => Qo,\n Atanh: () => Yo,\n AvgPool: () => Zo,\n AvgPool3D: () => Zs,\n AvgPool3DGrad: () => Ai,\n AvgPoolGrad: () => Di,\n BackendWasm: () => pm,\n BatchMatMul: () => Jo,\n BatchToSpaceND: () => Js,\n Bincount: () => en,\n BitwiseAnd: () => ja,\n BroadcastArgs: () => ea,\n BroadcastTo: () => Bce,\n Cast: () => bo,\n Ceil: () => tn,\n ClipByValue: () => Co,\n Complex: () => Fi,\n ComplexAbs: () => Pi,\n Concat: () => ta,\n Conv2D: () => rn,\n Conv2DBackpropFilter: () => Oi,\n Conv2DBackpropInput: () => on,\n Conv3D: () => nn,\n Conv3DBackpropFilterV2: () => Xa,\n Conv3DBackpropInputV2: () => sn,\n Cos: () => an,\n Cosh: () => un,\n CropAndResize: () => ln,\n Cumprod: () => pn,\n Cumsum: () => cn,\n DataStorage: () => zo,\n DenseBincount: () => ra,\n DepthToSpace: () => mn,\n DepthwiseConv2dNative: () => dn,\n DepthwiseConv2dNativeBackpropFilter: () => Mi,\n DepthwiseConv2dNativeBackpropInput: () => Li,\n Diag: () => oa,\n Dilation2D: () => fn,\n Dilation2DBackpropFilter: () => zi,\n Dilation2DBackpropInput: () => Bi,\n Draw: () => Pu,\n ENV: () => nw,\n Einsum: () => Vi,\n Elu: () => gn,\n EluGrad: () => Ya,\n Environment: () => hl,\n Equal: () => yn,\n Erf: () => xn,\n Exp: () => bn,\n ExpandDims: () => na,\n Expm1: () => Cn,\n FFT: () => Wi,\n Fill: () => sa,\n FlipLeftRight: () => wn,\n Floor: () => Sn,\n FloorDiv: () => In,\n FromPixels: () => Mu,\n FusedBatchNorm: () => vn,\n FusedConv2D: () => vo,\n FusedDepthwiseConv2D: () => ko,\n GPGPUContext: () => kp,\n GatherNd: () => kn,\n GatherV2: () => aa,\n GraphModel: () => Bl,\n Greater: () => Nn,\n GreaterEqual: () => Tn,\n IFFT: () => Ui,\n Identity: () => wo,\n Imag: () => Gi,\n IsFinite: () => _n,\n IsInf: () => $n,\n IsNan: () => En,\n KernelBackend: () => ao,\n LRN: () => zn,\n LRNGrad: () => Qa,\n LeakyRelu: () => Rn,\n Less: () => Dn,\n LessEqual: () => An,\n LinSpace: () => Fn,\n Log: () => Pn,\n Log1p: () => On,\n LogSoftmax: () => zce,\n LogicalAnd: () => Mn,\n LogicalNot: () => Ln,\n LogicalOr: () => Bn,\n LogicalXor: () => $0,\n LowerBound: () => Vce,\n MathBackendCPU: () => xu,\n MathBackendWebGL: () => wu,\n MatrixBandPart: () => Wce,\n Max: () => Vn,\n MaxPool: () => Un,\n MaxPool3D: () => ia,\n MaxPool3DGrad: () => Ki,\n MaxPoolGrad: () => Hi,\n MaxPoolWithArgmax: () => ua,\n Maximum: () => Wn,\n Mean: () => Gn,\n Min: () => Hn,\n Minimum: () => Kn,\n MirrorPad: () => qn,\n Mod: () => jn,\n MomentumOptimizer: () => up,\n Multinomial: () => Xn,\n Multiply: () => Yn,\n Neg: () => pa,\n NonMaxSuppressionV3: () => Zn,\n NonMaxSuppressionV4: () => Za,\n NonMaxSuppressionV5: () => Jn,\n NotEqual: () => Qn,\n OP_SCOPE_SUFFIX: () => kw,\n OneHot: () => es,\n OnesLike: () => ca,\n Optimizer: () => Nr,\n OptimizerConstructors: () => Pl,\n Pack: () => la,\n PadV2: () => ts,\n Pool: () => Uce,\n Pow: () => rs,\n Prelu: () => os,\n Prod: () => ns,\n RMSPropOptimizer: () => pp,\n RaggedGather: () => Qp,\n RaggedRange: () => Zp,\n RaggedTensorToTensor: () => Jp,\n Range: () => ma,\n Rank: () => hw,\n Real: () => qi,\n RealDiv: () => hn,\n Reciprocal: () => ss,\n Reduction: () => Rt,\n Relu: () => as,\n Relu6: () => ps,\n Reshape: () => da,\n ResizeBilinear: () => us,\n ResizeBilinearGrad: () => ei,\n ResizeNearestNeighbor: () => is,\n ResizeNearestNeighborGrad: () => Ja,\n Reverse: () => cs,\n RotateWithOffset: () => As,\n Round: () => ls,\n Rsqrt: () => ms,\n SGDOptimizer: () => mi,\n ScatterNd: () => ds,\n SearchSorted: () => hs,\n Select: () => fa,\n Selu: () => gs,\n Sigmoid: () => Cs,\n Sign: () => bs,\n Sin: () => xs,\n Sinh: () => ys,\n Slice: () => ha,\n Softmax: () => vs,\n Softplus: () => ws,\n SpaceToBatchND: () => ga,\n SparseFillEmptyRows: () => ji,\n SparseReshape: () => ti,\n SparseSegmentMean: () => ya,\n SparseSegmentSum: () => ba,\n SparseToDense: () => ks,\n SplitV: () => xa,\n Sqrt: () => Ss,\n Square: () => Xi,\n SquaredDifference: () => Ns,\n StaticRegexReplace: () => Ou,\n Step: () => So,\n StridedSlice: () => Ts,\n StringNGrams: () => Ca,\n StringSplit: () => Yi,\n StringToHashBucketFast: () => Qi,\n Sub: () => _s,\n Sum: () => Is,\n Tan: () => $s,\n Tanh: () => Es,\n Tensor: () => ut,\n TensorBuffer: () => tt,\n TensorScatterUpdate: () => fs,\n Tile: () => po,\n TopK: () => Rs,\n Transform: () => Ds,\n Transpose: () => co,\n Unique: () => Zi,\n Unpack: () => wa,\n UnsortedSegmentSum: () => Ji,\n UpperBound: () => Gce,\n Variable: () => oi,\n WebGPUBackend: () => Tu,\n ZerosLike: () => Sa,\n _FusedMatMul: () => Io,\n abs: () => Jt,\n acos: () => kk,\n acosh: () => Nk,\n add: () => Ce,\n addN: () => Tk,\n all: () => _k,\n any: () => $k,\n argMax: () => Ek,\n argMin: () => Rk,\n asin: () => Dk,\n asinh: () => Ak,\n atan: () => Fk,\n atan2: () => Pk,\n atanh: () => Ok,\n avgPool: () => fd,\n avgPool3d: () => Bk,\n backend: () => vde,\n backend_util: () => w,\n basicLSTMCell: () => zk,\n batchNorm: () => au,\n batchNorm2d: () => Wk,\n batchNorm3d: () => Uk,\n batchNorm4d: () => Gk,\n batchToSpaceND: () => hd,\n bincount: () => gd,\n bitwiseAnd: () => Hk,\n booleanMaskAsync: () => E6,\n broadcastArgs: () => Kk,\n broadcastTo: () => iu,\n broadcast_util: () => Ir,\n browser: () => oT,\n buffer: () => me,\n cast: () => We,\n ceil: () => qk,\n clipByValue: () => jk,\n clone: () => Ur,\n complex: () => Er,\n concat: () => bt,\n concat1d: () => Xk,\n concat2d: () => Yk,\n concat3d: () => Qk,\n concat4d: () => Zk,\n conv1d: () => Jk,\n conv2d: () => uu,\n conv2dTranspose: () => e2,\n conv3d: () => t2,\n conv3dTranspose: () => o2,\n copyRegisteredKernels: () => Zce,\n cos: () => n2,\n cosh: () => s2,\n cosineWindow: () => Rl,\n cumprod: () => a2,\n cumsum: () => i2,\n customGrad: () => vr,\n denseBincount: () => u2,\n deprecationWarn: () => Pw,\n depthToSpace: () => p2,\n depthwiseConv2d: () => lc,\n deregisterOp: () => A5,\n device_util: () => ou,\n diag: () => c2,\n dilation2d: () => l2,\n disableDeprecationWarnings: () => dde,\n dispose: () => Mt,\n disposeVariables: () => fde,\n div: () => je,\n divNoNan: () => d2,\n dot: () => f2,\n dropout: () => W6,\n einsum: () => pu,\n elu: () => Cd,\n enableDebugMode: () => mde,\n enableProdMode: () => lde,\n enclosingPowerOfTwo: () => Qw,\n engine: () => pr,\n ensureShape: () => h2,\n env: () => A,\n equal: () => bd,\n erf: () => g2,\n euclideanNorm: () => b2,\n exp: () => $o,\n expandDims: () => Ms,\n expm1: () => C2,\n eye: () => wd,\n fft: () => fc,\n fill: () => Ea,\n findBackend: () => Sde,\n findBackendFactory: () => Ide,\n floor: () => Sd,\n floorDiv: () => dd,\n forceHalfFloat: () => MD,\n fused: () => Zw,\n gather: () => Id,\n gatherND: () => z6,\n gather_util: () => af,\n getBackend: () => Cde,\n getGradient: () => iw,\n getKernel: () => tc,\n getKernelsForBackend: () => Ym,\n getThreadsCount: () => Zse,\n gpgpu_util: () => cv,\n grad: () => AK,\n grads: () => FK,\n greater: () => qu,\n greaterEqual: () => vd,\n ifft: () => Ju,\n imag: () => lu,\n image: () => Kj,\n inTopKAsync: () => G6,\n io: () => fi,\n irfft: () => Kd,\n isFinite: () => w2,\n isInf: () => S2,\n isNaN: () => I2,\n keep: () => Rr,\n kernel_impls: () => Wt,\n leakyRelu: () => kd,\n less: () => _l,\n lessEqual: () => mc,\n linalg: () => qj,\n linspace: () => v2,\n loadGraphModel: () => $8,\n loadGraphModelSync: () => E8,\n localResponseNormalization: () => k2,\n log: () => pi,\n log1p: () => Nd,\n logSigmoid: () => N2,\n logSoftmax: () => T2,\n logSumExp: () => $d,\n logicalAnd: () => ju,\n logicalNot: () => Ed,\n logicalOr: () => Rd,\n logicalXor: () => _2,\n losses: () => jj,\n lowerBound: () => $2,\n matMul: () => Ze,\n math: () => JN,\n max: () => Ra,\n maxPool: () => Ad,\n maxPool3d: () => E2,\n maxPoolWithArgmax: () => R2,\n maximum: () => Fd,\n mean: () => Xu,\n memory: () => hde,\n meshgrid: () => D2,\n min: () => Tl,\n minimum: () => Yu,\n mirrorPad: () => A2,\n mod: () => F2,\n moments: () => P2,\n movingAverage: () => A6,\n mul: () => se,\n multiRNNCell: () => O2,\n multinomial: () => M2,\n neg: () => cr,\n nextFrame: () => pS,\n norm: () => Ku,\n notEqual: () => Pd,\n oneHot: () => El,\n ones: () => Da,\n onesLike: () => L2,\n op: () => N,\n outerProduct: () => B2,\n pad: () => Aa,\n pad1d: () => z2,\n pad2d: () => V2,\n pad3d: () => W2,\n pad4d: () => U2,\n pool: () => G2,\n pow: () => ui,\n prelu: () => Md,\n print: () => md,\n prod: () => H2,\n profile: () => gde,\n raggedGather: () => K2,\n raggedRange: () => q2,\n raggedTensorToTensor: () => j2,\n rand: () => X2,\n randomGamma: () => g1,\n randomNormal: () => Ud,\n randomStandardNormal: () => x1,\n randomUniform: () => dc,\n randomUniformInt: () => y1,\n range: () => mu,\n ready: () => bde,\n real: () => ci,\n reciprocal: () => b1,\n registerBackend: () => su,\n registerGradient: () => Xce,\n registerKernel: () => ri,\n registerOp: () => D5,\n relu: () => du,\n relu6: () => Gd,\n removeBackend: () => wde,\n reshape: () => W,\n reverse: () => mo,\n reverse1d: () => C1,\n reverse2d: () => w1,\n reverse3d: () => S1,\n reverse4d: () => I1,\n rfft: () => hc,\n round: () => Hd,\n rsqrt: () => v1,\n scalar: () => ke,\n scatterND: () => P6,\n scatter_util: () => hu,\n searchSorted: () => $l,\n selu: () => k1,\n separableConv2d: () => N1,\n serialization: () => WN,\n setBackend: () => yde,\n setPlatform: () => kde,\n setThreadsCount: () => Qse,\n setWasmPath: () => Xse,\n setWasmPaths: () => Yse,\n setWebGLContext: () => vI,\n setdiff1dAsync: () => T1,\n shared: () => Tc,\n sigmoid: () => $a,\n sign: () => _1,\n signal: () => Hj,\n sin: () => $1,\n sinh: () => E1,\n slice: () => Xe,\n slice1d: () => R1,\n slice2d: () => D1,\n slice3d: () => A1,\n slice4d: () => F1,\n slice_util: () => ct,\n softmax: () => P1,\n softplus: () => _d,\n spaceToBatchND: () => Od,\n sparse: () => Xj,\n sparseToDense: () => L6,\n spectral: () => Gj,\n split: () => li,\n sqrt: () => Dr,\n square: () => er,\n squaredDifference: () => qd,\n squeeze: () => gc,\n stack: () => kr,\n step: () => jd,\n stridedSlice: () => O1,\n string: () => Yj,\n sub: () => Te,\n sum: () => ot,\n sumOutType: () => ni,\n tan: () => M1,\n tanh: () => Nl,\n tensor: () => ur,\n tensor1d: () => tr,\n tensor2d: () => fu,\n tensor3d: () => Xd,\n tensor4d: () => L1,\n tensor5d: () => B1,\n tensor6d: () => z1,\n tensorScatterUpdate: () => W1,\n tensor_util: () => ek,\n test_util: () => h1,\n tidy: () => De,\n tile: () => cu,\n time: () => xde,\n topk: () => U1,\n train: () => TGe,\n transpose: () => yc,\n truncatedNormal: () => G1,\n unique: () => H1,\n unregisterGradient: () => Qce,\n unregisterKernel: () => Yce,\n unsortedSegmentSum: () => K1,\n unstack: () => fo,\n upcastType: () => dt,\n upperBound: () => q1,\n util: () => y,\n valueAndGrad: () => PK,\n valueAndGrads: () => OK,\n variable: () => j1,\n variableGrads: () => zw,\n version: () => Ace,\n version_converter: () => D8,\n version_core: () => _X,\n version_cpu: () => cY,\n version_wasm: () => Jse,\n version_webgl: () => s9,\n webgl: () => Cat,\n webgl_util: () => Ac,\n webgpu_util: () => Yv,\n where: () => lo,\n whereAsync: () => Qd,\n zeros: () => Gr,\n zerosLike: () => Ht\n});\nvar wG = Object.create;\nvar QC = Object.defineProperty;\nvar SG = Object.getOwnPropertyDescriptor;\nvar IG = Object.getOwnPropertyNames;\nvar vG = Object.getPrototypeOf;\nvar kG = Object.prototype.hasOwnProperty;\nvar qt = (r, t8) => () => (t8 || r((t8 = { exports: {} }).exports, t8), t8.exports);\nvar qe = (r, t8) => {\n for (var e in t8)\n QC(r, e, { get: t8[e], enumerable: true });\n};\nvar NG = (r, t8, e, o) => {\n if (t8 && typeof t8 == \"object\" || typeof t8 == \"function\")\n for (let n of IG(t8))\n !kG.call(r, n) && n !== e && QC(r, n, { get: () => t8[n], enumerable: !(o = SG(t8, n)) || o.enumerable });\n return r;\n};\nvar Kp = (r, t8, e) => (e = r != null ? wG(vG(r)) : {}, NG(t8 || !r || !r.__esModule ? QC(e, \"default\", { value: r, enumerable: true }) : e, r));\nvar V0 = qt((tle, z0) => {\n z0.exports = Nt;\n var No = null;\n try {\n No = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11])), {}).exports;\n } catch (r) {\n }\n function Nt(r, t8, e) {\n this.low = r | 0, this.high = t8 | 0, this.unsigned = !!e;\n }\n Nt.prototype.__isLong__;\n Object.defineProperty(Nt.prototype, \"__isLong__\", { value: true });\n function Wr(r) {\n return (r && r.__isLong__) === true;\n }\n Nt.isLong = Wr;\n var R0 = {}, D0 = {};\n function Bu(r, t8) {\n var e, o, n;\n return t8 ? (r >>>= 0, (n = 0 <= r && r < 256) && (o = D0[r], o) ? o : (e = Tt(r, (r | 0) < 0 ? -1 : 0, true), n && (D0[r] = e), e)) : (r |= 0, (n = -128 <= r && r < 128) && (o = R0[r], o) ? o : (e = Tt(r, r < 0 ? -1 : 0, false), n && (R0[r] = e), e));\n }\n Nt.fromInt = Bu;\n function To(r, t8) {\n if (isNaN(r))\n return t8 ? Lu : _o;\n if (t8) {\n if (r < 0)\n return Lu;\n if (r >= O0)\n return B0;\n } else {\n if (r <= -F0)\n return Vr;\n if (r + 1 >= F0)\n return L0;\n }\n return r < 0 ? To(-r, t8).neg() : Tt(r % oc | 0, r / oc | 0, t8);\n }\n Nt.fromNumber = To;\n function Tt(r, t8, e) {\n return new Nt(r, t8, e);\n }\n Nt.fromBits = Tt;\n var Zm = Math.pow;\n function cw(r, t8, e) {\n if (r.length === 0)\n throw Error(\"empty string\");\n if (r === \"NaN\" || r === \"Infinity\" || r === \"+Infinity\" || r === \"-Infinity\")\n return _o;\n if (typeof t8 == \"number\" ? (e = t8, t8 = false) : t8 = !!t8, e = e || 10, e < 2 || 36 < e)\n throw RangeError(\"radix\");\n var o;\n if ((o = r.indexOf(\"-\")) > 0)\n throw Error(\"interior hyphen\");\n if (o === 0)\n return cw(r.substring(1), t8, e).neg();\n for (var n = To(Zm(e, 8)), s = _o, a = 0; a < r.length; a += 8) {\n var i = Math.min(8, r.length - a), p = parseInt(r.substring(a, a + i), e);\n if (i < 8) {\n var u = To(Zm(e, i));\n s = s.mul(u).add(To(p));\n } else\n s = s.mul(n), s = s.add(To(p));\n }\n return s.unsigned = t8, s;\n }\n Nt.fromString = cw;\n function Fs(r, t8) {\n return typeof r == \"number\" ? To(r, t8) : typeof r == \"string\" ? cw(r, t8) : Tt(r.low, r.high, typeof t8 == \"boolean\" ? t8 : r.unsigned);\n }\n Nt.fromValue = Fs;\n var A0 = 65536, XG = 1 << 24, oc = A0 * A0, O0 = oc * oc, F0 = O0 / 2, P0 = Bu(XG), _o = Bu(0);\n Nt.ZERO = _o;\n var Lu = Bu(0, true);\n Nt.UZERO = Lu;\n var rc = Bu(1);\n Nt.ONE = rc;\n var M0 = Bu(1, true);\n Nt.UONE = M0;\n var pw = Bu(-1);\n Nt.NEG_ONE = pw;\n var L0 = Tt(-1, 2147483647, false);\n Nt.MAX_VALUE = L0;\n var B0 = Tt(-1, -1, true);\n Nt.MAX_UNSIGNED_VALUE = B0;\n var Vr = Tt(0, -2147483648, false);\n Nt.MIN_VALUE = Vr;\n var de = Nt.prototype;\n de.toInt = function() {\n return this.unsigned ? this.low >>> 0 : this.low;\n };\n de.toNumber = function() {\n return this.unsigned ? (this.high >>> 0) * oc + (this.low >>> 0) : this.high * oc + (this.low >>> 0);\n };\n de.toString = function(t8) {\n if (t8 = t8 || 10, t8 < 2 || 36 < t8)\n throw RangeError(\"radix\");\n if (this.isZero())\n return \"0\";\n if (this.isNegative())\n if (this.eq(Vr)) {\n var e = To(t8), o = this.div(e), n = o.mul(e).sub(this);\n return o.toString(t8) + n.toInt().toString(t8);\n } else\n return \"-\" + this.neg().toString(t8);\n for (var s = To(Zm(t8, 6), this.unsigned), a = this, i = \"\"; ; ) {\n var p = a.div(s), u = a.sub(p.mul(s)).toInt() >>> 0, c = u.toString(t8);\n if (a = p, a.isZero())\n return c + i;\n for (; c.length < 6; )\n c = \"0\" + c;\n i = \"\" + c + i;\n }\n };\n de.getHighBits = function() {\n return this.high;\n };\n de.getHighBitsUnsigned = function() {\n return this.high >>> 0;\n };\n de.getLowBits = function() {\n return this.low;\n };\n de.getLowBitsUnsigned = function() {\n return this.low >>> 0;\n };\n de.getNumBitsAbs = function() {\n if (this.isNegative())\n return this.eq(Vr) ? 64 : this.neg().getNumBitsAbs();\n for (var t8 = this.high != 0 ? this.high : this.low, e = 31; e > 0 && !(t8 & 1 << e); e--)\n ;\n return this.high != 0 ? e + 33 : e + 1;\n };\n de.isZero = function() {\n return this.high === 0 && this.low === 0;\n };\n de.eqz = de.isZero;\n de.isNegative = function() {\n return !this.unsigned && this.high < 0;\n };\n de.isPositive = function() {\n return this.unsigned || this.high >= 0;\n };\n de.isOdd = function() {\n return (this.low & 1) === 1;\n };\n de.isEven = function() {\n return (this.low & 1) === 0;\n };\n de.equals = function(t8) {\n return Wr(t8) || (t8 = Fs(t8)), this.unsigned !== t8.unsigned && this.high >>> 31 === 1 && t8.high >>> 31 === 1 ? false : this.high === t8.high && this.low === t8.low;\n };\n de.eq = de.equals;\n de.notEquals = function(t8) {\n return !this.eq(t8);\n };\n de.neq = de.notEquals;\n de.ne = de.notEquals;\n de.lessThan = function(t8) {\n return this.comp(t8) < 0;\n };\n de.lt = de.lessThan;\n de.lessThanOrEqual = function(t8) {\n return this.comp(t8) <= 0;\n };\n de.lte = de.lessThanOrEqual;\n de.le = de.lessThanOrEqual;\n de.greaterThan = function(t8) {\n return this.comp(t8) > 0;\n };\n de.gt = de.greaterThan;\n de.greaterThanOrEqual = function(t8) {\n return this.comp(t8) >= 0;\n };\n de.gte = de.greaterThanOrEqual;\n de.ge = de.greaterThanOrEqual;\n de.compare = function(t8) {\n if (Wr(t8) || (t8 = Fs(t8)), this.eq(t8))\n return 0;\n var e = this.isNegative(), o = t8.isNegative();\n return e && !o ? -1 : !e && o ? 1 : this.unsigned ? t8.high >>> 0 > this.high >>> 0 || t8.high === this.high && t8.low >>> 0 > this.low >>> 0 ? -1 : 1 : this.sub(t8).isNegative() ? -1 : 1;\n };\n de.comp = de.compare;\n de.negate = function() {\n return !this.unsigned && this.eq(Vr) ? Vr : this.not().add(rc);\n };\n de.neg = de.negate;\n de.add = function(t8) {\n Wr(t8) || (t8 = Fs(t8));\n var e = this.high >>> 16, o = this.high & 65535, n = this.low >>> 16, s = this.low & 65535, a = t8.high >>> 16, i = t8.high & 65535, p = t8.low >>> 16, u = t8.low & 65535, c = 0, l = 0, m = 0, d = 0;\n return d += s + u, m += d >>> 16, d &= 65535, m += n + p, l += m >>> 16, m &= 65535, l += o + i, c += l >>> 16, l &= 65535, c += e + a, c &= 65535, Tt(m << 16 | d, c << 16 | l, this.unsigned);\n };\n de.subtract = function(t8) {\n return Wr(t8) || (t8 = Fs(t8)), this.add(t8.neg());\n };\n de.sub = de.subtract;\n de.multiply = function(t8) {\n if (this.isZero())\n return _o;\n if (Wr(t8) || (t8 = Fs(t8)), No) {\n var e = No.mul(this.low, this.high, t8.low, t8.high);\n return Tt(e, No.get_high(), this.unsigned);\n }\n if (t8.isZero())\n return _o;\n if (this.eq(Vr))\n return t8.isOdd() ? Vr : _o;\n if (t8.eq(Vr))\n return this.isOdd() ? Vr : _o;\n if (this.isNegative())\n return t8.isNegative() ? this.neg().mul(t8.neg()) : this.neg().mul(t8).neg();\n if (t8.isNegative())\n return this.mul(t8.neg()).neg();\n if (this.lt(P0) && t8.lt(P0))\n return To(this.toNumber() * t8.toNumber(), this.unsigned);\n var o = this.high >>> 16, n = this.high & 65535, s = this.low >>> 16, a = this.low & 65535, i = t8.high >>> 16, p = t8.high & 65535, u = t8.low >>> 16, c = t8.low & 65535, l = 0, m = 0, d = 0, f = 0;\n return f += a * c, d += f >>> 16, f &= 65535, d += s * c, m += d >>> 16, d &= 65535, d += a * u, m += d >>> 16, d &= 65535, m += n * c, l += m >>> 16, m &= 65535, m += s * u, l += m >>> 16, m &= 65535, m += a * p, l += m >>> 16, m &= 65535, l += o * c + n * u + s * p + a * i, l &= 65535, Tt(d << 16 | f, l << 16 | m, this.unsigned);\n };\n de.mul = de.multiply;\n de.divide = function(t8) {\n if (Wr(t8) || (t8 = Fs(t8)), t8.isZero())\n throw Error(\"division by zero\");\n if (No) {\n if (!this.unsigned && this.high === -2147483648 && t8.low === -1 && t8.high === -1)\n return this;\n var e = (this.unsigned ? No.div_u : No.div_s)(this.low, this.high, t8.low, t8.high);\n return Tt(e, No.get_high(), this.unsigned);\n }\n if (this.isZero())\n return this.unsigned ? Lu : _o;\n var o, n, s;\n if (this.unsigned) {\n if (t8.unsigned || (t8 = t8.toUnsigned()), t8.gt(this))\n return Lu;\n if (t8.gt(this.shru(1)))\n return M0;\n s = Lu;\n } else {\n if (this.eq(Vr)) {\n if (t8.eq(rc) || t8.eq(pw))\n return Vr;\n if (t8.eq(Vr))\n return rc;\n var a = this.shr(1);\n return o = a.div(t8).shl(1), o.eq(_o) ? t8.isNegative() ? rc : pw : (n = this.sub(t8.mul(o)), s = o.add(n.div(t8)), s);\n } else if (t8.eq(Vr))\n return this.unsigned ? Lu : _o;\n if (this.isNegative())\n return t8.isNegative() ? this.neg().div(t8.neg()) : this.neg().div(t8).neg();\n if (t8.isNegative())\n return this.div(t8.neg()).neg();\n s = _o;\n }\n for (n = this; n.gte(t8); ) {\n o = Math.max(1, Math.floor(n.toNumber() / t8.toNumber()));\n for (var i = Math.ceil(Math.log(o) / Math.LN2), p = i <= 48 ? 1 : Zm(2, i - 48), u = To(o), c = u.mul(t8); c.isNegative() || c.gt(n); )\n o -= p, u = To(o, this.unsigned), c = u.mul(t8);\n u.isZero() && (u = rc), s = s.add(u), n = n.sub(c);\n }\n return s;\n };\n de.div = de.divide;\n de.modulo = function(t8) {\n if (Wr(t8) || (t8 = Fs(t8)), No) {\n var e = (this.unsigned ? No.rem_u : No.rem_s)(this.low, this.high, t8.low, t8.high);\n return Tt(e, No.get_high(), this.unsigned);\n }\n return this.sub(this.div(t8).mul(t8));\n };\n de.mod = de.modulo;\n de.rem = de.modulo;\n de.not = function() {\n return Tt(~this.low, ~this.high, this.unsigned);\n };\n de.and = function(t8) {\n return Wr(t8) || (t8 = Fs(t8)), Tt(this.low & t8.low, this.high & t8.high, this.unsigned);\n };\n de.or = function(t8) {\n return Wr(t8) || (t8 = Fs(t8)), Tt(this.low | t8.low, this.high | t8.high, this.unsigned);\n };\n de.xor = function(t8) {\n return Wr(t8) || (t8 = Fs(t8)), Tt(this.low ^ t8.low, this.high ^ t8.high, this.unsigned);\n };\n de.shiftLeft = function(t8) {\n return Wr(t8) && (t8 = t8.toInt()), (t8 &= 63) === 0 ? this : t8 < 32 ? Tt(this.low << t8, this.high << t8 | this.low >>> 32 - t8, this.unsigned) : Tt(0, this.low << t8 - 32, this.unsigned);\n };\n de.shl = de.shiftLeft;\n de.shiftRight = function(t8) {\n return Wr(t8) && (t8 = t8.toInt()), (t8 &= 63) === 0 ? this : t8 < 32 ? Tt(this.low >>> t8 | this.high << 32 - t8, this.high >> t8, this.unsigned) : Tt(this.high >> t8 - 32, this.high >= 0 ? 0 : -1, this.unsigned);\n };\n de.shr = de.shiftRight;\n de.shiftRightUnsigned = function(t8) {\n if (Wr(t8) && (t8 = t8.toInt()), t8 &= 63, t8 === 0)\n return this;\n var e = this.high;\n if (t8 < 32) {\n var o = this.low;\n return Tt(o >>> t8 | e << 32 - t8, e >>> t8, this.unsigned);\n } else\n return t8 === 32 ? Tt(e, 0, this.unsigned) : Tt(e >>> t8 - 32, 0, this.unsigned);\n };\n de.shru = de.shiftRightUnsigned;\n de.shr_u = de.shiftRightUnsigned;\n de.toSigned = function() {\n return this.unsigned ? Tt(this.low, this.high, false) : this;\n };\n de.toUnsigned = function() {\n return this.unsigned ? this : Tt(this.low, this.high, true);\n };\n de.toBytes = function(t8) {\n return t8 ? this.toBytesLE() : this.toBytesBE();\n };\n de.toBytesLE = function() {\n var t8 = this.high, e = this.low;\n return [e & 255, e >>> 8 & 255, e >>> 16 & 255, e >>> 24, t8 & 255, t8 >>> 8 & 255, t8 >>> 16 & 255, t8 >>> 24];\n };\n de.toBytesBE = function() {\n var t8 = this.high, e = this.low;\n return [t8 >>> 24, t8 >>> 16 & 255, t8 >>> 8 & 255, t8 & 255, e >>> 24, e >>> 16 & 255, e >>> 8 & 255, e & 255];\n };\n Nt.fromBytes = function(t8, e, o) {\n return o ? Nt.fromBytesLE(t8, e) : Nt.fromBytesBE(t8, e);\n };\n Nt.fromBytesLE = function(t8, e) {\n return new Nt(t8[0] | t8[1] << 8 | t8[2] << 16 | t8[3] << 24, t8[4] | t8[5] << 8 | t8[6] << 16 | t8[7] << 24, e);\n };\n Nt.fromBytesBE = function(t8, e) {\n return new Nt(t8[4] << 24 | t8[5] << 16 | t8[6] << 8 | t8[7], t8[0] << 24 | t8[1] << 16 | t8[2] << 8 | t8[3], e);\n };\n});\nvar Ik = qt(() => {\n});\nvar vk = qt(() => {\n});\nvar Q2 = qt((Y2, Vw) => {\n (function(r, t8, e) {\n function o(i) {\n var p = this, u = a();\n p.next = function() {\n var c = 2091639 * p.s0 + p.c * 23283064365386963e-26;\n return p.s0 = p.s1, p.s1 = p.s2, p.s2 = c - (p.c = c | 0);\n }, p.c = 1, p.s0 = u(\" \"), p.s1 = u(\" \"), p.s2 = u(\" \"), p.s0 -= u(i), p.s0 < 0 && (p.s0 += 1), p.s1 -= u(i), p.s1 < 0 && (p.s1 += 1), p.s2 -= u(i), p.s2 < 0 && (p.s2 += 1), u = null;\n }\n function n(i, p) {\n return p.c = i.c, p.s0 = i.s0, p.s1 = i.s1, p.s2 = i.s2, p;\n }\n function s(i, p) {\n var u = new o(i), c = p && p.state, l = u.next;\n return l.int32 = function() {\n return u.next() * 4294967296 | 0;\n }, l.double = function() {\n return l() + (l() * 2097152 | 0) * 11102230246251565e-32;\n }, l.quick = l, c && (typeof c == \"object\" && n(c, u), l.state = function() {\n return n(u, {});\n }), l;\n }\n function a() {\n var i = 4022871197, p = function(u) {\n u = String(u);\n for (var c = 0; c < u.length; c++) {\n i += u.charCodeAt(c);\n var l = 0.02519603282416938 * i;\n i = l >>> 0, l -= i, l *= i, i = l >>> 0, l -= i, i += l * 4294967296;\n }\n return (i >>> 0) * 23283064365386963e-26;\n };\n return p;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.alea = s;\n })(Y2, typeof Vw == \"object\" && Vw, typeof define == \"function\" && define);\n});\nvar J2 = qt((Z2, Ww) => {\n (function(r, t8, e) {\n function o(a) {\n var i = this, p = \"\";\n i.x = 0, i.y = 0, i.z = 0, i.w = 0, i.next = function() {\n var c = i.x ^ i.x << 11;\n return i.x = i.y, i.y = i.z, i.z = i.w, i.w ^= i.w >>> 19 ^ c ^ c >>> 8;\n }, a === (a | 0) ? i.x = a : p += a;\n for (var u = 0; u < p.length + 64; u++)\n i.x ^= p.charCodeAt(u) | 0, i.next();\n }\n function n(a, i) {\n return i.x = a.x, i.y = a.y, i.z = a.z, i.w = a.w, i;\n }\n function s(a, i) {\n var p = new o(a), u = i && i.state, c = function() {\n return (p.next() >>> 0) / 4294967296;\n };\n return c.double = function() {\n do\n var l = p.next() >>> 11, m = (p.next() >>> 0) / 4294967296, d = (l + m) / (1 << 21);\n while (d === 0);\n return d;\n }, c.int32 = p.next, c.quick = c, u && (typeof u == \"object\" && n(u, p), c.state = function() {\n return n(p, {});\n }), c;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.xor128 = s;\n })(Z2, typeof Ww == \"object\" && Ww, typeof define == \"function\" && define);\n});\nvar t1 = qt((e1, Uw) => {\n (function(r, t8, e) {\n function o(a) {\n var i = this, p = \"\";\n i.next = function() {\n var c = i.x ^ i.x >>> 2;\n return i.x = i.y, i.y = i.z, i.z = i.w, i.w = i.v, (i.d = i.d + 362437 | 0) + (i.v = i.v ^ i.v << 4 ^ (c ^ c << 1)) | 0;\n }, i.x = 0, i.y = 0, i.z = 0, i.w = 0, i.v = 0, a === (a | 0) ? i.x = a : p += a;\n for (var u = 0; u < p.length + 64; u++)\n i.x ^= p.charCodeAt(u) | 0, u == p.length && (i.d = i.x << 10 ^ i.x >>> 4), i.next();\n }\n function n(a, i) {\n return i.x = a.x, i.y = a.y, i.z = a.z, i.w = a.w, i.v = a.v, i.d = a.d, i;\n }\n function s(a, i) {\n var p = new o(a), u = i && i.state, c = function() {\n return (p.next() >>> 0) / 4294967296;\n };\n return c.double = function() {\n do\n var l = p.next() >>> 11, m = (p.next() >>> 0) / 4294967296, d = (l + m) / (1 << 21);\n while (d === 0);\n return d;\n }, c.int32 = p.next, c.quick = c, u && (typeof u == \"object\" && n(u, p), c.state = function() {\n return n(p, {});\n }), c;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.xorwow = s;\n })(e1, typeof Uw == \"object\" && Uw, typeof define == \"function\" && define);\n});\nvar o1 = qt((r1, Gw) => {\n (function(r, t8, e) {\n function o(a) {\n var i = this;\n i.next = function() {\n var u = i.x, c = i.i, l, m, d;\n return l = u[c], l ^= l >>> 7, m = l ^ l << 24, l = u[c + 1 & 7], m ^= l ^ l >>> 10, l = u[c + 3 & 7], m ^= l ^ l >>> 3, l = u[c + 4 & 7], m ^= l ^ l << 7, l = u[c + 7 & 7], l = l ^ l << 13, m ^= l ^ l << 9, u[c] = m, i.i = c + 1 & 7, m;\n };\n function p(u, c) {\n var l, m, d = [];\n if (c === (c | 0))\n m = d[0] = c;\n else\n for (c = \"\" + c, l = 0; l < c.length; ++l)\n d[l & 7] = d[l & 7] << 15 ^ c.charCodeAt(l) + d[l + 1 & 7] << 13;\n for (; d.length < 8; )\n d.push(0);\n for (l = 0; l < 8 && d[l] === 0; ++l)\n ;\n for (l == 8 ? m = d[7] = -1 : m = d[l], u.x = d, u.i = 0, l = 256; l > 0; --l)\n u.next();\n }\n p(i, a);\n }\n function n(a, i) {\n return i.x = a.x.slice(), i.i = a.i, i;\n }\n function s(a, i) {\n a == null && (a = +/* @__PURE__ */ new Date());\n var p = new o(a), u = i && i.state, c = function() {\n return (p.next() >>> 0) / 4294967296;\n };\n return c.double = function() {\n do\n var l = p.next() >>> 11, m = (p.next() >>> 0) / 4294967296, d = (l + m) / (1 << 21);\n while (d === 0);\n return d;\n }, c.int32 = p.next, c.quick = c, u && (u.x && n(u, p), c.state = function() {\n return n(p, {});\n }), c;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.xorshift7 = s;\n })(r1, typeof Gw == \"object\" && Gw, typeof define == \"function\" && define);\n});\nvar s1 = qt((n1, Hw) => {\n (function(r, t8, e) {\n function o(a) {\n var i = this;\n i.next = function() {\n var u = i.w, c = i.X, l = i.i, m, d;\n return i.w = u = u + 1640531527 | 0, d = c[l + 34 & 127], m = c[l = l + 1 & 127], d ^= d << 13, m ^= m << 17, d ^= d >>> 15, m ^= m >>> 12, d = c[l] = d ^ m, i.i = l, d + (u ^ u >>> 16) | 0;\n };\n function p(u, c) {\n var l, m, d, f, h, g = [], x = 128;\n for (c === (c | 0) ? (m = c, c = null) : (c = c + \"\\0\", m = 0, x = Math.max(x, c.length)), d = 0, f = -32; f < x; ++f)\n c && (m ^= c.charCodeAt((f + 32) % c.length)), f === 0 && (h = m), m ^= m << 10, m ^= m >>> 15, m ^= m << 4, m ^= m >>> 13, f >= 0 && (h = h + 1640531527 | 0, l = g[f & 127] ^= m + h, d = l == 0 ? d + 1 : 0);\n for (d >= 128 && (g[(c && c.length || 0) & 127] = -1), d = 127, f = 4 * 128; f > 0; --f)\n m = g[d + 34 & 127], l = g[d = d + 1 & 127], m ^= m << 13, l ^= l << 17, m ^= m >>> 15, l ^= l >>> 12, g[d] = m ^ l;\n u.w = h, u.X = g, u.i = d;\n }\n p(i, a);\n }\n function n(a, i) {\n return i.i = a.i, i.w = a.w, i.X = a.X.slice(), i;\n }\n function s(a, i) {\n a == null && (a = +/* @__PURE__ */ new Date());\n var p = new o(a), u = i && i.state, c = function() {\n return (p.next() >>> 0) / 4294967296;\n };\n return c.double = function() {\n do\n var l = p.next() >>> 11, m = (p.next() >>> 0) / 4294967296, d = (l + m) / (1 << 21);\n while (d === 0);\n return d;\n }, c.int32 = p.next, c.quick = c, u && (u.X && n(u, p), c.state = function() {\n return n(p, {});\n }), c;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.xor4096 = s;\n })(n1, typeof Hw == \"object\" && Hw, typeof define == \"function\" && define);\n});\nvar i1 = qt((a1, Kw) => {\n (function(r, t8, e) {\n function o(a) {\n var i = this, p = \"\";\n i.next = function() {\n var c = i.b, l = i.c, m = i.d, d = i.a;\n return c = c << 25 ^ c >>> 7 ^ l, l = l - m | 0, m = m << 24 ^ m >>> 8 ^ d, d = d - c | 0, i.b = c = c << 20 ^ c >>> 12 ^ l, i.c = l = l - m | 0, i.d = m << 16 ^ l >>> 16 ^ d, i.a = d - c | 0;\n }, i.a = 0, i.b = 0, i.c = -1640531527, i.d = 1367130551, a === Math.floor(a) ? (i.a = a / 4294967296 | 0, i.b = a | 0) : p += a;\n for (var u = 0; u < p.length + 20; u++)\n i.b ^= p.charCodeAt(u) | 0, i.next();\n }\n function n(a, i) {\n return i.a = a.a, i.b = a.b, i.c = a.c, i.d = a.d, i;\n }\n function s(a, i) {\n var p = new o(a), u = i && i.state, c = function() {\n return (p.next() >>> 0) / 4294967296;\n };\n return c.double = function() {\n do\n var l = p.next() >>> 11, m = (p.next() >>> 0) / 4294967296, d = (l + m) / (1 << 21);\n while (d === 0);\n return d;\n }, c.int32 = p.next, c.quick = c, u && (typeof u == \"object\" && n(u, p), c.state = function() {\n return n(p, {});\n }), c;\n }\n t8 && t8.exports ? t8.exports = s : e && e.amd ? e(function() {\n return s;\n }) : this.tychei = s;\n })(a1, typeof Kw == \"object\" && Kw, typeof define == \"function\" && define);\n});\nvar u1 = qt(() => {\n});\nvar c1 = qt((p1, Ld) => {\n (function(r, t8, e) {\n var o = 256, n = 6, s = 52, a = \"random\", i = e.pow(o, n), p = e.pow(2, s), u = p * 2, c = o - 1, l;\n function m(C, S, k) {\n var _ = [];\n S = S == true ? { entropy: true } : S || {};\n var E = g(h(S.entropy ? [C, b(t8)] : C == null ? x() : C, 3), _), R = new d(_), D = function() {\n for (var P = R.g(n), O = i, M = 0; P < p; )\n P = (P + M) * o, O *= o, M = R.g(1);\n for (; P >= u; )\n P /= 2, O /= 2, M >>>= 1;\n return (P + M) / O;\n };\n return D.int32 = function() {\n return R.g(4) | 0;\n }, D.quick = function() {\n return R.g(4) / 4294967296;\n }, D.double = D, g(b(R.S), t8), (S.pass || k || function(P, O, M, L) {\n return L && (L.S && f(L, R), P.state = function() {\n return f(R, {});\n }), M ? (e[a] = P, O) : P;\n })(D, E, \"global\" in S ? S.global : this == e, S.state);\n }\n function d(C) {\n var S, k = C.length, _ = this, E = 0, R = _.i = _.j = 0, D = _.S = [];\n for (k || (C = [k++]); E < o; )\n D[E] = E++;\n for (E = 0; E < o; E++)\n D[E] = D[R = c & R + C[E % k] + (S = D[E])], D[R] = S;\n (_.g = function(P) {\n for (var O, M = 0, L = _.i, B = _.j, z = _.S; P--; )\n O = z[L = c & L + 1], M = M * o + z[c & (z[L] = z[B = c & B + O]) + (z[B] = O)];\n return _.i = L, _.j = B, M;\n })(o);\n }\n function f(C, S) {\n return S.i = C.i, S.j = C.j, S.S = C.S.slice(), S;\n }\n function h(C, S) {\n var k = [], _ = typeof C, E;\n if (S && _ == \"object\")\n for (E in C)\n try {\n k.push(h(C[E], S - 1));\n } catch (R) {\n }\n return k.length ? k : _ == \"string\" ? C : C + \"\\0\";\n }\n function g(C, S) {\n for (var k = C + \"\", _, E = 0; E < k.length; )\n S[c & E] = c & (_ ^= S[c & E] * 19) + k.charCodeAt(E++);\n return b(S);\n }\n function x() {\n try {\n var C;\n return l && (C = l.randomBytes) ? C = C(o) : (C = new Uint8Array(o), (r.crypto || r.msCrypto).getRandomValues(C)), b(C);\n } catch (_) {\n var S = r.navigator, k = S && S.plugins;\n return [+/* @__PURE__ */ new Date(), r, k, r.screen, b(t8)];\n }\n }\n function b(C) {\n return String.fromCharCode.apply(0, C);\n }\n if (g(e.random(), t8), typeof Ld == \"object\" && Ld.exports) {\n Ld.exports = m;\n try {\n l = u1();\n } catch (C) {\n }\n } else\n typeof define == \"function\" && define.amd ? define(function() {\n return m;\n }) : e[\"seed\" + a] = m;\n })(typeof self != \"undefined\" ? self : p1, [], Math);\n});\nvar qw = qt((Y2e, l1) => {\n var vq = Q2(), kq = J2(), Nq = t1(), Tq = o1(), _q = s1(), $q = i1(), Qu = c1();\n Qu.alea = vq;\n Qu.xor128 = kq;\n Qu.xorwow = Nq;\n Qu.xorshift7 = Tq;\n Qu.xor4096 = _q;\n Qu.tychei = $q;\n l1.exports = Qu;\n});\nvar Bv = qt(() => {\n});\nvar zv = qt(() => {\n});\nvar RB = qt(() => {\n});\nvar DB = qt(() => {\n});\nvar AB = qt(() => {\n});\nvar FB = qt((Wg, Wv) => {\n var Vv = (() => {\n var r = typeof document != \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n return typeof __filename != \"undefined\" && (r = r || __filename), function(t8) {\n t8 = t8 || {};\n function e() {\n return oe.buffer != Ge && _t(oe.buffer), mt;\n }\n function o() {\n return oe.buffer != Ge && _t(oe.buffer), it;\n }\n function n() {\n return oe.buffer != Ge && _t(oe.buffer), gt;\n }\n function s() {\n return oe.buffer != Ge && _t(oe.buffer), Lr;\n }\n function a() {\n return oe.buffer != Ge && _t(oe.buffer), Lt;\n }\n function i() {\n return oe.buffer != Ge && _t(oe.buffer), to;\n }\n function p() {\n return oe.buffer != Ge && _t(oe.buffer), nr;\n }\n var u = typeof t8 != \"undefined\" ? t8 : {}, c, l;\n u.ready = new Promise(function(F, V) {\n c = F, l = V;\n });\n var m;\n typeof process != \"undefined\" && process.listeners && (m = { uncaughtException: process.listeners(\"uncaughtException\"), unhandledRejection: process.listeners(\"unhandledRejection\") });\n var d = Object.assign({}, u), f = [], h = \"./this.program\", g = (F, V) => {\n throw V;\n }, x = typeof window == \"object\", b = typeof importScripts == \"function\", C = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\", S = u.ENVIRONMENT_IS_PTHREAD || false, k = \"\";\n function _(F) {\n return u.locateFile ? u.locateFile(F, k) : k + F;\n }\n var E, R, D, P;\n function O(F) {\n if (F instanceof Eu)\n return;\n j(\"exiting due to exception: \" + F);\n }\n if (C) {\n var M = Bv(), L = zv();\n b ? k = L.dirname(k) + \"/\" : k = __dirname + \"/\", E = (V, ue) => (V = zp(V) ? new URL(V) : L.normalize(V), M.readFileSync(V, ue ? void 0 : \"utf8\")), D = (V) => {\n var ue = E(V, true);\n return ue.buffer || (ue = new Uint8Array(ue)), ue;\n }, R = (V, ue, Ee) => {\n V = zp(V) ? new URL(V) : L.normalize(V), M.readFile(V, function(Be, Le) {\n Be ? Ee(Be) : ue(Le.buffer);\n });\n }, process.argv.length > 1 && (h = process.argv[1].replace(/\\\\/g, \"/\")), f = process.argv.slice(2), process.on(\"uncaughtException\", function(V) {\n if (!(V instanceof Eu))\n throw V;\n }), process.on(\"unhandledRejection\", function(V) {\n throw V;\n }), g = (V, ue) => {\n if (Bo())\n throw process.exitCode = V, ue;\n O(ue), process.exit(V);\n }, u.inspect = function() {\n return \"[Emscripten Module object]\";\n };\n let F;\n try {\n F = RB();\n } catch (V) {\n throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'), V;\n }\n global.Worker = F.Worker;\n } else\n (x || b) && (b ? k = self.location.href : typeof document != \"undefined\" && document.currentScript && (k = document.currentScript.src), typeof r != \"undefined\" && r && (k = r), k.indexOf(\"blob:\") !== 0 ? k = k.substr(0, k.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : k = \"\", C || (E = (F) => {\n var V = new XMLHttpRequest();\n return V.open(\"GET\", F, false), V.send(null), V.responseText;\n }, b && (D = (F) => {\n var V = new XMLHttpRequest();\n return V.open(\"GET\", F, false), V.responseType = \"arraybuffer\", V.send(null), new Uint8Array(V.response);\n }), R = (F, V, ue) => {\n var Ee = new XMLHttpRequest();\n Ee.open(\"GET\", F, true), Ee.responseType = \"arraybuffer\", Ee.onload = () => {\n if (Ee.status == 200 || Ee.status == 0 && Ee.response) {\n V(Ee.response);\n return;\n }\n ue();\n }, Ee.onerror = ue, Ee.send(null);\n }), P = (F) => document.title = F);\n C && typeof performance == \"undefined\" && (global.performance = DB().performance);\n var B = console.log.bind(console), z = console.warn.bind(console);\n C && (B = (F) => M.writeSync(1, F + `\n`), z = (F) => M.writeSync(2, F + `\n`));\n var U = u.print || B, j = u.printErr || z;\n Object.assign(u, d), d = null, u.arguments && (f = u.arguments), u.thisProgram && (h = u.thisProgram), u.quit && (g = u.quit);\n var q = 4, Y = Atomics.load, J = Atomics.store, re = Atomics.compareExchange, ne;\n u.wasmBinary && (ne = u.wasmBinary);\n var ee = u.noExitRuntime || true;\n typeof WebAssembly != \"object\" && $u(\"no native wasm support detected\");\n var oe, ie, le = false, be;\n function _e(F, V) {\n F || $u(V);\n }\n var ve = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function Fe(F, V, ue) {\n V >>>= 0;\n for (var Ee = V + ue, Be = V; F[Be] && !(Be >= Ee); )\n ++Be;\n if (Be - V > 16 && F.buffer && ve)\n return ve.decode(F.buffer instanceof SharedArrayBuffer ? F.slice(V, Be) : F.subarray(V, Be));\n for (var Le = \"\"; V < Be; ) {\n var ge = F[V++];\n if (!(ge & 128)) {\n Le += String.fromCharCode(ge);\n continue;\n }\n var Ne = F[V++] & 63;\n if ((ge & 224) == 192) {\n Le += String.fromCharCode((ge & 31) << 6 | Ne);\n continue;\n }\n var Pt = F[V++] & 63;\n if ((ge & 240) == 224 ? ge = (ge & 15) << 12 | Ne << 6 | Pt : ge = (ge & 7) << 18 | Ne << 12 | Pt << 6 | F[V++] & 63, ge < 65536)\n Le += String.fromCharCode(ge);\n else {\n var so = ge - 65536;\n Le += String.fromCharCode(55296 | so >> 10, 56320 | so & 1023);\n }\n }\n return Le;\n }\n function Pe(F, V) {\n return F >>>= 0, F ? Fe(o(), F, V) : \"\";\n }\n function st(F, V, ue, Ee) {\n if (ue >>>= 0, !(Ee > 0))\n return 0;\n for (var Be = ue, Le = ue + Ee - 1, ge = 0; ge < F.length; ++ge) {\n var Ne = F.charCodeAt(ge);\n if (Ne >= 55296 && Ne <= 57343) {\n var Pt = F.charCodeAt(++ge);\n Ne = 65536 + ((Ne & 1023) << 10) | Pt & 1023;\n }\n if (Ne <= 127) {\n if (ue >= Le)\n break;\n V[ue++ >>> 0] = Ne;\n } else if (Ne <= 2047) {\n if (ue + 1 >= Le)\n break;\n V[ue++ >>> 0] = 192 | Ne >> 6, V[ue++ >>> 0] = 128 | Ne & 63;\n } else if (Ne <= 65535) {\n if (ue + 2 >= Le)\n break;\n V[ue++ >>> 0] = 224 | Ne >> 12, V[ue++ >>> 0] = 128 | Ne >> 6 & 63, V[ue++ >>> 0] = 128 | Ne & 63;\n } else {\n if (ue + 3 >= Le)\n break;\n V[ue++ >>> 0] = 240 | Ne >> 18, V[ue++ >>> 0] = 128 | Ne >> 12 & 63, V[ue++ >>> 0] = 128 | Ne >> 6 & 63, V[ue++ >>> 0] = 128 | Ne & 63;\n }\n }\n return V[ue >>> 0] = 0, ue - Be;\n }\n function lt(F, V, ue) {\n return st(F, o(), V, ue);\n }\n var Ge, mt, it, gt, xt, Lr, Lt, to, nr;\n S && (Ge = u.buffer);\n function _t(F) {\n Ge = F, u.HEAP8 = mt = new Int8Array(F), u.HEAP16 = gt = new Int16Array(F), u.HEAP32 = Lr = new Int32Array(F), u.HEAPU8 = it = new Uint8Array(F), u.HEAPU16 = xt = new Uint16Array(F), u.HEAPU32 = Lt = new Uint32Array(F), u.HEAPF32 = to = new Float32Array(F), u.HEAPF64 = nr = new Float64Array(F);\n }\n var sr = u.INITIAL_MEMORY || 16777216;\n if (S)\n oe = u.wasmMemory, Ge = u.buffer;\n else if (u.wasmMemory)\n oe = u.wasmMemory;\n else if (oe = new WebAssembly.Memory({ initial: sr / 65536, maximum: 65536, shared: true }), !(oe.buffer instanceof SharedArrayBuffer))\n throw j(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"), C && j(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\"), Error(\"bad memory\");\n oe && (Ge = oe.buffer), sr = Ge.byteLength, _t(Ge);\n var ar, ro = [], oo = [], hr = [], Wa = false;\n function Bo() {\n return ee;\n }\n function Ks() {\n if (u.preRun)\n for (typeof u.preRun == \"function\" && (u.preRun = [u.preRun]); u.preRun.length; )\n sl(u.preRun.shift());\n ul(ro);\n }\n function Yt() {\n Wa = true, !S && ul(oo);\n }\n function Ua() {\n if (!S) {\n if (u.postRun)\n for (typeof u.postRun == \"function\" && (u.postRun = [u.postRun]); u.postRun.length; )\n l0(u.postRun.shift());\n ul(hr);\n }\n }\n function sl(F) {\n ro.unshift(F);\n }\n function al(F) {\n oo.unshift(F);\n }\n function l0(F) {\n hr.unshift(F);\n }\n var Ti = 0, Bp = null, Ga = null;\n function Cy(F) {\n Ti++, u.monitorRunDependencies && u.monitorRunDependencies(Ti);\n }\n function wm(F) {\n if (Ti--, u.monitorRunDependencies && u.monitorRunDependencies(Ti), Ti == 0 && (Bp !== null && (clearInterval(Bp), Bp = null), Ga)) {\n var V = Ga;\n Ga = null, V();\n }\n }\n function $u(F) {\n u.onAbort && u.onAbort(F), F = \"Aborted(\" + F + \")\", j(F), le = true, be = 1, F += \". Build with -sASSERTIONS for more info.\";\n var V = new WebAssembly.RuntimeError(F);\n throw l(V), V;\n }\n var wy = \"data:application/octet-stream;base64,\";\n function Sm(F) {\n return F.startsWith(wy);\n }\n function zp(F) {\n return F.startsWith(\"file://\");\n }\n var gr;\n gr = \"tfjs-backend-wasm-threaded-simd.wasm\", Sm(gr) || (gr = _(gr));\n function Im(F) {\n try {\n if (F == gr && ne)\n return new Uint8Array(ne);\n if (D)\n return D(F);\n throw \"both async and sync fetching of the wasm failed\";\n } catch (V) {\n $u(V);\n }\n }\n function Sy() {\n if (!ne && (x || b)) {\n if (typeof fetch == \"function\" && !zp(gr))\n return fetch(gr, { credentials: \"same-origin\" }).then(function(F) {\n if (!F.ok)\n throw \"failed to load wasm binary file at '\" + gr + \"'\";\n return F.arrayBuffer();\n }).catch(function() {\n return Im(gr);\n });\n if (R)\n return new Promise(function(F, V) {\n R(gr, function(ue) {\n F(new Uint8Array(ue));\n }, V);\n });\n }\n return Promise.resolve().then(function() {\n return Im(gr);\n });\n }\n function Iy() {\n var F = { env: Om, wasi_snapshot_preview1: Om };\n function V(ge, Ne) {\n var Pt = ge.exports;\n if (u.asm = Pt, Dy(u.asm._emscripten_tls_init), ar = u.asm.__indirect_function_table, al(u.asm.__wasm_call_ctors), ie = Ne, !S) {\n var so = Me.unusedWorkers.length;\n Me.unusedWorkers.forEach(function(Ka) {\n Me.loadWasmModuleToWorker(Ka, function() {\n --so || wm(\"wasm-instantiate\");\n });\n });\n }\n }\n S || Cy(\"wasm-instantiate\");\n function ue(ge) {\n V(ge.instance, ge.module);\n }\n function Ee(ge) {\n return Sy().then(function(Ne) {\n return WebAssembly.instantiate(Ne, F);\n }).then(function(Ne) {\n return Ne;\n }).then(ge, function(Ne) {\n j(\"failed to asynchronously prepare wasm: \" + Ne), $u(Ne);\n });\n }\n function Be() {\n return !ne && typeof WebAssembly.instantiateStreaming == \"function\" && !Sm(gr) && !zp(gr) && !C && typeof fetch == \"function\" ? fetch(gr, { credentials: \"same-origin\" }).then(function(ge) {\n var Ne = WebAssembly.instantiateStreaming(ge, F);\n return Ne.then(ue, function(Pt) {\n return j(\"wasm streaming compile failed: \" + Pt), j(\"falling back to ArrayBuffer instantiation\"), Ee(ue);\n });\n }) : Ee(ue);\n }\n if (u.instantiateWasm)\n try {\n var Le = u.instantiateWasm(F, V);\n return Le;\n } catch (ge) {\n j(\"Module.instantiateWasm callback failed with error: \" + ge), l(ge);\n }\n return Be().catch(l), {};\n }\n var m0, d0, vm = {};\n function Eu(F) {\n this.name = \"ExitStatus\", this.message = \"Program terminated with exit(\" + F + \")\", this.status = F;\n }\n function vy(F) {\n var V = Me.pthreads[F];\n delete Me.pthreads[F], V.terminate(), jC(F), Me.runningWorkers.splice(Me.runningWorkers.indexOf(V), 1), V.pthread_ptr = 0;\n }\n function ky(F) {\n var V = Me.pthreads[F];\n V.postMessage({ cmd: \"cancel\" });\n }\n function il(F) {\n var V = Me.pthreads[F];\n _e(V), Me.returnWorkerToPool(V);\n }\n function Ny(F) {\n var V = Me.getNewWorker();\n if (!V)\n return 6;\n Me.runningWorkers.push(V), Me.pthreads[F.pthread_ptr] = V, V.pthread_ptr = F.pthread_ptr;\n var ue = { cmd: \"run\", start_routine: F.startRoutine, arg: F.arg, pthread_ptr: F.pthread_ptr };\n return V.runPthread = () => {\n C && V.ref(), V.postMessage(ue, F.transferList), delete V.runPthread;\n }, V.loaded && V.runPthread(), 0;\n }\n var km = { varargs: void 0, get: function() {\n km.varargs += 4;\n var F = s()[km.varargs - 4 >>> 2];\n return F;\n }, getStr: function(F) {\n var V = Pe(F);\n return V;\n } };\n function Nm(F) {\n if (S)\n return _i(1, 1, F);\n be = F, Bo() || (Me.terminateAllThreads(), u.onExit && u.onExit(F), le = true), g(F, new Eu(F));\n }\n function Ty(F, V) {\n if (be = F, !V && S)\n throw _m(F), \"unwind\";\n Nm(F);\n }\n var Tm = Ty;\n function _y(F) {\n if (F instanceof Eu || F == \"unwind\")\n return be;\n g(1, F);\n }\n var Me = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() {\n S ? Me.initWorker() : Me.initMainThread();\n }, initMainThread: function() {\n for (var F = 8; F--; )\n Me.allocateUnusedWorker();\n }, initWorker: function() {\n ee = false;\n }, setExitStatus: function(F) {\n be = F;\n }, terminateAllThreads: function() {\n for (var F of Object.values(Me.pthreads))\n Me.returnWorkerToPool(F);\n for (var F of Me.unusedWorkers)\n F.terminate();\n Me.unusedWorkers = [];\n }, returnWorkerToPool: function(F) {\n var V = F.pthread_ptr;\n delete Me.pthreads[V], Me.unusedWorkers.push(F), Me.runningWorkers.splice(Me.runningWorkers.indexOf(F), 1), F.pthread_ptr = 0, C && F.unref(), jC(V);\n }, receiveObjectTransfer: function(F) {\n }, threadInitTLS: function() {\n Me.tlsInitFunctions.forEach((F) => F());\n }, loadWasmModuleToWorker: function(F, V) {\n F.onmessage = (Le) => {\n var ge = Le.data, Ne = ge.cmd;\n if (F.pthread_ptr && (Me.currentProxiedOperationCallerThread = F.pthread_ptr), ge.targetThread && ge.targetThread != Wm()) {\n var Pt = Me.pthreads[ge.targetThread];\n Pt ? Pt.postMessage(ge, ge.transferList) : j('Internal error! Worker sent a message \"' + Ne + '\" to target pthread ' + ge.targetThread + \", but that thread no longer exists!\"), Me.currentProxiedOperationCallerThread = void 0;\n return;\n }\n Ne === \"processProxyingQueue\" ? pl(ge.queue) : Ne === \"spawnThread\" ? Ny(ge) : Ne === \"cleanupThread\" ? il(ge.thread) : Ne === \"killThread\" ? vy(ge.thread) : Ne === \"cancelThread\" ? ky(ge.thread) : Ne === \"loaded\" ? (F.loaded = true, C && F.unref(), V && V(F), F.runPthread && F.runPthread()) : Ne === \"print\" ? U(\"Thread \" + ge.threadId + \": \" + ge.text) : Ne === \"printErr\" ? j(\"Thread \" + ge.threadId + \": \" + ge.text) : Ne === \"alert\" ? alert(\"Thread \" + ge.threadId + \": \" + ge.text) : ge.target === \"setimmediate\" ? F.postMessage(ge) : Ne === \"callHandler\" ? u[ge.handler](...ge.args) : Ne && j(\"worker sent an unknown command \" + Ne), Me.currentProxiedOperationCallerThread = void 0;\n }, F.onerror = (Le) => {\n var ge = \"worker sent an error!\";\n throw j(ge + \" \" + Le.filename + \":\" + Le.lineno + \": \" + Le.message), Le;\n }, C && (F.on(\"message\", function(Le) {\n F.onmessage({ data: Le });\n }), F.on(\"error\", function(Le) {\n F.onerror(Le);\n }), F.on(\"detachedExit\", function() {\n }));\n var ue = [], Ee = [\"onExit\", \"onAbort\", \"print\", \"printErr\"];\n for (var Be of Ee)\n u.hasOwnProperty(Be) && ue.push(Be);\n F.postMessage({ cmd: \"load\", handlers: ue, urlOrBlob: u.mainScriptUrlOrBlob || r, wasmMemory: oe, wasmModule: ie });\n }, allocateUnusedWorker: function() {\n var F, V = _(\"tfjs-backend-wasm-threaded-simd.worker.js\");\n F = new Worker(V), Me.unusedWorkers.push(F);\n }, getNewWorker: function() {\n return Me.unusedWorkers.length == 0 && (Me.allocateUnusedWorker(), Me.loadWasmModuleToWorker(Me.unusedWorkers[0])), Me.unusedWorkers.pop();\n } };\n u.PThread = Me;\n function ul(F) {\n for (; F.length > 0; )\n F.shift()(u);\n }\n function $y() {\n var F = Wm(), V = s()[F + 52 >>> 2], ue = s()[F + 56 >>> 2], Ee = V - ue;\n b0(V, Ee), Um(V);\n }\n u.establishStackSpace = $y;\n function _m(F) {\n if (S)\n return _i(2, 0, F);\n try {\n Tm(F);\n } catch (V) {\n _y(V);\n }\n }\n var Vp = [];\n function Ey(F) {\n var V = Vp[F];\n return V || (F >= Vp.length && (Vp.length = F + 1), Vp[F] = V = ar.get(F)), V;\n }\n function Ry(F, V) {\n var ue = Ey(F)(V);\n Bo() ? Me.setExitStatus(ue) : y0(ue);\n }\n u.invokeEntryPoint = Ry;\n function Dy(F) {\n Me.tlsInitFunctions.push(F);\n }\n function Ay(F) {\n h0(F, !b, 1, !x), Me.threadInitTLS();\n }\n function Fy(F) {\n S ? postMessage({ cmd: \"cleanupThread\", thread: F }) : il(F);\n }\n function $m(F, V, ue, Ee) {\n return S ? _i(3, 1, F, V, ue, Ee) : Em(F, V, ue, Ee);\n }\n function Em(F, V, ue, Ee) {\n if (typeof SharedArrayBuffer == \"undefined\")\n return j(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"), 6;\n var Be = [], Le = 0;\n if (S && (Be.length === 0 || Le))\n return $m(F, V, ue, Ee);\n if (Le)\n return Le;\n var ge = { startRoutine: ue, pthread_ptr: F, arg: Ee, transferList: Be };\n return S ? (ge.cmd = \"spawnThread\", postMessage(ge, Be), 0) : Ny(ge);\n }\n function Py() {\n return 65536;\n }\n var Oy = true;\n function My() {\n return Oy;\n }\n function pl(F) {\n Atomics.store(s(), F >> 2, 1), Wm() && x0(F), Atomics.compareExchange(s(), F >> 2, 1, 0);\n }\n u.executeNotifiedProxyingQueue = pl;\n function Ly(F, V, ue, Ee) {\n if (F == V)\n setTimeout(() => pl(Ee));\n else if (S)\n postMessage({ targetThread: F, cmd: \"processProxyingQueue\", queue: Ee });\n else {\n var Be = Me.pthreads[F];\n if (!Be)\n return;\n Be.postMessage({ cmd: \"processProxyingQueue\", queue: Ee });\n }\n return 1;\n }\n function By(F, V, ue) {\n return -1;\n }\n function zy() {\n $u(\"\");\n }\n function Ru(F) {\n Ru.shown || (Ru.shown = {}), Ru.shown[F] || (Ru.shown[F] = 1, C && (F = \"warning: \" + F), j(F));\n }\n function Vy() {\n C || b || Ru(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\");\n }\n function Wy() {\n return Date.now();\n }\n function Rm() {\n return 4294901760;\n }\n function Uy() {\n return Rm();\n }\n var cl;\n C ? cl = () => {\n var F = process.hrtime();\n return F[0] * 1e3 + F[1] / 1e6;\n } : cl = () => performance.timeOrigin + performance.now();\n function Gy(F, V, ue) {\n o().copyWithin(F >>> 0, V >>> 0, V + ue >>> 0);\n }\n function Hy() {\n return C ? AB().cpus().length : navigator.hardwareConcurrency;\n }\n function Ky(F) {\n var V = XC(), ue = F();\n return Um(V), ue;\n }\n function _i(F, V) {\n var ue = arguments.length - 2, Ee = arguments;\n return Ky(() => {\n for (var Be = ue, Le = Gm(Be * 8), ge = Le >> 3, Ne = 0; Ne < ue; Ne++) {\n var Pt = Ee[2 + Ne];\n p()[ge + Ne >>> 0] = Pt;\n }\n return g0(F, Be, Le, V);\n });\n }\n var ll = [];\n function qy(F, V, ue) {\n ll.length = V;\n for (var Ee = ue >> 3, Be = 0; Be < V; Be++)\n ll[Be] = p()[Ee + Be >>> 0];\n var Le = F < 0, ge = Le ? vm[-F - 1] : rb[F];\n return ge.apply(null, ll);\n }\n function jy(F) {\n try {\n return oe.grow(F - Ge.byteLength + 65535 >>> 16), _t(oe.buffer), 1;\n } catch (V) {\n }\n }\n function Xy(F) {\n var V = o().length;\n if (F = F >>> 0, F <= V)\n return false;\n var ue = Rm();\n if (F > ue)\n return false;\n let Ee = (Pt, so) => Pt + (so - Pt % so) % so;\n for (var Be = 1; Be <= 4; Be *= 2) {\n var Le = V * (1 + 0.2 / Be);\n Le = Math.min(Le, F + 100663296);\n var ge = Math.min(ue, Ee(Math.max(F, Le), 65536)), Ne = jy(ge);\n if (Ne)\n return true;\n }\n return false;\n }\n function Yy() {\n throw \"unwind\";\n }\n function Dm(F) {\n return S ? _i(4, 1, F) : 52;\n }\n function Am(F, V, ue, Ee, Be) {\n return S ? _i(5, 1, F, V, ue, Ee, Be) : 70;\n }\n var Qy = [null, [], []];\n function Zy(F, V) {\n var ue = Qy[F];\n V === 0 || V === 10 ? ((F === 1 ? U : j)(Fe(ue, 0)), ue.length = 0) : ue.push(V);\n }\n function Fm(F, V, ue, Ee) {\n if (S)\n return _i(6, 1, F, V, ue, Ee);\n for (var Be = 0, Le = 0; Le < ue; Le++) {\n var ge = a()[V >>> 2], Ne = a()[V + 4 >>> 2];\n V += 8;\n for (var Pt = 0; Pt < Ne; Pt++)\n Zy(F, o()[ge + Pt >>> 0]);\n Be += Ne;\n }\n return a()[Ee >>> 2] = Be, 0;\n }\n function Pm(F) {\n var V = u[\"_\" + F];\n return V;\n }\n function Jy(F, V) {\n e().set(F, V >>> 0);\n }\n function eb(F, V, ue, Ee, Be) {\n var Le = { string: (Br) => {\n var Hp = 0;\n if (Br != null && Br !== 0) {\n var S0 = (Br.length << 2) + 1;\n Hp = Gm(S0), lt(Br, Hp, S0);\n }\n return Hp;\n }, array: (Br) => {\n var Hp = Gm(Br.length);\n return Jy(Br, Hp), Hp;\n } };\n function ge(Br) {\n return V === \"string\" ? Pe(Br) : V === \"boolean\" ? !!Br : Br;\n }\n var Ne = Pm(F), Pt = [], so = 0;\n if (Ee)\n for (var Ka = 0; Ka < Ee.length; Ka++) {\n var w0 = Le[ue[Ka]];\n w0 ? (so === 0 && (so = XC()), Pt[Ka] = w0(Ee[Ka])) : Pt[Ka] = Ee[Ka];\n }\n var YC = Ne.apply(null, Pt);\n function CG(Br) {\n return so !== 0 && Um(so), ge(Br);\n }\n return YC = CG(YC), YC;\n }\n function tb(F, V, ue, Ee) {\n ue = ue || [];\n var Be = ue.every((ge) => ge === \"number\" || ge === \"boolean\"), Le = V !== \"string\";\n return Le && Be && !Ee ? Pm(F) : function() {\n return eb(F, V, ue, arguments, Ee);\n };\n }\n Me.init();\n var rb = [null, Nm, _m, $m, Dm, Am, Fm], Om = { __emscripten_init_main_thread_js: Ay, __emscripten_thread_cleanup: Fy, __pthread_create_js: Em, _emscripten_default_pthread_stack_size: Py, _emscripten_get_now_is_monotonic: My, _emscripten_notify_task_queue: Ly, _emscripten_set_offscreencanvas_size: By, abort: zy, emscripten_check_blocking_allowed: Vy, emscripten_date_now: Wy, emscripten_get_heap_max: Uy, emscripten_get_now: cl, emscripten_memcpy_big: Gy, emscripten_num_logical_cores: Hy, emscripten_receive_on_main_thread_js: qy, emscripten_resize_heap: Xy, emscripten_unwind_to_js_event_loop: Yy, exit: Tm, fd_close: Dm, fd_seek: Am, fd_write: Fm, memory: oe || u.wasmMemory }, f0 = Iy(), ob = u.___wasm_call_ctors = function() {\n return (ob = u.___wasm_call_ctors = u.asm.__wasm_call_ctors).apply(null, arguments);\n }, nb = u._init = function() {\n return (nb = u._init = u.asm.init).apply(null, arguments);\n }, sb = u._init_with_threads_count = function() {\n return (sb = u._init_with_threads_count = u.asm.init_with_threads_count).apply(null, arguments);\n }, ab = u._get_threads_count = function() {\n return (ab = u._get_threads_count = u.asm.get_threads_count).apply(null, arguments);\n }, ib = u._register_tensor = function() {\n return (ib = u._register_tensor = u.asm.register_tensor).apply(null, arguments);\n }, ub = u._dispose_data = function() {\n return (ub = u._dispose_data = u.asm.dispose_data).apply(null, arguments);\n }, pb = u._dispose = function() {\n return (pb = u._dispose = u.asm.dispose).apply(null, arguments);\n }, cb = u._Abs = function() {\n return (cb = u._Abs = u.asm.Abs).apply(null, arguments);\n }, lb = u._Acos = function() {\n return (lb = u._Acos = u.asm.Acos).apply(null, arguments);\n }, mb = u._Acosh = function() {\n return (mb = u._Acosh = u.asm.Acosh).apply(null, arguments);\n }, db = u._Add = function() {\n return (db = u._Add = u.asm.Add).apply(null, arguments);\n }, fb = u._AddN = function() {\n return (fb = u._AddN = u.asm.AddN).apply(null, arguments);\n }, hb = u._All = function() {\n return (hb = u._All = u.asm.All).apply(null, arguments);\n }, gb = u._Any = function() {\n return (gb = u._Any = u.asm.Any).apply(null, arguments);\n }, xb = u._ArgMax = function() {\n return (xb = u._ArgMax = u.asm.ArgMax).apply(null, arguments);\n }, yb = u._ArgMin = function() {\n return (yb = u._ArgMin = u.asm.ArgMin).apply(null, arguments);\n }, bb = u._Asin = function() {\n return (bb = u._Asin = u.asm.Asin).apply(null, arguments);\n }, Cb = u._Asinh = function() {\n return (Cb = u._Asinh = u.asm.Asinh).apply(null, arguments);\n }, wb = u._Atan = function() {\n return (wb = u._Atan = u.asm.Atan).apply(null, arguments);\n }, Sb = u._Atan2 = function() {\n return (Sb = u._Atan2 = u.asm.Atan2).apply(null, arguments);\n }, Ib = u._Atanh = function() {\n return (Ib = u._Atanh = u.asm.Atanh).apply(null, arguments);\n }, vb = u._AvgPool = function() {\n return (vb = u._AvgPool = u.asm.AvgPool).apply(null, arguments);\n }, kb = u._AvgPool3D = function() {\n return (kb = u._AvgPool3D = u.asm.AvgPool3D).apply(null, arguments);\n }, Nb = u._AvgPool3DGrad = function() {\n return (Nb = u._AvgPool3DGrad = u.asm.AvgPool3DGrad).apply(null, arguments);\n }, Tb = u._AvgPoolGrad = function() {\n return (Tb = u._AvgPoolGrad = u.asm.AvgPoolGrad).apply(null, arguments);\n }, _b = u._BatchMatMul = function() {\n return (_b = u._BatchMatMul = u.asm.BatchMatMul).apply(null, arguments);\n }, $b = u._Bincount = function() {\n return ($b = u._Bincount = u.asm.Bincount).apply(null, arguments);\n }, Eb = u._BitwiseAnd = function() {\n return (Eb = u._BitwiseAnd = u.asm.BitwiseAnd).apply(null, arguments);\n }, Rb = u._Ceil = function() {\n return (Rb = u._Ceil = u.asm.Ceil).apply(null, arguments);\n }, Db = u._ClipByValue = function() {\n return (Db = u._ClipByValue = u.asm.ClipByValue).apply(null, arguments);\n }, Ab = u._Conv2D = function() {\n return (Ab = u._Conv2D = u.asm.Conv2D).apply(null, arguments);\n }, Fb = u._Conv2DBackpropInput = function() {\n return (Fb = u._Conv2DBackpropInput = u.asm.Conv2DBackpropInput).apply(null, arguments);\n }, Pb = u._Conv3D = function() {\n return (Pb = u._Conv3D = u.asm.Conv3D).apply(null, arguments);\n }, Ob = u._Conv3DBackpropFilterV2 = function() {\n return (Ob = u._Conv3DBackpropFilterV2 = u.asm.Conv3DBackpropFilterV2).apply(null, arguments);\n }, Mb = u._Conv3DBackpropInputV2 = function() {\n return (Mb = u._Conv3DBackpropInputV2 = u.asm.Conv3DBackpropInputV2).apply(null, arguments);\n }, Lb = u._Cos = function() {\n return (Lb = u._Cos = u.asm.Cos).apply(null, arguments);\n }, Bb = u._Cosh = function() {\n return (Bb = u._Cosh = u.asm.Cosh).apply(null, arguments);\n }, zb = u._CropAndResize = function() {\n return (zb = u._CropAndResize = u.asm.CropAndResize).apply(null, arguments);\n }, Vb = u._Cumprod = function() {\n return (Vb = u._Cumprod = u.asm.Cumprod).apply(null, arguments);\n }, Wb = u._Cumsum = function() {\n return (Wb = u._Cumsum = u.asm.Cumsum).apply(null, arguments);\n }, Ub = u._DenseBincount = function() {\n return (Ub = u._DenseBincount = u.asm.DenseBincount).apply(null, arguments);\n }, Gb = u._DepthToSpace = function() {\n return (Gb = u._DepthToSpace = u.asm.DepthToSpace).apply(null, arguments);\n }, Hb = u._DepthwiseConv2dNative = function() {\n return (Hb = u._DepthwiseConv2dNative = u.asm.DepthwiseConv2dNative).apply(null, arguments);\n }, Kb = u._Diag = function() {\n return (Kb = u._Diag = u.asm.Diag).apply(null, arguments);\n }, qb = u._Dilation2D = function() {\n return (qb = u._Dilation2D = u.asm.Dilation2D).apply(null, arguments);\n }, jb = u._Dilation2DBackpropFilter = function() {\n return (jb = u._Dilation2DBackpropFilter = u.asm.Dilation2DBackpropFilter).apply(null, arguments);\n }, Xb = u._Dilation2DBackpropInput = function() {\n return (Xb = u._Dilation2DBackpropInput = u.asm.Dilation2DBackpropInput).apply(null, arguments);\n }, Yb = u._Elu = function() {\n return (Yb = u._Elu = u.asm.Elu).apply(null, arguments);\n }, Qb = u._EluGrad = function() {\n return (Qb = u._EluGrad = u.asm.EluGrad).apply(null, arguments);\n }, Zb = u._Equal = function() {\n return (Zb = u._Equal = u.asm.Equal).apply(null, arguments);\n }, Jb = u._Erf = function() {\n return (Jb = u._Erf = u.asm.Erf).apply(null, arguments);\n }, eC = u._Exp = function() {\n return (eC = u._Exp = u.asm.Exp).apply(null, arguments);\n }, tC = u._Expm1 = function() {\n return (tC = u._Expm1 = u.asm.Expm1).apply(null, arguments);\n }, rC = u._FlipLeftRight = function() {\n return (rC = u._FlipLeftRight = u.asm.FlipLeftRight).apply(null, arguments);\n }, oC = u._Floor = function() {\n return (oC = u._Floor = u.asm.Floor).apply(null, arguments);\n }, nC = u._FloorDiv = function() {\n return (nC = u._FloorDiv = u.asm.FloorDiv).apply(null, arguments);\n }, sC = u._FusedBatchNorm = function() {\n return (sC = u._FusedBatchNorm = u.asm.FusedBatchNorm).apply(null, arguments);\n }, aC = u._FusedConv2D = function() {\n return (aC = u._FusedConv2D = u.asm.FusedConv2D).apply(null, arguments);\n }, iC = u._FusedDepthwiseConv2D = function() {\n return (iC = u._FusedDepthwiseConv2D = u.asm.FusedDepthwiseConv2D).apply(null, arguments);\n }, uC = u._Gather = function() {\n return (uC = u._Gather = u.asm.Gather).apply(null, arguments);\n }, pC = u._GatherNd = function() {\n return (pC = u._GatherNd = u.asm.GatherNd).apply(null, arguments);\n }, cC = u._Greater = function() {\n return (cC = u._Greater = u.asm.Greater).apply(null, arguments);\n }, lC = u._GreaterEqual = function() {\n return (lC = u._GreaterEqual = u.asm.GreaterEqual).apply(null, arguments);\n }, mC = u._IsFinite = function() {\n return (mC = u._IsFinite = u.asm.IsFinite).apply(null, arguments);\n }, dC = u._IsInf = function() {\n return (dC = u._IsInf = u.asm.IsInf).apply(null, arguments);\n }, fC = u._IsNan = function() {\n return (fC = u._IsNan = u.asm.IsNan).apply(null, arguments);\n }, hC = u._LRN = function() {\n return (hC = u._LRN = u.asm.LRN).apply(null, arguments);\n }, gC = u._LRNGrad = function() {\n return (gC = u._LRNGrad = u.asm.LRNGrad).apply(null, arguments);\n }, xC = u._LeakyRelu = function() {\n return (xC = u._LeakyRelu = u.asm.LeakyRelu).apply(null, arguments);\n }, yC = u._Less = function() {\n return (yC = u._Less = u.asm.Less).apply(null, arguments);\n }, bC = u._LessEqual = function() {\n return (bC = u._LessEqual = u.asm.LessEqual).apply(null, arguments);\n }, CC = u._LinSpace = function() {\n return (CC = u._LinSpace = u.asm.LinSpace).apply(null, arguments);\n }, wC = u._Log = function() {\n return (wC = u._Log = u.asm.Log).apply(null, arguments);\n }, SC = u._Log1p = function() {\n return (SC = u._Log1p = u.asm.Log1p).apply(null, arguments);\n }, IC = u._LogicalAnd = function() {\n return (IC = u._LogicalAnd = u.asm.LogicalAnd).apply(null, arguments);\n }, vC = u._LogicalNot = function() {\n return (vC = u._LogicalNot = u.asm.LogicalNot).apply(null, arguments);\n }, kC = u._LogicalOr = function() {\n return (kC = u._LogicalOr = u.asm.LogicalOr).apply(null, arguments);\n }, NC = u._LogicalXor = function() {\n return (NC = u._LogicalXor = u.asm.LogicalXor).apply(null, arguments);\n }, TC = u._Max = function() {\n return (TC = u._Max = u.asm.Max).apply(null, arguments);\n }, _C = u._MaxPool = function() {\n return (_C = u._MaxPool = u.asm.MaxPool).apply(null, arguments);\n }, $C = u._MaxPool3D = function() {\n return ($C = u._MaxPool3D = u.asm.MaxPool3D).apply(null, arguments);\n }, EC = u._MaxPool3DGrad = function() {\n return (EC = u._MaxPool3DGrad = u.asm.MaxPool3DGrad).apply(null, arguments);\n }, RC = u._MaxPoolGrad = function() {\n return (RC = u._MaxPoolGrad = u.asm.MaxPoolGrad).apply(null, arguments);\n }, DC = u._MaxPoolWithArgmax = function() {\n return (DC = u._MaxPoolWithArgmax = u.asm.MaxPoolWithArgmax).apply(null, arguments);\n }, AC = u._Maximum = function() {\n return (AC = u._Maximum = u.asm.Maximum).apply(null, arguments);\n }, FC = u._Mean = function() {\n return (FC = u._Mean = u.asm.Mean).apply(null, arguments);\n }, PC = u._Min = function() {\n return (PC = u._Min = u.asm.Min).apply(null, arguments);\n }, OC = u._Minimum = function() {\n return (OC = u._Minimum = u.asm.Minimum).apply(null, arguments);\n }, MC = u._MirrorPad = function() {\n return (MC = u._MirrorPad = u.asm.MirrorPad).apply(null, arguments);\n }, LC = u._Mod = function() {\n return (LC = u._Mod = u.asm.Mod).apply(null, arguments);\n }, BC = u._Multinomial = function() {\n return (BC = u._Multinomial = u.asm.Multinomial).apply(null, arguments);\n }, zC = u._Multiply = function() {\n return (zC = u._Multiply = u.asm.Multiply).apply(null, arguments);\n }, VC = u._Neg = function() {\n return (VC = u._Neg = u.asm.Neg).apply(null, arguments);\n }, WC = u._NonMaxSuppressionV3 = function() {\n return (WC = u._NonMaxSuppressionV3 = u.asm.NonMaxSuppressionV3).apply(null, arguments);\n }, UC = u._NonMaxSuppressionV4 = function() {\n return (UC = u._NonMaxSuppressionV4 = u.asm.NonMaxSuppressionV4).apply(null, arguments);\n }, Mm = u._NonMaxSuppressionV5 = function() {\n return (Mm = u._NonMaxSuppressionV5 = u.asm.NonMaxSuppressionV5).apply(null, arguments);\n }, Lm = u._NotEqual = function() {\n return (Lm = u._NotEqual = u.asm.NotEqual).apply(null, arguments);\n }, ml = u._OneHot = function() {\n return (ml = u._OneHot = u.asm.OneHot).apply(null, arguments);\n }, GC = u._PadV2 = function() {\n return (GC = u._PadV2 = u.asm.PadV2).apply(null, arguments);\n }, HC = u._Pow = function() {\n return (HC = u._Pow = u.asm.Pow).apply(null, arguments);\n }, Wp = u._Prelu = function() {\n return (Wp = u._Prelu = u.asm.Prelu).apply(null, arguments);\n }, Bm = u._Prod = function() {\n return (Bm = u._Prod = u.asm.Prod).apply(null, arguments);\n }, Up = u._RealDiv = function() {\n return (Up = u._RealDiv = u.asm.RealDiv).apply(null, arguments);\n }, Gp = u._Reciprocal = function() {\n return (Gp = u._Reciprocal = u.asm.Reciprocal).apply(null, arguments);\n }, KC = u._Relu = function() {\n return (KC = u._Relu = u.asm.Relu).apply(null, arguments);\n }, K = u._Relu6 = function() {\n return (K = u._Relu6 = u.asm.Relu6).apply(null, arguments);\n }, ae = u._ResizeBilinear = function() {\n return (ae = u._ResizeBilinear = u.asm.ResizeBilinear).apply(null, arguments);\n }, $e = u._ResizeBilinearGrad = function() {\n return ($e = u._ResizeBilinearGrad = u.asm.ResizeBilinearGrad).apply(null, arguments);\n }, at = u._ResizeNearestNeighbor = function() {\n return (at = u._ResizeNearestNeighbor = u.asm.ResizeNearestNeighbor).apply(null, arguments);\n }, $t = u._ResizeNearestNeighborGrad = function() {\n return ($t = u._ResizeNearestNeighborGrad = u.asm.ResizeNearestNeighborGrad).apply(null, arguments);\n }, Et = u._Reverse = function() {\n return (Et = u._Reverse = u.asm.Reverse).apply(null, arguments);\n }, Qe = u._RotateWithOffset = function() {\n return (Qe = u._RotateWithOffset = u.asm.RotateWithOffset).apply(null, arguments);\n }, Ke = u._Round = function() {\n return (Ke = u._Round = u.asm.Round).apply(null, arguments);\n }, Gt = u._Rsqrt = function() {\n return (Gt = u._Rsqrt = u.asm.Rsqrt).apply(null, arguments);\n }, no = u._ScatterNd = function() {\n return (no = u._ScatterNd = u.asm.ScatterNd).apply(null, arguments);\n }, Ha = u._SearchSorted = function() {\n return (Ha = u._SearchSorted = u.asm.SearchSorted).apply(null, arguments);\n }, zm = u._SelectV2 = function() {\n return (zm = u._SelectV2 = u.asm.SelectV2).apply(null, arguments);\n }, dl = u._Selu = function() {\n return (dl = u._Selu = u.asm.Selu).apply(null, arguments);\n }, qC = u._Sigmoid = function() {\n return (qC = u._Sigmoid = u.asm.Sigmoid).apply(null, arguments);\n }, br = u._Sign = function() {\n return (br = u._Sign = u.asm.Sign).apply(null, arguments);\n }, $i = u._Sin = function() {\n return ($i = u._Sin = u.asm.Sin).apply(null, arguments);\n }, Vm = u._Sinh = function() {\n return (Vm = u._Sinh = u.asm.Sinh).apply(null, arguments);\n }, WU = u._Softmax = function() {\n return (WU = u._Softmax = u.asm.Softmax).apply(null, arguments);\n }, UU = u._Softplus = function() {\n return (UU = u._Softplus = u.asm.Softplus).apply(null, arguments);\n }, GU = u._SparseFillEmptyRows = function() {\n return (GU = u._SparseFillEmptyRows = u.asm.SparseFillEmptyRows).apply(null, arguments);\n }, HU = u._SparseReshape = function() {\n return (HU = u._SparseReshape = u.asm.SparseReshape).apply(null, arguments);\n }, KU = u._SparseSegmentReduction = function() {\n return (KU = u._SparseSegmentReduction = u.asm.SparseSegmentReduction).apply(null, arguments);\n }, qU = u._SparseToDense = function() {\n return (qU = u._SparseToDense = u.asm.SparseToDense).apply(null, arguments);\n }, jU = u._Sqrt = function() {\n return (jU = u._Sqrt = u.asm.Sqrt).apply(null, arguments);\n }, XU = u._Square = function() {\n return (XU = u._Square = u.asm.Square).apply(null, arguments);\n }, YU = u._SquaredDifference = function() {\n return (YU = u._SquaredDifference = u.asm.SquaredDifference).apply(null, arguments);\n }, QU = u._Step = function() {\n return (QU = u._Step = u.asm.Step).apply(null, arguments);\n }, ZU = u._StridedSlice = function() {\n return (ZU = u._StridedSlice = u.asm.StridedSlice).apply(null, arguments);\n }, JU = u._Sub = function() {\n return (JU = u._Sub = u.asm.Sub).apply(null, arguments);\n }, eG = u._Sum = function() {\n return (eG = u._Sum = u.asm.Sum).apply(null, arguments);\n }, tG = u._Tan = function() {\n return (tG = u._Tan = u.asm.Tan).apply(null, arguments);\n }, rG = u._Tanh = function() {\n return (rG = u._Tanh = u.asm.Tanh).apply(null, arguments);\n }, oG = u._TensorScatterUpdate = function() {\n return (oG = u._TensorScatterUpdate = u.asm.TensorScatterUpdate).apply(null, arguments);\n }, nG = u._Tile = function() {\n return (nG = u._Tile = u.asm.Tile).apply(null, arguments);\n }, sG = u._TopK = function() {\n return (sG = u._TopK = u.asm.TopK).apply(null, arguments);\n }, aG = u._Transform = function() {\n return (aG = u._Transform = u.asm.Transform).apply(null, arguments);\n }, iG = u._Transpose = function() {\n return (iG = u._Transpose = u.asm.Transpose).apply(null, arguments);\n }, uG = u.__FusedMatMul = function() {\n return (uG = u.__FusedMatMul = u.asm._FusedMatMul).apply(null, arguments);\n }, pG = u._malloc = function() {\n return (pG = u._malloc = u.asm.malloc).apply(null, arguments);\n }, cG = u._free = function() {\n return (cG = u._free = u.asm.free).apply(null, arguments);\n }, lG = u.__emscripten_tls_init = function() {\n return (lG = u.__emscripten_tls_init = u.asm._emscripten_tls_init).apply(null, arguments);\n }, Wm = u._pthread_self = function() {\n return (Wm = u._pthread_self = u.asm.pthread_self).apply(null, arguments);\n }, mG = u.___errno_location = function() {\n return (mG = u.___errno_location = u.asm.__errno_location).apply(null, arguments);\n }, h0 = u.__emscripten_thread_init = function() {\n return (h0 = u.__emscripten_thread_init = u.asm._emscripten_thread_init).apply(null, arguments);\n }, dG = u.__emscripten_thread_crashed = function() {\n return (dG = u.__emscripten_thread_crashed = u.asm._emscripten_thread_crashed).apply(null, arguments);\n }, fG = u._emscripten_main_thread_process_queued_calls = function() {\n return (fG = u._emscripten_main_thread_process_queued_calls = u.asm.emscripten_main_thread_process_queued_calls).apply(null, arguments);\n }, hG = u._emscripten_main_browser_thread_id = function() {\n return (hG = u._emscripten_main_browser_thread_id = u.asm.emscripten_main_browser_thread_id).apply(null, arguments);\n }, g0 = u._emscripten_run_in_main_runtime_thread_js = function() {\n return (g0 = u._emscripten_run_in_main_runtime_thread_js = u.asm.emscripten_run_in_main_runtime_thread_js).apply(null, arguments);\n }, gG = u._emscripten_dispatch_to_thread_ = function() {\n return (gG = u._emscripten_dispatch_to_thread_ = u.asm.emscripten_dispatch_to_thread_).apply(null, arguments);\n }, x0 = u.__emscripten_proxy_execute_task_queue = function() {\n return (x0 = u.__emscripten_proxy_execute_task_queue = u.asm._emscripten_proxy_execute_task_queue).apply(null, arguments);\n }, jC = u.__emscripten_thread_free_data = function() {\n return (jC = u.__emscripten_thread_free_data = u.asm._emscripten_thread_free_data).apply(null, arguments);\n }, y0 = u.__emscripten_thread_exit = function() {\n return (y0 = u.__emscripten_thread_exit = u.asm._emscripten_thread_exit).apply(null, arguments);\n }, b0 = u._emscripten_stack_set_limits = function() {\n return (b0 = u._emscripten_stack_set_limits = u.asm.emscripten_stack_set_limits).apply(null, arguments);\n }, XC = u.stackSave = function() {\n return (XC = u.stackSave = u.asm.stackSave).apply(null, arguments);\n }, Um = u.stackRestore = function() {\n return (Um = u.stackRestore = u.asm.stackRestore).apply(null, arguments);\n }, Gm = u.stackAlloc = function() {\n return (Gm = u.stackAlloc = u.asm.stackAlloc).apply(null, arguments);\n }, xG = u.dynCall_iijjiiii = function() {\n return (xG = u.dynCall_iijjiiii = u.asm.dynCall_iijjiiii).apply(null, arguments);\n }, yG = u.dynCall_jiji = function() {\n return (yG = u.dynCall_jiji = u.asm.dynCall_jiji).apply(null, arguments);\n };\n u.keepRuntimeAlive = Bo, u.wasmMemory = oe, u.cwrap = tb, u.ExitStatus = Eu, u.PThread = Me;\n var Hm;\n Ga = function F() {\n Hm || C0(), Hm || (Ga = F);\n };\n function C0(F) {\n if (F = F || f, Ti > 0)\n return;\n if (S) {\n c(u), Yt(), startWorker(u);\n return;\n }\n if (Ks(), Ti > 0)\n return;\n function V() {\n Hm || (Hm = true, u.calledRun = true, !le && (Yt(), c(u), u.onRuntimeInitialized && u.onRuntimeInitialized(), Ua()));\n }\n u.setStatus ? (u.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n u.setStatus(\"\");\n }, 1), V();\n }, 1)) : V();\n }\n if (u.preInit)\n for (typeof u.preInit == \"function\" && (u.preInit = [u.preInit]); u.preInit.length > 0; )\n u.preInit.pop()();\n C0();\n var Km;\n m && (Km = { uncaughtException: process.listeners(\"uncaughtException\").filter(function(F) {\n return !m.uncaughtException.indexOf(F) > -1;\n }), unhandledRejection: process.listeners(\"unhandledRejection\").filter(function(F) {\n return !m.unhandledRejection.indexOf(F) > -1;\n }) });\n var qm;\n if (typeof WasmBackendModule != \"undefined\")\n qm = WasmBackendModule;\n else if (typeof t8 != \"undefined\")\n qm = t8;\n else\n throw new Error(\"Could not find wasm module in post.js\");\n if (Km) {\n var bG = qm._dispose;\n qm._dispose = function() {\n bG(), Km.uncaughtException.forEach(function(F) {\n process.removeListener(\"uncaughtException\", F);\n }), Km.unhandledRejection.forEach(function(F) {\n process.removeListener(\"unhandledRejection\", F);\n });\n };\n }\n return t8.ready;\n };\n })();\n typeof Wg == \"object\" && typeof Wv == \"object\" ? Wv.exports = Vv : typeof define == \"function\" && define.amd ? define([], function() {\n return Vv;\n }) : typeof Wg == \"object\" && (Wg.WasmBackendModuleThreadedSimd = Vv);\n});\nvar OB = qt((UFt, PB) => {\n PB.exports.wasmWorkerContents = `\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\")+\"//# sourceURL=\"+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.startWorker=instance=>{Module=instance;postMessage({\"cmd\":\"loaded\"})};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:\"callHandler\",handler:handler,args:[...arguments]})}}Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module)}else if(e.data.cmd===\"run\"){Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`;\n});\nvar MB = qt((Ug, Gv) => {\n var Uv = (() => {\n var r = typeof document != \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n return typeof __filename != \"undefined\" && (r = r || __filename), function(t8) {\n t8 = t8 || {};\n var e = typeof t8 != \"undefined\" ? t8 : {}, o, n;\n e.ready = new Promise(function(K, ae) {\n o = K, n = ae;\n });\n var s;\n typeof process != \"undefined\" && process.listeners && (s = { uncaughtException: process.listeners(\"uncaughtException\"), unhandledRejection: process.listeners(\"unhandledRejection\") });\n var a = Object.assign({}, e), i = [], p = \"./this.program\", u = (K, ae) => {\n throw ae;\n }, c = typeof window == \"object\", l = typeof importScripts == \"function\", m = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\", d = \"\";\n function f(K) {\n return e.locateFile ? e.locateFile(K, d) : d + K;\n }\n var h, g, x, b;\n function C(K) {\n if (K instanceof Bp)\n return;\n E(\"exiting due to exception: \" + K);\n }\n if (m) {\n var S = Bv(), k = zv();\n l ? d = k.dirname(d) + \"/\" : d = __dirname + \"/\", h = (K, ae) => (K = Ks(K) ? new URL(K) : k.normalize(K), S.readFileSync(K, ae ? void 0 : \"utf8\")), x = (K) => {\n var ae = h(K, true);\n return ae.buffer || (ae = new Uint8Array(ae)), ae;\n }, g = (K, ae, $e) => {\n K = Ks(K) ? new URL(K) : k.normalize(K), S.readFile(K, function(at, $t) {\n at ? $e(at) : ae($t.buffer);\n });\n }, process.argv.length > 1 && (p = process.argv[1].replace(/\\\\/g, \"/\")), i = process.argv.slice(2), process.on(\"uncaughtException\", function(K) {\n if (!(K instanceof Bp))\n throw K;\n }), process.on(\"unhandledRejection\", function(K) {\n throw K;\n }), u = (K, ae) => {\n if (it())\n throw process.exitCode = K, ae;\n C(ae), process.exit(K);\n }, e.inspect = function() {\n return \"[Emscripten Module object]\";\n };\n } else\n (c || l) && (l ? d = self.location.href : typeof document != \"undefined\" && document.currentScript && (d = document.currentScript.src), r && (d = r), d.indexOf(\"blob:\") !== 0 ? d = d.substr(0, d.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : d = \"\", h = (K) => {\n var ae = new XMLHttpRequest();\n return ae.open(\"GET\", K, false), ae.send(null), ae.responseText;\n }, l && (x = (K) => {\n var ae = new XMLHttpRequest();\n return ae.open(\"GET\", K, false), ae.responseType = \"arraybuffer\", ae.send(null), new Uint8Array(ae.response);\n }), g = (K, ae, $e) => {\n var at = new XMLHttpRequest();\n at.open(\"GET\", K, true), at.responseType = \"arraybuffer\", at.onload = () => {\n if (at.status == 200 || at.status == 0 && at.response) {\n ae(at.response);\n return;\n }\n $e();\n }, at.onerror = $e, at.send(null);\n }, b = (K) => document.title = K);\n var _ = e.print || console.log.bind(console), E = e.printErr || console.warn.bind(console);\n Object.assign(e, a), a = null, e.arguments && (i = e.arguments), e.thisProgram && (p = e.thisProgram), e.quit && (u = e.quit);\n var R = 4, D;\n e.wasmBinary && (D = e.wasmBinary);\n var P = e.noExitRuntime || true;\n typeof WebAssembly != \"object\" && hr(\"no native wasm support detected\");\n var O, M = false, L;\n function B(K, ae) {\n K || hr(ae);\n }\n var z = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function U(K, ae, $e) {\n ae >>>= 0;\n for (var at = ae + $e, $t = ae; K[$t] && !($t >= at); )\n ++$t;\n if ($t - ae > 16 && K.buffer && z)\n return z.decode(K.subarray(ae, $t));\n for (var Et = \"\"; ae < $t; ) {\n var Qe = K[ae++];\n if (!(Qe & 128)) {\n Et += String.fromCharCode(Qe);\n continue;\n }\n var Ke = K[ae++] & 63;\n if ((Qe & 224) == 192) {\n Et += String.fromCharCode((Qe & 31) << 6 | Ke);\n continue;\n }\n var Gt = K[ae++] & 63;\n if ((Qe & 240) == 224 ? Qe = (Qe & 15) << 12 | Ke << 6 | Gt : Qe = (Qe & 7) << 18 | Ke << 12 | Gt << 6 | K[ae++] & 63, Qe < 65536)\n Et += String.fromCharCode(Qe);\n else {\n var no = Qe - 65536;\n Et += String.fromCharCode(55296 | no >> 10, 56320 | no & 1023);\n }\n }\n return Et;\n }\n function j(K, ae) {\n return K >>>= 0, K ? U(ne, K, ae) : \"\";\n }\n function q(K, ae, $e, at) {\n if ($e >>>= 0, !(at > 0))\n return 0;\n for (var $t = $e, Et = $e + at - 1, Qe = 0; Qe < K.length; ++Qe) {\n var Ke = K.charCodeAt(Qe);\n if (Ke >= 55296 && Ke <= 57343) {\n var Gt = K.charCodeAt(++Qe);\n Ke = 65536 + ((Ke & 1023) << 10) | Gt & 1023;\n }\n if (Ke <= 127) {\n if ($e >= Et)\n break;\n ae[$e++ >>> 0] = Ke;\n } else if (Ke <= 2047) {\n if ($e + 1 >= Et)\n break;\n ae[$e++ >>> 0] = 192 | Ke >> 6, ae[$e++ >>> 0] = 128 | Ke & 63;\n } else if (Ke <= 65535) {\n if ($e + 2 >= Et)\n break;\n ae[$e++ >>> 0] = 224 | Ke >> 12, ae[$e++ >>> 0] = 128 | Ke >> 6 & 63, ae[$e++ >>> 0] = 128 | Ke & 63;\n } else {\n if ($e + 3 >= Et)\n break;\n ae[$e++ >>> 0] = 240 | Ke >> 18, ae[$e++ >>> 0] = 128 | Ke >> 12 & 63, ae[$e++ >>> 0] = 128 | Ke >> 6 & 63, ae[$e++ >>> 0] = 128 | Ke & 63;\n }\n }\n return ae[$e >>> 0] = 0, $e - $t;\n }\n function Y(K, ae, $e) {\n return q(K, ne, ae, $e);\n }\n var J, re, ne, ee, oe, ie, le, be, _e;\n function ve(K) {\n J = K, e.HEAP8 = re = new Int8Array(K), e.HEAP16 = ee = new Int16Array(K), e.HEAP32 = ie = new Int32Array(K), e.HEAPU8 = ne = new Uint8Array(K), e.HEAPU16 = oe = new Uint16Array(K), e.HEAPU32 = le = new Uint32Array(K), e.HEAPF32 = be = new Float32Array(K), e.HEAPF64 = _e = new Float64Array(K);\n }\n var Fe = e.INITIAL_MEMORY || 16777216, Pe, st = [], lt = [], Ge = [], mt = false;\n function it() {\n return P;\n }\n function gt() {\n if (e.preRun)\n for (typeof e.preRun == \"function\" && (e.preRun = [e.preRun]); e.preRun.length; )\n Lt(e.preRun.shift());\n Ga(st);\n }\n function xt() {\n mt = true, Ga(lt);\n }\n function Lr() {\n if (e.postRun)\n for (typeof e.postRun == \"function\" && (e.postRun = [e.postRun]); e.postRun.length; )\n nr(e.postRun.shift());\n Ga(Ge);\n }\n function Lt(K) {\n st.unshift(K);\n }\n function to(K) {\n lt.unshift(K);\n }\n function nr(K) {\n Ge.unshift(K);\n }\n var _t = 0, sr = null, ar = null;\n function ro(K) {\n _t++, e.monitorRunDependencies && e.monitorRunDependencies(_t);\n }\n function oo(K) {\n if (_t--, e.monitorRunDependencies && e.monitorRunDependencies(_t), _t == 0 && (sr !== null && (clearInterval(sr), sr = null), ar)) {\n var ae = ar;\n ar = null, ae();\n }\n }\n function hr(K) {\n e.onAbort && e.onAbort(K), K = \"Aborted(\" + K + \")\", E(K), M = true, L = 1, K += \". Build with -sASSERTIONS for more info.\";\n var ae = new WebAssembly.RuntimeError(K);\n throw n(ae), ae;\n }\n var Wa = \"data:application/octet-stream;base64,\";\n function Bo(K) {\n return K.startsWith(Wa);\n }\n function Ks(K) {\n return K.startsWith(\"file://\");\n }\n var Yt;\n Yt = \"tfjs-backend-wasm.wasm\", Bo(Yt) || (Yt = f(Yt));\n function Ua(K) {\n try {\n if (K == Yt && D)\n return new Uint8Array(D);\n if (x)\n return x(K);\n throw \"both async and sync fetching of the wasm failed\";\n } catch (ae) {\n hr(ae);\n }\n }\n function sl() {\n if (!D && (c || l)) {\n if (typeof fetch == \"function\" && !Ks(Yt))\n return fetch(Yt, { credentials: \"same-origin\" }).then(function(K) {\n if (!K.ok)\n throw \"failed to load wasm binary file at '\" + Yt + \"'\";\n return K.arrayBuffer();\n }).catch(function() {\n return Ua(Yt);\n });\n if (g)\n return new Promise(function(K, ae) {\n g(Yt, function($e) {\n K(new Uint8Array($e));\n }, ae);\n });\n }\n return Promise.resolve().then(function() {\n return Ua(Yt);\n });\n }\n function al() {\n var K = { env: il, wasi_snapshot_preview1: il };\n function ae(Qe, Ke) {\n var Gt = Qe.exports;\n e.asm = Gt, O = e.asm.memory, ve(O.buffer), Pe = e.asm.__indirect_function_table, to(e.asm.__wasm_call_ctors), oo(\"wasm-instantiate\");\n }\n ro(\"wasm-instantiate\");\n function $e(Qe) {\n ae(Qe.instance);\n }\n function at(Qe) {\n return sl().then(function(Ke) {\n return WebAssembly.instantiate(Ke, K);\n }).then(function(Ke) {\n return Ke;\n }).then(Qe, function(Ke) {\n E(\"failed to asynchronously prepare wasm: \" + Ke), hr(Ke);\n });\n }\n function $t() {\n return !D && typeof WebAssembly.instantiateStreaming == \"function\" && !Bo(Yt) && !Ks(Yt) && !m && typeof fetch == \"function\" ? fetch(Yt, { credentials: \"same-origin\" }).then(function(Qe) {\n var Ke = WebAssembly.instantiateStreaming(Qe, K);\n return Ke.then($e, function(Gt) {\n return E(\"wasm streaming compile failed: \" + Gt), E(\"falling back to ArrayBuffer instantiation\"), at($e);\n });\n }) : at($e);\n }\n if (e.instantiateWasm)\n try {\n var Et = e.instantiateWasm(K, ae);\n return Et;\n } catch (Qe) {\n E(\"Module.instantiateWasm callback failed with error: \" + Qe), n(Qe);\n }\n return $t().catch(n), {};\n }\n var l0, Ti;\n function Bp(K) {\n this.name = \"ExitStatus\", this.message = \"Program terminated with exit(\" + K + \")\", this.status = K;\n }\n function Ga(K) {\n for (; K.length > 0; )\n K.shift()(e);\n }\n function Cy() {\n hr(\"\");\n }\n function wm() {\n return 4294901760;\n }\n function $u() {\n return wm();\n }\n function wy(K, ae, $e) {\n ne.copyWithin(K >>> 0, ae >>> 0, ae + $e >>> 0);\n }\n function Sm(K) {\n try {\n return O.grow(K - J.byteLength + 65535 >>> 16), ve(O.buffer), 1;\n } catch (ae) {\n }\n }\n function zp(K) {\n var ae = ne.length;\n K = K >>> 0;\n var $e = wm();\n if (K > $e)\n return false;\n let at = (Gt, no) => Gt + (no - Gt % no) % no;\n for (var $t = 1; $t <= 4; $t *= 2) {\n var Et = ae * (1 + 0.2 / $t);\n Et = Math.min(Et, K + 100663296);\n var Qe = Math.min($e, at(Math.max(K, Et), 65536)), Ke = Sm(Qe);\n if (Ke)\n return true;\n }\n return false;\n }\n var gr = { varargs: void 0, get: function() {\n gr.varargs += 4;\n var K = ie[gr.varargs - 4 >>> 2];\n return K;\n }, getStr: function(K) {\n var ae = j(K);\n return ae;\n } };\n function Im(K) {\n return 52;\n }\n function Sy(K, ae, $e, at, $t) {\n return 70;\n }\n var Iy = [null, [], []];\n function m0(K, ae) {\n var $e = Iy[K];\n ae === 0 || ae === 10 ? ((K === 1 ? _ : E)(U($e, 0)), $e.length = 0) : $e.push(ae);\n }\n function d0(K, ae, $e, at) {\n for (var $t = 0, Et = 0; Et < $e; Et++) {\n var Qe = le[ae >>> 2], Ke = le[ae + 4 >>> 2];\n ae += 8;\n for (var Gt = 0; Gt < Ke; Gt++)\n m0(K, ne[Qe + Gt >>> 0]);\n $t += Ke;\n }\n return le[at >>> 2] = $t, 0;\n }\n function vm(K) {\n var ae = e[\"_\" + K];\n return ae;\n }\n function Eu(K, ae) {\n re.set(K, ae >>> 0);\n }\n function vy(K, ae, $e, at, $t) {\n var Et = { string: (br) => {\n var $i = 0;\n if (br != null && br !== 0) {\n var Vm = (br.length << 2) + 1;\n $i = ml(Vm), Y(br, $i, Vm);\n }\n return $i;\n }, array: (br) => {\n var $i = ml(br.length);\n return Eu(br, $i), $i;\n } };\n function Qe(br) {\n return ae === \"string\" ? j(br) : ae === \"boolean\" ? !!br : br;\n }\n var Ke = vm(K), Gt = [], no = 0;\n if (at)\n for (var Ha = 0; Ha < at.length; Ha++) {\n var zm = Et[$e[Ha]];\n zm ? (no === 0 && (no = Mm()), Gt[Ha] = zm(at[Ha])) : Gt[Ha] = at[Ha];\n }\n var dl = Ke.apply(null, Gt);\n function qC(br) {\n return no !== 0 && Lm(no), Qe(br);\n }\n return dl = qC(dl), dl;\n }\n function ky(K, ae, $e, at) {\n $e = $e || [];\n var $t = $e.every((Qe) => Qe === \"number\" || Qe === \"boolean\"), Et = ae !== \"string\";\n return Et && $t && !at ? vm(K) : function() {\n return vy(K, ae, $e, arguments, at);\n };\n }\n var il = { abort: Cy, emscripten_get_heap_max: $u, emscripten_memcpy_big: wy, emscripten_resize_heap: zp, fd_close: Im, fd_seek: Sy, fd_write: d0 }, Ny = al(), km = e.___wasm_call_ctors = function() {\n return (km = e.___wasm_call_ctors = e.asm.__wasm_call_ctors).apply(null, arguments);\n }, Nm = e._init = function() {\n return (Nm = e._init = e.asm.init).apply(null, arguments);\n }, Ty = e._init_with_threads_count = function() {\n return (Ty = e._init_with_threads_count = e.asm.init_with_threads_count).apply(null, arguments);\n }, Tm = e._get_threads_count = function() {\n return (Tm = e._get_threads_count = e.asm.get_threads_count).apply(null, arguments);\n }, _y = e._register_tensor = function() {\n return (_y = e._register_tensor = e.asm.register_tensor).apply(null, arguments);\n }, Me = e._dispose_data = function() {\n return (Me = e._dispose_data = e.asm.dispose_data).apply(null, arguments);\n }, ul = e._dispose = function() {\n return (ul = e._dispose = e.asm.dispose).apply(null, arguments);\n }, $y = e._Abs = function() {\n return ($y = e._Abs = e.asm.Abs).apply(null, arguments);\n }, _m = e._Acos = function() {\n return (_m = e._Acos = e.asm.Acos).apply(null, arguments);\n }, Vp = e._Acosh = function() {\n return (Vp = e._Acosh = e.asm.Acosh).apply(null, arguments);\n }, Ey = e._Add = function() {\n return (Ey = e._Add = e.asm.Add).apply(null, arguments);\n }, Ry = e._AddN = function() {\n return (Ry = e._AddN = e.asm.AddN).apply(null, arguments);\n }, Dy = e._All = function() {\n return (Dy = e._All = e.asm.All).apply(null, arguments);\n }, Ay = e._Any = function() {\n return (Ay = e._Any = e.asm.Any).apply(null, arguments);\n }, Fy = e._ArgMax = function() {\n return (Fy = e._ArgMax = e.asm.ArgMax).apply(null, arguments);\n }, $m = e._ArgMin = function() {\n return ($m = e._ArgMin = e.asm.ArgMin).apply(null, arguments);\n }, Em = e._Asin = function() {\n return (Em = e._Asin = e.asm.Asin).apply(null, arguments);\n }, Py = e._Asinh = function() {\n return (Py = e._Asinh = e.asm.Asinh).apply(null, arguments);\n }, Oy = e._Atan = function() {\n return (Oy = e._Atan = e.asm.Atan).apply(null, arguments);\n }, My = e._Atan2 = function() {\n return (My = e._Atan2 = e.asm.Atan2).apply(null, arguments);\n }, pl = e._Atanh = function() {\n return (pl = e._Atanh = e.asm.Atanh).apply(null, arguments);\n }, Ly = e._AvgPool = function() {\n return (Ly = e._AvgPool = e.asm.AvgPool).apply(null, arguments);\n }, By = e._AvgPool3D = function() {\n return (By = e._AvgPool3D = e.asm.AvgPool3D).apply(null, arguments);\n }, zy = e._AvgPool3DGrad = function() {\n return (zy = e._AvgPool3DGrad = e.asm.AvgPool3DGrad).apply(null, arguments);\n }, Ru = e._AvgPoolGrad = function() {\n return (Ru = e._AvgPoolGrad = e.asm.AvgPoolGrad).apply(null, arguments);\n }, Vy = e._BatchMatMul = function() {\n return (Vy = e._BatchMatMul = e.asm.BatchMatMul).apply(null, arguments);\n }, Wy = e._Bincount = function() {\n return (Wy = e._Bincount = e.asm.Bincount).apply(null, arguments);\n }, Rm = e._BitwiseAnd = function() {\n return (Rm = e._BitwiseAnd = e.asm.BitwiseAnd).apply(null, arguments);\n }, Uy = e._Ceil = function() {\n return (Uy = e._Ceil = e.asm.Ceil).apply(null, arguments);\n }, cl = e._ClipByValue = function() {\n return (cl = e._ClipByValue = e.asm.ClipByValue).apply(null, arguments);\n }, Gy = e._Conv2D = function() {\n return (Gy = e._Conv2D = e.asm.Conv2D).apply(null, arguments);\n }, Hy = e._Conv2DBackpropInput = function() {\n return (Hy = e._Conv2DBackpropInput = e.asm.Conv2DBackpropInput).apply(null, arguments);\n }, Ky = e._Conv3D = function() {\n return (Ky = e._Conv3D = e.asm.Conv3D).apply(null, arguments);\n }, _i = e._Conv3DBackpropFilterV2 = function() {\n return (_i = e._Conv3DBackpropFilterV2 = e.asm.Conv3DBackpropFilterV2).apply(null, arguments);\n }, ll = e._Conv3DBackpropInputV2 = function() {\n return (ll = e._Conv3DBackpropInputV2 = e.asm.Conv3DBackpropInputV2).apply(null, arguments);\n }, qy = e._Cos = function() {\n return (qy = e._Cos = e.asm.Cos).apply(null, arguments);\n }, jy = e._Cosh = function() {\n return (jy = e._Cosh = e.asm.Cosh).apply(null, arguments);\n }, Xy = e._CropAndResize = function() {\n return (Xy = e._CropAndResize = e.asm.CropAndResize).apply(null, arguments);\n }, Yy = e._Cumprod = function() {\n return (Yy = e._Cumprod = e.asm.Cumprod).apply(null, arguments);\n }, Dm = e._Cumsum = function() {\n return (Dm = e._Cumsum = e.asm.Cumsum).apply(null, arguments);\n }, Am = e._DenseBincount = function() {\n return (Am = e._DenseBincount = e.asm.DenseBincount).apply(null, arguments);\n }, Qy = e._DepthToSpace = function() {\n return (Qy = e._DepthToSpace = e.asm.DepthToSpace).apply(null, arguments);\n }, Zy = e._DepthwiseConv2dNative = function() {\n return (Zy = e._DepthwiseConv2dNative = e.asm.DepthwiseConv2dNative).apply(null, arguments);\n }, Fm = e._Diag = function() {\n return (Fm = e._Diag = e.asm.Diag).apply(null, arguments);\n }, Pm = e._Dilation2D = function() {\n return (Pm = e._Dilation2D = e.asm.Dilation2D).apply(null, arguments);\n }, Jy = e._Dilation2DBackpropFilter = function() {\n return (Jy = e._Dilation2DBackpropFilter = e.asm.Dilation2DBackpropFilter).apply(null, arguments);\n }, eb = e._Dilation2DBackpropInput = function() {\n return (eb = e._Dilation2DBackpropInput = e.asm.Dilation2DBackpropInput).apply(null, arguments);\n }, tb = e._Elu = function() {\n return (tb = e._Elu = e.asm.Elu).apply(null, arguments);\n }, rb = e._EluGrad = function() {\n return (rb = e._EluGrad = e.asm.EluGrad).apply(null, arguments);\n }, Om = e._Equal = function() {\n return (Om = e._Equal = e.asm.Equal).apply(null, arguments);\n }, f0 = e._Erf = function() {\n return (f0 = e._Erf = e.asm.Erf).apply(null, arguments);\n }, ob = e._Exp = function() {\n return (ob = e._Exp = e.asm.Exp).apply(null, arguments);\n }, nb = e._Expm1 = function() {\n return (nb = e._Expm1 = e.asm.Expm1).apply(null, arguments);\n }, sb = e._FlipLeftRight = function() {\n return (sb = e._FlipLeftRight = e.asm.FlipLeftRight).apply(null, arguments);\n }, ab = e._Floor = function() {\n return (ab = e._Floor = e.asm.Floor).apply(null, arguments);\n }, ib = e._FloorDiv = function() {\n return (ib = e._FloorDiv = e.asm.FloorDiv).apply(null, arguments);\n }, ub = e._FusedBatchNorm = function() {\n return (ub = e._FusedBatchNorm = e.asm.FusedBatchNorm).apply(null, arguments);\n }, pb = e._FusedConv2D = function() {\n return (pb = e._FusedConv2D = e.asm.FusedConv2D).apply(null, arguments);\n }, cb = e._FusedDepthwiseConv2D = function() {\n return (cb = e._FusedDepthwiseConv2D = e.asm.FusedDepthwiseConv2D).apply(null, arguments);\n }, lb = e._Gather = function() {\n return (lb = e._Gather = e.asm.Gather).apply(null, arguments);\n }, mb = e._GatherNd = function() {\n return (mb = e._GatherNd = e.asm.GatherNd).apply(null, arguments);\n }, db = e._Greater = function() {\n return (db = e._Greater = e.asm.Greater).apply(null, arguments);\n }, fb = e._GreaterEqual = function() {\n return (fb = e._GreaterEqual = e.asm.GreaterEqual).apply(null, arguments);\n }, hb = e._IsFinite = function() {\n return (hb = e._IsFinite = e.asm.IsFinite).apply(null, arguments);\n }, gb = e._IsInf = function() {\n return (gb = e._IsInf = e.asm.IsInf).apply(null, arguments);\n }, xb = e._IsNan = function() {\n return (xb = e._IsNan = e.asm.IsNan).apply(null, arguments);\n }, yb = e._LRN = function() {\n return (yb = e._LRN = e.asm.LRN).apply(null, arguments);\n }, bb = e._LRNGrad = function() {\n return (bb = e._LRNGrad = e.asm.LRNGrad).apply(null, arguments);\n }, Cb = e._LeakyRelu = function() {\n return (Cb = e._LeakyRelu = e.asm.LeakyRelu).apply(null, arguments);\n }, wb = e._Less = function() {\n return (wb = e._Less = e.asm.Less).apply(null, arguments);\n }, Sb = e._LessEqual = function() {\n return (Sb = e._LessEqual = e.asm.LessEqual).apply(null, arguments);\n }, Ib = e._LinSpace = function() {\n return (Ib = e._LinSpace = e.asm.LinSpace).apply(null, arguments);\n }, vb = e._Log = function() {\n return (vb = e._Log = e.asm.Log).apply(null, arguments);\n }, kb = e._Log1p = function() {\n return (kb = e._Log1p = e.asm.Log1p).apply(null, arguments);\n }, Nb = e._LogicalAnd = function() {\n return (Nb = e._LogicalAnd = e.asm.LogicalAnd).apply(null, arguments);\n }, Tb = e._LogicalNot = function() {\n return (Tb = e._LogicalNot = e.asm.LogicalNot).apply(null, arguments);\n }, _b = e._LogicalOr = function() {\n return (_b = e._LogicalOr = e.asm.LogicalOr).apply(null, arguments);\n }, $b = e._LogicalXor = function() {\n return ($b = e._LogicalXor = e.asm.LogicalXor).apply(null, arguments);\n }, Eb = e._Max = function() {\n return (Eb = e._Max = e.asm.Max).apply(null, arguments);\n }, Rb = e._MaxPool = function() {\n return (Rb = e._MaxPool = e.asm.MaxPool).apply(null, arguments);\n }, Db = e._MaxPool3D = function() {\n return (Db = e._MaxPool3D = e.asm.MaxPool3D).apply(null, arguments);\n }, Ab = e._MaxPool3DGrad = function() {\n return (Ab = e._MaxPool3DGrad = e.asm.MaxPool3DGrad).apply(null, arguments);\n }, Fb = e._MaxPoolGrad = function() {\n return (Fb = e._MaxPoolGrad = e.asm.MaxPoolGrad).apply(null, arguments);\n }, Pb = e._MaxPoolWithArgmax = function() {\n return (Pb = e._MaxPoolWithArgmax = e.asm.MaxPoolWithArgmax).apply(null, arguments);\n }, Ob = e._Maximum = function() {\n return (Ob = e._Maximum = e.asm.Maximum).apply(null, arguments);\n }, Mb = e._Mean = function() {\n return (Mb = e._Mean = e.asm.Mean).apply(null, arguments);\n }, Lb = e._Min = function() {\n return (Lb = e._Min = e.asm.Min).apply(null, arguments);\n }, Bb = e._Minimum = function() {\n return (Bb = e._Minimum = e.asm.Minimum).apply(null, arguments);\n }, zb = e._MirrorPad = function() {\n return (zb = e._MirrorPad = e.asm.MirrorPad).apply(null, arguments);\n }, Vb = e._Mod = function() {\n return (Vb = e._Mod = e.asm.Mod).apply(null, arguments);\n }, Wb = e._Multinomial = function() {\n return (Wb = e._Multinomial = e.asm.Multinomial).apply(null, arguments);\n }, Ub = e._Multiply = function() {\n return (Ub = e._Multiply = e.asm.Multiply).apply(null, arguments);\n }, Gb = e._Neg = function() {\n return (Gb = e._Neg = e.asm.Neg).apply(null, arguments);\n }, Hb = e._NonMaxSuppressionV3 = function() {\n return (Hb = e._NonMaxSuppressionV3 = e.asm.NonMaxSuppressionV3).apply(null, arguments);\n }, Kb = e._NonMaxSuppressionV4 = function() {\n return (Kb = e._NonMaxSuppressionV4 = e.asm.NonMaxSuppressionV4).apply(null, arguments);\n }, qb = e._NonMaxSuppressionV5 = function() {\n return (qb = e._NonMaxSuppressionV5 = e.asm.NonMaxSuppressionV5).apply(null, arguments);\n }, jb = e._NotEqual = function() {\n return (jb = e._NotEqual = e.asm.NotEqual).apply(null, arguments);\n }, Xb = e._OneHot = function() {\n return (Xb = e._OneHot = e.asm.OneHot).apply(null, arguments);\n }, Yb = e._PadV2 = function() {\n return (Yb = e._PadV2 = e.asm.PadV2).apply(null, arguments);\n }, Qb = e._Pow = function() {\n return (Qb = e._Pow = e.asm.Pow).apply(null, arguments);\n }, Zb = e._Prelu = function() {\n return (Zb = e._Prelu = e.asm.Prelu).apply(null, arguments);\n }, Jb = e._Prod = function() {\n return (Jb = e._Prod = e.asm.Prod).apply(null, arguments);\n }, eC = e._RealDiv = function() {\n return (eC = e._RealDiv = e.asm.RealDiv).apply(null, arguments);\n }, tC = e._Reciprocal = function() {\n return (tC = e._Reciprocal = e.asm.Reciprocal).apply(null, arguments);\n }, rC = e._Relu = function() {\n return (rC = e._Relu = e.asm.Relu).apply(null, arguments);\n }, oC = e._Relu6 = function() {\n return (oC = e._Relu6 = e.asm.Relu6).apply(null, arguments);\n }, nC = e._ResizeBilinear = function() {\n return (nC = e._ResizeBilinear = e.asm.ResizeBilinear).apply(null, arguments);\n }, sC = e._ResizeBilinearGrad = function() {\n return (sC = e._ResizeBilinearGrad = e.asm.ResizeBilinearGrad).apply(null, arguments);\n }, aC = e._ResizeNearestNeighbor = function() {\n return (aC = e._ResizeNearestNeighbor = e.asm.ResizeNearestNeighbor).apply(null, arguments);\n }, iC = e._ResizeNearestNeighborGrad = function() {\n return (iC = e._ResizeNearestNeighborGrad = e.asm.ResizeNearestNeighborGrad).apply(null, arguments);\n }, uC = e._Reverse = function() {\n return (uC = e._Reverse = e.asm.Reverse).apply(null, arguments);\n }, pC = e._RotateWithOffset = function() {\n return (pC = e._RotateWithOffset = e.asm.RotateWithOffset).apply(null, arguments);\n }, cC = e._Round = function() {\n return (cC = e._Round = e.asm.Round).apply(null, arguments);\n }, lC = e._Rsqrt = function() {\n return (lC = e._Rsqrt = e.asm.Rsqrt).apply(null, arguments);\n }, mC = e._ScatterNd = function() {\n return (mC = e._ScatterNd = e.asm.ScatterNd).apply(null, arguments);\n }, dC = e._SearchSorted = function() {\n return (dC = e._SearchSorted = e.asm.SearchSorted).apply(null, arguments);\n }, fC = e._SelectV2 = function() {\n return (fC = e._SelectV2 = e.asm.SelectV2).apply(null, arguments);\n }, hC = e._Selu = function() {\n return (hC = e._Selu = e.asm.Selu).apply(null, arguments);\n }, gC = e._Sigmoid = function() {\n return (gC = e._Sigmoid = e.asm.Sigmoid).apply(null, arguments);\n }, xC = e._Sign = function() {\n return (xC = e._Sign = e.asm.Sign).apply(null, arguments);\n }, yC = e._Sin = function() {\n return (yC = e._Sin = e.asm.Sin).apply(null, arguments);\n }, bC = e._Sinh = function() {\n return (bC = e._Sinh = e.asm.Sinh).apply(null, arguments);\n }, CC = e._Softmax = function() {\n return (CC = e._Softmax = e.asm.Softmax).apply(null, arguments);\n }, wC = e._Softplus = function() {\n return (wC = e._Softplus = e.asm.Softplus).apply(null, arguments);\n }, SC = e._SparseFillEmptyRows = function() {\n return (SC = e._SparseFillEmptyRows = e.asm.SparseFillEmptyRows).apply(null, arguments);\n }, IC = e._SparseReshape = function() {\n return (IC = e._SparseReshape = e.asm.SparseReshape).apply(null, arguments);\n }, vC = e._SparseSegmentReduction = function() {\n return (vC = e._SparseSegmentReduction = e.asm.SparseSegmentReduction).apply(null, arguments);\n }, kC = e._SparseToDense = function() {\n return (kC = e._SparseToDense = e.asm.SparseToDense).apply(null, arguments);\n }, NC = e._Sqrt = function() {\n return (NC = e._Sqrt = e.asm.Sqrt).apply(null, arguments);\n }, TC = e._Square = function() {\n return (TC = e._Square = e.asm.Square).apply(null, arguments);\n }, _C = e._SquaredDifference = function() {\n return (_C = e._SquaredDifference = e.asm.SquaredDifference).apply(null, arguments);\n }, $C = e._Step = function() {\n return ($C = e._Step = e.asm.Step).apply(null, arguments);\n }, EC = e._StridedSlice = function() {\n return (EC = e._StridedSlice = e.asm.StridedSlice).apply(null, arguments);\n }, RC = e._Sub = function() {\n return (RC = e._Sub = e.asm.Sub).apply(null, arguments);\n }, DC = e._Sum = function() {\n return (DC = e._Sum = e.asm.Sum).apply(null, arguments);\n }, AC = e._Tan = function() {\n return (AC = e._Tan = e.asm.Tan).apply(null, arguments);\n }, FC = e._Tanh = function() {\n return (FC = e._Tanh = e.asm.Tanh).apply(null, arguments);\n }, PC = e._TensorScatterUpdate = function() {\n return (PC = e._TensorScatterUpdate = e.asm.TensorScatterUpdate).apply(null, arguments);\n }, OC = e._Tile = function() {\n return (OC = e._Tile = e.asm.Tile).apply(null, arguments);\n }, MC = e._TopK = function() {\n return (MC = e._TopK = e.asm.TopK).apply(null, arguments);\n }, LC = e._Transform = function() {\n return (LC = e._Transform = e.asm.Transform).apply(null, arguments);\n }, BC = e._Transpose = function() {\n return (BC = e._Transpose = e.asm.Transpose).apply(null, arguments);\n }, zC = e.__FusedMatMul = function() {\n return (zC = e.__FusedMatMul = e.asm._FusedMatMul).apply(null, arguments);\n }, VC = e._malloc = function() {\n return (VC = e._malloc = e.asm.malloc).apply(null, arguments);\n }, WC = e._free = function() {\n return (WC = e._free = e.asm.free).apply(null, arguments);\n }, UC = e.___errno_location = function() {\n return (UC = e.___errno_location = e.asm.__errno_location).apply(null, arguments);\n }, Mm = e.stackSave = function() {\n return (Mm = e.stackSave = e.asm.stackSave).apply(null, arguments);\n }, Lm = e.stackRestore = function() {\n return (Lm = e.stackRestore = e.asm.stackRestore).apply(null, arguments);\n }, ml = e.stackAlloc = function() {\n return (ml = e.stackAlloc = e.asm.stackAlloc).apply(null, arguments);\n }, GC = e.dynCall_iijjiiii = function() {\n return (GC = e.dynCall_iijjiiii = e.asm.dynCall_iijjiiii).apply(null, arguments);\n }, HC = e.dynCall_jiji = function() {\n return (HC = e.dynCall_jiji = e.asm.dynCall_jiji).apply(null, arguments);\n };\n e.cwrap = ky;\n var Wp;\n ar = function K() {\n Wp || Bm(), Wp || (ar = K);\n };\n function Bm(K) {\n if (K = K || i, _t > 0 || (gt(), _t > 0))\n return;\n function ae() {\n Wp || (Wp = true, e.calledRun = true, !M && (xt(), o(e), e.onRuntimeInitialized && e.onRuntimeInitialized(), Lr()));\n }\n e.setStatus ? (e.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n e.setStatus(\"\");\n }, 1), ae();\n }, 1)) : ae();\n }\n if (e.preInit)\n for (typeof e.preInit == \"function\" && (e.preInit = [e.preInit]); e.preInit.length > 0; )\n e.preInit.pop()();\n Bm();\n var Up;\n s && (Up = { uncaughtException: process.listeners(\"uncaughtException\").filter(function(K) {\n return !s.uncaughtException.indexOf(K) > -1;\n }), unhandledRejection: process.listeners(\"unhandledRejection\").filter(function(K) {\n return !s.unhandledRejection.indexOf(K) > -1;\n }) });\n var Gp;\n if (typeof t8 != \"undefined\")\n Gp = t8;\n else if (typeof WasmBackendModuleThreadedSimd != \"undefined\")\n Gp = WasmBackendModuleThreadedSimd;\n else\n throw new Error(\"Could not find wasm module in post.js\");\n if (Up) {\n var KC = Gp._dispose;\n Gp._dispose = function() {\n KC(), Up.uncaughtException.forEach(function(K) {\n process.removeListener(\"uncaughtException\", K);\n }), Up.unhandledRejection.forEach(function(K) {\n process.removeListener(\"unhandledRejection\", K);\n });\n };\n }\n return t8.ready;\n };\n })();\n typeof Ug == \"object\" && typeof Gv == \"object\" ? Gv.exports = Uv : typeof define == \"function\" && define.amd ? define([], function() {\n return Uv;\n }) : typeof Ug == \"object\" && (Ug.WasmBackendModule = Uv);\n});\nvar zo = class {\n constructor(t8, e) {\n this.backend = t8, this.dataMover = e, this.data = /* @__PURE__ */ new WeakMap(), this.dataIdsCount = 0;\n }\n get(t8) {\n return this.data.has(t8) || this.dataMover.moveData(this.backend, t8), this.data.get(t8);\n }\n set(t8, e) {\n this.dataIdsCount++, this.data.set(t8, e);\n }\n has(t8) {\n return this.data.has(t8);\n }\n delete(t8) {\n return this.dataIdsCount--, this.data.delete(t8);\n }\n numDataIds() {\n return this.dataIdsCount;\n }\n};\nvar ao = class {\n refCount(t8) {\n return zr(\"refCount\");\n }\n incRef(t8) {\n return zr(\"incRef\");\n }\n timerAvailable() {\n return true;\n }\n time(t8) {\n return zr(\"time\");\n }\n read(t8) {\n return zr(\"read\");\n }\n readSync(t8) {\n return zr(\"readSync\");\n }\n readToGPU(t8, e) {\n return zr(\"readToGPU\");\n }\n numDataIds() {\n return zr(\"numDataIds\");\n }\n disposeData(t8, e) {\n return zr(\"disposeData\");\n }\n write(t8, e, o) {\n return zr(\"write\");\n }\n move(t8, e, o, n, s) {\n return zr(\"move\");\n }\n createTensorFromGPUData(t8, e, o) {\n return zr(\"createTensorFromGPUData\");\n }\n memory() {\n return zr(\"memory\");\n }\n floatPrecision() {\n return zr(\"floatPrecision\");\n }\n epsilon() {\n return this.floatPrecision() === 32 ? 1e-7 : 1e-4;\n }\n dispose() {\n return zr(\"dispose\");\n }\n};\nfunction zr(r) {\n throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`);\n}\nfunction I0(r) {\n let t8 = r.length, e = 0;\n for (; t8 > 0; )\n e = Math.random() * t8 | 0, t8--, jm(r, t8, e);\n}\nfunction TG(r, t8) {\n if (r.length !== t8.length)\n throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t8.length}`);\n let e = r.length, o = 0;\n for (; e > 0; )\n o = Math.random() * e | 0, e--, jm(r, e, o), jm(t8, e, o);\n}\nfunction qp(r, t8, e) {\n return Math.max(r, Math.min(t8, e));\n}\nfunction _G(r) {\n return r % 2 === 0 ? r : r + 1;\n}\nfunction jm(r, t8, e) {\n let o = r[t8];\n r[t8] = r[e], r[e] = o;\n}\nfunction $G(r) {\n let t8 = 0;\n for (let e = 0; e < r.length; e++)\n t8 += r[e];\n return t8;\n}\nfunction EG(r, t8) {\n let e = Math.random();\n return t8 * e + (1 - e) * r;\n}\nfunction RG(r, t8) {\n let e = 0;\n for (let o = 0; o < r.length; o++) {\n let n = Number(r[o]) - Number(t8[o]);\n e += n * n;\n }\n return e;\n}\nfunction $(r, t8) {\n if (!r)\n throw new Error(typeof t8 == \"string\" ? t8 : t8());\n}\nfunction yt(r, t8, e = \"\") {\n $(Cr(r, t8), () => e + ` Shapes ${r} and ${t8} must match`);\n}\nfunction io(r) {\n $(r != null, () => \"The input to the tensor constructor must be a non-null value.\");\n}\nfunction He(r) {\n if (r.length === 0)\n return 1;\n let t8 = r[0];\n for (let e = 1; e < r.length; e++)\n t8 *= r[e];\n return t8;\n}\nfunction DG(r) {\n return r.length === 0;\n}\nfunction ZC(r, t8) {\n if (r === t8)\n return true;\n if (r == null || t8 == null || r.length !== t8.length)\n return false;\n for (let e = 0; e < r.length; e++)\n if (r[e] !== null && t8[e] !== null && r[e] !== t8[e])\n return false;\n return true;\n}\nfunction Cr(r, t8) {\n if (r === t8)\n return true;\n if (r == null || t8 == null || r.length !== t8.length)\n return false;\n for (let e = 0; e < r.length; e++)\n if (r[e] !== t8[e])\n return false;\n return true;\n}\nfunction qa(r) {\n return r % 1 === 0;\n}\nfunction AG(r) {\n if (Math.tanh != null)\n return Math.tanh(r);\n if (r === 1 / 0)\n return 1;\n if (r === -1 / 0)\n return -1;\n {\n let t8 = Math.exp(2 * r);\n return (t8 - 1) / (t8 + 1);\n }\n}\nfunction FG(r) {\n let t8 = Math.ceil(Math.sqrt(r));\n return [t8, Math.ceil(r / t8)];\n}\nfunction PG(r) {\n let t8 = new Uint32Array(r);\n for (let e = 0; e < r; ++e)\n t8[e] = e;\n return I0(t8), t8;\n}\nfunction Au(r, t8) {\n return t8 <= r.length ? r : r + \" \".repeat(t8 - r.length);\n}\nfunction OG(r, t8 = (n) => 0, e, o) {\n return new Promise((n, s) => {\n let a = 0, i = () => {\n if (r()) {\n n();\n return;\n }\n a++;\n let p = t8(a);\n if (e != null && a >= e) {\n s();\n return;\n }\n o != null ? o(i, p) : setTimeout(i, p);\n };\n i();\n });\n}\nfunction MG(r, t8) {\n let e = 1, o = -1;\n for (let s = 0; s < r.length; ++s)\n if (r[s] >= 0)\n e *= r[s];\n else if (r[s] === -1) {\n if (o !== -1)\n throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${o} and dim ${s}`);\n o = s;\n } else if (r[s] < 0)\n throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);\n if (o === -1) {\n if (t8 > 0 && t8 !== e)\n throw Error(`Size(${t8}) must match the product of shape ${r}`);\n return r;\n }\n if (e === 0)\n throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);\n if (t8 % e !== 0)\n throw Error(`The implicit shape can't be a fractional number. Got ${t8} / ${e}`);\n let n = r.slice();\n return n[o] = t8 / e, n;\n}\nfunction Ei(r, t8) {\n let e = t8.length;\n return r = r == null ? t8.map((o, n) => n) : [].concat(r), $(r.every((o) => o >= -e && o < e), () => `All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`), $(r.every((o) => qa(o)), () => `All values in axis param must be integers but got axis ${r}`), r.map((o) => o < 0 ? e + o : o);\n}\nfunction JC(r, t8) {\n let e = [], o = [], n = t8 != null && Array.isArray(t8) && t8.length === 0, s = t8 == null || n ? null : Ei(t8, r).sort(), a = 0;\n for (let i = 0; i < r.length; ++i) {\n if (s != null) {\n if (s[a] === i && r[i] !== 1)\n throw new Error(`Can't squeeze axis ${i} since its dim '${r[i]}' is not 1`);\n (s[a] == null || s[a] > i) && r[i] === 1 && (e.push(r[i]), o.push(i)), s[a] <= i && a++;\n }\n r[i] !== 1 && (e.push(r[i]), o.push(i));\n }\n return { newShape: e, keptDims: o };\n}\nfunction ew(r, t8) {\n return Xm(r, t8);\n}\nfunction Xm(r, t8) {\n let e = null;\n if (r == null || r === \"float32\")\n e = new Float32Array(t8);\n else if (r === \"int32\")\n e = new Int32Array(t8);\n else if (r === \"bool\")\n e = new Uint8Array(t8);\n else if (r === \"string\")\n e = new Array(t8);\n else\n throw new Error(`Unknown data type ${r}`);\n return e;\n}\nfunction tw(r, t8) {\n for (let e = 0; e < r.length; e++) {\n let o = r[e];\n if (isNaN(o) || !isFinite(o))\n throw Error(`A tensor of type ${t8} being uploaded contains ${o}.`);\n }\n}\nfunction rw(r) {\n return r === \"bool\" || r === \"complex64\" || r === \"float32\" || r === \"int32\" || r === \"string\";\n}\nfunction LG(r, t8) {\n return !(t8 === \"complex64\" || t8 === \"float32\" && r !== \"complex64\" || t8 === \"int32\" && r !== \"float32\" && r !== \"complex64\" || t8 === \"bool\" && r === \"bool\");\n}\nfunction jp(r) {\n if (r === \"float32\" || r === \"int32\")\n return 4;\n if (r === \"complex64\")\n return 8;\n if (r === \"bool\")\n return 1;\n throw new Error(`Unknown dtype ${r}`);\n}\nfunction ow(r) {\n if (r == null)\n return 0;\n let t8 = 0;\n return r.forEach((e) => t8 += e.length), t8;\n}\nfunction Vo(r) {\n return typeof r == \"string\" || r instanceof String;\n}\nfunction v0(r) {\n return typeof r == \"boolean\";\n}\nfunction k0(r) {\n return typeof r == \"number\";\n}\nfunction Ri(r) {\n return Array.isArray(r) ? Ri(r[0]) : r instanceof Float32Array ? \"float32\" : r instanceof Int32Array || r instanceof Uint8Array || r instanceof Uint8ClampedArray ? \"int32\" : k0(r) ? \"float32\" : Vo(r) ? \"string\" : v0(r) ? \"bool\" : \"float32\";\n}\nfunction qs(r) {\n return !!(r && r.constructor && r.call && r.apply);\n}\nfunction Xp(r, t8) {\n for (let e = t8; e < r; ++e)\n if (r % e === 0)\n return e;\n return r;\n}\nfunction js(r) {\n let t8 = r.length;\n if (t8 < 2)\n return [];\n let e = new Array(t8 - 1);\n e[t8 - 2] = r[t8 - 1];\n for (let o = t8 - 3; o >= 0; --o)\n e[o] = e[o + 1] * r[o + 1];\n return e;\n}\nfunction N0(r, t8, e, o = false) {\n let n = new Array();\n if (t8.length === 1) {\n let s = t8[0] * (o ? 2 : 1);\n for (let a = 0; a < s; a++)\n n[a] = e[r + a];\n } else {\n let s = t8[0], a = t8.slice(1), i = a.reduce((p, u) => p * u) * (o ? 2 : 1);\n for (let p = 0; p < s; p++)\n n[p] = N0(r + p * i, a, e, o);\n }\n return n;\n}\nfunction Du(r, t8, e = false) {\n if (r.length === 0)\n return t8[0];\n let o = r.reduce((n, s) => n * s) * (e ? 2 : 1);\n if (o === 0)\n return [];\n if (o !== t8.length)\n throw new Error(`[${r}] does not match the input size ${t8.length}${e ? \" for a complex tensor\" : \"\"}.`);\n return N0(0, r, t8, e);\n}\nfunction BG(r, t8) {\n if (Array.isArray(r))\n return r;\n if (t8 === \"float32\")\n return r instanceof Float32Array ? r : new Float32Array(r);\n if (t8 === \"int32\")\n return r instanceof Int32Array ? r : new Int32Array(r);\n if (t8 === \"bool\" || t8 === \"string\")\n return Uint8Array.from(new Int32Array(r));\n throw new Error(`Unknown dtype ${t8}`);\n}\nfunction fl(r, t8) {\n let e = Yp(r, t8);\n for (let o = 0; o < e.length; o++)\n e[o] = 1;\n return e;\n}\nfunction Yp(r, t8) {\n if (t8 == null || t8 === \"float32\" || t8 === \"complex64\")\n return new Float32Array(r);\n if (t8 === \"int32\")\n return new Int32Array(r);\n if (t8 === \"bool\")\n return new Uint8Array(r);\n throw new Error(`Unknown data type ${t8}`);\n}\nfunction zG(r, t8) {\n let e = r.reduce((o, n) => o * n, 1);\n if (t8 == null || t8 === \"float32\")\n return Du(r, new Float32Array(e));\n if (t8 === \"int32\")\n return Du(r, new Int32Array(e));\n if (t8 === \"bool\")\n return Du(r, new Uint8Array(e));\n throw new Error(`Unknown data type ${t8}`);\n}\nfunction wt(r) {\n r.forEach((t8) => {\n $(Number.isInteger(t8) && t8 >= 0, () => `Tensor must have a shape comprised of positive integers but got shape [${r}].`);\n });\n}\nfunction VG(r, t8, e) {\n if (t8 === 0)\n return 0;\n if (t8 === 1)\n return r[0];\n let o = r[r.length - 1];\n for (let n = 0; n < r.length - 1; ++n)\n o += e[n] * r[n];\n return o;\n}\nfunction WG(r, t8, e) {\n if (t8 === 0)\n return [];\n if (t8 === 1)\n return [r];\n let o = new Array(t8);\n for (let n = 0; n < o.length - 1; ++n)\n o[n] = Math.floor(r / e[n]), r -= o[n] * e[n];\n return o[o.length - 1] = r, o;\n}\nfunction Fu(r) {\n return r && r.then && typeof r.then == \"function\";\n}\nvar T0 = \"tfjsflags\";\nvar hl = class {\n constructor(t8) {\n this.global = t8, this.flags = {}, this.flagRegistry = {}, this.urlFlags = {}, this.getQueryParams = GG, this.populateURLFlags();\n }\n setPlatform(t8, e) {\n this.platform != null && (A().getBool(\"IS_TEST\") || A().getBool(\"PROD\") || console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t8}.`)), this.platformName = t8, this.platform = e;\n }\n registerFlag(t8, e, o) {\n if (this.flagRegistry[t8] = { evaluationFn: e, setHook: o }, this.urlFlags[t8] != null) {\n let n = this.urlFlags[t8];\n A().getBool(\"IS_TEST\") || A().getBool(\"PROD\") || console.warn(`Setting feature override from URL ${t8}: ${n}.`), this.set(t8, n);\n }\n }\n async getAsync(t8) {\n return t8 in this.flags ? this.flags[t8] : (this.flags[t8] = await this.evaluateFlag(t8), this.flags[t8]);\n }\n get(t8) {\n if (t8 in this.flags)\n return this.flags[t8];\n let e = this.evaluateFlag(t8);\n if (Fu(e))\n throw new Error(`Flag ${t8} cannot be synchronously evaluated. Please use getAsync() instead.`);\n return this.flags[t8] = e, this.flags[t8];\n }\n getNumber(t8) {\n return this.get(t8);\n }\n getBool(t8) {\n return this.get(t8);\n }\n getString(t8) {\n return this.get(t8);\n }\n getFlags() {\n return this.flags;\n }\n get features() {\n return this.flags;\n }\n set(t8, e) {\n if (this.flagRegistry[t8] == null)\n throw new Error(`Cannot set flag ${t8} as it has not been registered.`);\n this.flags[t8] = e, this.flagRegistry[t8].setHook != null && this.flagRegistry[t8].setHook(e);\n }\n evaluateFlag(t8) {\n if (this.flagRegistry[t8] == null)\n throw new Error(`Cannot evaluate flag '${t8}': no evaluation function found.`);\n return this.flagRegistry[t8].evaluationFn();\n }\n setFlags(t8) {\n this.flags = Object.assign({}, t8);\n }\n reset() {\n this.flags = {}, this.urlFlags = {}, this.populateURLFlags();\n }\n populateURLFlags() {\n if (typeof this.global == \"undefined\" || typeof this.global.location == \"undefined\" || typeof this.global.location.search == \"undefined\")\n return;\n let t8 = this.getQueryParams(this.global.location.search);\n T0 in t8 && t8[T0].split(\",\").forEach((o) => {\n let [n, s] = o.split(\":\");\n this.urlFlags[n] = KG(n, s);\n });\n }\n};\nfunction GG(r) {\n let t8 = {};\n return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (e, ...o) => (HG(t8, o[0], o[1]), o.join(\"=\"))), t8;\n}\nfunction HG(r, t8, e) {\n r[decodeURIComponent(t8)] = decodeURIComponent(e || \"\");\n}\nfunction KG(r, t8) {\n let e = t8.toLowerCase();\n return e === \"true\" || e === \"false\" ? e === \"true\" : `${+e}` === e ? +e : t8;\n}\nfunction A() {\n return nw;\n}\nvar nw = null;\nfunction _0(r) {\n nw = r;\n}\nvar sw;\nfunction aw() {\n if (sw == null) {\n let r;\n if (typeof window != \"undefined\")\n r = window;\n else if (typeof global != \"undefined\")\n r = global;\n else if (typeof process != \"undefined\")\n r = process;\n else if (typeof self != \"undefined\")\n r = self;\n else\n throw new Error(\"Could not find a global object\");\n sw = r;\n }\n return sw;\n}\nfunction qG() {\n let r = aw();\n return r._tfGlobals == null && (r._tfGlobals = /* @__PURE__ */ new Map()), r._tfGlobals;\n}\nfunction gl(r, t8) {\n let e = qG();\n if (e.has(r))\n return e.get(r);\n {\n let o = t8();\n return e.set(r, o), e.get(r);\n }\n}\nvar Xs = \"Abs\";\nvar Wo = \"Acos\";\nvar Uo = \"Acosh\";\nvar uo = \"Add\";\nvar Go = \"AddN\";\nvar Ho = \"All\";\nvar Ko = \"Any\";\nvar Ys = \"ArgMax\";\nvar Qs = \"ArgMin\";\nvar qo = \"Asin\";\nvar jo = \"Asinh\";\nvar Xo = \"Atan\";\nvar Yo = \"Atanh\";\nvar Qo = \"Atan2\";\nvar Zo = \"AvgPool\";\nvar Di = \"AvgPoolGrad\";\nvar Zs = \"AvgPool3D\";\nvar Ai = \"AvgPool3DGrad\";\nvar Jo = \"BatchMatMul\";\nvar Js = \"BatchToSpaceND\";\nvar en = \"Bincount\";\nvar ja = \"BitwiseAnd\";\nvar Bce = \"BroadcastTo\";\nvar ea = \"BroadcastArgs\";\nvar bo = \"Cast\";\nvar tn = \"Ceil\";\nvar Co = \"ClipByValue\";\nvar Fi = \"Complex\";\nvar Pi = \"ComplexAbs\";\nvar ta = \"Concat\";\nvar rn = \"Conv2D\";\nvar Oi = \"Conv2DBackpropFilter\";\nvar on = \"Conv2DBackpropInput\";\nvar nn = \"Conv3D\";\nvar Xa = \"Conv3DBackpropFilterV2\";\nvar sn = \"Conv3DBackpropInputV2\";\nvar an = \"Cos\";\nvar un = \"Cosh\";\nvar pn = \"Cumprod\";\nvar cn = \"Cumsum\";\nvar ln = \"CropAndResize\";\nvar ra = \"DenseBincount\";\nvar mn = \"DepthToSpace\";\nvar dn = \"DepthwiseConv2dNative\";\nvar Mi = \"DepthwiseConv2dNativeBackpropFilter\";\nvar Li = \"DepthwiseConv2dNativeBackpropInput\";\nvar oa = \"Diag\";\nvar fn = \"Dilation2D\";\nvar Bi = \"Dilation2DBackpropInput\";\nvar zi = \"Dilation2DBackpropFilter\";\nvar Pu = \"Draw\";\nvar hn = \"RealDiv\";\nvar Vi = \"Einsum\";\nvar gn = \"Elu\";\nvar Ya = \"EluGrad\";\nvar xn = \"Erf\";\nvar yn = \"Equal\";\nvar bn = \"Exp\";\nvar na = \"ExpandDims\";\nvar Cn = \"Expm1\";\nvar Wi = \"FFT\";\nvar sa = \"Fill\";\nvar wn = \"FlipLeftRight\";\nvar Sn = \"Floor\";\nvar In = \"FloorDiv\";\nvar vn = \"FusedBatchNorm\";\nvar aa = \"GatherV2\";\nvar kn = \"GatherNd\";\nvar Nn = \"Greater\";\nvar Tn = \"GreaterEqual\";\nvar wo = \"Identity\";\nvar Ui = \"IFFT\";\nvar Gi = \"Imag\";\nvar _n = \"IsFinite\";\nvar $n = \"IsInf\";\nvar En = \"IsNan\";\nvar Rn = \"LeakyRelu\";\nvar Dn = \"Less\";\nvar An = \"LessEqual\";\nvar Fn = \"LinSpace\";\nvar Pn = \"Log\";\nvar On = \"Log1p\";\nvar Mn = \"LogicalAnd\";\nvar Ln = \"LogicalNot\";\nvar Bn = \"LogicalOr\";\nvar $0 = \"LogicalXor\";\nvar zce = \"LogSoftmax\";\nvar Vce = \"LowerBound\";\nvar zn = \"LRN\";\nvar Qa = \"LRNGrad\";\nvar Wce = \"MatrixBandPart\";\nvar Vn = \"Max\";\nvar Wn = \"Maximum\";\nvar Un = \"MaxPool\";\nvar Hi = \"MaxPoolGrad\";\nvar ia = \"MaxPool3D\";\nvar Ki = \"MaxPool3DGrad\";\nvar ua = \"MaxPoolWithArgmax\";\nvar Gn = \"Mean\";\nvar Hn = \"Min\";\nvar Kn = \"Minimum\";\nvar qn = \"MirrorPad\";\nvar jn = \"Mod\";\nvar Xn = \"Multinomial\";\nvar Yn = \"Multiply\";\nvar pa = \"Neg\";\nvar Qn = \"NotEqual\";\nvar Zn = \"NonMaxSuppressionV3\";\nvar Za = \"NonMaxSuppressionV4\";\nvar Jn = \"NonMaxSuppressionV5\";\nvar ca = \"OnesLike\";\nvar es = \"OneHot\";\nvar la = \"Pack\";\nvar ts = \"PadV2\";\nvar Uce = \"Pool\";\nvar rs = \"Pow\";\nvar os = \"Prelu\";\nvar ns = \"Prod\";\nvar Qp = \"RaggedGather\";\nvar Zp = \"RaggedRange\";\nvar Jp = \"RaggedTensorToTensor\";\nvar ma = \"Range\";\nvar qi = \"Real\";\nvar ss = \"Reciprocal\";\nvar as = \"Relu\";\nvar da = \"Reshape\";\nvar is = \"ResizeNearestNeighbor\";\nvar Ja = \"ResizeNearestNeighborGrad\";\nvar us = \"ResizeBilinear\";\nvar ei = \"ResizeBilinearGrad\";\nvar ps = \"Relu6\";\nvar cs = \"Reverse\";\nvar ls = \"Round\";\nvar ms = \"Rsqrt\";\nvar ds = \"ScatterNd\";\nvar fs = \"TensorScatterUpdate\";\nvar hs = \"SearchSorted\";\nvar fa = \"Select\";\nvar gs = \"Selu\";\nvar ha = \"Slice\";\nvar xs = \"Sin\";\nvar ys = \"Sinh\";\nvar bs = \"Sign\";\nvar Cs = \"Sigmoid\";\nvar ws = \"Softplus\";\nvar Ss = \"Sqrt\";\nvar Is = \"Sum\";\nvar ga = \"SpaceToBatchND\";\nvar xa = \"SplitV\";\nvar vs = \"Softmax\";\nvar ji = \"SparseFillEmptyRows\";\nvar ti = \"SparseReshape\";\nvar ya = \"SparseSegmentMean\";\nvar ba = \"SparseSegmentSum\";\nvar ks = \"SparseToDense\";\nvar Ns = \"SquaredDifference\";\nvar Xi = \"Square\";\nvar Ou = \"StaticRegexReplace\";\nvar Ts = \"StridedSlice\";\nvar Ca = \"StringNGrams\";\nvar Yi = \"StringSplit\";\nvar Qi = \"StringToHashBucketFast\";\nvar _s = \"Sub\";\nvar $s = \"Tan\";\nvar Es = \"Tanh\";\nvar po = \"Tile\";\nvar Rs = \"TopK\";\nvar Ds = \"Transform\";\nvar co = \"Transpose\";\nvar Zi = \"Unique\";\nvar wa = \"Unpack\";\nvar Ji = \"UnsortedSegmentSum\";\nvar Gce = \"UpperBound\";\nvar Sa = \"ZerosLike\";\nvar So = \"Step\";\nvar Mu = \"FromPixels\";\nvar As = \"RotateWithOffset\";\nvar Io = \"_FusedMatMul\";\nvar vo = \"FusedConv2D\";\nvar ko = \"FusedDepthwiseConv2D\";\nfunction Ia(...r) {\n A().getBool(\"IS_TEST\") || A().getBool(\"PROD\") || console.warn(...r);\n}\nfunction jG(...r) {\n A().getBool(\"IS_TEST\") || A().getBool(\"PROD\") || console.log(...r);\n}\nvar ec = gl(\"kernelRegistry\", () => /* @__PURE__ */ new Map());\nvar xl = gl(\"gradRegistry\", () => /* @__PURE__ */ new Map());\nfunction tc(r, t8) {\n let e = uw(r, t8);\n return ec.get(e);\n}\nfunction iw(r) {\n return xl.get(r);\n}\nfunction Ym(r) {\n let t8 = ec.entries(), e = [];\n for (; ; ) {\n let { done: o, value: n } = t8.next();\n if (o)\n break;\n let [s, a] = n, [i] = s.split(\"_\");\n i === r && e.push(a);\n }\n return e;\n}\nfunction ri(r) {\n let { kernelName: t8, backendName: e } = r, o = uw(t8, e);\n ec.has(o) && Ia(`The kernel '${t8}' for backend '${e}' is already registered`), ec.set(o, r);\n}\nfunction Xce(r) {\n let { kernelName: t8 } = r;\n xl.has(t8) && A().getBool(\"DEBUG\") && Ia(`Overriding the gradient for '${t8}'`), xl.set(t8, r);\n}\nfunction Yce(r, t8) {\n let e = uw(r, t8);\n if (!ec.has(e))\n throw new Error(`The kernel '${r}' for backend '${t8}' is not registered`);\n ec.delete(e);\n}\nfunction Qce(r) {\n if (!xl.has(r))\n throw new Error(`The gradient '${r}' for backend is not registered`);\n xl.delete(r);\n}\nfunction Zce(r, t8) {\n Ym(r).forEach((o) => {\n let n = Object.assign({}, o, { backendName: t8 });\n ri(n);\n });\n}\nfunction uw(r, t8) {\n return `${t8}_${r}`;\n}\nvar y = {};\nqe(y, { arraysEqual: () => Cr, arraysEqualWithNull: () => ZC, assert: () => $, assertNonNegativeIntegerDimensions: () => wt, assertNonNull: () => io, assertShapesMatch: () => yt, bytesFromStringArray: () => ow, bytesPerElement: () => jp, checkConversionForErrors: () => tw, clamp: () => qp, computeStrides: () => js, convertBackendValuesAndArrayBuffer: () => BG, createScalarValue: () => t4, createShuffledIndices: () => PG, decodeString: () => sc, distSquared: () => RG, encodeString: () => tu, fetch: () => o4, fingerPrint64: () => e4, flatten: () => Ps, getArrayFromDType: () => Xm, getTypedArrayFromDType: () => ew, hasEncodingLoss: () => LG, hexToLong: () => yl, indexToLoc: () => WG, inferDtype: () => Ri, inferFromImplicitShape: () => MG, isBoolean: () => v0, isFunction: () => qs, isInt: () => qa, isNumber: () => k0, isPromise: () => Fu, isScalarShape: () => DG, isString: () => Vo, isTypedArray: () => Ot, isValidDtype: () => rw, locToIndex: () => VG, makeOnesTypedArray: () => fl, makeZerosNestedTypedArray: () => zG, makeZerosTypedArray: () => Yp, nearestDivisor: () => Xp, nearestLargerEven: () => _G, now: () => Wu, parseAxisParam: () => Ei, randUniform: () => EG, repeatedTry: () => OG, rightPad: () => Au, shuffle: () => I0, shuffleCombo: () => TG, sizeFromShape: () => He, sizeToSquarishShape: () => FG, squeezeShape: () => JC, sum: () => $G, swap: () => jm, tanh: () => AG, toNestedArray: () => Du, toTypedArray: () => nc });\nfunction Qm(r) {\n return r instanceof Float32Array || r instanceof Int32Array || r instanceof Uint8Array || r instanceof Uint8ClampedArray;\n}\nvar mw = Kp(V0());\nvar Vu = mw.default || mw;\nfunction yl(r) {\n return Vu.fromString(r, true, 16);\n}\nvar U0 = yl(\"c3a5c85c97cb3127\");\nvar zu = yl(\"b492b66fbe98f273\");\nvar wr = yl(\"9ae16a3b2f90404f\");\nfunction lw(r) {\n return r.xor(r.shru(47));\n}\nfunction G0(r, t8, e) {\n let o = r.slice(t8, t8 + e);\n return Vu.fromBytes(Array.from(o), true, true);\n}\nfunction St(r, t8) {\n return G0(r, t8, 8);\n}\nfunction W0(r, t8) {\n return G0(r, t8, 4);\n}\nfunction Qt(r, t8) {\n return t8 === 0 ? r : r.shru(t8).or(r.shl(64 - t8));\n}\nfunction eu(r, t8, e = yl(\"9ddfea08eb382d69\")) {\n let o = r.xor(t8).mul(e);\n o = o.xor(o.shru(47));\n let n = t8.xor(o).mul(e);\n return n = n.xor(n.shru(47)), n = n.mul(e), n;\n}\nfunction YG(r, t8, e, o, n, s) {\n n = n.add(r), s = Qt(s.add(n).add(o), 21);\n let a = n;\n return n = n.add(t8), n = n.add(e), s = s.add(Qt(n, 44)), [n.add(o), s.add(a)];\n}\nfunction Jm(r, t8, e, o) {\n return YG(St(r, t8), St(r, t8 + 8), St(r, t8 + 16), St(r, t8 + 24), e, o);\n}\nfunction QG(r, t8 = r.length) {\n if (t8 >= 8) {\n let e = wr.add(t8 * 2), o = St(r, 0).add(wr), n = St(r, t8 - 8), s = Qt(n, 37).mul(e).add(o), a = Qt(o, 25).add(n).mul(e);\n return eu(s, a, e);\n }\n if (t8 >= 4) {\n let e = wr.add(t8 * 2), o = W0(r, 0);\n return eu(o.shl(3).add(t8), W0(r, t8 - 4), e);\n }\n if (t8 > 0) {\n let e = r[0], o = r[t8 >> 1], n = r[t8 - 1], s = e + (o << 8), a = t8 + (n << 2);\n return lw(wr.mul(s).xor(U0.mul(a))).mul(wr);\n }\n return wr;\n}\nfunction ZG(r, t8 = r.length) {\n let e = wr.add(t8 * 2), o = St(r, 0).mul(zu), n = St(r, 8), s = St(r, t8 - 8).mul(e), a = St(r, t8 - 16).mul(wr);\n return eu(Qt(o.add(n), 43).add(Qt(s, 30)).add(a), o.add(Qt(n.add(wr), 18)).add(s), e);\n}\nfunction JG(r, t8 = r.length) {\n let e = wr.add(t8 * 2), o = St(r, 0).mul(wr), n = St(r, 8), s = St(r, t8 - 8).mul(e), a = St(r, t8 - 16).mul(wr), i = Qt(o.add(n), 43).add(Qt(s, 30)).add(a), p = eu(i, o.add(Qt(n.add(wr), 18)).add(s), e), u = St(r, 16).mul(e), c = St(r, 24), l = i.add(St(r, t8 - 32)).mul(e), m = p.add(St(r, t8 - 24)).mul(e);\n return eu(Qt(u.add(c), 43).add(Qt(l, 30)).add(m), u.add(Qt(c.add(o), 18)).add(l), e);\n}\nfunction e4(r, t8 = r.length) {\n let e = Vu.fromNumber(81, true);\n if (t8 <= 32)\n return t8 <= 16 ? QG(r, t8) : ZG(r, t8);\n if (t8 <= 64)\n return JG(r, t8);\n let o = e, n = e.mul(zu).add(113), s = lw(n.mul(wr).add(113)).mul(wr), a = [Vu.UZERO, Vu.UZERO], i = [Vu.UZERO, Vu.UZERO];\n o = o.mul(wr).add(St(r, 0));\n let p = 0, u = (t8 - 1 >> 6) * 64, c = u + (t8 - 1 & 63) - 63;\n do\n o = Qt(o.add(n).add(a[0]).add(St(r, p + 8)), 37).mul(zu), n = Qt(n.add(a[1]).add(St(r, p + 48)), 42).mul(zu), o = o.xor(i[1]), n = n.add(a[0]).add(St(r, p + 40)), s = Qt(s.add(i[0]), 33).mul(zu), a = Jm(r, p, a[1].mul(zu), o.add(i[0])), i = Jm(r, p + 32, s.add(i[1]), n.add(St(r, p + 16))), [s, o] = [o, s], p += 64;\n while (p !== u);\n let l = zu.add(s.and(255).shl(1));\n return p = c, i[0] = i[0].add(t8 - 1 & 63), a[0] = a[0].add(i[0]), i[0] = i[0].add(a[0]), o = Qt(o.add(n).add(a[0]).add(St(r, p + 8)), 37).mul(l), n = Qt(n.add(a[1]).add(St(r, p + 48)), 42).mul(l), o = o.xor(i[1].mul(9)), n = n.add(a[0].mul(9).add(St(r, p + 40))), s = Qt(s.add(i[0]), 33).mul(l), a = Jm(r, p, a[1].mul(l), o.add(i[0])), i = Jm(r, p + 32, s.add(i[1]), n.add(St(r, p + 16))), [s, o] = [o, s], eu(eu(a[0], i[0], l).add(lw(n).mul(U0)).add(s), eu(a[1], i[1], l).add(o), l);\n}\nfunction t4(r, t8) {\n return t8 === \"string\" ? tu(r) : nc([r], t8);\n}\nfunction r4(r, t8) {\n return r instanceof Float32Array && t8 === \"float32\" || r instanceof Int32Array && t8 === \"int32\" || r instanceof Uint8Array && t8 === \"bool\";\n}\nfunction nc(r, t8) {\n if (t8 === \"string\")\n throw new Error(\"Cannot convert a string[] to a TypedArray\");\n if (Array.isArray(r) && (r = Ps(r)), A().getBool(\"DEBUG\") && tw(r, t8), r4(r, t8))\n return r;\n if (t8 == null || t8 === \"float32\" || t8 === \"complex64\")\n return new Float32Array(r);\n if (t8 === \"int32\")\n return new Int32Array(r);\n if (t8 === \"bool\") {\n let e = new Uint8Array(r.length);\n for (let o = 0; o < e.length; ++o)\n Math.round(r[o]) !== 0 && (e[o] = 1);\n return e;\n } else\n throw new Error(`Unknown data type ${t8}`);\n}\nfunction Wu() {\n return A().platform.now();\n}\nfunction o4(r, t8) {\n return A().platform.fetch(r, t8);\n}\nfunction tu(r, t8 = \"utf-8\") {\n return t8 = t8 || \"utf-8\", A().platform.encode(r, t8);\n}\nfunction sc(r, t8 = \"utf-8\") {\n return t8 = t8 || \"utf-8\", A().platform.decode(r, t8);\n}\nfunction Ot(r) {\n return A().platform.isTypedArray != null ? A().platform.isTypedArray(r) : Qm(r);\n}\nfunction Ps(r, t8 = [], e = false) {\n if (t8 == null && (t8 = []), typeof r == \"boolean\" || typeof r == \"number\" || typeof r == \"string\" || Fu(r) || r == null || Ot(r) && e)\n t8.push(r);\n else if (Array.isArray(r) || Ot(r))\n for (let o = 0; o < r.length; ++o)\n Ps(r[o], t8, e);\n else {\n let o = -1;\n for (let n of Object.keys(r))\n /^([1-9]+[0-9]*|0)$/.test(n) && (o = Math.max(o, Number(n)));\n for (let n = 0; n <= o; n++)\n Ps(r[n], t8, e);\n }\n return t8;\n}\nvar ed = class {\n constructor(t8, e) {\n this.backendTimer = t8, this.logger = e, e == null && (this.logger = new dw());\n }\n profileKernel(t8, e, o) {\n let n, s = () => {\n n = o();\n }, a, i = Wu();\n if (this.backendTimer.timerAvailable())\n a = this.backendTimer.time(s);\n else {\n s();\n for (let u of n)\n u.dataSync();\n a = Promise.resolve({ kernelMs: Wu() - i });\n }\n if (A().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))\n for (let u = 0; u < n.length; u++) {\n let c = n[u];\n c.data().then((l) => {\n n4(l, c.dtype, t8);\n });\n }\n return { kernelName: t8, outputs: n, inputs: e, timeMs: a.then((u) => u.kernelMs), extraInfo: a.then((u) => u.getExtraProfileInfo != null ? u.getExtraProfileInfo() : \"\") };\n }\n logKernelProfile(t8) {\n let { kernelName: e, outputs: o, timeMs: n, inputs: s, extraInfo: a } = t8;\n o.forEach((i) => {\n Promise.all([i.data(), n, a]).then((p) => {\n this.logger.logKernelProfile(e, i, p[0], p[1], s, p[2]);\n });\n });\n }\n};\nfunction n4(r, t8, e) {\n if (t8 !== \"float32\")\n return false;\n for (let o = 0; o < r.length; o++) {\n let n = r[o];\n if (isNaN(n) || !isFinite(n))\n return console.warn(`Found ${n} in the result of '${e}'`), true;\n }\n return false;\n}\nvar dw = class {\n logKernelProfile(t8, e, o, n, s, a) {\n let i = typeof n == \"number\" ? Au(`${n}ms`, 9) : n.error, p = Au(t8, 25), u = e.rank, c = e.size, l = Au(e.shape.toString(), 14), m = \"\";\n for (let d in s) {\n let f = s[d];\n if (f != null) {\n let h = f.shape || e.shape, g = h.length;\n m += `${d}: ${g}D ${g > 0 ? h : \"\"} `;\n }\n }\n console.log(`%c${p}\t%c${i}\t%c${u}D ${l}\t%c${c}\t%c${m}\t%c${a}`, \"font-weight:bold\", \"color:red\", \"color:blue\", \"color: orange\", \"color: green\", \"color: steelblue\");\n }\n};\nfunction H0(r, t8, e) {\n let o = {}, n = {};\n for (let p = 0; p < t8.length; p++)\n o[t8[p].id] = true;\n for (let p = 0; p < r.length; p++) {\n let u = r[p], c = u.inputs;\n for (let l in c) {\n let m = c[l], d = false;\n for (let f = 0; f < t8.length; f++)\n if (o[m.id]) {\n u.outputs.forEach((h) => o[h.id] = true), d = true, n[u.id] = true;\n break;\n }\n if (d)\n break;\n }\n }\n let s = {};\n s[e.id] = true;\n let a = {};\n for (let p = r.length - 1; p >= 0; p--) {\n let u = r[p], c = u.inputs;\n for (let l = 0; l < u.outputs.length; l++)\n if (s[u.outputs[l].id]) {\n for (let m in c)\n s[c[m].id] = true, a[u.id] = true;\n break;\n }\n }\n let i = [];\n for (let p = 0; p < r.length; p++) {\n let u = r[p];\n if (n[u.id] && a[u.id]) {\n let c = {};\n for (let m in u.inputs) {\n let d = u.inputs[m];\n o[d.id] && (c[m] = d);\n }\n let l = Object.assign({}, u);\n l.inputs = c, l.outputs = u.outputs, i.push(l);\n }\n }\n return i;\n}\nfunction K0(r, t8, e, o) {\n for (let n = t8.length - 1; n >= 0; n--) {\n let s = t8[n], a = [];\n if (s.outputs.forEach((p) => {\n let u = r[p.id];\n u != null ? a.push(u) : a.push(null);\n }), s.gradient == null)\n throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);\n let i = s.gradient(a);\n for (let p in s.inputs) {\n if (!(p in i))\n throw new Error(`Cannot backprop through input ${p}. Available gradients found: ${Object.keys(i)}.`);\n let u = e(() => i[p]());\n if (u.dtype !== \"float32\")\n throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${p} must have 'float32' dtype, but has '${u.dtype}'`);\n let c = s.inputs[p];\n if (!Cr(u.shape, c.shape))\n throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${p}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);\n if (r[c.id] == null)\n r[c.id] = u;\n else {\n let l = r[c.id];\n r[c.id] = o(l, u), l.dispose();\n }\n }\n }\n}\nvar q0 = 20;\nvar bl = 3;\nvar fw = 7;\nfunction j0(r, t8, e, o) {\n let n = js(t8), s = s4(r, t8, e, n), a = t8.length, i = td(r, t8, e, n, s), p = [\"Tensor\"];\n return o && (p.push(` dtype: ${e}`), p.push(` rank: ${a}`), p.push(` shape: [${t8}]`), p.push(\" values:\")), p.push(i.map((u) => \" \" + u).join(`\n`)), p.join(`\n`);\n}\nfunction s4(r, t8, e, o) {\n let n = He(t8), s = o[o.length - 1], a = new Array(s).fill(0), i = t8.length, p = e === \"complex64\" ? wl(r) : r;\n if (i > 1)\n for (let u = 0; u < n / s; u++) {\n let c = u * s;\n for (let l = 0; l < s; l++)\n a[l] = Math.max(a[l], Cl(p[c + l], 0, e).length);\n }\n return a;\n}\nfunction Cl(r, t8, e) {\n let o;\n return Array.isArray(r) ? o = `${parseFloat(r[0].toFixed(fw))} + ${parseFloat(r[1].toFixed(fw))}j` : Vo(r) ? o = `'${r}'` : e === \"bool\" ? o = X0(r) : o = parseFloat(r.toFixed(fw)).toString(), Au(o, t8);\n}\nfunction X0(r) {\n return r === 0 ? \"false\" : \"true\";\n}\nfunction td(r, t8, e, o, n, s = true) {\n let a = e === \"complex64\" ? 2 : 1, i = t8[0], p = t8.length;\n if (p === 0) {\n if (e === \"complex64\") {\n let h = wl(r);\n return [Cl(h[0], 0, e)];\n }\n return e === \"bool\" ? [X0(r[0])] : [r[0].toString()];\n }\n if (p === 1) {\n if (i > q0) {\n let g = bl * a, x = Array.from(r.slice(0, g)), b = Array.from(r.slice((i - bl) * a, i * a));\n return e === \"complex64\" && (x = wl(x), b = wl(b)), [\"[\" + x.map((C, S) => Cl(C, n[S], e)).join(\", \") + \", ..., \" + b.map((C, S) => Cl(C, n[i - bl + S], e)).join(\", \") + \"]\"];\n }\n return [\"[\" + (e === \"complex64\" ? wl(r) : Array.from(r)).map((g, x) => Cl(g, n[x], e)).join(\", \") + \"]\"];\n }\n let u = t8.slice(1), c = o.slice(1), l = o[0] * a, m = [];\n if (i > q0) {\n for (let h = 0; h < bl; h++) {\n let g = h * l, x = g + l;\n m.push(...td(r.slice(g, x), u, e, c, n, false));\n }\n m.push(\"...\");\n for (let h = i - bl; h < i; h++) {\n let g = h * l, x = g + l;\n m.push(...td(r.slice(g, x), u, e, c, n, h === i - 1));\n }\n } else\n for (let h = 0; h < i; h++) {\n let g = h * l, x = g + l;\n m.push(...td(r.slice(g, x), u, e, c, n, h === i - 1));\n }\n let d = p === 2 ? \",\" : \"\";\n m[0] = \"[\" + (i > 0 ? m[0] + d : \"\");\n for (let h = 1; h < m.length - 1; h++)\n m[h] = \" \" + m[h] + d;\n let f = `,\n`;\n for (let h = 2; h < p; h++)\n f += `\n`;\n return m[m.length - 1] = \" \" + m[m.length - 1] + \"]\" + (s ? \"\" : f), m;\n}\nfunction wl(r) {\n let t8 = [];\n for (let e = 0; e < r.length; e += 2)\n t8.push([r[e], r[e + 1]]);\n return t8;\n}\nvar tt = class {\n constructor(t8, e, o) {\n if (this.dtype = e, this.shape = t8.slice(), this.size = He(t8), o != null) {\n let n = o.length;\n $(n === this.size, () => `Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`);\n }\n if (e === \"complex64\")\n throw new Error(\"complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).\");\n this.values = o || Xm(e, this.size), this.strides = js(t8);\n }\n set(t8, ...e) {\n e.length === 0 && (e = [0]), $(e.length === this.rank, () => `The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);\n let o = this.locToIndex(e);\n this.values[o] = t8;\n }\n get(...t8) {\n t8.length === 0 && (t8 = [0]);\n let e = 0;\n for (let n of t8) {\n if (n < 0 || n >= this.shape[e]) {\n let s = `Requested out of range element at ${t8}. Buffer shape=${this.shape}`;\n throw new Error(s);\n }\n e++;\n }\n let o = t8[t8.length - 1];\n for (let n = 0; n < t8.length - 1; ++n)\n o += this.strides[n] * t8[n];\n return this.values[o];\n }\n locToIndex(t8) {\n if (this.rank === 0)\n return 0;\n if (this.rank === 1)\n return t8[0];\n let e = t8[t8.length - 1];\n for (let o = 0; o < t8.length - 1; ++o)\n e += this.strides[o] * t8[o];\n return e;\n }\n indexToLoc(t8) {\n if (this.rank === 0)\n return [];\n if (this.rank === 1)\n return [t8];\n let e = new Array(this.shape.length);\n for (let o = 0; o < e.length - 1; ++o)\n e[o] = Math.floor(t8 / this.strides[o]), t8 -= e[o] * this.strides[o];\n return e[e.length - 1] = t8, e;\n }\n get rank() {\n return this.shape.length;\n }\n toTensor() {\n return Os().makeTensor(this.values, this.shape, this.dtype);\n }\n};\nvar Os = null;\nvar ac = null;\nvar a4 = null;\nfunction Y0(r) {\n Os = r;\n}\nfunction Q0(r) {\n ac = r;\n}\nfunction Z0(r) {\n a4 = r;\n}\nvar ut = class {\n constructor(t8, e, o, n) {\n this.kept = false, this.isDisposedInternal = false, this.shape = t8.slice(), this.dtype = e || \"float32\", this.size = He(t8), this.strides = js(t8), this.dataId = o, this.id = n, this.rankType = this.rank < 5 ? this.rank.toString() : \"higher\";\n }\n get rank() {\n return this.shape.length;\n }\n async buffer() {\n let t8 = await this.data();\n return ac.buffer(this.shape, this.dtype, t8);\n }\n bufferSync() {\n return ac.buffer(this.shape, this.dtype, this.dataSync());\n }\n async array() {\n let t8 = await this.data();\n return Du(this.shape, t8, this.dtype === \"complex64\");\n }\n arraySync() {\n return Du(this.shape, this.dataSync(), this.dtype === \"complex64\");\n }\n async data() {\n this.throwIfDisposed();\n let t8 = Os().read(this.dataId);\n if (this.dtype === \"string\") {\n let e = await t8;\n try {\n return e.map((o) => sc(o));\n } catch (o) {\n throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\");\n }\n }\n return t8;\n }\n dataToGPU(t8) {\n return this.throwIfDisposed(), Os().readToGPU(this.dataId, t8);\n }\n dataSync() {\n this.throwIfDisposed();\n let t8 = Os().readSync(this.dataId);\n if (this.dtype === \"string\")\n try {\n return t8.map((e) => sc(e));\n } catch (e) {\n throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\");\n }\n return t8;\n }\n async bytes() {\n this.throwIfDisposed();\n let t8 = await Os().read(this.dataId);\n return this.dtype === \"string\" ? t8 : new Uint8Array(t8.buffer);\n }\n dispose() {\n this.isDisposed || (this.kerasMask && this.kerasMask.dispose(), Os().disposeTensor(this), this.isDisposedInternal = true);\n }\n get isDisposed() {\n return this.isDisposedInternal;\n }\n throwIfDisposed() {\n if (this.isDisposed)\n throw new Error(\"Tensor is disposed.\");\n }\n print(t8 = false) {\n return ac.print(this, t8);\n }\n clone() {\n return this.throwIfDisposed(), ac.clone(this);\n }\n toString(t8 = false) {\n let e = this.dataSync();\n return j0(e, this.shape, this.dtype, t8);\n }\n cast(t8) {\n return this.throwIfDisposed(), ac.cast(this, t8);\n }\n variable(t8 = true, e, o) {\n return this.throwIfDisposed(), Os().makeVariable(this, t8, e, o);\n }\n};\nObject.defineProperty(ut, Symbol.hasInstance, { value: (r) => !!r && r.data != null && r.dataSync != null && r.throwIfDisposed != null });\nfunction i4() {\n return gl(\"Tensor\", () => ut);\n}\ni4();\nvar oi = class extends ut {\n constructor(t8, e, o, n) {\n super(t8.shape, t8.dtype, t8.dataId, n), this.trainable = e, this.name = o;\n }\n assign(t8) {\n if (t8.dtype !== this.dtype)\n throw new Error(`dtype of the new value (${t8.dtype}) and previous value (${this.dtype}) must match`);\n if (!Cr(t8.shape, this.shape))\n throw new Error(`shape of the new value (${t8.shape}) and previous value (${this.shape}) must match`);\n Os().disposeTensor(this), this.dataId = t8.dataId, Os().incRef(this, null);\n }\n dispose() {\n Os().disposeVariable(this), this.isDisposedInternal = true;\n }\n};\nObject.defineProperty(oi, Symbol.hasInstance, { value: (r) => r instanceof ut && r.assign != null && r.assign instanceof Function });\nvar ek = {};\nqe(ek, { assertTypesMatch: () => Cw, getTensorsInContainer: () => Sl, isTensorInList: () => p4, makeTypesMatch: () => Oe });\nvar hw;\n(function(r) {\n r.R0 = \"R0\", r.R1 = \"R1\", r.R2 = \"R2\", r.R3 = \"R3\", r.R4 = \"R4\", r.R5 = \"R5\", r.R6 = \"R6\";\n})(hw || (hw = {}));\nvar gw;\n(function(r) {\n r.float32 = \"float32\", r.int32 = \"int32\", r.bool = \"int32\", r.complex64 = \"complex64\";\n})(gw || (gw = {}));\nvar xw;\n(function(r) {\n r.float32 = \"float32\", r.int32 = \"int32\", r.bool = \"bool\", r.complex64 = \"complex64\";\n})(xw || (xw = {}));\nvar yw;\n(function(r) {\n r.float32 = \"float32\", r.int32 = \"float32\", r.bool = \"float32\", r.complex64 = \"complex64\";\n})(yw || (yw = {}));\nvar bw;\n(function(r) {\n r.float32 = \"complex64\", r.int32 = \"complex64\", r.bool = \"complex64\", r.complex64 = \"complex64\";\n})(bw || (bw = {}));\nvar u4 = { float32: yw, int32: gw, bool: xw, complex64: bw };\nfunction dt(r, t8) {\n if (r === \"string\" || t8 === \"string\") {\n if (r === \"string\" && t8 === \"string\")\n return \"string\";\n throw new Error(`Can not upcast ${r} with ${t8}`);\n }\n return u4[r][t8];\n}\nfunction ni(r) {\n return dt(r, \"int32\");\n}\nfunction rd(r) {\n return r != null && typeof r == \"object\" && \"texture\" in r && r.texture instanceof WebGLTexture;\n}\nfunction od(r) {\n return typeof GPUBuffer != \"undefined\" && r != null && typeof r == \"object\" && \"buffer\" in r && r.buffer instanceof GPUBuffer;\n}\nfunction Oe(r, t8) {\n if (r.dtype === t8.dtype)\n return [r, t8];\n let e = dt(r.dtype, t8.dtype);\n return [r.cast(e), t8.cast(e)];\n}\nfunction Cw(r, t8) {\n $(r.dtype === t8.dtype, () => `The dtypes of the first(${r.dtype}) and second(${t8.dtype}) input must match`);\n}\nfunction p4(r, t8) {\n return t8.some((e) => e.id === r.id);\n}\nfunction Sl(r) {\n let t8 = [];\n return J0(r, t8, /* @__PURE__ */ new Set()), t8;\n}\nfunction J0(r, t8, e) {\n if (r == null)\n return;\n if (r instanceof ut) {\n t8.push(r);\n return;\n }\n if (!c4(r))\n return;\n let o = r;\n for (let n in o) {\n let s = o[n];\n e.has(s) || (e.add(s), J0(s, t8, e));\n }\n}\nfunction c4(r) {\n return Array.isArray(r) || typeof r == \"object\";\n}\nfunction ww(r) {\n return r.kernelName != null;\n}\nvar nd = class {\n constructor() {\n this.registeredVariables = {}, this.nextTapeNodeId = 0, this.numBytes = 0, this.numTensors = 0, this.numStringTensors = 0, this.numDataBuffers = 0, this.gradientDepth = 0, this.kernelDepth = 0, this.scopeStack = [], this.numDataMovesStack = [], this.nextScopeId = 0, this.tensorInfo = /* @__PURE__ */ new WeakMap(), this.profiling = false, this.activeProfile = { newBytes: 0, newTensors: 0, peakBytes: 0, kernels: [], result: null, get kernelNames() {\n return Array.from(new Set(this.kernels.map((t8) => t8.name)));\n } };\n }\n dispose() {\n for (let t8 in this.registeredVariables)\n this.registeredVariables[t8].dispose();\n }\n};\nvar ru = class {\n constructor(t8) {\n this.ENV = t8, this.registry = {}, this.registryFactory = {}, this.pendingBackendInitId = 0, this.state = new nd();\n }\n async ready() {\n if (this.pendingBackendInit != null)\n return this.pendingBackendInit.then(() => {\n });\n if (this.backendInstance != null)\n return;\n let t8 = this.getSortedBackends();\n for (let e = 0; e < t8.length; e++) {\n let o = t8[e];\n if (await this.initializeBackend(o).success) {\n await this.setBackend(o);\n return;\n }\n }\n throw new Error(\"Could not initialize any backends, all backend initializations failed.\");\n }\n get backend() {\n if (this.pendingBackendInit != null)\n throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);\n if (this.backendInstance == null) {\n let { name: t8, asyncInit: e } = this.initializeBackendsAndReturnBest();\n if (e)\n throw new Error(`The highest priority backend '${t8}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);\n this.setBackend(t8);\n }\n return this.backendInstance;\n }\n backendNames() {\n return Object.keys(this.registryFactory);\n }\n findBackend(t8) {\n if (!(t8 in this.registry))\n if (t8 in this.registryFactory) {\n let { asyncInit: e } = this.initializeBackend(t8);\n if (e)\n return null;\n } else\n return null;\n return this.registry[t8];\n }\n findBackendFactory(t8) {\n return t8 in this.registryFactory ? this.registryFactory[t8].factory : null;\n }\n registerBackend(t8, e, o = 1) {\n return t8 in this.registryFactory ? (Ia(`${t8} backend was already registered. Reusing existing backend factory.`), false) : (this.registryFactory[t8] = { factory: e, priority: o }, true);\n }\n async setBackend(t8) {\n if (this.registryFactory[t8] == null)\n throw new Error(`Backend name '${t8}' not found in registry`);\n if (this.backendName = t8, this.registry[t8] == null) {\n this.backendInstance = null;\n let { success: e, asyncInit: o } = this.initializeBackend(t8);\n if (!(o ? await e : e))\n return false;\n }\n return this.backendInstance = this.registry[t8], this.setupRegisteredKernels(), this.profiler = new ed(this.backendInstance), true;\n }\n setupRegisteredKernels() {\n Ym(this.backendName).forEach((e) => {\n e.setupFunc != null && e.setupFunc(this.backendInstance);\n });\n }\n disposeRegisteredKernels(t8) {\n Ym(t8).forEach((o) => {\n o.disposeFunc != null && o.disposeFunc(this.registry[t8]);\n });\n }\n initializeBackend(t8) {\n let e = this.registryFactory[t8];\n if (e == null)\n throw new Error(`Cannot initialize backend ${t8}, no registration found.`);\n try {\n let o = e.factory();\n if (o && !(o instanceof ao) && typeof o.then == \"function\") {\n let n = ++this.pendingBackendInitId, s = o.then((a) => n < this.pendingBackendInitId ? false : (this.registry[t8] = a, this.pendingBackendInit = null, true)).catch((a) => (n < this.pendingBackendInitId || (this.pendingBackendInit = null, Ia(`Initialization of backend ${t8} failed`), Ia(a.stack || a.message)), false));\n return this.pendingBackendInit = s, { success: s, asyncInit: true };\n } else\n return this.registry[t8] = o, { success: true, asyncInit: false };\n } catch (o) {\n return Ia(`Initialization of backend ${t8} failed`), Ia(o.stack || o.message), { success: false, asyncInit: false };\n }\n }\n removeBackend(t8) {\n if (!(t8 in this.registryFactory))\n throw new Error(`${t8} backend not found in registry`);\n this.backendName === t8 && this.pendingBackendInit != null && this.pendingBackendInitId++, t8 in this.registry && (this.disposeRegisteredKernels(t8), this.registry[t8].dispose(), delete this.registry[t8]), delete this.registryFactory[t8], this.backendName === t8 && (this.pendingBackendInit = null, this.backendName = null, this.backendInstance = null);\n }\n getSortedBackends() {\n if (Object.keys(this.registryFactory).length === 0)\n throw new Error(\"No backend found in registry.\");\n return Object.keys(this.registryFactory).sort((t8, e) => this.registryFactory[e].priority - this.registryFactory[t8].priority);\n }\n initializeBackendsAndReturnBest() {\n let t8 = this.getSortedBackends();\n for (let e = 0; e < t8.length; e++) {\n let o = t8[e], { success: n, asyncInit: s } = this.initializeBackend(o);\n if (s || n)\n return { name: o, asyncInit: s };\n }\n throw new Error(\"Could not initialize any backends, all backend initializations failed.\");\n }\n moveData(t8, e) {\n let o = this.state.tensorInfo.get(e), n = o.backend, s = this.readSync(e), a = n.refCount(e);\n n.disposeData(e, true), o.backend = t8, t8.move(e, s, o.shape, o.dtype, a), this.shouldCheckForMemLeaks() && this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n tidy(t8, e) {\n let o = null;\n if (e == null) {\n if (typeof t8 != \"function\")\n throw new Error(\"Please provide a function to tidy()\");\n e = t8;\n } else {\n if (typeof t8 != \"string\" && !(t8 instanceof String))\n throw new Error(\"When calling with two arguments, the first argument to tidy() must be a string\");\n if (typeof e != \"function\")\n throw new Error(\"When calling with two arguments, the 2nd argument to tidy() must be a function\");\n o = t8;\n }\n let n;\n return this.scopedRun(() => this.startScope(o), () => this.endScope(n), () => (n = e(), n instanceof Promise && console.error(\"Cannot return a Promise inside of tidy.\"), n));\n }\n scopedRun(t8, e, o) {\n t8();\n try {\n let n = o();\n return e(), n;\n } catch (n) {\n throw e(), n;\n }\n }\n nextTensorId() {\n return ru.nextTensorId++;\n }\n nextVariableId() {\n return ru.nextVariableId++;\n }\n clone(t8) {\n let e = T.runKernel(wo, { x: t8 }), o = { x: t8 }, n = (a) => ({ x: () => {\n let i = \"float32\", p = { x: a }, u = { dtype: i };\n return T.runKernel(bo, p, u);\n } }), s = [];\n return this.addTapeNode(this.state.activeScope.name, o, [e], n, s, {}), e;\n }\n runKernel(t8, e, o) {\n if (this.backendName == null && this.backend, !(tc(t8, this.backendName) != null))\n throw new Error(`Kernel '${t8}' not registered for backend '${this.backendName}'`);\n return this.runKernelFunc({ kernelName: t8, inputs: e, attrs: o });\n }\n shouldCheckForMemLeaks() {\n return this.ENV.getBool(\"IS_TEST\");\n }\n checkKernelForMemLeak(t8, e, o) {\n let n = this.backend.numDataIds(), s = 0;\n o.forEach((p) => {\n s += p.dtype === \"complex64\" ? 3 : 1;\n });\n let a = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1], i = n - e - s - a;\n if (i > 0)\n throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${t8}'`);\n }\n runKernelFunc(t8) {\n let e, o = [], n = this.isTapeOn(), s = this.state.numBytes, a = this.state.numTensors;\n this.shouldCheckForMemLeaks() && this.state.numDataMovesStack.push(0);\n let i;\n this.backendName == null && this.backend;\n let p, u = ww(t8) ? t8.kernelName : this.state.activeScope != null ? this.state.activeScope.name : \"\";\n if (ww(t8)) {\n let { kernelName: f, inputs: h, attrs: g } = t8;\n this.backendName == null && this.backend;\n let x = tc(f, this.backendName);\n $(x != null, () => `Cannot find registered kernel '${f}' for backend '${this.backendName}'`), i = () => {\n let b = this.backend.numDataIds();\n p = x.kernelFunc({ inputs: h, attrs: g, backend: this.backend });\n let C = Array.isArray(p) ? p : [p];\n this.shouldCheckForMemLeaks() && this.checkKernelForMemLeak(f, b, C);\n let S = C.map((k) => k.rank != null ? k : this.makeTensorFromTensorInfo(k));\n if (n) {\n let k = this.getTensorsForGradient(f, h, S);\n o = this.saveTensorsForBackwardMode(k);\n }\n return S;\n };\n } else {\n let { forwardFunc: f } = t8, h = (g) => {\n n && (o = g.map((x) => this.keep(this.clone(x))));\n };\n i = () => {\n let g = this.backend.numDataIds();\n p = this.tidy(() => f(this.backend, h));\n let x = Array.isArray(p) ? p : [p];\n return this.shouldCheckForMemLeaks() && this.checkKernelForMemLeak(u, g, x), x;\n };\n }\n let { inputs: c, attrs: l } = t8, m = ww(t8) ? null : t8.backwardsFunc, d;\n return this.scopedRun(() => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n !this.ENV.getBool(\"DEBUG\") && !this.state.profiling ? e = i() : (d = this.profiler.profileKernel(u, c, () => i()), this.ENV.getBool(\"DEBUG\") && this.profiler.logKernelProfile(d), e = d.outputs);\n }), n && this.addTapeNode(u, c, e, m, o, l), this.state.profiling && this.state.activeProfile.kernels.push({ name: u, bytesAdded: this.state.numBytes - s, totalBytesSnapshot: this.state.numBytes, tensorsAdded: this.state.numTensors - a, totalTensorsSnapshot: this.state.numTensors, inputShapes: Object.keys(c).map((f) => c[f] != null ? c[f].shape : null), outputShapes: e.map((f) => f.shape), kernelTimeMs: d.timeMs, extraInfo: d.extraInfo }), Array.isArray(p) ? e : e[0];\n }\n saveTensorsForBackwardMode(t8) {\n return t8.map((o) => this.keep(this.clone(o)));\n }\n getTensorsForGradient(t8, e, o) {\n let n = iw(t8);\n if (n != null) {\n let s = n.inputsToSave || [], a = n.outputsToSave || [], i;\n n.saveAllInputs ? ($(Array.isArray(e), () => \"saveAllInputs is true, expected inputs to be an array.\"), i = Object.keys(e).map((u) => e[u])) : i = s.map((u) => e[u]);\n let p = o.filter((u, c) => a[c]);\n return i.concat(p);\n }\n return [];\n }\n makeTensor(t8, e, o, n) {\n if (t8 == null)\n throw new Error(\"Values passed to engine.makeTensor() are null\");\n o = o || \"float32\", n = n || this.backend;\n let s = t8;\n o === \"string\" && Vo(t8[0]) && (s = t8.map((p) => tu(p)));\n let a = n.write(s, e, o), i = new ut(e, o, a, this.nextTensorId());\n if (this.trackTensor(i, n), o === \"string\") {\n let p = this.state.tensorInfo.get(a), u = ow(s);\n this.state.numBytes += u - p.bytes, p.bytes = u;\n }\n return i;\n }\n makeTensorFromDataId(t8, e, o, n) {\n o = o || \"float32\";\n let s = { dataId: t8, shape: e, dtype: o };\n return this.makeTensorFromTensorInfo(s, n);\n }\n makeTensorFromTensorInfo(t8, e) {\n let { dataId: o, shape: n, dtype: s } = t8, a = new ut(n, s, o, this.nextTensorId());\n return this.trackTensor(a, e), a;\n }\n makeVariable(t8, e = true, o, n) {\n o = o || this.nextVariableId().toString(), n != null && n !== t8.dtype && (t8 = t8.cast(n));\n let s = new oi(t8, e, o, this.nextTensorId());\n if (this.state.registeredVariables[s.name] != null)\n throw new Error(`Variable with name ${s.name} was already registered`);\n return this.state.registeredVariables[s.name] = s, this.incRef(s, this.backend), s;\n }\n trackTensor(t8, e) {\n this.state.numTensors++, t8.dtype === \"string\" && this.state.numStringTensors++;\n let o = 0;\n t8.dtype !== \"complex64\" && t8.dtype !== \"string\" && (o = t8.size * jp(t8.dtype)), this.state.numBytes += o, this.state.tensorInfo.has(t8.dataId) || (this.state.numDataBuffers++, this.state.tensorInfo.set(t8.dataId, { backend: e || this.backend, dtype: t8.dtype, shape: t8.shape, bytes: o })), t8 instanceof oi || this.track(t8);\n }\n incRef(t8, e) {\n this.trackTensor(t8, e), this.backend.incRef(t8.dataId);\n }\n removeDataId(t8, e) {\n this.state.tensorInfo.has(t8) && this.state.tensorInfo.get(t8).backend === e && (this.state.tensorInfo.delete(t8), this.state.numDataBuffers--);\n }\n disposeTensor(t8) {\n if (!this.state.tensorInfo.has(t8.dataId))\n return;\n let e = this.state.tensorInfo.get(t8.dataId);\n if (this.state.numTensors--, t8.dtype === \"string\" && (this.state.numStringTensors--, this.state.numBytes -= e.bytes), t8.dtype !== \"complex64\" && t8.dtype !== \"string\") {\n let o = t8.size * jp(t8.dtype);\n this.state.numBytes -= o;\n }\n e.backend.disposeData(t8.dataId) && this.removeDataId(t8.dataId, e.backend);\n }\n disposeVariables() {\n for (let t8 in this.state.registeredVariables) {\n let e = this.state.registeredVariables[t8];\n this.disposeVariable(e);\n }\n }\n disposeVariable(t8) {\n this.disposeTensor(t8), this.state.registeredVariables[t8.name] != null && delete this.state.registeredVariables[t8.name];\n }\n memory() {\n let t8 = this.backend.memory();\n return t8.numTensors = this.state.numTensors, t8.numDataBuffers = this.state.numDataBuffers, t8.numBytes = this.state.numBytes, this.state.numStringTensors > 0 && (t8.unreliable = true, t8.reasons == null && (t8.reasons = []), t8.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")), t8;\n }\n async profile(t8) {\n this.state.profiling = true;\n let e = this.state.numBytes, o = this.state.numTensors;\n this.state.activeProfile.kernels = [], this.state.activeProfile.result = await t8(), this.state.profiling = false, this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map((n) => n.totalBytesSnapshot)), this.state.activeProfile.newBytes = this.state.numBytes - e, this.state.activeProfile.newTensors = this.state.numTensors - o;\n for (let n of this.state.activeProfile.kernels)\n n.kernelTimeMs = await n.kernelTimeMs, n.extraInfo = await n.extraInfo;\n return this.state.activeProfile;\n }\n isTapeOn() {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n addTapeNode(t8, e, o, n, s, a) {\n let i = { id: this.state.nextTapeNodeId++, kernelName: t8, inputs: e, outputs: o, saved: s }, p = iw(t8);\n p != null && (n = p.gradFunc), n != null && (i.gradient = (u) => (u = u.map((c, l) => {\n if (c == null) {\n let m = o[l], d = Yp(m.size, m.dtype);\n return this.makeTensor(d, m.shape, m.dtype);\n }\n return c;\n }), n(u.length > 1 ? u : u[0], s, a))), this.state.activeTape.push(i);\n }\n keep(t8) {\n return t8.kept = true, t8;\n }\n startTape() {\n this.state.gradientDepth === 0 && (this.state.activeTape = []), this.state.gradientDepth++;\n }\n endTape() {\n this.state.gradientDepth--;\n }\n startScope(t8) {\n let e = { track: [], name: \"unnamed scope\", id: this.state.nextScopeId++ };\n t8 && (e.name = t8), this.state.scopeStack.push(e), this.state.activeScope = e;\n }\n endScope(t8) {\n let e = Sl(t8), o = new Set(e.map((s) => s.id));\n for (let s = 0; s < this.state.activeScope.track.length; s++) {\n let a = this.state.activeScope.track[s];\n !a.kept && !o.has(a.id) && a.dispose();\n }\n let n = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ? null : this.state.scopeStack[this.state.scopeStack.length - 1], e.forEach((s) => {\n !s.kept && s.scopeId === n.id && this.track(s);\n });\n }\n gradients(t8, e, o, n = false) {\n if ($(e.length > 0, () => \"gradients() received an empty list of xs.\"), o != null && o.dtype !== \"float32\")\n throw new Error(`dy must have 'float32' dtype, but has '${o.dtype}'`);\n let s = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy(\"forward\", t8));\n $(s instanceof ut, () => \"The result y returned by f() must be a tensor.\");\n let a = H0(this.state.activeTape, e, s);\n if (!n && a.length === 0 && e.length > 0)\n throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.\");\n return this.tidy(\"backward\", () => {\n let i = {};\n i[s.id] = o == null ? l4(s.shape) : o, K0(i, a, (u) => this.tidy(u), m4);\n let p = e.map((u) => i[u.id]);\n return this.state.gradientDepth === 0 && (this.state.activeTape.forEach((u) => {\n for (let c of u.saved)\n c.dispose();\n }), this.state.activeTape = null), { value: s, grads: p };\n });\n }\n customGrad(t8) {\n return $(qs(t8), () => \"The f passed in customGrad(f) must be a function.\"), (...e) => {\n $(e.every((i) => i instanceof ut), () => \"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");\n let o, n = {};\n e.forEach((i, p) => {\n n[p] = i;\n });\n let s = (i, p) => (o = t8(...e, p), $(o.value instanceof ut, () => \"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"), $(qs(o.gradFunc), () => \"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"), o.value), a = (i, p) => {\n let u = o.gradFunc(i, p), c = Array.isArray(u) ? u : [u];\n $(c.length === e.length, () => \"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).\"), $(c.every((m) => m instanceof ut), () => \"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.\");\n let l = {};\n return c.forEach((m, d) => {\n l[d] = () => m;\n }), l;\n };\n return this.runKernelFunc({ forwardFunc: s, backwardsFunc: a, inputs: n });\n };\n }\n readSync(t8) {\n return this.state.tensorInfo.get(t8).backend.readSync(t8);\n }\n read(t8) {\n return this.state.tensorInfo.get(t8).backend.read(t8);\n }\n readToGPU(t8, e) {\n return this.state.tensorInfo.get(t8).backend.readToGPU(t8, e);\n }\n async time(t8) {\n let e = Wu(), o = await this.backend.time(t8);\n return o.wallMs = Wu() - e, o;\n }\n track(t8) {\n return this.state.activeScope != null && (t8.scopeId = this.state.activeScope.id, this.state.activeScope.track.push(t8)), t8;\n }\n get registeredVariables() {\n return this.state.registeredVariables;\n }\n reset() {\n this.pendingBackendInitId++, this.state.dispose(), this.ENV.reset(), this.state = new nd();\n for (let t8 in this.registry)\n this.disposeRegisteredKernels(t8), this.registry[t8].dispose(), delete this.registry[t8];\n this.backendName = null, this.backendInstance = null, this.pendingBackendInit = null;\n }\n};\nru.nextTensorId = 0;\nru.nextVariableId = 0;\nfunction l4(r) {\n let t8 = fl(He(r), \"float32\");\n return T.makeTensor(t8, r, \"float32\");\n}\nfunction Sw() {\n let r = aw();\n if (r._tfengine == null) {\n let t8 = new hl(r);\n r._tfengine = new ru(t8);\n }\n return _0(r._tfengine.ENV), Y0(() => r._tfengine), r._tfengine;\n}\nvar T = Sw();\nfunction m4(r, t8) {\n let e = { a: r, b: t8 };\n return T.runKernel(uo, e);\n}\nvar ou = {};\nqe(ou, { isBrowser: () => vw, isMobile: () => h4, mockIsMobile: () => f4 });\nfunction d4() {\n return typeof navigator != \"undefined\" && navigator != null;\n}\nvar Iw;\nfunction f4(r) {\n Iw = r;\n}\nfunction h4(r) {\n if (Iw !== void 0)\n return Iw;\n if (r || d4()) {\n if (r || (r = navigator), r.product === \"ReactNative\")\n return true;\n let t8 = r.userAgent || r.vendor || (typeof window != \"undefined\" ? window.opera : \"\");\n if (!t8) {\n let e = r;\n return e.userAgentData && e.userAgentData.mobile;\n }\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t8) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t8.substr(0, 4));\n }\n return false;\n}\nfunction vw() {\n return typeof window != \"undefined\" && window.document != null || typeof WorkerGlobalScope != \"undefined\";\n}\nvar $r = A();\n$r.registerFlag(\"DEBUG\", () => false, (r) => {\n r && console.warn(\"Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.\");\n});\n$r.registerFlag(\"IS_BROWSER\", () => vw());\n$r.registerFlag(\"IS_NODE\", () => typeof process != \"undefined\" && typeof process.versions != \"undefined\" && typeof process.versions.node != \"undefined\");\n$r.registerFlag(\"IS_CHROME\", () => typeof navigator != \"undefined\" && navigator != null && navigator.userAgent != null && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n$r.registerFlag(\"IS_SAFARI\", () => typeof navigator != \"undefined\" && navigator != null && navigator.userAgent != null && /Safari/.test(navigator.userAgent) && /Apple/.test(navigator.vendor));\n$r.registerFlag(\"PROD\", () => false);\n$r.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\", () => $r.getBool(\"DEBUG\"));\n$r.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\", () => true);\n$r.registerFlag(\"IS_TEST\", () => false);\n$r.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\", () => $r.getBool(\"DEBUG\"));\n$r.registerFlag(\"WRAP_TO_IMAGEBITMAP\", () => false);\n$r.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\", () => false);\n$r.registerFlag(\"USE_SETTIMEOUTCUSTOM\", () => false);\nfunction ir(r, t8) {\n let e = r;\n if (Ot(r))\n return t8 === \"string\" ? [] : [r.length];\n if (rd(r)) {\n let n = r.channels || \"RGBA\";\n return [r.height, r.width * n.length];\n } else if (od(r))\n return [r.buffer.size / (t8 == null ? 4 : jp(t8))];\n if (!Array.isArray(r))\n return [];\n let o = [];\n for (; Array.isArray(e) || Ot(e) && t8 !== \"string\"; )\n o.push(e.length), e = e[0];\n return Array.isArray(r) && A().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\") && rk(r, o, []), o;\n}\nfunction rk(r, t8, e) {\n if (e = e || [], !Array.isArray(r) && !Ot(r)) {\n $(t8.length === 0, () => `Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t8[0]} elements`);\n return;\n }\n $(t8.length > 0, () => `Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`), $(r.length === t8[0], () => `Element arr[${e.join(\"][\")}] should have ${t8[0]} elements, but has ${r.length} elements`);\n let o = t8.slice(1);\n for (let n = 0; n < r.length; ++n)\n rk(r[n], o, e.concat(n));\n}\nfunction tk(r, t8, e, o) {\n if (r !== \"string_or_numeric\") {\n if (r == null)\n throw new Error(\"Expected dtype cannot be null.\");\n if (r !== \"numeric\" && r !== t8 || r === \"numeric\" && t8 === \"string\")\n throw new Error(`Argument '${e}' passed to '${o}' must be ${r} tensor, but got ${t8} tensor`);\n }\n}\nfunction v(r, t8, e, o = \"numeric\") {\n if (r instanceof ut)\n return tk(o, r.dtype, t8, e), r;\n let n = Ri(r);\n if (n !== \"string\" && [\"bool\", \"int32\", \"float32\"].indexOf(o) >= 0 && (n = o), tk(o, n, t8, e), r == null || !Ot(r) && !Array.isArray(r) && typeof r != \"number\" && typeof r != \"boolean\" && typeof r != \"string\") {\n let p = r == null ? \"null\" : r.constructor.name;\n throw new Error(`Argument '${t8}' passed to '${e}' must be a Tensor or TensorLike, but got '${p}'`);\n }\n let s = ir(r, n);\n !Ot(r) && !Array.isArray(r) && (r = [r]);\n let i = n !== \"string\" ? nc(r, n) : Ps(r, [], true);\n return T.makeTensor(i, s, n);\n}\nfunction si(r, t8, e, o = \"numeric\") {\n if (!Array.isArray(r))\n throw new Error(`Argument ${t8} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);\n return r.map((s, a) => v(s, `${t8}[${a}]`, e, o));\n}\nvar kw = \"__op\";\nfunction N(r) {\n let t8 = Object.keys(r);\n if (t8.length !== 1)\n throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t8.length} keys.`);\n let e = t8[0], o = r[e];\n e.endsWith(\"_\") && (e = e.substring(0, e.length - 1)), e = e + kw;\n let n = (...s) => {\n T.startScope(e);\n try {\n let a = o(...s);\n return Fu(a) && console.error(\"Cannot return a Promise inside of tidy.\"), T.endScope(a), a;\n } catch (a) {\n throw T.endScope(null), a;\n }\n };\n return Object.defineProperty(n, \"name\", { value: e, configurable: true }), n;\n}\nfunction g4(r, t8) {\n let e = v(r, \"real\", \"complex\"), o = v(t8, \"imag\", \"complex\");\n yt(e.shape, o.shape, `real and imag shapes, ${e.shape} and ${o.shape}, must match in call to tf.complex().`);\n let n = { real: e, imag: o };\n return T.runKernel(Fi, n);\n}\nvar Er = N({ complex_: g4 });\nfunction Sr(r, t8, e, o) {\n if (o == null)\n o = Ri(r);\n else if (o === \"complex64\")\n throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");\n if (od(r) || rd(r)) {\n if (o !== \"float32\" && o !== \"int32\")\n throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${o}.`);\n return T.backend.createTensorFromGPUData(r, t8 || e, o);\n }\n if (!Ot(r) && !Array.isArray(r) && typeof r != \"number\" && typeof r != \"boolean\" && typeof r != \"string\")\n throw new Error(\"values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray\");\n if (t8 != null) {\n wt(t8);\n let n = He(t8), s = He(e);\n $(n === s, () => `Based on the provided shape, [${t8}], the tensor should have ${n} values but has ${s}`);\n for (let a = 0; a < e.length; ++a) {\n let i = e[a], p = a === e.length - 1 ? i !== He(t8.slice(a)) : true;\n $(e[a] === t8[a] || !p, () => `Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t8}). `);\n }\n }\n return !Ot(r) && !Array.isArray(r) && (r = [r]), t8 = t8 || e, r = o !== \"string\" ? nc(r, o) : Ps(r, [], true), T.makeTensor(r, t8, o);\n}\nfunction ur(r, t8, e) {\n let o = ir(r, e);\n return Sr(r, t8, o, e);\n}\nvar Il = { float32: 4, float16: 2, int32: 4, uint16: 2, uint8: 1, bool: 1, complex64: 8 };\nvar jt = class {\n static join(t8) {\n return new jt(t8).slice();\n }\n constructor(t8) {\n if (this.shards = [], this.previousShardIndex = 0, t8 == null || (t8 instanceof Array || (t8 = [t8]), t8 = t8.map((o) => Ot(o) ? o.buffer : o), t8.length === 0))\n return;\n this.bufferUniformSize = t8[0].byteLength;\n let e = 0;\n for (let o = 0; o < t8.length; o++) {\n let n = t8[o];\n o !== t8.length - 1 && n.byteLength !== this.bufferUniformSize && (this.bufferUniformSize = void 0);\n let s = e + n.byteLength;\n this.shards.push({ buffer: n, start: e, end: s }), e = s;\n }\n this.shards.length === 0 && (this.byteLength = 0), this.byteLength = this.shards[this.shards.length - 1].end;\n }\n slice(t8 = 0, e = this.byteLength) {\n if (this.shards.length === 0)\n return new ArrayBuffer(0);\n if (t8 = isNaN(Number(t8)) ? 0 : t8, e = isNaN(Number(e)) ? 0 : e, t8 = Math.max(0, t8), e = Math.min(this.byteLength, e), e <= t8)\n return new ArrayBuffer(0);\n let o = this.findShardForByte(t8);\n if (o === -1)\n throw new Error(`Could not find start shard for byte ${t8}`);\n let n = e - t8, s = new ArrayBuffer(n), a = new Uint8Array(s), i = 0;\n for (let p = o; p < this.shards.length; p++) {\n let u = this.shards[p], l = t8 + i - u.start, m = i, f = Math.min(e, u.end) - u.start, h = new Uint8Array(u.buffer, l, f - l);\n if (a.set(h, m), i += h.length, e < u.end)\n break;\n }\n return s;\n }\n findShardForByte(t8) {\n if (this.shards.length === 0 || t8 < 0 || t8 >= this.byteLength)\n return -1;\n if (this.bufferUniformSize != null)\n return this.previousShardIndex = Math.floor(t8 / this.bufferUniformSize), this.previousShardIndex;\n function e(n) {\n return t8 < n.start ? -1 : t8 >= n.end ? 1 : 0;\n }\n if (e(this.shards[this.previousShardIndex]) === 0)\n return this.previousShardIndex;\n let o = x4(this.shards, e);\n return o === -1 ? -1 : (this.previousShardIndex = o, this.previousShardIndex);\n }\n};\nfunction x4(r, t8) {\n let e = 0, o = r.length;\n for (; e <= o; ) {\n let n = Math.floor((o - e) / 2) + e, s = t8(r[n]);\n if (s === 0)\n return n;\n s < 0 ? o = n : e = n + 1;\n }\n return -1;\n}\nvar sd = 4;\nasync function nk(r, t8) {\n let e = [], o = [], n = Array.isArray(r) ? r.map((a) => a.name) : Object.keys(r);\n for (let a = 0; a < n.length; ++a) {\n let i = n[a], p = Array.isArray(r) ? r[a].tensor : r[i];\n if (p.dtype !== \"float32\" && p.dtype !== \"int32\" && p.dtype !== \"bool\" && p.dtype !== \"string\" && p.dtype !== \"complex64\")\n throw new Error(`Unsupported dtype in weight '${i}': ${p.dtype}`);\n let u = { name: i, shape: p.shape, dtype: p.dtype };\n if (p.dtype === \"string\") {\n let c = new Promise(async (l) => {\n let m = await p.bytes(), d = m.reduce((g, x) => g + x.length, 0) + sd * m.length, f = new Uint8Array(d), h = 0;\n for (let g = 0; g < m.length; g++) {\n let x = m[g], b = new Uint8Array(new Uint32Array([x.length]).buffer);\n f.set(b, h), h += sd, f.set(x, h), h += x.length;\n }\n l(f);\n });\n o.push(c);\n } else\n o.push(p.data());\n t8 != null && (u.group = t8), e.push(u);\n }\n let s = await Promise.all(o);\n return { data: y4(s), specs: e };\n}\nfunction ad(r, t8) {\n let e = new jt(r), o = {}, n, s = 0;\n for (let a of t8) {\n let i = a.name, p = a.dtype, u = a.shape, c = He(u), l;\n if (\"quantization\" in a) {\n let m = a.quantization;\n if (m.dtype === \"uint8\" || m.dtype === \"uint16\") {\n if (!(\"min\" in m && \"scale\" in m))\n throw new Error(`Weight ${a.name} with quantization ${m.dtype} doesn't have corresponding metadata min and scale.`);\n } else if (m.dtype === \"float16\") {\n if (p !== \"float32\")\n throw new Error(`Weight ${a.name} is quantized with ${m.dtype} which only supports weights of type float32 not ${p}.`);\n } else\n throw new Error(`Weight ${a.name} has unknown quantization dtype ${m.dtype}. Supported quantization dtypes are: 'uint8', 'uint16', and 'float16'.`);\n let d = Il[m.dtype], f = e.slice(s, s + c * d), h = m.dtype === \"uint8\" ? new Uint8Array(f) : new Uint16Array(f);\n if (p === \"float32\")\n if (m.dtype === \"uint8\" || m.dtype === \"uint16\") {\n l = new Float32Array(h.length);\n for (let g = 0; g < h.length; g++) {\n let x = h[g];\n l[g] = x * m.scale + m.min;\n }\n } else if (m.dtype === \"float16\")\n n === void 0 && (n = S4()), l = n(h);\n else\n throw new Error(`Unsupported quantization type ${m.dtype} for weight type float32.`);\n else if (p === \"int32\") {\n if (m.dtype !== \"uint8\" && m.dtype !== \"uint16\")\n throw new Error(`Unsupported quantization type ${m.dtype} for weight type int32.`);\n l = new Int32Array(h.length);\n for (let g = 0; g < h.length; g++) {\n let x = h[g];\n l[g] = Math.round(x * m.scale + m.min);\n }\n } else\n throw new Error(`Unsupported dtype in weight '${i}': ${p}`);\n s += c * d;\n } else if (p === \"string\") {\n let m = He(a.shape);\n l = [];\n for (let d = 0; d < m; d++) {\n let f = new Uint32Array(e.slice(s, s + sd))[0];\n s += sd;\n let h = new Uint8Array(e.slice(s, s + f));\n l.push(h), s += f;\n }\n } else {\n let m = Il[p], d = e.slice(s, s + c * m);\n if (p === \"float32\")\n l = new Float32Array(d);\n else if (p === \"int32\")\n l = new Int32Array(d);\n else if (p === \"bool\")\n l = new Uint8Array(d);\n else if (p === \"complex64\") {\n l = new Float32Array(d);\n let f = new Float32Array(l.length / 2), h = new Float32Array(l.length / 2);\n for (let b = 0; b < f.length; b++)\n f[b] = l[b * 2], h[b] = l[b * 2 + 1];\n let g = ur(f, u, \"float32\"), x = ur(h, u, \"float32\");\n o[i] = Er(g, x), g.dispose(), x.dispose();\n } else\n throw new Error(`Unsupported dtype in weight '${i}': ${p}`);\n s += c * m;\n }\n p !== \"complex64\" && (o[i] = ur(l, u, p));\n }\n return o;\n}\nfunction y4(r) {\n if (r === null)\n throw new Error(`Invalid input value: ${JSON.stringify(r)}`);\n let t8 = 0, e = [];\n r.forEach((s) => {\n if (t8 += s.byteLength, e.push(s.byteLength === s.buffer.byteLength ? s : new s.constructor(s)), !(s instanceof Float32Array || s instanceof Int32Array || s instanceof Uint8Array))\n throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`);\n });\n let o = new Uint8Array(t8), n = 0;\n return e.forEach((s) => {\n o.set(new Uint8Array(s.buffer), n), n += s.byteLength;\n }), o.buffer;\n}\nvar Nw = typeof Buffer != \"undefined\" && (typeof Blob == \"undefined\" || typeof atob == \"undefined\" || typeof btoa == \"undefined\");\nfunction ok(r) {\n return Nw ? Buffer.byteLength(r, \"utf8\") : new Blob([r]).size;\n}\nfunction sk(r) {\n if (Nw)\n return Buffer.from(r).toString(\"base64\");\n let t8 = new Uint8Array(r), e = \"\";\n for (let o = 0, n = t8.length; o < n; o++)\n e += String.fromCharCode(t8[o]);\n return btoa(e);\n}\nfunction ak(r) {\n if (Nw) {\n let o = Buffer.from(r, \"base64\");\n return o.buffer.slice(o.byteOffset, o.byteOffset + o.byteLength);\n }\n let t8 = atob(r), e = new Uint8Array(t8.length);\n for (let o = 0; o < t8.length; ++o)\n e.set([t8.charCodeAt(o)], o);\n return e.buffer;\n}\nfunction ik(r) {\n return jt.join(r);\n}\nfunction Tw(r) {\n let t8 = \"/\";\n for (r = r.trim(); r.endsWith(t8); )\n r = r.slice(0, r.length - 1);\n let e = r.split(t8);\n return e[e.length - 1];\n}\nfunction id(r, t8) {\n let e = { modelTopology: r.modelTopology, format: r.format, generatedBy: r.generatedBy, convertedBy: r.convertedBy, weightsManifest: t8 };\n return r.signature != null && (e.signature = r.signature), r.userDefinedMetadata != null && (e.userDefinedMetadata = r.userDefinedMetadata), r.modelInitializer != null && (e.modelInitializer = r.modelInitializer), r.initializerSignature != null && (e.initializerSignature = r.initializerSignature), r.trainingConfig != null && (e.trainingConfig = r.trainingConfig), e;\n}\nfunction _w(r, t8, e) {\n let o = { modelTopology: r.modelTopology, format: r.format, generatedBy: r.generatedBy, convertedBy: r.convertedBy };\n if (r.trainingConfig != null && (o.trainingConfig = r.trainingConfig), r.weightsManifest != null) {\n if (!t8)\n throw new Error(\"modelJSON has weightsManifest but weightSpecs is null\");\n if (!e)\n throw new Error(\"modelJSON has weightsManifest but weightData is null\");\n o.weightSpecs = t8, o.weightData = e;\n }\n return r.signature != null && (o.signature = r.signature), r.userDefinedMetadata != null && (o.userDefinedMetadata = r.userDefinedMetadata), r.modelInitializer != null && (o.modelInitializer = r.modelInitializer), r.initializerSignature != null && (o.initializerSignature = r.initializerSignature), o;\n}\nasync function ic(r, t8) {\n let e, o;\n return r.weightsManifest != null && ([e, o] = await t8(r.weightsManifest)), _w(r, e, o);\n}\nfunction va(r) {\n if (r.modelTopology instanceof ArrayBuffer)\n throw new Error(\"Expected JSON model topology, received ArrayBuffer.\");\n return { dateSaved: /* @__PURE__ */ new Date(), modelTopologyType: \"JSON\", modelTopologyBytes: r.modelTopology == null ? 0 : ok(JSON.stringify(r.modelTopology)), weightSpecsBytes: r.weightSpecs == null ? 0 : ok(JSON.stringify(r.weightSpecs)), weightDataBytes: r.weightData == null ? 0 : new jt(r.weightData).byteLength };\n}\nfunction ud(r) {\n let t8 = [];\n for (let e of r)\n t8.push(...e.weights);\n return t8;\n}\nfunction b4() {\n let r = (e) => {\n let o = e << 13, n = 0;\n for (; !(o & 8388608); )\n n -= 8388608, o <<= 1;\n return o &= -8388609, n += 947912704, o | n;\n }, t8 = new Uint32Array(2048);\n t8[0] = 0;\n for (let e = 1; e < 1024; e++)\n t8[e] = r(e);\n for (let e = 1024; e < 2048; e++)\n t8[e] = 939524096 + (e - 1024 << 13);\n return t8;\n}\nfunction C4() {\n let r = new Uint32Array(64);\n r[0] = 0, r[31] = 1199570944, r[32] = 2147483648, r[63] = 3347054592;\n for (let t8 = 1; t8 < 31; t8++)\n r[t8] = t8 << 23;\n for (let t8 = 33; t8 < 63; t8++)\n r[t8] = 2147483648 + (t8 - 32 << 23);\n return r;\n}\nfunction w4() {\n let r = new Uint32Array(64);\n for (let t8 = 0; t8 < 64; t8++)\n r[t8] = 1024;\n return r[0] = r[32] = 0, r;\n}\nfunction S4() {\n let r = b4(), t8 = C4(), e = w4();\n return (o) => {\n let n = new ArrayBuffer(4 * o.length), s = new Uint32Array(n);\n for (let a = 0; a < o.length; a++) {\n let i = o[a], p = r[e[i >> 10] + (i & 1023)] + t8[i >> 10];\n s[a] = p;\n }\n return new Float32Array(n);\n };\n}\nvar ft = class {\n constructor() {\n this.saveRouters = [], this.loadRouters = [];\n }\n static getInstance() {\n return ft.instance == null && (ft.instance = new ft()), ft.instance;\n }\n static registerSaveRouter(t8) {\n ft.getInstance().saveRouters.push(t8);\n }\n static registerLoadRouter(t8) {\n ft.getInstance().loadRouters.push(t8);\n }\n static getSaveHandlers(t8) {\n return ft.getHandlers(t8, \"save\");\n }\n static getLoadHandlers(t8, e) {\n return ft.getHandlers(t8, \"load\", e);\n }\n static getHandlers(t8, e, o) {\n let n = [];\n return (e === \"load\" ? ft.getInstance().loadRouters : ft.getInstance().saveRouters).forEach((a) => {\n let i = a(t8, o);\n i !== null && n.push(i);\n }), n;\n }\n};\nvar uk = (r) => ft.registerSaveRouter(r);\nvar pk = (r) => ft.registerLoadRouter(r);\nvar ck = (r) => ft.getSaveHandlers(r);\nvar lk = (r, t8) => ft.getLoadHandlers(r, t8);\nvar $w = \"tensorflowjs\";\nvar Ew = 1;\nvar Uu = \"models_store\";\nvar nu = \"model_info_store\";\nfunction mk() {\n if (!A().getBool(\"IS_BROWSER\"))\n throw new Error(\"Failed to obtain IndexedDB factory because the current environmentis not a web browser.\");\n let r = typeof window == \"undefined\" ? self : window, t8 = r.indexedDB || r.mozIndexedDB || r.webkitIndexedDB || r.msIndexedDB || r.shimIndexedDB;\n if (t8 == null)\n throw new Error(\"The current browser does not appear to support IndexedDB.\");\n return t8;\n}\nfunction Rw(r) {\n let t8 = r.result;\n t8.createObjectStore(Uu, { keyPath: \"modelPath\" }), t8.createObjectStore(nu, { keyPath: \"modelPath\" });\n}\nvar ka = class {\n constructor(t8) {\n if (this.indexedDB = mk(), t8 == null || !t8)\n throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");\n this.modelPath = t8;\n }\n async save(t8) {\n if (t8.modelTopology instanceof ArrayBuffer)\n throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");\n return this.databaseAction(this.modelPath, t8);\n }\n async load() {\n return this.databaseAction(this.modelPath);\n }\n databaseAction(t8, e) {\n return new Promise((o, n) => {\n let s = this.indexedDB.open($w, Ew);\n s.onupgradeneeded = () => Rw(s), s.onsuccess = () => {\n let a = s.result;\n if (e == null) {\n let i = a.transaction(Uu, \"readonly\"), u = i.objectStore(Uu).get(this.modelPath);\n u.onsuccess = () => {\n if (u.result == null)\n return a.close(), n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));\n o(u.result.modelArtifacts);\n }, u.onerror = (c) => (a.close(), n(u.error)), i.oncomplete = () => a.close();\n } else {\n e.weightData = jt.join(e.weightData);\n let i = va(e), p = a.transaction(nu, \"readwrite\"), u = p.objectStore(nu), c;\n try {\n c = u.put({ modelPath: this.modelPath, modelArtifactsInfo: i });\n } catch (m) {\n return n(m);\n }\n let l;\n c.onsuccess = () => {\n l = a.transaction(Uu, \"readwrite\");\n let m = l.objectStore(Uu), d;\n try {\n d = m.put({ modelPath: this.modelPath, modelArtifacts: e, modelArtifactsInfo: i });\n } catch (f) {\n return n(f);\n }\n d.onsuccess = () => o({ modelArtifactsInfo: i }), d.onerror = (f) => {\n u = p.objectStore(nu);\n let h = u.delete(this.modelPath);\n h.onsuccess = () => (a.close(), n(d.error)), h.onerror = (g) => (a.close(), n(d.error));\n };\n }, c.onerror = (m) => (a.close(), n(c.error)), p.oncomplete = () => {\n l == null ? a.close() : l.oncomplete = () => a.close();\n };\n }\n }, s.onerror = (a) => n(s.error);\n });\n }\n};\nka.URL_SCHEME = \"indexeddb://\";\nvar dk = (r) => A().getBool(\"IS_BROWSER\") && !Array.isArray(r) && r.startsWith(ka.URL_SCHEME) ? I4(r.slice(ka.URL_SCHEME.length)) : null;\nft.registerSaveRouter(dk);\nft.registerLoadRouter(dk);\nfunction I4(r) {\n return new ka(r);\n}\nfunction v4(r) {\n return r.startsWith(ka.URL_SCHEME) ? r.slice(ka.URL_SCHEME.length) : r;\n}\nvar pd = class {\n constructor() {\n this.indexedDB = mk();\n }\n async listModels() {\n return new Promise((t8, e) => {\n let o = this.indexedDB.open($w, Ew);\n o.onupgradeneeded = () => Rw(o), o.onsuccess = () => {\n let n = o.result, s = n.transaction(nu, \"readonly\"), i = s.objectStore(nu).getAll();\n i.onsuccess = () => {\n let p = {};\n for (let u of i.result)\n p[u.modelPath] = u.modelArtifactsInfo;\n t8(p);\n }, i.onerror = (p) => (n.close(), e(i.error)), s.oncomplete = () => n.close();\n }, o.onerror = (n) => e(o.error);\n });\n }\n async removeModel(t8) {\n return t8 = v4(t8), new Promise((e, o) => {\n let n = this.indexedDB.open($w, Ew);\n n.onupgradeneeded = () => Rw(n), n.onsuccess = () => {\n let s = n.result, a = s.transaction(nu, \"readwrite\"), i = a.objectStore(nu), p = i.get(t8), u;\n p.onsuccess = () => {\n if (p.result == null)\n return s.close(), o(new Error(`Cannot find model with path '${t8}' in IndexedDB.`));\n {\n let c = i.delete(t8), l = () => {\n u = s.transaction(Uu, \"readwrite\");\n let d = u.objectStore(Uu).delete(t8);\n d.onsuccess = () => e(p.result.modelArtifactsInfo), d.onerror = (f) => o(p.error);\n };\n c.onsuccess = l, c.onerror = (m) => (l(), s.close(), o(p.error));\n }\n }, p.onerror = (c) => (s.close(), o(p.error)), a.oncomplete = () => {\n u == null ? s.close() : u.oncomplete = () => s.close();\n };\n }, n.onerror = (s) => o(n.error);\n });\n }\n};\nvar ai = \"/\";\nvar uc = \"tensorflowjs_models\";\nvar fk = \"info\";\nvar k4 = \"model_topology\";\nvar N4 = \"weight_specs\";\nvar T4 = \"weight_data\";\nvar _4 = \"model_metadata\";\nfunction hk(r) {\n return { info: [uc, r, fk].join(ai), topology: [uc, r, k4].join(ai), weightSpecs: [uc, r, N4].join(ai), weightData: [uc, r, T4].join(ai), modelMetadata: [uc, r, _4].join(ai) };\n}\nfunction gk(r) {\n for (let t8 of Object.values(r))\n window.localStorage.removeItem(t8);\n}\nfunction $4(r) {\n let t8 = r.split(ai);\n if (t8.length < 3)\n throw new Error(`Invalid key format: ${r}`);\n return t8.slice(1, t8.length - 1).join(ai);\n}\nfunction E4(r) {\n return r.startsWith(Na.URL_SCHEME) ? r.slice(Na.URL_SCHEME.length) : r;\n}\nvar Na = class {\n constructor(t8) {\n if (!A().getBool(\"IS_BROWSER\") || typeof window == \"undefined\" || typeof window.localStorage == \"undefined\")\n throw new Error(\"The current environment does not support local storage.\");\n if (this.LS = window.localStorage, t8 == null || !t8)\n throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");\n this.modelPath = t8, this.keys = hk(this.modelPath);\n }\n async save(t8) {\n if (t8.modelTopology instanceof ArrayBuffer)\n throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");\n {\n let e = JSON.stringify(t8.modelTopology), o = JSON.stringify(t8.weightSpecs), n = va(t8), s = jt.join(t8.weightData);\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(n)), this.LS.setItem(this.keys.topology, e), this.LS.setItem(this.keys.weightSpecs, o), this.LS.setItem(this.keys.weightData, sk(s));\n let a = { format: t8.format, generatedBy: t8.generatedBy, convertedBy: t8.convertedBy, signature: t8.signature != null ? t8.signature : void 0, userDefinedMetadata: t8.userDefinedMetadata != null ? t8.userDefinedMetadata : void 0, modelInitializer: t8.modelInitializer != null ? t8.modelInitializer : void 0, initializerSignature: t8.initializerSignature != null ? t8.initializerSignature : void 0, trainingConfig: t8.trainingConfig != null ? t8.trainingConfig : void 0 };\n return this.LS.setItem(this.keys.modelMetadata, JSON.stringify(a)), { modelArtifactsInfo: n };\n } catch (a) {\n throw gk(this.keys), new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`);\n }\n }\n }\n async load() {\n let t8 = JSON.parse(this.LS.getItem(this.keys.info));\n if (t8 == null)\n throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);\n if (t8.modelTopologyType !== \"JSON\")\n throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");\n let e = {}, o = JSON.parse(this.LS.getItem(this.keys.topology));\n if (o == null)\n throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);\n e.modelTopology = o;\n let n = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (n == null)\n throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);\n e.weightSpecs = n;\n let s = this.LS.getItem(this.keys.modelMetadata);\n if (s != null) {\n let i = JSON.parse(s);\n e.format = i.format, e.generatedBy = i.generatedBy, e.convertedBy = i.convertedBy, i.signature != null && (e.signature = i.signature), i.userDefinedMetadata != null && (e.userDefinedMetadata = i.userDefinedMetadata), i.modelInitializer != null && (e.modelInitializer = i.modelInitializer), i.initializerSignature != null && (e.initializerSignature = i.initializerSignature), i.trainingConfig != null && (e.trainingConfig = i.trainingConfig);\n }\n let a = this.LS.getItem(this.keys.weightData);\n if (a == null)\n throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);\n return e.weightData = ak(a), e;\n }\n};\nNa.URL_SCHEME = \"localstorage://\";\nvar xk = (r) => A().getBool(\"IS_BROWSER\") && !Array.isArray(r) && r.startsWith(Na.URL_SCHEME) ? R4(r.slice(Na.URL_SCHEME.length)) : null;\nft.registerSaveRouter(xk);\nft.registerLoadRouter(xk);\nfunction R4(r) {\n return new Na(r);\n}\nvar cd = class {\n constructor() {\n $(A().getBool(\"IS_BROWSER\"), () => \"Current environment is not a web browser\"), $(typeof window == \"undefined\" || typeof window.localStorage != \"undefined\", () => \"Current browser does not appear to support localStorage\"), this.LS = window.localStorage;\n }\n async listModels() {\n let t8 = {}, e = uc + ai, o = ai + fk;\n for (let n = 0; n < this.LS.length; ++n) {\n let s = this.LS.key(n);\n if (s.startsWith(e) && s.endsWith(o)) {\n let a = $4(s);\n t8[a] = JSON.parse(this.LS.getItem(s));\n }\n }\n return t8;\n }\n async removeModel(t8) {\n t8 = E4(t8);\n let e = hk(t8);\n if (this.LS.getItem(e.info) == null)\n throw new Error(`Cannot find model at path '${t8}'`);\n let o = JSON.parse(this.LS.getItem(e.info));\n return gk(e), o;\n }\n};\nvar pc = \"://\";\nvar Zt = class {\n constructor() {\n this.managers = {};\n }\n static getInstance() {\n return Zt.instance == null && (Zt.instance = new Zt()), Zt.instance;\n }\n static registerManager(t8, e) {\n $(t8 != null, () => \"scheme must not be undefined or null.\"), t8.endsWith(pc) && (t8 = t8.slice(0, t8.indexOf(pc))), $(t8.length > 0, () => \"scheme must not be an empty string.\");\n let o = Zt.getInstance();\n $(o.managers[t8] == null, () => `A model store manager is already registered for scheme '${t8}'.`), o.managers[t8] = e;\n }\n static getManager(t8) {\n let e = Zt.getInstance().managers[t8];\n if (e == null)\n throw new Error(`Cannot find model manager for scheme '${t8}'`);\n return e;\n }\n static getSchemes() {\n return Object.keys(Zt.getInstance().managers);\n }\n};\nfunction ld(r) {\n if (r.indexOf(pc) === -1)\n throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Zt.getSchemes().join(\",\")}`);\n return { scheme: r.split(pc)[0], path: r.split(pc)[1] };\n}\nasync function yk(r, t8, e = false) {\n $(r !== t8, () => `Old path and new path are the same: '${r}'`);\n let o = ft.getLoadHandlers(r);\n $(o.length > 0, () => `Copying failed because no load handler is found for source URL ${r}.`), $(o.length < 2, () => `Copying failed because more than one (${o.length}) load handlers for source URL ${r}.`);\n let n = o[0], s = ft.getSaveHandlers(t8);\n $(s.length > 0, () => `Copying failed because no save handler is found for destination URL ${t8}.`), $(s.length < 2, () => `Copying failed because more than one (${o.length}) save handlers for destination URL ${t8}.`);\n let a = s[0], i = ld(r).scheme, p = ld(r).path, u = i === ld(r).scheme, c = await n.load();\n e && u && await Zt.getManager(i).removeModel(p);\n let l = await a.save(c);\n return e && !u && await Zt.getManager(i).removeModel(p), l.modelArtifactsInfo;\n}\nasync function bk() {\n let r = Zt.getSchemes(), t8 = {};\n for (let e of r) {\n let o = await Zt.getManager(e).listModels();\n for (let n in o) {\n let s = e + pc + n;\n t8[s] = o[n];\n }\n }\n return t8;\n}\nasync function Ck(r) {\n let t8 = ld(r);\n return Zt.getManager(t8.scheme).removeModel(t8.path);\n}\nasync function wk(r, t8) {\n return yk(r, t8, false);\n}\nasync function Sk(r, t8) {\n return yk(r, t8, true);\n}\nvar Dw = class {\n constructor() {\n this.messageName = \"setTimeoutCustom\", this.functionRefs = [], this.handledMessageCount = 0, this.hasEventListener = false;\n }\n fetch(t8, e) {\n return fetch(t8, e);\n }\n now() {\n return performance.now();\n }\n encode(t8, e) {\n if (e !== \"utf-8\" && e !== \"utf8\")\n throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);\n return this.textEncoder == null && (this.textEncoder = new TextEncoder()), this.textEncoder.encode(t8);\n }\n decode(t8, e) {\n return new TextDecoder(e).decode(t8);\n }\n setTimeoutCustom(t8, e) {\n if (typeof window == \"undefined\" || !A().getBool(\"USE_SETTIMEOUTCUSTOM\")) {\n setTimeout(t8, e);\n return;\n }\n this.functionRefs.push(t8), setTimeout(() => {\n window.postMessage({ name: this.messageName, index: this.functionRefs.length - 1 }, \"*\");\n }, e), this.hasEventListener || (this.hasEventListener = true, window.addEventListener(\"message\", (o) => {\n if (o.source === window && o.data.name === this.messageName) {\n o.stopPropagation();\n let n = this.functionRefs[o.data.index];\n n(), this.handledMessageCount++, this.handledMessageCount === this.functionRefs.length && (this.functionRefs = [], this.handledMessageCount = 0);\n }\n }, true));\n }\n isTypedArray(t8) {\n return Qm(t8);\n }\n};\nif (A().get(\"IS_BROWSER\")) {\n A().setPlatform(\"browser\", new Dw());\n try {\n Zt.registerManager(Na.URL_SCHEME, new cd());\n } catch (r) {\n }\n try {\n Zt.registerManager(ka.URL_SCHEME, new pd());\n } catch (r) {\n }\n}\nvar D4 = { importFetch: () => Ik() };\nvar Aw;\nvar Fw = class {\n constructor() {\n this.util = vk(), this.textEncoder = new this.util.TextEncoder();\n }\n fetch(t8, e) {\n return A().global.fetch != null ? A().global.fetch(t8, e) : (Aw == null && (Aw = D4.importFetch()), Aw(t8, e));\n }\n now() {\n let t8 = process.hrtime();\n return t8[0] * 1e3 + t8[1] / 1e6;\n }\n encode(t8, e) {\n if (e !== \"utf-8\" && e !== \"utf8\")\n throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);\n return this.textEncoder.encode(t8);\n }\n decode(t8, e) {\n return t8.length === 0 ? \"\" : new this.util.TextDecoder(e).decode(t8);\n }\n isTypedArray(t8) {\n return this.util.types.isFloat32Array(t8) || this.util.types.isInt32Array(t8) || this.util.types.isUint8Array(t8) || this.util.types.isUint8ClampedArray(t8);\n }\n};\nA().get(\"IS_NODE\") && !A().get(\"IS_BROWSER\") && A().setPlatform(\"node\", new Fw());\nfunction me(r, t8 = \"float32\", e) {\n return t8 = t8 || \"float32\", wt(r), new tt(r, t8, e);\n}\nfunction A4(r, t8) {\n let e = v(r, \"x\", \"cast\");\n if (!rw(t8))\n throw new Error(`Failed to cast to unknown dtype ${t8}`);\n if (t8 === \"string\" && e.dtype !== \"string\" || t8 !== \"string\" && e.dtype === \"string\")\n throw new Error(\"Only strings can be casted to strings\");\n let o = { x: e }, n = { dtype: t8 };\n return T.runKernel(bo, o, n);\n}\nvar We = N({ cast_: A4 });\nfunction F4(r) {\n let e = { x: v(r, \"x\", \"clone\", \"string_or_numeric\") };\n return T.runKernel(wo, e);\n}\nvar Ur = N({ clone_: F4 });\nfunction md(r, t8 = false) {\n console.log(r.toString(t8));\n}\nSw();\nvar P4 = { buffer: me, cast: We, clone: Ur, print: md };\nQ0(P4);\nfunction lde() {\n A().set(\"PROD\", true);\n}\nfunction mde() {\n A().set(\"DEBUG\", true);\n}\nfunction dde() {\n A().set(\"DEPRECATION_WARNINGS_ENABLED\", false), console.warn(\"TensorFlow.js deprecation warnings have been disabled.\");\n}\nfunction Pw(r) {\n A().getBool(\"DEPRECATION_WARNINGS_ENABLED\") && console.warn(r + \" You can disable deprecation warnings with tf.disableDeprecationWarnings().\");\n}\nZ0(Pw);\nfunction fde() {\n T.disposeVariables();\n}\nfunction pr() {\n return T;\n}\nfunction hde() {\n return T.memory();\n}\nfunction gde(r) {\n return T.profile(r);\n}\nfunction De(r, t8) {\n return T.tidy(r, t8);\n}\nfunction Mt(r) {\n Sl(r).forEach((e) => e.dispose());\n}\nfunction Rr(r) {\n return T.keep(r);\n}\nfunction xde(r) {\n return T.time(r);\n}\nfunction yde(r) {\n return T.setBackend(r);\n}\nfunction bde() {\n return T.ready();\n}\nfunction Cde() {\n return T.backendName;\n}\nfunction wde(r) {\n T.removeBackend(r);\n}\nfunction Sde(r) {\n return T.findBackend(r);\n}\nfunction Ide(r) {\n return T.findBackendFactory(r);\n}\nfunction su(r, t8, e = 1) {\n return T.registerBackend(r, t8, e);\n}\nfunction vde() {\n return T.backend;\n}\nfunction kde(r, t8) {\n A().setPlatform(r, t8);\n}\nfunction O4(r, t8) {\n let e = v(r, \"a\", \"add\"), o = v(t8, \"b\", \"add\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(uo, n);\n}\nvar Ce = N({ add_: O4 });\nfunction M4(r, t8) {\n let e = v(r, \"a\", \"floorDiv\"), o = v(t8, \"b\", \"floorDiv\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(In, n);\n}\nvar dd = N({ floorDiv_: M4 });\nfunction L4(r, t8) {\n let e = v(r, \"a\", \"div\"), o = v(t8, \"b\", \"div\");\n if ([e, o] = Oe(e, o), e.dtype === \"int32\" && o.dtype === \"int32\")\n return dd(e, o);\n let n = { a: e, b: o }, s = {};\n return T.runKernel(hn, n, s);\n}\nvar je = N({ div_: L4 });\nfunction B4(r, t8) {\n let e = v(r, \"a\", \"mul\"), o = v(t8, \"b\", \"mul\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(Yn, n);\n}\nvar se = N({ mul_: B4 });\nfunction z4(r) {\n let t8 = v(r, \"x\", \"abs\");\n if (t8.dtype === \"complex64\") {\n let e = { x: t8 };\n return T.runKernel(Pi, e);\n } else {\n let e = { x: t8 };\n return T.runKernel(Xs, e);\n }\n}\nvar Jt = N({ abs_: z4 });\nfunction V4(r) {\n let e = { x: v(r, \"x\", \"acos\") };\n return T.runKernel(Wo, e);\n}\nvar kk = N({ acos_: V4 });\nfunction W4(r) {\n let e = { x: v(r, \"x\", \"acosh\") };\n return T.runKernel(Uo, e);\n}\nvar Nk = N({ acosh_: W4 });\nfunction U4(r) {\n $(Array.isArray(r), () => \"The argument passed to tf.addN() must be a list of tensors\"), $(r.length >= 1, () => `Must pass at least one tensor to tf.addN(), but got ${r.length}`);\n let t8 = r.map((n, s) => v(n, `tensors${s}`, \"addN\")), e = t8[0];\n t8.forEach((n) => {\n if (n.dtype !== e.dtype)\n throw new Error(\"All tensors passed to tf.addN() must have the same dtype\");\n }), t8.forEach((n) => {\n if (!Cr(n.shape, e.shape))\n throw new Error(\"All tensors passed to tf.addN() must have the same shape\");\n });\n let o = t8;\n return T.runKernel(Go, o);\n}\nvar Tk = N({ addN_: U4 });\nfunction G4(r, t8 = null, e = false) {\n let n = { x: v(r, \"x\", \"all\", \"bool\") }, s = { axis: t8, keepDims: e };\n return T.runKernel(Ho, n, s);\n}\nvar _k = N({ all_: G4 });\nfunction H4(r, t8 = null, e = false) {\n let n = { x: v(r, \"x\", \"any\", \"bool\") }, s = { axis: t8, keepDims: e };\n return T.runKernel(Ko, n, s);\n}\nvar $k = N({ any_: H4 });\nfunction K4(r, t8 = 0) {\n let o = { x: v(r, \"x\", \"argMax\") }, n = { axis: t8 };\n return T.runKernel(Ys, o, n);\n}\nvar Ek = N({ argMax_: K4 });\nfunction q4(r, t8 = 0) {\n let o = { x: v(r, \"x\", \"argMin\") }, n = { axis: t8 };\n return T.runKernel(Qs, o, n);\n}\nvar Rk = N({ argMin_: q4 });\nfunction j4(r) {\n let e = { x: v(r, \"x\", \"asin\") };\n return T.runKernel(qo, e);\n}\nvar Dk = N({ asin_: j4 });\nfunction X4(r) {\n let e = { x: v(r, \"x\", \"asinh\") };\n return T.runKernel(jo, e);\n}\nvar Ak = N({ asinh_: X4 });\nfunction Y4(r) {\n let e = { x: v(r, \"x\", \"atan\") };\n return T.runKernel(Xo, e);\n}\nvar Fk = N({ atan_: Y4 });\nfunction Q4(r, t8) {\n let e = v(r, \"a\", \"atan2\"), o = v(t8, \"b\", \"atan2\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(Qo, n);\n}\nvar Pk = N({ atan2_: Q4 });\nfunction Z4(r) {\n let e = { x: v(r, \"x\", \"atanh\") };\n return T.runKernel(Yo, e);\n}\nvar Ok = N({ atanh_: Z4 });\nfunction J4(r, t8, e, o, n = \"NHWC\", s) {\n let a = r[3], i = [...t8, a], p = Lk(n);\n return Hu(r, i, e, s, o, null, null, p);\n}\nfunction Mw(r, t8, e, o, n, s, a = \"channelsLast\") {\n let [i, p] = vl(t8), u;\n if (a === \"channelsLast\")\n u = [i, p, r[3], r[3]];\n else if (a === \"channelsFirst\")\n u = [i, p, r[1], r[1]];\n else\n throw new Error(`Unknown dataFormat ${a}`);\n return Hu(r, u, e, o, n, s, false, a);\n}\nfunction eH(r, t8, e, o, n, s, a = \"NDHWC\") {\n let [i, p, u] = Ow(t8), c, l;\n if (a === \"NDHWC\")\n l = \"channelsLast\", c = [i, p, u, r[4], r[4]];\n else if (a === \"NCDHW\")\n l = \"channelsFirst\", c = [i, p, u, r[1], r[1]];\n else\n throw new Error(`Unknown dataFormat ${a}`);\n return Mk(r, c, e, o, n, false, l, s);\n}\nfunction Hu(r, t8, e, o, n, s, a = false, i = \"channelsLast\") {\n let [p, u, c, l] = [-1, -1, -1, -1];\n if (i === \"channelsLast\")\n [p, u, c, l] = r;\n else if (i === \"channelsFirst\")\n [p, l, u, c] = r;\n else\n throw new Error(`Unknown dataFormat ${i}`);\n let [m, d, , f] = t8, [h, g] = vl(e), [x, b] = vl(o), C = cc(m, x), S = cc(d, b), { padInfo: k, outHeight: _, outWidth: E } = oH(n, u, c, h, g, C, S, s, i), R = a ? f * l : f, D;\n return i === \"channelsFirst\" ? D = [p, R, _, E] : i === \"channelsLast\" && (D = [p, _, E, R]), { batchSize: p, dataFormat: i, inHeight: u, inWidth: c, inChannels: l, outHeight: _, outWidth: E, outChannels: R, padInfo: k, strideHeight: h, strideWidth: g, filterHeight: m, filterWidth: d, effectiveFilterHeight: C, effectiveFilterWidth: S, dilationHeight: x, dilationWidth: b, inShape: r, outShape: D, filterShape: t8 };\n}\nfunction Mk(r, t8, e, o, n, s = false, a = \"channelsLast\", i) {\n let [p, u, c, l, m] = [-1, -1, -1, -1, -1];\n if (a === \"channelsLast\")\n [p, u, c, l, m] = r;\n else if (a === \"channelsFirst\")\n [p, m, u, c, l] = r;\n else\n throw new Error(`Unknown dataFormat ${a}`);\n let [d, f, h, , g] = t8, [x, b, C] = Ow(e), [S, k, _] = Ow(o), E = cc(d, S), R = cc(f, k), D = cc(h, _), { padInfo: P, outDepth: O, outHeight: M, outWidth: L } = nH(n, u, c, l, x, b, C, E, R, D, i), B = s ? g * m : g, z;\n return a === \"channelsFirst\" ? z = [p, B, O, M, L] : a === \"channelsLast\" && (z = [p, O, M, L, B]), { batchSize: p, dataFormat: a, inDepth: u, inHeight: c, inWidth: l, inChannels: m, outDepth: O, outHeight: M, outWidth: L, outChannels: B, padInfo: P, strideDepth: x, strideHeight: b, strideWidth: C, filterDepth: d, filterHeight: f, filterWidth: h, effectiveFilterDepth: E, effectiveFilterHeight: R, effectiveFilterWidth: D, dilationDepth: S, dilationHeight: k, dilationWidth: _, inShape: r, outShape: z, filterShape: t8 };\n}\nfunction tH(r, t8, e, o, n) {\n o == null && (o = Lw(r, t8, e));\n let s = r[0], a = r[1], i = kl((s - t8 + 2 * o) / e + 1, n), p = kl((a - t8 + 2 * o) / e + 1, n);\n return [i, p];\n}\nfunction rH(r, t8, e, o, n, s) {\n n == null && (n = Lw(r, t8[0], o[0]));\n let a = [0, 0, 0, e];\n for (let i = 0; i < 3; i++)\n r[i] + 2 * n >= t8[i] && (a[i] = kl((r[i] - t8[i] + 2 * n) / o[i] + 1, s));\n return a;\n}\nfunction Lw(r, t8, e, o = 1) {\n let n = cc(t8, o);\n return Math.floor((r[0] * (e - 1) - e + n) / 2);\n}\nfunction vl(r) {\n return typeof r == \"number\" ? [r, r, r] : r.length === 2 ? [r[0], r[1], 1] : r;\n}\nfunction Ow(r) {\n return typeof r == \"number\" ? [r, r, r] : r;\n}\nfunction cc(r, t8) {\n return t8 <= 1 ? r : r + (r - 1) * (t8 - 1);\n}\nfunction oH(r, t8, e, o, n, s, a, i, p) {\n let u, c, l;\n if (typeof r == \"number\") {\n u = { top: r, bottom: r, left: r, right: r, type: r === 0 ? \"VALID\" : \"NUMBER\" };\n let d = tH([t8, e], s, o, r, i);\n c = d[0], l = d[1];\n } else if (r === \"same\") {\n c = Math.ceil(t8 / o), l = Math.ceil(e / n);\n let m = Math.max(0, (c - 1) * o + s - t8), d = Math.max(0, (l - 1) * n + a - e), f = Math.floor(m / 2), h = m - f, g = Math.floor(d / 2), x = d - g;\n u = { top: f, bottom: h, left: g, right: x, type: \"SAME\" };\n } else if (r === \"valid\")\n u = { top: 0, bottom: 0, left: 0, right: 0, type: \"VALID\" }, c = Math.ceil((t8 - s + 1) / o), l = Math.ceil((e - a + 1) / n);\n else if (typeof r == \"object\") {\n let m = p === \"channelsLast\" ? r[1][0] : r[2][0], d = p === \"channelsLast\" ? r[1][1] : r[2][1], f = p === \"channelsLast\" ? r[2][0] : r[3][0], h = p === \"channelsLast\" ? r[2][1] : r[3][1];\n u = { top: m, bottom: d, left: f, right: h, type: m === 0 && d === 0 && f === 0 && h === 0 ? \"VALID\" : \"EXPLICIT\" }, c = kl((t8 - s + m + d) / o + 1, i), l = kl((e - a + f + h) / n + 1, i);\n } else\n throw Error(`Unknown padding parameter: ${r}`);\n return { padInfo: u, outHeight: c, outWidth: l };\n}\nfunction nH(r, t8, e, o, n, s, a, i, p, u, c) {\n let l, m, d, f;\n if (r === \"valid\" && (r = 0), typeof r == \"number\") {\n l = { top: r, bottom: r, left: r, right: r, front: r, back: r, type: r === 0 ? \"VALID\" : \"NUMBER\" };\n let g = rH([t8, e, o, 1], [i, p, u], 1, [n, s, a], r, c);\n m = g[0], d = g[1], f = g[2];\n } else if (r === \"same\") {\n m = Math.ceil(t8 / n), d = Math.ceil(e / s), f = Math.ceil(o / a);\n let h = (m - 1) * n + i - t8, g = (d - 1) * s + p - e, x = (f - 1) * a + u - o, b = Math.floor(h / 2), C = h - b, S = Math.floor(g / 2), k = g - S, _ = Math.floor(x / 2), E = x - _;\n l = { top: S, bottom: k, left: _, right: E, front: b, back: C, type: \"SAME\" };\n } else\n throw Error(`Unknown padding parameter: ${r}`);\n return { padInfo: l, outDepth: m, outHeight: d, outWidth: f };\n}\nfunction kl(r, t8) {\n if (!t8)\n return Math.trunc(r);\n switch (t8) {\n case \"round\":\n return Math.round(r);\n case \"ceil\":\n return Math.ceil(r);\n case \"floor\":\n return Math.floor(r);\n default:\n throw new Error(`Unknown roundingMode ${t8}`);\n }\n}\nfunction Gu(r) {\n let [t8, e, o] = vl(r);\n return t8 === 1 && e === 1 && o === 1;\n}\nfunction xr(r, t8) {\n return Gu(r) || Gu(t8);\n}\nfunction Ta(r) {\n return vl(r).every((t8) => t8 > 0);\n}\nfunction Lk(r) {\n if (r === \"NHWC\")\n return \"channelsLast\";\n if (r === \"NCHW\")\n return \"channelsFirst\";\n throw new Error(`Unknown dataFormat ${r}`);\n}\nfunction Bt(r, t8, e) {\n if (e != null) {\n if (typeof t8 == \"string\")\n throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t8}.`);\n if (typeof t8 == \"number\")\n $(qa(t8), () => `Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t8}.`);\n else if (typeof t8 == \"object\")\n t8.forEach((o) => {\n o.forEach((n) => {\n $(qa(n), () => `Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${n}.`);\n });\n });\n else\n throw Error(`Error in ${r}: Unknown padding parameter: ${t8}`);\n }\n}\nfunction sH(r, t8) {\n let o = { x: v(r, \"x\", \"reshape\", \"string_or_numeric\") }, n = { shape: t8 };\n return T.runKernel(da, o, n);\n}\nvar W = N({ reshape_: sH });\nfunction aH(r, t8, e, o, n) {\n let s = v(r, \"x\", \"avgPool\", \"float32\"), a = 1;\n $(xr(e, a), () => `Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${a}'`);\n let i = s, p = false;\n s.rank === 3 && (p = true, i = W(s, [1, s.shape[0], s.shape[1], s.shape[2]])), $(i.rank === 4, () => `Error in avgPool: x must be rank 4 but got rank ${i.rank}.`), Bt(\"avgPool\", o, n);\n let u = { x: i }, c = { filterSize: t8, strides: e, pad: o, dimRoundingMode: n }, l = T.runKernel(Zo, u, c);\n return l = We(l, s.dtype), p ? W(l, [l.shape[1], l.shape[2], l.shape[3]]) : l;\n}\nvar fd = N({ avgPool_: aH });\nfunction iH(r, t8, e, o, n, s = \"NDHWC\") {\n let a = v(r, \"x\", \"avgPool3d\", \"float32\"), i = a, p = false;\n a.rank === 4 && (p = true, i = W(a, [1, a.shape[0], a.shape[1], a.shape[2], a.shape[3]])), $(i.rank === 5, () => `Error in avgPool3d: x must be rank 5 but got rank ${i.rank}.`), $(s === \"NDHWC\", () => `Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`), $(typeof e == \"number\" && e > 0 || Array.isArray(e) && e[0] > 0 && e[1] > 0 && e[2] > 0, () => `Error in avgPool3d: Stride must be > 0, but got '${e}'`), Bt(\"avgPool3d\", o, n);\n let u = { x: i }, c = { filterSize: t8, strides: e, pad: o, dimRoundingMode: n, dataFormat: s }, l = T.runKernel(Zs, u, c);\n return l = We(l, i.dtype), p ? W(l, [l.shape[1], l.shape[2], l.shape[3], l.shape[4]]) : l;\n}\nvar Bk = N({ avgPool3d_: iH });\nfunction uH(r, t8 = 0) {\n $(r.length >= 1, () => \"Pass at least one tensor to concat\");\n let e = si(r, \"tensors\", \"concat\", \"string_or_numeric\");\n if (e[0].dtype === \"complex64\" && e.forEach((s) => {\n if (s.dtype !== \"complex64\")\n throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `);\n }), e.length === 1)\n return Ur(e[0]);\n let o = e, n = { axis: t8 };\n return T.runKernel(ta, o, n);\n}\nvar bt = N({ concat_: uH });\nfunction pH(r, t8, e = false, o = false) {\n let n = v(r, \"a\", \"matMul\"), s = v(t8, \"b\", \"matMul\");\n [n, s] = Oe(n, s);\n let a = { a: n, b: s }, i = { transposeA: e, transposeB: o };\n return T.runKernel(Jo, a, i);\n}\nvar Ze = N({ matMul_: pH });\nfunction cH(r) {\n let e = { x: v(r, \"x\", \"sigmoid\", \"float32\") };\n return T.runKernel(Cs, e);\n}\nvar $a = N({ sigmoid_: cH });\nfunction lH(r, t8, e) {\n let o = v(r, \"x\", \"slice\", \"string_or_numeric\");\n if (o.rank === 0)\n throw new Error(\"Slicing scalar is not possible\");\n let n = { x: o }, s = { begin: t8, size: e };\n return T.runKernel(ha, n, s);\n}\nvar Xe = N({ slice_: lH });\nfunction mH(r) {\n let e = { x: v(r, \"x\", \"tanh\", \"float32\") };\n return T.runKernel(Es, e);\n}\nvar Nl = N({ tanh_: mH });\nfunction dH(r, t8, e, o, n, s) {\n let a = v(r, \"forgetBias\", \"basicLSTMCell\"), i = v(t8, \"lstmKernel\", \"basicLSTMCell\"), p = v(e, \"lstmBias\", \"basicLSTMCell\"), u = v(o, \"data\", \"basicLSTMCell\"), c = v(n, \"c\", \"basicLSTMCell\"), l = v(s, \"h\", \"basicLSTMCell\"), m = bt([u, l], 1), d = Ze(m, i), f = Ce(d, p), h = f.shape[0], g = f.shape[1] / 4, x = [h, g], b = Xe(f, [0, 0], x), C = Xe(f, [0, g], x), S = Xe(f, [0, g * 2], x), k = Xe(f, [0, g * 3], x), _ = Ce(se($a(b), Nl(C)), se(c, $a(Ce(a, S)))), E = se(Nl(_), $a(k));\n return [_, E];\n}\nvar zk = N({ basicLSTMCell_: dH });\nfunction fH(r, t8, e) {\n let o = v(r, \"x\", \"batchToSpaceND\"), n = t8.reduce((i, p) => i * p);\n $(o.rank >= 1 + t8.length, () => `input rank is ${o.rank} but should be > than blockShape.length ${t8.length}`), $(e.length === t8.length, () => `crops.length is ${e.length} but should be equal to blockShape.length ${t8.length}`), $(o.shape[0] % n === 0, () => `input tensor batch is ${o.shape[0]} but is not divisible by the product of the elements of blockShape ${t8.join(\" * \")} === ${n}`);\n let s = { x: o }, a = { blockShape: t8, crops: e };\n return T.runKernel(Js, s, a);\n}\nvar hd = N({ batchToSpaceND_: fH });\nfunction Vk(r) {\n let t8;\n return r.rank === 0 || r.rank === 1 ? t8 = W(r, [1, 1, 1, r.size]) : r.rank === 2 ? t8 = W(r, [1, 1, r.shape[0], r.shape[1]]) : r.rank === 3 ? t8 = W(r, [1, r.shape[0], r.shape[1], r.shape[2]]) : t8 = r, t8;\n}\nfunction hH(r, t8, e, o, n, s) {\n s == null && (s = 1e-3);\n let a = v(r, \"x\", \"batchNorm\"), i = v(t8, \"mean\", \"batchNorm\"), p = v(e, \"variance\", \"batchNorm\"), u;\n n != null && (u = v(n, \"scale\", \"batchNorm\"));\n let c;\n o != null && (c = v(o, \"offset\", \"batchNorm\")), $(i.rank === p.rank, () => \"Batch normalization gradient requires mean and variance to have equal ranks.\"), $(c == null || i.rank === c.rank, () => \"Batch normalization gradient requires mean and offset to have equal ranks.\"), $(u == null || i.rank === u.rank, () => \"Batch normalization gradient requires mean and scale to have equal ranks.\");\n let m = { x: Vk(a), scale: u, offset: c, mean: i, variance: p }, d = { varianceEpsilon: s }, f = T.runKernel(vn, m, d);\n return W(f, a.shape);\n}\nvar au = N({ batchNorm_: hH });\nfunction gH(r, t8, e, o, n, s) {\n let a = v(r, \"x\", \"batchNorm\"), i = v(t8, \"mean\", \"batchNorm\"), p = v(e, \"variance\", \"batchNorm\"), u;\n n != null && (u = v(n, \"scale\", \"batchNorm\"));\n let c;\n return o != null && (c = v(o, \"offset\", \"batchNorm\")), $(a.rank === 2, () => `Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`), $(i.rank === 2 || i.rank === 1, () => `Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${i.rank}.`), $(p.rank === 2 || p.rank === 1, () => `Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${p.rank}.`), u != null && $(u.rank === 2 || u.rank === 1, () => `Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`), c != null && $(c.rank === 2 || c.rank === 1, () => `Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`), au(a, i, p, c, u, s);\n}\nvar Wk = N({ batchNorm2d_: gH });\nfunction xH(r, t8, e, o, n, s) {\n let a = v(r, \"x\", \"batchNorm\"), i = v(t8, \"mean\", \"batchNorm\"), p = v(e, \"variance\", \"batchNorm\"), u;\n n != null && (u = v(n, \"scale\", \"batchNorm\"));\n let c;\n return o != null && (c = v(o, \"offset\", \"batchNorm\")), $(a.rank === 3, () => `Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`), $(i.rank === 3 || i.rank === 1, () => `Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${i.rank}.`), $(p.rank === 3 || p.rank === 1, () => `Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${p.rank}.`), u != null && $(u.rank === 3 || u.rank === 1, () => `Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`), c != null && $(c.rank === 3 || c.rank === 1, () => `Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`), au(a, i, p, c, u, s);\n}\nvar Uk = N({ batchNorm3d_: xH });\nfunction yH(r, t8, e, o, n, s) {\n let a = v(r, \"x\", \"batchNorm\"), i = v(t8, \"mean\", \"batchNorm\"), p = v(e, \"variance\", \"batchNorm\"), u;\n n != null && (u = v(n, \"scale\", \"batchNorm\"));\n let c;\n return o != null && (c = v(o, \"offset\", \"batchNorm\")), $(a.rank === 4, () => `Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`), $(i.rank === 4 || i.rank === 1, () => `Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${i.rank}.`), $(p.rank === 4 || p.rank === 1, () => `Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${p.rank}.`), u != null && $(u.rank === 4 || u.rank === 1, () => `Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`), c != null && $(c.rank === 4 || c.rank === 1, () => `Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`), au(a, i, p, c, u, s);\n}\nvar Gk = N({ batchNorm4d_: yH });\nfunction bH(r, t8, e) {\n let o = v(r, \"x\", \"bincount\"), n = v(t8, \"weights\", \"bincount\");\n $(o.dtype === \"int32\", () => `Error in bincount: input dtype must be int32, but got ${o.dtype}`), $(e >= 0, () => `size must be non-negative, but got ${e}.`), $(n.size === o.size || n.size === 0, () => `Error in bincount: weights must have the same size as input or0-length, but got input shape: ${o.shape}, weights shape: ${n.shape}.`);\n let s = { x: o, weights: n }, a = { size: e };\n return T.runKernel(en, s, a);\n}\nvar gd = N({ bincount_: bH });\nfunction CH(r, t8) {\n let e = v(r, \"x\", \"bitwiseAnd\"), o = v(t8, \"y\", \"bitwiseAnd\");\n if (!Cr(e.shape, o.shape))\n throw new Error(`BitwiseAnd: Tensors must have the same shape. x: ${e.shape}, y: ${o.shape}`);\n if (e.dtype !== \"int32\" || o.dtype !== \"int32\")\n throw new Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${e.dtype} and type of y: ${o.dtype}`);\n let n = { a: e, b: o };\n return T.runKernel(ja, n);\n}\nvar Hk = N({ bitwiseAnd_: CH });\nfunction wH(r, t8) {\n let e = v(r, \"s0\", \"broadcastArgs\", \"int32\"), o = v(t8, \"s1\", \"broadcastArgs\", \"int32\");\n if (e.rank !== 1)\n throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);\n if (o.rank !== 1)\n throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${o.rank}`);\n let n = { s0: e, s1: o };\n return T.runKernel(ea, n);\n}\nvar Kk = N({ broadcastArgs_: wH });\nfunction SH(r, t8) {\n let e = v(r, \"broadcastTo\", \"x\"), o = e.shape;\n if (wt(t8), t8.length < e.rank)\n throw new Error(`broadcastTo(): shape.length=${t8.length} < input.rank=${e.rank}.`);\n if (t8.length > e.rank) {\n let u = e.shape.slice();\n for (; u.length < t8.length; )\n u.unshift(1);\n e = W(e, u);\n }\n let n = e.shape, s = Array.from(t8);\n for (let u = t8.length - 1; u >= 0; u--)\n if (n[u] === t8[u])\n s[u] = 1;\n else if (e.shape[u] !== 1)\n throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${t8}].`);\n if (s.map((u, c) => u > 1 ? c : -1).filter((u) => u >= 0).length === 0)\n return Ur(e);\n let i = { x: e }, p = { reps: s };\n return T.runKernel(po, i, p);\n}\nvar iu = N({ broadcastTo_: SH });\nfunction IH(r) {\n let e = { x: v(r, \"x\", \"ceil\", \"float32\") };\n return T.runKernel(tn, e);\n}\nvar qk = N({ ceil_: IH });\nfunction Ea(r, t8, e) {\n wt(r), e = e || Ri(t8);\n let o = { shape: r, value: t8, dtype: e };\n return T.runKernel(sa, {}, o);\n}\nfunction vH(r, t8, e) {\n let o = v(r, \"x\", \"clipByValue\");\n if ($(t8 <= e, () => `Error in clip: min (${t8}) must be less than or equal to max (${e}).`), t8 === e)\n return Ea(o.shape, t8, o.dtype);\n let n = { x: o }, s = { clipValueMin: t8, clipValueMax: e };\n return T.runKernel(Co, n, s);\n}\nvar jk = N({ clipByValue_: vH });\nfunction kH(r) {\n return bt(r, 0);\n}\nvar Xk = N({ concat1d_: kH });\nfunction NH(r, t8) {\n return bt(r, t8);\n}\nvar Yk = N({ concat2d_: NH });\nfunction TH(r, t8) {\n return bt(r, t8);\n}\nvar Qk = N({ concat3d_: TH });\nfunction _H(r, t8) {\n return bt(r, t8);\n}\nvar Zk = N({ concat4d_: _H });\nfunction $H(r, t8, e, o, n = \"NHWC\", s = [1, 1], a) {\n let i = v(r, \"x\", \"conv2d\", \"float32\"), p = v(t8, \"filter\", \"conv2d\", \"float32\"), u = i, c = false;\n i.rank === 3 && (c = true, u = W(i, [1, i.shape[0], i.shape[1], i.shape[2]])), $(u.rank === 4, () => `Error in conv2d: input must be rank 4, but got rank ${u.rank}.`), $(p.rank === 4, () => `Error in conv2d: filter must be rank 4, but got rank ${p.rank}.`), Bt(\"conv2d\", o, a);\n let l = n === \"NHWC\" ? u.shape[3] : u.shape[1];\n $(l === p.shape[2], () => `Error in conv2d: depth of input (${l}) must match input depth for filter ${p.shape[2]}.`), $(xr(e, s), () => `Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`), $(Ta(s), () => \"Error in conv2D: Dilated rates should be larger than 0.\"), $(Ta(e), () => \"Error in conv2D: Strides should be larger than 0.\");\n let m = { x: u, filter: p }, d = { strides: e, pad: o, dataFormat: n, dilations: s, dimRoundingMode: a }, f = T.runKernel(rn, m, d);\n return c ? W(f, [f.shape[1], f.shape[2], f.shape[3]]) : f;\n}\nvar uu = N({ conv2d_: $H });\nfunction EH(r, t8, e, o, n = \"NWC\", s = 1, a) {\n let i = v(r, \"x\", \"conv1d\"), p = v(t8, \"filter\", \"conv1d\"), u = i, c = false;\n i.rank === 2 && (c = true, u = W(i, [1, i.shape[0], i.shape[1]])), $(u.rank === 3, () => `Error in conv1d: input must be rank 3, but got rank ${u.rank}.`), $(p.rank === 3, () => `Error in conv1d: filter must be rank 3, but got rank ${p.rank}.`), Bt(\"conv1d\", o, a), $(u.shape[2] === p.shape[1], () => `Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${p.shape[1]}.`), $(xr(e, s), () => `Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`), $(Ta(s), () => \"Error in conv1D: Dilated rates should be larger than 0.\"), $(Ta(e), () => \"Error in conv1D: Stride should be larger than 0.\"), $(n === \"NWC\", () => `Error in conv1d: got dataFormat of ${n} but only NWC is currently supported.`);\n let l = W(p, [1, p.shape[0], p.shape[1], p.shape[2]]), m = W(u, [u.shape[0], 1, u.shape[1], u.shape[2]]), g = uu(m, l, [1, e], o, \"NHWC\", [1, s], a);\n return c ? W(g, [g.shape[2], g.shape[3]]) : W(g, [g.shape[0], g.shape[2], g.shape[3]]);\n}\nvar Jk = N({ conv1d_: EH });\nfunction RH(r, t8, e, o, n, s = \"NHWC\", a) {\n $(r.length === t8.rank, () => `Length of inShape (${r.length}) and rank of dy (${t8.rank}) must match`);\n let i = r, p = t8, u = false;\n t8.rank === 3 && (u = true, p = W(t8, [1, t8.shape[0], t8.shape[1], t8.shape[2]]), i = [1, r[0], r[1], r[2]]), $(i.length === 4, () => `Error in conv2dDerInput: inShape must be length 4, but got length ${i.length}.`), $(p.rank === 4, () => `Error in conv2dDerInput: dy must be rank 4, but got rank ${p.rank}`), $(e.rank === 4, () => `Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);\n let c = s === \"NHWC\" ? i[3] : i[1], l = s === \"NHWC\" ? p.shape[3] : p.shape[1];\n $(c === e.shape[2], () => `Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`), $(l === e.shape[3], () => `Error in conv2dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[3]}.`), Bt(\"conv2dDerInput\", n, a);\n let m = { dy: p, filter: e }, d = { strides: o, pad: n, dataFormat: s, dimRoundingMode: a, inputShape: i }, f = T.runKernel(on, m, d);\n return u ? W(f, [f.shape[1], f.shape[2], f.shape[3]]) : f;\n}\nvar xd = N({ conv2DBackpropInput_: RH });\nfunction DH(r, t8, e, o, n, s) {\n let a = v(r, \"x\", \"conv2dTranspose\"), i = v(t8, \"filter\", \"conv2dTranspose\");\n return xd(e, a, i, o, n, \"NHWC\", s);\n}\nvar e2 = N({ conv2dTranspose_: DH });\nfunction AH(r, t8, e, o, n = \"NDHWC\", s = [1, 1, 1]) {\n let a = v(r, \"x\", \"conv3d\"), i = v(t8, \"filter\", \"conv3d\"), p = a, u = false;\n a.rank === 4 && (u = true, p = W(a, [1, a.shape[0], a.shape[1], a.shape[2], a.shape[3]])), $(p.rank === 5, () => `Error in conv3d: input must be rank 5, but got rank ${p.rank}.`), $(i.rank === 5, () => `Error in conv3d: filter must be rank 5, but got rank ${i.rank}.`), $(p.shape[4] === i.shape[3], () => `Error in conv3d: depth of input (${p.shape[4]}) must match input depth for filter ${i.shape[3]}.`), $(xr(e, s), () => `Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`), $(n === \"NDHWC\", () => `Error in conv3d: got dataFormat of ${n} but only NDHWC is currently supported.`), $(Ta(s), () => \"Error in conv3D: Dilated rates should be larger than 0.\"), $(Ta(e), () => \"Error in conv3D: Strides should be larger than 0.\");\n let c = { x: p, filter: i }, l = { strides: e, pad: o, dataFormat: n, dilations: s }, m = T.runKernel(nn, c, l);\n return u ? W(m, [m.shape[1], m.shape[2], m.shape[3], m.shape[4]]) : m;\n}\nvar t2 = N({ conv3d_: AH });\nfunction FH(r, t8, e, o, n) {\n $(r.length === t8.rank, () => `Length of inShape (${r.length}) and rank of dy (${t8.rank}) must match`);\n let s = r, a = t8, i = false;\n t8.rank === 4 && (i = true, a = W(t8, [1, t8.shape[0], t8.shape[1], t8.shape[2], t8.shape[3]]), s = [1, r[0], r[1], r[2], r[3]]);\n let p = s[4], u = a.shape[4];\n $(s.length === 5, () => `Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`), $(a.rank === 5, () => `Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`), $(e.rank === 5, () => `Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`), $(p === e.shape[3], () => `Error in conv3dDerInput: depth of input (${p}) must match input depth for filter ${e.shape[3]}.`), $(u === e.shape[4], () => `Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${e.shape[4]}.`);\n let c = { dy: a, filter: e }, l = { pad: n, strides: o, inputShape: s }, m = T.runKernel(sn, c, l);\n return i ? W(m, [m.shape[1], m.shape[2], m.shape[3], m.shape[4]]) : m;\n}\nvar r2 = N({ conv3DBackpropInput_: FH });\nfunction PH(r, t8, e, o, n) {\n let s = v(r, \"x\", \"conv3dTranspose\"), a = v(t8, \"filter\", \"conv3dTranspose\");\n return r2(e, s, a, o, n);\n}\nvar o2 = N({ conv3dTranspose_: PH });\nfunction OH(r) {\n let e = { x: v(r, \"x\", \"cos\", \"float32\") };\n return T.runKernel(an, e);\n}\nvar n2 = N({ cos_: OH });\nfunction MH(r) {\n let e = { x: v(r, \"x\", \"cosh\", \"float32\") };\n return T.runKernel(un, e);\n}\nvar s2 = N({ cosh_: MH });\nfunction LH(r, t8 = 0, e = false, o = false) {\n let s = { x: v(r, \"x\", \"cumprod\") }, a = { axis: t8, exclusive: e, reverse: o };\n return T.runKernel(pn, s, a);\n}\nvar a2 = N({ cumprod_: LH });\nfunction BH(r, t8 = 0, e = false, o = false) {\n let s = { x: v(r, \"x\", \"cumsum\") }, a = { axis: t8, exclusive: e, reverse: o };\n return T.runKernel(cn, s, a);\n}\nvar i2 = N({ cumsum_: BH });\nfunction zH(r, t8, e, o = false) {\n let n = v(r, \"x\", \"denseBincount\"), s = v(t8, \"weights\", \"denseBincount\");\n $(n.dtype === \"int32\", () => `Error in denseBincount: input dtype must be int32, but got ${n.dtype}`), $(n.rank <= 2, () => `Error in denseBincount: input must be at most rank 2, but got rank ${n.rank}.`), $(e >= 0, () => `size must be non-negative, but got ${e}.`), $(s.size === n.size || s.size === 0, () => `Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${n.shape}, weights shape: ${s.shape}.`);\n let a = { x: n, weights: s }, i = { size: e, binaryOutput: o };\n return T.runKernel(ra, a, i);\n}\nvar u2 = N({ denseBincount_: zH });\nfunction VH(r, t8, e = \"NHWC\") {\n let o = v(r, \"x\", \"depthToSpace\", \"float32\"), n = e === \"NHWC\" ? o.shape[1] : o.shape[2], s = e === \"NHWC\" ? o.shape[2] : o.shape[3], a = e === \"NHWC\" ? o.shape[3] : o.shape[1];\n $(t8 > 1, () => `blockSize should be > 1 for depthToSpace, but was: ${t8}`), $(n * t8 >= 0, () => `Negative dimension size caused by overflow when multiplying\n ${n} and ${t8} for depthToSpace with input shape\n ${o.shape}`), $(s * t8 >= 0, () => `Negative dimension size caused by overflow when multiplying\n ${s} and ${t8} for depthToSpace with input shape\n ${o.shape}`), $(a % (t8 * t8) === 0, () => `Dimension size must be evenly divisible by ${t8 * t8} but is ${a} for depthToSpace with input shape ${o.shape}`);\n let i = { x: o }, p = { blockSize: t8, dataFormat: e };\n return T.runKernel(mn, i, p);\n}\nvar p2 = N({ depthToSpace_: VH });\nfunction WH(r, t8, e, o, n = \"NHWC\", s = [1, 1], a) {\n let i = v(r, \"x\", \"depthwiseConv2d\", \"float32\"), p = v(t8, \"filter\", \"depthwiseConv2d\", \"float32\"), u = i, c = false;\n i.rank === 3 && (c = true, u = W(i, [1, i.shape[0], i.shape[1], i.shape[2]])), $(u.rank === 4, () => `Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`), $(p.rank === 4, () => `Error in depthwiseConv2d: filter must be rank 4, but got rank ${p.rank}.`);\n let l = n === \"NHWC\" ? u.shape[3] : u.shape[1];\n $(l === p.shape[2], () => `Error in depthwiseConv2d: number of input channels (${l}) must match the inChannels dimension in filter ${p.shape[2]}.`), Bt(\"depthwiseConv2d\", o, a);\n let m = { x: u, filter: p }, d = { strides: e, pad: o, dataFormat: n, dilations: s, dimRoundingMode: a }, f = T.runKernel(dn, m, d);\n return c ? W(f, [f.shape[1], f.shape[2], f.shape[3]]) : f;\n}\nvar lc = N({ depthwiseConv2d_: WH });\nfunction UH(r) {\n let e = { x: v(r, \"x\", \"diag\") };\n return T.runKernel(oa, e);\n}\nvar c2 = N({ diag_: UH });\nfunction GH(r, t8, e, o, n = [1, 1], s = \"NHWC\") {\n let a = v(r, \"x\", \"dilation2d\"), i = v(t8, \"filter\", \"dilation2d\");\n $(a.rank === 3 || a.rank === 4, () => `Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`), $(i.rank === 3, () => `Error in dilation2d: filter must be rank 3, but got rank ${i.rank}.`), $(s === \"NHWC\", () => `Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);\n let p = a, u = false;\n a.rank === 3 && (p = W(a, [1, a.shape[0], a.shape[1], a.shape[2]]), u = true), $(p.shape[3] === i.shape[2], () => `Error in dilation2d: input and filter must have the same depth: ${p.shape[3]} vs ${i.shape[2]}`);\n let c = { x: p, filter: i }, l = { strides: e, pad: o, dilations: n }, m = T.runKernel(fn, c, l);\n return u ? W(m, [m.shape[1], m.shape[2], m.shape[3]]) : m;\n}\nvar l2 = N({ dilation2d_: GH });\nvar Ir = {};\nqe(Ir, { assertAndGetBroadcastShape: () => rt, getBroadcastDims: () => m2, getReductionAxes: () => yd });\nfunction m2(r, t8) {\n let e = r.length, o = [];\n for (let n = 0; n < e; n++) {\n let s = e - 1 - n, a = r[s] || 1;\n (t8[t8.length - 1 - n] || 1) > 1 && a === 1 && o.unshift(s);\n }\n return o;\n}\nfunction yd(r, t8) {\n let e = [];\n for (let o = 0; o < t8.length; o++) {\n let n = r[r.length - o - 1], s = t8.length - o - 1, a = t8[s];\n (n == null || n === 1 && a > 1) && e.unshift(s);\n }\n return e;\n}\nfunction rt(r, t8) {\n let e = Math.max(r.length, t8.length), o = new Array(e);\n for (let n = 0; n < e; n++) {\n let s = r[r.length - n - 1];\n s == null && (s = 1);\n let a = t8[t8.length - n - 1];\n if (a == null && (a = 1), s === 1)\n o[e - n - 1] = a;\n else if (a === 1)\n o[e - n - 1] = s;\n else if (s !== a) {\n let i = `Operands could not be broadcast together with shapes ${r} and ${t8}.`;\n throw Error(i);\n } else\n o[e - n - 1] = s;\n }\n return o;\n}\nfunction HH(r, t8) {\n let e = v(r, \"a\", \"equal\", \"string_or_numeric\"), o = v(t8, \"b\", \"equal\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(yn, n);\n}\nvar bd = N({ equal_: HH });\nfunction KH(r, t8, e) {\n let o = v(t8, \"a\", \"where\"), n = v(e, \"b\", \"where\"), s = v(r, \"condition\", \"where\", \"bool\"), a = rt(rt(s.shape, o.shape), n.shape), i = iu(s, a), p = iu(o, a), u = iu(n, a), c = { condition: i, t: p, e: u };\n return T.runKernel(fa, c);\n}\nvar lo = N({ where_: KH });\nfunction qH(r) {\n let e = { x: v(r, \"x\", \"zerosLike\") };\n return T.runKernel(Sa, e);\n}\nvar Ht = N({ zerosLike_: qH });\nfunction jH(r, t8) {\n let e = v(r, \"a\", \"div\"), o = v(t8, \"b\", \"div\");\n [e, o] = Oe(e, o);\n let n = je(e, o), s = Ht(n), a = bd(o, s);\n return lo(a, s, n);\n}\nvar d2 = N({ divNoNan_: jH });\nfunction XH(r, t8) {\n let e = v(r, \"t1\", \"dot\"), o = v(t8, \"t2\", \"dot\");\n $((e.rank === 1 || e.rank === 2) && (o.rank === 1 || o.rank === 2), () => `Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${o.rank}.`);\n let n = e.rank === 1 ? e.size : e.shape[1], s = o.rank === 1 ? o.size : o.shape[0];\n if ($(n === s, () => `Error in dot: inner dimensions of inputs must match, but got ${n} and ${s}.`), e.rank === 1 && o.rank === 1) {\n let a = W(e, [1, -1]), i = W(o, [-1, 1]), p = Ze(a, i);\n return W(p, []);\n } else if (e.rank === 1 && o.rank === 2) {\n let a = W(e, [1, -1]), i = W(o, [o.shape[0], o.shape[1]]), p = Ze(a, i);\n return W(p, [p.size]);\n } else if (e.rank === 2 && o.rank === 1) {\n let a = W(o, [-1, 1]), i = Ze(e, a);\n return W(i, [i.size]);\n } else {\n let a = W(o, [o.shape[0], o.shape[1]]);\n return Ze(e, a);\n }\n}\nvar f2 = N({ dot_: XH });\nfunction YH(r, ...t8) {\n let e = t8.map((n, s) => v(n, `tensors${s}`, \"einsum\")), o = { equation: r };\n return T.runKernel(Vi, e, o);\n}\nvar pu = N({ einsum_: YH });\nfunction QH(r) {\n let e = { x: v(r, \"x\", \"elu\", \"float32\") };\n return T.runKernel(gn, e);\n}\nvar Cd = N({ elu_: QH });\nfunction ZH(r, t8) {\n let e = v(r, \"x\", \"ensureShape\", \"string_or_numeric\");\n if (!ZC(e.shape, t8))\n throw new Error(`EnsureShape: Shape of tensor ${e.shape} is not compatible with expected shape ${t8}`);\n return r;\n}\nvar h2 = N({ ensureShape_: ZH });\nfunction JH(r) {\n let t8 = v(r, \"x\", \"erf\");\n $(t8.dtype === \"int32\" || t8.dtype === \"float32\", () => \"Input dtype must be `int32` or `float32`.\"), t8.dtype === \"int32\" && (t8 = We(t8, \"float32\"));\n let e = { x: t8 };\n return T.runKernel(xn, e);\n}\nvar g2 = N({ erf_: JH });\nfunction Bw(r, t8) {\n for (let e = 0; e < r.length; ++e)\n if (r[r.length - e - 1] !== t8 - 1 - e)\n return false;\n return true;\n}\nfunction x2(r, t8, e) {\n let o = r.length + t8.length, n = [], s = 0, a = 0;\n for (let i = 0; i < o; i++)\n e.indexOf(i) === -1 ? n.push(r[s++]) : n.push(t8[a++]);\n return n;\n}\nfunction eK(r, t8) {\n let e = [], o = r.length;\n for (let s = 0; s < o; s++)\n t8.indexOf(s) === -1 && e.push(r[s]);\n let n = t8.map((s) => r[s]);\n return [e, n];\n}\nfunction ii(r, t8) {\n let e = t8.map((o) => 1);\n return x2(r, e, t8);\n}\nfunction tK(r, t8, e) {\n $(Bw(t8, e), () => `${r} supports only inner-most axes for now. Got axes ${t8} and rank-${e} input.`);\n}\nfunction rK(r, t8) {\n if (Bw(r, t8))\n return null;\n let e = [];\n for (let o = 0; o < t8; ++o)\n r.indexOf(o) === -1 && e.push(o);\n return r.forEach((o) => e.push(o)), e;\n}\nfunction oK(r) {\n return r.map((t8, e) => [e, t8]).sort((t8, e) => t8[1] - e[1]).map((t8) => t8[0]);\n}\nfunction nK(r, t8) {\n let e = [];\n for (let o = t8 - r; o < t8; ++o)\n e.push(o);\n return e;\n}\nfunction aK(r, t8 = null, e = false) {\n let n = { x: v(r, \"x\", \"max\") }, s = { reductionIndices: t8, keepDims: e };\n return T.runKernel(Vn, n, s);\n}\nvar Ra = N({ max_: aK });\nfunction iK(r, t8 = null, e = false) {\n let n = { x: v(r, \"x\", \"min\") }, s = { axis: t8, keepDims: e };\n return T.runKernel(Hn, n, s);\n}\nvar Tl = N({ min_: iK });\nfunction uK(r, t8) {\n let e = v(r, \"base\", \"pow\"), o = v(t8, \"exp\", \"pow\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(rs, n);\n}\nvar ui = N({ pow_: uK });\nfunction ke(r, t8) {\n if ((Ot(r) && t8 !== \"string\" || Array.isArray(r)) && t8 !== \"complex64\")\n throw new Error(\"Error creating a new Scalar: value must be a primitive (number|boolean|string)\");\n if (t8 === \"string\" && Ot(r) && !(r instanceof Uint8Array))\n throw new Error(\"When making a scalar from encoded string, the value must be `Uint8Array`.\");\n return Sr(r, [], [], t8);\n}\nfunction pK(r) {\n let e = { x: v(r, \"x\", \"sqrt\", \"float32\") };\n return T.runKernel(Ss, e);\n}\nvar Dr = N({ sqrt_: pK });\nfunction cK(r) {\n let t8 = v(r, \"x\", \"square\"), e = {};\n return T.runKernel(\"Square\", { x: t8 }, e);\n}\nvar er = N({ square_: cK });\nfunction lK(r, t8 = null, e = false) {\n let o = v(r, \"x\", \"sum\");\n o.dtype === \"bool\" && (o = We(o, \"int32\"));\n let n = { x: o }, s = { axis: t8, keepDims: e };\n return T.runKernel(Is, n, s);\n}\nvar ot = N({ sum_: lK });\nfunction mK(r, t8 = \"euclidean\", e = null, o = false) {\n r = v(r, \"x\", \"norm\");\n let n = y2(r, t8, e), s = n.shape;\n if (o) {\n let a = Ei(e, r.shape);\n s = ii(n.shape, a);\n }\n return W(n, s);\n}\nfunction y2(r, t8, e = null) {\n if (r.rank === 0)\n return Jt(r);\n if (r.rank !== 1 && e === null)\n return y2(W(r, [-1]), t8, e);\n if (r.rank === 1 || typeof e == \"number\" || Array.isArray(e) && e.length === 1) {\n if (t8 === 1)\n return ot(Jt(r), e);\n if (t8 === 1 / 0)\n return Ra(Jt(r), e);\n if (t8 === -1 / 0)\n return Tl(Jt(r), e);\n if (t8 === \"euclidean\" || t8 === 2)\n return Dr(ot(ui(Jt(r), ke(2, \"int32\")), e));\n throw new Error(`Error in norm: invalid ord value: ${t8}`);\n }\n if (Array.isArray(e) && e.length === 2) {\n if (t8 === 1)\n return Ra(ot(Jt(r), e[0]), e[1] - 1);\n if (t8 === 1 / 0)\n return Ra(ot(Jt(r), e[1]), e[0]);\n if (t8 === -1 / 0)\n return Tl(ot(Jt(r), e[1]), e[0]);\n if (t8 === \"fro\" || t8 === \"euclidean\")\n return Dr(ot(er(r), e));\n throw new Error(`Error in norm: invalid ord value: ${t8}`);\n }\n throw new Error(`Error in norm: invalid axis: ${e}`);\n}\nvar Ku = N({ norm_: mK });\nfunction dK(r, t8 = null, e = false) {\n return Ku(r, \"euclidean\", t8, e);\n}\nvar b2 = N({ euclideanNorm_: dK });\nfunction fK(r) {\n let e = { x: v(r, \"x\", \"exp\") };\n return T.runKernel(bn, e);\n}\nvar $o = N({ exp_: fK });\nfunction hK(r, t8 = 0) {\n let e = v(r, \"x\", \"expandDims\", \"string_or_numeric\");\n $(t8 <= e.rank, () => \"Axis must be <= rank of the tensor\");\n let o = { input: e }, n = { dim: t8 };\n return T.runKernel(na, o, n);\n}\nvar Ms = N({ expandDims_: hK });\nfunction gK(r) {\n let e = { x: v(r, \"x\", \"expm1\") };\n return T.runKernel(Cn, e);\n}\nvar C2 = N({ expm1_: gK });\nfunction xK(r, t8) {\n let e = v(r, \"x\", \"tile\", \"string_or_numeric\");\n $(e.rank === t8.length, () => `Error in transpose: rank of input ${e.rank} must match length of reps ${t8}.`);\n let o = { x: e }, n = { reps: t8 };\n return T.runKernel(po, o, n);\n}\nvar cu = N({ tile_: xK });\nfunction yK(r, t8, e, o = \"float32\") {\n t8 == null && (t8 = r);\n let n = me([r, t8], o), s = r <= t8 ? r : t8;\n for (let i = 0; i < s; ++i)\n n.set(1, i, i);\n let a = W(n.toTensor(), [r, t8]);\n if (e == null)\n return a;\n if (e.length === 1)\n return cu(Ms(a, 0), [e[0], 1, 1]);\n if (e.length === 2)\n return cu(Ms(Ms(a, 0), 0), [e[0], e[1], 1, 1]);\n if (e.length === 3)\n return cu(Ms(Ms(Ms(a, 0), 0), 0), [e[0], e[1], e[2], 1, 1]);\n throw new Error(`eye() currently supports only 1D and 2D batchShapes, but received ${e.length}D.`);\n}\nvar wd = N({ eye_: yK });\nfunction bK(r) {\n let e = { x: v(r, \"x\", \"floor\", \"float32\") };\n return T.runKernel(Sn, e);\n}\nvar Sd = N({ floor_: bK });\nfunction CK(r, t8, e = 0, o = 0) {\n let n = v(r, \"x\", \"gather\"), s = v(t8, \"indices\", \"gather\", \"int32\"), a = { x: n, indices: s }, i = { axis: e, batchDims: o };\n return T.runKernel(aa, a, i);\n}\nvar Id = N({ gather_: CK });\nfunction wK(r, t8) {\n let e = v(r, \"a\", \"greater\", \"string_or_numeric\"), o = v(t8, \"b\", \"greater\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Nn, n);\n}\nvar qu = N({ greater_: wK });\nfunction SK(r, t8) {\n let e = v(r, \"a\", \"greaterEqual\", \"string_or_numeric\"), o = v(t8, \"b\", \"greaterEqual\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Tn, n);\n}\nvar vd = N({ greaterEqual_: SK });\nfunction IK(r) {\n let e = { input: v(r, \"input\", \"imag\") };\n return T.runKernel(Gi, e);\n}\nvar lu = N({ imag_: IK });\nfunction vK(r) {\n let e = { x: v(r, \"x\", \"isFinite\") };\n return T.runKernel(_n, e);\n}\nvar w2 = N({ isFinite_: vK });\nfunction kK(r) {\n let e = { x: v(r, \"x\", \"isInf\") };\n return T.runKernel($n, e);\n}\nvar S2 = N({ isInf_: kK });\nfunction NK(r) {\n let e = { x: v(r, \"x\", \"isNaN\") };\n return T.runKernel(En, e);\n}\nvar I2 = N({ isNaN_: NK });\nfunction TK(r, t8 = 0.2) {\n let o = { x: v(r, \"x\", \"leakyRelu\") }, n = { alpha: t8 };\n return T.runKernel(Rn, o, n);\n}\nvar kd = N({ leakyRelu_: TK });\nfunction _K(r, t8) {\n let e = v(r, \"a\", \"less\", \"string_or_numeric\"), o = v(t8, \"b\", \"less\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Dn, n);\n}\nvar _l = N({ less_: _K });\nfunction $K(r, t8) {\n let e = v(r, \"a\", \"lessEqual\", \"string_or_numeric\"), o = v(t8, \"b\", \"lessEqual\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(An, n);\n}\nvar mc = N({ lessEqual_: $K });\nfunction v2(r, t8, e) {\n if (e <= 0)\n throw new Error(\"The number of values should be positive.\");\n let o = { start: r, stop: t8, num: e };\n return T.runKernel(Fn, {}, o);\n}\nfunction EK(r, t8 = 5, e = 1, o = 1, n = 0.5) {\n let s = v(r, \"x\", \"localResponseNormalization\");\n $(s.rank === 4 || s.rank === 3, () => `Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`), $(qa(t8), () => `Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t8}.`);\n let a = s, i = false;\n s.rank === 3 && (i = true, a = W(s, [1, s.shape[0], s.shape[1], s.shape[2]]));\n let p = { x: a }, u = { depthRadius: t8, bias: e, alpha: o, beta: n }, c = T.runKernel(zn, p, u);\n return i ? W(c, [c.shape[1], c.shape[2], c.shape[3]]) : c;\n}\nvar k2 = N({ localResponseNormalization_: EK });\nfunction RK(r) {\n let e = { x: v(r, \"x\", \"log\", \"float32\") };\n return T.runKernel(Pn, e);\n}\nvar pi = N({ log_: RK });\nfunction DK(r) {\n let e = { x: v(r, \"x\", \"log1p\") };\n return T.runKernel(On, e);\n}\nvar Nd = N({ log1p_: DK });\nfunction AK(r) {\n return $(qs(r), () => \"The f passed in grad(f) must be a function\"), (t8, e) => {\n let o = v(t8, \"x\", \"tf.grad\", \"string_or_numeric\"), n = e != null ? v(e, \"dy\", \"tf.grad\") : null;\n return T.tidy(() => {\n let { value: s, grads: a } = T.gradients(() => r(o), [o], n);\n return n != null && yt(s.shape, n.shape, \"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"), Td(a), a[0];\n });\n };\n}\nfunction FK(r) {\n return $(qs(r), () => \"The f passed in grads(f) must be a function\"), (t8, e) => {\n $(Array.isArray(t8), () => \"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");\n let o = si(t8, \"args\", \"tf.grads\", \"string_or_numeric\"), n = e != null ? v(e, \"dy\", \"tf.grads\") : null;\n return T.tidy(() => {\n let { value: s, grads: a } = T.gradients(() => r(...o), o, n);\n return n != null && yt(s.shape, n.shape, \"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"), Td(a), a;\n });\n };\n}\nfunction PK(r) {\n return $(qs(r), () => \"The f passed in valueAndGrad(f) must be a function\"), (t8, e) => {\n $(t8 instanceof ut, () => \"The x passed in valueAndGrad(f)(x) must be a tensor\"), $(e == null || e instanceof ut, () => \"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");\n let { grads: o, value: n } = T.gradients(() => r(t8), [t8], e);\n return Td(o), { grad: o[0], value: n };\n };\n}\nfunction OK(r) {\n return $(qs(r), () => \"The f passed in valueAndGrads(f) must be a function\"), (t8, e) => {\n $(Array.isArray(t8) && t8.every((n) => n instanceof ut), () => \"The args passed in valueAndGrads(f)(args) must be array of tensors\"), $(e == null || e instanceof ut, () => \"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");\n let o = T.gradients(() => r(...t8), t8, e);\n return e != null && yt(o.value.shape, e.shape, \"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"), Td(o.grads), o;\n };\n}\nfunction zw(r, t8) {\n $(qs(r), () => \"The f passed in variableGrads(f) must be a function\"), $(t8 == null || Array.isArray(t8) && t8.every((u) => u instanceof oi), () => \"The varList passed in variableGrads(f, varList) must be an array of variables\");\n let e = t8 != null;\n if (!e) {\n t8 = [];\n for (let u in T.registeredVariables)\n t8.push(T.registeredVariables[u]);\n }\n let o = e ? t8.filter((u) => !u.trainable) : null, n = t8.length;\n t8 = t8.filter((u) => u.trainable), $(t8.length > 0, () => `variableGrads() expects at least one of the input variables to be trainable, but none of the ${n} variables is trainable.`);\n let s = true, { value: a, grads: i } = T.gradients(r, t8, null, s);\n $(i.some((u) => u != null), () => \"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().\"), $(a.rank === 0, () => `The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);\n let p = {};\n return t8.forEach((u, c) => {\n i[c] != null && (p[u.name] = i[c]);\n }), o != null && o.forEach((u) => p[u.name] = null), { value: a, grads: p };\n}\nfunction vr(r) {\n return T.customGrad(r);\n}\nfunction Td(r) {\n if (r.filter((e) => e == null).length > 0)\n throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.`);\n}\nfunction MK(r) {\n let e = { x: v(r, \"x\", \"neg\") };\n return T.runKernel(pa, e);\n}\nvar cr = N({ neg_: MK });\nfunction LK(r) {\n let e = { x: v(r, \"x\", \"softplus\") };\n return T.runKernel(ws, e);\n}\nvar _d = N({ softplus_: LK });\nfunction BK(r) {\n let t8 = v(r, \"x\", \"logSigmoid\");\n return vr((o) => ({ value: cr(_d(cr(o))), gradFunc: (a) => se(a, $a(cr(o))) }))(t8);\n}\nvar N2 = N({ logSigmoid_: BK });\nfunction zK(r, t8) {\n let e = v(r, \"a\", \"sub\"), o = v(t8, \"b\", \"sub\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(_s, n);\n}\nvar Te = N({ sub_: zK });\nfunction VK(r, t8 = -1) {\n let e = v(r, \"logits\", \"logSoftmax\");\n if (t8 === -1 && (t8 = e.rank - 1), t8 !== e.rank - 1)\n throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t8}`);\n return vr((n, s) => {\n let i = Ra(n, t8, true), p = Te(n, i), u = Te(We(p, \"float32\"), pi(ot($o(p), t8, true)));\n return s([u]), { value: u, gradFunc: (l, m) => {\n let [d] = m, f = true, h = $o(d);\n return Te(l, se(ot(l, t8, f), h));\n } };\n })(e);\n}\nvar T2 = N({ logSoftmax_: VK });\nfunction WK(r, t8 = null, e = false) {\n let o = v(r, \"x\", \"logSumExp\"), n = Ei(t8, o.shape), s = Ra(o, n, true), a = Te(o, s), i = $o(a), p = ot(i, n), u = pi(p), c = Ce(W(s, u.shape), u);\n if (e) {\n let l = ii(c.shape, n);\n return W(c, l);\n }\n return c;\n}\nvar $d = N({ logSumExp_: WK });\nfunction UK(r, t8) {\n let e = v(r, \"a\", \"logicalAnd\", \"bool\"), o = v(t8, \"b\", \"logicalAnd\", \"bool\");\n rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Mn, n);\n}\nvar ju = N({ logicalAnd_: UK });\nfunction GK(r) {\n let e = { x: v(r, \"x\", \"logicalNot\", \"bool\") };\n return T.runKernel(Ln, e);\n}\nvar Ed = N({ logicalNot_: GK });\nfunction HK(r, t8) {\n let e = v(r, \"a\", \"logicalOr\", \"bool\"), o = v(t8, \"b\", \"logicalOr\", \"bool\");\n rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Bn, n);\n}\nvar Rd = N({ logicalOr_: HK });\nfunction KK(r, t8) {\n let e = v(r, \"a\", \"logicalXor\", \"bool\"), o = v(t8, \"b\", \"logicalXor\", \"bool\");\n return rt(e.shape, o.shape), ju(Rd(r, t8), Ed(ju(r, t8)));\n}\nvar _2 = N({ logicalXor_: KK });\nvar Dd = 2147483648;\nfunction qK(r, t8, e = \"left\") {\n let o = v(r, \"sortedSequence\", \"searchSorted\"), n = v(t8, \"values\", \"searchSorted\"), s = o.shape[o.shape.length - 1], a = n.shape[n.shape.length - 1], i = W(o, [-1, s]), p = W(n, [-1, a]);\n if (i.rank < 2)\n throw new Error(\"Sorted input argument must be at least 2-dimensional\");\n if (i.shape[0] !== p.shape[0])\n throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");\n if (He(p.shape) >= Dd)\n throw new Error(`values tensor size must less than ${Dd}`);\n if (i.shape[1] >= Dd)\n throw new Error(`trailing dim_size must less than ${Dd} for int32 output type, was ${i.shape[1]}`);\n let u = { sortedSequence: i, values: p }, c = { side: e };\n return T.runKernel(hs, u, c);\n}\nvar $l = N({ searchSorted_: qK });\nfunction $2(r, t8) {\n return $l(r, t8, \"left\");\n}\nfunction jK(r, t8, e, o, n) {\n let s = v(r, \"x\", \"maxPool\"), a = 1, i = s, p = false;\n s.rank === 3 && (p = true, i = W(s, [1, s.shape[0], s.shape[1], s.shape[2]])), $(i.rank === 4, () => `Error in maxPool: input must be rank 4 but got rank ${i.rank}.`), $(xr(e, a), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${a}'`), Bt(\"maxPool\", o, n);\n let u = { x: i }, c = { filterSize: t8, strides: e, pad: o, dimRoundingMode: n }, l = T.runKernel(Un, u, c);\n return p ? W(l, [l.shape[1], l.shape[2], l.shape[3]]) : l;\n}\nvar Ad = N({ maxPool_: jK });\nfunction XK(r, t8 = [1, 1, 1], e, o, n, s = \"NDHWC\") {\n let a = v(r, \"x\", \"maxPool3d\"), i = a, p = false;\n a.rank === 4 && (p = true, i = W(a, [1, a.shape[0], a.shape[1], a.shape[2], a.shape[3]])), $(i.rank === 5, () => `Error in maxPool3d: x must be rank 5 but got rank ${i.rank}.`), $(s === \"NDHWC\", () => `Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`), Bt(\"maxPool3d\", o, n);\n let u = { x: i }, c = { filterSize: t8, strides: e, pad: o, dimRoundingMode: n, dataFormat: s }, l = T.runKernel(ia, u, c);\n return p ? W(l, [l.shape[1], l.shape[2], l.shape[3], l.shape[4]]) : l;\n}\nvar E2 = N({ maxPool3d_: XK });\nfunction YK(r, t8, e, o, n = false) {\n let a = { x: v(r, \"x\", \"maxPoolWithArgmax\") }, i = { filterSize: t8, strides: e, pad: o, includeBatchInIndex: n }, p = T.runKernel(ua, a, i);\n return { result: p[0], indexes: p[1] };\n}\nvar R2 = N({ maxPoolWithArgmax_: YK });\nfunction QK(r, t8) {\n let e = v(r, \"a\", \"maximum\"), o = v(t8, \"b\", \"maximum\");\n [e, o] = Oe(e, o), e.dtype === \"bool\" && (e = We(e, \"int32\"), o = We(o, \"int32\")), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Wn, n);\n}\nvar Fd = N({ maximum_: QK });\nfunction ZK(r, t8 = null, e = false) {\n let n = { x: v(r, \"x\", \"mean\") }, s = { axis: t8, keepDims: e };\n return T.runKernel(Gn, n, s);\n}\nvar Xu = N({ mean_: ZK });\nfunction Gr(r, t8 = \"float32\") {\n if (wt(r), t8 === \"complex64\") {\n let o = Gr(r, \"float32\"), n = Gr(r, \"float32\");\n return Er(o, n);\n }\n let e = Yp(He(r), t8);\n return T.makeTensor(e, r, t8);\n}\nfunction Da(r, t8 = \"float32\") {\n if (wt(r), t8 === \"complex64\") {\n let o = Da(r, \"float32\"), n = Gr(r, \"float32\");\n return Er(o, n);\n }\n let e = fl(He(r), t8);\n return T.makeTensor(e, r, t8);\n}\nfunction D2(r, t8, { indexing: e = \"xy\" } = {}) {\n if (e !== \"xy\" && e !== \"ij\")\n throw new TypeError(`${e} is not a valid third argument to meshgrid`);\n if (r === void 0)\n return [];\n let o = v(r, \"x\", \"meshgrid\", r instanceof ut ? r.dtype : \"float32\");\n if (t8 === void 0)\n return [o];\n let n = v(t8, \"y\", \"meshgrid\", t8 instanceof ut ? t8.dtype : \"float32\"), s = He(o.shape), a = He(n.shape);\n return e === \"xy\" ? (o = W(o, [1, -1]), n = W(n, [-1, 1]), [Ze(Da([a, 1], o.dtype), o), Ze(n, Da([1, s], n.dtype))]) : (o = W(o, [-1, 1]), n = W(n, [1, -1]), [Ze(o, Da([1, a], o.dtype)), Ze(Da([s, 1], n.dtype), n)]);\n}\nfunction JK(r, t8) {\n let e = v(r, \"a\", \"minimum\"), o = v(t8, \"b\", \"minimum\");\n [e, o] = Oe(e, o), e.dtype === \"bool\" && (e = We(e, \"int32\"), o = We(o, \"int32\")), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Kn, n);\n}\nvar Yu = N({ minimum_: JK });\nfunction eq(r, t8, e) {\n $(e === \"reflect\" || e === \"symmetric\", () => `Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);\n let o = v(r, \"x\", \"mirrorPad\");\n if (o.rank === 0)\n throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");\n $(t8.length === o.rank, () => `Padding doesn't match input. Must be ${o.rank}. Got ${t8.length}.`);\n let n = e === \"reflect\" ? 1 : 0;\n for (let i = 0; i < o.rank; i++)\n $(t8[i].length === 2, () => \"Invalid number of paddings. Must be length of 2 each.\"), $(t8[i][0] >= 0 && t8[i][0] <= o.shape[i] - n && t8[i][1] >= 0 && t8[i][1] <= o.shape[i] - n, () => `Padding in dimension ${i} cannot be greater than or equal to ${o.shape[i] - n} or less than 0 for input of shape ${o.shape}`);\n let s = { paddings: t8, mode: e }, a = { x: o };\n return T.runKernel(qn, a, s);\n}\nvar A2 = N({ mirrorPad_: eq });\nfunction tq(r, t8) {\n let e = v(r, \"a\", \"mod\"), o = v(t8, \"b\", \"mod\");\n [e, o] = Oe(e, o);\n let n = { a: e, b: o };\n return T.runKernel(jn, n);\n}\nvar F2 = N({ mod_: tq });\nfunction rq(r, t8 = null, e = false) {\n r = v(r, \"x\", \"moments\");\n let o = Ei(t8, r.shape), n = Xu(r, o, e), s = n.shape;\n e || (s = ii(n.shape, o));\n let a = er(Te(We(r, \"float32\"), W(n, s))), i = Xu(a, o, e);\n return { mean: n, variance: i };\n}\nvar P2 = N({ moments_: rq });\nfunction oq(r, t8, e, o) {\n let n = v(t8, \"data\", \"multiRNNCell\"), s = si(e, \"c\", \"multiRNNCell\"), a = si(o, \"h\", \"multiRNNCell\"), i = n, p = [];\n for (let l = 0; l < r.length; l++) {\n let m = r[l](i, s[l], a[l]);\n p.push(m[0]), p.push(m[1]), i = m[1];\n }\n let u = [], c = [];\n for (let l = 0; l < p.length; l += 2)\n u.push(p[l]), c.push(p[l + 1]);\n return [u, c];\n}\nvar O2 = N({ multiRNNCell_: oq });\nfunction nq(r, t8, e, o = false) {\n let n = v(r, \"logits\", \"multinomial\"), s = n.size, a = n.rank;\n if (s < 2)\n throw new Error(`Error in multinomial: you need at least 2 outcomes, but got ${s}.`);\n if (a > 2)\n throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);\n e = e || Math.random();\n let p = { logits: a === 1 ? W(n, [1, -1]) : n }, u = { numSamples: t8, seed: e, normalized: o }, c = T.runKernel(Xn, p, u);\n return a === 1 ? W(c, [c.size]) : c;\n}\nvar M2 = N({ multinomial_: nq });\nfunction sq(r, t8) {\n let e = v(r, \"a\", \"notEqual\", \"string_or_numeric\"), o = v(t8, \"b\", \"notEqual\", \"string_or_numeric\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o };\n return T.runKernel(Qn, n);\n}\nvar Pd = N({ notEqual_: sq });\nfunction aq(r, t8, e = 1, o = 0, n = \"int32\") {\n if (t8 < 2)\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${t8}`);\n let a = { indices: v(r, \"indices\", \"oneHot\", \"int32\") }, i = { dtype: n, depth: t8, onValue: e, offValue: o };\n return T.runKernel(es, a, i);\n}\nvar El = N({ oneHot_: aq });\nfunction iq(r) {\n let e = { x: v(r, \"x\", \"onesLike\") };\n return T.runKernel(ca, e);\n}\nvar L2 = N({ onesLike_: iq });\nfunction uq(r, t8) {\n let e = v(r, \"v1\", \"outerProduct\"), o = v(t8, \"v2\", \"outerProduct\");\n $(e.rank === 1 && o.rank === 1, () => `Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${o.rank}.`);\n let n = W(e, [-1, 1]), s = W(o, [1, -1]);\n return Ze(n, s);\n}\nvar B2 = N({ outerProduct_: uq });\nfunction pq(r, t8, e = 0) {\n let o = v(r, \"x\", \"pad\");\n if (o.rank === 0)\n throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");\n let n = { paddings: t8, constantValue: e }, s = { x: o };\n return T.runKernel(ts, s, n);\n}\nvar Aa = N({ pad_: pq });\nfunction cq(r, t8, e = 0) {\n return $(t8.length === 2, () => \"Invalid number of paddings. Must be length of 2.\"), Aa(r, [t8], e);\n}\nvar z2 = N({ pad1d_: cq });\nfunction lq(r, t8, e = 0) {\n return $(t8.length === 2 && t8[0].length === 2 && t8[1].length === 2, () => \"Invalid number of paddings. Must be length of 2 each.\"), Aa(r, t8, e);\n}\nvar V2 = N({ pad2d_: lq });\nfunction mq(r, t8, e = 0) {\n return $(t8.length === 3 && t8[0].length === 2 && t8[1].length === 2 && t8[2].length === 2, () => \"Invalid number of paddings. Must be length of 2 each.\"), Aa(r, t8, e);\n}\nvar W2 = N({ pad3d_: mq });\nfunction dq(r, t8, e = 0) {\n return $(t8.length === 4 && t8[0].length === 2 && t8[1].length === 2 && t8[2].length === 2 && t8[3].length === 2, () => \"Invalid number of paddings. Must be length of 2 each.\"), Aa(r, t8, e);\n}\nvar U2 = N({ pad4d_: dq });\nfunction fq(r, t8, e) {\n let o = v(r, \"x\", \"spaceToBatchND\");\n $(o.rank >= 1 + t8.length, () => `input rank ${o.rank} should be > than [blockShape] ${t8.length}`), $(e.length === t8.length, () => `paddings.shape[0] ${e.length} must be equal to [blockShape] ${t8.length}`), $(o.shape.reduce((a, i, p) => p > 0 && p <= t8.length ? a && (i + e[p - 1][0] + e[p - 1][1]) % t8[p - 1] === 0 : a, true), () => `input spatial dimensions ${o.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t8.toString()}`);\n let n = { x: o }, s = { blockShape: t8, paddings: e };\n return T.runKernel(ga, n, s);\n}\nvar Od = N({ spaceToBatchND_: fq });\nfunction hq(r, t8, e, o, n, s, a) {\n n == null && (n = [1, 1]), s == null && (s = 1), o === 0 && (o = \"valid\");\n let i = v(r, \"x\", \"maxPool\"), p = i, u = false;\n i.rank === 3 && (u = true, p = W(i, [1, i.shape[0], i.shape[1], i.shape[2]])), $(xr(s, n), () => `Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${n}'`);\n let c = Mw(p.shape, t8, s, n, o), l = [c.dilationHeight, c.dilationWidth], m;\n o === \"same\" ? m = xq([c.filterHeight, c.filterWidth], l) : m = [[0, 0], [0, 0]];\n let d = l[0] === 1 && l[1] === 1, [f, h] = gq([c.inHeight, c.inWidth], l, m), g = d ? o : \"valid\", x = d ? p : Od(p, l, f), C = (e === \"avg\" ? () => fd(x, t8, s, g, a) : () => Ad(x, t8, s, g, a))(), S = d ? C : hd(C, l, h);\n return u ? W(S, [S.shape[1], S.shape[2], S.shape[3]]) : S;\n}\nfunction gq(r, t8, e) {\n let o = e.map((c) => c[0]), n = e.map((c) => c[1]), s = r.concat(o, n), a = t8.map((c, l) => (c - s[l] % c) % c), i = n.map((c, l) => c + a[l]), p = t8.map((c, l) => [o[l], i[l]]), u = t8.map((c, l) => [0, a[l]]);\n return [p, u];\n}\nfunction xq(r, t8) {\n let o = r.map((a, i) => a + (a - 1) * (t8[i] - 1)).map((a) => a - 1), n = o.map((a) => Math.floor(a / 2)), s = o.map((a, i) => a - n[i]);\n return o.map((a, i) => [n[i], s[i]]);\n}\nvar G2 = N({ pool_: hq });\nfunction yq(r, t8) {\n let e = v(r, \"x\", \"prelu\"), o = v(t8, \"alpha\", \"prelu\"), n = { x: e, alpha: o };\n return T.runKernel(os, n);\n}\nvar Md = N({ prelu_: yq });\nfunction bq(r, t8 = null, e = false) {\n let o = v(r, \"x\", \"prod\");\n o.dtype === \"bool\" && (o = We(o, \"int32\"));\n let n = { x: o }, s = { axis: t8, keepDims: e };\n return T.runKernel(ns, n, s);\n}\nvar H2 = N({ prod_: bq });\nfunction Cq(r, t8, e, o) {\n let n = r.map((c, l) => v(c, `tensors${l}`, \"raggedGather\", \"int32\")), s = v(t8, \"paramsDenseValues\", \"raggedGather\"), a = v(e, \"indices\", \"raggedGather\", \"int32\"), i = { paramsNestedSplits: n, paramsDenseValues: s, indices: a }, p = { outputRaggedRank: o }, u = T.runKernel(Qp, i, p);\n return { outputNestedSplits: u.slice(0, u.length - 1), outputDenseValues: u[u.length - 1] };\n}\nvar K2 = N({ raggedGather_: Cq });\nfunction wq(r, t8, e) {\n let o = v(r, \"starts\", \"raggedRange\"), n = v(t8, \"limits\", \"raggedRange\", o.dtype), s = v(e, \"deltas\", \"raggedRange\", o.dtype), a = { starts: o, limits: n, deltas: s }, i = T.runKernel(Zp, a);\n return { rtNestedSplits: i[0], rtDenseValues: i[1] };\n}\nvar q2 = N({ raggedRange_: wq });\nfunction Sq(r, t8, e, o, n) {\n let s = v(r, \"shape\", \"raggedTensorToTensor\", \"int32\"), a = v(t8, \"values\", \"raggedTensorToTensor\"), i = v(e, \"defaultValue\", \"raggedTensorToTensor\", a.dtype), p = o.map((l, m) => v(l, `tensors${m}`, \"raggedTensorToTensor\", \"int32\")), u = { shape: s, values: a, defaultValue: i, rowPartitionTensors: p }, c = { rowPartitionTypes: n };\n return T.runKernel(Jp, u, c);\n}\nvar j2 = N({ raggedTensorToTensor_: Sq });\nfunction Iq(r, t8, e) {\n wt(r);\n let o = He(r), n = null;\n if (e == null || e === \"float32\")\n n = new Float32Array(o);\n else if (e === \"int32\")\n n = new Int32Array(o);\n else if (e === \"bool\")\n n = new Uint8Array(o);\n else\n throw new Error(`Unknown data type ${e}`);\n for (let s = 0; s < o; s++)\n n[s] = t8();\n return T.makeTensor(n, r, e);\n}\nvar X2 = N({ rand_: Iq });\nvar Wd = Kp(qw());\nvar h1 = {};\nqe(h1, { TEST_EPSILON_FLOAT16: () => m1, createVideoElement: () => Oq, encodeStrings: () => f1, expectArrayBuffersEqual: () => Pq, expectArraysClose: () => Rq, expectArraysEqual: () => Aq, expectNumbersClose: () => d1, expectPromiseToFail: () => Dq, expectValuesInRange: () => Fq, play: () => Mq, testEpsilon: () => Bd });\nvar Eq = 1e-3;\nvar m1 = 0.1;\nfunction Rq(r, t8, e) {\n return e == null && (e = Bd()), jw(r, t8, (o, n) => Xw(o, n, e));\n}\nfunction Bd() {\n return T.backend.floatPrecision() === 32 ? Eq : m1;\n}\nfunction jw(r, t8, e) {\n let o = true;\n if ((Ot(r) || Ot(t8)) && (o = false), Ot(r) && Ot(t8) && (o = true), o) {\n let a = r.constructor.name, i = t8.constructor.name;\n if (a !== i)\n throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${i}`);\n }\n if (Array.isArray(r) && Array.isArray(t8)) {\n let a = ir(r), i = ir(t8);\n if (!Cr(a, i))\n throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${i}]`);\n }\n let n = Ot(r) ? r : Ps(r), s = Ot(t8) ? t8 : Ps(t8);\n if (n.length !== s.length)\n throw new Error(`Arrays have different lengths actual: ${n.length} vs expected: ${s.length}.\nActual: ${n}.\nExpected: ${s}.`);\n for (let a = 0; a < s.length; ++a) {\n let i = n[a], p = s[a];\n if (!e(i, p))\n throw new Error(`Arrays differ: actual[${a}] = ${i}, expected[${a}] = ${p}.\nActual: ${n}.\nExpected: ${s}.`);\n }\n typeof expect != \"undefined\" && expect().nothing();\n}\nfunction Dq(r, t8) {\n r().then(() => t8.fail(), () => t8()), typeof expect != \"undefined\" && expect().nothing();\n}\nfunction Aq(r, t8) {\n let e = typeof t8 == \"string\" || typeof t8 == \"number\" || typeof t8 == \"boolean\" ? [t8] : t8;\n return Vo(r) || Vo(r[0]) || Vo(t8) || Vo(t8[0]) ? jw(r, e, (o, n) => o == n) : jw(r, t8, (o, n) => Xw(o, n, 0));\n}\nfunction d1(r, t8, e) {\n if (e == null && (e = Bd()), !Xw(r, t8, e))\n throw new Error(`Numbers differ: actual === ${r}, expected === ${t8}`);\n typeof expect != \"undefined\" && expect().nothing();\n}\nfunction Xw(r, t8, e) {\n return !isFinite(r) && !isFinite(t8) ? true : !(isNaN(r) || isNaN(t8) || Math.abs(r - t8) > e);\n}\nfunction Fq(r, t8, e) {\n for (let o = 0; o < r.length; o++)\n if (r[o] < t8 || r[o] > e)\n throw new Error(`Value out of range:${r[o]} low: ${t8}, high: ${e}`);\n}\nfunction Pq(r, t8) {\n let e = new Float32Array(r), o = new Float32Array(t8);\n if (e.length !== o.length)\n throw new Error(`Expected ArrayBuffer to be of length ${o.length}, but it was ${e.length}`);\n for (let n = 0; n < o.length; n++)\n if (e[n] !== o[n])\n throw new Error(`Expected ArrayBuffer value at ${n} to be ${o[n]} but got ${e[n]} instead`);\n}\nfunction f1(r) {\n for (let t8 = 0; t8 < r.length; t8++) {\n let e = r[t8];\n Array.isArray(e) ? f1(e) : r[t8] = tu(e);\n }\n return r;\n}\nfunction Oq(r) {\n let t8 = document.createElement(\"video\");\n return \"playsInline\" in t8 && (t8.playsInline = true), t8.muted = true, t8.loop = true, t8.style.position = \"fixed\", t8.style.left = \"0px\", t8.style.top = \"0px\", t8.preload = \"auto\", t8.appendChild(r), new Promise((e) => {\n t8.addEventListener(\"loadeddata\", (o) => e(t8)), t8.load();\n });\n}\nasync function Mq(r) {\n await r.play(), \"requestVideoFrameCallback\" in r && await new Promise((t8) => {\n r.requestVideoFrameCallback(t8);\n });\n}\nvar Zu = class {\n constructor(t8, e, o, n, s) {\n this.mean = t8, this.stdDev = e, this.dtype = o, this.nextVal = NaN, this.truncated = n, this.truncated && (this.upper = this.mean + this.stdDev * 2, this.lower = this.mean - this.stdDev * 2);\n let a = s || Math.random();\n this.random = Wd.alea(a.toString());\n }\n nextValue() {\n if (!isNaN(this.nextVal)) {\n let n = this.nextVal;\n return this.nextVal = NaN, n;\n }\n let t8, e, o = false;\n for (; !o; ) {\n let n, s, a;\n do\n n = 2 * this.random() - 1, s = 2 * this.random() - 1, a = n * n + s * s;\n while (a >= 1 || a === 0);\n let i = Math.sqrt(-2 * Math.log(a) / a);\n t8 = this.mean + this.stdDev * n * i, e = this.mean + this.stdDev * s * i, (!this.truncated || this.isValidTruncated(t8)) && (o = true);\n }\n return (!this.truncated || this.isValidTruncated(e)) && (this.nextVal = this.convertValue(e)), this.convertValue(t8);\n }\n convertValue(t8) {\n return this.dtype == null || this.dtype === \"float32\" ? t8 : Math.round(t8);\n }\n isValidTruncated(t8) {\n return t8 <= this.upper && t8 >= this.lower;\n }\n};\nvar zd = class {\n constructor(t8, e, o, n) {\n this.alpha = t8, this.beta = 1 / e, this.dtype = o;\n let s = n || Math.random();\n this.randu = Wd.alea(s.toString()), this.randn = new Zu(0, 1, o, false, this.randu()), t8 < 1 ? this.d = t8 + 2 / 3 : this.d = t8 - 1 / 3, this.c = 1 / Math.sqrt(9 * this.d);\n }\n nextValue() {\n let t8, e, o, n, s, a;\n for (; ; ) {\n do\n n = this.randn.nextValue(), a = 1 + this.c * n;\n while (a <= 0);\n if (a *= a * a, t8 = n * n, e = 1 - 0.331 * t8 * t8, o = 0.5 * t8 + this.d * (1 - a + Math.log(a)), s = this.randu(), s < e || Math.log(s) < o)\n break;\n }\n return a = 1 / this.beta * this.d * a, this.alpha < 1 && (a *= Math.pow(this.randu(), 1 / this.alpha)), this.convertValue(a);\n }\n convertValue(t8) {\n return this.dtype === \"float32\" ? t8 : Math.round(t8);\n }\n};\nvar Vd = class {\n constructor(t8 = 0, e = 1, o, n) {\n if (this.canReturnFloat = () => this.dtype == null || this.dtype === \"float32\", this.min = t8, this.range = e - t8, this.dtype = o, n == null && (n = Math.random()), typeof n == \"number\" && (n = n.toString()), !this.canReturnFloat() && this.range <= 1)\n throw new Error(`The difference between ${t8} - ${e} <= 1 and dtype is not float`);\n this.random = Wd.alea(n);\n }\n convertValue(t8) {\n return this.canReturnFloat() ? t8 : Math.round(t8);\n }\n nextValue() {\n return this.convertValue(this.min + this.range * this.random());\n }\n};\nfunction Lq(r, t8, e = 1, o = \"float32\", n) {\n if (wt(r), e == null && (e = 1), o == null && (o = \"float32\"), o !== \"float32\" && o !== \"int32\")\n throw new Error(`Unsupported data type ${o}`);\n let s = new zd(t8, e, o, n), a = me(r, o);\n for (let i = 0; i < a.values.length; i++)\n a.values[i] = s.nextValue();\n return a.toTensor();\n}\nvar g1 = N({ randomGamma_: Lq });\nfunction Bq(r, t8 = 0, e = 1, o, n) {\n if (wt(r), o != null && o === \"bool\")\n throw new Error(`Unsupported data type ${o}`);\n let s = new Zu(t8, e, o, false, n), a = me(r, o);\n for (let i = 0; i < a.values.length; i++)\n a.values[i] = s.nextValue();\n return a.toTensor();\n}\nvar Ud = N({ randomNormal_: Bq });\nfunction zq(r, t8, e) {\n if (t8 != null && t8 === \"bool\")\n throw new Error(`Unsupported data type ${t8}`);\n return Ud(r, 0, 1, t8, e);\n}\nvar x1 = N({ randomStandardNormal_: zq });\nfunction Vq(r, t8 = 0, e = 1, o = \"float32\", n) {\n wt(r);\n let s = me(r, o), a = new Vd(t8, e, null, n);\n for (let i = 0; i < s.values.length; i++)\n s.values[i] = a.nextValue();\n return s.toTensor();\n}\nvar dc = N({ randomUniform_: Vq });\nfunction Wq(r, t8, e, o) {\n return dc(r, t8, e, \"int32\", o);\n}\nvar y1 = N({ randomUniformInt_: Wq });\nfunction mu(r, t8, e = 1, o = \"float32\") {\n if (e === 0)\n throw new Error(\"Cannot have a step of zero\");\n let n = { start: r, stop: t8, step: e, dtype: o };\n return T.runKernel(ma, {}, n);\n}\nfunction Uq(r) {\n let e = { input: v(r, \"input\", \"real\") };\n return T.runKernel(qi, e);\n}\nvar ci = N({ real_: Uq });\nfunction Gq(r) {\n let e = { x: v(r, \"x\", \"reciprocal\") };\n return T.runKernel(ss, e);\n}\nvar b1 = N({ reciprocal_: Gq });\nfunction Hq(r) {\n let e = { x: v(r, \"x\", \"relu\") };\n return T.runKernel(as, e);\n}\nvar du = N({ relu_: Hq });\nfunction Kq(r) {\n let e = { x: v(r, \"x\", \"relu6\") };\n return T.runKernel(ps, e);\n}\nvar Gd = N({ relu6_: Kq });\nfunction qq(r, t8) {\n let o = { x: v(r, \"x\", \"reverse\") }, n = { dims: t8 };\n return T.runKernel(cs, o, n);\n}\nvar mo = N({ reverse_: qq });\nfunction jq(r) {\n let t8 = v(r, \"x\", \"reverse\");\n return $(t8.rank === 1, () => `Error in reverse1D: x must be rank 1 but got rank ${t8.rank}.`), mo(t8, 0);\n}\nvar C1 = N({ reverse1d_: jq });\nfunction Xq(r, t8) {\n let e = v(r, \"x\", \"reverse\");\n return $(e.rank === 2, () => `Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`), mo(e, t8);\n}\nvar w1 = N({ reverse2d_: Xq });\nfunction Yq(r, t8) {\n let e = v(r, \"x\", \"reverse\");\n return $(e.rank === 3, () => `Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`), mo(e, t8);\n}\nvar S1 = N({ reverse3d_: Yq });\nfunction Qq(r, t8) {\n let e = v(r, \"x\", \"reverse\");\n return $(e.rank === 4, () => `Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`), mo(e, t8);\n}\nvar I1 = N({ reverse4d_: Qq });\nfunction Zq(r) {\n let e = { x: v(r, \"x\", \"round\") };\n return T.runKernel(ls, e);\n}\nvar Hd = N({ round_: Zq });\nfunction Jq(r) {\n let e = { x: v(r, \"x\", \"rsqrt\", \"float32\") };\n return T.runKernel(ms, e);\n}\nvar v1 = N({ rsqrt_: Jq });\nfunction e6(r) {\n let e = { x: v(r, \"x\", \"selu\") };\n return T.runKernel(gs, e);\n}\nvar k1 = N({ selu_: e6 });\nfunction t6(r, t8, e, o, n, s = [1, 1], a = \"NHWC\") {\n let i = v(r, \"x\", \"separableConv2d\"), p = v(t8, \"depthwiseFilter\", \"separableConv2d\"), u = v(e, \"pointwiseFilter\", \"separableConv2d\"), c = i, l = false;\n if (i.rank === 3 && (l = true, c = W(i, [1, i.shape[0], i.shape[1], i.shape[2]])), a === \"NCHW\")\n throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");\n $(c.rank === 4, () => `Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`), $(p.rank === 4, () => `Error in separableConv2d: depthwise filter must be rank 4, but got rank ${p.rank}.`), $(u.rank === 4, () => `Error in separableConv2d: pointwise filter must be rank 4, but got rank ${p.rank}.`), $(u.shape[0] === 1, () => `Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`), $(u.shape[1] === 1, () => `Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);\n let m = p.shape[2], d = p.shape[3];\n $(u.shape[2] === m * d, () => `Error in separableConv2d: the third dimension of pointwise filter must be ${m * d}, but got ${u.shape[2]}.`);\n let f = lc(c, p, o, n, a, s), g = uu(f, u, 1, \"valid\", a);\n return l ? W(g, [g.shape[1], g.shape[2], g.shape[3]]) : g;\n}\nvar N1 = N({ separableConv2d_: t6 });\nasync function r6(r, t8) {\n let e = v(r, \"x\", \"setdiff1d\"), o = v(t8, \"y\", \"setdiff1d\");\n $(e.dtype === o.dtype, () => `x and y should have the same dtype, but got x (${e.dtype}) and y (${o.dtype}).`), $(e.rank === 1, () => `x should be 1D tensor, but got x (${e.shape}).`), $(o.rank === 1, () => `y should be 1D tensor, but got y (${o.shape}).`);\n let n = await e.data(), s = await o.data(), a = new Set(s), i = 0;\n for (let c = 0; c < n.length; c++)\n a.has(n[c]) || i++;\n let p = new tt([i], e.dtype), u = new tt([i], \"int32\");\n for (let c = 0, l = 0; c < n.length; c++)\n a.has(n[c]) || (p.values[l] = n[c], u.values[l] = c, l++);\n return [p.toTensor(), u.toTensor()];\n}\nvar T1 = r6;\nfunction o6(r) {\n let e = { x: v(r, \"x\", \"sign\") };\n return T.runKernel(bs, e);\n}\nvar _1 = N({ sign_: o6 });\nfunction n6(r) {\n let e = { x: v(r, \"x\", \"sin\", \"float32\") };\n return T.runKernel(xs, e);\n}\nvar $1 = N({ sin_: n6 });\nfunction s6(r) {\n let e = { x: v(r, \"x\", \"sinh\") };\n return T.runKernel(ys, e);\n}\nvar E1 = N({ sinh_: s6 });\nfunction a6(r, t8, e) {\n let o = v(r, \"x\", \"slice1d\");\n return $(o.rank === 1, () => `slice1d expects a rank-1 tensor, but got a rank-${o.rank} tensor`), Xe(o, [t8], [e]);\n}\nvar R1 = N({ slice1d_: a6 });\nfunction i6(r, t8, e) {\n let o = v(r, \"x\", \"slice2d\");\n return $(o.rank === 2, () => `slice2d expects a rank-2 tensor, but got a rank-${o.rank} tensor`), Xe(o, t8, e);\n}\nvar D1 = N({ slice2d_: i6 });\nfunction u6(r, t8, e) {\n let o = v(r, \"x\", \"slice3d\");\n return $(o.rank === 3, () => `slice3d expects a rank-3 tensor, but got a rank-${o.rank} tensor`), Xe(o, t8, e);\n}\nvar A1 = N({ slice3d_: u6 });\nfunction p6(r, t8, e) {\n let o = v(r, \"x\", \"slice4d\");\n return $(o.rank === 4, () => `slice4d expects a rank-4 tensor, but got a rank-${o.rank} tensor`), Xe(o, t8, e);\n}\nvar F1 = N({ slice4d_: p6 });\nfunction c6(r, t8 = -1) {\n let e = v(r, \"logits\", \"softmax\", \"float32\");\n if (t8 === -1 && (t8 = e.rank - 1), t8 !== e.rank - 1)\n throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t8}`);\n let o = { logits: e }, n = { dim: t8 };\n return T.runKernel(vs, o, n);\n}\nvar P1 = N({ softmax_: c6 });\nfunction l6(r) {\n $(r.dtype === \"complex64\", () => `The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);\n let t8 = { input: r };\n return T.runKernel(Wi, t8);\n}\nvar fc = N({ fft_: l6 });\nfunction m6(r) {\n $(r.dtype === \"complex64\", () => `The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);\n let t8 = { input: r };\n return T.runKernel(Ui, t8);\n}\nvar Ju = N({ ifft_: m6 });\nfunction d6(r) {\n let t8 = r.shape[r.shape.length - 1], e = r.size / t8, o;\n if (t8 <= 2) {\n let n = W(r, [e, t8]);\n o = Ju(n);\n } else {\n let n = [e, 2 * (t8 - 1)], s = W(ci(r), [e, t8]), a = W(lu(r), [e, t8]), i = mo(Xe(s, [0, 1], [e, t8 - 2]), 1), p = se(mo(Xe(a, [0, 1], [e, t8 - 2]), 1), ke(-1)), u = bt([s, i], 1), c = bt([a, p], 1), l = W(Er(u, c), [n[0], n[1]]);\n o = Ju(l);\n }\n if (o = ci(o), r.rank === 3 && r.shape[0] !== 0) {\n let n = o, s = r.shape[0];\n o = W(o, [s, o.shape[0] / s, o.shape[1]]), n.dispose();\n }\n return o;\n}\nvar Kd = N({ irfft_: d6 });\nfunction f6(r, t8, e = 0) {\n let n = { x: v(r, \"x\", \"split\") }, s = { numOrSizeSplits: t8, axis: e };\n return T.runKernel(xa, n, s);\n}\nvar li = N({ split_: f6 });\nfunction h6(r, t8) {\n $(r.dtype === \"float32\", () => `The dtype for rfft() must be real value but got ${r.dtype}`);\n let e = r.shape[r.shape.length - 1], o = r.size / e, n;\n if (t8 != null && t8 < e) {\n let f = r.shape.map((g) => 0), h = r.shape.map((g) => g);\n h[r.shape.length - 1] = t8, n = Xe(r, f, h), e = t8;\n } else if (t8 != null && t8 > e) {\n let f = r.shape.map((h) => h);\n f[r.shape.length - 1] = t8 - e, n = bt([r, Gr(f)], r.shape.length - 1), e = t8;\n } else\n n = r;\n let s = Ht(n), a = W(Er(n, s), [o, e]), i = fc(a), p = Math.floor(e / 2) + 1, u = ci(i), c = lu(i), l = li(u, [p, e - p], u.shape.length - 1), m = li(c, [p, e - p], c.shape.length - 1), d = n.shape.slice();\n return d[n.shape.length - 1] = p, W(Er(l[0], m[0]), d);\n}\nvar hc = N({ rfft_: h6 });\nfunction g6(r, t8) {\n let e = v(r, \"a\", \"squaredDifference\"), o = v(t8, \"b\", \"squaredDifference\");\n [e, o] = Oe(e, o), rt(e.shape, o.shape);\n let n = { a: e, b: o }, s = {};\n return T.runKernel(Ns, n, s);\n}\nvar qd = N({ squaredDifference_: g6 });\nfunction x6(r, t8) {\n let e = v(r, \"x\", \"squeeze\", \"string_or_numeric\");\n return W(e, JC(e.shape, t8).newShape);\n}\nvar gc = N({ squeeze_: x6 });\nfunction y6(r, t8 = 0) {\n let e = si(r, \"tensors\", \"stack\", \"string_or_numeric\");\n $(e.length >= 1, () => \"Pass at least one tensor to tf.stack\"), e.length > 0 && $(t8 <= e[0].rank, () => \"Axis must be <= rank of the tensor\");\n let o = e, n = { axis: t8 };\n return T.runKernel(la, o, n);\n}\nvar kr = N({ stack_: y6 });\nfunction b6(r, t8 = 0) {\n let o = { x: v(r, \"x\", \"step\") }, n = { alpha: t8 };\n return T.runKernel(So, o, n);\n}\nvar jd = N({ step_: b6 });\nfunction C6(r, t8, e, o, n = 0, s = 0, a = 0, i = 0, p = 0) {\n let c = { x: v(r, \"x\", \"stridedSlice\", \"string_or_numeric\") }, l = { begin: t8, end: e, strides: o, beginMask: n, endMask: s, ellipsisMask: a, newAxisMask: i, shrinkAxisMask: p };\n return T.runKernel(Ts, c, l);\n}\nvar O1 = N({ stridedSlice_: C6 });\nfunction w6(r) {\n let e = { x: v(r, \"x\", \"tan\", \"float32\") };\n return T.runKernel($s, e);\n}\nvar M1 = N({ tan_: w6 });\nfunction tr(r, t8) {\n io(r);\n let e = ir(r, t8);\n if (e.length !== 1)\n throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");\n return Sr(r, null, e, t8);\n}\nfunction fu(r, t8, e) {\n if (io(r), t8 != null && t8.length !== 2)\n throw new Error(\"tensor2d() requires shape to have two numbers\");\n let o = ir(r, e);\n if (o.length !== 2 && o.length !== 1)\n throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");\n if (o.length === 1 && t8 == null)\n throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");\n return Sr(r, t8, o, e);\n}\nfunction Xd(r, t8, e) {\n if (io(r), t8 != null && t8.length !== 3)\n throw new Error(\"tensor3d() requires shape to have three numbers\");\n let o = ir(r, e);\n if (o.length !== 3 && o.length !== 1)\n throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");\n if (o.length === 1 && t8 == null)\n throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");\n return Sr(r, t8, o, e);\n}\nfunction L1(r, t8, e) {\n if (io(r), t8 != null && t8.length !== 4)\n throw new Error(\"tensor4d() requires shape to have four numbers\");\n let o = ir(r, e);\n if (o.length !== 4 && o.length !== 1)\n throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");\n if (o.length === 1 && t8 == null)\n throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");\n return Sr(r, t8, o, e);\n}\nfunction B1(r, t8, e) {\n if (io(r), t8 != null && t8.length !== 5)\n throw new Error(\"tensor5d() requires shape to have five numbers\");\n let o = ir(r, e);\n if (o.length !== 5 && o.length !== 1)\n throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");\n if (o.length === 1 && t8 == null)\n throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");\n return Sr(r, t8, o, e);\n}\nfunction z1(r, t8, e) {\n if (io(r), t8 != null && t8.length !== 6)\n throw new Error(\"tensor6d() requires shape to have six numbers\");\n let o = ir(r, e);\n if (o.length !== 6 && o.length !== 1)\n throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");\n if (o.length === 1 && t8 == null)\n throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");\n return t8 = t8 || o, Sr(r, t8, o, e);\n}\nvar hu = {};\nqe(hu, { calculateShapes: () => V1, validateInput: () => xc, validateUpdateShape: () => Yw });\nfunction Yw(r, t8, e) {\n let o = t8.rank > 1 ? t8.shape[t8.rank - 1] : 1, n = t8.rank > 1 ? t8.rank - 1 : 1, s = `Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t8.shape}, shape: ${r}, sliceDim: ${o}, and batchDim: ${n}.`;\n if (e.rank < n)\n throw new Error(s + ` update.rank < ${n}. `);\n if (r.length < o + (e.rank - n))\n throw new Error(s + ` Output shape length < ${o + (e.rank - n)}`);\n if (e.rank !== n + r.length - o)\n throw new Error(s + ` update.rank != ${n + r.length - o}`);\n for (let a = 0; a < n; ++a)\n if (e.shape[a] !== t8.shape[a])\n throw new Error(s + ` updates.shape[${a}] (${e.shape[a]}) != indices.shape[${a}] (${t8.shape[a]}).`);\n for (let a = 0; a < e.rank - n; ++a)\n if (e.shape[a + n] !== r[a + o])\n throw new Error(s + ` updates.shape[${a + n}] (${e.shape[a + n]}) != shape[${a + n}] (${r[a + n]})`);\n}\nfunction xc(r, t8, e) {\n if (t8.rank < 1)\n throw new Error(`tf.scatterND() expects the indices to be rank 1 or higher, but the rank was ${t8.rank}.`);\n if (r.rank < 1)\n throw new Error(`tf.scatterND() expects the updates to be rank 1 or higher, but the rank was ${r.rank}.`);\n if (t8.dtype !== \"int32\")\n throw new Error(`The dtype of 'indices' should be int32, but got dtype: ${t8.dtype}`);\n if (e.length < 1)\n throw new Error(`Output rank must be greater or equal to 1, but got shape: ${e}`);\n if (e.length === 0) {\n if (t8.size === 0)\n throw new Error(`Indices specified for empty output. indices shape: ${t8.shape}`);\n if (r.size === 0)\n throw new Error(`Updates specified for empty output. updates shape: ${r.shape}`);\n }\n Yw(e, t8, r);\n}\nfunction V1(r, t8, e) {\n let o = t8.shape.length, n = o > 1 ? t8.shape[o - 1] : 1, s = e.length, a = 1;\n for (let l = n; l < s; ++l)\n a *= e[l];\n let i = n < 1 ? 1 : n, p = He(t8.shape) / i, u = [...js(e.slice(0, n)), 1], c = He(e);\n return { sliceRank: n, numUpdates: p, sliceSize: a, strides: u, outputSize: c };\n}\nfunction S6(r, t8, e) {\n let o = v(r, \"tensor\", \"tensorScatterupdate\"), n = v(t8, \"indices\", \"tensorScatterupdate\", \"int32\"), s = v(e, \"updates\", \"tensorScatterupdate\");\n if (xc(s, n, o.shape), o.dtype !== s.dtype)\n throw new Error(`tensor and updates must have the same dtype, instead they are ${o.dtype} and ${s.dtype}.`);\n let a = { tensor: o, indices: n, updates: s }, i = {};\n return T.runKernel(fs, a, i);\n}\nvar W1 = N({ tensorScatterUpdate_: S6 });\nfunction I6(r, t8 = 1, e = true) {\n let o = v(r, \"x\", \"topk\");\n if (o.rank === 0)\n throw new Error(\"topk() expects the input to be of rank 1 or higher\");\n let n = o.shape[o.shape.length - 1];\n if (t8 < 0)\n throw new Error(`'k' passed to topk() must be >= 0 but got ${t8}`);\n if (t8 > n)\n throw new Error(`'k' passed to topk() must be <= the last dimension (${n}) but got ${t8}`);\n let s = { x: o }, a = { k: t8, sorted: e }, [i, p] = T.runKernel(Rs, s, a);\n return { values: i, indices: p };\n}\nvar U1 = N({ topk_: I6 });\nfunction v6(r, t8 = 0, e = 1, o, n) {\n if (wt(r), o != null && o === \"bool\")\n throw new Error(\"Unsupported data type $ { dtype }\");\n let s = new Zu(t8, e, o, true, n), a = me(r, o);\n for (let i = 0; i < a.values.length; i++)\n a.values[i] = s.nextValue();\n return a.toTensor();\n}\nvar G1 = N({ truncatedNormal_: v6 });\nfunction k6(r, t8 = 0) {\n let e = v(r, \"x\", \"unique\", \"string_or_numeric\");\n $(e.rank > 0, () => \"The input tensor must be at least 1D\");\n let o = { x: e }, n = { axis: t8 }, [s, a] = T.runKernel(Zi, o, n);\n return { values: s, indices: a };\n}\nvar H1 = N({ unique_: k6 });\nfunction N6(r, t8, e) {\n let o = v(r, \"x\", \"unsortedSegmentSum\"), n = v(t8, \"segmentIds\", \"unsortedSegmentSum\", \"int32\");\n $(qa(e), () => \"numSegments must be of dtype int\");\n let s = { x: o, segmentIds: n }, a = { numSegments: e };\n return T.runKernel(Ji, s, a);\n}\nvar K1 = N({ unsortedSegmentSum_: N6 });\nfunction T6(r, t8 = 0) {\n let e = v(r, \"x\", \"unstack\", \"string_or_numeric\");\n $(t8 >= -e.shape.length && t8 < e.shape.length, () => `Axis = ${t8} is not in [-${e.shape.length}, ${e.shape.length})`);\n let o = { value: e }, n = { axis: t8 };\n return T.runKernel(wa, o, n);\n}\nvar fo = N({ unstack_: T6 });\nfunction q1(r, t8) {\n return $l(r, t8, \"right\");\n}\nfunction j1(r, t8 = true, e, o) {\n return T.makeVariable(r, t8, e, o);\n}\nfunction Yd(r, t8) {\n let e = [];\n for (let s = 0; s < t8.length; s++)\n t8[s] && e.push(s);\n let o = me(r, \"int32\"), n = me([e.length, r.length], \"int32\");\n for (let s = 0; s < e.length; s++) {\n let a = o.indexToLoc(e[s]), i = s * r.length;\n n.values.set(a, i);\n }\n return n.toTensor();\n}\nasync function _6(r) {\n let t8 = v(r, \"condition\", \"whereAsync\", \"bool\"), e = await t8.data(), o = Yd(t8.shape, e);\n return r !== t8 && t8.dispose(), o;\n}\nvar Qd = _6;\nasync function $6(r, t8, e) {\n let o = v(r, \"tensor\", \"boolMask\"), n = v(t8, \"mask\", \"boolMask\", \"bool\"), s = e == null ? 0 : e, a = n.rank, i = o.shape;\n $(a > 0, () => \"mask cannot be scalar\"), yt(i.slice(s, s + a), n.shape, \"mask's shape must match the first K dimensions of tensor's shape,\");\n let p = 1;\n for (let h = s; h < s + a; h++)\n p *= i[h];\n let u = i.slice(0, s).concat([p], i.slice(s + a)), c = W(o, u), l = W(n, [-1]), m = await Qd(l), d = gc(m, [1]), f = Id(c, d, s);\n return r !== o && o.dispose(), t8 !== n && n.dispose(), d.dispose(), c.dispose(), l.dispose(), m.dispose(), f;\n}\nvar E6 = $6;\nfunction R6(r, t8, e) {\n let o = v(r, \"x\", \"transpose\");\n if (t8 == null && (t8 = o.shape.map((a, i) => i).reverse()), $(o.rank === t8.length, () => `Error in transpose: rank of input ${o.rank} must match length of perm ${t8}.`), t8.forEach((a) => {\n $(a >= 0 && a < o.rank, () => `All entries in 'perm' must be between 0 and ${o.rank - 1} but got ${t8}`);\n }), o.rank <= 1)\n return o.clone();\n let n = { x: o }, s = { perm: t8 };\n return o.dtype === \"complex64\" ? De(() => {\n let a = ci(o), i = lu(o);\n return a = T.runKernel(co, { x: a }, s), i = T.runKernel(co, { x: i }, s), e && (i = cr(i)), Er(a, i);\n }) : T.runKernel(co, n, s);\n}\nvar yc = N({ transpose_: R6 });\nfunction D6(r, t8, e, o, n = true) {\n let s = v(r, \"v\", \"movingAverage\"), a = v(t8, \"x\", \"movingAverage\"), i = v(e, \"decay\", \"movingAverage\");\n Cw(s, a), $(Cr(s.shape, a.shape), () => \"Shape mismatch in v and x\");\n let p = ke(1), u = Te(p, i), c = se(Te(a, s), u);\n if (n) {\n $(o != null, () => \"When using zeroDebias: true, step is required.\");\n let l = v(o, \"step\", \"movingAverage\");\n c = je(c, Te(p, ui(i, l)));\n }\n return Ce(s, c);\n}\nvar A6 = N({ movingAverage_: D6 });\nfunction F6(r, t8, e) {\n wt(e);\n let o = v(r, \"indices\", \"scatterND\", \"int32\"), n = v(t8, \"updates\", \"scatterND\");\n xc(n, o, e);\n let s = { indices: o, updates: n }, a = { shape: e };\n return T.runKernel(ds, s, a);\n}\nvar P6 = N({ scatterND_: F6 });\nfunction X1(r, t8, e, o) {\n if (r.dtype !== \"int32\")\n throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);\n if (r.rank > 2)\n throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);\n let n = r.rank > 0 ? r.shape[0] : 1, s = r.rank > 1 ? r.shape[1] : 1;\n if (e.length !== s)\n throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);\n let a = t8.size;\n if (!(t8.rank === 0 || t8.rank === 1 && a === n))\n throw new Error(`sparseValues has incorrect shape ${t8.shape}, should be [] or [${n}]`);\n if (t8.dtype !== o.dtype)\n throw new Error(\"sparseValues.dtype must match defaultValues.dtype\");\n}\nfunction M6(r, t8, e, o = 0) {\n wt(e);\n let n = v(r, \"sparseIndices\", \"sparseToDense\", \"int32\"), s = v(t8, \"sparseValues\", \"sparseToDense\", \"string_or_numeric\"), a = v(o, \"defaultValue\", \"sparseToDense\", s.dtype);\n X1(n, s, e, a);\n let i = { sparseIndices: n, sparseValues: s, defaultValue: a }, p = { outputShape: e };\n return T.runKernel(ks, i, p);\n}\nvar L6 = N({ sparseToDense_: M6 });\nfunction B6(r, t8) {\n let e = v(t8, \"indices\", \"gatherND\", \"int32\"), n = { params: v(r, \"x\", \"gatherND\", \"string_or_numeric\"), indices: e };\n return T.runKernel(kn, n);\n}\nvar z6 = N({ gatherND_: B6 });\nfunction Y1(r, t8) {\n if (t8 == null)\n return r.shape.slice();\n if (Cr(r.shape, t8))\n return t8;\n if (r.shape.length === t8.length) {\n let e = [];\n for (let o = 0; o < r.shape.length; o++)\n t8[o] == null && r.shape[o] != null ? e.push(r.shape[o]) : e.push(t8[o]);\n return e;\n }\n return t8;\n}\nfunction V6(r, t8, e, o) {\n let n = v(r, \"x\", \"dropout\");\n if ($(n.dtype === \"float32\", () => `x has to be a floating point tensor since it's going to be scaled, but got a ${n.dtype} tensor instead.`), $(t8 >= 0 && t8 < 1, () => `rate must be a float in the range [0, 1), but got ${t8}.`), t8 === 0)\n return r instanceof ut ? n.clone() : n;\n let s = Y1(n, e), a = 1 - t8, i = je(Sd(Ce(dc(s, 0, 1, \"float32\", o), a)), a);\n return se(n, i);\n}\nvar W6 = N({ dropout_: V6 });\nfunction Qw(r) {\n return Math.floor(Math.pow(2, Math.ceil(Math.log(r) / Math.log(2))));\n}\nfunction Rl(r, t8, e) {\n let o = 1 - r % 2, n = new Float32Array(r);\n for (let s = 0; s < r; ++s) {\n let a = 2 * Math.PI * s / (r + o - 1);\n n[s] = t8 - e * Math.cos(a);\n }\n return tr(n, \"float32\");\n}\nasync function U6(r, t8, e = 1) {\n let o = v(r, \"predictions\", \"inTopK\"), n = v(t8, \"targets\", \"inTopK\");\n $(o.rank > 1, () => `inTopK() expects the predictions to be of rank 2 or higher, but got ${o.rank}`), $(o.rank - 1 === n.rank, () => `predictions rank should be 1 larger than targets rank, but got predictions rank ${o.rank} and targets rank ${n.rank}`), yt(o.shape.slice(0, o.shape.length - 1), n.shape, \"predictions's shape should be align with the targets' shape, except the last dimension.\");\n let s = o.shape[o.shape.length - 1];\n $(e > 0 && e <= s, () => `'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);\n let a = await o.data(), i = await n.data(), [p, u] = [a.length / s, s], c = ew(\"bool\", p);\n for (let l = 0; l < p; l++) {\n let m = l * u, d = a.subarray(m, m + u), f = [];\n for (let h = 0; h < d.length; h++)\n f.push({ value: d[h], index: h });\n f.sort((h, g) => g.value - h.value), c[l] = 0;\n for (let h = 0; h < e; h++)\n if (f[h].index === i[l]) {\n c[l] = 1;\n break;\n }\n }\n return r !== o && o.dispose(), t8 !== n && n.dispose(), ur(c, n.shape, \"bool\");\n}\nvar G6 = U6;\nvar Zw = {};\nqe(Zw, { conv2d: () => Z1, depthwiseConv2d: () => tN, matMul: () => rN });\nfunction H6(r, t8, e, o, n, s = \"NHWC\", a) {\n let i = r;\n r.rank === 3 && (i = W(r, [1, r.shape[0], r.shape[1], r.shape[2]]));\n let p = t8;\n p.rank === 3 && (p = W(t8, [1, t8.shape[0], t8.shape[1], t8.shape[2]])), $(i.rank === 4, () => `Error in conv2dDerFilter: input must be rank 4, but got shape ${i.shape}.`), $(p.rank === 4, () => `Error in conv2dDerFilter: dy must be rank 4, but got shape ${p.shape}.`), $(e.length === 4, () => `Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);\n let u = s === \"NHWC\" ? i.shape[3] : i.shape[1], c = s === \"NHWC\" ? p.shape[3] : p.shape[1];\n $(u === e[2], () => `Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${e[2]}.`), $(c === e[3], () => `Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`), Bt(\"conv2dDerFilter\", n, a);\n let l = { x: i, dy: p }, m = { strides: o, pad: n, dataFormat: s, dimRoundingMode: a, filterShape: e };\n return T.runKernel(Oi, l, m);\n}\nvar Q1 = N({ conv2DBackpropFilter_: H6 });\nfunction ep(r, t8, e) {\n if (e == null || e === \"linear\")\n return r;\n if (e === \"relu\")\n return se(r, jd(t8));\n throw new Error(`Cannot compute gradient for fused activation ${e}.`);\n}\nfunction tp(r, t8) {\n let e = t8, o = yd(r.shape, t8.shape);\n return o.length > 0 && (e = ot(e, o)), W(e, r.shape);\n}\nfunction rp(r, t8, e, o) {\n if (t8 === \"linear\")\n return r;\n if (t8 === \"relu\")\n return du(r);\n if (t8 === \"elu\")\n return Cd(r);\n if (t8 === \"relu6\")\n return Gd(r);\n if (t8 === \"prelu\")\n return Md(r, e);\n if (t8 === \"leakyrelu\")\n return kd(r, o);\n if (t8 === \"sigmoid\")\n return $a(r);\n throw new Error(`Unknown fused activation ${t8}.`);\n}\nvar op = (r, t8) => !(r > 0) || t8 === \"linear\";\nfunction K6({ x: r, filter: t8, strides: e, pad: o, dataFormat: n = \"NHWC\", dilations: s = [1, 1], dimRoundingMode: a, bias: i, activation: p = \"linear\", preluActivationWeights: u, leakyreluAlpha: c }) {\n if (p = p || \"linear\", op(T.state.gradientDepth, p) === false) {\n $(n === \"NHWC\", () => `Error in fused conv2d: got dataFormat of ${n} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);\n let _ = uu(r, t8, e, o, n, s, a);\n return i != null && (_ = Ce(_, i)), rp(_, p, u, c);\n }\n let l = v(r, \"x\", \"conv2d\", \"float32\"), m = v(t8, \"filter\", \"conv2d\", \"float32\"), d = l, f = false;\n l.rank === 3 && (f = true, d = W(l, [1, l.shape[0], l.shape[1], l.shape[2]])), $(d.rank === 4, () => `Error in fused conv2d: input must be rank 4, but got rank ${d.rank}.`), $(m.rank === 4, () => `Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`), Bt(\"fused conv2d\", o, a);\n let h = n === \"NHWC\" ? d.shape[3] : d.shape[1];\n $(m.shape[2] === h, () => `Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`), $(xr(e, s), () => `Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);\n let g = Hu(d.shape, m.shape, e, s, o, a), x;\n i != null && (x = v(i, \"bias\", \"fused conv2d\"), [x] = Oe(x, l), n === \"NHWC\" ? rt(g.outShape, x.shape) : ($(x.shape.length <= 1, () => `Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`), $(x.shape.length === 0 || x.shape[0] === g.outChannels || x.shape[0] === 1, () => `Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));\n let b;\n if (u != null) {\n let _ = u.shape;\n if ($(_.length <= 1 || _.length === 3, () => `Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`), _.length === 1)\n $(_[0] === 1 || _[0] === g.outChannels, () => `Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);\n else if (_.length === 3)\n try {\n rt(_, g.outShape);\n } catch (E) {\n let R = `Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;\n throw Error(R);\n }\n b = v(u, \"prelu weights\", \"fused conv2d\");\n }\n let C = (_, E) => {\n $(n === \"NHWC\", () => `Error in gradient of fused conv2D: got dataFormat of ${n} but only NHWC is currently supported.`);\n let [R, D, P, O] = E, M = ep(_, P, p);\n $(Gu(s), () => `Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);\n let L = xd(D.shape, M, R, e, o), B = Q1(D, M, R.shape, e, o), z = [L, B];\n if (O != null) {\n let U = tp(O, M);\n z.push(U);\n }\n return z;\n }, S = { x: d, filter: m, bias: x, preluActivationWeights: b }, k = { strides: e, pad: o, dataFormat: n, dilations: s, dimRoundingMode: a, activation: p, leakyreluAlpha: c };\n return i == null ? vr((E, R, D) => {\n let P = T.runKernel(vo, S, k);\n return D([R, E, P]), f && (P = W(P, [P.shape[1], P.shape[2], P.shape[3]])), { value: P, gradFunc: C };\n })(d, m) : vr((E, R, D, P) => {\n let O = T.runKernel(vo, S, k);\n return P([R, E, O, D]), f && (O = W(O, [O.shape[1], O.shape[2], O.shape[3]])), { value: O, gradFunc: C };\n })(d, m, x);\n}\nvar Z1 = N({ fusedConv2d_: K6 });\nfunction q6(r, t8, e, o, n, s = [1, 1], a) {\n let i = r;\n r.rank === 3 && (i = W(r, [1, r.shape[0], r.shape[1], r.shape[2]]));\n let p = t8;\n p.rank === 3 && (p = W(t8, [1, t8.shape[0], t8.shape[1], t8.shape[2]]));\n let u = { x: i, dy: p }, c = { strides: o, pad: n, dimRoundingMode: a, dilations: s, filterShape: e };\n return T.runKernel(Mi, u, c);\n}\nvar J1 = N({ depthwiseConv2dNativeBackpropFilter_: q6 });\nfunction j6(r, t8, e, o, n, s = [1, 1], a) {\n let i = t8, p = false;\n t8.rank === 3 && (p = true, i = W(t8, [1, t8.shape[0], t8.shape[1], t8.shape[2]]));\n let u = { dy: i, filter: e }, c = { strides: o, pad: n, dimRoundingMode: a, dilations: s, inputShape: r }, l = T.runKernel(Li, u, c);\n return p ? W(l, [l.shape[1], l.shape[2], l.shape[3]]) : l;\n}\nvar eN = N({ depthwiseConv2dNativeBackpropInput_: j6 });\nfunction X6({ x: r, filter: t8, strides: e, pad: o, dataFormat: n = \"NHWC\", dilations: s = [1, 1], dimRoundingMode: a, bias: i, activation: p = \"linear\", preluActivationWeights: u, leakyreluAlpha: c }) {\n if (op(T.state.gradientDepth, p) === false) {\n let k = lc(r, t8, e, o, n, s, a);\n return i != null && (k = Ce(k, i)), rp(k, p, u, c);\n }\n let l = v(r, \"x\", \"depthwiseConv2d\", \"float32\"), m = v(t8, \"filter\", \"depthwiseConv2d\", \"float32\"), d = l, f = false;\n l.rank === 3 && (f = true, d = W(l, [1, l.shape[0], l.shape[1], l.shape[2]])), $(d.rank === 4, () => `Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`), $(m.rank === 4, () => `Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`), $(d.shape[3] === m.shape[2], () => `Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`), s == null && (s = [1, 1]), $(xr(e, s), () => `Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`), Bt(\"fused depthwiseConv2d\", o, a);\n let h = Hu(d.shape, m.shape, e, s, o, a, true), g;\n i != null && (g = v(i, \"bias\", \"fused conv2d\"), [g] = Oe(g, l), rt(h.outShape, g.shape));\n let x;\n u != null && (x = v(u, \"prelu weights\", \"fused depthwiseConv2d\"));\n let b = (k, _) => {\n $(Gu(s), () => `Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);\n let [E, R, D, P] = _, O = ep(k, D, p), M = eN(R.shape, O, E, e, o, s, a), L = J1(R, O, E.shape, e, o, s, a);\n if (P != null) {\n let B = tp(g, O);\n return [M, L, B];\n }\n return [M, L];\n }, C = { x: d, filter: m, bias: g, preluActivationWeights: x }, S = { strides: e, pad: o, dataFormat: n, dilations: s, dimRoundingMode: a, activation: p, leakyreluAlpha: c };\n return i == null ? vr((_, E, R) => {\n let D = T.runKernel(ko, C, S);\n return R([E, _, D]), f && (D = W(D, [D.shape[1], D.shape[2], D.shape[3]])), { value: D, gradFunc: b };\n })(d, m) : vr((_, E, R, D) => {\n let P = T.runKernel(ko, C, S);\n return D([E, _, P, R]), f && (P = W(P, [P.shape[1], P.shape[2], P.shape[3]])), { value: P, gradFunc: b };\n })(d, m, g);\n}\nvar tN = N({ fusedDepthwiseConv2d_: X6 });\nfunction Y6({ a: r, b: t8, transposeA: e = false, transposeB: o = false, bias: n, activation: s = \"linear\", preluActivationWeights: a, leakyreluAlpha: i = 0.2 }) {\n if (op(T.state.gradientDepth, s) === false) {\n let O = Ze(r, t8, e, o);\n return n != null && (O = Ce(O, n)), rp(O, s, a, i);\n }\n let p = v(r, \"a\", \"fused matMul\"), u = v(t8, \"b\", \"fused matMul\");\n [p, u] = Oe(p, u);\n let c = e ? p.shape[p.rank - 2] : p.shape[p.rank - 1], l = o ? u.shape[u.rank - 1] : u.shape[u.rank - 2], m = e ? p.shape[p.rank - 1] : p.shape[p.rank - 2], d = o ? u.shape[u.rank - 2] : u.shape[u.rank - 1], f = p.shape.slice(0, -2), h = u.shape.slice(0, -2), g = He(f), x = He(h);\n $(c === l, () => `Error in fused matMul: inner shapes (${c}) and (${l}) of Tensors with shapes ${p.shape} and ${u.shape} and transposeA=${e} and transposeB=${o} must match.`);\n let C = rt(p.shape.slice(0, -2), u.shape.slice(0, -2)).concat([m, d]), S = e ? W(p, [g, c, m]) : W(p, [g, m, c]), k = o ? W(u, [x, d, l]) : W(u, [x, l, d]), _;\n n != null && (_ = v(n, \"bias\", \"fused matMul\"), [_] = Oe(_, p), rt(C, _.shape));\n let E;\n a != null && (E = v(a, \"prelu weights\", \"fused matMul\"));\n let R = (O, M) => {\n let [L, B, z, U] = M, j = ep(W(O, z.shape), z, s), q, Y;\n if (!e && !o ? (q = Ze(j, B, false, true), Y = Ze(L, j, true, false)) : !e && o ? (q = Ze(j, B, false, false), Y = Ze(j, L, true, false)) : e && !o ? (q = Ze(B, j, false, true), Y = Ze(L, j, false, false)) : (q = Ze(B, j, true, true), Y = Ze(j, L, true, true)), n != null) {\n let J = tp(U, j);\n return [q, Y, J];\n } else\n return [q, Y];\n }, D = { a: S, b: k, bias: _, preluActivationWeights: E }, P = { transposeA: e, transposeB: o, activation: s, leakyreluAlpha: i };\n return n == null ? vr((M, L, B) => {\n let z = T.runKernel(Io, D, P);\n return B([M, L, z]), { value: W(z, C), gradFunc: R };\n })(S, k) : vr((M, L, B, z) => {\n let U = T.runKernel(Io, D, P);\n return z([M, L, U, B]), { value: W(U, C), gradFunc: R };\n })(S, k, _);\n}\nvar rN = N({ fusedMatMul_: Y6 });\nfunction Q6(r) {\n return Rl(r, 0.54, 0.46);\n}\nvar oN = N({ hammingWindow_: Q6 });\nfunction Z6(r) {\n return Rl(r, 0.5, 0.5);\n}\nvar Zd = N({ hannWindow_: Z6 });\nfunction J6(r, t8, e, o = false, n = 0) {\n let s = 0, a = [];\n for (; s + t8 <= r.size; )\n a.push(Xe(r, s, t8)), s += e;\n if (o)\n for (; s < r.size; ) {\n let i = s + t8 - r.size, p = bt([Xe(r, s, t8 - i), Ea([i], n)]);\n a.push(p), s += e;\n }\n return a.length === 0 ? fu([], [0, t8]) : W(bt(a), [a.length, t8]);\n}\nvar Jd = N({ frame_: J6 });\nfunction ej(r, t8, e, o, n = Zd) {\n o == null && (o = Qw(t8));\n let s = Jd(r, t8, e), a = se(s, n(t8));\n return hc(a, o);\n}\nvar nN = N({ stft_: ej });\nfunction tj(r, t8, e, o, n = \"bilinear\", s = 0) {\n let a = v(r, \"image\", \"cropAndResize\"), i = v(t8, \"boxes\", \"cropAndResize\", \"float32\"), p = v(e, \"boxInd\", \"cropAndResize\", \"int32\"), u = i.shape[0];\n $(a.rank === 4, () => `Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`), $(i.rank === 2 && i.shape[1] === 4, () => `Error in cropAndResize: boxes must be have size [${u},4] but had shape ${i.shape}.`), $(p.rank === 1 && p.shape[0] === u, () => `Error in cropAndResize: boxInd must be have size [${u}] but had shape ${i.shape}.`), $(o.length === 2, () => `Error in cropAndResize: cropSize must be of length 2, but got length ${o.length}.`), $(o[0] >= 1 && o[1] >= 1, () => `cropSize must be atleast [1,1], but was ${o}`), $(n === \"bilinear\" || n === \"nearest\", () => `method must be bilinear or nearest, but was ${n}`);\n let c = { image: a, boxes: i, boxInd: p }, l = { method: n, extrapolationValue: s, cropSize: o };\n return T.runKernel(ln, c, l);\n}\nvar sN = N({ cropAndResize_: tj });\nfunction rj(r) {\n let t8 = v(r, \"image\", \"flipLeftRight\", \"float32\");\n $(t8.rank === 4, () => `Error in flipLeftRight: image must be rank 4,but got rank ${t8.rank}.`);\n let e = { image: t8 };\n return T.runKernel(wn, e, {});\n}\nvar aN = N({ flipLeftRight_: rj });\nfunction oj(r) {\n let t8 = v(r, \"image\", \"grayscaleToRGB\"), e = t8.rank - 1, o = t8.shape[e];\n $(t8.rank >= 2, () => `Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t8.rank}.`), $(o === 1, () => `Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${o}.`);\n let n = new Array(t8.rank);\n return n.fill(1, 0, e), n[e] = 3, cu(t8, n);\n}\nvar iN = N({ grayscaleToRGB_: oj });\nfunction nj(r) {\n let t8 = v(r, \"image\", \"RGBToGrayscale\"), e = t8.rank - 1, o = t8.shape[e];\n $(t8.rank >= 2, () => `Error in RGBToGrayscale: images must be at least rank 2, but got rank ${t8.rank}.`), $(o === 3, () => `Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${o}.`);\n let n = t8.dtype, s = We(t8, \"float32\"), a = tr([0.2989, 0.587, 0.114]), i;\n switch (t8.rank) {\n case 2:\n i = pu(\"ij,j->i\", s, a);\n break;\n case 3:\n i = pu(\"ijk,k->ij\", s, a);\n break;\n case 4:\n i = pu(\"ijkl,l->ijk\", s, a);\n break;\n case 5:\n i = pu(\"ijklm,m->ijkl\", s, a);\n break;\n case 6:\n i = pu(\"ijklmn,n->ijklm\", s, a);\n break;\n default:\n throw new Error(\"Not a valid tensor rank.\");\n }\n return i = Ms(i, -1), We(i, n);\n}\nvar uN = N({ rgbToGrayscale_: nj });\nfunction sj(r, t8, e = 0, o = 0.5) {\n let n = v(r, \"image\", \"rotateWithOffset\", \"float32\");\n $(n.rank === 4, () => `Error in rotateWithOffset: image must be rank 4,but got rank ${n.rank}.`);\n let s = { image: n }, a = { radians: t8, fillValue: e, center: o };\n return T.runKernel(As, s, a);\n}\nvar pN = N({ rotateWithOffset_: sj });\nfunction Eo(r, t8, e, o, n, s) {\n o == null && (o = 0.5), n == null && (n = Number.NEGATIVE_INFINITY), s == null && (s = 0);\n let a = r.shape[0];\n return e = Math.min(e, a), $(0 <= o && o <= 1, () => `iouThreshold must be in [0, 1], but was '${o}'`), $(r.rank === 2, () => `boxes must be a 2D tensor, but was of rank '${r.rank}'`), $(r.shape[1] === 4, () => `boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`), $(t8.rank === 1, () => \"scores must be a 1D tensor\"), $(t8.shape[0] === a, () => `scores has incompatible shape with boxes. Expected ${a}, but was ${t8.shape[0]}`), $(0 <= s && s <= 1, () => `softNmsSigma must be in [0, 1], but was '${s}'`), { maxOutputSize: e, iouThreshold: o, scoreThreshold: n, softNmsSigma: s };\n}\nfunction aj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY) {\n let s = v(r, \"boxes\", \"nonMaxSuppression\", \"float32\"), a = v(t8, \"scores\", \"nonMaxSuppression\", \"float32\"), i = Eo(s, a, e, o, n);\n e = i.maxOutputSize, o = i.iouThreshold, n = i.scoreThreshold;\n let p = { maxOutputSize: e, iouThreshold: o, scoreThreshold: n };\n return T.runKernel(Zn, { boxes: s, scores: a }, p);\n}\nvar cN = N({ nonMaxSuppression_: aj });\nfunction lN(r, t8, e) {\n let o = ij(r, t8, e), n = o < 0 ? -(o + 1) : o;\n r.splice(n, 0, t8);\n}\nfunction ij(r, t8, e) {\n return pj(r, t8, e || uj);\n}\nfunction uj(r, t8) {\n return r > t8 ? 1 : r < t8 ? -1 : 0;\n}\nfunction pj(r, t8, e) {\n let o = 0, n = r.length, s = 0, a = false;\n for (; o < n; ) {\n s = o + (n - o >>> 1);\n let i = e(t8, r[s]);\n i > 0 ? o = s + 1 : (n = s, a = !i);\n }\n return a ? o : -o - 1;\n}\nfunction ef(r, t8, e, o, n) {\n return Jw(r, t8, e, o, n, 0);\n}\nfunction tf(r, t8, e, o, n, s) {\n return Jw(r, t8, e, o, n, 0, false, s, true);\n}\nfunction rf(r, t8, e, o, n, s) {\n return Jw(r, t8, e, o, n, s, true);\n}\nfunction Jw(r, t8, e, o, n, s, a = false, i = false, p = false) {\n let u = [];\n for (let g = 0; g < t8.length; g++)\n t8[g] > n && u.push({ score: t8[g], boxIndex: g, suppressBeginIndex: 0 });\n u.sort(mN);\n let c = s > 0 ? -0.5 / s : 0, l = [], m = [];\n for (; l.length < e && u.length > 0; ) {\n let g = u.pop(), { score: x, boxIndex: b, suppressBeginIndex: C } = g;\n if (x < n)\n break;\n let S = false;\n for (let k = l.length - 1; k >= C; --k) {\n let _ = cj(r, b, l[k]);\n if (_ >= o) {\n S = true;\n break;\n }\n if (g.score = g.score * lj(o, c, _), g.score <= n)\n break;\n }\n g.suppressBeginIndex = l.length, S || (g.score === x ? (l.push(b), m.push(g.score)) : g.score > n && lN(u, g, mN));\n }\n let d = l.length, f = e - d;\n i && f > 0 && (l.push(...new Array(f).fill(0)), m.push(...new Array(f).fill(0)));\n let h = { selectedIndices: l };\n return a && (h.selectedScores = m), p && (h.validOutputs = d), h;\n}\nfunction cj(r, t8, e) {\n let o = r.subarray(t8 * 4, t8 * 4 + 4), n = r.subarray(e * 4, e * 4 + 4), s = Math.min(o[0], o[2]), a = Math.min(o[1], o[3]), i = Math.max(o[0], o[2]), p = Math.max(o[1], o[3]), u = Math.min(n[0], n[2]), c = Math.min(n[1], n[3]), l = Math.max(n[0], n[2]), m = Math.max(n[1], n[3]), d = (i - s) * (p - a), f = (l - u) * (m - c);\n if (d <= 0 || f <= 0)\n return 0;\n let h = Math.max(s, u), g = Math.max(a, c), x = Math.min(i, l), b = Math.min(p, m), C = Math.max(x - h, 0) * Math.max(b - g, 0);\n return C / (d + f - C);\n}\nfunction lj(r, t8, e) {\n let o = Math.exp(t8 * e * e);\n return e <= r ? o : 0;\n}\nfunction mN(r, t8) {\n return r.score - t8.score || r.score === t8.score && t8.boxIndex - r.boxIndex;\n}\nasync function mj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY) {\n let s = v(r, \"boxes\", \"nonMaxSuppressionAsync\"), a = v(t8, \"scores\", \"nonMaxSuppressionAsync\"), i = Eo(s, a, e, o, n);\n e = i.maxOutputSize, o = i.iouThreshold, n = i.scoreThreshold;\n let p = await Promise.all([s.data(), a.data()]), u = p[0], c = p[1], { selectedIndices: l } = ef(u, c, e, o, n);\n return s !== r && s.dispose(), a !== t8 && a.dispose(), tr(l, \"int32\");\n}\nvar dN = mj;\nfunction dj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY, s = 0) {\n let a = v(r, \"boxes\", \"nonMaxSuppression\"), i = v(t8, \"scores\", \"nonMaxSuppression\"), p = Eo(a, i, e, o, n, s);\n e = p.maxOutputSize, o = p.iouThreshold, n = p.scoreThreshold, s = p.softNmsSigma;\n let u = { boxes: a, scores: i }, c = { maxOutputSize: e, iouThreshold: o, scoreThreshold: n, softNmsSigma: s }, l = T.runKernel(Jn, u, c);\n return { selectedIndices: l[0], selectedScores: l[1] };\n}\nvar fN = N({ nonMaxSuppressionWithScore_: dj });\nasync function fj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY, s = 0) {\n let a = v(r, \"boxes\", \"nonMaxSuppressionAsync\"), i = v(t8, \"scores\", \"nonMaxSuppressionAsync\"), p = Eo(a, i, e, o, n, s);\n e = p.maxOutputSize, o = p.iouThreshold, n = p.scoreThreshold, s = p.softNmsSigma;\n let u = await Promise.all([a.data(), i.data()]), c = u[0], l = u[1], { selectedIndices: m, selectedScores: d } = rf(c, l, e, o, n, s);\n return a !== r && a.dispose(), i !== t8 && i.dispose(), { selectedIndices: tr(m, \"int32\"), selectedScores: tr(d) };\n}\nvar hN = fj;\nfunction hj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY, s = false) {\n let a = v(r, \"boxes\", \"nonMaxSuppression\"), i = v(t8, \"scores\", \"nonMaxSuppression\"), p = Eo(a, i, e, o, n, null), u = p.maxOutputSize, c = p.iouThreshold, l = p.scoreThreshold, m = { boxes: a, scores: i }, d = { maxOutputSize: u, iouThreshold: c, scoreThreshold: l, padToMaxOutputSize: s }, f = T.runKernel(Za, m, d);\n return { selectedIndices: f[0], validOutputs: f[1] };\n}\nvar gN = N({ nonMaxSuppressionPadded_: hj });\nasync function gj(r, t8, e, o = 0.5, n = Number.NEGATIVE_INFINITY, s = false) {\n let a = v(r, \"boxes\", \"nonMaxSuppressionAsync\"), i = v(t8, \"scores\", \"nonMaxSuppressionAsync\"), p = Eo(a, i, e, o, n, null), u = p.maxOutputSize, c = p.iouThreshold, l = p.scoreThreshold, [m, d] = await Promise.all([a.data(), i.data()]), { selectedIndices: f, validOutputs: h } = tf(m, d, u, c, l, s);\n return a !== r && a.dispose(), i !== t8 && i.dispose(), { selectedIndices: tr(f, \"int32\"), validOutputs: ke(h, \"int32\") };\n}\nvar xN = gj;\nfunction xj(r, t8, e = false, o = false) {\n let n = v(r, \"images\", \"resizeBilinear\");\n $(n.rank === 3 || n.rank === 4, () => `Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`), $(t8.length === 2, () => `Error in resizeBilinear: new shape must 2D, but got shape ${t8}.`), $(o === false || e === false, () => \"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");\n let s = n, a = false;\n n.rank === 3 && (a = true, s = W(n, [1, n.shape[0], n.shape[1], n.shape[2]]));\n let [] = t8, i = { images: s }, p = { alignCorners: e, halfPixelCenters: o, size: t8 }, u = T.runKernel(us, i, p);\n return a ? W(u, [u.shape[1], u.shape[2], u.shape[3]]) : u;\n}\nvar yN = N({ resizeBilinear_: xj });\nfunction yj(r, t8, e = false, o = false) {\n let n = v(r, \"images\", \"resizeNearestNeighbor\");\n $(n.rank === 3 || n.rank === 4, () => `Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`), $(t8.length === 2, () => `Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t8}.`), $(n.dtype === \"float32\" || n.dtype === \"int32\", () => \"`images` must have `int32` or `float32` as dtype\"), $(o === false || e === false, () => \"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");\n let s = n, a = false;\n n.rank === 3 && (a = true, s = W(n, [1, n.shape[0], n.shape[1], n.shape[2]]));\n let [] = t8, i = { images: s }, p = { alignCorners: e, halfPixelCenters: o, size: t8 }, u = T.runKernel(is, i, p);\n return a ? W(u, [u.shape[1], u.shape[2], u.shape[3]]) : u;\n}\nvar bN = N({ resizeNearestNeighbor_: yj });\nfunction bj(r, t8 = \"binary\", e = false, o = 0.5) {\n let n = v(r, \"image\", \"threshold\"), s = 0.2989, a = 0.587, i = 0.114, p = n.shape[0] * n.shape[1], u = se(tr([o]), 255), c, l, m, d;\n if ($(n.rank === 3, () => `Error in threshold: image must be rank 3,but got rank ${n.rank}.`), $(n.shape[2] === 3 || n.shape[2] === 1, () => `Error in threshold: image color channel must be equal to 3 or 1but got ${n.shape[2]}.`), $(n.dtype === \"int32\" || n.dtype === \"float32\", () => `Error in dtype: image dtype must be int32 or float32,but got dtype ${n.dtype}.`), $(t8 === \"otsu\" || t8 === \"binary\", () => `Method must be binary or otsu, but was ${t8}`), n.shape[2] === 3) {\n [c, l, m] = li(n, [1, 1, 1], -1);\n let g = se(c, s), x = se(l, a), b = se(m, i);\n d = Ce(Ce(g, x), b);\n } else\n d = r;\n if (t8 === \"otsu\") {\n let g = gd(We(Hd(d), \"int32\"), ur([]), 256);\n u = Cj(g, p);\n }\n let f = e ? mc(d, u) : qu(d, u);\n return We(se(f, 255), \"int32\");\n}\nfunction Cj(r, t8) {\n let e = tr([-1]), o = tr([0]), n = tr([0]), s, a, i, p, u, c;\n for (let l = 0; l < r.size - 1; l++) {\n s = Xe(r, 0, l + 1), a = Xe(r, l + 1), u = je(ot(s), t8), c = je(ot(a), t8);\n let m = ot(se(s, mu(0, s.size)));\n i = je(m, ot(s));\n let d = Ea(a.shape, s.size), f = Ce(mu(0, a.size), d), h = se(a, f);\n p = je(ot(h), ot(a));\n let g = Te(i, p), x = Te(i, p), b = se(u, c);\n n = se(se(b, g), x);\n let C = qu(n, o);\n o = lo(C, n, o), e = lo(C, tr([l]), e);\n }\n return e;\n}\nvar CN = N({ threshold_: bj });\nfunction wj(r, t8, e = \"nearest\", o = \"constant\", n = 0, s) {\n let a = v(r, \"image\", \"transform\", \"float32\"), i = v(t8, \"transforms\", \"transform\", \"float32\");\n $(a.rank === 4, () => `Error in transform: image must be rank 4,but got rank ${a.rank}.`), $(i.rank === 2 && (i.shape[0] === a.shape[0] || i.shape[0] === 1) && i.shape[1] === 8, () => \"Error in transform: Input transform should be batch x 8 or 1 x 8\"), $(s == null || s.length === 2, () => `Error in transform: outputShape must be [height, width] or null, but got ${s}.`);\n let p = { image: a, transforms: i }, u = { interpolation: e, fillMode: o, fillValue: n, outputShape: s };\n return T.runKernel(Ds, p, u);\n}\nvar wN = N({ transform_: wj });\nfunction Sj(r, t8, e) {\n let o = v(r, \"a\", \"bandPart\");\n $(o.rank >= 2, () => `bandPart(): Rank must be at least 2, got ${o.rank}.`);\n let n = o.shape, [s, a] = o.shape.slice(-2), i, p;\n typeof t8 == \"number\" ? ($(t8 % 1 === 0, () => `bandPart(): numLower must be an integer, got ${t8}.`), $(t8 <= s, () => `bandPart(): numLower (${t8}) must not be greater than the number of rows (${s}).`), i = v(t8 < 0 ? s : t8, \"numLower\", \"bandPart\")) : ($(t8.dtype === \"int32\", () => \"bandPart(): numLower's dtype must be an int32.\"), i = lo(_l(t8, 0), s, Yu(t8, s))), typeof e == \"number\" ? ($(e % 1 === 0, () => `bandPart(): numUpper must be an integer, got ${e}.`), $(e <= a, () => `bandPart(): numUpper (${e}) must not be greater than the number of columns (${a}).`), p = v(e < 0 ? a : e, \"numUpper\", \"bandPart\")) : ($(e.dtype === \"int32\", () => \"bandPart(): numUpper's dtype must be an int32.\"), p = lo(_l(e, 0), a, Yu(e, a)));\n let u = W(mu(0, s, 1, \"int32\"), [-1, 1]), c = mu(0, a, 1, \"int32\"), l = Te(u, c), m = ju(mc(l, i), vd(l, cr(p))), d = Gr([s, a], o.dtype);\n return W(kr(fo(W(o, [-1, s, a])).map((f) => lo(m, f, d))), n);\n}\nvar SN = N({ bandPart_: Sj });\nfunction Ij(r) {\n let t8;\n if (Array.isArray(r)) {\n t8 = false, $(r != null && r.length > 0, () => \"Gram-Schmidt process: input must not be null, undefined, or empty\");\n let n = r[0].shape[0];\n for (let s = 1; s < r.length; ++s)\n $(r[s].shape[0] === n, () => `Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${n})`);\n } else\n t8 = true, r = li(r, r.shape[0], 0).map((n) => gc(n, [0]));\n $(r.length <= r[0].shape[0], () => `Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);\n let e = [], o = r;\n for (let n = 0; n < r.length; ++n)\n e.push(T.tidy(() => {\n let s = o[n];\n if (n > 0)\n for (let a = 0; a < n; ++a) {\n let i = se(ot(se(e[a], s)), e[a]);\n s = Te(s, i);\n }\n return je(s, Ku(s, \"euclidean\"));\n }));\n return t8 ? kr(e, 0) : e;\n}\nvar IN = N({ gramSchmidt_: Ij });\nfunction vj(r, t8 = false) {\n if ($(r.rank >= 2, () => `qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`), r.rank === 2)\n return vN(r, t8);\n {\n let e = r.shape.slice(0, r.shape.length - 2).reduce((p, u) => p * u), o = fo(W(r, [e, r.shape[r.shape.length - 2], r.shape[r.shape.length - 1]]), 0), n = [], s = [];\n o.forEach((p) => {\n let [u, c] = vN(p, t8);\n n.push(u), s.push(c);\n });\n let a = W(kr(n, 0), r.shape), i = W(kr(s, 0), r.shape);\n return [a, i];\n }\n}\nfunction vN(r, t8 = false) {\n return T.tidy(() => {\n $(r.shape.length === 2, () => `qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);\n let e = r.shape[0], o = r.shape[1], n = wd(e), s = Ur(r), a = fu([[1]], [1, 1]), i = Ur(a), p = e >= o ? o : e;\n for (let u = 0; u < p; ++u) {\n let c = s, l = i, m = n;\n [i, s, n] = T.tidy(() => {\n let d = Xe(s, [u, u], [e - u, 1]), f = Ku(d), h = Xe(s, [u, u], [1, 1]), g = lo(qu(h, 0), fu([[-1]]), fu([[1]])), x = Te(h, se(g, f)), b = je(d, x);\n b.shape[0] === 1 ? i = Ur(a) : i = bt([a, Xe(b, [1, 0], [b.shape[0] - 1, b.shape[1]])], 0);\n let C = cr(je(Ze(g, x), f)), S = Xe(s, [u, 0], [e - u, o]), k = se(C, i), _ = yc(i);\n if (u === 0)\n s = Te(S, Ze(k, Ze(_, S)));\n else {\n let D = Te(S, Ze(k, Ze(_, S)));\n s = bt([Xe(s, [0, 0], [u, o]), D], 0);\n }\n let E = yc(k), R = Xe(n, [0, u], [e, n.shape[1] - u]);\n if (u === 0)\n n = Te(R, Ze(Ze(R, i), E));\n else {\n let D = Te(R, Ze(Ze(R, i), E));\n n = bt([Xe(n, [0, 0], [e, u]), D], 1);\n }\n return [i, s, n];\n }), Mt([c, l, m]);\n }\n return !t8 && e > o && (n = Xe(n, [0, 0], [e, o]), s = Xe(s, [0, 0], [o, o])), [n, s];\n });\n}\nvar kN = N({ qr_: vj });\nvar Rt;\n(function(r) {\n r[r.NONE = 0] = \"NONE\", r[r.MEAN = 1] = \"MEAN\", r[r.SUM = 2] = \"SUM\", r[r.SUM_BY_NONZERO_WEIGHTS = 3] = \"SUM_BY_NONZERO_WEIGHTS\";\n})(Rt || (Rt = {}));\nfunction kj(r, t8, e = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let o = v(r, \"losses\", \"computeWeightedLoss\"), n = null;\n t8 != null && (n = v(t8, \"weights\", \"computeWeightedLoss\"));\n let s = n == null ? o : se(o, n);\n if (e === Rt.NONE)\n return s;\n if (e === Rt.SUM)\n return ot(s);\n if (e === Rt.MEAN) {\n if (n == null)\n return Xu(s);\n {\n let a = o.size / n.size, i = je(ot(s), ot(n));\n return a > 1 ? je(i, ke(a)) : i;\n }\n }\n if (e === Rt.SUM_BY_NONZERO_WEIGHTS) {\n if (n == null)\n return je(ot(s), ke(o.size));\n {\n let a = se(n, Da(o.shape)), i = We(ot(Pd(a, ke(0))), \"float32\");\n return je(ot(s), i);\n }\n }\n throw Error(`Unknown reduction: ${e}`);\n}\nvar lr = N({ computeWeightedLoss_: kj });\nfunction Nj(r, t8, e, o = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let n = v(r, \"labels\", \"absoluteDifference\"), s = v(t8, \"predictions\", \"absoluteDifference\"), a = null;\n e != null && (a = v(e, \"weights\", \"absoluteDifference\")), yt(n.shape, s.shape, \"Error in absoluteDifference: \");\n let i = Jt(Te(n, s));\n return lr(i, a, o);\n}\nvar NN = N({ absoluteDifference_: Nj });\nfunction Tj(r, t8, e, o, n = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let s = v(r, \"labels\", \"cosineDistance\"), a = v(t8, \"predictions\", \"cosineDistance\"), i = null;\n o != null && (i = v(o, \"weights\", \"cosineDistance\")), yt(s.shape, a.shape, \"Error in cosineDistance: \");\n let p = ke(1), u = Te(p, ot(se(s, a), e, true));\n return lr(u, i, n);\n}\nvar TN = N({ cosineDistance_: Tj });\nfunction _j(r, t8, e, o = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let n = v(r, \"labels\", \"hingeLoss\"), s = v(t8, \"predictions\", \"hingeLoss\"), a = null;\n e != null && (a = v(e, \"weights\", \"hingeLoss\")), yt(n.shape, s.shape, \"Error in hingeLoss: \");\n let i = ke(1);\n n = Te(se(ke(2), n), i);\n let p = du(Te(i, se(n, s)));\n return lr(p, a, o);\n}\nvar _N = N({ hingeLoss_: _j });\nfunction $j(r, t8, e, o = 1, n = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let s = v(r, \"labels\", \"huberLoss\"), a = v(t8, \"predictions\", \"huberLoss\"), i = null;\n e != null && (i = v(e, \"weights\", \"huberLoss\")), yt(s.shape, a.shape, \"Error in huberLoss: \");\n let p = ke(o), u = Jt(Te(a, s)), c = Yu(u, p), l = Te(u, c), m = Ce(se(ke(0.5), er(c)), se(p, l));\n return lr(m, i, n);\n}\nvar $N = N({ huberLoss_: $j });\nfunction Ej(r, t8, e, o = 1e-7, n = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let s = v(r, \"labels\", \"logLoss\"), a = v(t8, \"predictions\", \"logLoss\"), i = null;\n e != null && (i = v(e, \"weights\", \"logLoss\")), yt(s.shape, a.shape, \"Error in logLoss: \");\n let p = ke(1), u = ke(o), c = cr(se(s, pi(Ce(a, u)))), l = se(Te(p, s), pi(Ce(Te(p, a), u))), m = Te(c, l);\n return lr(m, i, n);\n}\nvar EN = N({ logLoss_: Ej });\nfunction Rj(r, t8, e, o = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let n = v(r, \"labels\", \"meanSquaredError\"), s = v(t8, \"predictions\", \"meanSquaredError\"), a = null;\n e != null && (a = v(e, \"weights\", \"meanSquaredError\")), yt(n.shape, s.shape, \"Error in meanSquaredError: \");\n let i = qd(n, s);\n return lr(i, a, o);\n}\nvar RN = N({ meanSquaredError_: Rj });\nfunction Dj(r, t8) {\n let e = v(r, \"labels\", \"sigmoidCrossEntropyWithLogits\"), o = v(t8, \"logits\", \"sigmoidCrossEntropyWithLogits\");\n yt(e.shape, o.shape, \"Error in sigmoidCrossEntropyWithLogits: \");\n let n = du(o), s = se(o, e), a = Nd($o(cr(Jt(o))));\n return Ce(Te(n, s), a);\n}\nfunction Aj(r, t8, e, o = 0, n = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let s = v(r, \"multiClassLabels\", \"sigmoidCrossEntropy\"), a = v(t8, \"logits\", \"sigmoidCrossEntropy\"), i = null;\n if (e != null && (i = v(e, \"weights\", \"sigmoidCrossEntropy\")), yt(s.shape, a.shape, \"Error in sigmoidCrossEntropy: \"), o > 0) {\n let u = ke(o), c = ke(1), l = ke(0.5);\n s = Ce(se(s, Te(c, u)), se(l, u));\n }\n let p = Dj(s, a);\n return lr(p, i, n);\n}\nvar DN = N({ sigmoidCrossEntropy_: Aj });\nfunction Fj(r, t8, e = -1) {\n if (e === -1 && (e = t8.rank - 1), e !== t8.rank - 1)\n throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t8.rank} and dim was ${e}`);\n return vr((n, s, a) => {\n let p = $d(s, [e], true), u = Te(We(s, \"float32\"), p);\n a([n, u]);\n let c = cr(se(u, n));\n return { value: ot(c, [e]), gradFunc: (d, f) => {\n let [h, g] = f, x = ii(d.shape, [e]);\n return [se(W(d, x), Te(We(h, \"float32\"), $o(g))), se(W(d, x), Te($o(g), We(h, \"float32\")))];\n } };\n })(r, t8);\n}\nfunction Pj(r, t8, e, o = 0, n = Rt.SUM_BY_NONZERO_WEIGHTS) {\n let s = v(r, \"onehotLabels\", \"softmaxCrossEntropy\"), a = v(t8, \"logits\", \"softmaxCrossEntropy\"), i = null;\n if (e != null && (i = v(e, \"weights\", \"softmaxCrossEntropy\")), yt(s.shape, a.shape, \"Error in softmaxCrossEntropy: \"), o > 0) {\n let u = ke(o), c = ke(1), l = ke(s.shape[1]);\n s = Ce(se(s, Te(c, u)), je(u, l));\n }\n let p = Fj(s, a);\n return lr(p, i, n);\n}\nvar AN = N({ softmaxCrossEntropy_: Pj });\nfunction Oj(r, t8, e, o) {\n let n = v(r, \"indices\", \"sparseFillEmptyRows\", \"int32\"), s = v(t8, \"values\", \"sparseFillEmptyRows\"), a = v(e, \"denseShape\", \"sparseFillEmptyRows\", \"int32\"), i = v(o, \"defaultValue\", \"sparseFillEmptyRows\", s.dtype);\n if (n.rank !== 2)\n throw new Error(`Indices should be Tensor2D but received shape\n ${n.shape}`);\n if (s.rank !== 1)\n throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);\n if (a.rank !== 1)\n throw new Error(`Dense shape should be Tensor1D but received shape ${a.shape}`);\n if (i.rank !== 0)\n throw new Error(`Default value should be a scalar but received shape ${i.shape}`);\n let p = { indices: n, values: s, denseShape: a, defaultValue: i }, u = T.runKernel(ji, p);\n return { outputIndices: u[0], outputValues: u[1], emptyRowIndicator: u[2], reverseIndexMap: u[3] };\n}\nvar FN = N({ sparseFillEmptyRows_: Oj });\nfunction Mj(r, t8, e) {\n let o = v(r, \"inputIndices\", \"sparseReshape\", \"int32\"), n = v(t8, \"inputShape\", \"sparseReshape\", \"int32\"), s = v(e, \"newShape\", \"sparseReshape\", \"int32\");\n if (o.rank !== 2)\n throw new Error(`Input indices should be Tensor2D but received shape\n ${o.shape}`);\n if (n.rank !== 1)\n throw new Error(`Input shape should be Tensor1D but received shape ${n.shape}`);\n if (s.rank !== 1)\n throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);\n let a = { inputIndices: o, inputShape: n, newShape: s }, i = T.runKernel(ti, a);\n return { outputIndices: i[0], outputShape: i[1] };\n}\nvar PN = N({ sparseReshape_: Mj });\nfunction Lj(r, t8, e) {\n let o = v(r, \"data\", \"sparseSegmentMean\"), n = v(t8, \"indices\", \"sparseSegmentMean\", \"int32\"), s = v(e, \"segmentIds\", \"sparseSegmentMean\", \"int32\");\n if (o.rank < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.rank !== 1)\n throw new Error(`Indices should be Tensor1D but received shape\n ${n.shape}`);\n if (s.rank !== 1)\n throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);\n let a = { data: o, indices: n, segmentIds: s };\n return T.runKernel(ya, a);\n}\nvar ON = N({ sparseSegmentMean_: Lj });\nfunction Bj(r, t8, e) {\n let o = v(r, \"data\", \"sparseSegmentSum\"), n = v(t8, \"indices\", \"sparseSegmentSum\", \"int32\"), s = v(e, \"segmentIds\", \"sparseSegmentSum\", \"int32\");\n if (o.rank < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.rank !== 1)\n throw new Error(`Indices should be Tensor1D but received shape\n ${n.shape}`);\n if (s.rank !== 1)\n throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);\n let a = { data: o, indices: n, segmentIds: s };\n return T.runKernel(ba, a);\n}\nvar MN = N({ sparseSegmentSum_: Bj });\nfunction zj(r, t8, e, o, n, s, a, i) {\n let p = v(r, \"data\", \"stringNGrams\", \"string\");\n if (p.dtype !== \"string\")\n throw new Error(\"Data must be of datatype string\");\n if (p.shape.length !== 1)\n throw new Error(`Data must be a vector, saw: ${p.shape}`);\n let u = v(t8, \"dataSplits\", \"stringNGrams\");\n if (u.dtype !== \"int32\")\n throw new Error(\"Data splits must be of datatype int32\");\n let c = { separator: e, nGramWidths: o, leftPad: n, rightPad: s, padWidth: a, preserveShortSequences: i }, l = { data: p, dataSplits: u }, m = T.runKernel(Ca, l, c);\n return { nGrams: m[0], nGramsSplits: m[1] };\n}\nvar LN = N({ stringNGrams_: zj });\nfunction Vj(r, t8, e = true) {\n let o = v(r, \"input\", \"stringSplit\", \"string\"), n = v(t8, \"delimiter\", \"stringSplit\", \"string\");\n if (o.rank !== 1)\n throw new Error(`Input should be Tensor1D but received shape ${o.shape}`);\n if (n.rank !== 0)\n throw new Error(`Delimiter should be a scalar but received shape ${n.shape}`);\n let s = { skipEmpty: e }, a = { input: o, delimiter: n }, i = T.runKernel(Yi, a, s);\n return { indices: i[0], values: i[1], shape: i[2] };\n}\nvar BN = N({ stringSplit_: Vj });\nfunction Wj(r, t8) {\n let e = v(r, \"input\", \"stringToHashBucketFast\", \"string\"), o = { numBuckets: t8 };\n if (t8 <= 0)\n throw new Error(\"Number of buckets must be at least 1\");\n let n = { input: e };\n return T.runKernel(Qi, n, o);\n}\nvar zN = N({ stringToHashBucketFast_: Wj });\nfunction Uj(r, t8, e, o = true) {\n let n = v(r, \"input\", \"staticRegexReplace\", \"string\"), s = { pattern: t8, rewrite: e, replaceGlobal: o };\n return T.runKernel(Ou, { x: n }, s);\n}\nvar VN = N({ staticRegexReplace_: Uj });\nvar Gj = { fft: fc, ifft: Ju, rfft: hc, irfft: Kd };\nvar Hj = { hammingWindow: oN, hannWindow: Zd, frame: Jd, stft: nN };\nvar Kj = { flipLeftRight: aN, grayscaleToRGB: iN, resizeNearestNeighbor: bN, resizeBilinear: yN, rgbToGrayscale: uN, rotateWithOffset: pN, cropAndResize: sN, nonMaxSuppression: cN, nonMaxSuppressionAsync: dN, nonMaxSuppressionWithScore: fN, nonMaxSuppressionWithScoreAsync: hN, nonMaxSuppressionPadded: gN, nonMaxSuppressionPaddedAsync: xN, threshold: CN, transform: wN };\nvar qj = { bandPart: SN, gramSchmidt: IN, qr: kN };\nvar jj = { absoluteDifference: NN, computeWeightedLoss: lr, cosineDistance: TN, hingeLoss: _N, huberLoss: $N, logLoss: EN, meanSquaredError: RN, sigmoidCrossEntropy: DN, softmaxCrossEntropy: AN };\nvar Xj = { sparseFillEmptyRows: FN, sparseReshape: PN, sparseSegmentMean: ON, sparseSegmentSum: MN };\nvar Yj = { stringNGrams: LN, stringSplit: BN, stringToHashBucketFast: zN, staticRegexReplace: VN };\nvar WN = {};\nqe(WN, { Serializable: () => Dl, SerializationMap: () => Fa, getRegisteredName: () => Zj, registerClass: () => tS });\nvar Qj = /* @__PURE__ */ new Map();\nvar eS = /* @__PURE__ */ new Map();\nvar Dl = class {\n getClassName() {\n return this.constructor.className;\n }\n static fromConfig(t8, e) {\n return new t8(e);\n }\n};\nvar Fa = class {\n constructor() {\n this.classNameMap = {};\n }\n static getMap() {\n return Fa.instance == null && (Fa.instance = new Fa()), Fa.instance;\n }\n static register(t8) {\n Fa.getMap().classNameMap[t8.className] = [t8, t8.fromConfig];\n }\n};\nfunction tS(r, t8, e) {\n $(r.className != null, () => \"Class being registered does not have the static className property defined.\"), $(typeof r.className == \"string\", () => \"className is required to be a string, but got type \" + typeof r.className), $(r.className.length > 0, () => \"Class being registered has an empty-string as its className, which is disallowed.\"), typeof t8 == \"undefined\" && (t8 = \"Custom\"), typeof e == \"undefined\" && (e = r.className);\n let o = e, n = t8 + \">\" + o;\n return Fa.register(r), Qj.set(n, r), eS.set(r, n), r;\n}\nfunction Zj(r) {\n return eS.has(r) ? eS.get(r) : r.className;\n}\nvar Nr = class extends Dl {\n minimize(t8, e = false, o) {\n let { value: n, grads: s } = this.computeGradients(t8, o);\n if (o != null) {\n let a = o.map((i) => ({ name: i.name, tensor: s[i.name] }));\n this.applyGradients(a);\n } else\n this.applyGradients(s);\n return Mt(s), e ? n : (n.dispose(), null);\n }\n get iterations() {\n return this.iterations_ == null && (this.iterations_ = 0), this.iterations_;\n }\n incrementIterations() {\n this.iterations_ = this.iterations + 1;\n }\n computeGradients(t8, e) {\n return zw(t8, e);\n }\n dispose() {\n this.iterations_ != null && Mt(this.iterations_);\n }\n async saveIterations() {\n return this.iterations_ == null && (this.iterations_ = 0), { name: \"iter\", tensor: ke(this.iterations_, \"int32\") };\n }\n async getWeights() {\n throw new Error(\"getWeights() is not implemented for this optimizer yet.\");\n }\n async setWeights(t8) {\n throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`);\n }\n async extractIterations(t8) {\n return this.iterations_ = (await t8[0].tensor.data())[0], t8.slice(1);\n }\n};\nObject.defineProperty(Nr, Symbol.hasInstance, { value: (r) => r.minimize != null && r.computeGradients != null && r.applyGradients != null });\nvar np = class extends Nr {\n static get className() {\n return \"Adadelta\";\n }\n constructor(t8, e, o = null) {\n super(), this.learningRate = t8, this.rho = e, this.epsilon = o, this.accumulatedGrads = [], this.accumulatedUpdates = [], o == null && (this.epsilon = T.backend.epsilon());\n }\n applyGradients(t8) {\n (Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8)).forEach((o, n) => {\n let s = T.registeredVariables[o], a = false;\n this.accumulatedGrads[n] == null && (this.accumulatedGrads[n] = { originalName: `${o}/accum_grad`, variable: De(() => Ht(s).variable(a)) }), this.accumulatedUpdates[n] == null && (this.accumulatedUpdates[n] = { originalName: `${o}/accum_var`, variable: De(() => Ht(s).variable(a)) });\n let i = Array.isArray(t8) ? t8[n].tensor : t8[o];\n if (i == null)\n return;\n let p = this.accumulatedGrads[n].variable, u = this.accumulatedUpdates[n].variable;\n De(() => {\n let c = Ce(se(p, this.rho), se(er(i), 1 - this.rho)), l = se(je(Dr(Ce(u, this.epsilon)), Dr(Ce(p, this.epsilon))), i), m = Ce(se(u, this.rho), se(er(l), 1 - this.rho));\n p.assign(c), u.assign(m);\n let d = Ce(se(l, -this.learningRate), s);\n s.assign(d);\n });\n }), this.incrementIterations();\n }\n dispose() {\n this.accumulatedUpdates != null && (Mt(this.accumulatedGrads.map((t8) => t8.variable)), Mt(this.accumulatedUpdates.map((t8) => t8.variable)));\n }\n async getWeights() {\n let t8 = [...this.accumulatedGrads, ...this.accumulatedUpdates];\n return [await this.saveIterations()].concat(t8.map((e) => ({ name: e.originalName, tensor: e.variable })));\n }\n async setWeights(t8) {\n t8 = await this.extractIterations(t8);\n let e = t8.length / 2, o = false;\n this.accumulatedGrads = t8.slice(0, e).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) })), this.accumulatedUpdates = t8.slice(e, e * 2).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) }));\n }\n getConfig() {\n return { learningRate: this.learningRate, rho: this.rho, epsilon: this.epsilon };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.rho, e.epsilon);\n }\n};\nvar sp = class extends Nr {\n static get className() {\n return \"Adagrad\";\n }\n constructor(t8, e = 0.1) {\n super(), this.learningRate = t8, this.initialAccumulatorValue = e, this.accumulatedGrads = [];\n }\n applyGradients(t8) {\n (Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8)).forEach((o, n) => {\n let s = T.registeredVariables[o];\n this.accumulatedGrads[n] == null && (this.accumulatedGrads[n] = { originalName: `${o}/accumulator`, variable: De(() => Ea(s.shape, this.initialAccumulatorValue).variable(false)) });\n let a = Array.isArray(t8) ? t8[n].tensor : t8[o];\n if (a == null)\n return;\n let i = this.accumulatedGrads[n].variable;\n De(() => {\n let p = Ce(i, er(a));\n i.assign(p);\n let u = Ce(se(je(a, Dr(Ce(p, T.backend.epsilon()))), -this.learningRate), s);\n s.assign(u);\n });\n }), this.incrementIterations();\n }\n dispose() {\n this.accumulatedGrads != null && Mt(this.accumulatedGrads.map((t8) => t8.variable));\n }\n async getWeights() {\n return [await this.saveIterations()].concat(this.accumulatedGrads.map((t8) => ({ name: t8.originalName, tensor: t8.variable })));\n }\n async setWeights(t8) {\n t8 = await this.extractIterations(t8);\n let e = false;\n this.accumulatedGrads = t8.map((o) => ({ originalName: o.name, variable: o.tensor.variable(e) }));\n }\n getConfig() {\n return { learningRate: this.learningRate, initialAccumulatorValue: this.initialAccumulatorValue };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.initialAccumulatorValue);\n }\n};\nvar ap = class extends Nr {\n static get className() {\n return \"Adam\";\n }\n constructor(t8, e, o, n = null) {\n super(), this.learningRate = t8, this.beta1 = e, this.beta2 = o, this.epsilon = n, this.accumulatedFirstMoment = [], this.accumulatedSecondMoment = [], De(() => {\n this.accBeta1 = ke(e).variable(), this.accBeta2 = ke(o).variable();\n }), n == null && (this.epsilon = T.backend.epsilon());\n }\n applyGradients(t8) {\n let e = Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8);\n De(() => {\n let o = Te(1, this.accBeta1), n = Te(1, this.accBeta2);\n e.forEach((s, a) => {\n let i = T.registeredVariables[s], p = false;\n this.accumulatedFirstMoment[a] == null && (this.accumulatedFirstMoment[a] = { originalName: `${s}/m`, variable: De(() => Ht(i).variable(p)) }), this.accumulatedSecondMoment[a] == null && (this.accumulatedSecondMoment[a] = { originalName: `${s}/v`, variable: De(() => Ht(i).variable(p)) });\n let u = Array.isArray(t8) ? t8[a].tensor : t8[s];\n if (u == null)\n return;\n let c = this.accumulatedFirstMoment[a].variable, l = this.accumulatedSecondMoment[a].variable, m = Ce(se(c, this.beta1), se(u, 1 - this.beta1)), d = Ce(se(l, this.beta2), se(er(u), 1 - this.beta2)), f = je(m, o), h = je(d, n);\n c.assign(m), l.assign(d);\n let g = Ce(se(je(f, Ce(Dr(h), this.epsilon)), -this.learningRate), i);\n i.assign(g);\n }), this.accBeta1.assign(se(this.accBeta1, this.beta1)), this.accBeta2.assign(se(this.accBeta2, this.beta2));\n }), this.incrementIterations();\n }\n dispose() {\n this.accBeta1.dispose(), this.accBeta2.dispose(), this.accumulatedFirstMoment != null && Mt(this.accumulatedFirstMoment.map((t8) => t8.variable)), this.accumulatedSecondMoment != null && Mt(this.accumulatedSecondMoment.map((t8) => t8.variable));\n }\n async getWeights() {\n let t8 = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment];\n return [await this.saveIterations()].concat(t8.map((e) => ({ name: e.originalName, tensor: e.variable })));\n }\n async setWeights(t8) {\n t8 = await this.extractIterations(t8), De(() => {\n this.accBeta1.assign(ui(this.beta1, this.iterations_ + 1)), this.accBeta2.assign(ui(this.beta2, this.iterations_ + 1));\n });\n let e = t8.length / 2, o = false;\n this.accumulatedFirstMoment = t8.slice(0, e).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) })), this.accumulatedSecondMoment = t8.slice(e, e * 2).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) }));\n }\n getConfig() {\n return { learningRate: this.learningRate, beta1: this.beta1, beta2: this.beta2, epsilon: this.epsilon };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.beta1, e.beta2, e.epsilon);\n }\n};\nvar ip = class extends Nr {\n static get className() {\n return \"Adamax\";\n }\n constructor(t8, e, o, n = null, s = 0) {\n super(), this.learningRate = t8, this.beta1 = e, this.beta2 = o, this.epsilon = n, this.decay = s, this.accumulatedFirstMoment = [], this.accumulatedWeightedInfNorm = [], De(() => {\n this.iteration = ke(0).variable(), this.accBeta1 = ke(e).variable();\n }), n == null && (this.epsilon = T.backend.epsilon());\n }\n applyGradients(t8) {\n let e = Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8);\n De(() => {\n let o = Te(1, this.accBeta1), n = je(-this.learningRate, Ce(se(this.iteration, this.decay), 1));\n e.forEach((s, a) => {\n let i = T.registeredVariables[s], p = false;\n this.accumulatedFirstMoment[a] == null && (this.accumulatedFirstMoment[a] = { originalName: `${s}/m`, variable: Ht(i).variable(p) }), this.accumulatedWeightedInfNorm[a] == null && (this.accumulatedWeightedInfNorm[a] = { originalName: `${s}/v`, variable: Ht(i).variable(p) });\n let u = Array.isArray(t8) ? t8[a].tensor : t8[s];\n if (u == null)\n return;\n let c = this.accumulatedFirstMoment[a].variable, l = this.accumulatedWeightedInfNorm[a].variable, m = Ce(se(c, this.beta1), se(u, 1 - this.beta1)), d = se(l, this.beta2), f = Jt(u), h = Fd(d, f);\n c.assign(m), l.assign(h);\n let g = Ce(se(je(n, o), je(m, Ce(h, this.epsilon))), i);\n i.assign(g);\n }), this.iteration.assign(Ce(this.iteration, 1)), this.accBeta1.assign(se(this.accBeta1, this.beta1));\n }), this.incrementIterations();\n }\n dispose() {\n this.accBeta1.dispose(), this.iteration.dispose(), this.accumulatedFirstMoment != null && Mt(this.accumulatedFirstMoment.map((t8) => t8.variable)), this.accumulatedWeightedInfNorm != null && Mt(this.accumulatedWeightedInfNorm.map((t8) => t8.variable));\n }\n async getWeights() {\n throw new Error(\"getWeights() is not implemented for Adamax yet.\");\n }\n async setWeights(t8) {\n throw new Error(\"setWeights() is not implemented for Adamax yet.\");\n }\n getConfig() {\n return { learningRate: this.learningRate, beta1: this.beta1, beta2: this.beta2, epsilon: this.epsilon, decay: this.decay };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.beta1, e.beta2, e.epsilon, e.decay);\n }\n};\nvar mi = class extends Nr {\n static get className() {\n return \"SGD\";\n }\n constructor(t8) {\n super(), this.learningRate = t8, this.setLearningRate(t8);\n }\n applyGradients(t8) {\n (Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8)).forEach((o, n) => {\n let s = Array.isArray(t8) ? t8[n].tensor : t8[o];\n if (s == null)\n return;\n let a = T.registeredVariables[o];\n De(() => {\n let i = Ce(se(this.c, s), a);\n a.assign(i);\n });\n }), this.incrementIterations();\n }\n setLearningRate(t8) {\n this.learningRate = t8, this.c != null && this.c.dispose(), this.c = Rr(ke(-t8));\n }\n dispose() {\n this.c.dispose();\n }\n async getWeights() {\n return [await this.saveIterations()];\n }\n async setWeights(t8) {\n if (t8 = await this.extractIterations(t8), t8.length !== 0)\n throw new Error(\"SGD optimizer does not have settable weights.\");\n }\n getConfig() {\n return { learningRate: this.learningRate };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate);\n }\n};\nvar up = class extends mi {\n static get className() {\n return \"Momentum\";\n }\n constructor(t8, e, o = false) {\n super(t8), this.learningRate = t8, this.momentum = e, this.useNesterov = o, this.accumulations = [], this.m = ke(this.momentum);\n }\n applyGradients(t8) {\n (Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8)).forEach((o, n) => {\n let s = T.registeredVariables[o];\n this.accumulations[n] == null && (this.accumulations[n] = { originalName: `${o}/momentum`, variable: De(() => Ht(s).variable(false)) });\n let a = this.accumulations[n].variable, i = Array.isArray(t8) ? t8[n].tensor : t8[o];\n i != null && De(() => {\n let p, u = Ce(se(this.m, a), i);\n this.useNesterov ? p = Ce(se(this.c, Ce(i, se(u, this.m))), s) : p = Ce(se(this.c, u), s), a.assign(u), s.assign(p);\n });\n }), this.incrementIterations();\n }\n dispose() {\n this.m.dispose(), this.accumulations != null && Mt(this.accumulations.map((t8) => t8.variable));\n }\n setMomentum(t8) {\n this.momentum = t8;\n }\n async getWeights() {\n return [await this.saveIterations()].concat(this.accumulations.map((t8) => ({ name: t8.originalName, tensor: t8.variable })));\n }\n async setWeights(t8) {\n t8 = await this.extractIterations(t8);\n let e = false;\n this.accumulations = t8.map((o) => ({ originalName: o.name, variable: o.tensor.variable(e) }));\n }\n getConfig() {\n return { learningRate: this.learningRate, momentum: this.momentum, useNesterov: this.useNesterov };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.momentum, e.useNesterov);\n }\n};\nvar pp = class extends Nr {\n static get className() {\n return \"RMSProp\";\n }\n constructor(t8, e = 0.9, o = 0, n = null, s = false) {\n if (super(), this.learningRate = t8, this.decay = e, this.momentum = o, this.epsilon = n, this.accumulatedMeanSquares = [], this.accumulatedMoments = [], this.accumulatedMeanGrads = [], this.centered = s, n == null && (this.epsilon = T.backend.epsilon()), t8 == null)\n throw new Error(\"learningRate for RMSPropOptimizer must be defined.\");\n }\n applyGradients(t8) {\n (Array.isArray(t8) ? t8.map((o) => o.name) : Object.keys(t8)).forEach((o, n) => {\n let s = T.registeredVariables[o], a = false;\n this.accumulatedMeanSquares[n] == null && (this.accumulatedMeanSquares[n] = { originalName: `${o}/rms`, variable: De(() => Ht(s).variable(a)) }), this.accumulatedMoments[n] == null && (this.accumulatedMoments[n] = { originalName: `${o}/momentum`, variable: De(() => Ht(s).variable(a)) }), this.accumulatedMeanGrads[n] == null && this.centered && (this.accumulatedMeanGrads[n] = { originalName: `${o}/mg`, variable: De(() => Ht(s).variable(a)) });\n let i = Array.isArray(t8) ? t8[n].tensor : t8[o];\n if (i == null)\n return;\n let p = this.accumulatedMeanSquares[n].variable, u = this.accumulatedMoments[n].variable;\n De(() => {\n let c = Ce(se(p, this.decay), se(er(i), 1 - this.decay));\n if (this.centered) {\n let l = this.accumulatedMeanGrads[n].variable, m = Ce(se(l, this.decay), se(i, 1 - this.decay)), d = je(se(i, this.learningRate), Dr(Te(c, Ce(er(m), this.epsilon)))), f = Ce(se(u, this.momentum), d);\n p.assign(c), l.assign(m), u.assign(f);\n let h = Te(s, f);\n s.assign(h);\n } else {\n let l = Ce(se(p, this.decay), se(er(i), 1 - this.decay)), m = Ce(se(u, this.momentum), je(se(i, this.learningRate), Dr(Ce(l, this.epsilon))));\n p.assign(l), u.assign(m);\n let d = Te(s, m);\n s.assign(d);\n }\n });\n }), this.incrementIterations();\n }\n dispose() {\n this.accumulatedMeanSquares != null && Mt(this.accumulatedMeanSquares.map((t8) => t8.variable)), this.accumulatedMeanGrads != null && this.centered && Mt(this.accumulatedMeanGrads.map((t8) => t8.variable)), this.accumulatedMoments != null && Mt(this.accumulatedMoments.map((t8) => t8.variable));\n }\n async getWeights() {\n let t8 = [...this.accumulatedMeanSquares, ...this.accumulatedMoments];\n return this.centered && t8.push(...this.accumulatedMeanGrads), [await this.saveIterations()].concat(t8.map((e) => ({ name: e.originalName, tensor: e.variable })));\n }\n async setWeights(t8) {\n t8 = await this.extractIterations(t8);\n let e = this.centered ? t8.length / 3 : t8.length / 2, o = false;\n this.accumulatedMeanSquares = t8.slice(0, e).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) })), this.accumulatedMoments = t8.slice(e, e * 2).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) })), this.centered && (this.accumulatedMeanGrads = t8.slice(e * 2, e * 3).map((n) => ({ originalName: n.name, variable: n.tensor.variable(o) })));\n }\n getConfig() {\n return { learningRate: this.learningRate, decay: this.decay, momentum: this.momentum, epsilon: this.epsilon, centered: this.centered };\n }\n static fromConfig(t8, e) {\n return new t8(e.learningRate, e.decay, e.momentum, e.epsilon, e.centered);\n }\n};\nvar Jj = [np, sp, ap, ip, up, pp, mi];\nfunction UN() {\n for (let r of Jj)\n tS(r);\n}\nvar fi = {};\nqe(fi, { CompositeArrayBuffer: () => jt, browserFiles: () => HN, browserHTTPRequest: () => jN, concatenateArrayBuffers: () => ik, copyModel: () => wk, decodeWeights: () => ad, encodeWeights: () => nk, fromMemory: () => XN, fromMemorySync: () => iS, getLoadHandlers: () => lk, getModelArtifactsForJSON: () => ic, getModelArtifactsForJSONSync: () => _w, getModelArtifactsInfoForJSON: () => va, getSaveHandlers: () => ck, getWeightSpecs: () => ud, http: () => nf, isHTTPScheme: () => of, listModels: () => bk, loadWeights: () => KN, moveModel: () => Sk, registerLoadRouter: () => pk, registerSaveRouter: () => uk, removeModel: () => Ck, weightsLoaderFactory: () => sS, withSaveHandler: () => YN, withSaveHandlerSync: () => QN });\nvar eX = \"model\";\nvar tX = \".json\";\nvar rX = \".weights.bin\";\nfunction GN(r) {\n return new Promise((t8) => setTimeout(t8)).then(r);\n}\nvar di = class {\n constructor(t8) {\n if (!A().getBool(\"IS_BROWSER\"))\n throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");\n t8.startsWith(di.URL_SCHEME) && (t8 = t8.slice(di.URL_SCHEME.length)), (t8 == null || t8.length === 0) && (t8 = eX), this.modelJsonFileName = t8 + tX, this.weightDataFileName = t8 + rX;\n }\n async save(t8) {\n if (typeof document == \"undefined\")\n throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");\n let e = jt.join(t8.weightData), o = window.URL.createObjectURL(new Blob([e], { type: \"application/octet-stream\" }));\n if (t8.modelTopology instanceof ArrayBuffer)\n throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");\n {\n let n = [{ paths: [\"./\" + this.weightDataFileName], weights: t8.weightSpecs }], s = id(t8, n), a = window.URL.createObjectURL(new Blob([JSON.stringify(s)], { type: \"application/json\" })), i = this.modelJsonAnchor == null ? document.createElement(\"a\") : this.modelJsonAnchor;\n if (i.download = this.modelJsonFileName, i.href = a, await GN(() => i.dispatchEvent(new MouseEvent(\"click\"))), t8.weightData != null) {\n let p = this.weightDataAnchor == null ? document.createElement(\"a\") : this.weightDataAnchor;\n p.download = this.weightDataFileName, p.href = o, await GN(() => p.dispatchEvent(new MouseEvent(\"click\")));\n }\n return { modelArtifactsInfo: va(t8) };\n }\n }\n};\ndi.URL_SCHEME = \"downloads://\";\nvar rS = class {\n constructor(t8) {\n if (t8 == null || t8.length < 1)\n throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t8}`);\n this.jsonFile = t8[0], this.weightsFiles = t8.slice(1);\n }\n async load() {\n return new Promise((t8, e) => {\n let o = new FileReader();\n o.onload = (n) => {\n let s = JSON.parse(n.target.result), a = s.modelTopology;\n if (a == null) {\n e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));\n return;\n }\n if (s.weightsManifest == null) {\n e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));\n return;\n }\n if (this.weightsFiles.length === 0) {\n t8({ modelTopology: a });\n return;\n }\n let p = ic(s, (u) => this.loadWeights(u));\n t8(p);\n }, o.onerror = (n) => e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`), o.readAsText(this.jsonFile);\n });\n }\n loadWeights(t8) {\n let e = [], o = [];\n for (let a of t8)\n e.push(...a.weights), o.push(...a.paths);\n let n = this.checkManifestAndWeightFiles(t8), s = o.map((a) => this.loadWeightsFile(a, n[a]));\n return Promise.all(s).then((a) => [e, a]);\n }\n loadWeightsFile(t8, e) {\n return new Promise((o, n) => {\n let s = new FileReader();\n s.onload = (a) => {\n let i = a.target.result;\n o(i);\n }, s.onerror = (a) => n(`Failed to weights data from file of path '${t8}'.`), s.readAsArrayBuffer(e);\n });\n }\n checkManifestAndWeightFiles(t8) {\n let e = [], o = this.weightsFiles.map((s) => Tw(s.name)), n = {};\n for (let s of t8)\n s.paths.forEach((a) => {\n let i = Tw(a);\n if (e.indexOf(i) !== -1)\n throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);\n if (e.push(i), o.indexOf(i) === -1)\n throw new Error(`Weight file with basename '${i}' is not provided.`);\n n[a] = this.weightsFiles[o.indexOf(i)];\n });\n if (e.length !== this.weightsFiles.length)\n throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);\n return n;\n }\n};\nvar oX = (r) => A().getBool(\"IS_BROWSER\") && !Array.isArray(r) && r.startsWith(di.URL_SCHEME) ? nX(r.slice(di.URL_SCHEME.length)) : null;\nft.registerSaveRouter(oX);\nfunction nX(r = \"model\") {\n return new di(r);\n}\nfunction HN(r) {\n return new rS(r);\n}\nfunction oS(r, t8, e, o) {\n a(r), e = e == null ? 0 : e, o = o == null ? 1 : o, i(e, o);\n let n = 0, s = (p) => (p.then((u) => {\n let c = e + ++n / r.length * (o - e);\n return t8(c), u;\n }), p);\n function a(p) {\n $(p != null && Array.isArray(p) && p.length > 0, () => \"promises must be a none empty array\");\n }\n function i(p, u) {\n $(p >= 0 && p <= 1, () => `Progress fraction must be in range [0, 1], but got startFraction ${p}`), $(u >= 0 && u <= 1, () => `Progress fraction must be in range [0, 1], but got endFraction ${u}`), $(u >= p, () => `startFraction must be no more than endFraction, but got startFraction ${p} and endFraction ${u}`);\n }\n return Promise.all(r.map(s));\n}\nasync function nS(r, t8) {\n t8 == null && (t8 = {});\n let e = t8.fetchFunc == null ? A().platform.fetch : t8.fetchFunc, o = r.map((l) => e(l, t8.requestInit, { isBinary: true })), n = 0, s = 0.5, i = (t8.onProgress == null ? await Promise.all(o) : await oS(o, t8.onProgress, n, s)).map((l) => l.arrayBuffer()), p = 0.5, u = 1;\n return t8.onProgress == null ? await Promise.all(i) : await oS(i, t8.onProgress, p, u);\n}\nasync function KN(r, t8 = \"\", e, o) {\n return sS((a) => nS(a, { requestInit: o }))(r, t8, e);\n}\nfunction sS(r) {\n return async (t8, e = \"\", o) => {\n let n = t8.map(() => false), s = {}, a = o != null ? o.map(() => false) : [], i = [];\n if (t8.forEach((d, f) => {\n let h = 0;\n d.weights.forEach((g) => {\n let x = \"quantization\" in g ? g.quantization.dtype : g.dtype, b = Il[x] * He(g.shape), C = () => {\n n[f] = true, s[f] == null && (s[f] = []), s[f].push({ manifestEntry: g, groupOffset: h, sizeBytes: b });\n };\n o != null ? o.forEach((S, k) => {\n S === g.name && (C(), a[k] = true);\n }) : C(), i.push(g.name), h += b;\n });\n }), !a.every((d) => d)) {\n let d = o.filter((f, h) => !a[h]);\n throw new Error(`Could not find weights in manifest with names: ${d.join(\", \")}. \nManifest JSON has weights with names: ${i.join(\", \")}.`);\n }\n let p = n.reduce((d, f, h) => (f && d.push(h), d), []), u = [];\n p.forEach((d) => {\n t8[d].paths.forEach((f) => {\n let h = e + (e.endsWith(\"/\") ? \"\" : \"/\") + f;\n u.push(h);\n });\n });\n let c = await r(u), l = {}, m = 0;\n return p.forEach((d) => {\n let f = t8[d].paths.length, h = new jt(c.slice(m, m + f));\n s[d].forEach((x) => {\n let b = h.slice(x.groupOffset, x.groupOffset + x.sizeBytes), C = ad(b, [x.manifestEntry]);\n for (let S in C)\n l[S] = C[S];\n }), m += f;\n }), l;\n };\n}\nvar sX = \"application/octet-stream\";\nvar aX = \"application/json\";\nvar Al = class {\n constructor(t8, e) {\n if (this.DEFAULT_METHOD = \"POST\", e == null && (e = {}), this.weightPathPrefix = e.weightPathPrefix, this.onProgress = e.onProgress, this.weightUrlConverter = e.weightUrlConverter, e.fetchFunc != null ? ($(typeof e.fetchFunc == \"function\", () => \"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\"), this.fetch = e.fetchFunc) : this.fetch = A().platform.fetch, $(t8 != null && t8.length > 0, () => \"URL path for http must not be null, undefined or empty.\"), Array.isArray(t8) && $(t8.length === 2, () => `URL paths for http must have a length of 2, (actual length is ${t8.length}).`), this.path = t8, e.requestInit != null && e.requestInit.body != null)\n throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");\n this.requestInit = e.requestInit || {};\n }\n async save(t8) {\n if (t8.modelTopology instanceof ArrayBuffer)\n throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");\n let e = Object.assign({ method: this.DEFAULT_METHOD }, this.requestInit);\n e.body = new FormData();\n let o = [{ paths: [\"./model.weights.bin\"], weights: t8.weightSpecs }], n = id(t8, o);\n if (e.body.append(\"model.json\", new Blob([JSON.stringify(n)], { type: aX }), \"model.json\"), t8.weightData != null) {\n let a = jt.join(t8.weightData);\n e.body.append(\"model.weights.bin\", new Blob([a], { type: sX }), \"model.weights.bin\");\n }\n let s = await this.fetch(this.path, e);\n if (s.ok)\n return { modelArtifactsInfo: va(t8), responses: [s] };\n throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`);\n }\n async load() {\n let t8 = await this.fetch(this.path, this.requestInit);\n if (!t8.ok)\n throw new Error(`Request to ${this.path} failed with status code ${t8.status}. Please verify this URL points to the model JSON of the model to load.`);\n let e;\n try {\n e = await t8.json();\n } catch (s) {\n let a = `Failed to parse model JSON of response from ${this.path}.`;\n throw this.path.endsWith(\".pb\") ? a += \" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.\" : a += \" Please make sure the server is serving valid JSON for this request.\", new Error(a);\n }\n let o = e.modelTopology, n = e.weightsManifest;\n if (o == null && n == null)\n throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);\n return ic(e, (s) => this.loadWeights(s));\n }\n async loadWeights(t8) {\n let e = Array.isArray(this.path) ? this.path[1] : this.path, [o, n] = iX(e), s = this.weightPathPrefix || o, a = ud(t8), i = [], p = [];\n for (let c of t8)\n for (let l of c.paths)\n this.weightUrlConverter != null ? p.push(this.weightUrlConverter(l)) : i.push(s + l + n);\n this.weightUrlConverter && i.push(...await Promise.all(p));\n let u = await nS(i, { requestInit: this.requestInit, fetchFunc: this.fetch, onProgress: this.onProgress });\n return [a, u];\n }\n};\nAl.URL_SCHEME_REGEX = /^https?:\\/\\//;\nfunction iX(r) {\n let t8 = r.lastIndexOf(\"/\"), e = r.lastIndexOf(\"?\"), o = r.substring(0, t8), n = e > t8 ? r.substring(e) : \"\";\n return [o + \"/\", n];\n}\nfunction of(r) {\n return r.match(Al.URL_SCHEME_REGEX) != null;\n}\nvar qN = (r, t8) => {\n if (typeof fetch == \"undefined\" && (t8 == null || t8.fetchFunc == null))\n return null;\n {\n let e = true;\n if (Array.isArray(r) ? e = r.every((o) => of(o)) : e = of(r), e)\n return nf(r, t8);\n }\n return null;\n};\nft.registerSaveRouter(qN);\nft.registerLoadRouter(qN);\nfunction nf(r, t8) {\n return new Al(r, t8);\n}\nfunction jN(r, t8) {\n return nf(r, t8);\n}\nvar Fl = class {\n constructor(t8) {\n this.modelArtifacts = t8;\n }\n load() {\n return this.modelArtifacts;\n }\n};\nvar sf = class {\n constructor(t8) {\n this.saveHandler = t8;\n }\n save(t8) {\n return this.saveHandler(t8);\n }\n};\nvar aS = class {\n constructor(t8) {\n t8.load && (this.load = () => Promise.resolve(t8.load())), t8.save && (this.save = (e) => Promise.resolve(t8.save(e)));\n }\n};\nfunction XN(r, t8, e, o) {\n let n = arguments;\n return new aS(iS(...n));\n}\nfunction iS(r, t8, e, o) {\n return arguments.length === 1 ? r.modelTopology != null || r.weightSpecs != null ? new Fl(r) : (console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"), new Fl({ modelTopology: r })) : (console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"), new Fl({ modelTopology: r, weightSpecs: t8, weightData: e, trainingConfig: o }));\n}\nfunction YN(r) {\n return new sf(r);\n}\nfunction QN(r) {\n return new sf(r);\n}\nvar JN = {};\nqe(JN, { confusionMatrix: () => ZN });\nfunction uX(r, t8, e) {\n let o = v(r, \"labels\", \"confusionMatrix\"), n = v(t8, \"predictions\", \"confusionMatrix\");\n $(e == null || e > 0 && Number.isInteger(e), () => `If provided, numClasses must be a positive integer, but got ${e}`), $(o.rank === 1, () => `Expected the rank of labels to be 1, but got ${o.rank}`), $(n.rank === 1, () => `Expected the rank of predictions to be 1, but got ${n.rank}`), $(o.shape[0] === n.shape[0], () => `Mismatch in the number of examples: ${o.shape[0]} vs. ${n.shape[0]}. Labels and predictions should have the same number of elements.`), $(e > 0 && Number.isInteger(e), () => `numClasses is required to be a positive integer, but got ${e}`);\n let s = El(We(o, \"int32\"), e), a = El(We(n, \"int32\"), e), i = yc(s), p = Ze(i, a);\n return We(p, \"int32\");\n}\nvar ZN = N({ confusionMatrix_: uX });\nvar oT = {};\nqe(oT, { draw: () => gX, fromPixels: () => xX, fromPixelsAsync: () => dX, toPixels: () => hX });\nvar cp;\nvar eT = false;\nfunction tT(r, t8 = 3) {\n if (t8 > 4)\n throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");\n if (r == null)\n throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");\n let e = false, o = false, n = false, s = false, a = false, i = false;\n if (r.data instanceof Uint8Array)\n e = true;\n else if (typeof ImageData != \"undefined\" && r instanceof ImageData)\n o = true;\n else if (typeof HTMLVideoElement != \"undefined\" && r instanceof HTMLVideoElement)\n n = true;\n else if (typeof HTMLImageElement != \"undefined\" && r instanceof HTMLImageElement)\n s = true;\n else if (r.getContext != null)\n a = true;\n else if (typeof ImageBitmap != \"undefined\" && r instanceof ImageBitmap)\n i = true;\n else\n throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);\n if (tc(Mu, T.backendName) != null) {\n let f = { pixels: r }, h = { numChannels: t8 };\n return T.runKernel(Mu, f, h);\n }\n let [u, c] = n ? [r.videoWidth, r.videoHeight] : [r.width, r.height], l;\n if (a)\n l = r.getContext(\"2d\").getImageData(0, 0, u, c).data;\n else if (o || e)\n l = r.data;\n else if (s || n || i) {\n if (cp == null)\n if (typeof document == \"undefined\")\n if (typeof OffscreenCanvas != \"undefined\" && typeof OffscreenCanvasRenderingContext2D != \"undefined\")\n cp = new OffscreenCanvas(1, 1).getContext(\"2d\");\n else\n throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");\n else\n cp = document.createElement(\"canvas\").getContext(\"2d\", { willReadFrequently: true });\n cp.canvas.width = u, cp.canvas.height = c, cp.drawImage(r, 0, 0, u, c), l = cp.getImageData(0, 0, u, c).data;\n }\n let m;\n if (t8 === 4)\n m = new Int32Array(l);\n else {\n let f = u * c;\n m = new Int32Array(f * t8);\n for (let h = 0; h < f; h++)\n for (let g = 0; g < t8; ++g)\n m[h * t8 + g] = l[h * 4 + g];\n }\n return Xd(m, [c, u, t8], \"int32\");\n}\nfunction pX(r) {\n return r != null && r.data instanceof Uint8Array;\n}\nfunction cX() {\n return typeof window != \"undefined\" && typeof ImageBitmap != \"undefined\" && window.hasOwnProperty(\"createImageBitmap\");\n}\nfunction lX(r) {\n return r != null && r.width !== 0 && r.height !== 0;\n}\nfunction mX(r) {\n return cX() && !(r instanceof ImageBitmap) && lX(r) && !pX(r);\n}\nasync function dX(r, t8 = 3) {\n let e = null;\n if (A().getBool(\"WRAP_TO_IMAGEBITMAP\") && mX(r)) {\n let o;\n try {\n o = await createImageBitmap(r, { premultiplyAlpha: \"none\" });\n } catch (n) {\n o = null;\n }\n o != null && o.width === r.width && o.height === r.height ? e = o : e = r;\n } else\n e = r;\n return tT(e, t8);\n}\nfunction rT(r) {\n if (r.rank !== 2 && r.rank !== 3)\n throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${r.rank}.`);\n let t8 = r.rank === 2 ? 1 : r.shape[2];\n if (t8 > 4 || t8 === 2)\n throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t8}`);\n if (r.dtype !== \"float32\" && r.dtype !== \"int32\")\n throw new Error(`Unsupported type for toPixels: ${r.dtype}. Please use float32 or int32 tensors.`);\n}\nfunction fX(r) {\n let t8 = (r == null ? void 0 : r.alpha) || 1;\n if (t8 > 1 || t8 < 0)\n throw new Error(`Alpha value ${t8} is suppoed to be in range [0 - 1].`);\n}\nasync function hX(r, t8) {\n let e = v(r, \"img\", \"toPixels\");\n if (!(r instanceof ut)) {\n let u = e;\n e = We(u, \"int32\"), u.dispose();\n }\n rT(e);\n let [o, n] = e.shape.slice(0, 2), s = e.rank === 2 ? 1 : e.shape[2], a = await e.data(), i = e.dtype === \"float32\" ? 255 : 1, p = new Uint8ClampedArray(n * o * 4);\n for (let u = 0; u < o * n; ++u) {\n let c = [0, 0, 0, 255];\n for (let m = 0; m < s; m++) {\n let d = a[u * s + m];\n if (e.dtype === \"float32\") {\n if (d < 0 || d > 1)\n throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${d}.`);\n } else if (e.dtype === \"int32\" && (d < 0 || d > 255))\n throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${d}.`);\n s === 1 ? (c[0] = d * i, c[1] = d * i, c[2] = d * i) : c[m] = d * i;\n }\n let l = u * 4;\n p[l + 0] = Math.round(c[0]), p[l + 1] = Math.round(c[1]), p[l + 2] = Math.round(c[2]), p[l + 3] = Math.round(c[3]);\n }\n if (t8 != null) {\n eT || tc(Pu, T.backendName) != null && (console.warn(\"tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead.\"), eT = true), t8.width = n, t8.height = o;\n let u = t8.getContext(\"2d\"), c = new ImageData(p, n, o);\n u.putImageData(c, 0, 0);\n }\n return e !== r && e.dispose(), p;\n}\nfunction gX(r, t8, e) {\n let o = v(r, \"img\", \"draw\");\n if (!(r instanceof ut)) {\n let a = o;\n o = We(a, \"int32\"), a.dispose();\n }\n rT(o), fX(e == null ? void 0 : e.imageOptions);\n let n = { image: o }, s = { canvas: t8, options: e };\n T.runKernel(Pu, n, s);\n}\nvar xX = N({ fromPixels_: tT });\nvar af = {};\nqe(af, { prepareAndValidate: () => nT });\nfunction nT(r, t8) {\n let e = r.shape.length, o = t8.shape.length;\n if (e < 1)\n throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);\n if (o < 1)\n throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${o}.`);\n if (t8.dtype !== \"int32\")\n throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t8.dtype}.`);\n if (t8.shape[o - 1] > e)\n throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t8.shape[o - 1]} vs. ${e}`);\n if (He(r.shape) === 0)\n throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);\n let n = t8.shape, s = n[n.length - 1], a = 1;\n for (let l = 0; l < n.length - 1; ++l)\n a *= n[l];\n let i = r.shape, p = n.slice();\n p.pop();\n let u = 1;\n for (let l = s; l < e; ++l)\n u *= i[l], p.push(i[l]);\n let c = [...js(r.shape).map((l) => l / u), 1].slice(0, s);\n return [p, a, u, c];\n}\nvar ct = {};\nqe(ct, { assertParamsValid: () => bX, computeFlatOffset: () => vX, computeOutShape: () => wX, getNormalizedAxes: () => SX, isSliceContinous: () => IX, maskToAxes: () => CX, parseSliceParams: () => kX, sliceInfo: () => NX, startForAxis: () => mT, startIndicesWithElidedDims: () => pT, stopForAxis: () => dT, stopIndicesWithElidedDims: () => cT, stridesForAxis: () => lT, stridesWithElidedDims: () => aT });\nvar uS = -2;\nvar yX = -1;\nfunction bX(r, t8, e) {\n let o = r.shape.length;\n $(o === t8.length, () => `Error in slice${o}D: Length of begin ${t8} must match the rank of the array (${o}).`), $(o === e.length, () => `Error in slice${o}D: Length of size ${e} must match the rank of the array (${o}).`);\n for (let n = 0; n < o; ++n)\n $(t8[n] + e[n] <= r.shape[n], () => `Error in slice${o}D: begin[${n}] + size[${n}] (${t8[n] + e[n]}) would overflow input.shape[${n}] (${r.shape[n]})`);\n}\nfunction CX(r) {\n let t8 = [], e = 0;\n for (; r > 0; )\n r & 1 && t8.push(e), r /= 2, e++;\n return t8;\n}\nfunction wX(r, t8, e) {\n let o = [];\n for (let n = 0; n < r.length; n++)\n o[n] = Math.ceil((t8[n] - r[n]) / e[n]);\n return o;\n}\nfunction aT(r, t8, e, o) {\n let n = [...r];\n for (let s = n.length; s < o.length; s++)\n n.push(1);\n for (let s = 0; s < e; s++)\n s === 0 ? n[t8] = 1 : (n.splice(t8, 0, 1), n.pop());\n return n;\n}\nfunction iT(r, t8, e) {\n return e <= r ? e : e - (t8 - 1);\n}\nfunction uT(r, t8) {\n let e = [];\n for (let o = 0; o < r; o++)\n e.push(t8 + o);\n return e;\n}\nfunction SX(r, t8, e, o, n, s, a, i, p) {\n let u = r.length, c = new Array(u), l = new Array(u), m = new Array(u);\n if (t8.length && e > 0) {\n let d = t8[0], f = e + 1;\n c = pT(a, d, f, o, r), l = cT(i, d, f, n, r), m = aT(s, d, f, r);\n } else\n for (let d = 0; d < u; d++)\n c[d] = mT(a, o, s, r, d, p), l[d] = dT(i, n, s, r, d, p), m[d] = lT(s, d, p);\n return { begin: c, end: l, strides: m };\n}\nfunction pT(r, t8, e, o, n) {\n let s = [...n], a = uT(e, t8);\n for (let i = 0; i < s.length; i++)\n if (a.indexOf(i) > -1)\n s[i] = 0;\n else {\n let p = iT(t8, e, i), u = o[p];\n r & 1 << p && (u = 0), s[i] = u;\n }\n return s;\n}\nfunction cT(r, t8, e, o, n) {\n let s = [...n], a = uT(e, t8);\n for (let i = 0; i < s.length; i++)\n if (a.indexOf(i) > -1)\n s[i] = Number.MAX_SAFE_INTEGER;\n else {\n let p = iT(t8, e, i), u = o[p];\n r & 1 << p && (u = Number.MAX_SAFE_INTEGER), s[i] = u;\n }\n for (let i = 0; i < s.length; i++) {\n let p = n[i];\n s[i] < 0 && (s[i] += p), s[i] = qp(0, s[i], n[i]);\n }\n return s;\n}\nfunction lT(r, t8, e) {\n let o = r[t8];\n return (e & 1 << t8 || o == null) && (o = 1), o;\n}\nfunction mT(r, t8, e, o, n, s) {\n let a = t8[n], i = e[n] || 1;\n (r & 1 << n || s & 1 << n || a == null) && (i > 0 ? a = Number.MIN_SAFE_INTEGER : a = Number.MAX_SAFE_INTEGER);\n let p = o[n];\n return a < 0 && (a += p), a = qp(0, a, p - 1), a;\n}\nfunction dT(r, t8, e, o, n, s) {\n let a = t8[n], i = e[n] || 1;\n (r & 1 << n || s & 1 << n || a == null) && (i > 0 ? a = Number.MAX_SAFE_INTEGER : a = Number.MIN_SAFE_INTEGER);\n let p = o[n];\n return a < 0 && (a += p), i > 0 ? a = qp(0, a, p) : a = qp(-1, a, p - 1), a;\n}\nfunction IX(r, t8, e) {\n let o = e.length;\n for (let n = 0; n < e.length; n++)\n if (e[n] > 1) {\n o = n;\n break;\n }\n for (let n = o + 1; n < e.length; n++)\n if (t8[n] > 0 || e[n] !== r[n])\n return false;\n return true;\n}\nfunction vX(r, t8) {\n let e = r.length > 0 ? r[r.length - 1] : 1;\n for (let o = 0; o < r.length - 1; o++)\n e += r[o] * t8[o];\n return e;\n}\nfunction kX(r, t8, e) {\n let o, n = r.shape.length;\n typeof t8 == \"number\" ? o = [t8, ...new Array(n - 1).fill(0)] : t8.length < n ? o = t8.concat(new Array(n - t8.length).fill(0)) : o = t8.slice(), o.forEach((a) => {\n $(a !== -1, () => \"slice() does not support negative begin indexing.\");\n });\n let s;\n return e == null ? s = new Array(n).fill(-1) : typeof e == \"number\" ? s = [e, ...new Array(n - 1).fill(-1)] : e.length < n ? s = e.concat(new Array(n - e.length).fill(-1)) : s = e, s = s.map((a, i) => a >= 0 ? a : ($(a === -1, () => `Negative size values should be exactly -1 but got ${a} for the slice() size at index ${i}.`), r.shape[i] - o[i])), [o, s];\n}\nfunction NX(r, t8, e, o, n, s, a, i, p) {\n let u;\n if (o == null ? (u = new Array(t8.length), u.fill(1)) : u = o, a != null && a & a - 1)\n throw new Error(\"Multiple ellipses in slice is not allowed.\");\n let c = false, l = { dims: u.length, numAddAxisAfterEllipsis: 0, begin: t8.slice(), end: e.slice(), strides: u.slice(), beginMask: n, endMask: s, ellipsisMask: a, newAxisMask: i, shrinkAxisMask: p };\n for (let C = 0; C < l.dims; C++)\n c && 1 << C & i && l.numAddAxisAfterEllipsis++, 1 << C & a && (c = true);\n c || (l.ellipsisMask |= 1 << l.dims, l.dims++);\n let m = { dims: r.length, beginMask: 0, endMask: 0, beginValid: false, endValid: false };\n TX(l, m);\n let d = true, f = true, h = true, g = [], x = [];\n for (let C = 0; C < r.length; ++C) {\n if (m.strides[C] === 0)\n throw Error(`strides[${C}] must be non-zero`);\n let S = !!(m.shrinkAxisMask & 1 << C), k = r[C];\n if (k === -1) {\n g.push(S ? 1 : -1);\n continue;\n }\n let _ = [m.beginMask & 1 << C, m.endMask & 1 << C], E = [m.strides[C] > 0 ? 0 : -1, m.strides[C] > 0 ? k : k - 1];\n if (S && m.strides[C] <= 0)\n throw Error(\"only stride 1 allowed on non-range indexing.\");\n h = h && m.strides[C] === 1;\n let R = !!(m.beginMask & 1 << C && m.endMask & 1 << C);\n if (m.beginValid && m.endValid) {\n if (S) {\n let M = m.begin[C] < 0 ? k + m.begin[C] : m.begin[C];\n if (m.begin[C] = M, m.end[C] = m.begin[C] + 1, M < 0 || M >= k)\n throw Error(`slice index ${m.begin[C]} of dimension ${C} out of bounds.`);\n } else\n m.begin[C] = sT(m.begin[C], 0, m.strides[C], k, _, E), m.end[C] = sT(m.end[C], 1, m.strides[C], k, _, E);\n let O = m.strides[C] === 1 && m.begin[C] === 0 && m.end[C] === k;\n d = d && O, f = f && (C === 0 && m.strides[C] === 1 || O);\n } else\n d = d && m.strides[C] === 1 && R, f = f && (C === 0 && m.strides[C] === 1 || R);\n let D, P = false;\n if (m.beginValid && m.endValid ? (D = m.end[C] - m.begin[C], P = true) : S ? (D = 1, P = true) : R && k >= 0 && (m.strides[C] < 0 ? D = -k : D = k, P = true), P) {\n let O;\n D === 0 || D < 0 != m.strides[C] < 0 ? O = 0 : O = Math.trunc(D / m.strides[C]) + (D % m.strides[C] !== 0 ? 1 : 0), g.push(O);\n } else\n g.push(-1);\n }\n for (let C = 0; C < m.finalShapeGatherIndices.length; ++C) {\n let S = m.finalShapeGatherIndices[C];\n S >= 0 ? x.push(g[S]) : S === uS && x.push(1);\n }\n return { finalShapeSparse: x.filter((C, S) => m.finalShapeGatherIndices[S] !== uS), finalShape: x, isIdentity: d, sliceDim0: f, isSimpleSlice: h, begin: m.begin, end: m.end, strides: m.strides };\n}\nfunction TX(r, t8) {\n t8.beginMask = 0, t8.endMask = 0, t8.shrinkAxisMask = 0;\n let e = 0;\n t8.beginValid = r.begin != null, t8.endValid = r.end != null, t8.begin = new Array(t8.dims), t8.end = new Array(t8.dims), t8.strides = new Array(t8.dims), t8.finalShapeGatherIndices = [], t8.finalShapeGatherIndicesSparse = [], t8.inputShapeGatherIndicesSparse = new Array(t8.dims);\n for (let o = 0; o < r.dims; o++)\n if (1 << o & r.ellipsisMask) {\n let n = Math.min(t8.dims - (r.dims - o) + 1 + r.numAddAxisAfterEllipsis, t8.dims);\n for (; e < n; e++)\n t8.begin[e] = 0, t8.end[e] = 0, t8.strides[e] = 1, t8.beginMask |= 1 << e, t8.endMask |= 1 << e, t8.finalShapeGatherIndices.push(e), t8.finalShapeGatherIndicesSparse.push(-1), t8.inputShapeGatherIndicesSparse[e] = o;\n } else if (1 << o & r.newAxisMask)\n t8.finalShapeGatherIndices.push(uS), t8.finalShapeGatherIndicesSparse.push(-1);\n else {\n if (e === t8.begin.length)\n throw Error(`Index out of range using input dim ${e}; input has only ${t8.dims} dims, ${t8.begin.length}.`);\n r.begin != null && (t8.begin[e] = r.begin[o]), r.end != null && (t8.end[e] = r.end[o]), t8.strides[e] = r.strides[o], r.beginMask & 1 << o && (t8.beginMask |= 1 << e), r.endMask & 1 << o && (t8.endMask |= 1 << e), r.shrinkAxisMask & 1 << o ? (t8.finalShapeGatherIndices.push(yX), t8.finalShapeGatherIndicesSparse.push(-1), t8.shrinkAxisMask |= 1 << e) : (t8.finalShapeGatherIndices.push(e), t8.finalShapeGatherIndicesSparse.push(o)), t8.inputShapeGatherIndicesSparse[e] = o, e++;\n }\n}\nfunction sT(r, t8, e, o, n, s) {\n if (n[t8])\n return e > 0 ? s[t8] : s[t8 + 1 & 1];\n {\n let a = r < 0 ? o + r : r;\n return a < s[0] ? s[0] : a > s[1] ? s[1] : a;\n }\n}\nvar _X = \"4.11.0\";\nvar Pl = class {\n static sgd(t8) {\n return new mi(t8);\n }\n static momentum(t8, e, o = false) {\n return new up(t8, e, o);\n }\n static rmsprop(t8, e = 0.9, o = 0, n = null, s = false) {\n return new pp(t8, e, o, n, s);\n }\n static adam(t8 = 1e-3, e = 0.9, o = 0.999, n = null) {\n return new ap(t8, e, o, n);\n }\n static adadelta(t8 = 1e-3, e = 0.95, o = null) {\n return new np(t8, e, o);\n }\n static adamax(t8 = 2e-3, e = 0.9, o = 0.999, n = null, s = 0) {\n return new ip(t8, e, o, n, s);\n }\n static adagrad(t8, e = 0.1) {\n return new sp(t8, e);\n }\n};\nvar TGe = Pl;\nvar $X = (() => typeof requestAnimationFrame != \"undefined\" ? requestAnimationFrame : typeof setImmediate != \"undefined\" ? setImmediate : (r) => r())();\nfunction pS() {\n return new Promise((r) => $X(() => r()));\n}\nvar w = {};\nqe(w, { ERF_A1: () => KX, ERF_A2: () => qX, ERF_A3: () => jX, ERF_A4: () => XX, ERF_A5: () => YX, ERF_P: () => HX, PARALLELIZE_THRESHOLD: () => uf, RowPartitionType: () => Pa, SELU_SCALE: () => GX, SELU_SCALEALPHA: () => UX, applyActivation: () => rp, assertAndGetBroadcastShape: () => rt, assertAxesAreInnerMostDims: () => tK, assertParamsConsistent: () => EX, assignToTypedArray: () => r5, axesAreInnerMostDims: () => Bw, calculateShapes: () => V1, checkEinsumDimSizes: () => u5, checkPadOnDimRoundingMode: () => Bt, combineLocations: () => x2, combineRaggedTensorToTensorShapes: () => DX, complexWithEvenIndex: () => JX, complexWithOddIndex: () => e5, computeConv2DInfo: () => Hu, computeConv3DInfo: () => Mk, computeDefaultPad: () => Lw, computeDilation2DInfo: () => J4, computeOptimalWindowSize: () => OX, computeOutAndReduceShapes: () => eK, computeOutShape: () => RX, computePool2DInfo: () => Mw, computePool3DInfo: () => eH, convertConv2DDataFormat: () => Lk, decodeEinsumEquation: () => a5, eitherStridesOrDilationsAreOne: () => xr, expandShapeToKeepDim: () => ii, exponent: () => n5, exponents: () => o5, fromStringArrayToUint8: () => $5, fromUint8ToStringArray: () => _5, getAxesPermutation: () => rK, getBroadcastDims: () => m2, getComplexWithIndex: () => t5, getEinsumComputePath: () => p5, getEinsumPermutation: () => i5, getFusedBiasGradient: () => tp, getFusedDyActivation: () => ep, getImageCenter: () => MX, getInnerMostAxes: () => nK, getPermuted: () => BX, getRaggedRank: () => FX, getReductionAxes: () => yd, getReshaped: () => LX, getReshapedPermuted: () => zX, getRowPartitionTypesHelper: () => AX, getSliceBeginCoords: () => VX, getSliceSize: () => WX, getSparseFillEmptyRowsIndicesDenseShapeMismatch: () => d5, getSparseFillEmptyRowsNegativeIndexErrorMessage: () => f5, getSparseFillEmptyRowsOutOfRangeIndexErrorMessage: () => h5, getSparseReshapeEmptyTensorZeroOutputDimErrorMessage: () => y5, getSparseReshapeInputOutputMismatchErrorMessage: () => C5, getSparseReshapeInputOutputMultipleErrorMessage: () => b5, getSparseReshapeMultipleNegativeOneOutputDimErrorMessage: () => g5, getSparseReshapeNegativeOutputDimErrorMessage: () => x5, getSparseSegmentReductionIndicesOutOfRangeErrorMessage: () => v5, getSparseSegmentReductionNegativeSegmentIdsErrorMessage: () => w5, getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage: () => S5, getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage: () => I5, getUndoAxesPermutation: () => oK, isIdentityPermutation: () => c5, log: () => jG, mergeRealAndImagArrays: () => QX, prepareAndValidate: () => nT, prepareSplitSize: () => m5, segment_util: () => lS, shouldFuse: () => op, slice_util: () => ct, splitRealAndImagArrays: () => ZX, stridesOrDilationsArePositive: () => Ta, tupleValuesAreOne: () => Gu, upcastType: () => dt, validateDefaultValueShape: () => PX, validateInput: () => xc, validateUpdateShape: () => Yw, warn: () => Ia });\nfunction EX(r, t8) {\n let e = r[0].length;\n r.forEach((n, s) => {\n $(n.length === e, () => `Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`);\n }), $(t8 >= 0 && t8 < e, () => `Error in concat${e}D: axis must be between 0 and ${e - 1}.`);\n let o = r[0];\n r.forEach((n, s) => {\n for (let a = 0; a < e; a++)\n $(a === t8 || n[a] === o[a], () => `Error in concat${e}D: Shape of tensors[${s}] (${n}) does not match the shape of the rest (${o}) along the non-concatenated axis ${s}.`);\n });\n}\nfunction RX(r, t8) {\n let e = r[0].slice();\n for (let o = 1; o < r.length; o++)\n e[t8] += r[o][t8];\n return e;\n}\nvar Pa;\n(function(r) {\n r[r.FIRST_DIM_SIZE = 0] = \"FIRST_DIM_SIZE\", r[r.VALUE_ROWIDS = 1] = \"VALUE_ROWIDS\", r[r.ROW_LENGTHS = 2] = \"ROW_LENGTHS\", r[r.ROW_SPLITS = 3] = \"ROW_SPLITS\", r[r.ROW_LIMITS = 4] = \"ROW_LIMITS\", r[r.ROW_STARTS = 5] = \"ROW_STARTS\";\n})(Pa || (Pa = {}));\nfunction DX(r, t8, e) {\n let o = new Array();\n if (e == null && t8 == null)\n return o;\n if (t8 == null)\n for (; o.length < r + e.length; )\n o.push(-1);\n else\n o = t8.slice();\n if (e == null)\n return o;\n if (r + e.length !== o.length)\n throw new Error(`rt input.shape and shape=${t8} are incompatible: rt input.rank = ${r + e.length}, but shape.rank = ${o.length}`);\n for (let n = 1; n < e.length; ++n) {\n let s = e[n], a = o[o.length - e.length + n], i = o[a];\n if (s >= 0)\n if (i >= 0) {\n if (i !== s)\n throw new Error(`rt input.shape and shape=${t8} are incompatible: rt input.shape[${n + r}] = ${s} but shape[${n + r}] = ${i}`);\n } else\n o[a] = s;\n }\n return o;\n}\nfunction AX(r) {\n let t8 = { FIRST_DIM_SIZE: Pa.FIRST_DIM_SIZE, VALUE_ROWIDS: Pa.VALUE_ROWIDS, ROW_LENGTHS: Pa.ROW_LENGTHS, ROW_SPLITS: Pa.ROW_SPLITS, ROW_LIMITS: Pa.ROW_LIMITS, ROW_STARTS: Pa.ROW_STARTS }, e = [];\n for (let o of r)\n if (o in t8)\n e.push(t8[o]);\n else\n break;\n return e;\n}\nfunction FX(r) {\n return r.length === 0 ? 0 : r[0] === Pa.FIRST_DIM_SIZE ? r.length - 1 : r.length;\n}\nfunction PX(r, t8) {\n if (r == null || t8 == null)\n return;\n let e = r.length, o = t8.length;\n if (e >= o)\n throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t8}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${o})`);\n for (let n = 0; n < Math.min(e, o - 1); ++n) {\n let s = r[n], a = t8[n + 1];\n if (s >= 0 && a >= 0 && s !== 1 && s !== a)\n throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t8} are incompatible: defaultValue.shape[${n - r.length}] = ${s} but ragged tensor input.flatValues.shape[${n - r.length}] = ${a}`);\n }\n}\nvar uf = 30;\nfunction OX(r) {\n return r <= uf ? r : Xp(r, Math.floor(Math.sqrt(r)));\n}\nfunction MX(r, t8, e) {\n let o = e * (typeof r == \"number\" ? r : r[0]), n = t8 * (typeof r == \"number\" ? r : r[1]);\n return [o, n];\n}\nfunction LX(r, t8, e, o = true) {\n let n = [];\n if (o)\n n = n.concat(t8.slice(0)), n.push(r[0] / e), n = n.concat(r.slice(1));\n else {\n n = n.concat(r[0]);\n let s = t8.length;\n for (let a = 0; a < s; ++a)\n n = n.concat([r[a + 1] / t8[a], t8[a]]);\n n = n.concat(r.slice(s + 1));\n }\n return n;\n}\nfunction BX(r, t8, e = true) {\n let o = [];\n if (e) {\n o.push(t8);\n for (let n = t8 + 1; n < r; ++n)\n n <= 2 * t8 ? (o.push(n), o.push(n - (t8 + 1))) : o.push(n);\n } else {\n let n = [], s = [];\n for (let a = 1; a < r; ++a)\n a >= t8 * 2 + 1 || a % 2 === 1 ? s.push(a) : n.push(a);\n o.push(...n), o.push(0), o.push(...s);\n }\n return o;\n}\nfunction zX(r, t8, e, o = true) {\n let n = [];\n o ? n.push(r[0] / e) : n.push(r[0] * e);\n for (let s = 1; s < r.length; ++s)\n s <= t8.length ? o ? n.push(t8[s - 1] * r[s]) : n.push(r[s] / t8[s - 1]) : n.push(r[s]);\n return n;\n}\nfunction VX(r, t8) {\n let e = [0];\n for (let o = 0; o < t8; ++o)\n e.push(r[o][0]);\n return e;\n}\nfunction WX(r, t8, e) {\n let o = r.slice(0, 1);\n for (let n = 0; n < e; ++n)\n o.push(r[n + 1] - t8[n][0] - t8[n][1]);\n return o;\n}\nvar UX = 1.7580993408473768;\nvar GX = 1.0507009873554805;\nvar HX = 0.3275911;\nvar KX = 0.254829592;\nvar qX = -0.284496736;\nvar jX = 1.421413741;\nvar XX = -1.453152027;\nvar YX = 1.061405429;\nfunction QX(r, t8) {\n if (r.length !== t8.length)\n throw new Error(`Cannot merge real and imag arrays of different lengths. real:${r.length}, imag: ${t8.length}.`);\n let e = new Float32Array(r.length * 2);\n for (let o = 0; o < e.length; o += 2)\n e[o] = r[o / 2], e[o + 1] = t8[o / 2];\n return e;\n}\nfunction ZX(r) {\n let t8 = new Float32Array(r.length / 2), e = new Float32Array(r.length / 2);\n for (let o = 0; o < r.length; o += 2)\n t8[o / 2] = r[o], e[o / 2] = r[o + 1];\n return { real: t8, imag: e };\n}\nfunction JX(r) {\n let t8 = Math.ceil(r.length / 4), e = new Float32Array(t8), o = new Float32Array(t8);\n for (let n = 0; n < r.length; n += 4)\n e[Math.floor(n / 4)] = r[n], o[Math.floor(n / 4)] = r[n + 1];\n return { real: e, imag: o };\n}\nfunction e5(r) {\n let t8 = Math.floor(r.length / 4), e = new Float32Array(t8), o = new Float32Array(t8);\n for (let n = 2; n < r.length; n += 4)\n e[Math.floor(n / 4)] = r[n], o[Math.floor(n / 4)] = r[n + 1];\n return { real: e, imag: o };\n}\nfunction t5(r, t8) {\n let e = r[t8 * 2], o = r[t8 * 2 + 1];\n return { real: e, imag: o };\n}\nfunction r5(r, t8, e, o) {\n r[o * 2] = t8, r[o * 2 + 1] = e;\n}\nfunction o5(r, t8) {\n let e = new Float32Array(r / 2), o = new Float32Array(r / 2);\n for (let n = 0; n < Math.ceil(r / 2); n++) {\n let s = (t8 ? 2 : -2) * Math.PI * (n / r);\n e[n] = Math.cos(s), o[n] = Math.sin(s);\n }\n return { real: e, imag: o };\n}\nfunction n5(r, t8, e) {\n let o = (e ? 2 : -2) * Math.PI * (r / t8), n = Math.cos(o), s = Math.sin(o);\n return { real: n, imag: s };\n}\nvar cS = \"->\";\nvar s5 = /->/g;\nvar fT = \",\";\nvar hT = \"...\";\nfunction a5(r, t8) {\n r = r.replace(/\\s/g, \"\");\n let e = (r.length - r.replace(s5, \"\").length) / cS.length;\n if (e < 1)\n throw new Error(\"Equations without an arrow are not supported.\");\n if (e > 1)\n throw new Error(`Equation must contain exactly one arrow (\"${cS}\").`);\n let [o, n] = r.split(cS);\n $(o.indexOf(hT) === -1, () => `The ellipsis notation (\"${hT}\") is not supported yet.`);\n let s = o.split(fT), a = s.length;\n if (t8 !== a)\n throw new Error(`Expected ${a} input tensors, received ${t8}`);\n if (a > 2)\n throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");\n let i = [];\n for (let m = 0; m < n.length; ++m) {\n let d = n[m];\n if (!s.some((f) => f.indexOf(d) !== -1))\n throw new Error(`Output subscripts contain the label ${d} not present in the input subscripts.`);\n i.indexOf(d) === -1 && i.push(d);\n }\n for (let m = 0; m < o.length; ++m) {\n let d = o[m];\n i.indexOf(d) === -1 && d !== fT && i.push(d);\n }\n let p = new Array(s.length);\n for (let m = 0; m < a; ++m) {\n if (new Set(s[m].split(\"\")).size !== s[m].length)\n throw new Error(`Found duplicate axes in input component ${s[m]}. Support for duplicate axes in input is not implemented yet.`);\n p[m] = [];\n for (let d = 0; d < s[m].length; ++d)\n p[m].push(i.indexOf(s[m][d]));\n }\n let u = i.length, c = n.length, l = [];\n for (let m = c; m < u; ++m)\n l.push(m);\n return { allDims: i, summedDims: l, idDims: p };\n}\nfunction i5(r, t8) {\n let e = new Array(r);\n e.fill(-1);\n for (let n = 0; n < t8.length; ++n)\n e[t8[n]] = n;\n let o = [];\n for (let n = 0; n < r; ++n)\n e[n] === -1 && o.push(n);\n return e = e.filter((n) => n !== -1), { permutationIndices: e, expandDims: o };\n}\nfunction u5(r, t8, e) {\n let o = new Array(r);\n for (let n = 0; n < e.length; ++n) {\n let s = e[n].shape;\n for (let a = 0; a < t8[n].length; ++a)\n o[t8[n][a]] === void 0 ? o[t8[n][a]] = s[a] : $(o[t8[n][a]] === s[a], () => `Expected dimension ${o[t8[n][a]]} at axis ${a} of input shaped ${JSON.stringify(s)}, but got dimension ${s[a]}`);\n }\n}\nfunction p5(r, t8) {\n let e = r, o = [], n = 0;\n r.length === 0 && e.push(-1), n = r.length + 1;\n for (let a = 0; a < n; ++a)\n o.push([]);\n let s = [];\n for (let a = 0; a < e.length; ++a) {\n let i = e[a], p = l5(t8, i);\n for (let u of p)\n s.indexOf(u) === -1 && (o[a].push(u), s.push(u));\n }\n return { path: e, steps: o };\n}\nfunction c5(r) {\n return r.every((t8, e) => t8 === e);\n}\nfunction l5(r, t8) {\n let e = [];\n for (let o = 0; o < r.length; ++o)\n (r[o].length === 0 || r[o].indexOf(t8) !== -1 || t8 === -1) && e.push(o);\n return e;\n}\nfunction m5(r, t8, e = 0) {\n let o = [];\n if (typeof t8 == \"number\")\n $(r.shape[e] % t8 === 0, () => \"Number of splits must evenly divide the axis.\"), o = new Array(t8).fill(r.shape[e] / t8);\n else {\n let n = t8.reduce((a, i) => (i === -1 && (a += 1), a), 0);\n $(n <= 1, () => \"There should be only one negative value in split array.\");\n let s = t8.indexOf(-1);\n if (s !== -1) {\n let a = t8.reduce((i, p) => p > 0 ? i + p : i);\n t8[s] = r.shape[e] - a;\n }\n $(r.shape[e] === t8.reduce((a, i) => a + i), () => \"The sum of sizes must match the size of the axis dimension.\"), o = t8;\n }\n return o;\n}\nfunction d5(r) {\n return `Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`;\n}\nfunction f5(r, t8) {\n return `indices(${r}, 0) is invalid: ${t8} < 0`;\n}\nfunction h5(r, t8, e) {\n return `indices(${r}, 0) is invalid: ${t8} >= ${e}`;\n}\nfunction g5(r, t8) {\n return `only one output dimension may be -1, not both ${r} and ${t8}`;\n}\nfunction x5(r, t8) {\n return `size ${r} must be non-negative, not ${t8}`;\n}\nfunction y5() {\n return \"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\";\n}\nfunction b5(r, t8) {\n let e = He(r), o = He(t8);\n return `Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${o}. inputShape=${r} outputShape= ${t8}`;\n}\nfunction C5(r, t8) {\n let e = He(r), o = He(t8);\n return `Input to reshape is a tensor with ${e} dense values, but the requested shape has ${o}. inputShape=${r} outputShape=${t8}`;\n}\nfunction w5() {\n return \"segment ids must be >= 0\";\n}\nfunction S5() {\n return \"segment ids are not increasing\";\n}\nfunction I5(r, t8) {\n return `Segment id ${r} out of range [0, ${t8}), possibly because segmentIds input is not sorted.`;\n}\nfunction v5(r, t8, e) {\n return `Bad: indices[${r}] == ${t8} out of range [0, ${e})`;\n}\nvar lS = {};\nqe(lS, { collectGatherOpShapeInfo: () => T5, computeOutShape: () => N5, segOpComputeOptimalWindowSize: () => k5 });\nfunction k5(r, t8) {\n let e = false, o;\n for (r <= uf ? (o = r, e = true) : o = Xp(r, Math.floor(Math.sqrt(r))); !e; )\n o > t8 || o === r ? e = true : o = Xp(r, o + 1);\n return o;\n}\nfunction N5(r, t8, e) {\n let o = [], n = r.length;\n for (let s = 0; s < n; s++)\n s !== t8 ? o.push(r[s]) : o.push(e);\n return o;\n}\nfunction T5(r, t8, e, o) {\n let n = t8.shape.length, s = r.shape.length;\n if (o !== 0 && (o < -n || o > n))\n throw new Error(`Expect batchDims in the range of [-${n}, ${n}], but got ${o}`);\n if (o < 0 && (o += n), o > s)\n throw new Error(`batchDims (${o}) must be less than rank(x) (\n ${s}).`);\n if (e < o)\n throw new Error(`batchDims (${o}) must be less than or equal to axis (${e}).`);\n for (let l = 0; l < o; ++l)\n if (r.shape[l] !== t8.shape[l])\n throw new Error(`x.shape[${l}]: ${r.shape[l]} should be equal to indices.shape[${l}]: ${t8.shape[l]}.`);\n let a = r.shape[e], i = [], p = 1, u = 1, c = 1;\n for (let l = 0; l < o; ++l)\n i.push(r.shape[l]), p *= r.shape[l];\n for (let l = o; l < e; l++)\n i.push(r.shape[l]), u *= r.shape[l];\n for (let l = o; l < n; l++)\n i.push(t8.shape[l]);\n for (let l = e + 1; l < s; l++)\n i.push(r.shape[l]), c *= r.shape[l];\n return { batchSize: p, sliceSize: c, outerSize: u, dimSize: a, outputShape: i };\n}\nfunction _5(r) {\n try {\n return r.map((t8) => sc(t8));\n } catch (t8) {\n throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t8}`);\n }\n}\nfunction $5(r) {\n return r.map((t8) => tu(t8));\n}\nvar Wt = {};\nqe(Wt, { nonMaxSuppressionV3Impl: () => ef, nonMaxSuppressionV4Impl: () => tf, nonMaxSuppressionV5Impl: () => rf, whereImpl: () => Yd });\nUN();\nvar E5 = A();\nE5.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\", () => false, (r) => {\n r && console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\");\n});\nvar ho;\n(function(r) {\n r[r.DT_INVALID = 0] = \"DT_INVALID\", r[r.DT_FLOAT = 1] = \"DT_FLOAT\", r[r.DT_DOUBLE = 2] = \"DT_DOUBLE\", r[r.DT_INT32 = 3] = \"DT_INT32\", r[r.DT_UINT8 = 4] = \"DT_UINT8\", r[r.DT_INT16 = 5] = \"DT_INT16\", r[r.DT_INT8 = 6] = \"DT_INT8\", r[r.DT_STRING = 7] = \"DT_STRING\", r[r.DT_COMPLEX64 = 8] = \"DT_COMPLEX64\", r[r.DT_INT64 = 9] = \"DT_INT64\", r[r.DT_BOOL = 10] = \"DT_BOOL\", r[r.DT_QINT8 = 11] = \"DT_QINT8\", r[r.DT_QUINT8 = 12] = \"DT_QUINT8\", r[r.DT_QINT32 = 13] = \"DT_QINT32\", r[r.DT_BFLOAT16 = 14] = \"DT_BFLOAT16\", r[r.DT_QINT16 = 15] = \"DT_QINT16\", r[r.DT_QUINT16 = 16] = \"DT_QUINT16\", r[r.DT_UINT16 = 17] = \"DT_UINT16\", r[r.DT_COMPLEX128 = 18] = \"DT_COMPLEX128\", r[r.DT_HALF = 19] = \"DT_HALF\", r[r.DT_RESOURCE = 20] = \"DT_RESOURCE\", r[r.DT_VARIANT = 21] = \"DT_VARIANT\", r[r.DT_UINT32 = 22] = \"DT_UINT32\", r[r.DT_UINT64 = 23] = \"DT_UINT64\", r[r.DT_FLOAT_REF = 101] = \"DT_FLOAT_REF\", r[r.DT_DOUBLE_REF = 102] = \"DT_DOUBLE_REF\", r[r.DT_INT32_REF = 103] = \"DT_INT32_REF\", r[r.DT_UINT8_REF = 104] = \"DT_UINT8_REF\", r[r.DT_INT16_REF = 105] = \"DT_INT16_REF\", r[r.DT_INT8_REF = 106] = \"DT_INT8_REF\", r[r.DT_STRING_REF = 107] = \"DT_STRING_REF\", r[r.DT_COMPLEX64_REF = 108] = \"DT_COMPLEX64_REF\", r[r.DT_INT64_REF = 109] = \"DT_INT64_REF\", r[r.DT_BOOL_REF = 110] = \"DT_BOOL_REF\", r[r.DT_QINT8_REF = 111] = \"DT_QINT8_REF\", r[r.DT_QUINT8_REF = 112] = \"DT_QUINT8_REF\", r[r.DT_QINT32_REF = 113] = \"DT_QINT32_REF\", r[r.DT_BFLOAT16_REF = 114] = \"DT_BFLOAT16_REF\", r[r.DT_QINT16_REF = 115] = \"DT_QINT16_REF\", r[r.DT_QUINT16_REF = 116] = \"DT_QUINT16_REF\", r[r.DT_UINT16_REF = 117] = \"DT_UINT16_REF\", r[r.DT_COMPLEX128_REF = 118] = \"DT_COMPLEX128_REF\", r[r.DT_HALF_REF = 119] = \"DT_HALF_REF\", r[r.DT_RESOURCE_REF = 120] = \"DT_RESOURCE_REF\", r[r.DT_VARIANT_REF = 121] = \"DT_VARIANT_REF\", r[r.DT_UINT32_REF = 122] = \"DT_UINT32_REF\", r[r.DT_UINT64_REF = 123] = \"DT_UINT64_REF\";\n})(ho || (ho = {}));\nvar gT;\n(function(r) {\n let t8;\n (function(e) {\n e[e.LEGACY = 0] = \"LEGACY\", e[e.V1 = 1] = \"V1\", e[e.V2 = 2] = \"V2\";\n })(t8 = r.CheckpointFormatVersion || (r.CheckpointFormatVersion = {}));\n})(gT || (gT = {}));\nvar dS = {};\nfunction D5(r, t8) {\n let e = { tfOpName: r, category: \"custom\", inputs: [], attrs: [], customExecutor: t8 };\n dS[r] = e;\n}\nfunction pf(r) {\n return dS[r];\n}\nfunction A5(r) {\n delete dS[r];\n}\nfunction I(r, t8, e, o, n) {\n let s = t8.inputParams[r];\n if (s && s.inputIndexStart !== void 0) {\n let i = s.inputIndexStart, p = s.inputIndexEnd === 0 ? void 0 : s.inputIndexEnd === void 0 ? i + 1 : s.inputIndexEnd, u = i < 0 ? t8.inputNames.length + i : i;\n if (s.type === \"tensor\")\n return zt(t8.inputNames[u], e, o, n);\n if (s.type === \"tensors\") {\n let m = t8.inputs.slice(i, p);\n return t8.inputNames.slice(i, p).filter((f, h) => {\n var g;\n return ((g = m[h]) === null || g === void 0 ? void 0 : g.op) !== \"NoOp\";\n }).map((f) => zt(f, e, o, n));\n }\n let c = zt(t8.inputNames[u], e, o, n), l = c.dataSync();\n return s.type === \"number\" ? l[0] : y.toNestedArray(c.shape, l);\n }\n let a = t8.attrParams[r];\n return a && a.value;\n}\nfunction zt(r, t8, e, o) {\n let [n, s] = Tr(r, e);\n if (o != null) {\n let i = o.getHashTableHandleByName(n);\n if (i != null)\n return i;\n }\n let a = e.currentContextIds.find((i) => !!t8[cf(n, i)]);\n return a !== void 0 ? t8[cf(n, a)][s] : void 0;\n}\nfunction fS(r, t8, e) {\n return t8[cf(r, e.currentContextId)];\n}\nfunction Ls(r, t8) {\n let [e, o, n] = Tr(r, t8);\n return [cf(e, t8 && t8.currentContextId), o, n];\n}\nfunction cf(r, t8) {\n return t8 ? `${r}-${t8}` : r;\n}\nfunction Tr(r, t8) {\n if (r === \"\")\n return [\"\", 0, void 0];\n let e = t8 != null && t8.parseNodeNameCache != null;\n if (e) {\n let s = t8.parseNodeNameCache.get(r);\n if (s != null)\n return s;\n }\n let o = r.split(\":\"), n;\n if (o.length === 1)\n n = [r, 0, void 0];\n else {\n let s = o[0], a = o.length === 3 ? o[1] : void 0, i = Number(o[o.length - 1]);\n n = [s, i, a];\n }\n return e && t8.parseNodeNameCache.set(r, n), n;\n}\nfunction Ol(r, t8, e) {\n let o = I(\"pad\", r, t8, e);\n if (o === \"explicit\") {\n o = I(\"explicitPaddings\", r, t8, e);\n let n = [[0, 0], [0, 0], [0, 0], [0, 0]];\n for (let s = 0; s < 4; s++)\n n[s][0] = o[s * 2], n[s][1] = o[s * 2 + 1];\n return n;\n }\n return o;\n}\nfunction Bs(r) {\n return r.kept ? r : Ur(r);\n}\nvar hS = {};\nqe(hS, { json: () => F5 });\nvar F5 = [{ tfOpName: \"Add\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"AddV2\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"AddN\", category: \"arithmetic\", inputs: [{ start: 0, end: 0, name: \"tensors\", type: \"tensors\" }] }, { tfOpName: \"BiasAdd\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }] }, { tfOpName: \"Sub\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"RealDiv\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Div\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"DivNoNan\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"FloorDiv\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Mul\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Maximum\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Minimum\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Pow\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"SquaredDifference\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Mod\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"FloorMod\", category: \"arithmetic\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }];\nvar gS = {};\nqe(gS, { json: () => P5 });\nvar P5 = [{ tfOpName: \"Abs\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Acos\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Asin\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Atan\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Atan2\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"y\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Ceil\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"ClipByValue\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"clipValueMin\", type: \"number\" }, { start: 2, name: \"clipValueMax\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Complex\", category: \"basic_math\", inputs: [{ start: 0, name: \"real\", type: \"tensor\" }, { start: 1, name: \"imag\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"ComplexAbs\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Cos\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Cosh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Elu\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Exp\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Floor\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Log\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Imag\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"outputType\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Neg\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Real\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"outputType\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Prelu\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"alpha\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Relu\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Relu6\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Selu\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Sigmoid\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Sin\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Sinh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Sqrt\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Rsqrt\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Square\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Tan\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Tanh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Sign\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Round\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Expm1\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Log1p\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Reciprocal\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Softplus\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Asinh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Acosh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Atanh\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Erf\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LeakyRelu\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"alpha\", name: \"alpha\", type: \"number\", defaultValue: 0.2 }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"IsNan\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"IsFinite\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"IsInf\", category: \"basic_math\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }];\nvar xS = {};\nqe(xS, { json: () => O5 });\nvar O5 = [{ tfOpName: \"EmptyTensorList\", category: \"control\", inputs: [{ start: 0, name: \"elementShape\", type: \"shape\" }, { start: 1, name: \"maxNumElements\", type: \"number\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"LoopCond\", category: \"control\", inputs: [{ start: 0, name: \"pred\", type: \"tensor\" }] }, { tfOpName: \"Switch\", category: \"control\", inputs: [{ start: 0, name: \"data\", type: \"tensor\" }, { start: 1, name: \"pred\", type: \"tensor\" }] }, { tfOpName: \"Merge\", category: \"control\", inputs: [{ start: 0, end: 0, name: \"tensors\", type: \"tensors\" }] }, { tfOpName: \"Enter\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"frame_name\", name: \"frameName\", type: \"string\" }, { tfName: \"is_constant\", name: \"isConstant\", type: \"bool\" }] }, { tfOpName: \"Exit\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"NextIteration\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"TensorArrayV3\", category: \"control\", inputs: [{ start: 0, name: \"size\", type: \"number\" }], attrs: [{ tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"element_shape\", name: \"elementShape\", type: \"shape\" }, { tfName: \"dynamic_size\", name: \"dynamicSize\", type: \"bool\" }, { tfName: \"clear_after_read\", name: \"clearAfterRead\", type: \"bool\" }, { tfName: \"identical_element_shapes\", name: \"identicalElementShapes\", type: \"bool\" }, { tfName: \"tensor_array_name\", name: \"name\", type: \"string\" }] }, { tfOpName: \"TensorArrayWriteV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"index\", type: \"number\" }, { start: 2, name: \"tensor\", type: \"tensor\" }, { start: 3, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"TensorArrayReadV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"index\", type: \"number\" }, { start: 2, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"dtype\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"TensorArrayGatherV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"number[]\" }, { start: 2, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"element_shape\", name: \"elementShape\", type: \"shape\" }] }, { tfOpName: \"TensorArrayScatterV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"number[]\" }, { start: 2, name: \"tensor\", type: \"tensor\" }, { start: 3, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"TensorArrayConcatV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"element_shape_except0\", name: \"elementShapeExcept0\", type: \"shape\", notSupported: true }] }, { tfOpName: \"TensorArraySplitV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"tensor\", type: \"tensor\" }, { start: 2, name: \"lengths\", type: \"number[]\" }, { start: 3, name: \"flowIn\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"TensorArraySizeV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }, { start: 1, name: \"flowIn\", type: \"number\" }] }, { tfOpName: \"TensorArrayCloseV3\", category: \"control\", inputs: [{ start: 0, name: \"tensorArrayId\", type: \"tensor\" }] }, { tfOpName: \"StatelessIf\", category: \"control\", inputs: [{ start: 0, name: \"cond\", type: \"tensor\" }, { start: 1, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"then_branch\", name: \"thenBranch\", type: \"func\" }, { tfName: \"else_branch\", name: \"elseBranch\", type: \"func\" }] }, { tfOpName: \"If\", category: \"control\", inputs: [{ start: 0, name: \"cond\", type: \"tensor\" }, { start: 1, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"then_branch\", name: \"thenBranch\", type: \"func\" }, { tfName: \"else_branch\", name: \"elseBranch\", type: \"func\" }] }, { tfOpName: \"StatelessWhile\", category: \"control\", inputs: [{ start: 0, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"cond\", name: \"cond\", type: \"func\" }, { tfName: \"body\", name: \"body\", type: \"func\" }] }, { tfOpName: \"While\", category: \"control\", inputs: [{ start: 0, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"cond\", name: \"cond\", type: \"func\" }, { tfName: \"body\", name: \"body\", type: \"func\" }] }, { tfOpName: \"TensorListScatter\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"number[]\" }, { start: 2, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListScatterV2\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"number[]\" }, { start: 2, name: \"elementShape\", type: \"shape\" }, { start: 3, name: \"numElements\", type: \"number\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListGather\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"number[]\" }, { start: 2, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListGetItem\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"index\", type: \"number\" }, { start: 2, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListSetItem\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"index\", type: \"number\" }, { start: 2, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListReserve\", category: \"control\", inputs: [{ start: 0, name: \"elementShape\", type: \"shape\" }, { start: 1, name: \"numElements\", type: \"number\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListFromTensor\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }, { start: 1, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListStack\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }, { tfName: \"num_elements\", name: \"numElements\", type: \"dtype\" }] }, { tfOpName: \"TensorListSplit\", category: \"control\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }, { start: 1, name: \"elementShape\", type: \"shape\" }, { start: 2, name: \"lengths\", type: \"number[]\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListConcat\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }], attrs: [{ tfName: \"element_shape\", name: \"elementShape\", type: \"shape\" }, { tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListConcatV2\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }], attrs: [{ tfName: \"element_shape\", name: \"elementShape\", type: \"shape\" }, { tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListPopBack\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"elementShape\", type: \"shape\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListPushBack\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"element_dtype\", name: \"elementDType\", type: \"dtype\" }] }, { tfOpName: \"TensorListLength\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }] }, { tfOpName: \"TensorListResize\", category: \"control\", inputs: [{ start: 0, name: \"tensorListId\", type: \"tensor\" }, { start: 1, name: \"size\", type: \"number\" }] }];\nvar yS = {};\nqe(yS, { json: () => M5 });\nvar M5 = [{ tfOpName: \"AvgPool\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }, { tfName: \"ksize\", name: \"kernelSize\", type: \"number[]\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"MaxPool\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }, { tfName: \"ksize\", name: \"kernelSize\", type: \"number[]\" }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [], notSupported: true }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"MaxPoolWithArgmax\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"ksize\", name: \"kernelSize\", type: \"number[]\" }, { tfName: \"include_batch_in_index\", name: \"includeBatchInIndex\", type: \"bool\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"AvgPool3D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }, { tfName: \"ksize\", name: \"kernelSize\", type: \"number[]\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"MaxPool3D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }, { tfName: \"ksize\", name: \"kernelSize\", type: \"number[]\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Conv1D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"stride\", name: \"stride\", type: \"number\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NWC\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"dilation\", name: \"dilation\", type: \"number\", defaultValue: 1 }] }, { tfOpName: \"Conv2D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"useCudnnOnGpu\", name: \"useCudnnOnGpu\", type: \"bool\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\" }] }, { tfOpName: \"_FusedConv2D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }, { start: 2, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"num_args\", name: \"numArgs\", type: \"number\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }, { tfName: \"use_cudnn_on_gpu\", name: \"useCudnnOnGpu\", type: \"bool\", defaultValue: true }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\", defaultValue: [1, 1, 1, 1] }, { tfName: \"fused_ops\", name: \"fusedOps\", type: \"string[]\", defaultValue: [] }, { tfName: \"epsilon\", name: \"epsilon\", type: \"number\", defaultValue: 1e-4 }, { tfName: \"leakyrelu_alpha\", name: \"leakyreluAlpha\", type: \"number\", defaultValue: 0.2 }] }, { tfOpName: \"Conv2DBackpropInput\", category: \"convolution\", inputs: [{ start: 2, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }, { start: 0, name: \"outputShape\", type: \"number[]\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\", notSupported: true }] }, { tfOpName: \"DepthwiseConv2d\", category: \"convolution\", inputs: [{ start: 0, name: \"input\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\" }] }, { tfOpName: \"DepthwiseConv2dNative\", category: \"convolution\", inputs: [{ start: 0, name: \"input\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\" }] }, { tfOpName: \"FusedDepthwiseConv2dNative\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }, { start: 2, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"num_args\", name: \"numArgs\", type: \"number\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\", defaultValue: [1, 1, 1, 1] }, { tfName: \"fused_ops\", name: \"fusedOps\", type: \"string[]\", defaultValue: [] }, { tfName: \"explicit_paddings\", name: \"explicitPaddings\", type: \"number[]\", defaultValue: [] }] }, { tfOpName: \"Conv3D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", defaultValue: \"NHWC\" }, { tfName: \"dilations\", name: \"dilations\", type: \"number[]\" }] }, { tfOpName: \"Dilation2D\", category: \"convolution\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"filter\", type: \"tensor\" }], attrs: [{ tfName: \"strides\", name: \"strides\", type: \"number[]\" }, { tfName: \"rates\", name: \"dilations\", type: \"number[]\" }, { tfName: \"padding\", name: \"pad\", type: \"string\" }] }];\nvar bS = {};\nqe(bS, { json: () => L5 });\nvar L5 = [{ tfOpName: \"Fill\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }, { start: 1, name: \"value\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"LinSpace\", category: \"creation\", inputs: [{ start: 0, name: \"start\", type: \"number\" }, { start: 1, name: \"stop\", type: \"number\" }, { start: 2, name: \"num\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"OneHot\", category: \"creation\", inputs: [{ start: 0, name: \"indices\", type: \"tensor\" }, { start: 1, name: \"depth\", type: \"number\" }, { start: 2, name: \"onValue\", type: \"number\", defaultValue: 1 }, { start: 3, name: \"offValue\", type: \"number\", defaultValue: 0 }], attrs: [{ tfName: \"axis\", name: \"axis\", type: \"number\", notSupported: true }, { tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"Ones\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"OnesLike\", category: \"creation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"RandomStandardNormal\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"seed\", name: \"seed\", type: \"number\", defaultValue: 0 }, { tfName: \"seed2\", name: \"seed2\", type: \"number\", defaultValue: 0, notSupported: true }, { tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"T\", name: \"T\", type: \"number\", notSupported: true }] }, { tfOpName: \"RandomUniform\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"minval\", name: \"minval\", type: \"number\", defaultValue: 0 }, { tfName: \"maxval\", name: \"maxval\", type: \"number\", defaultValue: 1 }, { tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"seed\", name: \"seed\", type: \"number\", defaultValue: 0 }, { tfName: \"seed2\", name: \"seed2\", type: \"number\", defaultValue: 0, notSupported: true }, { tfName: \"T\", name: \"T\", type: \"number\", notSupported: true }] }, { tfOpName: \"RandomUniformInt\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"minval\", name: \"minval\", type: \"number\" }, { tfName: \"maxval\", name: \"maxval\", type: \"number\" }, { tfName: \"seed\", name: \"seed\", type: \"number\", defaultValue: 0 }, { tfName: \"seed2\", name: \"seed2\", type: \"number\", defaultValue: 0, notSupported: true }] }, { tfOpName: \"Range\", category: \"creation\", inputs: [{ start: 0, name: \"start\", type: \"number\" }, { start: 1, name: \"stop\", type: \"number\" }, { start: 2, name: \"step\", type: \"number\", defaultValue: 0 }], attrs: [{ tfName: \"Tidx\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"TruncatedNormal\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"means\", name: \"mean\", type: \"number\", defaultValue: 0 }, { tfName: \"stddev\", name: \"stdDev\", type: \"number\", defaultValue: 1 }, { tfName: \"seed\", name: \"seed\", type: \"number\" }, { tfName: \"seed2\", name: \"seed2\", type: \"number\", defaultValue: 0, notSupported: true }, { tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }, { tfName: \"T\", name: \"T\", type: \"number\", notSupported: true }] }, { tfOpName: \"Zeros\", category: \"creation\", inputs: [{ start: 0, name: \"shape\", type: \"number[]\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"ZerosLike\", category: \"creation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"Multinomial\", category: \"creation\", inputs: [{ start: 0, name: \"logits\", type: \"tensor\" }, { start: 1, name: \"numSamples\", type: \"number\" }], attrs: [{ tfName: \"seed\", name: \"seed\", type: \"number\" }, { tfName: \"seed2\", name: \"seed2\", type: \"number\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\" }, { tfName: \"output_dtype\", name: \"output_dtype\", type: \"dtype\" }] }];\nvar CS = {};\nqe(CS, { json: () => B5 });\nvar B5 = [{ tfOpName: \"NonMaxSuppressionV2\", category: \"dynamic\", inputs: [{ start: 0, name: \"boxes\", type: \"tensor\" }, { start: 1, name: \"scores\", type: \"tensor\" }, { start: 2, name: \"maxOutputSize\", type: \"number\" }, { start: 3, name: \"iouThreshold\", type: \"number\" }] }, { tfOpName: \"NonMaxSuppressionV3\", category: \"dynamic\", inputs: [{ start: 0, name: \"boxes\", type: \"tensor\" }, { start: 1, name: \"scores\", type: \"tensor\" }, { start: 2, name: \"maxOutputSize\", type: \"number\" }, { start: 3, name: \"iouThreshold\", type: \"number\" }, { start: 4, name: \"scoreThreshold\", type: \"number\" }] }, { tfOpName: \"NonMaxSuppressionV4\", category: \"dynamic\", inputs: [{ start: 0, name: \"boxes\", type: \"tensor\" }, { start: 1, name: \"scores\", type: \"tensor\" }, { start: 2, name: \"maxOutputSize\", type: \"number\" }, { start: 3, name: \"iouThreshold\", type: \"number\" }, { start: 4, name: \"scoreThreshold\", type: \"number\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }, { tfName: \"T_threshold\", name: \"threshold\", type: \"dtype\", notSupported: true }, { tfName: \"pad_to_max_output_size\", name: \"padToMaxOutputSize\", type: \"bool\" }] }, { tfOpName: \"NonMaxSuppressionV5\", category: \"dynamic\", inputs: [{ start: 0, name: \"boxes\", type: \"tensor\" }, { start: 1, name: \"scores\", type: \"tensor\" }, { start: 2, name: \"maxOutputSize\", type: \"number\" }, { start: 3, name: \"iouThreshold\", type: \"number\" }, { start: 4, name: \"scoreThreshold\", type: \"number\" }, { start: 5, name: \"softNmsSigma\", type: \"number\" }] }, { tfOpName: \"Where\", category: \"dynamic\", inputs: [{ start: 0, name: \"condition\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"ListDiff\", category: \"dynamic\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"y\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }];\nvar wS = {};\nqe(wS, { json: () => z5 });\nvar z5 = [{ tfOpName: \"LowerBound\", category: \"evaluation\", inputs: [{ start: 0, name: \"sortedSequence\", type: \"tensor\" }, { start: 1, name: \"values\", type: \"tensor\" }] }, { tfOpName: \"TopKV2\", category: \"evaluation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"k\", type: \"number\" }], attrs: [{ tfName: \"sorted\", name: \"sorted\", type: \"bool\" }] }, { tfOpName: \"UpperBound\", category: \"evaluation\", inputs: [{ start: 0, name: \"sortedSequence\", type: \"tensor\" }, { start: 1, name: \"values\", type: \"tensor\" }] }, { tfOpName: \"Unique\", category: \"evaluation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"UniqueV2\", category: \"evaluation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }] }];\nvar SS = {};\nqe(SS, { json: () => V5 });\nvar V5 = [{ tfOpName: \"PlaceholderWithDefault\", category: \"graph\", inputs: [{ start: 0, name: \"default\", type: \"tensor\" }], attrs: [{ tfName: \"shape\", name: \"shape\", type: \"shape\" }, { tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"Placeholder\", category: \"graph\", attrs: [{ tfName: \"shape\", name: \"shape\", type: \"shape\" }, { tfName: \"dtype\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"Const\", category: \"graph\" }, { tfOpName: \"Identity\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"IdentityN\", category: \"graph\", inputs: [{ start: 0, end: 0, name: \"x\", type: \"tensors\" }] }, { tfOpName: \"Snapshot\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"Rank\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"Size\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"Shape\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"ShapeN\", category: \"graph\", inputs: [{ start: 0, end: 0, name: \"x\", type: \"tensors\" }] }, { tfOpName: \"Print\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"data\", type: \"tensors\" }], attrs: [{ tfName: \"message\", name: \"message\", type: \"string\" }, { tfName: \"first_n\", name: \"firstN\", type: \"number\", notSupported: true }, { tfName: \"summarize\", name: \"summarize\", type: \"number\", defaultValue: 3 }] }, { tfOpName: \"NoOp\", category: \"graph\", inputs: [] }, { tfOpName: \"StopGradient\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"FakeQuantWithMinMaxVars\", category: \"graph\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"min\", name: \"min\", type: \"number\" }, { tfName: \"max\", name: \"max\", type: \"number\" }] }];\nvar IS = {};\nqe(IS, { json: () => W5 });\nvar W5 = [{ tfOpName: \"HashTable\", category: \"hash_table\", inputs: [], attrs: [{ tfName: \"shared_name\", name: \"sharedName\", type: \"string\" }, { tfName: \"use_node_name_sharing\", name: \"useNodeNameSharing\", type: \"bool\" }, { tfName: \"key_dtype\", name: \"keyDType\", type: \"dtype\" }, { tfName: \"value_dtype\", name: \"valueDType\", type: \"dtype\" }] }, { tfOpName: \"HashTableV2\", category: \"hash_table\", inputs: [], attrs: [{ tfName: \"shared_name\", name: \"sharedName\", type: \"string\" }, { tfName: \"use_node_name_sharing\", name: \"useNodeNameSharing\", type: \"bool\" }, { tfName: \"key_dtype\", name: \"keyDType\", type: \"dtype\" }, { tfName: \"value_dtype\", name: \"valueDType\", type: \"dtype\" }] }, { tfOpName: \"LookupTableImport\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"values\", type: \"tensor\" }], attrs: [{ tfName: \"Tin\", name: \"tIn\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"tOut\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LookupTableImportV2\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"values\", type: \"tensor\" }], attrs: [{ tfName: \"Tin\", name: \"tIn\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"tOut\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LookupTableFind\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"defaultValue\", type: \"tensor\" }], attrs: [{ tfName: \"Tin\", name: \"tIn\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"tOut\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LookupTableFindV2\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"defaultValue\", type: \"tensor\" }], attrs: [{ tfName: \"Tin\", name: \"tIn\", type: \"dtype\", notSupported: true }, { tfName: \"Tout\", name: \"tOut\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LookupTableSize\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }] }, { tfOpName: \"LookupTableSizeV2\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }] }, { tfOpName: \"InitializeTable\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"values\", type: \"tensor\" }] }, { tfOpName: \"InitializeTableV2\", category: \"hash_table\", inputs: [{ start: 0, name: \"tableHandle\", type: \"tensor\" }, { start: 1, name: \"keys\", type: \"tensor\" }, { start: 2, name: \"values\", type: \"tensor\" }] }];\nvar vS = {};\nqe(vS, { json: () => U5 });\nvar U5 = [{ tfOpName: \"ResizeBilinear\", category: \"image\", inputs: [{ start: 0, name: \"images\", type: \"tensor\" }, { start: 1, name: \"size\", type: \"number[]\" }], attrs: [{ tfName: \"align_corners\", name: \"alignCorners\", type: \"bool\" }, { tfName: \"half_pixel_centers\", name: \"halfPixelCenters\", type: \"bool\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"ResizeNearestNeighbor\", category: \"image\", inputs: [{ start: 0, name: \"images\", type: \"tensor\" }, { start: 1, name: \"size\", type: \"number[]\" }], attrs: [{ tfName: \"align_corners\", name: \"alignCorners\", type: \"bool\" }, { tfName: \"half_pixel_centers\", name: \"halfPixelCenters\", type: \"bool\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"CropAndResize\", category: \"image\", inputs: [{ start: 0, name: \"image\", type: \"tensor\" }, { start: 1, name: \"boxes\", type: \"tensor\" }, { start: 2, name: \"boxInd\", type: \"tensor\" }, { start: 3, name: \"cropSize\", type: \"number[]\" }], attrs: [{ tfName: \"method\", name: \"method\", type: \"string\" }, { tfName: \"extrapolation_value\", name: \"extrapolationValue\", type: \"number\" }] }, { tfOpName: \"ImageProjectiveTransformV3\", category: \"image\", inputs: [{ start: 0, name: \"images\", type: \"tensor\" }, { start: 1, name: \"transforms\", type: \"tensor\" }, { start: 2, name: \"outputShape\", type: \"number[]\" }, { start: 3, name: \"fillValue\", type: \"number\" }], attrs: [{ tfName: \"interpolation\", name: \"interpolation\", type: \"string\" }, { tfName: \"fill_mode\", name: \"fillMode\", type: \"string\" }] }];\nvar kS = {};\nqe(kS, { json: () => G5 });\nvar G5 = [{ tfOpName: \"Equal\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"NotEqual\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Greater\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"GreaterEqual\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Less\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LessEqual\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LogicalAnd\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LogicalNot\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"LogicalOr\", category: \"logical\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Select\", category: \"logical\", inputs: [{ start: 0, name: \"condition\", type: \"tensor\" }, { start: 1, name: \"a\", type: \"tensor\" }, { start: 2, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"SelectV2\", category: \"logical\", inputs: [{ start: 0, name: \"condition\", type: \"tensor\" }, { start: 1, name: \"a\", type: \"tensor\" }, { start: 2, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"BitwiseAnd\", category: \"logical\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"y\", type: \"tensor\" }] }];\nvar NS = {};\nqe(NS, { json: () => H5 });\nvar H5 = [{ tfOpName: \"_FusedMatMul\", category: \"matrices\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }, { start: 2, end: 0, name: \"args\", type: \"tensors\" }], attrs: [{ tfName: \"num_args\", name: \"numArgs\", type: \"number\" }, { tfName: \"fused_ops\", name: \"fusedOps\", type: \"string[]\", defaultValue: [] }, { tfName: \"epsilon\", name: \"epsilon\", type: \"number\", defaultValue: 1e-4 }, { tfName: \"transpose_a\", name: \"transposeA\", type: \"bool\", defaultValue: false }, { tfName: \"transpose_b\", name: \"transposeB\", type: \"bool\", defaultValue: false }, { tfName: \"leakyrelu_alpha\", name: \"leakyreluAlpha\", type: \"number\", defaultValue: 0.2 }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"MatMul\", category: \"matrices\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"transpose_a\", name: \"transposeA\", type: \"bool\", defaultValue: false }, { tfName: \"transpose_b\", name: \"transposeB\", type: \"bool\", defaultValue: false }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"BatchMatMul\", category: \"matrices\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"adj_x\", name: \"transposeA\", type: \"bool\", defaultValue: false }, { tfName: \"adj_y\", name: \"transposeB\", type: \"bool\", defaultValue: false }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"BatchMatMulV2\", category: \"matrices\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"b\", type: \"tensor\" }], attrs: [{ tfName: \"adj_x\", name: \"transposeA\", type: \"bool\", defaultValue: false }, { tfName: \"adj_y\", name: \"transposeB\", type: \"bool\", defaultValue: false }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Transpose\", category: \"matrices\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"perm\", type: \"number[]\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Einsum\", category: \"matrices\", inputs: [{ start: 0, end: 0, name: \"tensors\", type: \"tensors\" }], attrs: [{ tfName: \"equation\", name: \"equation\", type: \"string\" }, { tfName: \"N\", name: \"n\", type: \"number\", defaultValue: 2 }, { tfName: \"T\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"MatrixBandPart\", category: \"matrices\", inputs: [{ start: 0, name: \"a\", type: \"tensor\" }, { start: 1, name: \"numLower\", type: \"tensor\" }, { start: 1, name: \"numUpper\", type: \"tensor\" }] }];\nvar TS = {};\nqe(TS, { json: () => K5 });\nvar K5 = [{ tfOpName: \"EuclideanNorm\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\", defaultValue: false }] }, { tfOpName: \"FusedBatchNorm\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"scale\", type: \"tensor\" }, { start: 2, name: \"offset\", type: \"tensor\" }, { start: 3, name: \"mean\", type: \"tensor\" }, { start: 4, name: \"variance\", type: \"tensor\" }], attrs: [{ tfName: \"epsilon\", name: \"epsilon\", type: \"number\", defaultValue: 1e-3 }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }] }, { tfOpName: \"FusedBatchNormV2\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"scale\", type: \"tensor\" }, { start: 2, name: \"offset\", type: \"tensor\" }, { start: 3, name: \"mean\", type: \"tensor\" }, { start: 4, name: \"variance\", type: \"tensor\" }], attrs: [{ tfName: \"epsilon\", name: \"epsilon\", type: \"number\", defaultValue: 1e-3 }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }] }, { tfOpName: \"FusedBatchNormV3\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"scale\", type: \"tensor\" }, { start: 2, name: \"offset\", type: \"tensor\" }, { start: 3, name: \"mean\", type: \"tensor\" }, { start: 4, name: \"variance\", type: \"tensor\" }], attrs: [{ tfName: \"epsilon\", name: \"epsilon\", type: \"number\", defaultValue: 1e-3 }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\", notSupported: true }] }, { tfOpName: \"LRN\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"depth_radius\", name: \"radius\", type: \"number\", defaultValue: 5 }, { tfName: \"bias\", name: \"bias\", type: \"number\", defaultValue: 1 }, { tfName: \"alpha\", name: \"alpha\", type: \"number\", defaultValue: 1 }, { tfName: \"beta\", name: \"beta\", type: \"number\", defaultValue: 0.5 }] }, { tfOpName: \"Softmax\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"LogSoftmax\", category: \"normalization\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }];\nvar _S = {};\nqe(_S, { json: () => q5 });\nvar q5 = [{ tfOpName: \"Bincount\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"size\", type: \"number\" }, { start: 2, name: \"weights\", type: \"tensor\" }] }, { tfOpName: \"DenseBincount\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"size\", type: \"number\" }, { start: 2, name: \"weights\", type: \"tensor\" }], attrs: [{ tfName: \"binary_output\", name: \"binaryOutput\", type: \"bool\" }] }, { tfOpName: \"Max\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"Mean\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"Min\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"Sum\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"All\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"Any\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }] }, { tfOpName: \"ArgMax\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }] }, { tfOpName: \"ArgMin\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }] }, { tfOpName: \"Prod\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }], attrs: [{ tfName: \"keep_dims\", name: \"keepDims\", type: \"bool\" }, { tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"Cumprod\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }], attrs: [{ tfName: \"exclusive\", name: \"exclusive\", type: \"bool\" }, { tfName: \"reverse\", name: \"reverse\", type: \"bool\" }] }, { tfOpName: \"Cumsum\", category: \"reduction\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }], attrs: [{ tfName: \"exclusive\", name: \"exclusive\", type: \"bool\" }, { tfName: \"reverse\", name: \"reverse\", type: \"bool\" }] }];\nvar $S = {};\nqe($S, { json: () => j5 });\nvar j5 = [{ tfOpName: \"ConcatV2\", category: \"slice_join\", inputs: [{ start: 0, end: -1, name: \"tensors\", type: \"tensors\" }, { start: -1, name: \"axis\", type: \"number\" }], attrs: [{ tfName: \"N\", name: \"n\", type: \"number\", defaultValue: 2 }] }, { tfOpName: \"Concat\", category: \"slice_join\", inputs: [{ start: 1, end: 0, name: \"tensors\", type: \"tensors\" }, { start: 0, name: \"axis\", type: \"number\" }], attrs: [{ tfName: \"N\", name: \"n\", type: \"number\", defaultValue: 2 }] }, { tfOpName: \"GatherV2\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }, { start: 2, name: \"axis\", type: \"number\", defaultValue: 0 }], attrs: [{ tfName: \"batch_dims\", name: \"batchDims\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"Gather\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }], attrs: [{ tfName: \"validate_indices\", name: \"validateIndices\", type: \"bool\", notSupported: true }] }, { tfOpName: \"Reverse\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"dims\", type: \"bool[]\" }] }, { tfOpName: \"ReverseV2\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number[]\" }] }, { tfOpName: \"Slice\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"begin\", type: \"number[]\" }, { start: 2, name: \"size\", type: \"number[]\" }] }, { tfOpName: \"StridedSlice\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"begin\", type: \"number[]\" }, { start: 2, name: \"end\", type: \"number[]\" }, { start: 3, name: \"strides\", type: \"number[]\" }], attrs: [{ tfName: \"begin_mask\", name: \"beginMask\", type: \"number\", defaultValue: 0 }, { tfName: \"end_mask\", name: \"endMask\", type: \"number\", defaultValue: 0 }, { tfName: \"new_axis_mask\", name: \"newAxisMask\", type: \"number\", defaultValue: 0 }, { tfName: \"ellipsis_mask\", name: \"ellipsisMask\", type: \"number\", defaultValue: 0 }, { tfName: \"shrink_axis_mask\", name: \"shrinkAxisMask\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"Pack\", category: \"slice_join\", inputs: [{ start: 0, end: 0, name: \"tensors\", type: \"tensors\" }], attrs: [{ tfName: \"axis\", name: \"axis\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"Unpack\", category: \"slice_join\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }], attrs: [{ tfName: \"axis\", name: \"axis\", type: \"number\", defaultValue: 0 }, { tfName: \"num\", name: \"num\", type: \"number\", defaultValue: 0, notSupported: true }] }, { tfOpName: \"Tile\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"reps\", type: \"number[]\" }] }, { tfOpName: \"Split\", category: \"slice_join\", inputs: [{ start: 0, name: \"axis\", type: \"number\", defaultValue: 0 }, { start: 1, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"num_split\", name: \"numOrSizeSplits\", type: \"number\", defaultValue: 1 }] }, { tfOpName: \"SplitV\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"numOrSizeSplits\", type: \"number[]\" }, { start: 2, name: \"axis\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"ScatterNd\", category: \"slice_join\", inputs: [{ start: 0, name: \"indices\", type: \"tensor\" }, { start: 1, name: \"values\", type: \"tensor\" }, { start: 2, name: \"shape\", type: \"number[]\" }] }, { tfOpName: \"GatherNd\", category: \"slice_join\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }] }, { tfOpName: \"SparseToDense\", category: \"slice_join\", inputs: [{ start: 0, name: \"sparseIndices\", type: \"tensor\" }, { start: 1, name: \"outputShape\", type: \"number[]\" }, { start: 2, name: \"sparseValues\", type: \"tensor\" }, { start: 3, name: \"defaultValue\", type: \"tensor\" }], attrs: [{ tfName: \"validate_indices\", name: \"validateIndices\", type: \"bool\", defaultValue: false, notSupported: true }] }, { tfOpName: \"TensorScatterUpdate\", category: \"slice_join\", inputs: [{ start: 0, name: \"tensor\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }, { start: 2, name: \"values\", type: \"tensor\" }] }];\nvar ES = {};\nqe(ES, { json: () => X5 });\nvar X5 = [{ tfOpName: \"SparseFillEmptyRows\", category: \"sparse\", inputs: [{ start: 0, name: \"indices\", type: \"tensor\" }, { start: 1, name: \"values\", type: \"tensor\" }, { start: 2, name: \"denseShape\", type: \"tensor\" }, { start: 3, name: \"defaultValue\", type: \"tensor\" }] }, { tfOpName: \"SparseReshape\", category: \"sparse\", inputs: [{ start: 0, name: \"inputIndices\", type: \"tensor\" }, { start: 1, name: \"inputShape\", type: \"tensor\" }, { start: 2, name: \"newShape\", type: \"tensor\" }], attrs: [{ tfName: \"T\", name: \"dtype\", type: \"dtype\", notSupported: true }] }, { tfOpName: \"SparseSegmentMean\", category: \"sparse\", inputs: [{ start: 0, name: \"data\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }, { start: 2, name: \"segmentIds\", type: \"tensor\" }] }, { tfOpName: \"SparseSegmentSum\", category: \"sparse\", inputs: [{ start: 0, name: \"data\", type: \"tensor\" }, { start: 1, name: \"indices\", type: \"tensor\" }, { start: 2, name: \"segmentIds\", type: \"tensor\" }] }];\nvar RS = {};\nqe(RS, { json: () => Y5 });\nvar Y5 = [{ tfOpName: \"FFT\", category: \"spectral\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"IFFT\", category: \"spectral\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }] }, { tfOpName: \"RFFT\", category: \"spectral\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"fft_length\", type: \"number\", notSupported: true }] }, { tfOpName: \"IRFFT\", category: \"spectral\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"fft_length\", type: \"number\", notSupported: true }] }];\nvar DS = {};\nqe(DS, { json: () => Q5 });\nvar Q5 = [{ tfOpName: \"StaticRegexReplace\", category: \"string\", inputs: [{ start: 0, name: \"input\", type: \"tensor\" }], attrs: [{ tfName: \"pattern\", name: \"pattern\", type: \"string\" }, { tfName: \"rewrite\", name: \"rewrite\", type: \"string\" }, { tfName: \"replace_global\", name: \"replaceGlobal\", type: \"bool\" }] }, { tfOpName: \"StringNGrams\", category: \"string\", inputs: [{ start: 0, name: \"data\", type: \"tensor\" }, { start: 1, name: \"dataSplits\", type: \"tensor\" }], attrs: [{ tfName: \"separator\", name: \"separator\", type: \"string\" }, { tfName: \"ngram_widths\", name: \"nGramWidths\", type: \"number[]\" }, { tfName: \"left_pad\", name: \"leftPad\", type: \"string\" }, { tfName: \"right_pad\", name: \"rightPad\", type: \"string\" }, { tfName: \"pad_width\", name: \"padWidth\", type: \"number\" }, { tfName: \"preserve_short_sequences\", name: \"preserveShortSequences\", type: \"bool\" }], outputs: [\"ngrams\", \"ngrams_splits\"] }, { tfOpName: \"StringSplit\", category: \"string\", inputs: [{ start: 0, name: \"input\", type: \"tensor\" }, { start: 1, name: \"delimiter\", type: \"tensor\" }], attrs: [{ tfName: \"skip_empty\", name: \"skipEmpty\", type: \"bool\" }], outputs: [\"indices\", \"values\", \"shape\"] }, { tfOpName: \"StringToHashBucketFast\", category: \"string\", inputs: [{ start: 0, name: \"input\", type: \"tensor\" }], attrs: [{ tfName: \"num_buckets\", name: \"numBuckets\", type: \"number\" }] }];\nvar AS = {};\nqe(AS, { json: () => Z5 });\nvar Z5 = [{ tfOpName: \"Cast\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"SrcT\", name: \"sdtype\", type: \"dtype\", notSupported: true }, { tfName: \"DstT\", name: \"dtype\", type: \"dtype\" }] }, { tfOpName: \"ExpandDims\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"axis\", type: \"number\" }] }, { tfOpName: \"MirrorPad\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"padding\", type: \"number[]\" }], attrs: [{ tfName: \"mode\", name: \"mode\", type: \"string\" }] }, { tfOpName: \"Pad\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"padding\", type: \"number[]\" }], attrs: [{ tfName: \"constant_value\", name: \"constantValue\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"PadV2\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"padding\", type: \"number[]\" }, { start: 2, name: \"constantValue\", type: \"number\", defaultValue: 0 }] }, { tfOpName: \"Reshape\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"shape\", type: \"number[]\" }] }, { tfOpName: \"EnsureShape\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"shape\", type: \"number[]\" }] }, { tfOpName: \"Squeeze\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"axis\", tfDeprecatedName: \"squeeze_dims\", name: \"axis\", type: \"number[]\" }] }, { tfOpName: \"SpaceToBatchND\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"blockShape\", type: \"number[]\" }, { start: 2, name: \"paddings\", type: \"number[]\" }] }, { tfOpName: \"BatchToSpaceND\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"blockShape\", type: \"number[]\" }, { start: 2, name: \"crops\", type: \"number[]\" }] }, { tfOpName: \"DepthToSpace\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }], attrs: [{ tfName: \"block_size\", name: \"blockSize\", type: \"number\" }, { tfName: \"data_format\", name: \"dataFormat\", type: \"string\" }] }, { tfOpName: \"BroadcastTo\", category: \"transformation\", inputs: [{ start: 0, name: \"x\", type: \"tensor\" }, { start: 1, name: \"shape\", type: \"number[]\" }], attrs: [] }, { tfOpName: \"BroadcastArgs\", category: \"transformation\", inputs: [{ start: 0, name: \"s0\", type: \"tensor\" }, { start: 1, name: \"s1\", type: \"tensor\" }], attrs: [] }];\nvar Ml = class {\n static get Instance() {\n return this._instance || (this._instance = new this());\n }\n constructor() {\n let t8 = [hS, gS, xS, yS, bS, CS, wS, SS, IS, vS, kS, NS, TS, _S, $S, ES, RS, DS, AS], e = [].concat(...t8.map((o) => o.json));\n this.opMappers = e.reduce((o, n) => (o[n.tfOpName] = n, o), {});\n }\n transformGraph(t8, e = {}) {\n let o = t8.node, n = [], s = [], a = [], i = o.reduce((h, g) => (h[g.name] = this.mapNode(g), g.op.startsWith(\"Placeholder\") ? n.push(h[g.name]) : g.op === \"Const\" ? s.push(h[g.name]) : (g.input == null || g.input.length === 0) && a.push(h[g.name]), h), {}), p = [], u = [], c = {}, l = {};\n e != null && (c = this.mapSignatureEntries(e.inputs), l = this.mapSignatureEntries(e.outputs));\n let m = Object.keys(i);\n m.forEach((h) => {\n let g = i[h];\n g.inputNames.forEach((x, b) => {\n let [C, , S] = Ls(x), k = i[C];\n if (k.outputs != null) {\n let _ = k.outputs.indexOf(S);\n if (_ !== -1) {\n let E = `${C}:${_}`;\n g.inputNames[b] = E;\n }\n }\n g.inputs.push(k), k.children.push(g);\n });\n }), Object.keys(l).length === 0 ? m.forEach((h) => {\n let g = i[h];\n g.children.length === 0 && u.push(g);\n }) : Object.keys(l).forEach((h) => {\n let [g] = Ls(h), x = i[g];\n x != null && (x.signatureKey = l[h], u.push(x));\n }), Object.keys(c).length > 0 ? Object.keys(c).forEach((h) => {\n let [g] = Ls(h), x = i[g];\n x && (x.signatureKey = c[h], p.push(x));\n }) : p = n;\n let d = {};\n t8.library != null && t8.library.function != null && (d = t8.library.function.reduce((h, g) => (h[g.signature.name] = this.mapFunction(g), h), {}));\n let f = { nodes: i, inputs: p, outputs: u, weights: s, placeholders: n, signature: e, functions: d };\n return a.length > 0 && (f.initNodes = a), f;\n }\n mapSignatureEntries(t8) {\n return Object.keys(t8 || {}).reduce((e, o) => (e[t8[o].name] = o, e), {});\n }\n mapNode(t8) {\n let e = pf(t8.op) || this.opMappers[t8.op] || {};\n t8.attr == null && (t8.attr = {});\n let o = { name: t8.name, op: t8.op, category: e.category, inputNames: (t8.input || []).map((n) => n.startsWith(\"^\") ? n.slice(1) : n), inputs: [], children: [], inputParams: {}, attrParams: {}, rawAttrs: t8.attr, outputs: e.outputs };\n return e.inputs != null && (o.inputParams = e.inputs.reduce((n, s) => (n[s.name] = { type: s.type, inputIndexStart: s.start, inputIndexEnd: s.end }, n), {})), e.attrs != null && (o.attrParams = e.attrs.reduce((n, s) => {\n let a = s.type, i;\n switch (s.type) {\n case \"string\":\n i = lf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = lf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"string[]\":\n i = yf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = yf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"number\":\n i = df(t8.attr, s.tfName, s.defaultValue || 0), i === void 0 && s.tfDeprecatedName && (i = df(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"number[]\":\n i = xf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = xf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"bool\":\n i = mf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = mf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"bool[]\":\n i = Cf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = Cf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"shape\":\n i = gf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = gf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"shape[]\":\n i = bf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = bf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"dtype\":\n i = ff(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = ff(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"dtype[]\":\n i = hf(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = hf(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"func\":\n i = xT(t8.attr, s.tfName, s.defaultValue), i === void 0 && s.tfDeprecatedName && (i = xT(t8.attr, s.tfDeprecatedName, s.defaultValue));\n break;\n case \"tensor\":\n case \"tensors\":\n break;\n default:\n throw new Error(`Unsupported param type: ${s.type} for op: ${t8.op}`);\n }\n return n[s.name] = { value: i, type: a }, n;\n }, {})), o;\n }\n mapFunction(t8) {\n let e = t8.nodeDef, o = [], n = [], s = {};\n e != null && (s = e.reduce((l, m) => (l[m.name] = this.mapNode(m), m.op === \"Const\" && n.push(l[m.name]), l), {}));\n let a = [], i = [];\n t8.signature.inputArg.forEach((l) => {\n let [m] = Ls(l.name), d = { name: m, op: \"Placeholder\", inputs: [], inputNames: [], category: \"graph\", inputParams: {}, attrParams: { dtype: { value: FS(l.type), type: \"dtype\" } }, children: [] };\n d.signatureKey = l.name, a.push(d), s[m] = d;\n }), Object.keys(s).forEach((l) => {\n let m = s[l];\n m.inputNames.forEach((d, f) => {\n let [h, , g] = Ls(d), x = s[h];\n if (x.outputs != null) {\n let b = x.outputs.indexOf(g);\n if (b !== -1) {\n let C = `${h}:${b}`;\n m.inputNames[f] = C;\n }\n }\n m.inputs.push(x), x.children.push(m);\n });\n });\n let u = t8.ret;\n t8.signature.outputArg.forEach((l) => {\n let [m, d] = Ls(u[l.name]), f = s[m];\n f != null && (f.defaultOutput = d, i.push(f));\n });\n let c = this.mapArgsToSignature(t8);\n return { nodes: s, inputs: a, outputs: i, weights: n, placeholders: o, signature: c };\n }\n mapArgsToSignature(t8) {\n return { methodName: t8.signature.name, inputs: t8.signature.inputArg.reduce((e, o) => (e[o.name] = this.mapArgToTensorInfo(o), e), {}), outputs: t8.signature.outputArg.reduce((e, o) => (e[o.name] = this.mapArgToTensorInfo(o, t8.ret), e), {}) };\n }\n mapArgToTensorInfo(t8, e) {\n let o = t8.name;\n return e != null && (o = e[o]), { name: o, dtype: t8.type };\n }\n};\nfunction J5(r) {\n let t8 = A().global;\n if (typeof t8.atob != \"undefined\")\n return t8.atob(r);\n if (typeof Buffer != \"undefined\")\n return new Buffer(r, \"base64\").toString();\n throw new Error(\"Unable to decode base64 in this environment. Missing built-in atob() or Buffer()\");\n}\nfunction yT(r, t8) {\n let e = Array.isArray(r) ? String.fromCharCode.apply(null, r) : J5(r);\n return t8 ? e : e.toLowerCase();\n}\nfunction lf(r, t8, e, o = false) {\n let n = r[t8];\n return n != null ? yT(n.s, o) : e;\n}\nfunction mf(r, t8, e) {\n let o = r[t8];\n return o ? o.b : e;\n}\nfunction df(r, t8, e) {\n let o = r[t8] || {}, n = o.i != null ? o.i : o.f != null ? o.f : e;\n return typeof n == \"number\" ? n : parseInt(n, 10);\n}\nfunction FS(r) {\n switch (typeof r == \"string\" && (r = ho[r]), r) {\n case ho.DT_FLOAT:\n case ho.DT_HALF:\n return \"float32\";\n case ho.DT_INT32:\n case ho.DT_INT64:\n case ho.DT_INT8:\n case ho.DT_UINT8:\n return \"int32\";\n case ho.DT_BOOL:\n return \"bool\";\n case ho.DT_DOUBLE:\n return \"float32\";\n case ho.DT_STRING:\n return \"string\";\n default:\n return null;\n }\n}\nfunction xT(r, t8, e) {\n let o = r[t8];\n return o && o.func ? o.func.name : e;\n}\nfunction ff(r, t8, e) {\n let o = r[t8];\n return o && o.type ? FS(o.type) : e;\n}\nfunction hf(r, t8, e) {\n let o = r[t8];\n return o && o.list && o.list.type ? o.list.type.map((n) => FS(n)) : e;\n}\nfunction bT(r) {\n if (!r.unknownRank)\n return r.dim != null ? r.dim.map((t8) => typeof t8.size == \"number\" ? t8.size : parseInt(t8.size, 10)) : [];\n}\nfunction gf(r, t8, e) {\n let o = r[t8];\n return o && o.shape ? bT(o.shape) : e;\n}\nfunction xf(r, t8, e) {\n let o = r[t8];\n return o ? ((o.list.f && o.list.f.length ? o.list.f : o.list.i) || []).map((n) => typeof n == \"number\" ? n : parseInt(n, 10)) : e;\n}\nfunction yf(r, t8, e, o = false) {\n let n = r[t8];\n return n && n.list && n.list.s ? n.list.s.map((s) => yT(s, o)) : e;\n}\nfunction bf(r, t8, e) {\n let o = r[t8];\n return o && o.list && o.list.shape ? o.list.shape.map((n) => bT(n)) : e;\n}\nfunction Cf(r, t8, e) {\n let o = r[t8];\n return o && o.list && o.list.b ? o.list.b : e;\n}\nvar wf = class {\n constructor(t8, e, o) {\n this.node = t8, this.tensorMap = e, this.context = o, this.inputs = [], this.attrs = {}, this.inputs = t8.inputNames.map((n) => this.getInput(n)), t8.rawAttrs != null && (this.attrs = Object.keys(t8.rawAttrs).reduce((n, s) => (n[s] = this.getAttr(s), n), {}));\n }\n getInput(t8) {\n return zt(t8, this.tensorMap, this.context);\n }\n getAttr(t8, e) {\n let o = this.node.rawAttrs[t8];\n if (o.tensor != null)\n return zt(t8, this.tensorMap, this.context);\n if (o.i != null || o.f != null)\n return df(this.node.rawAttrs, t8, e);\n if (o.s != null)\n return lf(this.node.rawAttrs, t8, e);\n if (o.b != null)\n return mf(this.node.rawAttrs, t8, e);\n if (o.shape != null)\n return gf(this.node.rawAttrs, t8, e);\n if (o.type != null)\n return ff(this.node.rawAttrs, t8, e);\n if (o.list != null) {\n if (o.list.i != null || o.list.f != null)\n return xf(this.node.rawAttrs, t8, e);\n if (o.list.s != null)\n return yf(this.node.rawAttrs, t8, e);\n if (o.list.shape != null)\n return bf(this.node.rawAttrs, t8, e);\n if (o.list.b != null)\n return Cf(this.node.rawAttrs, t8, e);\n if (o.list.type != null)\n return hf(this.node.rawAttrs, t8, e);\n }\n return e;\n }\n};\nvar Je = {};\nqe(Je, { OP_SCOPE_SUFFIX: () => kw, abs: () => Jt, acos: () => kk, acosh: () => Nk, add: () => Ce, addN: () => Tk, all: () => _k, any: () => $k, argMax: () => Ek, argMin: () => Rk, asin: () => Dk, asinh: () => Ak, atan: () => Fk, atan2: () => Pk, atanh: () => Ok, avgPool: () => fd, avgPool3d: () => Bk, basicLSTMCell: () => zk, batchNorm: () => au, batchNorm2d: () => Wk, batchNorm3d: () => Uk, batchNorm4d: () => Gk, batchToSpaceND: () => hd, bincount: () => gd, bitwiseAnd: () => Hk, booleanMaskAsync: () => E6, broadcastArgs: () => Kk, broadcastTo: () => iu, buffer: () => me, cast: () => We, ceil: () => qk, clipByValue: () => jk, clone: () => Ur, complex: () => Er, concat: () => bt, concat1d: () => Xk, concat2d: () => Yk, concat3d: () => Qk, concat4d: () => Zk, conv1d: () => Jk, conv2d: () => uu, conv2dTranspose: () => e2, conv3d: () => t2, conv3dTranspose: () => o2, cos: () => n2, cosh: () => s2, cosineWindow: () => Rl, cumprod: () => a2, cumsum: () => i2, denseBincount: () => u2, depthToSpace: () => p2, depthwiseConv2d: () => lc, diag: () => c2, dilation2d: () => l2, div: () => je, divNoNan: () => d2, dot: () => f2, dropout: () => W6, einsum: () => pu, elu: () => Cd, enclosingPowerOfTwo: () => Qw, ensureShape: () => h2, equal: () => bd, erf: () => g2, euclideanNorm: () => b2, exp: () => $o, expandDims: () => Ms, expm1: () => C2, eye: () => wd, fft: () => fc, fill: () => Ea, floor: () => Sd, floorDiv: () => dd, fused: () => Zw, gather: () => Id, gatherND: () => z6, greater: () => qu, greaterEqual: () => vd, ifft: () => Ju, imag: () => lu, image: () => Kj, inTopKAsync: () => G6, irfft: () => Kd, isFinite: () => w2, isInf: () => S2, isNaN: () => I2, leakyRelu: () => kd, less: () => _l, lessEqual: () => mc, linalg: () => qj, linspace: () => v2, localResponseNormalization: () => k2, log: () => pi, log1p: () => Nd, logSigmoid: () => N2, logSoftmax: () => T2, logSumExp: () => $d, logicalAnd: () => ju, logicalNot: () => Ed, logicalOr: () => Rd, logicalXor: () => _2, losses: () => jj, lowerBound: () => $2, matMul: () => Ze, max: () => Ra, maxPool: () => Ad, maxPool3d: () => E2, maxPoolWithArgmax: () => R2, maximum: () => Fd, mean: () => Xu, meshgrid: () => D2, min: () => Tl, minimum: () => Yu, mirrorPad: () => A2, mod: () => F2, moments: () => P2, movingAverage: () => A6, mul: () => se, multiRNNCell: () => O2, multinomial: () => M2, neg: () => cr, norm: () => Ku, notEqual: () => Pd, oneHot: () => El, ones: () => Da, onesLike: () => L2, op: () => N, outerProduct: () => B2, pad: () => Aa, pad1d: () => z2, pad2d: () => V2, pad3d: () => W2, pad4d: () => U2, pool: () => G2, pow: () => ui, prelu: () => Md, print: () => md, prod: () => H2, raggedGather: () => K2, raggedRange: () => q2, raggedTensorToTensor: () => j2, rand: () => X2, randomGamma: () => g1, randomNormal: () => Ud, randomStandardNormal: () => x1, randomUniform: () => dc, randomUniformInt: () => y1, range: () => mu, real: () => ci, reciprocal: () => b1, relu: () => du, relu6: () => Gd, reshape: () => W, reverse: () => mo, reverse1d: () => C1, reverse2d: () => w1, reverse3d: () => S1, reverse4d: () => I1, rfft: () => hc, round: () => Hd, rsqrt: () => v1, scalar: () => ke, scatterND: () => P6, searchSorted: () => $l, selu: () => k1, separableConv2d: () => N1, setdiff1dAsync: () => T1, sigmoid: () => $a, sign: () => _1, signal: () => Hj, sin: () => $1, sinh: () => E1, slice: () => Xe, slice1d: () => R1, slice2d: () => D1, slice3d: () => A1, slice4d: () => F1, softmax: () => P1, softplus: () => _d, spaceToBatchND: () => Od, sparse: () => Xj, sparseToDense: () => L6, spectral: () => Gj, split: () => li, sqrt: () => Dr, square: () => er, squaredDifference: () => qd, squeeze: () => gc, stack: () => kr, step: () => jd, stridedSlice: () => O1, string: () => Yj, sub: () => Te, sum: () => ot, tan: () => M1, tanh: () => Nl, tensor: () => ur, tensor1d: () => tr, tensor2d: () => fu, tensor3d: () => Xd, tensor4d: () => L1, tensor5d: () => B1, tensor6d: () => z1, tensorScatterUpdate: () => W1, tile: () => cu, topk: () => U1, transpose: () => yc, truncatedNormal: () => G1, unique: () => H1, unsortedSegmentSum: () => K1, unstack: () => fo, upperBound: () => q1, variable: () => j1, where: () => lo, whereAsync: () => Qd, zeros: () => Gr, zerosLike: () => Ht });\nvar CT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"BiasAdd\":\n case \"AddV2\":\n case \"Add\":\n return [o.add(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"AddN\":\n return [o.addN(I(\"tensors\", r, t8, e))];\n case \"FloorMod\":\n case \"Mod\":\n return [o.mod(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Mul\":\n return [o.mul(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"RealDiv\":\n case \"Div\":\n return [o.div(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"DivNoNan\":\n return [o.divNoNan(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"FloorDiv\":\n return [o.floorDiv(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Sub\":\n return [o.sub(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Minimum\":\n return [o.minimum(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Maximum\":\n return [o.maximum(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Pow\":\n return [o.pow(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"SquaredDifference\":\n return [o.squaredDifference(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar wT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Abs\":\n case \"ComplexAbs\":\n return [o.abs(I(\"x\", r, t8, e))];\n case \"Acos\":\n return [o.acos(I(\"x\", r, t8, e))];\n case \"Acosh\":\n return [o.acosh(I(\"x\", r, t8, e))];\n case \"Asin\":\n return [o.asin(I(\"x\", r, t8, e))];\n case \"Asinh\":\n return [o.asinh(I(\"x\", r, t8, e))];\n case \"Atan\":\n return [o.atan(I(\"x\", r, t8, e))];\n case \"Atan2\":\n return [o.atan2(I(\"x\", r, t8, e), I(\"y\", r, t8, e))];\n case \"Atanh\":\n return [o.atanh(I(\"x\", r, t8, e))];\n case \"Ceil\":\n return [o.ceil(I(\"x\", r, t8, e))];\n case \"Complex\":\n return [o.complex(I(\"real\", r, t8, e), I(\"imag\", r, t8, e))];\n case \"Cos\":\n return [o.cos(I(\"x\", r, t8, e))];\n case \"Cosh\":\n return [o.cosh(I(\"x\", r, t8, e))];\n case \"Elu\":\n return [o.elu(I(\"x\", r, t8, e))];\n case \"Erf\":\n return [o.erf(I(\"x\", r, t8, e))];\n case \"Exp\":\n return [o.exp(I(\"x\", r, t8, e))];\n case \"Expm1\":\n return [o.expm1(I(\"x\", r, t8, e))];\n case \"Floor\":\n return [o.floor(I(\"x\", r, t8, e))];\n case \"Log\":\n return [o.log(I(\"x\", r, t8, e))];\n case \"Log1p\":\n return [o.log1p(I(\"x\", r, t8, e))];\n case \"Imag\":\n return [o.imag(I(\"x\", r, t8, e))];\n case \"Neg\":\n return [o.neg(I(\"x\", r, t8, e))];\n case \"Reciprocal\":\n return [o.reciprocal(I(\"x\", r, t8, e))];\n case \"Real\":\n return [o.real(I(\"x\", r, t8, e))];\n case \"Relu\":\n return [o.relu(I(\"x\", r, t8, e))];\n case \"Round\":\n return [o.round(I(\"x\", r, t8, e))];\n case \"Selu\":\n return [o.selu(I(\"x\", r, t8, e))];\n case \"Sigmoid\":\n return [o.sigmoid(I(\"x\", r, t8, e))];\n case \"Sin\":\n return [o.sin(I(\"x\", r, t8, e))];\n case \"Sign\":\n return [o.sign(I(\"x\", r, t8, e))];\n case \"Sinh\":\n return [o.sinh(I(\"x\", r, t8, e))];\n case \"Softplus\":\n return [o.softplus(I(\"x\", r, t8, e))];\n case \"Sqrt\":\n return [o.sqrt(I(\"x\", r, t8, e))];\n case \"Square\":\n return [o.square(I(\"x\", r, t8, e))];\n case \"Tanh\":\n return [o.tanh(I(\"x\", r, t8, e))];\n case \"Tan\":\n return [o.tan(I(\"x\", r, t8, e))];\n case \"ClipByValue\":\n return [o.clipByValue(I(\"x\", r, t8, e), I(\"clipValueMin\", r, t8, e), I(\"clipValueMax\", r, t8, e))];\n case \"Relu6\":\n return [o.relu6(I(\"x\", r, t8, e))];\n case \"Rsqrt\":\n return [o.rsqrt(zt(r.inputNames[0], t8, e))];\n case \"LeakyRelu\":\n return [o.leakyRelu(I(\"x\", r, t8, e), I(\"alpha\", r, t8, e))];\n case \"Prelu\":\n return [o.prelu(I(\"x\", r, t8, e), I(\"alpha\", r, t8, e))];\n case \"IsNan\":\n return [o.isNaN(zt(r.inputNames[0], t8, e))];\n case \"IsInf\":\n return [o.isInf(zt(r.inputNames[0], t8, e))];\n case \"IsFinite\":\n return [o.isFinite(zt(r.inputNames[0], t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nfunction Hr(r, t8, e = \"\") {\n if (!(typeof r == \"number\" || typeof t8 == \"number\")) {\n y.assert(r.length === t8.length, () => e + ` Shapes ${r} and ${t8} must match`);\n for (let o = 0; o < r.length; o++) {\n let n = r[o], s = t8[o];\n y.assert(n < 0 || s < 0 || n === s, () => e + ` Shapes ${r} and ${t8} must match`);\n }\n }\n}\nfunction ST(r) {\n return !(typeof r == \"number\" || r.some((t8) => t8 < 0));\n}\nfunction bc(r, t8, e) {\n let o = Sf(r, e), n = !ST(o);\n if (n && t8.length === 0)\n throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${o}`);\n if (n && t8.forEach((s) => {\n o = Sf(s.shape, o);\n }), !ST(o))\n throw new Error(`Non-fully-defined elementShape: ${o}`);\n return o;\n}\nfunction Sf(r, t8) {\n if (typeof r == \"number\")\n return t8;\n if (typeof t8 == \"number\")\n return r;\n if (r.length !== t8.length)\n throw new Error(`Incompatible ranks during merge: ${r} vs. ${t8}`);\n let e = [];\n for (let o = 0; o < r.length; ++o) {\n let n = r[o], s = t8[o];\n if (n >= 0 && s >= 0 && n !== s)\n throw new Error(`Incompatible shape during merge: ${r} vs. ${t8}`);\n e[o] = n >= 0 ? n : s;\n }\n return e;\n}\nvar If = class {\n constructor(t8, e, o, n, s, a, i) {\n this.name = t8, this.dtype = e, this.maxSize = o, this.elementShape = n, this.identicalElementShapes = s, this.dynamicSize = a, this.clearAfterRead = i, this.tensors = [], this.closed_ = false, this.idTensor = ke(0), Rr(this.idTensor);\n }\n get id() {\n return this.idTensor.id;\n }\n get closed() {\n return this.closed_;\n }\n clearAndClose(t8) {\n this.tensors.forEach((e) => {\n (t8 == null || !t8.has(e.tensor.id)) && e.tensor.dispose();\n }), this.tensors = [], this.closed_ = true, this.idTensor.dispose();\n }\n size() {\n return this.tensors.length;\n }\n read(t8) {\n if (this.closed_)\n throw new Error(`TensorArray ${this.name} has already been closed.`);\n if (t8 < 0 || t8 >= this.size())\n throw new Error(`Tried to read from index ${t8}, but array size is: ${this.size()}`);\n let e = this.tensors[t8];\n if (e.cleared)\n throw new Error(`TensorArray ${this.name}: Could not read index ${t8} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);\n return this.clearAfterRead && (e.cleared = true), e.read = true, e.tensor;\n }\n readMany(t8) {\n return t8.map((e) => this.read(e));\n }\n write(t8, e) {\n if (this.closed_)\n throw new Error(`TensorArray ${this.name} has already been closed.`);\n if (t8 < 0 || !this.dynamicSize && t8 >= this.maxSize)\n throw new Error(`Tried to write to index ${t8}, but array is not resizeable and size is: ${this.maxSize}`);\n let o = this.tensors[t8] || {};\n if (e.dtype !== this.dtype)\n throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t8},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);\n if (this.size() === 0 && (this.elementShape == null || this.elementShape.length === 0) && (this.elementShape = e.shape), Hr(this.elementShape, e.shape, `TensorArray ${this.name}: Could not write to TensorArray index ${t8}.`), o.read)\n throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t8}, because it has already been read.`);\n if (o.written)\n throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t8}, because it has already been written.`);\n o.tensor = e, Rr(e), o.written = true, this.tensors[t8] = o;\n }\n writeMany(t8, e) {\n if (t8.length !== e.length)\n throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t8.length} is not the same as tensors size: ${e.length}.`);\n t8.forEach((o, n) => this.write(o, e[n]));\n }\n gather(t8, e) {\n if (e && e !== this.dtype)\n throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);\n if (t8)\n t8 = t8.slice(0, this.size());\n else {\n t8 = [];\n for (let n = 0; n < this.size(); n++)\n t8.push(n);\n }\n if (t8.length === 0)\n return ur([], [0].concat(this.elementShape));\n let o = this.readMany(t8);\n return Hr(this.elementShape, o[0].shape, \"TensorArray shape mismatch: \"), kr(o, 0);\n }\n concat(t8) {\n if (t8 && t8 !== this.dtype)\n throw new Error(`TensorArray dtype is ${this.dtype} but concat requested dtype ${t8}`);\n if (this.size() === 0)\n return ur([], [0].concat(this.elementShape));\n let e = [];\n for (let n = 0; n < this.size(); n++)\n e.push(n);\n let o = this.readMany(e);\n return Hr(this.elementShape, o[0].shape, `TensorArray shape mismatch: tensor array shape (${this.elementShape}) vs first tensor shape (${o[0].shape})`), bt(o, 0);\n }\n scatter(t8, e) {\n if (e.dtype !== this.dtype)\n throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);\n if (t8.length !== e.shape[0])\n throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t8.length} vs. ${e.shape[0]}`);\n let o = Math.max(...t8);\n if (!this.dynamicSize && o >= this.maxSize)\n throw new Error(`Max index must be < array size (${o} vs. ${this.maxSize})`);\n this.writeMany(t8, fo(e, 0));\n }\n split(t8, e) {\n if (e.dtype !== this.dtype)\n throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);\n let o = 0, n = t8.map((p) => (o += p, o));\n if (o !== e.shape[0])\n throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${o}, and tensor's shape is: ${e.shape}`);\n if (!this.dynamicSize && t8.length !== this.maxSize)\n throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t8.length}), and the TensorArray is not marked as dynamically resizeable`);\n let s = o === 0 ? 0 : e.size / o, a = [];\n De(() => {\n e = W(e, [1, o, s]);\n for (let p = 0; p < t8.length; ++p) {\n let c = [0, p === 0 ? 0 : n[p - 1], 0], l = [1, t8[p], s];\n a[p] = W(Xe(e, c, l), this.elementShape);\n }\n return a;\n });\n let i = [];\n for (let p = 0; p < t8.length; p++)\n i[p] = p;\n this.writeMany(i, a);\n }\n};\nvar hi = class {\n get id() {\n return this.idTensor.id;\n }\n constructor(t8, e, o, n = -1) {\n this.tensors = t8, this.elementShape = e, this.elementDtype = o, t8 != null && t8.forEach((s) => {\n if (o !== s.dtype)\n throw new Error(`Invalid data types; op elements ${o}, but list elements ${s.dtype}`);\n Hr(e, s.shape, \"TensorList shape mismatch: \"), Rr(s);\n }), this.idTensor = ke(0), this.maxNumElements = n, Rr(this.idTensor);\n }\n copy() {\n return new hi([...this.tensors], this.elementShape, this.elementDtype);\n }\n clearAndClose(t8) {\n this.tensors.forEach((e) => {\n (t8 == null || !t8.has(e.id)) && e.dispose();\n }), this.tensors.length = 0, this.idTensor.dispose();\n }\n size() {\n return this.tensors.length;\n }\n stack(t8, e, o = -1) {\n if (e !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);\n if (o !== -1 && this.tensors.length !== o)\n throw new Error(`Operation expected a list with ${o} elements but got a list with ${this.tensors.length} elements.`);\n Hr(t8, this.elementShape, \"TensorList shape mismatch: \");\n let n = bc(this.elementShape, this.tensors, t8);\n return De(() => {\n let s = this.tensors.map((a) => W(a, n));\n return kr(s, 0);\n });\n }\n popBack(t8, e) {\n if (e !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);\n if (this.size() === 0)\n throw new Error(\"Trying to pop from an empty list.\");\n let o = bc(this.elementShape, this.tensors, t8), n = this.tensors.pop();\n return n.kept = false, Hr(n.shape, t8, \"TensorList shape mismatch: \"), W(n, o);\n }\n pushBack(t8) {\n if (t8.dtype !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${t8.dtype}, but list elements ${this.elementDtype}`);\n if (Hr(t8.shape, this.elementShape, \"TensorList shape mismatch: \"), this.maxNumElements === this.size())\n throw new Error(\"Trying to push element into a full list.\");\n Rr(t8), this.tensors.push(t8);\n }\n resize(t8) {\n if (t8 < 0)\n throw new Error(`TensorListResize expects size to be non-negative. Got: ${t8}`);\n if (this.maxNumElements !== -1 && t8 > this.maxNumElements)\n throw new Error(`TensorListResize input size ${t8} is greater maxNumElement ${this.maxNumElements}.`);\n let e = new hi([], this.elementShape, this.elementDtype, this.maxNumElements);\n e.tensors.length = t8;\n for (let o = 0; o < Math.min(this.tensors.length, t8); ++o)\n e.tensors[o] = this.tensors[o];\n return e;\n }\n getItem(t8, e, o) {\n if (o !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${o}, but list elements ${this.elementDtype}`);\n if (t8 < 0 || t8 > this.tensors.length)\n throw new Error(`Trying to access element ${t8} in a list with ${this.tensors.length} elements.`);\n if (this.tensors[t8] == null)\n throw new Error(`element at index ${t8} is null.`);\n Hr(this.tensors[t8].shape, e, \"TensorList shape mismatch: \");\n let n = bc(this.elementShape, this.tensors, e);\n return W(this.tensors[t8], n);\n }\n setItem(t8, e) {\n if (e.dtype !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);\n if (t8 < 0 || this.maxNumElements !== -1 && t8 >= this.maxNumElements)\n throw new Error(`Trying to set element ${t8} in a list with max ${this.maxNumElements} elements.`);\n Hr(this.elementShape, e.shape, \"TensorList shape mismatch: \"), Rr(e), this.tensors[t8] != null && (this.tensors[t8].kept = false), this.tensors[t8] = e;\n }\n gather(t8, e, o) {\n if (e !== this.elementDtype)\n throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);\n Hr(this.elementShape, o, \"TensorList shape mismatch: \"), t8 = t8.slice(0, this.size());\n let n = bc(this.elementShape, this.tensors, o);\n return t8.length === 0 ? ur([], [0].concat(n)) : De(() => {\n let s = t8.map((a) => W(this.tensors[a], n));\n return kr(s, 0);\n });\n }\n concat(t8, e) {\n if (t8 && t8 !== this.elementDtype)\n throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t8}`);\n Hr(this.elementShape, e, \"TensorList shape mismatch: \");\n let o = bc(this.elementShape, this.tensors, e);\n return this.size() === 0 ? ur([], [0].concat(o)) : De(() => {\n let n = this.tensors.map((s) => W(s, o));\n return bt(n, 0);\n });\n }\n};\nfunction IT(r, t8, e) {\n let o = r.dtype;\n if (r.shape.length < 1)\n throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);\n if (r.dtype !== e)\n throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);\n let n = r.shape.slice(1);\n Hr(n, t8, \"TensorList shape mismatch: \");\n let s = fo(r);\n return new hi(s, t8, o);\n}\nfunction vT(r, t8, e, o) {\n return new hi([], r, t8, o);\n}\nfunction kT(r, t8, e, o) {\n if (t8.length !== r.shape[0])\n throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t8.length} vs. ${r.shape[0]}`);\n let n = Math.max(...t8);\n if (o != null && o !== -1 && n >= o)\n throw new Error(`Max index must be < array size (${n} vs. ${o})`);\n let s = new hi([], e, r.dtype, o), a = fo(r, 0);\n return t8.forEach((i, p) => {\n s.setItem(i, a[p]);\n }), s;\n}\nfunction NT(r, t8, e) {\n let o = 0, n = t8.map((c) => (o += c, o));\n if (o !== r.shape[0])\n throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${o}, and tensor's shape is: ${r.shape}`);\n let s = r.shape.slice(1), a = Sf(s, e), i = o === 0 ? 0 : r.size / o, p = De(() => {\n let c = [];\n r = W(r, [1, o, i]);\n for (let l = 0; l < t8.length; ++l) {\n let d = [0, l === 0 ? 0 : n[l - 1], 0], f = [1, t8[l], i];\n c[l] = W(Xe(r, d, f), a);\n }\n return r.dispose(), c;\n }), u = new hi([], e, r.dtype, t8.length);\n for (let c = 0; c < p.length; c++)\n u.setItem(c, p[c]);\n return u;\n}\nvar TT = async (r, t8, e) => {\n switch (r.op) {\n case \"If\":\n case \"StatelessIf\": {\n let o = I(\"thenBranch\", r, t8, e), n = I(\"elseBranch\", r, t8, e), s = I(\"cond\", r, t8, e), a = I(\"args\", r, t8, e);\n return (await s.data())[0] ? e.functionMap[o].executeFunctionAsync(a, e.tensorArrayMap, e.tensorListMap) : e.functionMap[n].executeFunctionAsync(a, e.tensorArrayMap, e.tensorListMap);\n }\n case \"While\":\n case \"StatelessWhile\": {\n let o = I(\"body\", r, t8, e), n = I(\"cond\", r, t8, e), s = I(\"args\", r, t8, e), a = await e.functionMap[n].executeFunctionAsync(s, e.tensorArrayMap, e.tensorListMap), i = s.map((c) => c.id), p = await a[0].data();\n a.forEach((c) => {\n !c.kept && i.indexOf(c.id) === -1 && c.dispose();\n });\n let u = s;\n for (; p[0]; ) {\n let c = u;\n u = await e.functionMap[o].executeFunctionAsync(u, e.tensorArrayMap, e.tensorListMap);\n let l = u.map((d) => d.id);\n c.forEach((d) => {\n !d.kept && i.indexOf(d.id) === -1 && l.indexOf(d.id) === -1 && d.dispose();\n });\n let m = await e.functionMap[n].executeFunctionAsync(u, e.tensorArrayMap, e.tensorListMap);\n p = await m[0].data(), m.forEach((d) => {\n !d.kept && i.indexOf(d.id) === -1 && l.indexOf(d.id) === -1 && d.dispose();\n });\n }\n return u;\n }\n case \"LoopCond\": {\n let o = I(\"pred\", r, t8, e);\n return [Bs(o)];\n }\n case \"Switch\": {\n let o = I(\"pred\", r, t8, e), n = I(\"data\", r, t8, e);\n return n.kept || (n = Bs(n)), (await o.data())[0] ? [void 0, n] : [n, void 0];\n }\n case \"Merge\": {\n let o = r.inputNames.find((n) => zt(n, t8, e) !== void 0);\n if (o) {\n let n = zt(o, t8, e);\n return [Bs(n)];\n }\n return;\n }\n case \"Enter\": {\n let o = I(\"frameName\", r, t8, e), n = I(\"tensor\", r, t8, e);\n return e.enterFrame(o), [Bs(n)];\n }\n case \"Exit\": {\n let o = I(\"tensor\", r, t8, e);\n return e.exitFrame(), [Bs(o)];\n }\n case \"NextIteration\": {\n let o = I(\"tensor\", r, t8, e);\n return e.nextIteration(), [Bs(o)];\n }\n case \"TensorArrayV3\": {\n let o = I(\"size\", r, t8, e), n = I(\"dtype\", r, t8, e), s = I(\"elementShape\", r, t8, e), a = I(\"dynamicSize\", r, t8, e), i = I(\"clearAfterRead\", r, t8, e), p = I(\"identicalElementShapes\", r, t8, e), u = I(\"name\", r, t8, e), c = new If(u, n, o, s, p, a, i);\n return e.addTensorArray(c), [c.idTensor, ke(1)];\n }\n case \"TensorArrayWriteV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = I(\"index\", r, t8, e), s = I(\"tensor\", r, t8, e), a = e.getTensorArray(o.id);\n return a.write(n, s), [a.idTensor];\n }\n case \"TensorArrayReadV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = I(\"index\", r, t8, e);\n return [e.getTensorArray(o.id).read(n)];\n }\n case \"TensorArrayGatherV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = I(\"indices\", r, t8, e), s = I(\"dtype\", r, t8, e);\n return [e.getTensorArray(o.id).gather(n, s)];\n }\n case \"TensorArrayScatterV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = I(\"indices\", r, t8, e), s = I(\"tensor\", r, t8, e), a = e.getTensorArray(o.id);\n return a.scatter(n, s), [a.idTensor];\n }\n case \"TensorArrayConcatV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = e.getTensorArray(o.id), s = I(\"dtype\", r, t8, e);\n return [n.concat(s)];\n }\n case \"TensorArraySplitV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = I(\"tensor\", r, t8, e), s = I(\"lengths\", r, t8, e), a = e.getTensorArray(o.id);\n return a.split(s, n), [a.idTensor];\n }\n case \"TensorArraySizeV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = e.getTensorArray(o.id);\n return [ke(n.size(), \"int32\")];\n }\n case \"TensorArrayCloseV3\": {\n let o = I(\"tensorArrayId\", r, t8, e), n = e.getTensorArray(o.id);\n return n.clearAndClose(), [n.idTensor];\n }\n case \"TensorListSetItem\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"index\", r, t8, e), s = I(\"tensor\", r, t8, e), a = e.getTensorList(o.id);\n return a.setItem(n, s), [a.idTensor];\n }\n case \"TensorListGetItem\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"index\", r, t8, e), s = I(\"elementShape\", r, t8, e), a = I(\"elementDType\", r, t8, e);\n return [e.getTensorList(o.id).getItem(n, s, a)];\n }\n case \"TensorListScatterV2\":\n case \"TensorListScatter\": {\n let o = I(\"indices\", r, t8, e), n = I(\"tensor\", r, t8, e), s = I(\"elementShape\", r, t8, e), a = I(\"numElements\", r, t8, e), i = kT(n, o, s, a);\n return e.addTensorList(i), [i.idTensor];\n }\n case \"TensorListReserve\":\n case \"EmptyTensorList\": {\n let o = I(\"elementShape\", r, t8, e), n = I(\"elementDType\", r, t8, e), s;\n r.op === \"TensorListReserve\" ? s = \"numElements\" : s = \"maxNumElements\";\n let a = I(s, r, t8, e), i = r.op === \"TensorListReserve\" ? -1 : a, p = vT(o, n, a, i);\n return e.addTensorList(p), [p.idTensor];\n }\n case \"TensorListGather\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"indices\", r, t8, e), s = I(\"elementShape\", r, t8, e), a = I(\"elementDType\", r, t8, e);\n return [e.getTensorList(o.id).gather(n, a, s)];\n }\n case \"TensorListStack\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"elementShape\", r, t8, e), s = I(\"elementDType\", r, t8, e), a = I(\"numElements\", r, t8, e);\n return [e.getTensorList(o.id).stack(n, s, a)];\n }\n case \"TensorListFromTensor\": {\n let o = I(\"tensor\", r, t8, e), n = I(\"elementShape\", r, t8, e), s = I(\"elementDType\", r, t8, e), a = IT(o, n, s);\n return e.addTensorList(a), [a.idTensor];\n }\n case \"TensorListConcat\":\n case \"TensorListConcatV2\": {\n let o = I(\"tensorListId\", r, t8, e), n = e.getTensorList(o.id), s = I(\"dtype\", r, t8, e), a = I(\"elementShape\", r, t8, e);\n return [n.concat(s, a)];\n }\n case \"TensorListPushBack\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"tensor\", r, t8, e), s = e.getTensorList(o.id);\n return s.pushBack(n), [s.idTensor];\n }\n case \"TensorListPopBack\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"elementShape\", r, t8, e), s = I(\"elementDType\", r, t8, e);\n return [e.getTensorList(o.id).popBack(n, s)];\n }\n case \"TensorListSplit\": {\n let o = I(\"tensor\", r, t8, e), n = I(\"elementShape\", r, t8, e), s = I(\"lengths\", r, t8, e), a = NT(o, s, n);\n return e.addTensorList(a), [a.idTensor];\n }\n case \"TensorListLength\": {\n let o = I(\"tensorListId\", r, t8, e), n = e.getTensorList(o.id);\n return [ke(n.size(), \"int32\")];\n }\n case \"TensorListResize\": {\n let o = I(\"tensorListId\", r, t8, e), n = I(\"size\", r, t8, e), a = e.getTensorList(o.id).resize(n);\n return e.addTensorList(a), [a.idTensor];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nfunction _T(r, t8, e) {\n let [o, n] = I(\"fusedOps\", r, t8, e), s = o === \"biasadd\", a = !s, i = n === \"prelu\", p = o === \"fusedbatchnorm\", u = I(\"numArgs\", r, t8, e);\n if (s) {\n if (i && u !== 2)\n throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");\n if (!i && s && u !== 1)\n throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\");\n }\n if (p)\n throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");\n let c = I(\"strides\", r, t8, e), l = Ol(r, t8, e), m = I(\"dataFormat\", r, t8, e).toUpperCase(), d = I(\"dilations\", r, t8, e), [f, h] = I(\"args\", r, t8, e);\n a && (h = f, f = void 0);\n let g = I(\"leakyreluAlpha\", r, t8, e);\n return { stride: c, pad: l, dataFormat: m, dilations: d, biasArg: f, preluArg: h, activationFunc: n, leakyreluAlpha: g };\n}\nvar $T = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Conv1D\": {\n let n = I(\"stride\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"dataFormat\", r, t8, e).toUpperCase(), i = I(\"dilation\", r, t8, e);\n return [o.conv1d(I(\"x\", r, t8, e), I(\"filter\", r, t8, e), n, s, a, i)];\n }\n case \"Conv2D\": {\n let n = I(\"strides\", r, t8, e), s = Ol(r, t8, e), a = I(\"dataFormat\", r, t8, e).toUpperCase(), i = I(\"dilations\", r, t8, e);\n return [o.conv2d(I(\"x\", r, t8, e), I(\"filter\", r, t8, e), [n[1], n[2]], s, a, [i[1], i[2]])];\n }\n case \"_FusedConv2D\": {\n let { stride: n, pad: s, dataFormat: a, dilations: i, biasArg: p, preluArg: u, activationFunc: c, leakyreluAlpha: l } = _T(r, t8, e);\n return [o.fused.conv2d({ x: I(\"x\", r, t8, e), filter: I(\"filter\", r, t8, e), strides: [n[1], n[2]], pad: s, dataFormat: a, dilations: [i[1], i[2]], bias: p, activation: c, preluActivationWeights: u, leakyreluAlpha: l })];\n }\n case \"FusedDepthwiseConv2dNative\": {\n let { stride: n, pad: s, dataFormat: a, dilations: i, biasArg: p, preluArg: u, activationFunc: c, leakyreluAlpha: l } = _T(r, t8, e);\n return [o.fused.depthwiseConv2d({ x: I(\"x\", r, t8, e), filter: I(\"filter\", r, t8, e), strides: [n[1], n[2]], pad: s, dataFormat: a, dilations: [i[1], i[2]], bias: p, activation: c, preluActivationWeights: u, leakyreluAlpha: l })];\n }\n case \"Conv2DBackpropInput\":\n case \"Conv2dTranspose\": {\n let n = I(\"outputShape\", r, t8, e), s = I(\"strides\", r, t8, e), a = Ol(r, t8, e);\n return [o.conv2dTranspose(I(\"x\", r, t8, e), I(\"filter\", r, t8, e), n, [s[1], s[2]], a)];\n }\n case \"DepthwiseConv2dNative\":\n case \"DepthwiseConv2d\": {\n let n = I(\"strides\", r, t8, e), s = Ol(r, t8, e), a = I(\"dilations\", r, t8, e), i = I(\"dataFormat\", r, t8, e).toUpperCase();\n return [o.depthwiseConv2d(I(\"input\", r, t8, e), I(\"filter\", r, t8, e), [n[1], n[2]], s, i, [a[1], a[2]])];\n }\n case \"Conv3D\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"dataFormat\", r, t8, e).toUpperCase(), i = I(\"dilations\", r, t8, e);\n return [o.conv3d(I(\"x\", r, t8, e), I(\"filter\", r, t8, e), [n[1], n[2], n[3]], s, a, [i[1], i[2], i[3]])];\n }\n case \"AvgPool\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"kernelSize\", r, t8, e);\n return [o.avgPool(I(\"x\", r, t8, e), [a[1], a[2]], [n[1], n[2]], s)];\n }\n case \"MaxPool\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"kernelSize\", r, t8, e);\n return [o.maxPool(I(\"x\", r, t8, e), [a[1], a[2]], [n[1], n[2]], s)];\n }\n case \"MaxPoolWithArgmax\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"kernelSize\", r, t8, e), i = I(\"includeBatchInIndex\", r, t8, e), { result: p, indexes: u } = o.maxPoolWithArgmax(I(\"x\", r, t8, e), [a[1], a[2]], [n[1], n[2]], s, i);\n return [p, u];\n }\n case \"AvgPool3D\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"kernelSize\", r, t8, e);\n return [o.avgPool3d(I(\"x\", r, t8, e), [a[1], a[2], a[3]], [n[1], n[2], n[3]], s)];\n }\n case \"MaxPool3D\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"kernelSize\", r, t8, e);\n return [o.maxPool3d(I(\"x\", r, t8, e), [a[1], a[2], a[3]], [n[1], n[2], n[3]], s)];\n }\n case \"Dilation2D\": {\n let n = I(\"strides\", r, t8, e), s = I(\"pad\", r, t8, e), a = I(\"dilations\", r, t8, e), i = n[1], p = n[2], u = a[1], c = a[2];\n return [o.dilation2d(I(\"x\", r, t8, e), I(\"filter\", r, t8, e), [i, p], s, [u, c], \"NHWC\")];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar ET = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Fill\": {\n let n = I(\"shape\", r, t8, e), s = I(\"dtype\", r, t8, e), a = I(\"value\", r, t8, e);\n return [o.fill(n, a, s)];\n }\n case \"LinSpace\": {\n let n = I(\"start\", r, t8, e), s = I(\"stop\", r, t8, e), a = I(\"num\", r, t8, e);\n return [o.linspace(n, s, a)];\n }\n case \"Multinomial\": {\n let n = I(\"logits\", r, t8, e), s = I(\"numSamples\", r, t8, e), a = I(\"seed\", r, t8, e);\n return [o.multinomial(n, s, a)];\n }\n case \"OneHot\": {\n let n = I(\"indices\", r, t8, e), s = I(\"depth\", r, t8, e), a = I(\"onValue\", r, t8, e), i = I(\"offValue\", r, t8, e), p = I(\"dtype\", r, t8, e);\n return [o.oneHot(n, s, a, i, p)];\n }\n case \"Ones\":\n return [o.ones(I(\"shape\", r, t8, e), I(\"dtype\", r, t8, e))];\n case \"OnesLike\":\n return [o.onesLike(I(\"x\", r, t8, e))];\n case \"RandomStandardNormal\":\n return [o.randomStandardNormal(I(\"shape\", r, t8, e), I(\"dtype\", r, t8, e), I(\"seed\", r, t8, e))];\n case \"RandomUniform\":\n return [o.randomUniform(I(\"shape\", r, t8, e), I(\"minval\", r, t8, e), I(\"maxval\", r, t8, e), I(\"dtype\", r, t8, e))];\n case \"RandomUniformInt\":\n return [o.randomUniformInt(I(\"shape\", r, t8, e), I(\"minval\", r, t8, e), I(\"maxval\", r, t8, e), I(\"seed\", r, t8, e))];\n case \"Range\": {\n let n = I(\"start\", r, t8, e), s = I(\"stop\", r, t8, e), a = I(\"step\", r, t8, e);\n return [o.range(n, s, a, I(\"dtype\", r, t8, e))];\n }\n case \"TruncatedNormal\": {\n let n = I(\"shape\", r, t8, e), s = I(\"mean\", r, t8, e), a = I(\"stdDev\", r, t8, e), i = I(\"seed\", r, t8, e);\n return [o.truncatedNormal(n, s, a, I(\"dtype\", r, t8, e), i)];\n }\n case \"Zeros\":\n return [o.zeros(I(\"shape\", r, t8, e), I(\"dtype\", r, t8, e))];\n case \"ZerosLike\":\n return [o.zerosLike(I(\"x\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nfunction PS(r, t8, e) {\n let o = I(\"boxes\", r, t8, e), n = I(\"scores\", r, t8, e), s = I(\"maxOutputSize\", r, t8, e), a = I(\"iouThreshold\", r, t8, e), i = I(\"scoreThreshold\", r, t8, e), p = I(\"softNmsSigma\", r, t8, e);\n return { boxes: o, scores: n, maxOutputSize: s, iouThreshold: a, scoreThreshold: i, softNmsSigma: p };\n}\nvar RT = async (r, t8, e, o, n = Je) => {\n switch (r.op) {\n case \"NonMaxSuppressionV5\": {\n let { boxes: s, scores: a, maxOutputSize: i, iouThreshold: p, scoreThreshold: u, softNmsSigma: c } = PS(r, t8, e), l = await n.image.nonMaxSuppressionWithScoreAsync(s, a, i, p, u, c);\n return [l.selectedIndices, l.selectedScores];\n }\n case \"NonMaxSuppressionV4\": {\n let { boxes: s, scores: a, maxOutputSize: i, iouThreshold: p, scoreThreshold: u } = PS(r, t8, e), c = I(\"padToMaxOutputSize\", r, t8, e), l = await n.image.nonMaxSuppressionPaddedAsync(s, a, i, p, u, c);\n return [l.selectedIndices, l.validOutputs];\n }\n case \"NonMaxSuppressionV3\":\n case \"NonMaxSuppressionV2\": {\n let { boxes: s, scores: a, maxOutputSize: i, iouThreshold: p, scoreThreshold: u } = PS(r, t8, e);\n return [await n.image.nonMaxSuppressionAsync(s, a, i, p, u)];\n }\n case \"Where\": {\n let s = n.cast(I(\"condition\", r, t8, e), \"bool\"), a = [await n.whereAsync(s)];\n return s.dispose(), a;\n }\n case \"ListDiff\":\n return n.setdiff1dAsync(I(\"x\", r, t8, e), I(\"y\", r, t8, e));\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar DT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"LowerBound\": {\n let n = I(\"sortedSequence\", r, t8, e), s = I(\"values\", r, t8, e);\n return [o.lowerBound(n, s)];\n }\n case \"TopKV2\": {\n let n = I(\"x\", r, t8, e), s = I(\"k\", r, t8, e), a = I(\"sorted\", r, t8, e), i = o.topk(n, s, a);\n return [i.values, i.indices];\n }\n case \"UpperBound\": {\n let n = I(\"sortedSequence\", r, t8, e), s = I(\"values\", r, t8, e);\n return [o.upperBound(n, s)];\n }\n case \"Unique\": {\n let n = I(\"x\", r, t8, e), s = o.unique(n);\n return [s.values, s.indices];\n }\n case \"UniqueV2\": {\n let n = I(\"x\", r, t8, e), s = I(\"axis\", r, t8, e), a = o.unique(n, s);\n return [a.values, a.indices];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar AT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Const\":\n return t8[r.name];\n case \"PlaceholderWithDefault\":\n let n = I(\"default\", r, t8, e);\n return [zt(r.name, t8, e) || n];\n case \"Placeholder\":\n return [zt(r.name, t8, e)];\n case \"Identity\":\n case \"StopGradient\":\n case \"FakeQuantWithMinMaxVars\": {\n let c = I(\"x\", r, t8, e);\n return [Bs(c)];\n }\n case \"IdentityN\":\n return I(\"x\", r, t8, e).map((c) => Bs(c));\n case \"Snapshot\":\n let s = I(\"x\", r, t8, e);\n return [Bs(s)];\n case \"Shape\":\n return [o.tensor1d(I(\"x\", r, t8, e).shape, \"int32\")];\n case \"ShapeN\":\n return I(\"x\", r, t8, e).map((c) => o.tensor1d(c.shape));\n case \"Size\":\n return [o.scalar(I(\"x\", r, t8, e).size, \"int32\")];\n case \"Rank\":\n return [o.scalar(I(\"x\", r, t8, e).rank, \"int32\")];\n case \"NoOp\":\n return [o.scalar(1)];\n case \"Print\":\n let a = I(\"x\", r, t8, e), i = I(\"data\", r, t8, e), p = I(\"message\", r, t8, e), u = I(\"summarize\", r, t8, e);\n console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"), console.log(p);\n for (let c = 0; c < i.length; c++)\n console.log(Array.prototype.slice.call(i[c].dataSync()).slice(0, u));\n return [a];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar vf = class {\n get id() {\n return this.handle.id;\n }\n constructor(t8, e) {\n this.keyDType = t8, this.valueDType = e, this.handle = ke(0), this.tensorMap = /* @__PURE__ */ new Map(), Rr(this.handle);\n }\n clearAndClose() {\n this.tensorMap.forEach((t8) => t8.dispose()), this.tensorMap.clear(), this.handle.dispose();\n }\n size() {\n return this.tensorMap.size;\n }\n tensorSize() {\n return ke(this.size(), \"int32\");\n }\n async import(t8, e) {\n this.checkKeyAndValueTensor(t8, e);\n let o = await t8.data();\n return this.tensorMap.forEach((n) => n.dispose()), this.tensorMap.clear(), De(() => {\n let n = fo(e), s = o.length, a = n.length;\n y.assert(s === a, () => `The number of elements doesn't match, keys has ${s} elements, the values has ${a} elements.`);\n for (let i = 0; i < s; i++) {\n let p = o[i], u = n[i];\n Rr(u), this.tensorMap.set(p, u);\n }\n return this.handle;\n });\n }\n async find(t8, e) {\n this.checkKeyAndValueTensor(t8, e);\n let o = await t8.data();\n return De(() => {\n let n = [];\n for (let s = 0; s < o.length; s++) {\n let a = o[s], i = this.findWithDefault(a, e);\n n.push(i);\n }\n return kr(n);\n });\n }\n findWithDefault(t8, e) {\n let o = this.tensorMap.get(t8);\n return o != null ? o : e;\n }\n checkKeyAndValueTensor(t8, e) {\n if (t8.dtype !== this.keyDType)\n throw new Error(`Expect key dtype ${this.keyDType}, but got ${t8.dtype}`);\n if (e.dtype !== this.valueDType)\n throw new Error(`Expect value dtype ${this.valueDType}, but got ${e.dtype}`);\n }\n};\nvar FT = async (r, t8, e, o) => {\n switch (r.op) {\n case \"HashTable\":\n case \"HashTableV2\": {\n let n = o.getHashTableHandleByName(r.name);\n if (n != null)\n return [n];\n {\n let s = I(\"keyDType\", r, t8, e), a = I(\"valueDType\", r, t8, e), i = new vf(s, a);\n return o.addHashTable(r.name, i), [i.handle];\n }\n }\n case \"InitializeTable\":\n case \"InitializeTableV2\":\n case \"LookupTableImport\":\n case \"LookupTableImportV2\": {\n let n = I(\"tableHandle\", r, t8, e, o), s = I(\"keys\", r, t8, e), a = I(\"values\", r, t8, e);\n return [await o.getHashTableById(n.id).import(s, a)];\n }\n case \"LookupTableFind\":\n case \"LookupTableFindV2\": {\n let n = I(\"tableHandle\", r, t8, e, o), s = I(\"keys\", r, t8, e), a = I(\"defaultValue\", r, t8, e);\n return [await o.getHashTableById(n.id).find(s, a)];\n }\n case \"LookupTableSize\":\n case \"LookupTableSizeV2\": {\n let n = I(\"tableHandle\", r, t8, e, o);\n return [o.getHashTableById(n.id).tensorSize()];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar PT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"ResizeBilinear\": {\n let n = I(\"images\", r, t8, e), s = I(\"size\", r, t8, e), a = I(\"alignCorners\", r, t8, e), i = I(\"halfPixelCenters\", r, t8, e);\n return [o.image.resizeBilinear(n, [s[0], s[1]], a, i)];\n }\n case \"ResizeNearestNeighbor\": {\n let n = I(\"images\", r, t8, e), s = I(\"size\", r, t8, e), a = I(\"alignCorners\", r, t8, e), i = I(\"halfPixelCenters\", r, t8, e);\n return [o.image.resizeNearestNeighbor(n, [s[0], s[1]], a, i)];\n }\n case \"CropAndResize\": {\n let n = I(\"image\", r, t8, e), s = I(\"boxes\", r, t8, e), a = I(\"boxInd\", r, t8, e), i = I(\"cropSize\", r, t8, e), p = I(\"method\", r, t8, e), u = I(\"extrapolationValue\", r, t8, e);\n return [o.image.cropAndResize(n, s, a, i, p, u)];\n }\n case \"ImageProjectiveTransformV3\": {\n let n = I(\"images\", r, t8, e), s = I(\"transforms\", r, t8, e), a = I(\"outputShape\", r, t8, e), i = I(\"fillValue\", r, t8, e), p = I(\"interpolation\", r, t8, e), u = I(\"fillMode\", r, t8, e);\n return [o.image.transform(n, s, p.toLowerCase(), u.toLowerCase(), i, a)];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar OT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Equal\":\n return [o.equal(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"NotEqual\":\n return [o.notEqual(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Greater\":\n return [o.greater(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"GreaterEqual\":\n return [o.greaterEqual(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Less\":\n return [o.less(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"LessEqual\":\n return [o.lessEqual(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"LogicalAnd\":\n return [o.logicalAnd(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"LogicalNot\":\n return [o.logicalNot(I(\"a\", r, t8, e))];\n case \"LogicalOr\":\n return [o.logicalOr(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"Select\":\n case \"SelectV2\":\n return [o.where(I(\"condition\", r, t8, e), I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n case \"BitwiseAnd\":\n return [o.bitwiseAnd(I(\"a\", r, t8, e), I(\"b\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar MT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"BatchMatMul\":\n case \"BatchMatMulV2\":\n case \"MatMul\":\n return [o.matMul(I(\"a\", r, t8, e), I(\"b\", r, t8, e), I(\"transposeA\", r, t8, e), I(\"transposeB\", r, t8, e))];\n case \"Einsum\":\n return [o.einsum(I(\"equation\", r, t8, e), ...I(\"tensors\", r, t8, e))];\n case \"Transpose\":\n return [o.transpose(I(\"x\", r, t8, e), I(\"perm\", r, t8, e))];\n case \"_FusedMatMul\":\n let [n, s] = I(\"fusedOps\", r, t8, e), a = n === \"biasadd\", i = s === \"prelu\", p = I(\"numArgs\", r, t8, e), u = I(\"leakyreluAlpha\", r, t8, e);\n if (a) {\n if (i && p !== 2)\n throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");\n if (!i && p !== 1)\n throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\");\n }\n let [c, l] = I(\"args\", r, t8, e);\n return [o.fused.matMul({ a: I(\"a\", r, t8, e), b: I(\"b\", r, t8, e), transposeA: I(\"transposeA\", r, t8, e), transposeB: I(\"transposeB\", r, t8, e), bias: c, activation: s, preluActivationWeights: l, leakyreluAlpha: u })];\n case \"MatrixBandPart\":\n return [o.linalg.bandPart(I(\"a\", r, t8, e), I(\"numLower\", r, t8, e), I(\"numUpper\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar LT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"EuclideanNorm\":\n return [o.euclideanNorm(I(\"x\", r, t8, e), I(\"axis\", r, t8, e), I(\"keepDims\", r, t8, e))];\n case \"FusedBatchNorm\":\n case \"FusedBatchNormV2\":\n return [o.batchNorm(I(\"x\", r, t8, e), I(\"mean\", r, t8, e), I(\"variance\", r, t8, e), I(\"offset\", r, t8, e), I(\"scale\", r, t8, e), I(\"epsilon\", r, t8, e))];\n case \"FusedBatchNormV3\":\n return [o.batchNorm(I(\"x\", r, t8, e), I(\"mean\", r, t8, e), I(\"variance\", r, t8, e), I(\"offset\", r, t8, e), I(\"scale\", r, t8, e), I(\"epsilon\", r, t8, e))];\n case \"LRN\":\n return [o.localResponseNormalization(I(\"x\", r, t8, e), I(\"radius\", r, t8, e), I(\"bias\", r, t8, e), I(\"alpha\", r, t8, e), I(\"beta\", r, t8, e))];\n case \"Softmax\":\n return [o.softmax(I(\"x\", r, t8, e))];\n case \"LogSoftmax\":\n return [o.logSoftmax(I(\"x\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar BT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"RaggedGather\": {\n let { outputNestedSplits: n, outputDenseValues: s } = o.raggedGather(I(\"paramsNestedSplits\", r, t8, e), I(\"paramsDenseValues\", r, t8, e), I(\"indices\", r, t8, e), I(\"outputRaggedRank\", r, t8, e));\n return n.concat(s);\n }\n case \"RaggedRange\": {\n let { rtNestedSplits: n, rtDenseValues: s } = o.raggedRange(I(\"starts\", r, t8, e), I(\"limits\", r, t8, e), I(\"splits\", r, t8, e));\n return [n, s];\n }\n case \"RaggedTensorToTensor\":\n return [o.raggedTensorToTensor(I(\"shape\", r, t8, e), I(\"values\", r, t8, e), I(\"defaultValue\", r, t8, e), I(\"rowPartitionTensors\", r, t8, e), I(\"rowPartitionTypes\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar zT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Max\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.max(I(\"x\", r, t8, e), i, p)];\n }\n case \"Mean\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.mean(I(\"x\", r, t8, e), i, p)];\n }\n case \"Min\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.min(I(\"x\", r, t8, e), i, p)];\n }\n case \"Sum\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.sum(I(\"x\", r, t8, e), i, p)];\n }\n case \"All\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.all(I(\"x\", r, t8, e), i, p)];\n }\n case \"Any\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.any(I(\"x\", r, t8, e), i, p)];\n }\n case \"ArgMax\": {\n let i = I(\"axis\", r, t8, e);\n return [o.argMax(I(\"x\", r, t8, e), i)];\n }\n case \"ArgMin\": {\n let i = I(\"axis\", r, t8, e);\n return [o.argMin(I(\"x\", r, t8, e), i)];\n }\n case \"Prod\": {\n let i = I(\"axis\", r, t8, e), p = I(\"keepDims\", r, t8, e);\n return [o.prod(I(\"x\", r, t8, e), i, p)];\n }\n case \"Cumprod\": {\n let i = I(\"axis\", r, t8, e), p = I(\"exclusive\", r, t8, e), u = I(\"reverse\", r, t8, e);\n return [o.cumprod(I(\"x\", r, t8, e), i, p, u)];\n }\n case \"Cumsum\": {\n let i = I(\"axis\", r, t8, e), p = I(\"exclusive\", r, t8, e), u = I(\"reverse\", r, t8, e);\n return [o.cumsum(I(\"x\", r, t8, e), i, p, u)];\n }\n case \"Bincount\":\n let n = I(\"x\", r, t8, e), s = I(\"weights\", r, t8, e), a = I(\"size\", r, t8, e);\n return [o.bincount(n, s, a)];\n case \"DenseBincount\": {\n let i = I(\"x\", r, t8, e), p = I(\"weights\", r, t8, e), u = I(\"size\", r, t8, e), c = I(\"binaryOutput\", r, t8, e);\n return [o.denseBincount(i, p, u, c)];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar VT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"ConcatV2\":\n case \"Concat\": {\n let n = I(\"n\", r, t8, e), s = I(\"axis\", r, t8, e), a = I(\"tensors\", r, t8, e);\n return a = a.slice(0, n), [o.concat(a, s)];\n }\n case \"Gather\": {\n let n = I(\"x\", r, t8, e), s = I(\"indices\", r, t8, e);\n return [o.gather(n, o.cast(s, \"int32\"), 0)];\n }\n case \"GatherV2\": {\n let n = I(\"axis\", r, t8, e), s = I(\"batchDims\", r, t8, e), a = I(\"x\", r, t8, e), i = I(\"indices\", r, t8, e);\n return [o.gather(a, o.cast(i, \"int32\"), n, s)];\n }\n case \"Reverse\": {\n let n = I(\"dims\", r, t8, e), s = [];\n for (let i = 0; i < n.length; i++)\n n[i] && s.push(i);\n let a = I(\"x\", r, t8, e);\n return [o.reverse(a, s)];\n }\n case \"ReverseV2\": {\n let n = I(\"axis\", r, t8, e), s = I(\"x\", r, t8, e);\n return [o.reverse(s, n)];\n }\n case \"Slice\": {\n let n = I(\"begin\", r, t8, e), s = I(\"size\", r, t8, e);\n return [o.slice(I(\"x\", r, t8, e), n, s)];\n }\n case \"StridedSlice\": {\n let n = I(\"begin\", r, t8, e), s = I(\"end\", r, t8, e), a = I(\"strides\", r, t8, e), i = I(\"beginMask\", r, t8, e), p = I(\"endMask\", r, t8, e), u = I(\"ellipsisMask\", r, t8, e), c = I(\"newAxisMask\", r, t8, e), l = I(\"shrinkAxisMask\", r, t8, e), m = I(\"x\", r, t8, e);\n return [o.stridedSlice(m, n, s, a, i, p, u, c, l)];\n }\n case \"Pack\":\n return De(() => {\n let n = I(\"axis\", r, t8, e), s = I(\"tensors\", r, t8, e), a = s[0].shape, i = o.squeeze(s[0]).shape, p = s.map((u) => {\n let c = y.arraysEqual(u.shape, a);\n if (!c && !y.arraysEqual(o.squeeze(u).shape, i))\n throw new Error(\"the input tensors shape does not match\");\n return c ? u : o.reshape(u, a);\n });\n return [o.stack(p, n)];\n });\n case \"Unpack\": {\n let n = I(\"axis\", r, t8, e), s = I(\"tensor\", r, t8, e);\n return o.unstack(s, n);\n }\n case \"Tile\": {\n let n = I(\"reps\", r, t8, e);\n return [o.tile(I(\"x\", r, t8, e), n)];\n }\n case \"Split\":\n case \"SplitV\": {\n let n = I(\"axis\", r, t8, e), s = I(\"numOrSizeSplits\", r, t8, e), a = I(\"x\", r, t8, e);\n return o.split(a, s, n);\n }\n case \"ScatterNd\": {\n let n = I(\"indices\", r, t8, e), s = I(\"values\", r, t8, e), a = I(\"shape\", r, t8, e);\n return [o.scatterND(n, s, a)];\n }\n case \"GatherNd\": {\n let n = I(\"x\", r, t8, e), s = I(\"indices\", r, t8, e);\n return [o.gatherND(n, s)];\n }\n case \"SparseToDense\": {\n let n = I(\"sparseIndices\", r, t8, e), s = I(\"outputShape\", r, t8, e), a = I(\"sparseValues\", r, t8, e), i = I(\"defaultValue\", r, t8, e);\n return [o.sparseToDense(n, a, s, a.dtype === i.dtype ? i : o.cast(i, a.dtype))];\n }\n case \"TensorScatterUpdate\": {\n let n = I(\"indices\", r, t8, e), s = I(\"values\", r, t8, e), a = I(\"tensor\", r, t8, e);\n return [o.tensorScatterUpdate(a, n, s)];\n }\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar WT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"SparseFillEmptyRows\": {\n let { outputIndices: n, outputValues: s, emptyRowIndicator: a, reverseIndexMap: i } = o.sparse.sparseFillEmptyRows(I(\"indices\", r, t8, e), I(\"values\", r, t8, e), I(\"denseShape\", r, t8, e), I(\"defaultValue\", r, t8, e));\n return [n, s, a, i];\n }\n case \"SparseReshape\": {\n let { outputIndices: n, outputShape: s } = o.sparse.sparseReshape(I(\"inputIndices\", r, t8, e), I(\"inputShape\", r, t8, e), I(\"newShape\", r, t8, e));\n return [n, s];\n }\n case \"SparseSegmentMean\":\n return [o.sparse.sparseSegmentMean(I(\"data\", r, t8, e), I(\"indices\", r, t8, e), I(\"segmentIds\", r, t8, e))];\n case \"SparseSegmentSum\":\n return [o.sparse.sparseSegmentSum(I(\"data\", r, t8, e), I(\"indices\", r, t8, e), I(\"segmentIds\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar UT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"FFT\":\n return [o.fft(I(\"x\", r, t8, e))];\n case \"IFFT\":\n return [o.ifft(I(\"x\", r, t8, e))];\n case \"RFFT\":\n return [o.rfft(I(\"x\", r, t8, e))];\n case \"IRFFT\":\n return [o.irfft(I(\"x\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar GT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"StaticRegexReplace\":\n return [o.string.staticRegexReplace(I(\"input\", r, t8, e), I(\"pattern\", r, t8, e), I(\"rewrite\", r, t8, e), I(\"replaceGlobal\", r, t8, e))];\n case \"StringNGrams\": {\n let { nGrams: n, nGramsSplits: s } = o.string.stringNGrams(I(\"data\", r, t8, e), I(\"dataSplits\", r, t8, e), I(\"separator\", r, t8, e), I(\"nGramWidths\", r, t8, e), I(\"leftPad\", r, t8, e), I(\"rightPad\", r, t8, e), I(\"padWidth\", r, t8, e), I(\"preserveShortSequences\", r, t8, e));\n return [n, s];\n }\n case \"StringSplit\": {\n let { indices: n, values: s, shape: a } = o.string.stringSplit(I(\"input\", r, t8, e), I(\"delimiter\", r, t8, e), I(\"skipEmpty\", r, t8, e));\n return [n, s, a];\n }\n case \"StringToHashBucketFast\":\n return [o.string.stringToHashBucketFast(I(\"input\", r, t8, e), I(\"numBuckets\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nvar HT = (r, t8, e, o = Je) => {\n switch (r.op) {\n case \"Cast\":\n return [o.cast(I(\"x\", r, t8, e), I(\"dtype\", r, t8, e))];\n case \"ExpandDims\": {\n let n = I(\"axis\", r, t8, e);\n return [o.expandDims(I(\"x\", r, t8, e), n)];\n }\n case \"Squeeze\": {\n let n = I(\"axis\", r, t8, e);\n return [o.squeeze(I(\"x\", r, t8, e), n)];\n }\n case \"Reshape\":\n return [o.reshape(I(\"x\", r, t8, e), I(\"shape\", r, t8, e))];\n case \"EnsureShape\":\n return [o.ensureShape(I(\"x\", r, t8, e), I(\"shape\", r, t8, e))];\n case \"MirrorPad\":\n return [o.mirrorPad(I(\"x\", r, t8, e), I(\"padding\", r, t8, e), I(\"mode\", r, t8, e))];\n case \"PadV2\":\n case \"Pad\":\n return [o.pad(I(\"x\", r, t8, e), I(\"padding\", r, t8, e), I(\"constantValue\", r, t8, e))];\n case \"SpaceToBatchND\": {\n let n = I(\"blockShape\", r, t8, e), s = I(\"paddings\", r, t8, e);\n return [o.spaceToBatchND(I(\"x\", r, t8, e), n, s)];\n }\n case \"BatchToSpaceND\": {\n let n = I(\"blockShape\", r, t8, e), s = I(\"crops\", r, t8, e);\n return [o.batchToSpaceND(I(\"x\", r, t8, e), n, s)];\n }\n case \"DepthToSpace\": {\n let n = I(\"blockSize\", r, t8, e), s = I(\"dataFormat\", r, t8, e).toUpperCase();\n return [o.depthToSpace(I(\"x\", r, t8, e), n, s)];\n }\n case \"BroadcastTo\":\n return [o.broadcastTo(I(\"x\", r, t8, e), I(\"shape\", r, t8, e))];\n case \"BroadcastArgs\":\n return [o.broadcastArgs(I(\"s0\", r, t8, e), I(\"s1\", r, t8, e))];\n default:\n throw TypeError(`Node type ${r.op} is not implemented`);\n }\n};\nfunction OS(r, t8, e, o, n = De) {\n let s = ((a, i, p) => {\n switch (a.category) {\n case \"arithmetic\":\n return n(() => CT(a, i, p));\n case \"basic_math\":\n return n(() => wT(a, i, p));\n case \"control\":\n return TT(a, i, p);\n case \"convolution\":\n return n(() => $T(a, i, p));\n case \"creation\":\n return n(() => ET(a, i, p));\n case \"dynamic\":\n return RT(a, i, p);\n case \"evaluation\":\n return n(() => DT(a, i, p));\n case \"image\":\n return n(() => PT(a, i, p));\n case \"graph\":\n return n(() => AT(a, i, p));\n case \"logical\":\n return n(() => OT(a, i, p));\n case \"matrices\":\n return n(() => MT(a, i, p));\n case \"normalization\":\n return n(() => LT(a, i, p));\n case \"ragged\":\n return n(() => BT(a, i, p));\n case \"reduction\":\n return n(() => zT(a, i, p));\n case \"slice_join\":\n return n(() => VT(a, i, p));\n case \"sparse\":\n return n(() => WT(a, i, p));\n case \"spectral\":\n return n(() => UT(a, i, p));\n case \"string\":\n return n(() => GT(a, i, p));\n case \"transformation\":\n return n(() => HT(a, i, p));\n case \"hash_table\":\n return FT(a, i, p, o);\n case \"custom\":\n let u = pf(a.op);\n if (u && u.customExecutor)\n return u.customExecutor(new wf(a, i, p));\n throw TypeError(`Custom op ${a.op} is not registered.`);\n default:\n throw TypeError(`Unknown op '${a.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`);\n }\n })(r, t8, e);\n return y.isPromise(s) ? s.then((a) => [].concat(a)) : [].concat(s);\n}\nvar Ll = class {\n constructor(t8 = {}, e = {}, o = {}, n = {}, s) {\n this.weightMap = t8, this.tensorArrayMap = e, this.tensorListMap = o, this.functionMap = n, this.parseNodeNameCache = s, this.rootContext = { id: 0, frameName: \"\", iterationId: 0 }, this.contexts = [this.rootContext], this.lastId = 0, this.generateCurrentContextIds();\n }\n newFrame(t8, e) {\n return { id: t8, frameName: e, iterationId: 0 };\n }\n set currentContext(t8) {\n this.contexts !== t8 && (this.contexts = t8, this.generateCurrentContextIds());\n }\n get currentContext() {\n return this.contexts;\n }\n get currentContextId() {\n return this._currentContextIds[0];\n }\n get currentContextIds() {\n return this._currentContextIds;\n }\n generateCurrentContextIds() {\n let t8 = [];\n for (let e = 0; e < this.contexts.length - 1; e++) {\n let o = this.contexts.slice(0, this.contexts.length - e);\n t8.push(this.contextIdforContexts(o));\n }\n t8.push(\"\"), this._currentContextIds = t8;\n }\n contextIdforContexts(t8) {\n return t8 ? t8.map((e) => e.id === 0 && e.iterationId === 0 ? \"\" : `${e.frameName}-${e.iterationId}`).join(\"/\") : \"\";\n }\n enterFrame(t8) {\n this.contexts && (this.lastId++, this.contexts = this.contexts.slice(), this.contexts.push(this.newFrame(this.lastId, t8)), this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)));\n }\n exitFrame() {\n if (this.contexts && this.contexts.length > 1)\n this.contexts = this.contexts.slice(), this.contexts.splice(-1), this.currentContextIds.shift();\n else\n throw new Error(\"Cannot exit frame, the context is empty\");\n }\n nextIteration() {\n if (this.contexts && this.contexts.length > 0) {\n this.contexts = this.contexts.slice(), this.lastId++;\n let t8 = Object.assign({}, this.contexts[this.contexts.length - 1]);\n t8.iterationId += 1, t8.id = this.lastId, this.contexts.splice(-1, 1, t8), this._currentContextIds.splice(0, 1, this.contextIdforContexts(this.contexts));\n } else\n throw new Error(\"Cannot increase frame iteration, the context is empty\");\n }\n getWeight(t8) {\n return this.weightMap[t8];\n }\n addTensorArray(t8) {\n this.tensorArrayMap[t8.id] = t8;\n }\n getTensorArray(t8) {\n return this.tensorArrayMap[t8];\n }\n addTensorList(t8) {\n this.tensorListMap[t8.id] = t8;\n }\n getTensorList(t8) {\n return this.tensorListMap[t8];\n }\n dispose(t8) {\n for (let e in this.tensorArrayMap)\n this.tensorArrayMap[e].clearAndClose(t8);\n for (let e in this.tensorListMap)\n this.tensorListMap[e].clearAndClose(t8);\n }\n};\nfunction MS(r, t8, e, o) {\n let n = /* @__PURE__ */ new Set(), s = [], a = null, i = null, p = /* @__PURE__ */ new Set(), u = new Set(Object.keys(r).map((m) => Tr(m)[0]));\n o = o || [];\n let c = new Set(o.map((m) => Tr(m.name)[0])), l = [...t8];\n for (; l.length > 0; ) {\n let m = l.pop();\n if ((gu(m) || k8(m) || N8(m)) && a == null && (a = m, i = a.children.map((d) => d.name).filter((d) => n.has(d))), n.add(m.name), e[m.name] == null && !u.has(m.name) && !c.has(m.name)) {\n if (m.inputs.length === 0) {\n s.push(m.name);\n continue;\n }\n m.inputs.forEach((d) => {\n p.has(d.name) || (p.add(d.name), l.push(d));\n });\n }\n }\n return { inputs: r, outputs: t8, usedNodes: n, missingInputs: s, dynamicNode: a, syncInputs: i };\n}\nfunction KT(r, t8) {\n let { usedNodes: e, inputs: o } = t8, n = Object.keys(o).map((g) => Tr(g)[0]).map((g) => r.nodes[g]), s = r.initNodes || [], a = (g) => e.has(typeof g == \"string\" ? g : g.name);\n function i(g) {\n return [...new Map(g.map((x) => [x.name, x])).values()];\n }\n let p = i([...n, ...r.weights, ...s]).filter(a), u = i([...p, ...Object.values(r.nodes)]).filter(a), c = new Map(u.map((g) => [g.name, g])), l = {};\n for (let g of u) {\n l[g.name] = l[g.name] || 0;\n for (let x of g.children)\n a(x) || (l[x.name] = Number.POSITIVE_INFINITY), l[x.name] = (l[x.name] || 0) + 1;\n }\n let m = Object.entries(l).filter(([, g]) => g === 0).map(([g]) => g), d = [...m];\n for (; m.length > 0; ) {\n let g = m.pop(), x = c.get(g);\n for (let b of x.children.filter(a))\n --l[b.name] === 0 && (d.push(b.name), m.push(b.name));\n }\n let f = d.map((g) => c.get(g)), h = C8(f, p);\n return w8(h, p), h;\n}\nfunction C8(r, t8) {\n let e = new Map(r.map((a) => [a.name, a])), o = t8.map((a) => a.name), n = new Set(o);\n for (; o.length > 0; ) {\n let a = o.pop(), i = e.get(a);\n for (let p of i.children)\n !e.has(p.name) || n.has(p.name) || (n.add(p.name), o.push(p.name));\n }\n return r.filter((a) => n.has(a.name));\n}\nvar Cc = class extends Error {\n constructor(t8) {\n super(`NodesExecutionOrderError: ${t8}`);\n }\n};\nfunction w8(r, t8) {\n let e = new Map(r.map((i, p) => [i.name, p])), o = new Set(t8.map((i) => i.name)), n = (i) => o.has(typeof i == \"string\" ? i : i.name), s = new Set(r.map((i) => i.name)), a = (i) => s.has(typeof i == \"string\" ? i : i.name);\n for (let i of r) {\n for (let p of i.children.filter(a)) {\n if (!e.has(p.name))\n throw new Cc(`Child ${p.name} of node ${i.name} is unreachable.`);\n if (e.get(i.name) > e.get(p.name))\n throw new Cc(`Node ${i.name} is scheduled to run after its child ${p.name}.`);\n }\n if (!n(i))\n for (let p of i.inputs) {\n if (!e.has(p.name))\n throw new Cc(`Input ${p.name} of node ${i.name} is unreachable.`);\n if (e.get(p.name) > e.get(i.name))\n throw new Cc(`Node ${i.name} is scheduled to run before its input ${p.name}.`);\n }\n }\n}\nfunction qT(r) {\n let t8 = new Map(r.map((i, p) => [i.name, p])), e = Number.MAX_SAFE_INTEGER, o = r.map((i, p) => gu(i) ? e : p), n = (i) => {\n let p = o[t8.get(i.name)];\n return p == null ? -1 : p;\n }, s = r.map((i, p) => i.children.map(n).reduce((u, c) => Math.max(u, c), o[p])), a = /* @__PURE__ */ new Map();\n for (let i = 0; i < r.length; ++i) {\n let p = s[i];\n if (p === e)\n continue;\n let u = r[i], c = r[p];\n a.has(c.name) || a.set(c.name, []), a.get(c.name).push(u);\n }\n return a;\n}\nvar S8 = /* @__PURE__ */ new Set([\"Switch\", \"Merge\", \"Enter\", \"Exit\", \"NextIteration\", \"StatelessIf\", \"StatelessWhile\", \"if\", \"While\"]);\nvar I8 = /* @__PURE__ */ new Set([\"NonMaxSuppressionV2\", \"NonMaxSuppressionV3\", \"NonMaxSuppressionV5\", \"Where\"]);\nvar v8 = /* @__PURE__ */ new Set([\"HashTable\", \"HashTableV2\", \"LookupTableImport\", \"LookupTableImportV2\", \"LookupTableFind\", \"LookupTableFindV2\", \"LookupTableSize\", \"LookupTableSizeV2\"]);\nfunction gu(r) {\n return S8.has(r.op);\n}\nfunction k8(r) {\n return I8.has(r.op);\n}\nfunction N8(r) {\n return v8.has(r.op);\n}\nvar lp = class {\n get weightIds() {\n return this.parent ? this.parent.weightIds : this._weightIds;\n }\n get functionExecutorMap() {\n return this.parent ? this.parent.functionExecutorMap : this._functionExecutorMap;\n }\n get weightMap() {\n return this.parent ? this.parent.weightMap : this._weightMap;\n }\n set weightMap(t8) {\n let e = Object.keys(t8).map((o) => t8[o].map((n) => n.id));\n this._weightIds = [].concat(...e), this._weightMap = t8;\n }\n set resourceManager(t8) {\n this._resourceManager = t8;\n }\n get inputs() {\n return this._inputs.map((t8) => ({ name: t8.name, shape: t8.attrParams.shape ? t8.attrParams.shape.value : void 0, dtype: t8.attrParams.dtype ? t8.attrParams.dtype.value : void 0 }));\n }\n get outputs() {\n return this._outputs.map((t8) => ({ name: t8.name, shape: t8.attrParams.shape ? t8.attrParams.shape.value : void 0, dtype: t8.attrParams.dtype ? t8.attrParams.dtype.value : void 0 }));\n }\n get inputNodes() {\n return this._inputs.map((t8) => t8.signatureKey || t8.name);\n }\n get outputNodes() {\n return this._outputs.map((t8) => {\n let e = t8.signatureKey || t8.name;\n return t8.defaultOutput ? `${e}:${t8.defaultOutput}` : e;\n });\n }\n get functions() {\n return Object.keys(this._functions).reduce((t8, e) => (t8[e] = this._functions[e].signature, t8), {});\n }\n constructor(t8, e) {\n this.graph = t8, this.parent = e, this.compiledMap = /* @__PURE__ */ new Map(), this.parseNodeNameCache = /* @__PURE__ */ new Map(), this._weightMap = {}, this.SEPARATOR = \",\", this._functions = {}, this._functionExecutorMap = {}, this.keepIntermediateTensors = false, this._outputs = t8.outputs, this._inputs = t8.inputs, this._initNodes = t8.initNodes, this._signature = t8.signature, this._functions = t8.functions, t8.functions != null && Object.keys(t8.functions).forEach((o) => {\n this._functionExecutorMap[o] = new lp(t8.functions[o], this);\n });\n }\n getCompilationKey(t8, e) {\n let o = t8.map((s) => s.name).sort(), n = e.map((s) => s.name).sort();\n return o.join(this.SEPARATOR) + \"--\" + n.join(this.SEPARATOR);\n }\n compile(t8, e) {\n let o = MS(t8, e, this.weightMap, this._initNodes), { missingInputs: n, dynamicNode: s, syncInputs: a } = o;\n if (s != null)\n throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${a}]`);\n if (n.length > 0) {\n let u = e.map((l) => l.name), c = Object.keys(t8);\n throw new Error(`Cannot compute the outputs [${u}] from the provided inputs [${c}]. Missing the following inputs: [${n}]`);\n }\n let i = KT(this.graph, o), p = qT(i);\n return { orderedNodes: i, nodeLiveUntilMap: p };\n }\n cloneAndKeepTensor(t8) {\n if (t8 == null)\n return null;\n let e = t8.clone();\n return Rr(e), e;\n }\n cloneTensorList(t8) {\n return t8 ? t8.map((o) => this.cloneAndKeepTensor(o)) : null;\n }\n cloneTensorMap(t8) {\n return Object.fromEntries(Object.entries(t8).map(([e, o]) => [e, this.cloneTensorList(o)]));\n }\n execute(t8, e) {\n this.disposeIntermediateTensors(), t8 = this.mapInputs(t8);\n let o = Object.keys(t8).sort();\n this.checkInputs(t8), this.checkInputShapeAndType(t8), e = this.mapOutputs(e), this.checkOutputs(e);\n let n = o.map((m) => this.graph.nodes[Tr(m)[0]]), s = e.map((m) => Tr(m)[0]), a = new Set(s), i = s.map((m) => this.graph.nodes[m]);\n i.length === 0 && (i = this._outputs);\n let p = this.getCompilationKey(n, i), u = this.compiledMap.get(p);\n u == null && (u = this.compile(t8, i), this.compiledMap.set(p, u));\n try {\n this.keepIntermediateTensors = A().getBool(\"KEEP_INTERMEDIATE_TENSORS\");\n } catch (m) {\n this.keepIntermediateTensors = false, console.warn(m.message);\n }\n let c = {}, l = {};\n return De(() => {\n let m = new Ll(this.weightMap, c, l, this.functionExecutorMap, this.parseNodeNameCache), d = Object.assign({}, this.weightMap);\n this.keepIntermediateTensors && (this.clonedTensorsMap = this.cloneTensorMap(this.weightMap)), Object.keys(t8).forEach((x) => {\n let [b, C] = Tr(x, m), S = [];\n S[C] = t8[x], d[b] = S, this.keepIntermediateTensors && (this.clonedTensorsMap[b] = this.cloneTensorList(S));\n });\n let f = this.getFrozenTensorIds(d), { orderedNodes: h, nodeLiveUntilMap: g } = u;\n for (let x of h) {\n if (d[x.name])\n continue;\n let b = OS(x, d, m, this._resourceManager);\n if (y.isPromise(b))\n throw new Error(`The execution of the op '${x.op}' returned a promise. Please use model.executeAsync() instead.`);\n d[x.name] = b, this.keepIntermediateTensors && (this.clonedTensorsMap[x.name] = this.cloneTensorList(b)), this.checkTensorForDisposalWithNodeLiveUntilInfo(x, d, m, f, a, g.get(x.name));\n }\n return this.parent == null && m.dispose(f), e.map((x) => zt(x, d, m));\n });\n }\n getFrozenTensorIds(t8) {\n let e = [].concat.apply([], Object.keys(t8).map((o) => t8[o]).map((o) => o.map((n) => n.id)));\n return new Set(e);\n }\n checkTensorForDisposal(t8, e, o, n, s, a, i) {\n if (!(gu(e) || a.has(t8))) {\n for (let p of o[t8])\n p != null && (i[p.id] = (i[p.id] || 0) + e.children.length);\n for (let p of e.inputs) {\n if (gu(p))\n continue;\n let u = fS(p.name, o, n);\n if (u != null)\n for (let c of u) {\n if (!c || c.kept || s.has(c.id))\n continue;\n let l = i[c.id];\n l === 1 ? (c.dispose(), delete i[c.id]) : l != null && i[c.id]--;\n }\n }\n }\n }\n checkTensorForDisposalWithNodeLiveUntilInfo(t8, e, o, n, s, a) {\n function i(p) {\n return gu(p) || s.has(p.name);\n }\n if (!(gu(t8) || a == null))\n for (let p of a) {\n if (i(p))\n continue;\n let u = fS(p.name, e, o);\n for (let c of u)\n !c || c.kept || n.has(c.id) || c.dispose();\n }\n }\n async executeAsync(t8, e) {\n return this._executeAsync(t8, e);\n }\n disposeIntermediateTensors() {\n this.clonedTensorsMap && (Object.values(this.clonedTensorsMap).forEach((t8) => {\n for (let e of t8)\n e && !e.isDisposed && e.dispose();\n }), this.clonedTensorsMap = null);\n }\n getIntermediateTensors() {\n return this.clonedTensorsMap;\n }\n async _executeAsync(t8, e, o = false, n = {}, s = {}) {\n this.disposeIntermediateTensors(), o || (t8 = this.mapInputs(t8), this.checkInputs(t8), this.checkInputShapeAndType(t8), e = this.mapOutputs(e), this.checkOutputs(e));\n try {\n this.keepIntermediateTensors = A().getBool(\"KEEP_INTERMEDIATE_TENSORS\");\n } catch (m) {\n this.keepIntermediateTensors = false, console.warn(m.message);\n }\n let a = new Ll(this.weightMap, n, s, this.functionExecutorMap, this.parseNodeNameCache);\n this.keepIntermediateTensors && (this.clonedTensorsMap = this.cloneTensorMap(this.weightMap));\n let i = await this.executeWithControlFlow(t8, a, e, o), p = e.map((m) => zt(m, i, a)), u = p.map((m) => m.id), c = Object.keys(t8).map((m) => t8[m].id), l = /* @__PURE__ */ new Set([...u, ...c, ...this.weightIds]);\n return Object.values(i).forEach((m) => {\n m.forEach((d) => {\n d && !d.isDisposed && !l.has(d.id) && d.dispose();\n });\n }), this.parent == null && a.dispose(l), p;\n }\n async executeFunctionAsync(t8, e, o) {\n let n = t8.reduce((s, a, i) => (s[this.inputs[i].name] = a, s), {});\n return this._executeAsync(n, this.outputNodes, true, e, o);\n }\n async executeWithControlFlow(t8, e, o, n) {\n let s = Object.keys(t8), a = s.map((S) => this.graph.nodes[Tr(S)[0]]), i = o.map((S) => Tr(S)[0]), p = new Set(i), u = i.map((S) => this.graph.nodes[S]);\n u.length === 0 && (u = this._outputs);\n let { usedNodes: c, missingInputs: l, dynamicNode: m, syncInputs: d } = MS(t8, u, this.weightMap, this._initNodes), f = [...a, ...this.graph.weights, ...this._initNodes || []].map((S) => ({ node: S, contexts: e.currentContext })), h = Object.assign({}, this.weightMap);\n Object.keys(t8).forEach((S) => {\n let [k, _] = Tr(S), E = [];\n E[_] = t8[S], h[k] = E;\n });\n let g = {}, x = this.getFrozenTensorIds(h), b = {};\n for (; f.length > 0; ) {\n let S = this.processStack(a, f, e, h, b, x, p, g, c);\n await Promise.all(S);\n }\n m == null && !n && console.warn(\"This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.\");\n let C = u.filter((S) => !gu(S) && !zt(S.name, h, e)).map((S) => S.name);\n if (C.length > 0) {\n let S = \"\";\n throw m != null && (S = `Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`), new Error(`Cannot compute the outputs [${C}] from the provided inputs [${s}]. Consider providing the following inputs: [${l}]. ${S}`);\n }\n return h;\n }\n processStack(t8, e, o, n, s, a, i, p, u) {\n let c = [];\n for (; e.length > 0; ) {\n let l = e.pop();\n o.currentContext = l.contexts;\n let m = \"\";\n if (l.node.op === \"Enter\" && I(\"isConstant\", l.node, n, o) && ([m] = Ls(l.node.name, o)), n[l.node.name] == null) {\n let d = OS(l.node, n, o, this._resourceManager);\n m || ([m] = Ls(l.node.name, o));\n let f = o.currentContext;\n y.isPromise(d) ? c.push(d.then((h) => (n[m] = h, this.keepIntermediateTensors && (this.clonedTensorsMap[m] = this.cloneTensorList(h)), o.currentContext = f, this.checkTensorForDisposal(m, l.node, n, o, a, i, p), this.processChildNodes(l.node, e, o, n, s, u), h))) : (n[m] = d, this.keepIntermediateTensors && (this.clonedTensorsMap[m] = this.cloneTensorList(d)), this.checkTensorForDisposal(m, l.node, n, o, a, i, p), this.processChildNodes(l.node, e, o, n, s, u));\n } else\n this.processChildNodes(l.node, e, o, n, s, u);\n }\n return c;\n }\n processChildNodes(t8, e, o, n, s, a) {\n t8.children.forEach((i) => {\n let [p] = Ls(i.name, o);\n s[p] || !a.has(i.name) || (i.op === \"Merge\" ? i.inputNames.some((u) => !!zt(u, n, o)) && (s[p] = true, e.push({ contexts: o.currentContext, node: i })) : i.inputNames.every((u) => !!zt(u, n, o)) && (s[p] = true, e.push({ contexts: o.currentContext, node: i })));\n });\n }\n dispose() {\n Object.keys(this.weightMap).forEach((t8) => this.weightMap[t8].forEach((e) => e.dispose()));\n }\n checkInputShapeAndType(t8) {\n Object.keys(t8).forEach((e) => {\n let o = t8[e], [n] = Tr(e), s = this.graph.nodes[n];\n if (s.attrParams.shape && s.attrParams.shape.value) {\n let a = s.attrParams.shape.value, i = a.length === o.shape.length && o.shape.every((p, u) => a[u] === -1 || a[u] === p);\n y.assert(i, () => `The shape of dict['${s.name}'] provided in model.execute(dict) must be [${a}], but was [${o.shape}]`);\n }\n s.attrParams.dtype && s.attrParams.dtype.value && y.assert(o.dtype === s.attrParams.dtype.value, () => `The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${o.dtype}`);\n });\n }\n mapInputs(t8) {\n var e, o;\n let n = {};\n for (let s in t8) {\n let a = (o = (e = this._signature) === null || e === void 0 ? void 0 : e.inputs) === null || o === void 0 ? void 0 : o[s];\n a != null ? n[a.name] = t8[s] : n[s] = t8[s];\n }\n return n;\n }\n checkInputs(t8) {\n let e = Object.keys(t8).filter((o) => {\n let [n] = Tr(o);\n return this.graph.nodes[n] == null;\n });\n if (e.length > 0)\n throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`);\n }\n mapOutputs(t8) {\n return t8.map((e) => {\n var o, n;\n let s = (n = (o = this._signature) === null || o === void 0 ? void 0 : o.outputs) === null || n === void 0 ? void 0 : n[e];\n return s != null ? s.name : e;\n }, {});\n }\n checkOutputs(t8) {\n t8.forEach((e) => {\n let [o] = Tr(e);\n if (!this.graph.nodes[o])\n throw new Error(`The output '${e}' is not found in the graph`);\n });\n }\n};\nvar kf = class {\n constructor(t8 = {}, e = {}) {\n this.hashTableNameToHandle = t8, this.hashTableMap = e;\n }\n addHashTable(t8, e) {\n this.hashTableNameToHandle[t8] = e.handle, this.hashTableMap[e.id] = e;\n }\n getHashTableHandleByName(t8) {\n return this.hashTableNameToHandle[t8];\n }\n getHashTableById(t8) {\n return this.hashTableMap[t8];\n }\n dispose() {\n for (let t8 in this.hashTableMap)\n this.hashTableMap[t8].clearAndClose(), delete this.hashTableMap[t8];\n for (let t8 in this.hashTableNameToHandle)\n this.hashTableNameToHandle[t8].dispose(), delete this.hashTableNameToHandle[t8];\n }\n};\nvar T8 = \"?tfjs-format=file\";\nvar _8 = \"model.json\";\nvar Bl = class {\n get modelVersion() {\n return this.version;\n }\n get inputNodes() {\n return this.executor.inputNodes;\n }\n get outputNodes() {\n return this.executor.outputNodes;\n }\n get inputs() {\n return this.executor.inputs;\n }\n get outputs() {\n return this.executor.outputs;\n }\n get weights() {\n return this.executor.weightMap;\n }\n get metadata() {\n return this.artifacts.userDefinedMetadata;\n }\n get modelSignature() {\n return this.signature;\n }\n get modelStructuredOutputKeys() {\n return this.structuredOutputKeys;\n }\n constructor(t8, e = {}, o = fi) {\n this.modelUrl = t8, this.loadOptions = e, this.version = \"n/a\", this.io = o, e == null && (this.loadOptions = {}), this.resourceManager = new kf();\n }\n findIOHandler() {\n let t8 = this.modelUrl;\n if (t8.load != null)\n this.handler = t8;\n else if (this.loadOptions.requestInit != null)\n this.handler = this.io.browserHTTPRequest(t8, this.loadOptions);\n else {\n let e = this.io.getLoadHandlers(t8, this.loadOptions);\n if (e.length === 0)\n e.push(this.io.browserHTTPRequest(t8, this.loadOptions));\n else if (e.length > 1)\n throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t8]}'`);\n this.handler = e[0];\n }\n }\n load() {\n if (this.findIOHandler(), this.handler.load == null)\n throw new Error(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");\n let t8 = this.handler.load();\n return y.isPromise(t8) ? t8.then((e) => this.loadSync(e)) : this.loadSync(t8);\n }\n loadSync(t8) {\n this.artifacts = t8;\n let e = this.artifacts.modelTopology, o = this.artifacts.signature;\n if (this.artifacts.userDefinedMetadata != null) {\n let s = this.artifacts.userDefinedMetadata;\n s.signature != null && (o = s.signature), s.structuredOutputKeys != null && (this.structuredOutputKeys = s.structuredOutputKeys);\n }\n this.signature = o, this.version = `${e.versions.producer}.${e.versions.minConsumer}`;\n let n = this.io.decodeWeights(this.artifacts.weightData, this.artifacts.weightSpecs);\n if (this.executor = new lp(Ml.Instance.transformGraph(e, this.signature)), this.executor.weightMap = this.convertTensorMapToTensorsMap(n), this.executor.resourceManager = this.resourceManager, t8.modelInitializer != null && t8.modelInitializer.node != null) {\n let s = Ml.Instance.transformGraph(t8.modelInitializer);\n this.initializer = new lp(s), this.initializer.weightMap = this.executor.weightMap, this.initializer.resourceManager = this.resourceManager, this.initializerSignature = t8.initializerSignature;\n }\n return true;\n }\n async save(t8, e) {\n if (typeof t8 == \"string\") {\n let o = this.io.getSaveHandlers(t8);\n if (o.length === 0)\n throw new Error(`Cannot find any save handlers for URL '${t8}'`);\n if (o.length > 1)\n throw new Error(`Found more than one (${o.length}) save handlers for URL '${t8}'`);\n t8 = o[0];\n }\n if (t8.save == null)\n throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");\n return t8.save(this.artifacts);\n }\n addStructuredOutputNames(t8) {\n if (this.structuredOutputKeys) {\n let e = t8 instanceof ut ? [t8] : t8, o = {};\n return e.forEach((n, s) => o[this.structuredOutputKeys[s]] = n), o;\n }\n return t8;\n }\n predict(t8, e) {\n let o = this.execute(t8, this.outputNodes);\n return this.addStructuredOutputNames(o);\n }\n async predictAsync(t8, e) {\n let o = await this.executeAsync(t8, this.outputNodes);\n return this.addStructuredOutputNames(o);\n }\n normalizeInputs(t8) {\n var e;\n if (!(t8 instanceof ut) && !Array.isArray(t8)) {\n let s = (e = this.signature) === null || e === void 0 ? void 0 : e.inputs;\n if (s != null)\n for (let a in s) {\n let i = s[a];\n i.resourceId != null && (t8[a] = this.resourceIdToCapturedInput[i.resourceId]);\n }\n return t8;\n }\n t8 = Array.isArray(t8) ? t8 : [t8];\n let o = Object.keys(this.resourceIdToCapturedInput).length;\n if (t8.length + o !== this.inputNodes.length)\n throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length - o} non-resource placeholders, while there are ${t8.length} input tensors provided.`);\n let n = 0;\n return this.inputNodes.reduce((s, a) => {\n var i, p, u;\n let c = (u = (p = (i = this.signature) === null || i === void 0 ? void 0 : i.inputs) === null || p === void 0 ? void 0 : p[a]) === null || u === void 0 ? void 0 : u.resourceId;\n return c != null ? s[a] = this.resourceIdToCapturedInput[c] : s[a] = t8[n++], s;\n }, {});\n }\n normalizeOutputs(t8) {\n return t8 = t8 || this.outputNodes, Array.isArray(t8) ? t8 : [t8];\n }\n executeInitializerGraph() {\n return this.initializer == null ? [] : this.initializerSignature == null ? this.initializer.execute({}, []) : this.initializer.execute({}, Object.keys(this.initializerSignature.outputs));\n }\n async executeInitializerGraphAsync() {\n return this.initializer == null ? [] : this.initializerSignature == null ? this.initializer.executeAsync({}, []) : this.initializer.executeAsync({}, Object.keys(this.initializerSignature.outputs));\n }\n setResourceIdToCapturedInput(t8) {\n if (this.resourceIdToCapturedInput = {}, this.initializerSignature) {\n let e = this.initializerSignature.outputs, o = Object.keys(e);\n for (let n = 0; n < o.length; n++) {\n let s = o[n], a = e[s];\n this.resourceIdToCapturedInput[a.resourceId] = t8[n];\n }\n }\n }\n execute(t8, e) {\n this.resourceIdToCapturedInput == null && this.setResourceIdToCapturedInput(this.executeInitializerGraph()), t8 = this.normalizeInputs(t8), e = this.normalizeOutputs(e);\n let o = this.executor.execute(t8, e);\n return o.length > 1 ? o : o[0];\n }\n async executeAsync(t8, e) {\n this.resourceIdToCapturedInput == null && this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()), t8 = this.normalizeInputs(t8), e = this.normalizeOutputs(e);\n let o = await this.executor.executeAsync(t8, e);\n return o.length > 1 ? o : o[0];\n }\n getIntermediateTensors() {\n return this.executor.getIntermediateTensors();\n }\n disposeIntermediateTensors() {\n this.executor.disposeIntermediateTensors();\n }\n convertTensorMapToTensorsMap(t8) {\n return Object.keys(t8).reduce((e, o) => (e[o] = [t8[o]], e), {});\n }\n dispose() {\n this.executor.dispose(), this.initializer && (this.initializer.dispose(), this.resourceIdToCapturedInput && Mt(this.resourceIdToCapturedInput)), this.resourceManager.dispose();\n }\n};\nasync function $8(r, t8 = {}, e = fi) {\n if (r == null)\n throw new Error(\"modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model\");\n t8 == null && (t8 = {}), t8.fromTFHub && typeof r == \"string\" && (r = R8(r));\n let o = new Bl(r, t8, e);\n return await o.load(), o;\n}\nfunction E8(r) {\n if (r == null)\n throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");\n let t8;\n if (r instanceof Array) {\n let [o, n] = r;\n if (!o)\n throw new Error(\"modelJSON must be the first element of the array\");\n if (!n || !(n instanceof ArrayBuffer))\n throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");\n if (!(\"modelTopology\" in o))\n throw new Error(\"Model JSON is missing 'modelTopology'\");\n if (!(\"weightsManifest\" in o))\n throw new Error(\"Model JSON is missing 'weightsManifest'\");\n let s = fi.getWeightSpecs(o.weightsManifest), a = fi.getModelArtifactsForJSONSync(o, s, n);\n t8 = fi.fromMemorySync(a);\n } else if (\"load\" in r)\n t8 = r;\n else if (\"modelTopology\" in r && \"weightSpecs\" in r && \"weightData\" in r)\n t8 = fi.fromMemorySync(r);\n else\n throw new Error(\"Unknown model format\");\n let e = new Bl(t8);\n return e.load(), e;\n}\nfunction R8(r) {\n return r.endsWith(\"/\") || (r = r + \"/\"), `${r}${_8}${T8}`;\n}\nvar D8 = \"4.11.0\";\nfunction Q(r, t8) {\n Array.isArray(r) || (r = [r]), r.forEach((e) => {\n e != null && y.assert(e.dtype !== \"complex64\", () => `${t8} does not support complex64 tensors in the CPU backend.`);\n });\n}\nvar A8 = Wt.whereImpl;\nvar xu = class extends ao {\n nextDataId() {\n return xu.nextDataId++;\n }\n constructor() {\n super(), this.blockSize = 48, this.firstUse = true, this.data = new zo(this, pr());\n }\n write(t8, e, o) {\n this.firstUse && (this.firstUse = false, A().get(\"IS_NODE\") && w.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));\n let n = { id: this.nextDataId() };\n return this.data.set(n, { values: t8, dtype: o, refCount: 1 }), n;\n }\n makeTensorInfo(t8, e, o) {\n let n;\n if (e === \"string\" && o != null && o.length > 0 && y.isString(o[0])) {\n let s = o.map((a) => y.encodeString(a));\n n = this.write(s, t8, e);\n } else\n n = this.write(o, t8, e);\n return { dataId: n, shape: t8, dtype: e };\n }\n refCount(t8) {\n return this.data.has(t8) ? this.data.get(t8).refCount : 0;\n }\n incRef(t8) {\n let e = this.data.get(t8);\n e.refCount++;\n }\n decRef(t8) {\n if (this.data.has(t8)) {\n let e = this.data.get(t8);\n e.refCount--;\n }\n }\n move(t8, e, o, n, s) {\n this.data.set(t8, { values: e, dtype: n, refCount: s });\n }\n numDataIds() {\n return this.data.numDataIds();\n }\n async read(t8) {\n return this.readSync(t8);\n }\n readSync(t8) {\n let { dtype: e, complexTensorInfos: o } = this.data.get(t8);\n if (e === \"complex64\") {\n let n = this.readSync(o.real.dataId), s = this.readSync(o.imag.dataId);\n return w.mergeRealAndImagArrays(n, s);\n }\n return y.convertBackendValuesAndArrayBuffer(this.data.get(t8).values, e);\n }\n bufferSync(t8) {\n let e = this.readSync(t8.dataId);\n if (t8.dtype === \"string\")\n try {\n let o = e.map((n) => y.decodeString(n));\n return me(t8.shape, t8.dtype, o);\n } catch (o) {\n throw new Error(\"Failed to decode encoded string bytes into utf-8\");\n }\n return me(t8.shape, t8.dtype, e);\n }\n makeOutput(t8, e, o) {\n return pr().makeTensorFromTensorInfo(this.makeTensorInfo(e, o, t8), this);\n }\n disposeData(t8, e = false) {\n if (this.data.has(t8)) {\n if (this.data.get(t8).refCount--, !e && this.data.get(t8).refCount > 0)\n return false;\n let { complexTensorInfos: o } = this.data.get(t8);\n o != null && (this.disposeData(o.real.dataId, true), this.disposeData(o.imag.dataId, true)), this.data.delete(t8);\n }\n return true;\n }\n disposeIntermediateTensorInfo(t8) {\n this.disposeData(t8.dataId);\n }\n async time(t8) {\n let e = y.now();\n return t8(), { kernelMs: y.now() - e };\n }\n memory() {\n return { unreliable: true, reasons: [\"The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less.\"] };\n }\n where(t8) {\n Q([t8], \"where\");\n let e = this.readSync(t8.dataId);\n return A8(t8.shape, e);\n }\n dispose() {\n }\n floatPrecision() {\n return 32;\n }\n epsilon() {\n return super.epsilon();\n }\n};\nxu.nextDataId = 0;\nvar Tc = {};\nqe(Tc, { addImpl: () => zS, bincountImpl: () => Ic, bincountReduceImpl: () => Nf, bitwiseAndImpl: () => VS, castImpl: () => BS, ceilImpl: () => WS, concatImpl: () => mp, equalImpl: () => US, expImpl: () => HS, expm1Impl: () => qS, floorDivImpl: () => XS, floorImpl: () => jS, gatherNdImpl: () => Tf, gatherV2Impl: () => _f, greaterEqualImpl: () => QS, greaterImpl: () => YS, lessEqualImpl: () => JS, lessImpl: () => ZS, linSpaceImpl: () => $f, logImpl: () => eI, maxImpl: () => Ef, maximumImpl: () => tI, minimumImpl: () => rI, multiplyImpl: () => zl, negImpl: () => oI, notEqualImpl: () => nI, prodImpl: () => sI, raggedGatherImpl: () => Rf, raggedRangeImpl: () => Df, raggedTensorToTensorImpl: () => Af, rangeImpl: () => fp, rsqrtImpl: () => aI, scatterImpl: () => zs, sigmoidImpl: () => v_, simpleAbsImpl: () => LS, sliceImpl: () => hp, sparseFillEmptyRowsImpl: () => Ff, sparseReshapeImpl: () => Pf, sparseSegmentReductionImpl: () => Nc, sqrtImpl: () => T_, squaredDifferenceImpl: () => uI, staticRegexReplaceImpl: () => pI, stridedSliceImpl: () => Of, stringNGramsImpl: () => gp, stringSplitImpl: () => xp, stringToHashBucketFastImpl: () => yp, subImpl: () => lI, tileImpl: () => Mf, topKImpl: () => Lf, transposeImpl: () => vc, uniqueImpl: () => bp });\nfunction LS(r) {\n let t8 = new Float32Array(r.length);\n for (let e = 0; e < r.length; ++e)\n t8[e] = Math.abs(r[e]);\n return t8;\n}\nvar F8 = (r) => {\n let { x: t8 } = r.inputs, e = r.backend;\n Q(t8, \"abs\");\n let o = new Float32Array(y.sizeFromShape(t8.shape)), n = e.data.get(t8.dataId).values;\n return o = LS(n), e.makeOutput(o, t8.shape, t8.dtype);\n};\nvar jT = { kernelName: Xs, backendName: \"cpu\", kernelFunc: F8 };\nfunction ze(r) {\n return (t8, e, o, n, s) => {\n let a = w.assertAndGetBroadcastShape(t8, e), i = a.length, p = y.computeStrides(a), u = y.sizeFromShape(a), c = y.getTypedArrayFromDType(s, u), l = t8.length, m = e.length, d = y.computeStrides(t8), f = y.computeStrides(e), h = w.getBroadcastDims(t8, a), g = w.getBroadcastDims(e, a);\n if (h.length + g.length === 0)\n for (let x = 0; x < c.length; ++x)\n c[x] = r(o[x % o.length], n[x % n.length]);\n else\n for (let x = 0; x < c.length; ++x) {\n let b = y.indexToLoc(x, i, p), C = b.slice(-l);\n h.forEach((E) => C[E] = 0);\n let S = y.locToIndex(C, l, d), k = b.slice(-m);\n g.forEach((E) => k[E] = 0);\n let _ = y.locToIndex(k, m, f);\n c[x] = r(o[S], n[_]);\n }\n return [c, a];\n };\n}\nfunction Kt(r) {\n let { inputs: t8, backend: e } = r, { real: o, imag: n } = t8, s = e.data.get(o.dataId).values, a = e.data.get(n.dataId).values, i = e.makeTensorInfo(o.shape, \"complex64\"), p = e.data.get(i.dataId);\n return p.complexTensorInfos = { real: e.makeTensorInfo(o.shape, \"float32\", s), imag: e.makeTensorInfo(n.shape, \"float32\", a) }, i;\n}\nvar XT = { kernelName: Fi, backendName: \"cpu\", kernelFunc: Kt };\nfunction wc(r, t8, e = \"float32\") {\n if (e === \"complex64\") {\n let n = wc(r, t8, \"float32\"), s = wc(r, t8, \"float32\");\n return Kt({ inputs: { real: n, imag: s }, backend: r });\n }\n let o = y.makeZerosTypedArray(y.sizeFromShape(t8), e);\n return r.makeTensorInfo(t8, e, o);\n}\nfunction mr(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n return e.incRef(o.dataId), { dataId: o.dataId, shape: o.shape, dtype: o.dtype };\n}\nvar YT = { kernelName: wo, backendName: \"cpu\", kernelFunc: mr };\nfunction Ro(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.data.get(o.dataId).complexTensorInfos.real, s = e.data.get(n.dataId).values;\n return e.makeTensorInfo(n.shape, n.dtype, s);\n}\nvar QT = { kernelName: qi, backendName: \"cpu\", kernelFunc: Ro };\nfunction BS(r, t8, e, o) {\n if (o === \"int32\") {\n let n = Int32Array.from(r);\n return [t8, \"int32\", n];\n }\n if (o === \"bool\") {\n let n = y.toTypedArray([0], e), [s, a] = ze((i, p) => i !== p ? 1 : 0)(t8, [], r, n, \"bool\");\n return [a, \"bool\", s];\n }\n throw new Error(`Error in Cast: failed to cast ${e} to ${o}`);\n}\nfunction Do(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dtype: s } = o;\n if (s === \"complex64\") {\n if (n.dtype === \"complex64\")\n return mr({ inputs: { x: n }, backend: e });\n let c = wc(e, n.shape, n.dtype), l = Do({ inputs: { x: n }, backend: e, attrs: { dtype: \"float32\" } }), m = Kt({ inputs: { real: l, imag: c }, backend: e });\n return e.disposeIntermediateTensorInfo(c), e.disposeIntermediateTensorInfo(l), m;\n }\n if (n.dtype === \"complex64\") {\n let c = Ro({ inputs: { input: n }, backend: e }), l = Do({ inputs: { x: c }, backend: e, attrs: { dtype: s } });\n return e.disposeIntermediateTensorInfo(c), l;\n }\n if (!y.hasEncodingLoss(n.dtype, s)) {\n let c = mr({ inputs: { x: n }, backend: e });\n return { dataId: c.dataId, shape: c.shape, dtype: s };\n }\n let a = e.data.get(n.dataId).values, [i, p, u] = BS(a, n.shape, n.dtype, s);\n return e.makeTensorInfo(i, p, u);\n}\nvar ZT = { kernelName: bo, backendName: \"cpu\", kernelFunc: Do };\nfunction Ye(r, t8, e, o) {\n return e == null ? ({ inputs: n, backend: s }) => {\n let { a, b: i } = n, p = s;\n Q([a, i], r);\n let u = p.data.get(a.dataId).values, c = p.data.get(i.dataId).values, l = a.dtype === \"string\" ? w.fromUint8ToStringArray(u) : u, m = a.dtype === \"string\" ? w.fromUint8ToStringArray(c) : c, d = o || a.dtype, [f, h] = t8(a.shape, i.shape, l, m, d);\n return p.makeTensorInfo(h, d, f);\n } : ({ inputs: n, backend: s }) => {\n let { a, b: i } = n, p = s;\n if (a.dtype === \"complex64\" || i.dtype === \"complex64\") {\n let u = Do({ inputs: { x: a }, backend: p, attrs: { dtype: \"complex64\" } }), c = p.data.get(u.dataId), l = c.complexTensorInfos.real, m = c.complexTensorInfos.imag, d = p.data.get(l.dataId).values, f = p.data.get(m.dataId).values, h = Do({ inputs: { x: i }, backend: p, attrs: { dtype: \"complex64\" } }), g = p.data.get(h.dataId), x = g.complexTensorInfos.real, b = g.complexTensorInfos.imag, C = p.data.get(x.dataId).values, S = p.data.get(b.dataId).values, [k, _, E] = e(a.shape, i.shape, d, f, C, S), R = p.makeTensorInfo(E, \"float32\", k), D = p.makeTensorInfo(E, \"float32\", _), P = Kt({ inputs: { real: R, imag: D }, backend: p });\n return p.disposeIntermediateTensorInfo(u), p.disposeIntermediateTensorInfo(h), p.disposeIntermediateTensorInfo(R), p.disposeIntermediateTensorInfo(D), P;\n } else {\n let u = p.data.get(a.dataId).values, c = p.data.get(i.dataId).values, l = o || a.dtype, [m, d] = t8(a.shape, i.shape, u, c, l);\n return p.makeTensorInfo(d, l, m);\n }\n };\n}\nfunction Sc(r) {\n return (t8, e, o, n, s, a) => {\n let i = w.assertAndGetBroadcastShape(t8, e), p = y.sizeFromShape(i), u = i.length, c = y.computeStrides(i), l = y.getTypedArrayFromDType(\"float32\", p), m = y.getTypedArrayFromDType(\"float32\", p), d = w.getBroadcastDims(t8, i), f = w.getBroadcastDims(e, i), h = w.mergeRealAndImagArrays(o, n), g = w.mergeRealAndImagArrays(s, a), x = t8.length, b = y.computeStrides(t8), C = e.length, S = y.computeStrides(e);\n if (d.length + f.length === 0)\n for (let k = 0; k < l.length; k++) {\n let _ = k % h.length, E = k % g.length, R = r(h[_ * 2], h[_ * 2 + 1], g[E * 2], g[E * 2 + 1]);\n l[k] = R.real, m[k] = R.imag;\n }\n else\n for (let k = 0; k < l.length; k++) {\n let _ = y.indexToLoc(k, u, c), E = _.slice(-x);\n d.forEach((M) => E[M] = 0);\n let R = y.locToIndex(E, x, b), D = _.slice(-C);\n f.forEach((M) => D[M] = 0);\n let P = y.locToIndex(D, C, S), O = r(h[R * 2], h[R * 2 + 1], g[P * 2], g[P * 2 + 1]);\n l[k] = O.real, m[k] = O.imag;\n }\n return [l, m, i];\n };\n}\nvar zS = ze((r, t8) => r + t8);\nvar P8 = Sc((r, t8, e, o) => ({ real: r + e, imag: t8 + o }));\nvar Oa = Ye(uo, zS, P8);\nvar JT = { kernelName: uo, backendName: \"cpu\", kernelFunc: Oa };\nfunction Ic(r, t8, e, o, n) {\n let s = y.sizeFromShape(o), a = y.makeZerosTypedArray(n, e);\n for (let i = 0; i < r.length; i++) {\n let p = r[i];\n if (p < 0)\n throw new Error(\"Input x must be non-negative!\");\n p >= n || (s > 0 ? a[p] += t8[i] : a[p] += 1);\n }\n return a;\n}\nfunction Nf(r, t8, e, o = false) {\n let n = r.shape[0], s = r.shape[1], a = me([n, e], t8.dtype);\n for (let i = 0; i < n; i++)\n for (let p = 0; p < s; p++) {\n let u = r.get(i, p);\n if (u < 0)\n throw new Error(\"Input x must be non-negative!\");\n u >= e || (o ? a.set(1, i, u) : t8.size > 0 ? a.set(a.get(i, u) + t8.get(i, p), i, u) : a.set(a.get(i, u) + 1, i, u));\n }\n return a;\n}\nvar VS = ze((r, t8) => r & t8);\nvar O8 = Ye(ja, VS);\nvar e_ = { kernelName: ja, backendName: \"cpu\", kernelFunc: O8 };\nfunction Xt(r) {\n return (t8, e, o) => {\n let n = y.getArrayFromDType(e, t8.length);\n for (let s = 0; s < t8.length; ++s)\n n[s] = r(t8[s], o);\n return n;\n };\n}\nfunction Ie(r, t8, e) {\n let o = Xt(t8);\n return Ar(r, o, e);\n}\nfunction Ar(r, t8, e) {\n return ({ inputs: o, attrs: n, backend: s }) => {\n let { x: a } = o;\n Q(a, r);\n let i = s, p = i.data.get(a.dataId).values, u;\n if (a.dtype === \"string\") {\n if (!Array.isArray(p))\n throw new Error(\"String tensor's value was not an instance of Array\");\n u = w.fromUint8ToStringArray(p);\n } else\n u = p;\n let c = e || a.dtype, l = t8(u, c, n);\n return i.makeTensorInfo(a.shape, c, l);\n };\n}\nvar WS = Xt((r) => Math.ceil(r));\nvar M8 = Ar(tn, WS);\nvar t_ = { kernelName: tn, backendName: \"cpu\", kernelFunc: M8 };\nfunction mp(r, t8, e, o) {\n let n = y.getArrayFromDType(e, y.sizeFromShape(t8));\n if (o && e !== \"string\") {\n let s = 0;\n r.forEach((a) => {\n let i = y.sizeFromShape(a.shape);\n n.set(a.vals, s), s += i;\n });\n } else {\n let s = 0;\n r.forEach((a) => {\n let i = e === \"string\" ? w.fromUint8ToStringArray(a.vals) : a.vals, p = 0;\n for (let u = 0; u < a.shape[0]; ++u) {\n let c = u * t8[1] + s;\n for (let l = 0; l < a.shape[1]; ++l)\n n[c + l] = i[p++];\n }\n s += a.shape[1];\n });\n }\n return n;\n}\nvar US = ze((r, t8) => r === t8 ? 1 : 0);\nvar GS = Ye(yn, US, null, \"bool\");\nvar r_ = { kernelName: yn, backendName: \"cpu\", kernelFunc: GS };\nvar HS = Xt((r) => Math.exp(r));\nvar KS = Ar(bn, HS, \"float32\");\nvar o_ = { kernelName: bn, backendName: \"cpu\", kernelFunc: KS };\nvar qS = Xt((r) => Math.expm1(r));\nvar L8 = Ar(Cn, qS);\nvar n_ = { kernelName: Cn, backendName: \"cpu\", kernelFunc: L8 };\nvar jS = Xt((r) => Math.floor(r));\nvar B8 = Ar(Sn, jS);\nvar s_ = { kernelName: Sn, backendName: \"cpu\", kernelFunc: B8 };\nvar XS = ze((r, t8) => Math.floor(r / t8));\nvar z8 = Ye(In, XS, null, \"int32\");\nvar a_ = { kernelName: In, backendName: \"cpu\", kernelFunc: z8 };\nfunction Tf(r, t8, e, o, n, s, a, i, p) {\n let u = me([o, s], e);\n for (let c = 0; c < o; c++) {\n let l = [], m = 0;\n for (let d = 0; d < n; d++) {\n let f = r[c * n + d];\n m += f * a[d], l.push(f);\n }\n if (m < 0 || m >= p / s)\n throw new Error(`Invalid indices: ${l} does not index into ${i}`);\n for (let d = 0; d < s; d++)\n u.values[c * s + d] = t8.get(...t8.indexToLoc(m * s + d));\n }\n return u;\n}\nfunction _f(r, t8, e) {\n let o = me(e, r.dtype);\n for (let n = 0; n < o.size; ++n) {\n let a = o.indexToLoc(n).slice(), i = a[0], p = a[2], u = t8.locToIndex([i, p]);\n a[2] = t8.values[u];\n let c = r.locToIndex(a);\n 0 <= c && c < r.values.length && (o.values[n] = r.values[c]);\n }\n return o;\n}\nvar YS = ze((r, t8) => r > t8 ? 1 : 0);\nvar V8 = Ye(Nn, YS, null, \"bool\");\nvar i_ = { kernelName: Nn, backendName: \"cpu\", kernelFunc: V8 };\nvar QS = ze((r, t8) => r >= t8 ? 1 : 0);\nvar W8 = Ye(Tn, QS, null, \"bool\");\nvar u_ = { kernelName: Tn, backendName: \"cpu\", kernelFunc: W8 };\nvar ZS = ze((r, t8) => r < t8 ? 1 : 0);\nvar U8 = Ye(Dn, ZS, null, \"bool\");\nvar p_ = { kernelName: Dn, backendName: \"cpu\", kernelFunc: U8 };\nvar JS = ze((r, t8) => r <= t8 ? 1 : 0);\nvar G8 = Ye(An, JS, null, \"bool\");\nvar c_ = { kernelName: An, backendName: \"cpu\", kernelFunc: G8 };\nfunction $f(r, t8, e) {\n let o = (t8 - r) / (e - 1), n = y.makeZerosTypedArray(e, \"float32\");\n n[0] = r;\n for (let s = 1; s < n.length; s++)\n n[s] = n[s - 1] + o;\n return n;\n}\nvar eI = Xt((r) => Math.log(r));\nvar H8 = Ar(Pn, eI);\nvar l_ = { kernelName: Pn, backendName: \"cpu\", kernelFunc: H8 };\nfunction Ef(r, t8, e, o) {\n let n = y.getTypedArrayFromDType(o, y.sizeFromShape(e));\n for (let s = 0; s < n.length; ++s) {\n let a = s * t8, i = r[a];\n for (let p = 0; p < t8; ++p) {\n let u = r[a + p];\n (Number.isNaN(u) || u > i) && (i = u);\n }\n n[s] = i;\n }\n return n;\n}\nvar tI = ze((r, t8) => Math.max(r, t8));\nvar K8 = Ye(Wn, tI);\nvar m_ = { kernelName: Wn, backendName: \"cpu\", kernelFunc: K8 };\nvar rI = ze((r, t8) => Math.min(r, t8));\nvar q8 = Ye(Kn, rI);\nvar d_ = { kernelName: Kn, backendName: \"cpu\", kernelFunc: q8 };\nvar zl = ze((r, t8) => r * t8);\nvar j8 = Sc((r, t8, e, o) => ({ real: r * e - t8 * o, imag: r * o + t8 * e }));\nvar dp = Ye(Yn, zl, j8);\nvar f_ = { kernelName: Yn, backendName: \"cpu\", kernelFunc: dp };\nfunction oI(r, t8, e) {\n let o = y.createScalarValue(-1, e);\n return zl([], t8, o, r, e);\n}\nfunction X8(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n Q(o, \"neg\");\n let n = e.data.get(o.dataId).values, [s, a] = oI(n, o.shape, o.dtype);\n return e.makeTensorInfo(a, o.dtype, s);\n}\nvar h_ = { kernelName: pa, backendName: \"cpu\", kernelFunc: X8 };\nvar nI = ze((r, t8) => r !== t8 ? 1 : 0);\nvar Y8 = Ye(Qn, nI, null, \"bool\");\nvar g_ = { kernelName: Qn, backendName: \"cpu\", kernelFunc: Y8 };\nfunction vc(r, t8, e, o, n) {\n let s = t8.length, a = y.sizeFromShape(t8), i = y.computeStrides(t8), p = y.computeStrides(n), u = y.getTypedArrayFromDType(e, y.sizeFromShape(n));\n for (let c = 0; c < a; ++c) {\n let l = y.indexToLoc(c, s, i), m = new Array(l.length);\n for (let f = 0; f < m.length; f++)\n m[f] = l[o[f]];\n let d = y.locToIndex(m, s, p);\n u[d] = r[c];\n }\n return u;\n}\nfunction It(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n } = t8, { perm: s } = e;\n Q(n, \"transpose\");\n let a = n.shape.length, i = new Array(a);\n for (let l = 0; l < i.length; l++)\n i[l] = n.shape[s[l]];\n let p = o.data.get(n.dataId).values, u = vc(p, n.shape, n.dtype, s, i);\n return { dataId: o.write(u, i, n.dtype), shape: i, dtype: n.dtype };\n}\nvar x_ = { kernelName: co, backendName: \"cpu\", kernelFunc: It };\nfunction sI(r, t8, e, o) {\n let [n, s] = w.computeOutAndReduceShapes(r, o), a = dt(t8, \"int32\"), i = y.makeZerosTypedArray(y.sizeFromShape(n), a), p = y.sizeFromShape(s);\n for (let u = 0; u < i.length; ++u) {\n let c = u * p, l = 1;\n for (let m = 0; m < p; ++m)\n l *= e[c + m];\n i[u] = l;\n }\n return { outVals: i, outShape: n, outDtype: a };\n}\nfunction Q8(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n Q(n, \"prod\");\n let i = n.shape.length, p = y.parseAxisParam(s, n.shape), u = w.getAxesPermutation(p, i), c = p, l = n, m = [];\n u != null && (l = It({ inputs: { x: n }, backend: e, attrs: { perm: u } }), m.push(l), c = w.getInnerMostAxes(c.length, i));\n let d = e.data.get(l.dataId).values, { outVals: f, outShape: h, outDtype: g } = sI(l.shape, l.dtype, d, c), x = h;\n return a && (x = w.expandShapeToKeepDim(h, p)), m.forEach((b) => e.disposeIntermediateTensorInfo(b)), e.makeTensorInfo(x, g, f);\n}\nvar y_ = { kernelName: ns, backendName: \"cpu\", kernelFunc: Q8 };\nfunction Z8(r, t8, e) {\n r.forEach((o, n) => {\n if (o < 0 || o >= e) {\n let s = y.indexToLoc(n, t8.length, y.computeStrides(t8)).join(\",\");\n throw new Error(`indices[${s}] = ${o} is not in [0, ${e})`);\n }\n });\n}\nfunction J8(r, t8) {\n for (let e = 0; e < r.length; ++e) {\n let o = r[e], n = e === r.length - 1 ? t8 : r[e + 1].length;\n if (o.length === 0)\n throw new Error(\"Ragged splits may not be empty\");\n if (o[0] < 0)\n throw new Error(\"Ragged splits must be non-negative\");\n if (o[o.length - 1] > n)\n throw new Error(\"Ragged splits must not point past values\");\n for (let s = 1; s < o.length; ++s)\n if (o[s - 1] > o[s])\n throw new Error(\"Ragged splits must be sorted in ascending order\");\n }\n}\nfunction eY(r, t8, e, o) {\n let n = [], s = 0, a = t8.length - 1 + e.length, i = new Array(a).fill(null).map(() => [0]);\n J8(e, o);\n let p = 1;\n for (let u = 0; u < t8.length - 1; ++u) {\n p *= t8[u];\n let c = t8[u + 1];\n for (let l = 1; l < p + 1; ++l)\n i[u].push(l * c);\n }\n for (let u = 0; u < r.length; ++u) {\n let c = r[u], l = r[u] + 1;\n for (let m = 0; m < e.length; ++m) {\n let d = e[m], f = m + t8.length - 1;\n if (f >= 0) {\n let h = i[f], g = h[h.length - 1] - d[c];\n for (let x = c; x < l; ++x)\n i[f].push(d[x + 1] + g);\n }\n c = d[c], l = d[l];\n }\n l !== c && (n.push([c, l]), s += l - c);\n }\n return { outSplits: i, valueSlices: n, numValues: s };\n}\nfunction tY(r) {\n let t8 = [];\n for (let e = 0; e < r.length; ++e) {\n let o = r[e].length, n = y.getArrayFromDType(\"int32\", o);\n t8.push(n), r[e].forEach((s, a) => n[a] = s);\n }\n return t8;\n}\nfunction b_(r, t8) {\n let e = r.slice(0, t8);\n for (; e.length < t8; )\n e.push(1);\n for (let o = t8; o < r.length; o++)\n e[t8 - 1] *= r[o];\n return e;\n}\nfunction rY(r, t8, e, o, n, s) {\n let a = b_(t8, 2)[1], i = b_(s, 2)[1], p = 0;\n for (let u of e)\n for (let c = u[0]; c < u[1]; ++c) {\n for (let l = 0; l < o; ++l)\n n[p * i + l] = r[c * a + l];\n ++p;\n }\n}\nfunction oY(r, t8, e, o, n) {\n let s = t8.slice();\n s[0] = n;\n let a = y.getArrayFromDType(e, y.sizeFromShape(s)), i = r.length, p = i === 0 ? 0 : i / t8[0];\n return rY(r, t8, o, p, a, s), [a, s];\n}\nfunction Rf(r, t8, e, o, n, s, a, i) {\n if (r.length === 0)\n throw new Error(\"paramsNestedSplits must be non empty\");\n if (t8[0].length === 0)\n throw new Error(\"Split tensors must not be scalars\");\n let p = t8[0][0] - 1;\n if (Z8(s, a, p), o.length === 0)\n throw new Error(\"params.rank must be nonzero\");\n let u = o[0], { outSplits: c, valueSlices: l, numValues: m } = eY(s, a, r, u), d = tY(c), f = oY(e, o, n, l, m);\n return [d, f[0], f[1]];\n}\nvar C_ = 2147483647;\nfunction Df(r, t8, e, o, n, s, a) {\n if (t8.length > 1)\n throw new Error(\"starts must be a scalar or vector\");\n if (n.length > 1)\n throw new Error(\"limits must be a scalar or vector\");\n if (a.length > 1)\n throw new Error(\"deltas must be a scalar or vector\");\n let i = t8.length === 0, p = n.length === 0, u = a.length === 0, c = [];\n i || c.push(t8[0]), p || c.push(n[0]), u || c.push(a[0]);\n for (let g = 1; g < c.length; ++g)\n if (c[g] !== c[g - 1])\n throw new Error(\"starts, limits, and deltas must have the same shape\");\n let l = c.length === 0 ? 1 : c[0], m = y.getArrayFromDType(\"int32\", l + 1);\n m[0] = 0;\n for (let g = 0; g < l; ++g) {\n let x = i ? r[0] : r[g], b = p ? o[0] : o[g], C = u ? s[0] : s[g];\n if (C === 0)\n throw new Error(\"Requires delta != 0\");\n let S;\n if (C > 0 && b < x || C < 0 && b > x)\n S = 0;\n else if (S = Math.ceil(Math.abs((b - x) / C)), S > C_)\n throw new Error(`Requires ((limit - start) / delta) <= ${C_}`);\n m[g + 1] = m[g] + S;\n }\n let d = m[l], f = y.getArrayFromDType(e, d), h = 0;\n for (let g = 0; g < l; ++g) {\n let x = m[g + 1] - m[g], b = i ? r[0] : r[g], C = u ? s[0] : s[g];\n for (let S = 0; S < x; ++S)\n f[h++] = b, b += C;\n }\n return [m, f];\n}\nvar Ao = w.RowPartitionType;\nvar kc = class {\n constructor(t8, e, o, n, s, a, i, p, u, c) {\n this.shape = t8, this.shapeShape = e, this.values = o, this.valuesShape = n, this.valuesDType = s, this.defaultValue = a, this.defaultValueShape = i, this.rowPartitionValues = p, this.rowPartitionValuesShapes = u, this.rowPartitionTypes = w.getRowPartitionTypesHelper(c), this.raggedRank = w.getRaggedRank(this.rowPartitionTypes);\n }\n getRowPartitionTypeByDimension(t8) {\n return this.rowPartitionTypes[0] === Ao.FIRST_DIM_SIZE ? this.rowPartitionTypes[t8 + 1] : this.rowPartitionTypes[t8];\n }\n getRowPartitionTensor(t8) {\n return this.rowPartitionTypes[0] === Ao.FIRST_DIM_SIZE ? this.rowPartitionValues[t8 + 1] : this.rowPartitionValues[t8];\n }\n getMaxWidth(t8) {\n let e = this.getRowPartitionTensor(t8 - 1);\n switch (this.getRowPartitionTypeByDimension(t8 - 1)) {\n case Ao.VALUE_ROWIDS:\n return kc.getMaxWidthValueRowID(e);\n case Ao.ROW_SPLITS:\n return kc.getMaxWidthRowSplit(e);\n default:\n throw new Error(`Cannot handle partition type ${Ao[this.getRowPartitionTypeByDimension(t8 - 1)]}`);\n }\n }\n static getMaxWidthRowSplit(t8) {\n let e = t8.length;\n if (e === 0 || e === 1)\n return 0;\n let o = 0;\n for (let n = 0; n < e - 1; ++n) {\n let s = t8[n + 1] - t8[n];\n s > o && (o = s);\n }\n return o;\n }\n static getMaxWidthValueRowID(t8) {\n let e = t8.length;\n if (e === 0)\n return 0;\n let o = 0, n = t8[0], s = 0;\n for (let a = 1; a < e; ++a) {\n let i = t8[a];\n i !== n && (n = i, s = Math.max(a - o, s), o = a);\n }\n return Math.max(e - o, s);\n }\n tensorShapeFromTensor(t8, e, o = true) {\n if (e.length === 0) {\n if (t8[0] === -1)\n return [];\n throw new Error(\"The only valid scalar shape tensor is the fully unknown shape specified as -1.\");\n }\n return S_(t8, o);\n }\n calculateOutputSize(t8) {\n let e = this.valuesShape, o = this.defaultValueShape;\n w.validateDefaultValueShape(o, e);\n let n = this.tensorShapeFromTensor(this.shape, this.shapeShape), a = w.combineRaggedTensorToTensorShapes(this.raggedRank, n, e);\n a[0] < 0 && (a[0] = t8);\n for (let i = 1; i <= this.raggedRank; ++i)\n a[i] < 0 && (a[i] = this.getMaxWidth(i));\n return a;\n }\n calculateFirstParentOutputIndex(t8, e, o) {\n let n = Math.min(t8, o), s = [], a = 0;\n for (let i = 0; i < n; ++i, a += e)\n s.push(a);\n for (let i = n; i < t8; ++i)\n s.push(-1);\n return y.assert(s.length === t8, () => \"Final length of result must be equal to firstDimension.\"), s;\n }\n calculateOutputIndexRowSplit(t8, e, o, n) {\n let s = t8.length, a = [];\n for (let i = 0; i < s - 1; ++i) {\n let p = t8[i + 1] - t8[i], u = Math.min(n, p), c = e[i];\n c === -1 && (u = 0);\n for (let l = 0; l < u; ++l)\n a.push(c), c += o;\n for (let l = 0; l < p - u; ++l)\n a.push(-1);\n }\n if (s > 0 && a.length !== t8[s - 1])\n throw new Error(\"Invalid row split size.\");\n return a;\n }\n calculateOutputIndexValueRowID(t8, e, o, n) {\n let s = t8.length, a = [];\n if (s === 0)\n return [];\n let i = 0, p = t8[0];\n if (p >= e.length)\n throw new Error(`Got currentValueRowId=${p}, which is not less than ${e.length}`);\n let u = e[p];\n a.push(u);\n for (let c = 1; c < s; ++c) {\n let l = t8[c];\n if (l === p)\n u >= 0 && (++i, i < n ? u += o : u = -1);\n else {\n if (i = 0, p = l, l >= e.length)\n throw new Error(`Got nextValueRowId=${l} which is not less than ${e.length}`);\n u = e[l];\n }\n a.push(u);\n }\n if (a.length !== t8.length)\n throw new Error(\"Invalid row ids.\");\n return a;\n }\n calculateOutputIndex(t8, e, o, n) {\n let s = this.getRowPartitionTensor(t8), a = this.getRowPartitionTypeByDimension(t8);\n switch (a) {\n case Ao.VALUE_ROWIDS:\n return this.calculateOutputIndexValueRowID(s, e, o, n);\n case Ao.ROW_SPLITS:\n if (s.length - 1 > e.length)\n throw new Error(`Row partition size is greater than output size: ${s.length - 1} > ${e.length}`);\n return this.calculateOutputIndexRowSplit(s, e, o, n);\n default:\n throw new Error(`Unsupported partition type: ${Ao[a]}`);\n }\n }\n getFirstDimensionSize() {\n let t8 = this.rowPartitionValues[0];\n if (this.rowPartitionTypes.length === 0)\n throw new Error(\"No row_partition_types given.\");\n let e = this.rowPartitionTypes[0];\n switch (e) {\n case Ao.FIRST_DIM_SIZE:\n return t8[0];\n case Ao.VALUE_ROWIDS:\n throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");\n case Ao.ROW_SPLITS:\n return this.rowPartitionValuesShapes[0][0] - 1;\n default:\n throw new Error(`Cannot handle type ${Ao[e]}`);\n }\n }\n compute() {\n if (this.rowPartitionValues[0].length <= 0)\n throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");\n let e = this.getFirstDimensionSize(), o = this.calculateOutputSize(e), n = new Array(this.raggedRank + 1);\n n[n.length - 1] = 1;\n for (let p = n.length - 2; p >= 0; --p)\n n[p] = n[p + 1] * o[p + 1];\n let s = S_(o, false), a = y.getArrayFromDType(this.valuesDType, y.sizeFromShape(s));\n if (n[0] * o[0] > 0) {\n let p = this.calculateFirstParentOutputIndex(e, n[0], o[0]);\n for (let u = 1; u <= this.raggedRank; ++u)\n p = this.calculateOutputIndex(u - 1, p, n[u], o[u]);\n this.setOutput(this.raggedRank, p, a, s);\n }\n return [s, a];\n }\n setOutput(t8, e, o, n) {\n if (o.length === 0)\n return;\n let s = this.values, a = o, i = n.slice();\n i = i.slice(t8 + 1);\n let p = y.sizeFromShape(i), u = e.length, c = this.defaultValue;\n if (c.length !== p && c.length !== 1) {\n let f = this.defaultValueShape;\n De(() => {\n let h = W(c, f);\n c = iu(h, i).dataSync();\n });\n }\n let l = 0, m = 0, d = 0;\n for (let f = 0; f <= u; ++f) {\n let h = f < u ? e[f] : -1;\n if (h === d) {\n ++d;\n continue;\n }\n if (m < d) {\n let g = s.subarray(l * p), x = a.subarray(m * p), b = (d - m) * p;\n w_(x, g, b);\n }\n if (f >= u) {\n let g = o.length;\n h = Math.floor(g / p);\n }\n if (h > d)\n if (this.defaultValue.length === 1)\n a.subarray(d * p, h * p).fill(this.defaultValue[0]), d = h;\n else\n for (; h > d; ) {\n let g = a.slice(d * p);\n w_(g, c, p), ++d;\n }\n h < 0 ? (l = f + 1, m = d) : (l = f, m = d, d = m + 1);\n }\n }\n};\nfunction w_(r, t8, e) {\n for (let o = 0; o < e; o++)\n r[o] = t8[o];\n}\nfunction S_(r, t8) {\n let e = [];\n for (let o of r) {\n if (o < 0) {\n if (!t8)\n throw new Error(`Dimension ${o} must be >= 0`);\n if (o < -1)\n throw new Error(`Dimension ${o} must be >= -1`);\n o = -1;\n }\n e.push(o);\n }\n return e;\n}\nfunction Af(r, t8, e, o, n, s, a, i, p, u) {\n return new kc(r, t8, e, o, n, s, a, i, p, u).compute();\n}\nfunction fp(r, t8, e, o) {\n let n = r === t8, s = r < t8 && e < 0, a = t8 < r && e > 1;\n if (n || s || a)\n return y.makeZerosTypedArray(0, o);\n let i = Math.abs(Math.ceil((t8 - r) / e)), p = y.makeZerosTypedArray(i, o);\n t8 < r && e === 1 && (e = -1), p[0] = r;\n for (let u = 1; u < p.length; u++)\n p[u] = p[u - 1] + e;\n return p;\n}\nvar aI = Xt((r) => 1 / Math.sqrt(r));\nvar nY = Ar(ms, aI);\nvar I_ = { kernelName: ms, backendName: \"cpu\", kernelFunc: nY };\nfunction zs(r, t8, e, o, n, s, a, i, p, u) {\n let c = [o / n, n], l = r.values, m = t8.values;\n if (o === 0)\n return me(e, t8.dtype);\n let d = p instanceof tt ? p : me(c, t8.dtype);\n typeof p == \"string\" || typeof p == \"number\" ? d.values.fill(p) : typeof p == \"boolean\" && d.values.fill(+p);\n for (let f = 0; f < s; f++) {\n let h = [], g = 0;\n for (let x = 0; x < a; x++) {\n let b = l[f * a + x];\n h.push(b), g += b * i[x];\n }\n if (g < 0 || g >= o / n)\n throw new Error(`Invalid indices: ${h} does not index into ${e}`);\n for (let x = 0; x < n; x++)\n u ? d.values[g * n + x] += m[f * n + x] : d.values[g * n + x] = t8.rank === 0 ? m[0] : m[f * n + x];\n }\n return d;\n}\nvar v_ = Xt((r) => 1 / (1 + Math.exp(-r)));\nvar iI = Ie(Cs, (r) => 1 / (1 + Math.exp(-r)));\nvar k_ = { kernelName: Cs, backendName: \"cpu\", kernelFunc: iI };\nfunction hp(r, t8, e, o, n) {\n let s = ct.isSliceContinous(o, t8, e), a = y.sizeFromShape(e), i = y.computeStrides(o);\n if (s) {\n let l = ct.computeFlatOffset(t8, i);\n return n === \"string\" ? r.slice(l, l + a) : r.subarray(l, l + a);\n }\n let p = n === \"string\" ? w.fromUint8ToStringArray(r) : r, u = me(o, n, p), c = me(e, n);\n for (let l = 0; l < c.size; ++l) {\n let m = c.indexToLoc(l), d = m.map((f, h) => f + t8[h]);\n c.set(u.get(...d), ...m);\n }\n return n === \"string\" ? w.fromStringArrayToUint8(c.values) : c.values;\n}\nfunction Fo(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, size: a } = o;\n Q(n, \"slice\");\n let [i, p] = ct.parseSliceParams(n, s, a);\n ct.assertParamsValid(n, i, p);\n let u = e.data.get(n.dataId).values, c = hp(u, i, p, n.shape, n.dtype);\n return e.makeTensorInfo(p, n.dtype, c);\n}\nvar N_ = { kernelName: ha, backendName: \"cpu\", kernelFunc: Fo };\nfunction Ff(r, t8, e, o, n, s, a) {\n let i = t8[0], p = s[0], u = new Array(p), c = new Array(i), l = t8[1];\n if (p === 0) {\n if (i !== 0)\n throw new Error(w.getSparseFillEmptyRowsIndicesDenseShapeMismatch(i));\n let g = y.getArrayFromDType(e, 0), x = y.getArrayFromDType(n, 0);\n return [g, [0, l], x, u, c];\n }\n let m = true, d = 0, f = new Array(p).fill(0);\n for (let g = 0; g < i; ++g) {\n let x = r[g * l];\n if (x < 0)\n throw new Error(w.getSparseFillEmptyRowsNegativeIndexErrorMessage(g, x));\n if (x >= p)\n throw new Error(w.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g, x, p));\n ++f[x], m = m && x >= d, d = x;\n }\n let h = true;\n for (let g = 0; g < p; ++g) {\n let x = f[g] === 0;\n u[g] = x, h = h && !x, f[g] = Math.max(f[g], 1), g > 0 && (f[g] += f[g - 1]);\n }\n if (h && m) {\n let g = r, x = o;\n for (let b = 0; b < i; ++b)\n c[b] = b;\n return [g, [i, l], x, u, c];\n } else {\n let g = f[p - 1], x = y.getArrayFromDType(e, g * l), b = y.getArrayFromDType(n, g), C = new Array(p).fill(0);\n for (let S = 0; S < i; ++S) {\n let k = r[S * l], _ = C[k], E = (k === 0 ? 0 : f[k - 1]) + _;\n C[k]++;\n for (let R = 0; R < l; ++R)\n x[E * l + R] = r[S * l + R];\n b[E] = o[S], c[S] = E;\n }\n for (let S = 0; S < p; ++S)\n if (C[S] === 0) {\n let _ = S === 0 ? 0 : f[S - 1];\n x[_ * l + 0] = S;\n for (let E = 1; E < l; ++E)\n x[_ * l + E] = 0;\n b[_] = a;\n }\n return [x, [g, l], b, u, c];\n }\n}\nfunction Pf(r, t8, e, o, n) {\n let s = y.sizeFromShape(o), a = t8[0], i = n.length, p = [], u = 1, c = -1;\n for (let g = 0; g < i; ++g) {\n let x = n[g];\n if (x === -1) {\n if (c !== -1)\n throw new Error(w.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(c, g));\n c = g, p.push(1);\n } else {\n if (x < 0)\n throw new Error(w.getSparseReshapeNegativeOutputDimErrorMessage(g, x));\n u *= x, p.push(x);\n }\n }\n if (c !== -1) {\n if (u <= 0)\n throw new Error(w.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage());\n let g = Math.trunc(s / u);\n if (u * g !== s)\n throw new Error(w.getSparseReshapeInputOutputMultipleErrorMessage(o, p));\n p[c] = g;\n }\n if (y.sizeFromShape(p) !== s)\n throw new Error(w.getSparseReshapeInputOutputMismatchErrorMessage(o, p));\n let m = o.length, d = [];\n if (m > 0) {\n d[m - 1] = 1;\n for (let g = m - 2; g >= 0; --g)\n d[g] = d[g + 1] * o[g + 1];\n }\n let f = [];\n if (i > 0) {\n f[i - 1] = 1;\n for (let g = i - 2; g >= 0; --g)\n f[g] = f[g + 1] * p[g + 1];\n }\n let h = y.getArrayFromDType(e, a * i);\n for (let g = 0; g < a; ++g) {\n let x = 0;\n for (let b = 0; b < m; ++b)\n x += r[g * m + b] * d[b];\n for (let b = 0; b < i; ++b)\n h[g * i + b] = Math.trunc(x / f[b]), x %= f[b];\n }\n return [h, [a, i], p];\n}\nfunction Nc(r, t8, e, o, n, s = false, a = 0) {\n let i = o.length, p = [t8[0], r.length / t8[0]], u = p[1], l = i > 0 ? n[i - 1] + 1 : 0;\n if (l < 0)\n throw new Error(w.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());\n let m = t8.slice();\n m[0] = l;\n let d = m.reduce((C, S) => C * S, 1), f = y.getArrayFromDType(e, d);\n if (i === 0)\n return l > 0 && f.fill(a), [f, m];\n if (l <= 0)\n throw new Error(w.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());\n let h = 0, g = 1, x = 0, b = n[h];\n for (; ; ) {\n let C = 0;\n if (g < i) {\n if (C = n[g], b === C) {\n ++g;\n continue;\n }\n if (b >= C)\n throw new Error(w.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage());\n }\n if (b < 0 || b >= l)\n throw new Error(w.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b, l));\n b > x && f.fill(a, x * u, b * u);\n for (let S = h; S < g; ++S) {\n let k = o[S];\n if (k < 0 || k >= p[0])\n throw new Error(w.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(S, o[S], p[0]));\n for (let _ = 0; _ < u; _++)\n f[b * u + _] += r[k * u + _];\n }\n if (s)\n for (let S = 0; S < u; S++)\n f[b * u + S] /= g - h;\n if (h = g, ++g, x = b + 1, b = C, g > i)\n break;\n }\n return x < l && f.fill(a, x * u, l * u), [f, m];\n}\nvar T_ = Xt((r) => Math.sqrt(r));\nvar sY = Ie(Ss, (r) => Math.sqrt(r));\nvar __ = { kernelName: Ss, backendName: \"cpu\", kernelFunc: sY };\nvar uI = ze((r, t8) => {\n let e = r - t8;\n return e * e;\n});\nvar aY = Ye(Ns, uI);\nvar $_ = { kernelName: Ns, backendName: \"cpu\", kernelFunc: aY };\nvar pI = Xt((r, t8) => {\n let { pattern: e, replaceGlobal: o, rewrite: n } = t8;\n return r.replace(new RegExp(e, o ? \"g\" : \"\"), n);\n});\nvar iY = Ar(Ou, pI);\nvar E_ = { kernelName: Ou, backendName: \"cpu\", kernelFunc: iY };\nfunction Of(r, t8, e, o) {\n let n = me(r, t8.dtype);\n for (let s = 0; s < n.size; s++) {\n let a = n.indexToLoc(s), i = new Array(a.length);\n for (let p = 0; p < i.length; p++)\n i[p] = a[p] * e[p] + o[p];\n n.set(t8.get(...i), ...a);\n }\n return n;\n}\nvar cI = class {\n constructor(t8, e, o, n, s, a) {\n this.separator = y.encodeString(t8), this.nGramWidths = e, this.leftPad = y.encodeString(o), this.rightPad = y.encodeString(n), this.padWidth = s, this.preserveShort = a;\n }\n getPadWidth(t8) {\n return Math.min(this.padWidth < 0 ? t8 - 1 : this.padWidth, t8 - 1);\n }\n getNumNGrams(t8, e) {\n let o = this.getPadWidth(e);\n return Math.max(0, t8 + 2 * o - e + 1);\n }\n createNGrams(t8, e, o, n, s, a) {\n for (let i = 0; i < s; ++i) {\n let p = this.getPadWidth(a), u = Math.max(0, p - i), c = Math.max(0, p - (s - (i + 1))), l = a - (u + c), m = e + (u > 0 ? 0 : i - p), d = 0;\n d += u * this.leftPad.length;\n for (let b = 0; b < l; ++b)\n d += t8[m + b].length;\n d += c * this.rightPad.length;\n let f = u + c + l - 1;\n d += f * this.separator.length, o[n + i] = new Uint8Array(d);\n let h = o[n + i], g = 0, x = (b) => b.forEach((C) => h[g++] = C);\n for (let b = 0; b < u; ++b)\n x(this.leftPad), x(this.separator);\n for (let b = 0; b < l - 1; ++b)\n x(t8[m + b]), x(this.separator);\n if (l > 0) {\n x(t8[m + l - 1]);\n for (let b = 0; b < c; ++b)\n x(this.separator), x(this.rightPad);\n } else {\n for (let b = 0; b < c - 1; ++b)\n x(this.rightPad), x(this.separator);\n x(this.rightPad);\n }\n }\n }\n compute(t8, e) {\n let o = t8.length, n = e.length;\n if (n > 0) {\n let p = e[0];\n if (p !== 0)\n throw new Error(`First split value must be 0, got ${p}`);\n for (let u = 1; u < n; ++u) {\n let c = e[u] >= p;\n if (c = c && e[u] <= o, !c)\n throw new Error(`Invalid split value ${e[u]}, must be in [${p}, ${o}]`);\n p = e[u];\n }\n if (p !== o)\n throw new Error(`Last split value must be data size. Expected ${o}, got ${p}`);\n }\n let s = n - 1, a = y.getArrayFromDType(\"int32\", n);\n if (o === 0 || n === 0) {\n let p = new Array(o);\n for (let u = 0; u <= s; ++u)\n a[u] = 0;\n return [p, a];\n }\n a[0] = 0;\n for (let p = 1; p <= s; ++p) {\n let u = e[p] - e[p - 1], c = 0;\n this.nGramWidths.forEach((l) => {\n c += this.getNumNGrams(u, l);\n }), this.preserveShort && u > 0 && c === 0 && (c = 1), a[p] = a[p - 1] + c;\n }\n let i = new Array(a[s]);\n for (let p = 0; p < s; ++p) {\n let u = e[p], c = a[p];\n if (this.nGramWidths.forEach((l) => {\n let m = e[p + 1] - e[p], d = this.getNumNGrams(m, l);\n this.createNGrams(t8, u, i, c, d, l), c += d;\n }), this.preserveShort && c === a[p]) {\n let l = e[p + 1] - e[p];\n if (l === 0)\n continue;\n let m = l + 2 * this.padWidth, d = 1;\n this.createNGrams(t8, u, i, c, d, m);\n }\n }\n return [i, a];\n }\n};\nfunction gp(r, t8, e, o, n, s, a, i) {\n return new cI(e, o, n, s, a, i).compute(r, t8);\n}\nfunction uY(r, t8, e, o) {\n if (!r.length)\n return;\n if (t8.length === 0) {\n for (let s = 0; s < r.length; ++s)\n o.push(r.subarray(s, s + 1));\n return;\n }\n if (t8.length === 1) {\n let s = t8[0], a = r.indexOf(s);\n for (; a !== -1; ) {\n let i = r.subarray(0, a);\n (!e || i.length !== 0) && o.push(i), r = r.subarray(a + 1), a = r.indexOf(s);\n }\n (!e || r.length !== 0) && o.push(r);\n return;\n }\n let n = 0;\n for (let s = 0; s < r.length + 1; s++)\n if (s === r.length || t8.indexOf(r[s]) !== -1) {\n let a = r.subarray(n, s);\n (!e || a.length !== 0) && o.push(a), n = s + 1;\n }\n}\nfunction xp(r, t8, e) {\n let o = r.length, n = [], s = 0, a = 0, i = new Array(o);\n for (let m = 0; m < o; ++m) {\n let d = n.length;\n uY(r[m], t8, e, n);\n let f = n.length - d;\n i[m] = f, s += f, a = Math.max(a, f);\n }\n let p = y.getArrayFromDType(\"int32\", s * 2), u = new Array(s), c = [o, a], l = 0;\n for (let m = 0; m < o; ++m)\n for (let d = 0; d < i[m]; ++d)\n p[l * 2] = m, p[l * 2 + 1] = d, u[l] = n[l], ++l;\n return [p, u, c];\n}\nfunction yp(r, t8) {\n let e = y.getArrayFromDType(\"int32\", r.length);\n for (let o = 0; o < r.length; ++o)\n e[o] = y.fingerPrint64(r[o]).modulo(t8).getLowBitsUnsigned();\n return e;\n}\nvar lI = ze((r, t8) => r - t8);\nvar pY = Sc((r, t8, e, o) => ({ real: r - e, imag: t8 - o }));\nvar Vl = Ye(_s, lI, pY);\nvar R_ = { kernelName: _s, backendName: \"cpu\", kernelFunc: Vl };\nfunction Mf(r, t8) {\n let e = new Array(r.rank);\n for (let n = 0; n < e.length; n++)\n e[n] = r.shape[n] * t8[n];\n let o = me(e, r.dtype);\n for (let n = 0; n < o.values.length; ++n) {\n let s = o.indexToLoc(n), a = new Array(r.rank);\n for (let p = 0; p < a.length; p++)\n a[p] = s[p] % r.shape[p];\n let i = r.locToIndex(a);\n o.values[n] = r.values[i];\n }\n return o;\n}\nvar Wl = (r, t8) => {\n let e = t8.value - r.value;\n return e === 0 ? r.index - t8.index : e;\n};\nfunction D_(r, t8, e = 0, o = r.length - 1) {\n for (; o > e; ) {\n if (o - e > 600) {\n let i = o - e + 1, p = t8 - e + 1, u = Math.log(i), c = 0.5 * Math.exp(2 * u / 3), l = 0.5 * Math.sqrt(u * c * (i - c) / i) * Math.sign(p - i / 2), m = Math.max(e, Math.floor(t8 - p * c / i + l)), d = Math.min(o, Math.floor(t8 + (i - p) * c / i + l));\n D_(r, t8, m, d);\n }\n let n = r[t8], s = e, a = o;\n for (y.swap(r, e, t8), Wl(r[o], n) > 0 && y.swap(r, e, o); s < a; ) {\n for (y.swap(r, s, a), s++, a--; Wl(r[s], n) < 0; )\n s = s + 1;\n for (; Wl(r[a], n) > 0; )\n a = a - 1;\n }\n Wl(r[e], n) === 0 ? y.swap(r, e, a) : (a = a + 1, y.swap(r, a, o)), a <= t8 && (e = a + 1), t8 <= a && (o = a - 1);\n }\n}\nfunction Lf(r, t8, e, o, n) {\n let s = t8[t8.length - 1], [a, i] = [r.length / s, s], p = y.getTypedArrayFromDType(e, a * o), u = y.getTypedArrayFromDType(\"int32\", a * o);\n for (let l = 0; l < a; l++) {\n let m = l * i, d = r.subarray(m, m + i), f = new Array(d.length);\n d.forEach((b, C) => f[C] = { value: b, index: C }), o < f.length && (D_(f, o), f = f.slice(0, o)), n && f.sort(Wl);\n let h = l * o, g = p.subarray(h, h + o), x = u.subarray(h, h + o);\n for (let b = 0; b < o; b++)\n g[b] = f[b].value, x[b] = f[b].index;\n }\n let c = t8.slice();\n return c[c.length - 1] = o, [me(c, e, p), me(c, \"int32\", u)];\n}\nfunction bp(r, t8, e, o) {\n let n = y.parseAxisParam(t8, e)[0], s = [1, e[0], 1];\n for (let f = 0; f < n; f++)\n s[0] *= e[f];\n s[1] = e[n];\n for (let f = n + 1; f < e.length; f++)\n s[2] *= e[f];\n let a = /* @__PURE__ */ new Map(), i = new Int32Array(e[n]), p = new tt(s, o, r), u = [], c = s[0] === 1 && s[2] === 1;\n for (let f = 0; f < e[n]; f++) {\n let h;\n if (c)\n h = r[f].toString();\n else {\n let x = [];\n for (let b = 0; b < s[0]; b++)\n for (let C = 0; C < s[2]; C++)\n x.push(p.get(b, f, C));\n h = x.join(\",\");\n }\n let g = a.get(h);\n if (g != null)\n i[f] = g;\n else {\n let x = a.size;\n a.set(h, x), i[f] = x, u.push(f);\n }\n }\n let l = s.slice();\n l[1] = a.size;\n let m = new tt(l, o);\n u.forEach((f, h) => {\n for (let g = 0; g < s[0]; g++)\n for (let x = 0; x < s[2]; x++)\n m.set(p.get(g, f, x), g, h, x);\n });\n let d = e.slice();\n return d[n] = l[1], { outputValues: m.values, outputShape: d, indices: i };\n}\nvar cY = \"4.11.0\";\nsu(\"cpu\", () => new xu(), 1);\nvar mI = Ie(gn, (r) => r >= 0 ? r : Math.exp(r) - 1);\nvar A_ = { kernelName: gn, backendName: \"cpu\", kernelFunc: mI };\nfunction dI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { alpha: s } = o;\n Q([n], \"leakyRelu\");\n let a = y.sizeFromShape(n.shape), i = e.data.get(n.dataId).values, p = y.getTypedArrayFromDType(\"float32\", a);\n for (let u = 0; u < i.length; u++)\n p[u] = i[u] < 0 ? s * i[u] : i[u];\n return e.makeTensorInfo(n.shape, \"float32\", p);\n}\nvar F_ = { kernelName: Rn, backendName: \"cpu\", kernelFunc: dI };\nvar lY = ze((r, t8) => r < 0 ? t8 * r : r);\nfunction fI(r) {\n let { inputs: t8, backend: e } = r, { x: o, alpha: n } = t8;\n Q([o, n], \"prelu\");\n let s = e.data.get(o.dataId).values, a = e.data.get(n.dataId).values, [i, p] = lY(o.shape, n.shape, s, a, \"float32\");\n return e.makeTensorInfo(p, \"float32\", i);\n}\nvar P_ = { kernelName: os, backendName: \"cpu\", kernelFunc: fI };\nvar hI = Ie(as, (r) => Math.max(0, r));\nvar O_ = { kernelName: as, backendName: \"cpu\", kernelFunc: hI };\nvar gI = Ie(ps, (r) => Math.min(Math.max(0, r), 6));\nvar M_ = { kernelName: ps, backendName: \"cpu\", kernelFunc: gI };\nfunction Cp(r, t8, e, o, n) {\n if (e === \"linear\")\n return mr({ inputs: { x: t8 }, backend: r });\n if (e === \"relu\")\n return hI({ inputs: { x: t8 }, backend: r });\n if (e === \"elu\")\n return mI({ inputs: { x: t8 }, backend: r });\n if (e === \"relu6\")\n return gI({ inputs: { x: t8 }, backend: r });\n if (e === \"prelu\")\n return fI({ inputs: { x: t8, alpha: o }, backend: r });\n if (e === \"leakyrelu\")\n return dI({ inputs: { x: t8 }, backend: r, attrs: { alpha: n } });\n if (e === \"sigmoid\")\n return iI({ inputs: { x: t8 }, backend: r });\n throw new Error(`Activation ${e} has not been implemented for the CPU backend.`);\n}\nfunction Ve(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { shape: s } = o, a = y.sizeFromShape(n.shape), i = y.inferFromImplicitShape(s, a), p = y.sizeFromShape(i);\n y.assert(a === p, () => `The new shape (${i}) has ${p} elements and the old shape (${n.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`), e.incRef(n.dataId);\n let u = e.data.get(n.dataId);\n if (u.complexTensorInfos != null) {\n let c = u.complexTensorInfos.real, l = u.complexTensorInfos.imag;\n c.shape = i, l.shape = i;\n }\n return { dataId: n.dataId, shape: i, dtype: n.dtype };\n}\nvar L_ = { kernelName: da, backendName: \"cpu\", kernelFunc: Ve };\nfunction xI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s } = t8, { transposeA: a, transposeB: i } = o;\n Q([n, s], \"matMul\");\n let p = n.shape.length, u = s.shape.length, c = a ? n.shape[p - 2] : n.shape[p - 1], l = i ? s.shape[u - 1] : s.shape[u - 2], m = a ? n.shape[p - 1] : n.shape[p - 2], d = i ? s.shape[u - 2] : s.shape[u - 1], f = n.shape.slice(0, -2), h = s.shape.slice(0, -2), g = y.sizeFromShape(f), x = y.sizeFromShape(h), C = Ir.assertAndGetBroadcastShape(n.shape.slice(0, -2), s.shape.slice(0, -2)).concat([m, d]);\n y.assert(c === l, () => `Error in matMul: inner shapes (${c}) and (${l}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);\n let S = a ? [g, c, m] : [g, m, c], k = i ? [x, d, l] : [x, l, d], _ = Ve({ inputs: { x: n }, backend: e, attrs: { shape: S } }), E = Ve({ inputs: { x: s }, backend: e, attrs: { shape: k } }), R = a ? _.shape[1] : _.shape[2], D = a ? _.shape[2] : _.shape[1], P = i ? E.shape[1] : E.shape[2], O = Math.max(g, x), M = e.data.get(_.dataId).values, L = e.data.get(E.dataId).values, B = y.computeStrides(_.shape), z = y.computeStrides(E.shape), [U, j, q] = a ? [B[0], 1, B[1]] : [B[0], B[1], 1], [Y, J, re] = i ? [1, z[1], z[0]] : [z[1], 1, z[0]], ne = D * P, ee = me([O, D, P], _.dtype), oe = ee.values, ie = e.blockSize;\n for (let le = 0; le < O; le++) {\n let be = le % g, _e = le % x;\n for (let ve = 0; ve < D; ve += ie) {\n let Fe = Math.min(ve + ie, D);\n for (let Pe = 0; Pe < P; Pe += ie) {\n let st = Math.min(Pe + ie, P);\n for (let lt = 0; lt < R; lt += ie) {\n let Ge = Math.min(lt + ie, R);\n for (let mt = ve; mt < Fe; mt++)\n for (let it = Pe; it < st; it++) {\n let gt = 0;\n for (let xt = lt; xt < Ge; xt++) {\n let Lr = M[be * U + mt * j + xt * q], Lt = L[xt * Y + it * J + _e * re];\n gt += Lr * Lt;\n }\n oe[le * ne + (mt * P + it)] += gt;\n }\n }\n }\n }\n }\n return e.disposeIntermediateTensorInfo(_), e.disposeIntermediateTensorInfo(E), e.makeTensorInfo(C, ee.dtype, ee.values);\n}\nvar B_ = { kernelName: Jo, backendName: \"cpu\", kernelFunc: xI };\nfunction mY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s, bias: a, preluActivationWeights: i } = t8, { transposeA: p, transposeB: u, activation: c, leakyreluAlpha: l } = o, m, d, f, h = [];\n m = xI({ inputs: { a: n, b: s }, attrs: { transposeA: p, transposeB: u }, backend: e }), a && (d = Oa({ inputs: { a: m, b: a }, backend: e }), h.push(m), m = d), c && (f = Cp(e, m, c, i, l), h.push(m), m = f);\n for (let x of h)\n e.disposeIntermediateTensorInfo(x);\n return m;\n}\nvar z_ = { kernelName: Io, backendName: \"cpu\", kernelFunc: mY };\nvar dY = Ie(Wo, (r) => Math.acos(r));\nvar V_ = { kernelName: Wo, backendName: \"cpu\", kernelFunc: dY };\nvar fY = Ie(Uo, (r) => Math.acosh(r));\nvar W_ = { kernelName: Uo, backendName: \"cpu\", kernelFunc: fY };\nfunction hY(r) {\n let { inputs: t8, backend: e } = r, o = t8;\n Q(t8, \"addN\");\n let n = o.map((i) => e.data.get(i.dataId).values), s = me(o[0].shape, o[0].dtype), a = s.values;\n for (let i = 0; i < o.length; i++) {\n let p = n[i];\n for (let u = 0; u < a.length; u++)\n a[u] += p[u];\n }\n return e.makeTensorInfo(s.shape, s.dtype, s.values);\n}\nvar U_ = { kernelName: Go, backendName: \"cpu\", kernelFunc: hY };\nfunction gY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n Q(n, \"all\");\n let i = y.parseAxisParam(s, n.shape), p = i, u = w.getAxesPermutation(p, n.shape.length), c = n;\n u != null && (c = It({ inputs: { x: n }, backend: e, attrs: { perm: u } }), p = w.getInnerMostAxes(p.length, n.shape.length)), w.assertAxesAreInnerMostDims(\"all\", p, c.shape.length);\n let [l, m] = w.computeOutAndReduceShapes(c.shape, p), d = y.sizeFromShape(m), f = y.makeZerosTypedArray(y.sizeFromShape(l), c.dtype), h = e.data.get(c.dataId).values;\n for (let x = 0; x < f.length; ++x) {\n let b = x * d, C = h[b];\n for (let S = 0; S < d; ++S) {\n let k = h[b + S];\n C = C && k;\n }\n f[x] = C;\n }\n u != null && e.disposeIntermediateTensorInfo(c);\n let g = e.makeTensorInfo(l, c.dtype, f);\n if (a) {\n let x = w.expandShapeToKeepDim(l, i), b = Ve({ inputs: { x: g }, backend: e, attrs: { shape: x } });\n return e.disposeIntermediateTensorInfo(g), b;\n }\n return g;\n}\nvar G_ = { kernelName: Ho, backendName: \"cpu\", kernelFunc: gY };\nfunction xY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n Q(n, \"any\");\n let i = y.parseAxisParam(s, n.shape), p = i, u = w.getAxesPermutation(p, n.shape.length), c = n;\n u != null && (c = It({ inputs: { x: n }, backend: e, attrs: { perm: u } }), p = w.getInnerMostAxes(p.length, n.shape.length)), w.assertAxesAreInnerMostDims(\"any\", p, c.shape.length);\n let [l, m] = w.computeOutAndReduceShapes(c.shape, p), d = y.sizeFromShape(m), f = y.makeZerosTypedArray(y.sizeFromShape(l), c.dtype), h = e.data.get(c.dataId).values;\n for (let x = 0; x < f.length; ++x) {\n let b = x * d, C = h[b];\n for (let S = 0; S < d; ++S) {\n let k = h[b + S];\n C = C || k;\n }\n f[x] = C;\n }\n u != null && e.disposeIntermediateTensorInfo(c);\n let g = e.makeTensorInfo(l, c.dtype, f);\n if (a) {\n let x = w.expandShapeToKeepDim(l, i), b = Ve({ inputs: { x: g }, backend: e, attrs: { shape: x } });\n return e.disposeIntermediateTensorInfo(g), b;\n }\n return g;\n}\nvar H_ = { kernelName: Ko, backendName: \"cpu\", kernelFunc: xY };\nfunction yY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o;\n Q(n, \"argMax\");\n let a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = It({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), a = [a[0]], w.assertAxesAreInnerMostDims(\"argMax\", a, p.shape.length);\n let [c, l] = w.computeOutAndReduceShapes(p.shape, a), m = y.sizeFromShape(c), d = y.makeZerosTypedArray(m, \"int32\"), f = y.sizeFromShape(l), h = e.data.get(p.dataId).values;\n for (let g = 0; g < d.length; ++g) {\n let x = g * f, b = h[x], C = 0;\n for (let S = 0; S < f; ++S) {\n let k = h[x + S];\n k > b && (b = k, C = S);\n }\n d[g] = C;\n }\n return u.forEach((g) => e.disposeIntermediateTensorInfo(g)), e.makeTensorInfo(c, \"int32\", d);\n}\nvar K_ = { kernelName: Ys, backendName: \"cpu\", kernelFunc: yY };\nfunction bY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o;\n Q(n, \"argMin\");\n let a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = It({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), a = [a[0]], w.assertAxesAreInnerMostDims(\"argMin\", a, p.shape.length);\n let [c, l] = w.computeOutAndReduceShapes(p.shape, a), m = y.sizeFromShape(c), d = y.makeZerosTypedArray(m, \"int32\"), f = y.sizeFromShape(l), h = e.data.get(p.dataId).values;\n for (let g = 0; g < d.length; ++g) {\n let x = g * f, b = h[x], C = 0;\n for (let S = 0; S < f; ++S) {\n let k = h[x + S];\n k < b && (b = k, C = S);\n }\n d[g] = C;\n }\n return u.forEach((g) => e.disposeIntermediateTensorInfo(g)), e.makeTensorInfo(c, \"int32\", d);\n}\nvar q_ = { kernelName: Qs, backendName: \"cpu\", kernelFunc: bY };\nvar CY = Ie(qo, (r) => Math.asin(r));\nvar j_ = { kernelName: qo, backendName: \"cpu\", kernelFunc: CY };\nvar wY = Ie(jo, (r) => Math.asinh(r));\nvar X_ = { kernelName: jo, backendName: \"cpu\", kernelFunc: wY };\nvar SY = Ie(Xo, (r) => Math.atan(r));\nvar Y_ = { kernelName: Xo, backendName: \"cpu\", kernelFunc: SY };\nvar IY = ze((r, t8) => Math.atan2(r, t8));\nvar vY = Ye(Qo, IY);\nvar Q_ = { kernelName: Qo, backendName: \"cpu\", kernelFunc: vY };\nvar kY = Ie(Yo, (r) => Math.atanh(r));\nvar Z_ = { kernelName: Yo, backendName: \"cpu\", kernelFunc: kY };\nfunction _c(r, t8, e, o, n, s) {\n let a = n.strideHeight, i = n.strideWidth, p = n.dilationHeight, u = n.dilationWidth, c = n.effectiveFilterHeight, l = n.effectiveFilterWidth, m = n.padInfo.top, d = n.padInfo.left, f = s === \"max\" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, h = me(n.outShape, e), g = h.values, x = n.outShape[1] * n.outShape[2] * n.outShape[3], b = n.outShape[2] * n.outShape[3], C = n.outShape[3];\n for (let S = 0; S < n.batchSize; ++S) {\n let k = S * x, _ = S * o[0];\n for (let E = 0; E < n.inChannels; ++E)\n for (let R = 0; R < n.outHeight; ++R) {\n let D = R * a - m, P = Math.max(0, D), O = Math.min(n.inHeight, c + D), M = k + R * b;\n for (let L = 0; L < n.outWidth; ++L) {\n let B = L * i - d, z = Math.max(0, B), U = Math.min(n.inWidth, l + B), j = f, q = 0, Y = 0;\n for (let re = P; re < O; re += p) {\n let ne = _ + re * o[1];\n for (let ee = z; ee < U; ee += u) {\n let oe = ne + ee * o[2], ie = r[oe + E];\n s === \"max\" && ie > j ? j = ie : s === \"avg\" && (q += ie, Y++);\n }\n if (isNaN(j))\n break;\n }\n let J = M + L * C + E;\n g[J] = s === \"avg\" ? q / Y : j;\n }\n }\n }\n return h;\n}\nfunction Bf(r, t8, e, o, n = false, s = false) {\n let a = me(o.outShape, \"int32\"), i = o.strideHeight, p = o.strideWidth, u = o.dilationHeight, c = o.dilationWidth, l = o.effectiveFilterHeight, m = o.effectiveFilterWidth, d = o.padInfo.top, f = o.padInfo.left, h = me(t8, e, r);\n for (let g = 0; g < o.batchSize; ++g)\n for (let x = 0; x < o.inChannels; ++x)\n for (let b = 0; b < o.outHeight; ++b) {\n let C = b * i - d, S = C;\n for (; S < 0; )\n S += u;\n let k = Math.min(o.inHeight, l + C);\n for (let _ = 0; _ < o.outWidth; ++_) {\n let E = _ * p - f, R = E;\n for (; R < 0; )\n R += c;\n let D = Math.min(o.inWidth, m + E), P = Number.NEGATIVE_INFINITY, O = -1;\n for (let M = S; M < k; M += u) {\n let L = M - C;\n for (let B = R; B < D; B += c) {\n let z = B - E, U = h.get(g, M, B, x);\n U > P && (P = U, n ? O = s ? ((g * o.inHeight + M) * o.inWidth + B) * o.inChannels + x : (M * o.inWidth + B) * o.inChannels + x : O = L * m + z);\n }\n }\n a.set(O, g, b, _, x);\n }\n }\n return a;\n}\nfunction zf(r, t8, e, o, n, s) {\n let a = n.strideDepth, i = n.strideHeight, p = n.strideWidth, u = n.dilationDepth, c = n.dilationHeight, l = n.dilationWidth, m = n.effectiveFilterDepth, d = n.effectiveFilterHeight, f = n.effectiveFilterWidth, h = n.padInfo.front, g = n.padInfo.top, x = n.padInfo.left, b = s === \"max\" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, C = me(n.outShape, e), S = C.values, k = n.outShape[1] * n.outShape[2] * n.outShape[3] * n.outShape[4], _ = n.outShape[2] * n.outShape[3] * n.outShape[4], E = n.outShape[3] * n.outShape[4], R = n.outShape[4];\n for (let D = 0; D < n.batchSize; ++D) {\n let P = D * k, O = D * o[0];\n for (let M = 0; M < n.inChannels; ++M)\n for (let L = 0; L < n.outDepth; ++L) {\n let B = L * a - h, z = B;\n for (; z < 0; )\n z += u;\n let U = Math.min(n.inDepth, m + B), j = P + L * _;\n for (let q = 0; q < n.outHeight; ++q) {\n let Y = q * i - g, J = Y;\n for (; J < 0; )\n J += c;\n let re = Math.min(n.inHeight, d + Y), ne = j + q * E;\n for (let ee = 0; ee < n.outWidth; ++ee) {\n let oe = ee * p - x, ie = oe;\n for (; ie < 0; )\n ie += l;\n let le = Math.min(n.inWidth, f + oe), be = ne + ee * R, _e = b, ve = 0, Fe = 0;\n for (let st = z; st < U; st += u) {\n let lt = O + st * o[1];\n for (let Ge = J; Ge < re; Ge += c) {\n let mt = lt + Ge * o[2];\n for (let it = ie; it < le; it += l) {\n let gt = mt + it * o[3], xt = r[gt + M];\n if (s === \"max\" && xt > _e ? _e = xt : s === \"avg\" && (ve += xt, Fe++), isNaN(_e))\n break;\n }\n if (isNaN(_e))\n break;\n }\n if (isNaN(_e))\n break;\n }\n let Pe = be + M;\n S[Pe] = s === \"avg\" ? ve / Math.max(Fe, 1) : _e;\n }\n }\n }\n }\n return C;\n}\nfunction J_(r, t8) {\n let e = me(t8.outShape, \"int32\"), o = t8.strideDepth, n = t8.strideHeight, s = t8.strideWidth, a = t8.dilationDepth, i = t8.dilationHeight, p = t8.dilationWidth, u = t8.effectiveFilterDepth, c = t8.effectiveFilterHeight, l = t8.effectiveFilterWidth, m = t8.padInfo.front, d = t8.padInfo.top, f = t8.padInfo.left;\n for (let h = 0; h < t8.batchSize; ++h)\n for (let g = 0; g < t8.inChannels; ++g)\n for (let x = 0; x < t8.outDepth; ++x) {\n let b = x * o - m, C = b;\n for (; C < 0; )\n C += a;\n let S = Math.min(t8.inDepth, u + b);\n for (let k = 0; k < t8.outHeight; ++k) {\n let _ = k * n - d, E = _;\n for (; E < 0; )\n E += i;\n let R = Math.min(t8.inHeight, c + _);\n for (let D = 0; D < t8.outWidth; ++D) {\n let P = D * s - f, O = P;\n for (; O < 0; )\n O += p;\n let M = Math.min(t8.inWidth, l + P), L = Number.NEGATIVE_INFINITY, B = -1;\n for (let z = C; z < S; z += a) {\n let U = z - b;\n for (let j = E; j < R; j += i) {\n let q = j - _;\n for (let Y = O; Y < M; Y += p) {\n let J = Y - P, re = r.get(h, z, j, Y, g);\n re >= L && (L = re, B = U * c * l + q * c + J);\n }\n }\n }\n e.set(B, h, x, k, D, g);\n }\n }\n }\n return e;\n}\nfunction NY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8;\n Q(n, \"avgPool\");\n let { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1;\n y.assert(w.eitherStridesOrDilationsAreOne(a, u), () => `Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);\n let c = w.computePool2DInfo(n.shape, s, a, u, i, p), l;\n if (c.filterWidth === 1 && c.filterHeight === 1 && y.arraysEqual(c.inShape, c.outShape))\n l = mr({ inputs: { x: n }, backend: e });\n else {\n let m = e.data.get(n.dataId).values, d = y.computeStrides(n.shape), f = _c(m, n.shape, n.dtype, d, c, \"avg\");\n l = e.makeTensorInfo(c.outShape, n.dtype, f.values);\n }\n return l;\n}\nvar e$ = { kernelName: Zo, backendName: \"cpu\", kernelFunc: NY };\nfunction TY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p, dataFormat: u } = o;\n Q(n, \"avgPool3d\");\n let c = w.computePool3DInfo(n.shape, s, a, 1, i, p, u), l = e.data.get(n.dataId).values, m = zf(l, n.shape, n.dtype, y.computeStrides(n.shape), c, \"avg\");\n return e.makeTensorInfo(m.shape, \"float32\", m.values);\n}\nvar t$ = { kernelName: Zs, backendName: \"cpu\", kernelFunc: TY };\nfunction _Y(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = o;\n Q([n, s], \"avgPool3DGrad\");\n let c = w.computePool3DInfo(s.shape, a, i, 1, p, u), l = c.strideDepth, m = c.strideHeight, d = c.strideWidth, f = c.filterDepth, h = c.filterHeight, g = c.filterWidth, x = c.dilationDepth, b = c.dilationHeight, C = c.dilationWidth, S = c.effectiveFilterDepth, k = c.effectiveFilterHeight, _ = c.effectiveFilterWidth, E = S - 1 - c.padInfo.front, R = _ - 1 - c.padInfo.left, D = k - 1 - c.padInfo.top, P = me(s.shape, \"float32\"), O = 1 / (f * h * g), M = e.bufferSync(n);\n for (let L = 0; L < c.batchSize; ++L)\n for (let B = 0; B < c.inChannels; ++B)\n for (let z = 0; z < c.inDepth; ++z)\n for (let U = 0; U < c.inHeight; ++U)\n for (let j = 0; j < c.inWidth; ++j) {\n let q = z - E, Y = U - D, J = j - R, re = 0;\n for (let ne = 0; ne < S; ne += x) {\n let ee = (q + ne) / l;\n if (!(ee < 0 || ee >= c.outDepth || Math.floor(ee) !== ee))\n for (let oe = 0; oe < k; oe += b) {\n let ie = (Y + oe) / m;\n if (!(ie < 0 || ie >= c.outHeight || Math.floor(ie) !== ie))\n for (let le = 0; le < _; le += C) {\n let be = (J + le) / d;\n if (be < 0 || be >= c.outWidth || Math.floor(be) !== be)\n continue;\n let _e = M.get(L, ee, ie, be, B);\n re += _e;\n }\n }\n }\n P.set(re * O, L, z, U, j, B);\n }\n return e.makeTensorInfo(P.shape, P.dtype, P.values);\n}\nvar r$ = { kernelName: Ai, backendName: \"cpu\", kernelFunc: _Y };\nfunction $Y(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s;\n Q([n, s], \"avgPoolGrad\");\n let { filterSize: i, strides: p, pad: u } = o, c = w.computePool2DInfo(a.shape, i, p, 1, u), l = c.strideHeight, m = c.strideWidth, d = c.filterHeight, f = c.filterWidth, h = c.dilationHeight, g = c.dilationWidth, x = c.effectiveFilterHeight, b = c.effectiveFilterWidth, C = b - 1 - c.padInfo.left, S = x - 1 - c.padInfo.top, k = me(a.shape, \"float32\"), _ = 1 / (d * f), E = e.data.get(n.dataId).values, R = me(n.shape, \"float32\", E);\n for (let D = 0; D < c.batchSize; ++D)\n for (let P = 0; P < c.inChannels; ++P)\n for (let O = 0; O < c.inHeight; ++O)\n for (let M = 0; M < c.inWidth; ++M) {\n let L = O - S, B = M - C, z = 0;\n for (let U = 0; U < x; U += h) {\n let j = (L + U) / l;\n if (!(j < 0 || j >= c.outHeight || Math.floor(j) !== j))\n for (let q = 0; q < b; q += g) {\n let Y = (B + q) / m;\n if (Y < 0 || Y >= c.outWidth || Math.floor(Y) !== Y)\n continue;\n let J = R.get(D, j, Y, P);\n z += J;\n }\n }\n k.set(z * _, D, O, M, P);\n }\n return e.makeTensorInfo(k.shape, k.dtype, k.values);\n}\nvar o$ = { kernelName: Di, backendName: \"cpu\", kernelFunc: $Y };\nfunction EY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, scale: s, offset: a, mean: i, variance: p } = t8;\n y.assert(i.shape.length === p.shape.length, () => \"Batch normalization gradient requires mean and variance to have equal ranks.\"), y.assert(a == null || i.shape.length === a.shape.length, () => \"Batch normalization gradient requires mean and offset to have equal ranks.\"), y.assert(s == null || i.shape.length === s.shape.length, () => \"Batch normalization gradient requires mean and scale to have equal ranks.\"), Q([n, i, p, s, a], \"batchNorm\");\n let { varianceEpsilon: u } = o;\n u == null && (u = 1e-3);\n let c = e.data.get(n.dataId).values, l = e.data.get(i.dataId).values, m = e.data.get(p.dataId).values, d = s ? e.data.get(s.dataId).values : new Float32Array([1]), f = a ? e.data.get(a.dataId).values : new Float32Array([0]), h = new Float32Array(c.length), g = f.length, x = d.length, b = m.length, C = l.length, S = 0, k = 0, _ = 0, E = 0;\n for (let R = 0; R < c.length; ++R)\n h[R] = f[S++] + (c[R] - l[k++]) * d[_++] / Math.sqrt(m[E++] + u), S >= g && (S = 0), k >= C && (k = 0), _ >= x && (_ = 0), E >= b && (E = 0);\n return e.makeTensorInfo(n.shape, n.dtype, h);\n}\nvar n$ = { kernelName: vn, backendName: \"cpu\", kernelFunc: EY };\nfunction RY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, crops: a } = o;\n Q([n], \"batchToSpaceND\");\n let i = s.reduce((x, b) => x * b), p = w.getReshaped(n.shape, s, i), u = w.getPermuted(p.length, s.length), c = w.getReshapedPermuted(n.shape, s, i), l = w.getSliceBeginCoords(a, s.length), m = w.getSliceSize(c, a, s.length), d = Ve({ inputs: { x: n }, backend: e, attrs: { shape: p } }), f = It({ inputs: { x: d }, backend: e, attrs: { perm: u } }), h = Ve({ inputs: { x: f }, backend: e, attrs: { shape: c } }), g = Fo({ inputs: { x: h }, backend: e, attrs: { begin: l, size: m } });\n return e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), e.disposeIntermediateTensorInfo(h), g;\n}\nvar s$ = { kernelName: Js, backendName: \"cpu\", kernelFunc: RY };\nfunction DY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a } = o, i = e.data.get(n.dataId).values, p = e.data.get(s.dataId).values, u = Ic(i, p, s.dtype, s.shape, a);\n return e.makeTensorInfo([a], s.dtype, u);\n}\nvar a$ = { kernelName: en, backendName: \"cpu\", kernelFunc: DY };\nfunction AY(r) {\n let { inputs: t8, backend: e } = r, { s0: o, s1: n } = t8, s = e.data.get(o.dataId).values, a = e.data.get(n.dataId).values, i = w.assertAndGetBroadcastShape(Array.from(s), Array.from(a));\n return e.makeTensorInfo([i.length], \"int32\", Int32Array.from(i));\n}\nvar i$ = { kernelName: ea, backendName: \"cpu\", kernelFunc: AY };\nvar FY = Ie(Co, (r, t8) => {\n let e = t8;\n return r > e.clipValueMax ? e.clipValueMax : r < e.clipValueMin ? e.clipValueMin : r;\n});\nvar u$ = { kernelName: Co, backendName: \"cpu\", kernelFunc: FY };\nvar PY = (r) => {\n let { x: t8 } = r.inputs, e = r.backend, o = new Float32Array(y.sizeFromShape(t8.shape)), n = e.data.get(t8.dataId), s = n.complexTensorInfos.real, a = n.complexTensorInfos.imag, i = e.data.get(s.dataId).values, p = e.data.get(a.dataId).values;\n for (let u = 0; u < i.length; u++) {\n let c = i[u], l = p[u];\n o[u] = Math.hypot(c, l);\n }\n return e.makeOutput(o, t8.shape, \"float32\");\n};\nvar p$ = { kernelName: Pi, backendName: \"cpu\", kernelFunc: PY };\nfunction Ma(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.data.get(o.dataId).complexTensorInfos.imag, s = e.data.get(n.dataId).values;\n return e.makeTensorInfo(n.shape, n.dtype, s);\n}\nvar c$ = { kernelName: Gi, backendName: \"cpu\", kernelFunc: Ma };\nfunction yu(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o, s = y.parseAxisParam(n, t8[0].shape)[0], a = t8.map((h) => h.shape);\n w.assertParamsConsistent(a, s);\n let i = w.computeOutShape(t8.map((h) => h.shape), s);\n if (y.sizeFromShape(i) === 0)\n return e.makeTensorInfo(i, t8[0].dtype, []);\n let p = t8.filter((h) => y.sizeFromShape(h.shape) > 0);\n if (p.length === 1)\n return mr({ inputs: { x: p[0] }, backend: e });\n if (p[0].dtype === \"complex64\") {\n let h = p.map((S) => Ro({ inputs: { input: S }, backend: e })), g = p.map((S) => Ma({ inputs: { input: S }, backend: e })), x = yu({ inputs: h, backend: e, attrs: { axis: s } }), b = yu({ inputs: g, backend: e, attrs: { axis: s } }), C = Kt({ inputs: { real: x, imag: b }, backend: e });\n return h.forEach((S) => e.disposeIntermediateTensorInfo(S)), g.forEach((S) => e.disposeIntermediateTensorInfo(S)), e.disposeIntermediateTensorInfo(x), e.disposeIntermediateTensorInfo(b), C;\n }\n let u = p.map((h) => {\n let x = [-1, y.sizeFromShape(h.shape.slice(s))];\n return Ve({ inputs: { x: h }, backend: e, attrs: { shape: x } });\n }), c = u.map((h) => ({ vals: e.data.get(h.dataId).values, shape: h.shape }));\n i = w.computeOutShape(u.map((h) => h.shape), 1);\n let l = u[0].shape[0] === 1, m = mp(c, i, t8[0].dtype, l), d = w.computeOutShape(p.map((h) => h.shape), s), f = e.makeTensorInfo(d, t8[0].dtype, m);\n return u.forEach((h) => e.disposeIntermediateTensorInfo(h)), f;\n}\nvar l$ = { kernelName: ta, backendName: \"cpu\", kernelFunc: yu };\nfunction yI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dataFormat: p, dilations: u, dimRoundingMode: c } = o;\n Q([n, s], \"conv2d\");\n let l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, s.shape, a, u, i, c, false, l), d = m.filterHeight, f = m.filterWidth, h = m.dilationHeight, g = m.dilationWidth, x = m.padInfo.left, b = m.padInfo.top, C = m.dataFormat === \"channelsLast\", S = new tt(m.outShape, n.dtype), k = y.computeStrides(n.shape), _ = y.computeStrides(s.shape), E = k[0], R = C ? k[1] : k[2], D = C ? k[2] : 1, P = C ? 1 : k[1], O = S.strides[0], M = C ? S.strides[1] : S.strides[2], L = C ? S.strides[2] : 1, B = C ? 1 : S.strides[1], z = e.data.get(n.dataId).values, U = e.data.get(s.dataId).values, j = S.values;\n for (let q = 0; q < m.batchSize; ++q) {\n let Y = q * E, J = q * O;\n for (let re = 0; re < m.outHeight; ++re) {\n let ne = J + re * M, ee = re * m.strideHeight - b;\n for (let oe = 0; oe < d; ++oe) {\n let ie = ee + oe * h;\n if (ie < 0 || ie >= m.inHeight)\n continue;\n let le = oe * _[0], be = Y + ie * R;\n for (let _e = 0; _e < m.outWidth; ++_e) {\n let ve = ne + _e * L, Fe = _e * m.strideWidth - x;\n for (let Pe = 0; Pe < f; ++Pe) {\n let st = Fe + Pe * g;\n if (st < 0 || st >= m.inWidth)\n continue;\n let lt = le + Pe * _[1], Ge = be + st * D, mt = lt;\n for (let it = 0; it < m.inChannels; ++it) {\n let gt = z[Ge + it * P];\n for (let xt = 0; xt < m.outChannels; ++xt)\n j[ve + xt * B] += gt * U[mt + xt];\n mt += m.outChannels;\n }\n }\n }\n }\n }\n }\n return e.makeTensorInfo(S.shape, S.dtype, j);\n}\nvar m$ = { kernelName: rn, backendName: \"cpu\", kernelFunc: yI };\nfunction OY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, dataFormat: p, dimRoundingMode: u, filterShape: c } = o;\n Q([n, s], \"conv2dBackpropFilter\");\n let l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, c, a, 1, i, u, false, l), { strideHeight: d, strideWidth: f, filterHeight: h, filterWidth: g } = m, x = m.dataFormat === \"channelsLast\", b = new tt(m.filterShape, \"float32\"), C = m.padInfo.left, S = m.padInfo.top, k = e.data.get(n.dataId).values, _ = e.data.get(s.dataId).values, E = new tt(n.shape, n.dtype, k), R = new tt(s.shape, s.dtype, _);\n for (let D = 0; D < h; ++D) {\n let P = Math.max(0, Math.ceil((S - D) / d)), O = Math.min(m.outHeight, (m.inHeight + S - D) / d);\n for (let M = 0; M < g; ++M) {\n let L = Math.max(0, Math.ceil((C - M) / f)), B = Math.min(m.outWidth, (m.inWidth + C - M) / f);\n for (let z = 0; z < m.inChannels; ++z)\n for (let U = 0; U < m.outChannels; ++U) {\n let j = 0;\n for (let q = 0; q < m.batchSize; ++q)\n for (let Y = P; Y < O; ++Y) {\n let J = D + Y * d - S;\n for (let re = L; re < B; ++re) {\n let ne = M + re * f - C;\n x ? j += E.get(q, J, ne, z) * R.get(q, Y, re, U) : j += E.get(q, z, J, ne) * R.get(q, U, Y, re);\n }\n }\n b.set(j, D, M, z, U);\n }\n }\n }\n return e.makeTensorInfo(b.shape, b.dtype, b.values);\n}\nvar d$ = { kernelName: Oi, backendName: \"cpu\", kernelFunc: OY };\nfunction MY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { inputShape: a, strides: i, pad: p, dataFormat: u, dimRoundingMode: c } = o;\n Q([n, s], \"conv2dBackpropInput\");\n let l = y.computeStrides(s.shape), m = y.computeStrides(n.shape), d = w.convertConv2DDataFormat(u), f = w.computeConv2DInfo(a, s.shape, i, 1, p, c, false, d), h = new tt(f.inShape, \"float32\"), g = h.values, x = e.data.get(n.dataId).values, b = e.data.get(s.dataId).values, [C, S, k] = l, { batchSize: _, filterHeight: E, filterWidth: R, inChannels: D, inHeight: P, inWidth: O, outChannels: M, outHeight: L, outWidth: B, strideHeight: z, strideWidth: U } = f;\n d = f.dataFormat;\n let j = E - 1 - f.padInfo.top, q = R - 1 - f.padInfo.left, Y = d === \"channelsLast\", J = h.strides[0], re = Y ? h.strides[1] : h.strides[2], ne = Y ? h.strides[2] : 1, ee = Y ? 1 : h.strides[1], oe = m[0], ie = Y ? m[1] : m[2], le = Y ? m[2] : 1, be = Y ? 1 : m[1];\n for (let _e = 0; _e < _; ++_e)\n for (let ve = 0; ve < D; ++ve)\n for (let Fe = 0; Fe < P; ++Fe) {\n let Pe = Fe - j, st = Math.max(0, Math.ceil(Pe / z)), lt = Math.min(L, (E + Pe) / z);\n for (let Ge = 0; Ge < O; ++Ge) {\n let mt = Ge - q, it = Math.max(0, Math.ceil(mt / U)), gt = Math.min(B, (R + mt) / U), xt = 0;\n for (let Lt = st; Lt < lt; ++Lt) {\n let to = Lt * z - Pe;\n for (let nr = it; nr < gt; ++nr) {\n let _t = nr * U - mt, sr = oe * _e + ie * Lt + le * nr, ar = C * (E - 1 - to) + S * (R - 1 - _t) + k * ve;\n for (let ro = 0; ro < M; ++ro) {\n let oo = x[sr + be * ro], hr = b[ar + ro];\n xt += oo * hr;\n }\n }\n }\n let Lr = J * _e + re * Fe + ne * Ge + ee * ve;\n g[Lr] = xt;\n }\n }\n return e.makeTensorInfo(h.shape, h.dtype, h.values);\n}\nvar f$ = { kernelName: on, backendName: \"cpu\", kernelFunc: MY };\nfunction LY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o;\n Q([n, s], \"conv3d\");\n let u = w.computeConv3DInfo(n.shape, s.shape, a, p, i), { filterDepth: c, filterHeight: l, filterWidth: m, dilationDepth: d, dilationHeight: f, dilationWidth: h, padInfo: g } = u, x = g.front, b = g.left, C = g.top, S = new tt(u.outShape, n.dtype), k = e.data.get(n.dataId).values, _ = e.data.get(s.dataId).values, E = S.values, R = y.computeStrides(n.shape), D = y.computeStrides(s.shape);\n for (let P = 0; P < u.batchSize; ++P) {\n let O = P * R[0], M = P * S.strides[0];\n for (let L = 0; L < u.outDepth; ++L) {\n let B = M + L * S.strides[1], z = L * u.strideDepth - x;\n for (let U = 0; U < c; ++U) {\n let j = z + U * d;\n if (j < 0 || j >= u.inDepth)\n continue;\n let q = U * D[0], Y = O + j * R[1];\n for (let J = 0; J < u.outHeight; ++J) {\n let re = B + J * S.strides[2], ne = J * u.strideHeight - C;\n for (let ee = 0; ee < l; ++ee) {\n let oe = ne + ee * f;\n if (oe < 0 || oe >= u.inHeight)\n continue;\n let ie = q + ee * D[1], le = Y + oe * R[2];\n for (let be = 0; be < u.outWidth; ++be) {\n let _e = re + be * u.outChannels, ve = be * u.strideWidth - b;\n for (let Fe = 0; Fe < m; ++Fe) {\n let Pe = ve + Fe * h;\n if (Pe < 0 || Pe >= u.inWidth)\n continue;\n let st = ie + Fe * D[2], lt = le + Pe * u.inChannels, Ge = st;\n for (let mt = 0; mt < u.inChannels; ++mt) {\n let it = k[lt + mt];\n for (let gt = 0; gt < u.outChannels; ++gt)\n E[_e + gt] += it * _[Ge + gt];\n Ge += u.outChannels;\n }\n }\n }\n }\n }\n }\n }\n }\n return e.makeTensorInfo(S.shape, S.dtype, S.values);\n}\nvar h$ = { kernelName: nn, backendName: \"cpu\", kernelFunc: LY };\nfunction BY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, filterShape: p } = o;\n Q([n, s], \"conv3dBackpropFilterV2\");\n let u = y.computeStrides(n.shape), c = y.computeStrides(s.shape), l = w.computeConv3DInfo(n.shape, p, a, 1, i), m = l.strideDepth, d = l.strideHeight, f = l.strideWidth, h = l.filterDepth, g = l.filterHeight, x = l.filterWidth, b = new tt(l.filterShape, \"float32\"), C = b.values, [S, k, _, E] = b.strides, R = e.data.get(s.dataId).values, [D, P, O, M] = c, L = e.data.get(n.dataId).values, [B, z, U, j] = u, q = l.padInfo.front, Y = l.padInfo.left, J = l.padInfo.top;\n for (let re = 0; re < h; ++re) {\n let ne = Math.max(0, Math.ceil((q - re) / m)), ee = Math.min(l.outDepth, (l.inDepth + q - re) / m), oe = re * S;\n for (let ie = 0; ie < g; ++ie) {\n let le = Math.max(0, Math.ceil((J - ie) / d)), be = Math.min(l.outHeight, (l.inHeight + J - ie) / d), _e = ie * k + oe;\n for (let ve = 0; ve < x; ++ve) {\n let Fe = Math.max(0, Math.ceil((Y - ve) / f)), Pe = Math.min(l.outWidth, (l.inWidth + Y - ve) / f), st = ve * _ + _e;\n for (let lt = 0; lt < l.inChannels; ++lt) {\n let Ge = lt * E + st;\n for (let mt = 0; mt < l.outChannels; ++mt) {\n let it = 0;\n for (let gt = 0; gt < l.batchSize; ++gt) {\n let xt = gt * B, Lr = gt * D;\n for (let Lt = ne; Lt < ee; ++Lt) {\n let nr = (re + Lt * m - q) * z + xt, _t = Lt * P + Lr;\n for (let sr = le; sr < be; ++sr) {\n let ro = (ie + sr * d - J) * U + nr, oo = sr * O + _t;\n for (let hr = Fe; hr < Pe; ++hr) {\n let Bo = (ve + hr * f - Y) * j + ro, Ks = hr * M + oo;\n it += L[Bo + lt] * R[Ks + mt];\n }\n }\n }\n }\n C[Ge + mt] = it;\n }\n }\n }\n }\n }\n return e.makeTensorInfo(b.shape, b.dtype, b.values);\n}\nvar g$ = { kernelName: Xa, backendName: \"cpu\", kernelFunc: BY };\nfunction zY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { pad: a, strides: i, inputShape: p } = o;\n Q([n], \"conv3dBackpropInputV2\");\n let u = y.computeStrides(n.shape), c = y.computeStrides(s.shape), l = w.computeConv3DInfo(p, s.shape, i, 1, a), m = new tt(l.inShape, \"float32\"), d = m.values, [f, h, g, x] = m.strides, b = e.data.get(n.dataId).values, [C, S, k, _] = u, E = e.data.get(s.dataId).values, [R, D, P, O] = c, { batchSize: M, filterDepth: L, filterHeight: B, filterWidth: z, inChannels: U, inDepth: j, inHeight: q, inWidth: Y, outChannels: J, outDepth: re, outHeight: ne, outWidth: ee, strideDepth: oe, strideHeight: ie, strideWidth: le } = l, be = L - 1 - l.padInfo.front, _e = B - 1 - l.padInfo.top, ve = z - 1 - l.padInfo.left;\n for (let Fe = 0; Fe < M; ++Fe)\n for (let Pe = 0; Pe < U; ++Pe)\n for (let st = 0; st < j; ++st) {\n let lt = st - be, Ge = Math.max(0, Math.ceil(lt / oe)), mt = Math.min(re, (L + lt) / oe);\n for (let it = 0; it < q; ++it) {\n let gt = it - _e, xt = Math.max(0, Math.ceil(gt / ie)), Lr = Math.min(ne, (B + gt) / ie);\n for (let Lt = 0; Lt < Y; ++Lt) {\n let to = Lt - ve, nr = Math.max(0, Math.ceil(to / le)), _t = Math.min(ee, (z + to) / le), sr = 0;\n for (let ar = Ge; ar < mt; ++ar) {\n let ro = ar * oe - lt;\n for (let oo = xt; oo < Lr; ++oo) {\n let hr = oo * ie - gt;\n for (let Wa = nr; Wa < _t; ++Wa) {\n let Bo = Wa * le - to, Ks = C * Fe + S * ar + k * oo + _ * Wa, Yt = R * (L - 1 - ro) + D * (B - 1 - hr) + P * (z - 1 - Bo) + O * Pe;\n for (let Ua = 0; Ua < J; ++Ua) {\n let sl = b[Ks + Ua], al = E[Yt + Ua];\n sr += sl * al;\n }\n }\n }\n }\n d[f * Fe + h * st + g * it + x * Lt + Pe] = sr;\n }\n }\n }\n return e.makeTensorInfo(m.shape, m.dtype, m.values);\n}\nvar x$ = { kernelName: sn, backendName: \"cpu\", kernelFunc: zY };\nvar VY = Ie(an, (r) => Math.cos(r));\nvar y$ = { kernelName: an, backendName: \"cpu\", kernelFunc: VY };\nvar WY = Ie(un, (r) => Math.cosh(r));\nvar b$ = { kernelName: un, backendName: \"cpu\", kernelFunc: WY };\nfunction UY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n, boxes: s, boxInd: a } = t8, { cropSize: i, method: p, extrapolationValue: u } = o, [c, l, m, d] = n.shape, f = s.shape[0], [h, g] = i, x = me([f, h, g, d], \"float32\"), b = e.data.get(s.dataId).values, C = e.data.get(a.dataId).values, S = e.data.get(n.dataId).values, k = y.computeStrides(n.shape), _ = y.computeStrides(x.shape);\n for (let E = 0; E < f; E++) {\n let R = E * 4, D = b[R], P = b[R + 1], O = b[R + 2], M = b[R + 3], L = C[E];\n if (L >= c)\n continue;\n let B = h > 1 ? (O - D) * (l - 1) / (h - 1) : 0, z = g > 1 ? (M - P) * (m - 1) / (g - 1) : 0;\n for (let U = 0; U < h; U++) {\n let j = h > 1 ? D * (l - 1) + U * B : 0.5 * (D + O) * (l - 1);\n if (j < 0 || j > l - 1) {\n for (let q = 0; q < g; q++)\n for (let Y = 0; Y < d; Y++) {\n let J = Y + q * _[2] + U * _[1] + E * _[0];\n x.values[J] = u;\n }\n continue;\n }\n if (p === \"bilinear\") {\n let q = Math.floor(j), Y = Math.ceil(j), J = j - q;\n for (let re = 0; re < g; re++) {\n let ne = g > 1 ? P * (m - 1) + re * z : 0.5 * (P + M) * (m - 1);\n if (ne < 0 || ne > m - 1) {\n for (let le = 0; le < d; le++) {\n let be = le + re * _[2] + U * _[1] + E * _[0];\n x.values[be] = u;\n }\n continue;\n }\n let ee = Math.floor(ne), oe = Math.ceil(ne), ie = ne - ee;\n for (let le = 0; le < d; le++) {\n let be = le + ee * k[2] + q * k[1] + L * k[0], _e = S[be];\n be = le + oe * k[2] + q * k[1] + L * k[0];\n let ve = S[be];\n be = le + ee * k[2] + Y * k[1] + L * k[0];\n let Fe = S[be];\n be = le + oe * k[2] + Y * k[1] + L * k[0];\n let Pe = S[be], st = _e + (ve - _e) * ie, lt = Fe + (Pe - Fe) * ie;\n be = le + re * _[2] + U * _[1] + E * _[0], x.values[be] = st + (lt - st) * J;\n }\n }\n } else\n for (let q = 0; q < g; ++q) {\n let Y = g > 1 ? P * (m - 1) + q * z : 0.5 * (P + M) * (m - 1);\n if (Y < 0 || Y > m - 1) {\n for (let ne = 0; ne < d; ne++) {\n let ee = ne + q * _[2] + U * _[1] + E * _[0];\n x.values[ee] = u;\n }\n continue;\n }\n let J = Math.round(Y), re = Math.round(j);\n for (let ne = 0; ne < d; ne++) {\n let ee = ne + J * k[2] + re * k[1] + L * k[0], oe = ne + q * _[2] + U * _[1] + E * _[0];\n x.values[oe] = S[ee];\n }\n }\n }\n }\n return e.makeTensorInfo(x.shape, x.dtype, x.values);\n}\nvar C$ = { kernelName: ln, backendName: \"cpu\", kernelFunc: UY };\nfunction GY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n Q(n, \"cumprod\");\n let p = w.getAxesPermutation([s], n.shape.length), u = n;\n p != null && (u = It({ inputs: { x: n }, backend: e, attrs: { perm: p } }));\n let c = w.getInnerMostAxes(1, n.shape.length)[0];\n if (c !== u.shape.length - 1)\n throw new Error(`backend.cumprod in CPU expects an inner-most axis=${u.shape.length - 1} but got axis=${c}`);\n let l = dt(u.dtype, \"int32\"), m = y.makeOnesTypedArray(y.sizeFromShape(u.shape), l), d = e.data.get(u.dataId).values, f = u.shape[u.shape.length - 1], h = i ? (x, b) => x + f - b - 1 : (x, b) => x + b;\n for (let x = 0; x < d.length; x += f)\n for (let b = 0; b < f; b++) {\n let C = h(x, b);\n if (b === 0)\n m[C] = a ? 1 : d[C];\n else {\n let S = h(x, b - 1);\n m[C] = a ? d[S] * m[S] : d[C] * m[S];\n }\n }\n let g = e.makeTensorInfo(u.shape, l, m);\n if (p != null) {\n let x = w.getUndoAxesPermutation(p), b = It({ inputs: { x: g }, backend: e, attrs: { perm: x } });\n return e.disposeIntermediateTensorInfo(g), e.disposeIntermediateTensorInfo(u), b;\n }\n return g;\n}\nvar w$ = { kernelName: pn, backendName: \"cpu\", kernelFunc: GY };\nfunction HY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n Q(n, \"cumsum\");\n let p = w.getAxesPermutation([s], n.shape.length), u = n;\n p != null && (u = It({ inputs: { x: n }, backend: e, attrs: { perm: p } }));\n let c = w.getInnerMostAxes(1, n.shape.length)[0];\n if (c !== u.shape.length - 1)\n throw new Error(`backend.cumsum in CPU expects an inner-most axis=${u.shape.length - 1} but got axis=${c}`);\n let l = dt(u.dtype, \"int32\"), m = y.makeZerosTypedArray(y.sizeFromShape(u.shape), l), d = e.data.get(u.dataId).values, f = u.shape[u.shape.length - 1], h = i ? (x, b) => x + f - b - 1 : (x, b) => x + b;\n for (let x = 0; x < d.length; x += f)\n for (let b = 0; b < f; b++) {\n let C = h(x, b);\n if (b === 0)\n m[C] = a ? 0 : d[C];\n else {\n let S = h(x, b - 1);\n m[C] = a ? d[S] + m[S] : d[C] + m[S];\n }\n }\n let g = e.makeTensorInfo(u.shape, l, m);\n if (p != null) {\n let x = w.getUndoAxesPermutation(p), b = It({ inputs: { x: g }, backend: e, attrs: { perm: x } });\n return e.disposeIntermediateTensorInfo(g), e.disposeIntermediateTensorInfo(u), b;\n }\n return g;\n}\nvar S$ = { kernelName: cn, backendName: \"cpu\", kernelFunc: HY };\nfunction KY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a, binaryOutput: i } = o;\n if (n.shape.length === 1) {\n let p = e.data.get(n.dataId).values, u = e.data.get(s.dataId).values, c = Ic(p, u, s.dtype, s.shape, a);\n return e.makeTensorInfo([a], s.dtype, c);\n } else if (n.shape.length === 2) {\n let p = e.bufferSync(n), u = e.bufferSync(s), c = Nf(p, u, a, i);\n return e.makeTensorInfo(c.shape, s.dtype, c.values);\n }\n throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`);\n}\nvar I$ = { kernelName: ra, backendName: \"cpu\", kernelFunc: KY };\nfunction qY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockSize: s, dataFormat: a } = o;\n y.assert(a === \"NHWC\", () => `Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`);\n let i = n.shape[0], p = n.shape[1], u = n.shape[2], c = n.shape[3], l = p * s, m = u * s, d = c / (s * s), f = e.data.get(n.dataId).values, h = new Float32Array(i * l * m * d), g = 0;\n for (let x = 0; x < i; ++x)\n for (let b = 0; b < l; ++b) {\n let C = Math.floor(b / s), S = b % s;\n for (let k = 0; k < m; ++k) {\n let _ = Math.floor(k / s), E = k % s, R = (S * s + E) * d;\n for (let D = 0; D < d; ++D) {\n let O = D + R + c * (_ + u * (C + p * x));\n h[g++] = f[O];\n }\n }\n }\n return e.makeTensorInfo([i, l, m, d], n.dtype, h);\n}\nvar v$ = { kernelName: mn, backendName: \"cpu\", kernelFunc: qY };\nfunction bI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p, dimRoundingMode: u } = o;\n Q([n, s], \"depthwiseConv2DNative\");\n let c = y.computeStrides(n.shape), l = y.computeStrides(s.shape), m = p;\n m == null && (m = [1, 1]), y.assert(w.eitherStridesOrDilationsAreOne(a, m), () => `Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${m}'`);\n let d = w.computeConv2DInfo(n.shape, s.shape, a, m, i, u, true), { filterHeight: f, filterWidth: h, dilationHeight: g, dilationWidth: x, padInfo: b } = d, C = b.left, S = b.top, k = d.outChannels / d.inChannels, _ = new tt(d.outShape, n.dtype), E = e.data.get(n.dataId).values, R = e.data.get(s.dataId).values, D = _.values;\n for (let P = 0; P < d.batchSize; ++P) {\n let O = P * c[0], M = P * _.strides[0];\n for (let L = 0; L < d.outHeight; ++L) {\n let B = M + L * _.strides[1], z = L * d.strideHeight - S;\n for (let U = 0; U < f; ++U) {\n let j = z + U * g;\n if (j < 0 || j >= d.inHeight)\n continue;\n let q = U * l[0], Y = O + j * c[1];\n for (let J = 0; J < d.outWidth; ++J) {\n let re = B + J * _.strides[2], ne = J * d.strideWidth - C;\n for (let ee = 0; ee < h; ++ee) {\n let oe = ne + ee * x;\n if (oe < 0 || oe >= d.inWidth)\n continue;\n let ie = q + ee * l[1], le = Y + oe * d.inChannels, be = re, _e = ie;\n for (let ve = 0; ve < d.inChannels; ++ve) {\n let Fe = E[le + ve];\n for (let Pe = 0; Pe < k; ++Pe)\n D[be + Pe] += Fe * R[_e + Pe];\n be += k, _e += k;\n }\n }\n }\n }\n }\n }\n return e.makeTensorInfo(_.shape, _.dtype, _.values);\n}\nvar k$ = { kernelName: dn, backendName: \"cpu\", kernelFunc: bI };\nfunction jY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, filterShape: c } = o;\n Q([n, s], \"depthwiseConv2dNativeBackpropFilter\");\n let l = w.computeConv2DInfo(n.shape, c, a, i, p, u, true), { strideHeight: m, strideWidth: d, filterHeight: f, filterWidth: h } = l, g = new tt(l.filterShape, \"float32\"), x = l.padInfo.left, b = l.padInfo.top, C = l.outChannels / l.inChannels, S = e.data.get(n.dataId).values, k = new tt(n.shape, n.dtype, S), _ = e.data.get(s.dataId).values, E = new tt(s.shape, s.dtype, _);\n for (let R = 0; R < f; ++R) {\n let D = Math.max(0, Math.ceil((b - R) / m)), P = Math.min(l.outHeight, (l.inHeight + b - R) / m);\n for (let O = 0; O < h; ++O) {\n let M = Math.max(0, Math.ceil((x - O) / d)), L = Math.min(l.outWidth, (l.inWidth + x - O) / d);\n for (let B = 0; B < l.outChannels; ++B) {\n let z = Math.trunc(B / C), U = B % C, j = 0;\n for (let q = 0; q < l.batchSize; ++q)\n for (let Y = D; Y < P; ++Y) {\n let J = R + Y * m - b;\n for (let re = M; re < L; ++re) {\n let ne = O + re * d - x;\n j += k.get(q, J, ne, z) * E.get(q, Y, re, B);\n }\n }\n g.set(j, R, O, z, U);\n }\n }\n }\n return e.makeTensorInfo(g.shape, g.dtype, g.values);\n}\nvar N$ = { kernelName: Mi, backendName: \"cpu\", kernelFunc: jY };\nfunction XY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, inputShape: c } = o;\n Q([n, s], \"depthwiseConv2DNativeBackpropInput\");\n let l = y.computeStrides(n.shape), m = y.computeStrides(s.shape), d = w.computeConv2DInfo(c, s.shape, a, i, p, u, true), f = new tt(d.inShape, \"float32\"), h = f.values, [g, x, b] = f.strides, C = e.data.get(n.dataId).values, [S, k, _] = l, E = e.data.get(s.dataId).values, [R, D, P] = m, { batchSize: O, filterHeight: M, filterWidth: L, inChannels: B, inHeight: z, inWidth: U, outChannels: j, outHeight: q, outWidth: Y, strideHeight: J, strideWidth: re } = d, ne = M - 1 - d.padInfo.top, ee = L - 1 - d.padInfo.left, oe = j / B;\n for (let ie = 0; ie < O; ++ie)\n for (let le = 0; le < B; ++le)\n for (let be = 0; be < z; ++be) {\n let _e = be - ne, ve = Math.max(0, Math.ceil(_e / J)), Fe = Math.min(q, (M + _e) / J);\n for (let Pe = 0; Pe < U; ++Pe) {\n let st = Pe - ee, lt = Math.max(0, Math.ceil(st / re)), Ge = Math.min(Y, (L + st) / re), mt = 0;\n for (let it = ve; it < Fe; ++it) {\n let gt = it * J - _e;\n for (let xt = lt; xt < Ge; ++xt) {\n let Lr = xt * re - st, Lt = S * ie + k * it + _ * xt, to = R * (M - 1 - gt) + D * (L - 1 - Lr) + P * le;\n for (let nr = 0; nr < oe; ++nr) {\n let _t = le * oe + nr, sr = C[Lt + _t], ar = E[to + nr];\n mt += sr * ar;\n }\n }\n }\n h[g * ie + x * be + b * Pe + le] = mt;\n }\n }\n return e.makeTensorInfo(f.shape, f.dtype, f.values);\n}\nvar T$ = { kernelName: Li, backendName: \"cpu\", kernelFunc: XY };\nfunction YY(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = y.sizeFromShape(o.shape), s = e.data.get(o.dataId).values, a = me([n, n], o.dtype), i = a.values;\n for (let u = 0; u < s.length; u++)\n i[u * n + u] = s[u];\n let p = [...o.shape, ...o.shape];\n return e.makeTensorInfo(p, a.dtype, a.values);\n}\nvar _$ = { kernelName: oa, backendName: \"cpu\", kernelFunc: YY };\nvar $$ = { kernelName: fn, backendName: \"cpu\", kernelFunc: ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o, filter: n } = r, { strides: s, pad: a, dilations: i } = e, p = t8, u = p.data.get(o.dataId).values, c = o.shape.length, l = p.data.get(n.dataId).values, m = n.shape.length, { batchSize: d, inHeight: f, inWidth: h, inChannels: g, outHeight: x, outWidth: b, padInfo: C, strideHeight: S, strideWidth: k, filterHeight: _, filterWidth: E, dilationHeight: R, dilationWidth: D, outShape: P } = w.computeDilation2DInfo(o.shape, n.shape, s, a, \"NHWC\", i), O = y.sizeFromShape(P), M = P.length, L = y.getArrayFromDType(o.dtype, O);\n for (let z = 0; z < d; ++z)\n for (let U = 0; U < x; ++U) {\n let j = U * S - C.top;\n for (let q = 0; q < b; ++q) {\n let Y = q * k - C.left;\n for (let J = 0; J < g; ++J) {\n let re = Number.MIN_SAFE_INTEGER;\n for (let ee = 0; ee < _; ++ee) {\n let oe = j + ee * R;\n if (oe >= 0 && oe < f)\n for (let ie = 0; ie < E; ++ie) {\n let le = Y + ie * D;\n if (le >= 0 && le < h) {\n let be = y.locToIndex([z, oe, le, J], c, y.computeStrides(o.shape)), _e = y.locToIndex([ee, ie, J], m, y.computeStrides(n.shape)), ve = u[be] + l[_e];\n ve > re && (re = ve);\n }\n }\n }\n let ne = y.locToIndex([z, U, q, J], M, y.computeStrides(P));\n L[ne] = re;\n }\n }\n }\n return { dataId: p.write(y.toTypedArray(L, o.dtype), P, o.dtype), shape: P, dtype: o.dtype };\n} };\nvar E$ = { kernelName: zi, backendName: \"cpu\", kernelFunc: ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o, filter: n, dy: s } = r, { strides: a, pad: i, dilations: p } = e, u = t8, c = y.toNestedArray(o.shape, u.data.get(o.dataId).values), l = y.toNestedArray(n.shape, u.data.get(n.dataId).values), { batchSize: m, inHeight: d, inWidth: f, inChannels: h, outHeight: g, outWidth: x, padInfo: b, strideHeight: C, strideWidth: S, filterHeight: k, filterWidth: _, dilationHeight: E, dilationWidth: R, outShape: D } = w.computeDilation2DInfo(o.shape, n.shape, a, i, \"NHWC\", p);\n y.assert(s.rank === D.length, () => `Error in ${zi}, dy must have the same rank as output ${D.length}, but got ${s.rank}`);\n let P = y.toNestedArray(D, u.data.get(s.dataId).values), O = y.makeZerosNestedTypedArray(n.shape, n.dtype);\n for (let L = 0; L < m; ++L)\n for (let B = 0; B < g; ++B) {\n let z = B * C - b.top;\n for (let U = 0; U < x; ++U) {\n let j = U * S - b.left;\n for (let q = 0; q < h; ++q) {\n let Y = Number.MIN_SAFE_INTEGER, J = 0, re = 0;\n for (let ne = 0; ne < k; ++ne) {\n let ee = z + ne * E;\n if (ee >= 0 && ee < d)\n for (let oe = 0; oe < _; ++oe) {\n let ie = j + oe * R;\n if (ie >= 0 && ie < f) {\n let le = c[L][ee][ie][q] + l[ne][oe][q];\n le > Y && (Y = le, J = ne, re = oe);\n }\n }\n }\n O[J][re][q] += P[L][B][U][q];\n }\n }\n }\n return { dataId: u.write(y.toTypedArray(O, o.dtype), n.shape, n.dtype), shape: n.shape, dtype: n.dtype };\n} };\nvar R$ = { kernelName: Bi, backendName: \"cpu\", kernelFunc: ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o, filter: n, dy: s } = r, { strides: a, pad: i, dilations: p } = e, u = t8, c = y.toNestedArray(o.shape, u.data.get(o.dataId).values), l = y.toNestedArray(n.shape, u.data.get(n.dataId).values), { batchSize: m, inHeight: d, inWidth: f, inChannels: h, outHeight: g, outWidth: x, padInfo: b, strideHeight: C, strideWidth: S, filterHeight: k, filterWidth: _, dilationHeight: E, dilationWidth: R, outShape: D } = w.computeDilation2DInfo(o.shape, n.shape, a, i, \"NHWC\", p);\n y.assert(s.rank === D.length, () => `Error in ${Bi}, dy must have the same rank as output ${D.length}, but got ${s.rank}`);\n let P = y.toNestedArray(D, u.data.get(s.dataId).values), O = y.makeZerosNestedTypedArray(o.shape, o.dtype);\n for (let L = 0; L < m; ++L)\n for (let B = 0; B < g; ++B) {\n let z = B * C - b.top;\n for (let U = 0; U < x; ++U) {\n let j = U * S - b.left;\n for (let q = 0; q < h; ++q) {\n let Y = Number.MIN_SAFE_INTEGER, J = z < 0 ? 0 : z, re = j < 0 ? 0 : j;\n for (let ne = 0; ne < k; ++ne) {\n let ee = z + ne * E;\n if (ee >= 0 && ee < d)\n for (let oe = 0; oe < _; ++oe) {\n let ie = j + oe * R;\n if (ie >= 0 && ie < f) {\n let le = c[L][ee][ie][q] + l[ne][oe][q];\n le > Y && (Y = le, J = ee, re = ie);\n }\n }\n }\n O[L][J][re][q] += P[L][B][U][q];\n }\n }\n }\n return { dataId: u.write(y.toTypedArray(O, o.dtype), o.shape, o.dtype), shape: o.shape, dtype: o.dtype };\n} };\nfunction QY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n } = t8, { canvas: s, options: a } = o, { contextOptions: i, imageOptions: p } = a || {}, u = (p == null ? void 0 : p.alpha) || 1, c = (i == null ? void 0 : i.contextType) || \"2d\";\n if (c !== \"2d\")\n throw new Error(`Context type ${i.contextType} is not supported by the CPU backend.`);\n let l = s.getContext(c, (i == null ? void 0 : i.contextAttributes) || {});\n if (l == null)\n throw new Error(`Could not get the context with ${c} type.`);\n let [m, d] = n.shape.slice(0, 2), f = n.shape.length === 2 ? 1 : n.shape[2], h = e.data.get(n.dataId).values, g = n.dtype === \"float32\" ? 255 : 1, x = new Uint8ClampedArray(d * m * 4);\n for (let C = 0; C < m * d; ++C) {\n let S = [0, 0, 0, 255 * u];\n for (let _ = 0; _ < f; _++) {\n let E = h[C * f + _];\n if (n.dtype === \"float32\") {\n if (E < 0 || E > 1)\n throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${E}.`);\n } else if (n.dtype === \"int32\" && (E < 0 || E > 255))\n throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${E}.`);\n f === 1 ? (S[0] = E * g, S[1] = E * g, S[2] = E * g) : S[_] = E * g;\n }\n let k = C * 4;\n x[k + 0] = Math.round(S[0]), x[k + 1] = Math.round(S[1]), x[k + 2] = Math.round(S[2]), x[k + 3] = Math.round(S[3]);\n }\n s.width = d, s.height = m;\n let b = new ImageData(x, d, m);\n return l.putImageData(b, 0, 0), n;\n}\nvar D$ = { kernelName: Pu, backendName: \"cpu\", kernelFunc: QY };\nfunction gi(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n Q(n, \"sum\");\n let i;\n n.dtype === \"bool\" ? i = Do({ inputs: { x: n }, backend: e, attrs: { dtype: \"int32\" } }) : i = mr({ inputs: { x: n }, backend: e });\n let p = i.shape.length, u = y.parseAxisParam(s, i.shape), c = w.getAxesPermutation(u, p), l = u, m = i;\n c != null && (m = It({ inputs: { x: i }, backend: e, attrs: { perm: c } }), l = w.getInnerMostAxes(l.length, p)), w.assertAxesAreInnerMostDims(\"sum\", l, m.shape.length);\n let [d, f] = w.computeOutAndReduceShapes(m.shape, l), h = w.upcastType(m.dtype, \"int32\"), g = wc(e, d, h), x = y.sizeFromShape(f), b = e.data.get(g.dataId).values, C = e.data.get(m.dataId).values;\n for (let S = 0; S < b.length; ++S) {\n let k = S * x, _ = 0;\n for (let E = 0; E < x; ++E)\n _ += C[k + E];\n b[S] = _;\n }\n if (a) {\n let S = w.expandShapeToKeepDim(g.shape, u), k = g;\n g = Ve({ inputs: { x: g }, backend: e, attrs: { shape: S } }), e.disposeIntermediateTensorInfo(k);\n }\n return e.disposeIntermediateTensorInfo(i), c != null && e.disposeIntermediateTensorInfo(m), g;\n}\nvar A$ = { kernelName: Is, backendName: \"cpu\", kernelFunc: gi };\nfunction ZY(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { equation: n } = o, s = t8, { allDims: a, summedDims: i, idDims: p } = w.decodeEinsumEquation(n, s.length);\n w.checkEinsumDimSizes(a.length, p, s);\n let { path: u, steps: c } = w.getEinsumComputePath(i, p), l = c.length, m = null, d = a.length, f = [];\n for (let h = 0; h < l; ++h) {\n for (let g of c[h]) {\n let { permutationIndices: x, expandDims: b } = w.getEinsumPermutation(d, p[g]), C;\n w.isIdentityPermutation(x) ? C = s[g] : (C = It({ inputs: { x: s[g] }, backend: e, attrs: { perm: x } }), f.push(C));\n let S = C.shape.slice();\n for (let k = 0; k < b.length; ++k)\n S.splice(b[k], 0, 1);\n y.arraysEqual(C.shape, S) || (C = Ve({ inputs: { x: C }, backend: e, attrs: { shape: S } }), f.push(C)), m === null ? m = C : (m = dp({ inputs: { a: C, b: m }, backend: e }), f.push(m));\n }\n h < l - 1 && (u[h] >= 0 && (m = gi({ inputs: { x: m }, backend: e, attrs: { axis: u[h] - (a.length - d), keepDims: false } }), f.push(m)), d--);\n }\n for (let h of f)\n h !== m && e.disposeIntermediateTensorInfo(h);\n return m;\n}\nvar F$ = { kernelName: Vi, backendName: \"cpu\", kernelFunc: ZY };\nfunction JY(r) {\n let { inputs: t8, backend: e } = r, { dy: o, y: n } = t8;\n Q([o, n], \"eluGrad\");\n let s = new Float32Array(y.sizeFromShape(n.shape)), a = e.data.get(n.dataId).values, i = e.data.get(o.dataId).values;\n for (let p = 0; p < a.length; ++p) {\n let u = a[p];\n u >= 0 ? s[p] = i[p] : s[p] = i[p] * (u + 1);\n }\n return e.makeTensorInfo(n.shape, \"float32\", s);\n}\nvar P$ = { kernelName: Ya, backendName: \"cpu\", kernelFunc: JY };\nvar eQ = w.ERF_P;\nvar tQ = w.ERF_A1;\nvar rQ = w.ERF_A2;\nvar oQ = w.ERF_A3;\nvar nQ = w.ERF_A4;\nvar sQ = w.ERF_A5;\nvar aQ = Ie(xn, (r) => {\n let t8 = Math.sign(r), e = Math.abs(r), o = 1 / (1 + eQ * e);\n return t8 * (1 - ((((sQ * o + nQ) * o + oQ) * o + rQ) * o + tQ) * o * Math.exp(-e * e));\n});\nvar O$ = { kernelName: xn, backendName: \"cpu\", kernelFunc: aQ };\nfunction $c(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { input: n } = t8, { dim: s } = o, a = n.shape.length, i = n.shape.slice(), p = s;\n return s < 0 && (y.assert(-(a + 1) <= s, () => `Axis must be in the interval [${-(a + 1)}, ${a}]`), p = a + s + 1), i.splice(p, 0, 1), Ve({ inputs: { x: n }, backend: e, attrs: { shape: i } });\n}\nvar M$ = { kernelName: na, backendName: \"cpu\", kernelFunc: $c };\nvar iQ = ze((r, t8) => r / t8);\nvar Ul = Ye(hn, iQ);\nvar Gl = { kernelName: hn, backendName: \"cpu\", kernelFunc: Ul };\nfunction Vf(r, t8, e) {\n let o = r.shape, n = o[0], s = o[1], a = e.data.get(r.dataId), i = a.complexTensorInfos.real, p = a.complexTensorInfos.imag, u = [n, s], c = y.sizeFromShape(u), l = y.getTypedArrayFromDType(\"float32\", c), m = y.getTypedArrayFromDType(\"float32\", c);\n for (let g = 0; g < n; g++) {\n let x = Fo({ inputs: { x: i }, backend: e, attrs: { begin: [g, 0], size: [1, s] } }), b = Fo({ inputs: { x: p }, backend: e, attrs: { begin: [g, 0], size: [1, s] } }), C = Kt({ inputs: { real: x, imag: b }, backend: e }), { real: S, imag: k } = uQ(C, t8, e), _ = w.mergeRealAndImagArrays(S, k);\n for (let E = 0; E < s; E++) {\n let R = w.getComplexWithIndex(_, E);\n l[g * s + E] = R.real, m[g * s + E] = R.imag;\n }\n e.disposeIntermediateTensorInfo(x), e.disposeIntermediateTensorInfo(b), e.disposeIntermediateTensorInfo(C);\n }\n let d = e.makeTensorInfo(u, \"float32\", l), f = e.makeTensorInfo(u, \"float32\", m), h = Kt({ inputs: { real: d, imag: f }, backend: e });\n return e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), h;\n}\nfunction uQ(r, t8, e) {\n let o = y.sizeFromShape(r.shape), n = e.data.get(r.dataId), s = e.data.get(n.complexTensorInfos.real.dataId).values, a = e.data.get(n.complexTensorInfos.imag.dataId).values;\n if (pQ(o)) {\n let i = CI(s, a, o, t8, e), p = [r.shape[0], r.shape[1]];\n if (t8) {\n let u = e.makeTensorInfo(p, \"float32\", i.real), c = e.makeTensorInfo(p, \"float32\", i.imag), l = e.makeTensorInfo([], \"float32\", y.createScalarValue(o, \"float32\")), m = mr({ inputs: { x: l }, backend: e }), d = Gl.kernelFunc({ inputs: { a: u, b: l }, backend: e }), f = Gl.kernelFunc({ inputs: { a: c, b: m }, backend: e }), h = e.data.get(d.dataId).values, g = e.data.get(f.dataId).values;\n return e.disposeIntermediateTensorInfo(u), e.disposeIntermediateTensorInfo(c), e.disposeIntermediateTensorInfo(l), e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), { real: h, imag: g };\n }\n return i;\n } else {\n let i = w.mergeRealAndImagArrays(s, a), p = cQ(i, o, t8);\n return w.splitRealAndImagArrays(p);\n }\n}\nfunction pQ(r) {\n return (r & r - 1) === 0;\n}\nfunction CI(r, t8, e, o, n) {\n if (e === 1)\n return { real: r, imag: t8 };\n let s = w.mergeRealAndImagArrays(r, t8), a = e / 2, i = w.complexWithEvenIndex(s), p = i.real, u = i.imag, c = [p.length], l = n.makeTensorInfo(c, \"float32\", p), m = n.makeTensorInfo(c, \"float32\", u), d = Kt({ inputs: { real: l, imag: m }, backend: n }), f = w.complexWithOddIndex(s), h = f.real, g = f.imag, x = [h.length], b = n.makeTensorInfo(x, \"float32\", h), C = n.makeTensorInfo(x, \"float32\", g), S = Kt({ inputs: { real: b, imag: C }, backend: n }), k = CI(p, u, a, o, n), _ = k.real, E = k.imag, R = [_.length], D = n.makeTensorInfo(R, \"float32\", _), P = n.makeTensorInfo(R, \"float32\", E), O = Kt({ inputs: { real: D, imag: P }, backend: n }), M = CI(h, g, a, o, n), L = M.real, B = M.imag, z = [L.length], U = n.makeTensorInfo(z, \"float32\", L), j = n.makeTensorInfo(z, \"float32\", B), q = Kt({ inputs: { real: U, imag: j }, backend: n }), Y = w.exponents(e, o), J = [Y.real.length], re = n.makeTensorInfo(J, \"float32\", Y.real), ne = n.makeTensorInfo(J, \"float32\", Y.imag), ee = Kt({ inputs: { real: re, imag: ne }, backend: n }), oe = dp({ inputs: { a: ee, b: q }, backend: n }), ie = Oa({ inputs: { a: O, b: oe }, backend: n }), le = Vl({ inputs: { a: O, b: oe }, backend: n }), be = Ro({ inputs: { input: ie }, backend: n }), _e = Ro({ inputs: { input: le }, backend: n }), ve = Ma({ inputs: { input: ie }, backend: n }), Fe = Ma({ inputs: { input: le }, backend: n }), Pe = yu({ inputs: [be, _e], backend: n, attrs: { axis: 0 } }), st = yu({ inputs: [ve, Fe], backend: n, attrs: { axis: 0 } }), lt = n.data.get(Pe.dataId).values, Ge = n.data.get(st.dataId).values;\n return n.disposeIntermediateTensorInfo(l), n.disposeIntermediateTensorInfo(m), n.disposeIntermediateTensorInfo(d), n.disposeIntermediateTensorInfo(b), n.disposeIntermediateTensorInfo(C), n.disposeIntermediateTensorInfo(S), n.disposeIntermediateTensorInfo(D), n.disposeIntermediateTensorInfo(P), n.disposeIntermediateTensorInfo(O), n.disposeIntermediateTensorInfo(U), n.disposeIntermediateTensorInfo(j), n.disposeIntermediateTensorInfo(q), n.disposeIntermediateTensorInfo(re), n.disposeIntermediateTensorInfo(ne), n.disposeIntermediateTensorInfo(ee), n.disposeIntermediateTensorInfo(oe), n.disposeIntermediateTensorInfo(ie), n.disposeIntermediateTensorInfo(le), n.disposeIntermediateTensorInfo(be), n.disposeIntermediateTensorInfo(ve), n.disposeIntermediateTensorInfo(_e), n.disposeIntermediateTensorInfo(Fe), n.disposeIntermediateTensorInfo(Pe), n.disposeIntermediateTensorInfo(st), { real: lt, imag: Ge };\n}\nfunction cQ(r, t8, e) {\n let o = new Float32Array(t8 * 2);\n for (let n = 0; n < t8; n++) {\n let s = 0, a = 0;\n for (let i = 0; i < t8; i++) {\n let p = w.exponent(n * i, t8, e), u = w.getComplexWithIndex(r, i);\n s += u.real * p.real - u.imag * p.imag, a += u.real * p.imag + u.imag * p.real;\n }\n e && (s /= t8, a /= t8), w.assignToTypedArray(o, s, a, n);\n }\n return o;\n}\nfunction lQ(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = y.sizeFromShape(o.shape), s = o.shape[o.shape.length - 1], a = n / s, i = Ve({ inputs: { x: o }, backend: e, attrs: { shape: [a, s] } }), p = Vf(i, false, e), u = Ve({ inputs: { x: p }, backend: e, attrs: { shape: o.shape } });\n return e.disposeIntermediateTensorInfo(i), e.disposeIntermediateTensorInfo(p), u;\n}\nvar L$ = { kernelName: Wi, backendName: \"cpu\", kernelFunc: lQ };\nfunction Hl(r) {\n let { backend: t8, attrs: e } = r, { shape: o, value: n, dtype: s } = e, a = s || y.inferDtype(n), i = y.getArrayFromDType(a, y.sizeFromShape(o));\n return mQ(i, n, a), t8.makeTensorInfo(o, a, i);\n}\nvar B$ = { kernelName: sa, backendName: \"cpu\", kernelFunc: Hl };\nfunction mQ(r, t8, e) {\n r.fill(t8);\n}\nvar z$ = { kernelName: wn, backendName: \"cpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { image: o } = r, n = e, s = y.getTypedArrayFromDType(o.dtype, y.sizeFromShape(o.shape)), [a, i, p, u] = o.shape, c = n.data.get(o.dataId).values;\n for (let m = 0; m < a; m++) {\n let d = m * p * i * u;\n for (let f = 0; f < i; f++) {\n let h = f * (p * u);\n for (let g = 0; g < p; g++) {\n let x = g * u;\n for (let b = 0; b < u; b++) {\n let C = Math.round(p - g - 1), S = d + h + x + b, k = c[S];\n if (C >= 0 && C < p) {\n let _ = C * u, E = d + h + _ + b;\n k = c[E];\n }\n s[S] = k;\n }\n }\n }\n }\n return { dataId: n.write(s, o.shape, o.dtype), shape: o.shape, dtype: o.dtype };\n} };\nfunction dQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = o, h = yI({ inputs: { x: n, filter: s }, backend: e, attrs: { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m } });\n if (a) {\n let g = h;\n if (c === \"NCHW\" && a.shape.length === 1 && a.shape[0] !== 1) {\n let x = Ve({ inputs: { x: a }, backend: e, attrs: { shape: [a.shape[0], 1, 1] } });\n h = Oa({ inputs: { a: h, b: x }, backend: e }), e.disposeIntermediateTensorInfo(x);\n } else\n h = Oa({ inputs: { a: h, b: a }, backend: e });\n e.disposeIntermediateTensorInfo(g);\n }\n if (d) {\n let g = h;\n if (c === \"NCHW\" && d === \"prelu\" && i.shape.length === 1 && i.shape[0] !== 1) {\n let x = Ve({ inputs: { x: i }, backend: e, attrs: { shape: [i.shape[0], 1, 1] } });\n h = Cp(e, h, d, x, f), e.disposeIntermediateTensorInfo(x);\n } else\n h = Cp(e, h, d, i, f);\n e.disposeIntermediateTensorInfo(g);\n }\n return h;\n}\nvar V$ = { kernelName: vo, backendName: \"cpu\", kernelFunc: dQ };\nfunction fQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = o, h = bI({ inputs: { x: n, filter: s }, backend: e, attrs: { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m } });\n if (a) {\n let g = h;\n h = Oa({ inputs: { a: h, b: a }, backend: e }), e.disposeIntermediateTensorInfo(g);\n }\n if (d) {\n let g = h;\n h = Cp(e, h, d, i, f), e.disposeIntermediateTensorInfo(g);\n }\n return h;\n}\nvar W$ = { kernelName: ko, backendName: \"cpu\", kernelFunc: fQ };\nfunction hQ(r) {\n let { inputs: t8, backend: e } = r, { params: o, indices: n } = t8, s = y.sizeFromShape(o.shape), a = n.shape, i = a[a.length - 1], [p, u, c, l] = w.prepareAndValidate(o, n);\n if (u === 0)\n return e.makeTensorInfo(p, o.dtype, []);\n let m = e.data.get(n.dataId).values, d = e.bufferSync(o), f = Tf(m, d, o.dtype, u, i, c, l, o.shape, s);\n return e.makeTensorInfo(p, o.dtype, f.values);\n}\nvar U$ = { kernelName: kn, backendName: \"cpu\", kernelFunc: hQ };\nfunction gQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, indices: s } = t8, { axis: a, batchDims: i } = o;\n Q([n, s], \"gatherV2\");\n let p = y.parseAxisParam(a, n.shape)[0], u = e.data.get(s.dataId).values, c = n.shape[p];\n for (let S = 0; S < u.length; ++S) {\n let k = u[S];\n y.assert(k <= c - 1 && k >= 0, () => `GatherV2: the index value ${k} is not in [0, ${c - 1}]`);\n }\n let l = i;\n i == null && (l = 0);\n let m = y.sizeFromShape(s.shape), d = w.segment_util.collectGatherOpShapeInfo(n, s, p, l), f = Ve({ inputs: { x: n }, backend: e, attrs: { shape: [d.batchSize, d.outerSize, d.dimSize, d.sliceSize] } }), h = Ve({ inputs: { x: s }, backend: e, attrs: { shape: [d.batchSize, m / d.batchSize] } }), g = [d.batchSize, d.outerSize, m / d.batchSize, d.sliceSize], x = e.bufferSync(h), b = e.bufferSync(f), C = _f(b, x, g);\n return e.disposeIntermediateTensorInfo(f), e.disposeIntermediateTensorInfo(h), e.makeTensorInfo(d.outputShape, C.dtype, C.values);\n}\nvar G$ = { kernelName: aa, backendName: \"cpu\", kernelFunc: gQ };\nfunction xQ(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = y.sizeFromShape(o.shape), s = o.shape[o.shape.length - 1], a = n / s, i = Ve({ inputs: { x: o }, backend: e, attrs: { shape: [a, s] } }), p = Vf(i, true, e), u = Ve({ inputs: { x: p }, backend: e, attrs: { shape: o.shape } });\n return e.disposeIntermediateTensorInfo(i), e.disposeIntermediateTensorInfo(p), u;\n}\nvar H$ = { kernelName: Ui, backendName: \"cpu\", kernelFunc: xQ };\nvar yQ = Ie(_n, (r) => Number.isFinite(r) ? 1 : 0, \"bool\");\nvar K$ = { kernelName: _n, backendName: \"cpu\", kernelFunc: yQ };\nvar bQ = Ie($n, (r) => Math.abs(r) === 1 / 0 ? 1 : 0, \"bool\");\nvar q$ = { kernelName: $n, backendName: \"cpu\", kernelFunc: bQ };\nvar CQ = Ie(En, (r) => Number.isNaN(r) ? 1 : 0, \"bool\");\nvar j$ = { kernelName: En, backendName: \"cpu\", kernelFunc: CQ };\nfunction wQ(r) {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, num: s } = e, a = $f(o, n, s);\n return t8.makeTensorInfo([a.length], \"float32\", a);\n}\nvar X$ = { kernelName: Fn, backendName: \"cpu\", kernelFunc: wQ };\nvar SQ = Ie(On, (r) => Math.log1p(r));\nvar Y$ = { kernelName: On, backendName: \"cpu\", kernelFunc: SQ };\nvar IQ = ze((r, t8) => r && t8);\nvar vQ = Ye(Mn, IQ, null, \"bool\");\nvar Q$ = { kernelName: Mn, backendName: \"cpu\", kernelFunc: vQ };\nvar kQ = Ie(Ln, (r) => r ? 0 : 1, \"bool\");\nvar Z$ = { kernelName: Ln, backendName: \"cpu\", kernelFunc: kQ };\nvar NQ = ze((r, t8) => r || t8);\nvar TQ = Ye(Bn, NQ, null, \"bool\");\nvar J$ = { kernelName: Bn, backendName: \"cpu\", kernelFunc: TQ };\nfunction _Q(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { depthRadius: s, bias: a, alpha: i, beta: p } = o;\n Q(n, \"LRN\");\n let u = n.shape[3], c = u - 1, l = e.data.get(n.dataId).values, m = y.sizeFromShape(n.shape), d = new Float32Array(m);\n function f(h) {\n let g = h % u, x = h - g + Math.max(0, g - s), b = h - g + Math.min(g + s, c), C = 0;\n for (; x <= b; x++) {\n let S = l[x];\n C += S * S;\n }\n return C;\n }\n for (let h = 0; h < m; h++) {\n let g = f(h), x = l[h] * Math.pow(a + i * g, -p);\n d[h] = x;\n }\n return e.makeTensorInfo(n.shape, n.dtype, d);\n}\nvar eE = { kernelName: zn, backendName: \"cpu\", kernelFunc: _Q };\nfunction $Q(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, y: s, dy: a } = t8, { depthRadius: i, bias: p, alpha: u, beta: c } = o;\n Q(a, \"LRNGrad\");\n let l = y.sizeFromShape(a.shape), m = a.shape[3], d = e.data.get(a.dataId).values, f = e.data.get(n.dataId).values, h = e.data.get(s.dataId).values, g = new Float32Array(l), x = l;\n for (let b = 0; b < x; b++) {\n let C = b % m, S = b - C + Math.max(0, C - i), k = b - C + Math.min(m, C + i + 1), _ = 0;\n for (let E = S; E < k; E++)\n _ += Math.pow(f[E], 2);\n _ = u * _ + p;\n for (let E = S; E < k; E++) {\n let R = -2 * u * c * f[E] * h[b] / _;\n b === E && (R += Math.pow(_, -c)), R *= d[b], g[E] += R;\n }\n }\n return e.makeTensorInfo(a.shape, n.dtype, g);\n}\nvar tE = { kernelName: Qa, backendName: \"cpu\", kernelFunc: $Q };\nfunction wI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reductionIndices: s, keepDims: a } = o, i = e, p = n.shape, u = p.length, c = y.parseAxisParam(s, p), l = c, m = w.getAxesPermutation(l, u), d = i.data.get(n.dataId).values;\n if (m != null) {\n let S = new Array(u);\n for (let k = 0; k < S.length; k++)\n S[k] = p[m[k]];\n d = vc(d, p, n.dtype, m, S), l = w.getInnerMostAxes(l.length, u), p = S;\n }\n Q(n, \"max\"), w.assertAxesAreInnerMostDims(\"max\", l, u);\n let [f, h] = w.computeOutAndReduceShapes(p, l), g = y.sizeFromShape(h), x = Ef(d, g, f, n.dtype), b = i.write(x, f, n.dtype), C = f;\n return a && (C = w.expandShapeToKeepDim(f, c)), { dataId: b, shape: C, dtype: n.dtype };\n}\nvar rE = { kernelName: Vn, backendName: \"cpu\", kernelFunc: wI };\nfunction EQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8;\n Q(n, \"maxPool\");\n let { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1;\n y.assert(w.eitherStridesOrDilationsAreOne(a, u), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);\n let c = w.computePool2DInfo(n.shape, s, a, u, i, p), l;\n if (c.filterWidth === 1 && c.filterHeight === 1 && y.arraysEqual(c.inShape, c.outShape))\n l = mr({ inputs: { x: n }, backend: e });\n else {\n let m = e.data.get(n.dataId).values, d = y.computeStrides(n.shape), f = _c(m, n.shape, n.dtype, d, c, \"max\");\n l = e.makeTensorInfo(c.outShape, n.dtype, f.values);\n }\n return l;\n}\nvar oE = { kernelName: Un, backendName: \"cpu\", kernelFunc: EQ };\nfunction RQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p, dataFormat: u } = o;\n Q(n, \"maxPool3d\");\n let c = w.computePool3DInfo(n.shape, s, a, 1, i, p, u), l = e.data.get(n.dataId).values, m = zf(l, n.shape, n.dtype, y.computeStrides(n.shape), c, \"max\");\n return e.makeTensorInfo(m.shape, \"float32\", m.values);\n}\nvar nE = { kernelName: ia, backendName: \"cpu\", kernelFunc: RQ };\nfunction DQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = o;\n Q([n, s], \"maxPool3DGrad\");\n let c = w.computePool3DInfo(s.shape, a, i, 1, p, u), l = e.bufferSync(s), m = J_(l, c), d = c.strideDepth, f = c.strideHeight, h = c.strideWidth, g = c.dilationDepth, x = c.dilationHeight, b = c.dilationWidth, C = c.effectiveFilterDepth, S = c.effectiveFilterHeight, k = c.effectiveFilterWidth, _ = C - 1 - c.padInfo.front, E = k - 1 - c.padInfo.left, R = S - 1 - c.padInfo.top, D = me(s.shape, \"float32\"), P = e.bufferSync(n);\n for (let O = 0; O < c.batchSize; ++O)\n for (let M = 0; M < c.inChannels; ++M)\n for (let L = 0; L < c.inDepth; ++L)\n for (let B = 0; B < c.inHeight; ++B)\n for (let z = 0; z < c.inWidth; ++z) {\n let U = L - _, j = B - R, q = z - E, Y = 0;\n for (let J = 0; J < C; J += g) {\n let re = (U + J) / d;\n if (!(re < 0 || re >= c.outDepth || Math.floor(re) !== re))\n for (let ne = 0; ne < S; ne += x) {\n let ee = (j + ne) / f;\n if (!(ee < 0 || ee >= c.outHeight || Math.floor(ee) !== ee))\n for (let oe = 0; oe < k; oe += b) {\n let ie = (q + oe) / h;\n if (ie < 0 || ie >= c.outWidth || Math.floor(ie) !== ie)\n continue;\n let le = C * S * k - 1 - m.get(O, re, ee, ie, M), be = J * S * k + ne * k + oe, _e = le === be ? 1 : 0;\n if (_e === 0)\n continue;\n let ve = P.get(O, re, ee, ie, M);\n Y += ve * _e;\n }\n }\n }\n D.set(Y, O, L, B, z, M);\n }\n return e.makeTensorInfo(D.shape, D.dtype, D.values);\n}\nvar sE = { kernelName: Ki, backendName: \"cpu\", kernelFunc: DQ };\nfunction AQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s, output: a } = t8, i = s;\n Q([s, a], \"maxPoolGrad\");\n let { filterSize: p, strides: u, pad: c, dimRoundingMode: l } = o, m = w.computePool2DInfo(i.shape, p, u, 1, c, l), d = e.data.get(i.dataId).values, f = me(m.outShape, i.dtype, Bf(d, i.shape, i.dtype, m).values), h = m.strideHeight, g = m.strideWidth, x = m.dilationHeight, b = m.dilationWidth, C = m.effectiveFilterHeight, S = m.effectiveFilterWidth, k = S - 1 - m.padInfo.left, _ = C - 1 - m.padInfo.top, E = me(i.shape, \"float32\"), R = e.data.get(n.dataId).values, D = me(n.shape, \"float32\", R);\n for (let P = 0; P < m.batchSize; ++P)\n for (let O = 0; O < m.inChannels; ++O)\n for (let M = 0; M < m.inHeight; ++M)\n for (let L = 0; L < m.inWidth; ++L) {\n let B = M - _, z = L - k, U = 0;\n for (let j = 0; j < C; j += x) {\n let q = (B + j) / h;\n if (!(q < 0 || q >= m.outHeight || Math.floor(q) !== q))\n for (let Y = 0; Y < S; Y += b) {\n let J = (z + Y) / g;\n if (J < 0 || J >= m.outWidth || Math.floor(J) !== J)\n continue;\n let re = C * S - 1 - f.get(P, q, J, O), ne = j * S + Y, ee = re === ne ? 1 : 0;\n if (ee === 0)\n continue;\n let oe = D.get(P, q, J, O);\n U += oe * ee;\n }\n }\n E.set(U, P, M, L, O);\n }\n return e.makeTensorInfo(E.shape, E.dtype, E.values);\n}\nvar aE = { kernelName: Hi, backendName: \"cpu\", kernelFunc: AQ };\nfunction iE(r, t8, e, o, n) {\n let s = y.computeStrides(t8), a = _c(r, t8, e, s, n, \"max\"), i = Bf(r, t8, e, n, true, o);\n return [a.values, i.values];\n}\nvar uE = { kernelName: ua, backendName: \"cpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { x: o } = r, { filterSize: n, strides: s, pad: a, includeBatchInIndex: i } = t8, p = e;\n Q(o, \"MaxPoolWithArgmax\");\n let u = p.data.get(o.dataId).values, c = w.computePool2DInfo(o.shape, n, s, [1, 1], a), [l, m] = iE(u, o.shape, o.dtype, i, c), d = p.write(l, c.outShape, o.dtype), f = p.write(m, c.outShape, o.dtype);\n return [{ dataId: d, shape: c.outShape, dtype: o.dtype }, { dataId: f, shape: c.outShape, dtype: \"int32\" }];\n} };\nfunction FQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o, i = y.parseAxisParam(s, n.shape), u = w.computeOutAndReduceShapes(n.shape, i)[1], c = y.sizeFromShape(u), l = [], m = e.makeTensorInfo([], \"float32\", new Float32Array([c]));\n l.push(m);\n let d = Do({ inputs: { x: n }, backend: e, attrs: { dtype: \"float32\" } });\n l.push(d);\n let f = Ul({ inputs: { a: d, b: m }, backend: e });\n l.push(f);\n let h = gi({ inputs: { x: f }, backend: e, attrs: { axis: s, keepDims: a } });\n return l.forEach((g) => e.disposeIntermediateTensorInfo(g)), h;\n}\nvar pE = { kernelName: Gn, backendName: \"cpu\", kernelFunc: FQ };\nfunction PQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n Q(n, \"min\");\n let i = y.parseAxisParam(s, n.shape), p = i, u = w.getAxesPermutation(p, n.shape.length), c = n;\n u != null && (c = It({ inputs: { x: n }, backend: e, attrs: { perm: u } }), p = w.getInnerMostAxes(p.length, n.shape.length)), w.assertAxesAreInnerMostDims(\"min\", p, c.shape.length);\n let [l, m] = w.computeOutAndReduceShapes(c.shape, p), d = y.sizeFromShape(m), f = y.makeZerosTypedArray(y.sizeFromShape(l), c.dtype), h = e.data.get(c.dataId).values;\n for (let x = 0; x < f.length; ++x) {\n let b = x * d, C = h[b];\n for (let S = 0; S < d; ++S) {\n let k = h[b + S];\n (Number.isNaN(k) || k < C) && (C = k);\n }\n f[x] = C;\n }\n u != null && e.disposeIntermediateTensorInfo(c);\n let g = e.makeTensorInfo(l, c.dtype, f);\n if (a) {\n let x = w.expandShapeToKeepDim(l, i), b = Ve({ inputs: { x: g }, backend: e, attrs: { shape: x } });\n return e.disposeIntermediateTensorInfo(g), b;\n }\n return g;\n}\nvar cE = { kernelName: Hn, backendName: \"cpu\", kernelFunc: PQ };\nfunction OQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { paddings: s, mode: a } = o;\n Q(n, \"mirrorPad\");\n let i = s.map((C, S) => C[0] + n.shape[S] + C[1]), p = s.map((C) => C[0]), u = s.map((C, S) => C[0] + n.shape[S]), c = a === \"reflect\" ? 0 : 1, l = e.data.get(n.dataId).values, m = n.shape.length, d = y.computeStrides(n.shape), f = y.sizeFromShape(i), h = i.length, g = y.computeStrides(i), x = y.getTypedArrayFromDType(n.dtype, f);\n for (let C = 0; C < f; C++) {\n let S = y.indexToLoc(C, h, g);\n for (let _ = 0; _ < h; _++)\n S[_] < p[_] ? S[_] = p[_] * 2 - S[_] - c : S[_] >= u[_] && (S[_] = (u[_] - 1) * 2 - S[_] + c);\n S = S.map((_, E) => _ - p[E]);\n let k = y.locToIndex(S, m, d);\n x[C] = l[k];\n }\n return { dataId: e.write(x, i, n.dtype), shape: i, dtype: n.dtype };\n}\nvar lE = { kernelName: qn, backendName: \"cpu\", kernelFunc: OQ };\nvar MQ = ze((r, t8) => {\n let e = r % t8;\n return r < 0 && t8 < 0 || r >= 0 && t8 >= 0 ? e : (e + t8) % t8;\n});\nvar LQ = Ye(jn, MQ);\nvar mE = { kernelName: jn, backendName: \"cpu\", kernelFunc: LQ };\nvar fE = Kp(qw());\nfunction SI(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { dim: s } = o, a = n.shape.length, i = s;\n if (i === -1 && (i = a - 1), i !== a - 1)\n throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${i}`);\n let p = y.parseAxisParam([i], n.shape), u = wI({ inputs: { x: n }, backend: e, attrs: { reductionIndices: p, keepDims: false } }), c = w.expandShapeToKeepDim(u.shape, p), l = Ve({ inputs: { x: u }, backend: e, attrs: { shape: c } }), m = Vl({ inputs: { a: n, b: l }, backend: e }), d = KS({ inputs: { x: m }, backend: e }), f = gi({ inputs: { x: d }, backend: e, attrs: { axis: p, keepDims: false } }), h = Ve({ inputs: { x: f }, backend: e, attrs: { shape: c } }), g = Ul({ inputs: { a: d, b: h }, backend: e });\n return e.disposeIntermediateTensorInfo(u), e.disposeIntermediateTensorInfo(l), e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), e.disposeIntermediateTensorInfo(h), g;\n}\nvar dE = { kernelName: vs, backendName: \"cpu\", kernelFunc: SI };\nfunction BQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { numSamples: s, seed: a, normalized: i } = o;\n Q(n, \"multinomial\");\n let p = i ? n : SI({ inputs: { logits: n }, backend: e, attrs: { dim: -1 } }), u = p.shape[0], c = p.shape[1], l = e.data.get(p.dataId).values, m = [u, s], d = y.makeZerosTypedArray(y.sizeFromShape(m), \"int32\");\n for (let f = 0; f < u; ++f) {\n let h = f * c, g = new Float32Array(c - 1);\n g[0] = l[h];\n for (let C = 1; C < g.length; ++C)\n g[C] = g[C - 1] + l[h + C];\n let x = fE.alea(a.toString()), b = f * s;\n for (let C = 0; C < s; ++C) {\n let S = x();\n d[b + C] = g.length;\n for (let k = 0; k < g.length; k++)\n if (S < g[k]) {\n d[b + C] = k;\n break;\n }\n }\n }\n return i || e.disposeIntermediateTensorInfo(p), e.makeTensorInfo(m, \"int32\", d);\n}\nvar hE = { kernelName: Xn, backendName: \"cpu\", kernelFunc: BQ };\nvar zQ = Wt.nonMaxSuppressionV3Impl;\nfunction VQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p } = o;\n Q(n, \"NonMaxSuppression\");\n let u = e.data.get(n.dataId).values, c = e.data.get(s.dataId).values, { selectedIndices: l } = zQ(u, c, a, i, p);\n return e.makeTensorInfo([l.length], \"int32\", new Int32Array(l));\n}\nvar gE = { kernelName: Zn, backendName: \"cpu\", kernelFunc: VQ };\nvar WQ = Wt.nonMaxSuppressionV4Impl;\nfunction UQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p, padToMaxOutputSize: u } = o;\n Q(n, \"NonMaxSuppressionPadded\");\n let c = e.data.get(n.dataId).values, l = e.data.get(s.dataId).values, { selectedIndices: m, validOutputs: d } = WQ(c, l, a, i, p, u);\n return [e.makeTensorInfo([m.length], \"int32\", new Int32Array(m)), e.makeTensorInfo([], \"int32\", new Int32Array([d]))];\n}\nvar xE = { kernelName: Za, backendName: \"cpu\", kernelFunc: UQ };\nvar GQ = Wt.nonMaxSuppressionV5Impl;\nfunction HQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p, softNmsSigma: u } = o;\n Q(n, \"NonMaxSuppressionWithScore\");\n let c = e.data.get(n.dataId).values, l = e.data.get(s.dataId).values, m = a, d = i, f = p, h = u, { selectedIndices: g, selectedScores: x } = GQ(c, l, m, d, f, h);\n return [e.makeTensorInfo([g.length], \"int32\", new Int32Array(g)), e.makeTensorInfo([x.length], \"float32\", new Float32Array(x))];\n}\nvar yE = { kernelName: Jn, backendName: \"cpu\", kernelFunc: HQ };\nfunction KQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n } = t8, { dtype: s, depth: a, onValue: i, offValue: p } = o;\n Q(n, \"oneHot\");\n let u = y.sizeFromShape(n.shape), c = new Float32Array(u * a);\n c.fill(p);\n let l = e.data.get(n.dataId).values;\n for (let m = 0; m < u; ++m)\n l[m] >= 0 && l[m] < a && (c[m * a + l[m]] = i);\n return e.makeTensorInfo([...n.shape, a], s, c);\n}\nvar bE = { kernelName: es, backendName: \"cpu\", kernelFunc: KQ };\nfunction Kl(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"string\")\n throw new Error(\"zerosLike is not supported for string tensors\");\n if (o.dtype === \"complex64\") {\n let n = Ro({ inputs: { input: o }, backend: e }), s = Kl({ inputs: { x: n }, backend: e }), a = Ma({ inputs: { input: o }, backend: e }), i = Kl({ inputs: { x: a }, backend: e }), p = Kt({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeIntermediateTensorInfo(n), e.disposeIntermediateTensorInfo(s), e.disposeIntermediateTensorInfo(a), e.disposeIntermediateTensorInfo(i), p;\n } else\n return Hl({ backend: e, attrs: { shape: o.shape, value: 0, dtype: o.dtype } });\n}\nvar CE = { kernelName: Sa, backendName: \"cpu\", kernelFunc: Kl };\nfunction wE(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"string\")\n throw new Error(\"onesLike is not supported for string tensors\");\n if (o.dtype === \"complex64\") {\n let n = Ro({ inputs: { input: o }, backend: e }), s = wE({ inputs: { x: n }, backend: e }), a = Ma({ inputs: { input: o }, backend: e }), i = Kl({ inputs: { x: a }, backend: e }), p = Kt({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeIntermediateTensorInfo(n), e.disposeIntermediateTensorInfo(s), e.disposeIntermediateTensorInfo(a), e.disposeIntermediateTensorInfo(i), p;\n } else\n return Hl({ backend: e, attrs: { shape: o.shape, value: 1, dtype: o.dtype } });\n}\nvar SE = { kernelName: ca, backendName: \"cpu\", kernelFunc: wE };\nfunction II(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o;\n if (t8.length === 1)\n return $c({ inputs: { input: t8[0] }, backend: e, attrs: { dim: n } });\n let s = t8[0].shape, a = t8[0].dtype;\n t8.forEach((c) => {\n y.assertShapesMatch(s, c.shape, \"All tensors passed to stack must have matching shapes\"), y.assert(a === c.dtype, () => \"All tensors passed to stack must have matching dtypes\");\n });\n let i = [], p = t8.map((c) => {\n let l = $c({ inputs: { input: c }, backend: e, attrs: { dim: n } });\n return i.push(l), l;\n }), u = yu({ inputs: p, backend: e, attrs: { axis: n } });\n return i.forEach((c) => e.disposeIntermediateTensorInfo(c)), u;\n}\nvar IE = { kernelName: la, backendName: \"cpu\", kernelFunc: II };\nfunction qQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { paddings: s, constantValue: a } = o;\n Q(n, \"pad\");\n let i = s.map((b, C) => b[0] + n.shape[C] + b[1]), p = s.map((b) => b[0]), u = e.data.get(n.dataId).values, c = y.sizeFromShape(n.shape), l = n.shape.length, m = y.computeStrides(n.shape), d = y.sizeFromShape(i), f = i.length, h = y.computeStrides(i), g = y.getTypedArrayFromDType(n.dtype, d);\n a !== 0 && g.fill(a);\n for (let b = 0; b < c; b++) {\n let S = y.indexToLoc(b, l, m).map((_, E) => _ + p[E]), k = y.locToIndex(S, f, h);\n g[k] = u[b];\n }\n return { dataId: e.write(g, i, n.dtype), shape: i, dtype: n.dtype };\n}\nvar Wf = { kernelName: ts, backendName: \"cpu\", kernelFunc: qQ };\nvar jQ = ze((r, t8) => Math.pow(r, t8));\nvar XQ = Ye(rs, jQ);\nvar vE = { kernelName: rs, backendName: \"cpu\", kernelFunc: XQ };\nfunction YQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { paramsNestedSplits: n, paramsDenseValues: s, indices: a } = t8, { outputRaggedRank: i } = o, p = n.map((x) => e.data.get(x.dataId).values), u = n.map((x) => x.shape), c = e.data.get(s.dataId).values, l = e.data.get(a.dataId).values, [m, d, f] = Rf(p, u, c, s.shape, s.dtype, l, a.shape, i), h = m.map((x) => e.makeTensorInfo([x.length], \"int32\", x)), g = e.makeTensorInfo(f, s.dtype, d);\n return h.concat([g]);\n}\nvar kE = { kernelName: Qp, backendName: \"cpu\", kernelFunc: YQ };\nfunction QQ(r) {\n let { inputs: t8, backend: e } = r, { starts: o, limits: n, deltas: s } = t8, a = e.data.get(o.dataId).values, i = e.data.get(n.dataId).values, p = e.data.get(s.dataId).values, [u, c] = Df(a, o.shape, o.dtype, i, n.shape, p, s.shape), l = e.makeTensorInfo([u.length], \"int32\", u), m = e.makeTensorInfo([c.length], o.dtype, c);\n return [l, m];\n}\nvar NE = { kernelName: Zp, backendName: \"cpu\", kernelFunc: QQ };\nfunction ZQ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { shape: n, values: s, defaultValue: a, rowPartitionTensors: i } = t8, { rowPartitionTypes: p } = o, u = e.data.get(n.dataId).values, c = e.data.get(s.dataId).values, l = e.data.get(a.dataId).values, m = i.map((g) => e.data.get(g.dataId).values), d = i.map((g) => g.shape), [f, h] = Af(u, n.shape, c, s.shape, s.dtype, l, a.shape, m, d, p);\n return e.makeTensorInfo(f, s.dtype, h);\n}\nvar TE = { kernelName: Jp, backendName: \"cpu\", kernelFunc: ZQ };\nfunction JQ(r) {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, dtype: s, step: a } = e, i = fp(o, n, a, s);\n return t8.makeTensorInfo([i.length], s, i);\n}\nvar _E = { kernelName: ma, backendName: \"cpu\", kernelFunc: JQ };\nvar e7 = Ie(ss, (r) => 1 / r);\nvar $E = { kernelName: ss, backendName: \"cpu\", kernelFunc: e7 };\nfunction t7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, halfPixelCenters: a, size: i } = o;\n Q(n, \"resizeBilinear\");\n let p = y.computeStrides(n.shape), [u, c] = i, [l, m, d, f] = n.shape, h = e.data.get(n.dataId).values, g = new Float32Array(y.sizeFromShape([l, u, c, f])), x = [s && u > 1 ? m - 1 : m, s && c > 1 ? d - 1 : d], b = [s && u > 1 ? u - 1 : u, s && c > 1 ? c - 1 : c], C = 0, S = x[0] / b[0], k = x[1] / b[1];\n for (let _ = 0; _ < l; _++)\n for (let E = 0; E < u; E++) {\n let R;\n a ? R = S * (E + 0.5) - 0.5 : R = S * E;\n let D = Math.max(0, Math.floor(R)), P = R - D, O = Math.min(m - 1, Math.ceil(R)), M = _ * p[0] + D * p[1], L = _ * p[0] + O * p[1];\n for (let B = 0; B < c; B++) {\n let z;\n a ? z = k * (B + 0.5) - 0.5 : z = k * B;\n let U = Math.max(0, Math.floor(z)), j = z - U, q = Math.min(d - 1, Math.ceil(z)), Y = M + U * p[2], J = L + U * p[2], re = M + q * p[2], ne = L + q * p[2];\n for (let ee = 0; ee < f; ee++) {\n let oe = h[Y + ee], ie = h[J + ee], le = h[re + ee], be = h[ne + ee], _e = oe + (le - oe) * j, ve = ie + (be - ie) * j, Fe = _e + (ve - _e) * P;\n g[C++] = Fe;\n }\n }\n }\n return e.makeTensorInfo([l, u, c, f], \"float32\", g);\n}\nvar EE = { kernelName: us, backendName: \"cpu\", kernelFunc: t7 };\nfunction r7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o;\n Q([s, n], \"resizeBilinearGrad\");\n let i = y.computeStrides(n.shape), [p, u, c, l] = n.shape, [, m, d] = s.shape, f = new Float32Array(p * u * c * l), h = [a && m > 1 ? u - 1 : u, a && d > 1 ? c - 1 : c], g = [a && m > 1 ? m - 1 : m, a && d > 1 ? d - 1 : d], x = h[0] / g[0], b = h[1] / g[1], C = e.data.get(s.dataId).values, S = 0;\n for (let k = 0; k < p; k++) {\n let _ = k * i[0];\n for (let E = 0; E < m; E++) {\n let R = E * x, D = Math.floor(R), P = Math.min(Math.ceil(R), u - 1), O = _ + D * i[1], M = _ + P * i[1], L = R - D, B = 1 - L;\n for (let z = 0; z < d; z++) {\n let U = z * b, j = Math.floor(U), q = Math.min(Math.ceil(U), c - 1), Y = U - j, J = 1 - Y, re = O + j * i[2], ne = O + q * i[2], ee = M + j * i[2], oe = M + q * i[2], ie = B * J, le = B * Y, be = L * J, _e = L * Y;\n for (let ve = 0; ve < l; ve++) {\n let Fe = C[S++];\n f[re + ve] += Fe * ie, f[ne + ve] += Fe * le, f[ee + ve] += Fe * be, f[oe + ve] += Fe * _e;\n }\n }\n }\n }\n return e.makeTensorInfo([p, c, u, l], \"float32\", f);\n}\nvar RE = { kernelName: ei, backendName: \"cpu\", kernelFunc: r7 };\nfunction o7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, halfPixelCenters: a, size: i } = o;\n Q(n, \"resizeNearestNeighbor\");\n let p = y.computeStrides(n.shape), [u, c] = i, [l, m, d, f] = n.shape, h = e.data.get(n.dataId).values, g = new Float32Array(l * u * c * f), x = [s && u > 1 ? m - 1 : m, s && c > 1 ? d - 1 : d], b = [s && u > 1 ? u - 1 : u, s && c > 1 ? c - 1 : c], C = x[0] / b[0], S = x[1] / b[1], k = 0;\n for (let _ = 0; _ < l; _++) {\n let E = _ * p[0];\n for (let R = 0; R < u; R++) {\n let D = a ? C * (R + 0.5) : C * R, P = Math.min(m - 1, s ? Math.round(D) : Math.floor(D));\n a && (P = Math.max(0, P));\n let O = E + P * p[1];\n for (let M = 0; M < c; M++) {\n let L = a ? S * (M + 0.5) : S * M, B = Math.min(d - 1, s ? Math.round(L) : Math.floor(L));\n a && (B = Math.max(0, B));\n let z = O + B * p[2];\n for (let U = 0; U < f; U++) {\n let j = h[z + U];\n g[k++] = j;\n }\n }\n }\n }\n return e.makeTensorInfo([l, u, c, f], n.dtype, g);\n}\nvar DE = { kernelName: is, backendName: \"cpu\", kernelFunc: o7 };\nfunction n7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o;\n Q([s, n], \"resizeNearestNeighborGrad\");\n let i = y.computeStrides(n.shape), p = y.computeStrides(s.shape), [u, c, l, m] = n.shape, [, d, f] = s.shape, h = new Float32Array(u * c * l * m), g = e.data.get(s.dataId).values, x = [a && d > 1 ? c - 1 : c, a && f > 1 ? l - 1 : l], b = [a && d > 1 ? d - 1 : d, a && f > 1 ? f - 1 : f], C = x[0] / b[0], S = x[1] / b[1], k = 1 / C, _ = 1 / S, E = Math.ceil(k) * 2 + 2, R = Math.ceil(_) * 2 + 2;\n for (let D = 0; D < u; D++) {\n let P = D * i[0];\n for (let O = 0; O < c; O++) {\n let M = P + O * i[1], L = Math.floor(O * k), B = Math.floor(L - E / 2);\n for (let z = 0; z < l; z++) {\n let U = M + z * i[2], j = Math.floor(z * _), q = Math.floor(j - R / 2);\n for (let Y = 0; Y < m; Y++) {\n let J = 0;\n for (let re = 0; re < E; re++) {\n let ne = re + B;\n if (ne < 0 || ne >= d)\n continue;\n let ee = P + ne * p[1], oe = ne * C, ie = Math.min(c - 1, a ? Math.round(oe) : Math.floor(oe));\n if (O === ie)\n for (let le = 0; le < R; le++) {\n let be = le + q;\n if (be < 0 || be >= f)\n continue;\n let _e = ee + be * p[2], ve = be * S, Fe = Math.min(l - 1, a ? Math.round(ve) : Math.floor(ve));\n z === Fe && (J += g[_e + Y]);\n }\n }\n h[U + Y] = J;\n }\n }\n }\n }\n return e.makeTensorInfo(n.shape, n.dtype, h);\n}\nvar AE = { kernelName: Ja, backendName: \"cpu\", kernelFunc: n7 };\nfunction s7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dims: s } = o;\n Q(n, \"reverse\");\n let a = n.shape.length, i = y.parseAxisParam(s, n.shape);\n if (a === 0)\n return mr({ inputs: { x: n }, backend: e });\n let p = new tt(n.shape, n.dtype), u = e.bufferSync(n);\n for (let c = 0; c < p.size; c++) {\n let l = p.indexToLoc(c), m = l.slice();\n i.forEach((d) => m[d] = n.shape[d] - 1 - m[d]), p.set(u.get(...m), ...l);\n }\n return e.makeTensorInfo(p.shape, p.dtype, p.values);\n}\nvar FE = { kernelName: cs, backendName: \"cpu\", kernelFunc: s7 };\nvar PE = { kernelName: As, backendName: \"cpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { image: o } = r, { radians: n, fillValue: s, center: a } = t8, i = e, p = y.getTypedArrayFromDType(o.dtype, y.sizeFromShape(o.shape)), [u, c, l, m] = o.shape, [d, f] = w.getImageCenter(a, c, l), h = 255, g = Math.sin(n), x = Math.cos(n), b = i.data.get(o.dataId).values;\n for (let S = 0; S < u; S++) {\n let k = S * l * c * m;\n for (let _ = 0; _ < c; _++) {\n let E = _ * (l * m);\n for (let R = 0; R < l; R++) {\n let D = R * m;\n for (let P = 0; P < m; P++) {\n let O = [u, _, R, P], M = O[2], L = O[1], B = (M - d) * x - (L - f) * g, z = (M - d) * g + (L - f) * x;\n B = Math.round(B + d), z = Math.round(z + f);\n let U = s;\n if (typeof s != \"number\" && (P === 3 ? U = h : U = s[P]), B >= 0 && B < l && z >= 0 && z < c) {\n let q = z * (l * m), Y = B * m, J = k + q + Y + P;\n U = b[J];\n }\n let j = k + E + D + P;\n p[j] = U;\n }\n }\n }\n }\n return { dataId: i.write(p, o.shape, o.dtype), shape: o.shape, dtype: o.dtype };\n} };\nvar a7 = Ie(ls, (r) => {\n let t8 = Math.floor(r);\n return r - t8 < 0.5 ? Math.floor(r) : r - t8 > 0.5 ? Math.ceil(r) : t8 % 2 === 0 ? t8 : t8 + 1;\n});\nvar OE = { kernelName: ls, backendName: \"cpu\", kernelFunc: a7 };\nfunction i7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n, updates: s } = t8, { shape: a } = o, { sliceRank: i, numUpdates: p, sliceSize: u, strides: c, outputSize: l } = w.calculateShapes(s, n, a), m = true, d = e.bufferSync(n), f = e.bufferSync(s), h = zs(d, f, a, l, u, p, i, c, 0, m);\n return e.makeTensorInfo(a, h.dtype, h.values);\n}\nvar ME = { kernelName: ds, backendName: \"cpu\", kernelFunc: i7 };\nfunction u7(r, t8) {\n let e = 0, o = r.length, n = 0;\n for (; e < o; )\n n = Math.floor((e + o) / 2), r[n] < t8 ? e = n + 1 : o = n;\n return o;\n}\nfunction p7(r, t8) {\n let e = 0, o = r.length, n = 0;\n for (; e < o; )\n n = Math.floor((e + o) / 2), r[n] <= t8 ? e = n + 1 : o = n;\n return o;\n}\nfunction LE(r, t8, e, o, n, s) {\n let a = y.getArrayFromDType(\"int32\", e * n);\n for (let i = 0; i < e; ++i) {\n let p = r.slice(i * o, (i + 1) * o), u = i * n;\n for (let c = 0; c < n; ++c)\n a[u + c] = s === \"left\" ? u7(p, t8[c + u]) : p7(p, t8[c + u]);\n }\n return a;\n}\nfunction c7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sortedSequence: n, values: s } = t8, { side: a } = o, i = e.data.get(n.dataId).values, p = e.data.get(s.dataId).values, u = LE(i, p, n.shape[0], n.shape[1], s.shape[1], a);\n return e.makeTensorInfo(s.shape, \"int32\", u);\n}\nvar BE = { kernelName: hs, backendName: \"cpu\", kernelFunc: c7 };\nfunction l7(r) {\n let { inputs: t8, backend: e } = r, { condition: o, t: n, e: s } = t8;\n Q([o, n, s], \"select\");\n let a = o.shape.length, i = e.data.get(o.dataId).values, p = e.data.get(n.dataId).values, u = e.data.get(s.dataId).values, c = dt(n.dtype, s.dtype), l = y.makeZerosTypedArray(y.sizeFromShape(n.shape), c), m = 0, d = a === 0 || a > 1 || n.shape.length === 1 ? 1 : y.sizeFromShape(n.shape.slice(1));\n for (let f = 0; f < i.length; f++)\n for (let h = 0; h < d; h++)\n i[f] === 1 ? l[m++] = p[f] : l[m++] = u[f];\n return e.makeTensorInfo(n.shape, c, l);\n}\nvar zE = { kernelName: fa, backendName: \"cpu\", kernelFunc: l7 };\nvar m7 = w.SELU_SCALEALPHA;\nvar d7 = w.SELU_SCALE;\nvar f7 = Ie(gs, (r) => r >= 0 ? d7 * r : m7 * (Math.exp(r) - 1));\nvar VE = { kernelName: gs, backendName: \"cpu\", kernelFunc: f7 };\nvar h7 = Ie(bs, (r) => r < 0 ? -1 : r > 0 ? 1 : 0);\nvar WE = { kernelName: bs, backendName: \"cpu\", kernelFunc: h7 };\nvar g7 = Ie(xs, (r) => Math.sin(r));\nvar UE = { kernelName: xs, backendName: \"cpu\", kernelFunc: g7 };\nvar x7 = Ie(ys, (r) => Math.sinh(r));\nvar GE = { kernelName: ys, backendName: \"cpu\", kernelFunc: x7 };\nvar y7 = 11920928955078125e-23;\nvar HE = Math.log(y7) + 2;\nvar b7 = Ie(ws, (r) => {\n let t8 = r > -HE, e = r < HE, o = Math.exp(r), n;\n return e ? n = o : t8 ? n = r : n = Math.log(1 + o), n;\n});\nvar KE = { kernelName: ws, backendName: \"cpu\", kernelFunc: b7 };\nfunction C7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, paddings: a } = o;\n Q([n], \"spaceToBatchND\");\n let i = y.sizeFromShape(s), p = [[0, 0]];\n p.push(...a);\n for (let _ = 1 + s.length; _ < n.shape.length; ++_)\n p.push([0, 0]);\n let u = Wf.kernelFunc({ inputs: { x: n }, backend: e, attrs: { paddings: p, constantValue: 0 } }), c = w.getReshaped(u.shape, s, i, false), l = w.getPermuted(c.length, s.length, false), m = w.getReshapedPermuted(u.shape, s, i, false), h = Ve({ inputs: { x: u }, backend: e, attrs: { shape: c } }), b = It({ inputs: { x: h }, backend: e, attrs: { perm: l } }), k = Ve({ inputs: { x: b }, backend: e, attrs: { shape: m } });\n return e.disposeIntermediateTensorInfo(u), e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(b), k;\n}\nvar qE = { kernelName: ga, backendName: \"cpu\", kernelFunc: C7 };\nfunction w7(r) {\n let { inputs: t8, backend: e } = r, { indices: o, values: n, denseShape: s, defaultValue: a } = t8;\n if (s.shape.length !== 1)\n throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);\n if (o.shape.length !== 2)\n throw new Error(`Indices must be a matrix, saw:\n ${o.shape}`);\n if (n.shape.length !== 1)\n throw new Error(`Values must be a vector, saw:\n ${n.shape}`);\n if (a.shape.length !== 0)\n throw new Error(`Default value must be a scalar, saw:\n ${a.shape}`);\n let i = e.data.get(o.dataId).values, p = e.data.get(n.dataId).values, u = e.data.get(s.dataId).values, c = e.data.get(a.dataId).values[0], [l, m, d, f, h] = Ff(i, o.shape, o.dtype, p, n.dtype, u, c);\n return [e.makeTensorInfo(m, o.dtype, l), e.makeTensorInfo([m[0]], n.dtype, d), e.makeTensorInfo([f.length], \"bool\", new Uint8Array(f.map((g) => Number(g)))), e.makeTensorInfo([h.length], o.dtype, new Int32Array(h))];\n}\nvar jE = { kernelName: ji, backendName: \"cpu\", kernelFunc: w7 };\nfunction S7(r) {\n let { inputs: t8, backend: e } = r, { inputIndices: o, inputShape: n, newShape: s } = t8;\n if (o.shape.length !== 2)\n throw new Error(`Input indices should be a matrix but received shape\n ${o.shape}`);\n if (n.shape.length !== 1)\n throw new Error(`Input shape should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Target shape should be a vector but received shape ${s.shape}`);\n let a = Array.from(e.data.get(n.dataId).values), i = e.data.get(o.dataId).values, p = Array.from(e.data.get(s.dataId).values), [u, c, l] = Pf(i, o.shape, o.dtype, a, p);\n return [e.makeTensorInfo(c, o.dtype, u), e.makeTensorInfo([l.length], s.dtype, new Int32Array(l))];\n}\nvar XE = { kernelName: ti, backendName: \"cpu\", kernelFunc: S7 };\nfunction I7(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n if (o.shape.length < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.shape.length !== 1)\n throw new Error(`Indices should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);\n if (n.shape[0] !== s.shape[0])\n throw new Error(\"segmentIds and indices should have same size.\");\n let a = e.data.get(o.dataId).values, i = e.data.get(n.dataId).values, p = e.data.get(s.dataId).values, [u, c] = Nc(a, o.shape, o.dtype, i, p, true);\n return e.makeTensorInfo(c, o.dtype, u);\n}\nvar YE = { kernelName: ya, backendName: \"cpu\", kernelFunc: I7 };\nfunction v7(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n if (o.shape.length < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.shape.length !== 1)\n throw new Error(`Indices should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);\n if (n.shape[0] !== s.shape[0])\n throw new Error(\"segmentIds and indices should have same size.\");\n let a = e.data.get(o.dataId).values, i = e.data.get(n.dataId).values, p = e.data.get(s.dataId).values, [u, c] = Nc(a, o.shape, o.dtype, i, p);\n return e.makeTensorInfo(c, o.dtype, u);\n}\nvar QE = { kernelName: ba, backendName: \"cpu\", kernelFunc: v7 };\nfunction k7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sparseIndices: n, sparseValues: s, defaultValue: a } = t8, { outputShape: i } = o, { sliceRank: p, numUpdates: u, sliceSize: c, strides: l, outputSize: m } = w.calculateShapes(s, n, i), d = false, f = e.bufferSync(n), h;\n switch (s.dtype) {\n case \"bool\": {\n let g = e.bufferSync(s), x = !!e.data.get(a.dataId).values[0];\n h = zs(f, g, i, m, c, u, p, l, x, d);\n break;\n }\n case \"float32\": {\n let g = e.bufferSync(s), x = e.data.get(a.dataId).values[0];\n h = zs(f, g, i, m, c, u, p, l, x, d);\n break;\n }\n case \"int32\": {\n let g = e.bufferSync(s), x = e.data.get(a.dataId).values[0];\n h = zs(f, g, i, m, c, u, p, l, x, d);\n break;\n }\n case \"string\": {\n let g = e.bufferSync(s), x = y.decodeString(e.data.get(a.dataId).values[0]);\n h = zs(f, g, i, m, c, u, p, l, x, d);\n break;\n }\n default:\n throw new Error(`Unsupported type ${s.dtype}`);\n }\n return e.makeTensorInfo(i, h.dtype, h.values);\n}\nvar ZE = { kernelName: ks, backendName: \"cpu\", kernelFunc: k7 };\nfunction N7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { numOrSizeSplits: s, axis: a } = o, i = y.parseAxisParam(a, n.shape)[0], p = w.prepareSplitSize(n, s, i), u = new Array(n.shape.length).fill(0), c = n.shape.slice();\n return p.map((l) => {\n let m = [...c];\n m[i] = l;\n let d = Fo({ inputs: { x: n }, backend: e, attrs: { begin: u, size: m } });\n return u[i] += l, d;\n });\n}\nvar JE = { kernelName: xa, backendName: \"cpu\", kernelFunc: N7 };\nvar eR = { kernelName: Xi, backendName: \"cpu\", kernelFunc: ({ inputs: r, backend: t8 }) => {\n let { x: e } = r, o = t8;\n Q(e, \"square\");\n let n = o.data.get(e.dataId).values, s = new Float32Array(n.length);\n for (let i = 0; i < n.length; ++i) {\n let p = n[i];\n s[i] = p * p;\n }\n return { dataId: o.write(s, e.shape, e.dtype), shape: e.shape, dtype: e.dtype };\n} };\nvar T7 = Ie(So, (r, t8) => {\n let e = t8;\n return isNaN(r) ? NaN : r > 0 ? 1 : e.alpha;\n});\nvar tR = { kernelName: So, backendName: \"cpu\", kernelFunc: T7 };\nfunction _7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, end: a, strides: i, beginMask: p, endMask: u, ellipsisMask: c, newAxisMask: l, shrinkAxisMask: m } = o;\n Q(n, \"stridedSlice\");\n let { finalShapeSparse: d, finalShape: f, isIdentity: h, sliceDim0: g, isSimpleSlice: x, begin: b, end: C, strides: S } = ct.sliceInfo(n.shape, s, a, i, p, u, c, l, m), k;\n if (h)\n k = Ve({ inputs: { x: n }, backend: e, attrs: { shape: f } });\n else if (g || x) {\n y.assert(n.shape.length >= 1, () => `Input must have rank at least 1, got: ${n.shape.length}`);\n let _ = ct.computeOutShape(b, C, S), E = Fo({ inputs: { x: n }, backend: e, attrs: { begin: b, size: _ } });\n k = Ve({ inputs: { x: E }, backend: e, attrs: { shape: f } }), e.disposeIntermediateTensorInfo(E);\n } else {\n let _ = e.bufferSync(n), E = Of(d, _, S, b);\n k = e.makeTensorInfo(f, E.dtype, E.values);\n }\n return k;\n}\nvar rR = { kernelName: Ts, backendName: \"cpu\", kernelFunc: _7 };\nfunction $7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { separator: n, nGramWidths: s, leftPad: a, rightPad: i, padWidth: p, preserveShortSequences: u } = o, { data: c, dataSplits: l } = t8, m = e.data.get(c.dataId).values, d = e.data.get(l.dataId).values, [f, h] = gp(m, d, n, s, a, i, p, u);\n return [e.makeTensorInfo([f.length], \"string\", f), e.makeTensorInfo(l.shape, \"int32\", h)];\n}\nvar oR = { kernelName: Ca, backendName: \"cpu\", kernelFunc: $7 };\nfunction E7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { skipEmpty: n } = o, { input: s, delimiter: a } = t8;\n if (s.dtype !== \"string\")\n throw new Error(\"Input must be of datatype string\");\n if (s.shape.length !== 1)\n throw new Error(`Input must be a vector, got shape: ${s.shape}`);\n if (a.shape.length !== 0)\n throw new Error(`Delimiter must be a scalar, got shape: ${a.shape}`);\n let i = e.data.get(s.dataId).values, p = e.data.get(a.dataId).values[0], [u, c, l] = xp(i, p, n), m = c.length;\n return [e.makeTensorInfo([m, 2], \"int32\", u), e.makeTensorInfo([m], \"string\", c), e.makeTensorInfo([2], \"int32\", new Int32Array(l))];\n}\nvar nR = { kernelName: Yi, backendName: \"cpu\", kernelFunc: E7 };\nfunction R7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { numBuckets: n } = o, { input: s } = t8;\n if (s.dtype !== \"string\")\n throw new Error(\"Input must be of datatype string\");\n if (n <= 0)\n throw new Error(\"Number of buckets must be at least 1\");\n let a = e.data.get(s.dataId).values, i = yp(a, n);\n return e.makeTensorInfo(s.shape, \"int32\", i);\n}\nvar sR = { kernelName: Qi, backendName: \"cpu\", kernelFunc: R7 };\nvar D7 = Ie($s, (r) => Math.tan(r));\nvar aR = { kernelName: $s, backendName: \"cpu\", kernelFunc: D7 };\nvar A7 = Ie(Es, (r) => Math.tanh(r));\nvar iR = { kernelName: Es, backendName: \"cpu\", kernelFunc: A7 };\nfunction F7(r) {\n let { inputs: t8, backend: e } = r, { tensor: o, indices: n, updates: s } = t8, { sliceRank: a, numUpdates: i, sliceSize: p, strides: u, outputSize: c } = w.calculateShapes(s, n, o.shape), l = false, m = e.bufferSync(n), d = e.bufferSync(s), f = e.bufferSync(o), h = zs(m, d, o.shape, c, p, i, a, u, f, l);\n return e.makeTensorInfo(o.shape, h.dtype, h.values);\n}\nvar uR = { kernelName: fs, backendName: \"cpu\", kernelFunc: F7 };\nfunction P7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reps: s } = o;\n Q(n, \"tile\");\n let a = Mf(e.bufferSync(n), s);\n return e.makeTensorInfo(a.shape, a.dtype, a.values);\n}\nvar pR = { kernelName: po, backendName: \"cpu\", kernelFunc: P7 };\nfunction O7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { k: s, sorted: a } = o;\n Q(n, \"topk\");\n let i = e.data.get(n.dataId).values, [p, u] = Lf(i, n.shape, n.dtype, s, a);\n return [e.makeTensorInfo(p.shape, p.dtype, p.values), e.makeTensorInfo(u.shape, u.dtype, u.values)];\n}\nvar cR = { kernelName: Rs, backendName: \"cpu\", kernelFunc: O7 };\nfunction M7(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { image: n, transforms: s } = t8, { interpolation: a, fillMode: i, fillValue: p, outputShape: u } = e, [c, l, m, d] = n.shape, [f, h] = u != null ? u : [l, m], g = [c, f, h, d], x = y.computeStrides(n.shape), b = x[0], C = x[1], S = x[2], k = y.computeStrides(g), _ = k[0], E = k[1], R = k[2], D = y.getTypedArrayFromDType(n.dtype, y.sizeFromShape(g));\n D.fill(p);\n let P = o.data.get(n.dataId).values, O = o.data.get(s.dataId).values;\n for (let L = 0; L < c; ++L) {\n let B = s.shape[0] === 1 ? O : O.subarray(L * 8, L * 8 + 8);\n for (let z = 0; z < f; ++z)\n for (let U = 0; U < h; ++U)\n for (let j = 0; j < d; ++j) {\n let q, Y = B[6] * U + B[7] * z + 1;\n if (Y === 0)\n continue;\n let J = (B[0] * U + B[1] * z + B[2]) / Y, re = (B[3] * U + B[4] * z + B[5]) / Y, ne = lR(J, m, i), ee = lR(re, l, i);\n switch (a) {\n case \"nearest\":\n q = W7(P, l, m, b, C, S, L, ee, ne, j, p);\n break;\n case \"bilinear\":\n q = U7(P, l, m, b, C, S, L, ee, ne, j, p);\n break;\n default:\n throw new Error(`Error in Transform: Expect 'nearest' or 'bilinear', but got ${a}`);\n }\n let oe = L * _ + z * E + U * R + j;\n D[oe] = q;\n }\n return o.makeTensorInfo(g, n.dtype, D);\n }\n return { dataId: o.write(D, g, n.dtype), shape: n.shape, dtype: n.dtype };\n}\nvar mR = { kernelName: Ds, backendName: \"cpu\", kernelFunc: M7 };\nfunction lR(r, t8, e) {\n switch (e) {\n case \"reflect\":\n return L7(r, t8);\n case \"wrap\":\n return B7(r, t8);\n case \"nearest\":\n return V7(r, t8);\n case \"constant\":\n default:\n return z7(r, t8);\n }\n}\nfunction L7(r, t8) {\n let e = r;\n if (e < 0)\n if (t8 <= 1)\n e = 0;\n else {\n let o = 2 * t8;\n e < o && (e = o * Math.trunc(-e / o) + e), e = e < -t8 ? e + o : -e - 1;\n }\n else if (e > t8 - 1)\n if (t8 <= 1)\n e = 0;\n else {\n let o = 2 * t8;\n e -= o * Math.trunc(e / o), e >= t8 && (e = o - e - 1);\n }\n return y.clamp(0, e, t8 - 1);\n}\nfunction B7(r, t8) {\n let e = r;\n if (e < 0)\n if (t8 <= 1)\n e = 0;\n else {\n let o = t8 - 1;\n e += t8 * (Math.trunc(-e / o) + 1);\n }\n else if (e > t8 - 1)\n if (t8 <= 1)\n e = 0;\n else {\n let o = t8 - 1;\n e -= t8 * Math.trunc(e / o);\n }\n return y.clamp(0, e, t8 - 1);\n}\nfunction z7(r, t8) {\n return r;\n}\nfunction V7(r, t8) {\n return y.clamp(0, r, t8 - 1);\n}\nfunction ql(r, t8, e, o, n, s, a, i, p, u, c) {\n let l = a * o + i * n + p * s + u;\n return 0 <= i && i < t8 && 0 <= p && p < e ? r[l] : c;\n}\nfunction W7(r, t8, e, o, n, s, a, i, p, u, c) {\n let l = Math.round(i), m = Math.round(p);\n return ql(r, t8, e, o, n, s, a, l, m, u, c);\n}\nfunction U7(r, t8, e, o, n, s, a, i, p, u, c) {\n let l = Math.floor(i), m = Math.floor(p), d = l + 1, f = m + 1, h = (f - p) * ql(r, t8, e, o, n, s, a, l, m, u, c) + (p - m) * ql(r, t8, e, o, n, s, a, l, f, u, c), g = (f - p) * ql(r, t8, e, o, n, s, a, d, m, u, c) + (p - m) * ql(r, t8, e, o, n, s, a, d, f, u, c);\n return (d - i) * h + (i - l) * g;\n}\nfunction G7(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { axis: n } = e, { x: s } = t8;\n Q(s, \"unique\");\n let a = o.data.get(s.dataId).values, { outputValues: i, outputShape: p, indices: u } = bp(a, n, s.shape, s.dtype);\n return [o.makeTensorInfo(p, s.dtype, i), o.makeTensorInfo([u.length], \"int32\", u)];\n}\nvar dR = { kernelName: Zi, backendName: \"cpu\", kernelFunc: G7 };\nfunction H7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { value: n } = t8, { axis: s } = o;\n s < 0 && (s += n.shape.length);\n let a = n.shape.length, i = n.shape[s], p = new Array(a - 1), u = 0;\n for (let d = 0; d < a; d++)\n d !== s && (p[u++] = n.shape[d]);\n let c = new Array(a).fill(0), l = n.shape.slice();\n l[s] = 1;\n let m = new Array(i);\n for (let d = 0; d < m.length; d++) {\n c[s] = d;\n let f = Fo({ inputs: { x: n }, backend: e, attrs: { begin: c, size: l } });\n m[d] = Ve({ inputs: { x: f }, backend: e, attrs: { shape: p } }), e.disposeIntermediateTensorInfo(f);\n }\n return m;\n}\nvar fR = { kernelName: wa, backendName: \"cpu\", kernelFunc: H7 };\nfunction K7(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, segmentIds: s } = t8, { numSegments: a } = o;\n Q(n, \"unsortedSegmentSum\");\n let i = n.shape.length, p = s.shape.length, u = [], c = [], l = i - p, m = s;\n for (let f = 0; f < l; ++f) {\n let h = $c({ inputs: { input: m }, backend: e, attrs: { dim: f + 1 } });\n m = h, c.push(h);\n }\n for (let f = 0; f < a; ++f) {\n let h = y.createScalarValue(f, \"int32\"), g = e.makeTensorInfo([], \"int32\", h), x = GS({ inputs: { a: g, b: m }, backend: e }), b = Do({ inputs: { x }, backend: e, attrs: { dtype: \"float32\" } }), C = dp({ inputs: { a: b, b: n }, backend: e }), S = gi({ inputs: { x: C }, backend: e, attrs: { axis: 0, keepDims: false } });\n u.push(S), c.push(g), c.push(x), c.push(b), c.push(C), c.push(S);\n }\n let d = II({ inputs: u, backend: e, attrs: { axis: 0 } });\n return c.forEach((f) => e.disposeIntermediateTensorInfo(f)), d;\n}\nvar hR = { kernelName: Ji, backendName: \"cpu\", kernelFunc: K7 };\nvar q7 = [z_, jT, V_, W_, JT, U_, G_, H_, K_, q_, j_, X_, Y_, Q_, Z_, e$, t$, r$, o$, B_, n$, s$, a$, e_, i$, ZT, t_, u$, XT, p$, l$, m$, d$, f$, h$, g$, x$, y$, b$, C$, w$, S$, I$, v$, k$, N$, T$, _$, $$, E$, R$, D$, F$, A_, P$, r_, O$, o_, M$, n_, L$, B$, z$, s_, a_, V$, W$, U$, G$, i_, u_, YT, H$, c$, K$, q$, j$, F_, p_, c_, X$, l_, Y$, Q$, Z$, J$, eE, tE, rE, m_, oE, nE, sE, aE, uE, pE, cE, d_, lE, mE, hE, f_, h_, gE, xE, yE, g_, bE, SE, IE, Wf, vE, P_, y_, kE, NE, TE, _E, QT, Gl, $E, O_, M_, L_, EE, RE, DE, AE, FE, PE, OE, I_, ME, BE, zE, VE, k_, WE, UE, GE, N_, dE, KE, qE, jE, XE, YE, QE, ZE, JE, __, eR, $_, E_, tR, rR, oR, nR, sR, R_, A$, aR, iR, uR, pR, cR, mR, x_, dR, fR, hR, CE];\nfor (let r of q7)\n ri(r);\nvar Ac = {};\nqe(Ac, { assertNotComplex: () => Vs, bindCanvasToFramebuffer: () => rZ, bindColorTextureToFramebuffer: () => Ql, bindTextureToProgramUniformSampler: () => BI, bindTextureUnit: () => bR, bindVertexBufferToProgramAttribute: () => jf, callAndCheck: () => ce, canBeRepresented: () => TI, createFragmentShader: () => $I, createFramebuffer: () => OI, createProgram: () => EI, createStaticIndexBuffer: () => AI, createStaticVertexBuffer: () => DI, createTexture: () => FI, createVertexShader: () => _I, getBatchDim: () => yi, getExtensionOrThrow: () => Ec, getFramebufferErrorMessage: () => CR, getMaxTexturesInShader: () => WI, getNumChannels: () => eZ, getProgramUniformLocation: () => LI, getProgramUniformLocationOrThrow: () => MI, getRowsCols: () => bi, getShapeAs3D: () => Dc, getTextureShapeFromLogicalShape: () => zI, getWebGLDisjointQueryTimerVersion: () => UI, getWebGLErrorMessage: () => yR, getWebGLMaxTextureSize: () => VI, hasExtension: () => qr, isCapableOfRenderingToFloatTexture: () => GI, isDownloadFloatTextureEnabled: () => HI, isReshapeFree: () => Cu, isWebGLFenceEnabled: () => KI, isWebGLVersionEnabled: () => Yf, linkProgram: () => RI, logShaderSourceAndInfoLog: () => qf, resetMaxTextureSize: () => oZ, resetMaxTexturesInShader: () => nZ, unbindColorTextureFromFramebuffer: () => Xf, unbindTextureUnit: () => tZ, validateFramebuffer: () => Rc, validateProgram: () => Yl, validateTextureSize: () => PI });\nvar wp = {};\nvar Uf = { alpha: false, antialias: false, premultipliedAlpha: false, preserveDrawingBuffer: false, depth: false, stencil: false, failIfMajorPerformanceCaveat: true };\nfunction vI(r, t8) {\n wp[r] = t8;\n}\nfunction Kr(r, t8) {\n if (!(r in wp) || t8 != null) {\n let o = X7(r, t8);\n if (o !== null)\n wp[r] = o;\n else\n return console.log(\"Could not get context for WebGL version\", r), null;\n }\n let e = wp[r];\n return e == null || e.isContextLost() ? (delete wp[r], Kr(r)) : (e.disable(e.DEPTH_TEST), e.disable(e.STENCIL_TEST), e.disable(e.BLEND), e.disable(e.DITHER), e.disable(e.POLYGON_OFFSET_FILL), e.disable(e.SAMPLE_COVERAGE), e.enable(e.SCISSOR_TEST), e.enable(e.CULL_FACE), e.cullFace(e.BACK), wp[r]);\n}\nfunction j7(r) {\n if (!A().getBool(\"IS_SAFARI\") && typeof OffscreenCanvas != \"undefined\" && r === 2)\n return new OffscreenCanvas(300, 150);\n if (typeof document != \"undefined\")\n return document.createElement(\"canvas\");\n throw new Error(\"Cannot create a canvas in this context\");\n}\nfunction X7(r, t8) {\n if (r !== 1 && r !== 2)\n throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");\n let e = t8 == null ? j7(r) : t8;\n return e.addEventListener(\"webglcontextlost\", (o) => {\n o.preventDefault(), delete wp[r];\n }, false), A().getBool(\"SOFTWARE_WEBGL_ENABLED\") && (Uf.failIfMajorPerformanceCaveat = false), r === 1 ? e.getContext(\"webgl\", Uf) || e.getContext(\"experimental-webgl\", Uf) : e.getContext(\"webgl2\", Uf);\n}\nvar bu;\n(function(r) {\n r[r.DENSE = 0] = \"DENSE\", r[r.SHARED_BATCH = 1] = \"SHARED_BATCH\";\n})(bu || (bu = {}));\nvar dr;\n(function(r) {\n r[r.RENDER = 0] = \"RENDER\", r[r.UPLOAD = 1] = \"UPLOAD\", r[r.PIXELS = 2] = \"PIXELS\", r[r.DOWNLOAD = 3] = \"DOWNLOAD\";\n})(dr || (dr = {}));\nvar rr;\n(function(r) {\n r[r.UNPACKED_FLOAT16 = 0] = \"UNPACKED_FLOAT16\", r[r.UNPACKED_FLOAT32 = 1] = \"UNPACKED_FLOAT32\", r[r.PACKED_4X1_UNSIGNED_BYTE = 2] = \"PACKED_4X1_UNSIGNED_BYTE\", r[r.PACKED_2X2_FLOAT32 = 3] = \"PACKED_2X2_FLOAT32\", r[r.PACKED_2X2_FLOAT16 = 4] = \"PACKED_2X2_FLOAT16\";\n})(rr || (rr = {}));\nfunction Sp(r, t8) {\n return [t8, r];\n}\nfunction gR(r, t8) {\n return r * t8;\n}\nfunction jl(r) {\n let t8 = y.sizeFromShape(r), e = Math.ceil(t8 / 4);\n return y.sizeToSquarishShape(e);\n}\nfunction La(r, t8) {\n return [Math.max(1, Math.ceil(t8 / 2)), Math.max(1, Math.ceil(r / 2))];\n}\nfunction xR(r, t8) {\n let [e, o] = La(r, t8);\n return e * o * 4;\n}\nfunction Xl(r, t8) {\n let e = r, o, n, s, a, i, p, u, c, l, m;\n return A().getNumber(\"WEBGL_VERSION\") === 2 ? (o = e.R32F, n = e.R16F, s = e.RGBA16F, a = e.RGBA32F, i = e.RED, u = 4, c = 1, l = e.HALF_FLOAT, m = e.FLOAT, p = e.RGBA8) : (o = r.RGBA, n = r.RGBA, s = r.RGBA, a = e.RGBA, i = r.RGBA, u = 4, c = 4, l = t8 != null ? t8.HALF_FLOAT_OES : null, m = r.FLOAT, p = r.RGBA), { internalFormatFloat: o, internalFormatHalfFloat: n, internalFormatPackedHalfFloat: s, internalFormatPackedFloat: a, textureFormatFloat: i, downloadTextureFormat: p, downloadUnpackNumChannels: u, defaultNumChannels: c, textureTypeHalfFloat: l, textureTypeFloat: m };\n}\nfunction ce(r, t8) {\n let e = t8();\n return A().getBool(\"DEBUG\") && Y7(r), e;\n}\nfunction Y7(r) {\n let t8 = r.getError();\n if (t8 !== r.NO_ERROR)\n throw new Error(\"WebGL Error: \" + yR(r, t8));\n}\nvar Q7 = 596e-10;\nvar Z7 = 65504;\nfunction TI(r) {\n return !!(A().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\") || r === 0 || Q7 < Math.abs(r) && Math.abs(r) < Z7);\n}\nfunction yR(r, t8) {\n switch (t8) {\n case r.NO_ERROR:\n return \"NO_ERROR\";\n case r.INVALID_ENUM:\n return \"INVALID_ENUM\";\n case r.INVALID_VALUE:\n return \"INVALID_VALUE\";\n case r.INVALID_OPERATION:\n return \"INVALID_OPERATION\";\n case r.INVALID_FRAMEBUFFER_OPERATION:\n return \"INVALID_FRAMEBUFFER_OPERATION\";\n case r.OUT_OF_MEMORY:\n return \"OUT_OF_MEMORY\";\n case r.CONTEXT_LOST_WEBGL:\n return \"CONTEXT_LOST_WEBGL\";\n default:\n return `Unknown error code ${t8}`;\n }\n}\nfunction Ec(r, t8) {\n return xi(r, () => r.getExtension(t8), 'Extension \"' + t8 + '\" not supported on this browser.');\n}\nfunction _I(r, t8) {\n let e = xi(r, () => r.createShader(r.VERTEX_SHADER), \"Unable to create vertex WebGLShader.\");\n if (ce(r, () => r.shaderSource(e, t8)), ce(r, () => r.compileShader(e)), r.getShaderParameter(e, r.COMPILE_STATUS) === false)\n throw console.log(r.getShaderInfoLog(e)), new Error(\"Failed to compile vertex shader.\");\n return e;\n}\nfunction $I(r, t8) {\n let e = xi(r, () => r.createShader(r.FRAGMENT_SHADER), \"Unable to create fragment WebGLShader.\");\n if (ce(r, () => r.shaderSource(e, t8)), ce(r, () => r.compileShader(e)), A().get(\"ENGINE_COMPILE_ONLY\"))\n return e;\n if (r.getShaderParameter(e, r.COMPILE_STATUS) === false)\n throw qf(t8, r.getShaderInfoLog(e)), new Error(\"Failed to compile fragment shader.\");\n return e;\n}\nvar J7 = /ERROR: [0-9]+:([0-9]+):/g;\nfunction qf(r, t8) {\n let e = J7.exec(t8);\n if (e == null) {\n console.log(`Couldn't parse line number in error: ${t8}`), console.log(r);\n return;\n }\n let o = +e[1], n = r.split(`\n`), s = n.length.toString().length + 2, a = n.map((l, m) => y.rightPad((m + 1).toString(), s) + l), i = 0;\n for (let l = 0; l < a.length; l++)\n i = Math.max(a[l].length, i);\n let p = a.slice(0, o - 1), u = a.slice(o - 1, o), c = a.slice(o);\n console.log(p.join(`\n`)), console.log(t8.split(`\n`)[0]), console.log(`%c ${y.rightPad(u[0], i)}`, \"border:1px solid red; background-color:#e3d2d2; color:#a61717\"), console.log(c.join(`\n`));\n}\nfunction EI(r) {\n return xi(r, () => r.createProgram(), \"Unable to create WebGLProgram.\");\n}\nfunction RI(r, t8) {\n if (ce(r, () => r.linkProgram(t8)), !A().get(\"ENGINE_COMPILE_ONLY\") && r.getProgramParameter(t8, r.LINK_STATUS) === false)\n throw console.log(r.getProgramInfoLog(t8)), new Error(\"Failed to link vertex and fragment shaders.\");\n}\nfunction Yl(r, t8) {\n if (ce(r, () => r.validateProgram(t8)), r.getProgramParameter(t8, r.VALIDATE_STATUS) === false)\n throw console.log(r.getProgramInfoLog(t8)), new Error(\"Shader program validation failed.\");\n}\nfunction DI(r, t8) {\n let e = xi(r, () => r.createBuffer(), \"Unable to create WebGLBuffer\");\n return ce(r, () => r.bindBuffer(r.ARRAY_BUFFER, e)), ce(r, () => r.bufferData(r.ARRAY_BUFFER, t8, r.STATIC_DRAW)), e;\n}\nfunction AI(r, t8) {\n let e = xi(r, () => r.createBuffer(), \"Unable to create WebGLBuffer\");\n return ce(r, () => r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, e)), ce(r, () => r.bufferData(r.ELEMENT_ARRAY_BUFFER, t8, r.STATIC_DRAW)), e;\n}\nfunction eZ() {\n return A().getNumber(\"WEBGL_VERSION\") === 2 ? 1 : 4;\n}\nfunction FI(r) {\n return xi(r, () => r.createTexture(), \"Unable to create WebGLTexture.\");\n}\nfunction PI(r, t8) {\n let e = A().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");\n if (r <= 0 || t8 <= 0) {\n let o = `[${r}x${t8}]`;\n throw new Error(\"Requested texture size \" + o + \" is invalid.\");\n }\n if (r > e || t8 > e) {\n let o = `[${r}x${t8}]`, n = `[${e}x${e}]`;\n throw new Error(\"Requested texture size \" + o + \" greater than WebGL maximum on this browser / GPU \" + n + \".\");\n }\n}\nfunction OI(r) {\n return xi(r, () => r.createFramebuffer(), \"Unable to create WebGLFramebuffer.\");\n}\nfunction jf(r, t8, e, o, n, s, a) {\n let i = r.getAttribLocation(t8, e);\n return i === -1 ? false : (ce(r, () => r.bindBuffer(r.ARRAY_BUFFER, o)), ce(r, () => r.vertexAttribPointer(i, n, r.FLOAT, false, s, a)), ce(r, () => r.enableVertexAttribArray(i)), true);\n}\nfunction bR(r, t8, e) {\n wR(r, e), ce(r, () => r.activeTexture(r.TEXTURE0 + e)), ce(r, () => r.bindTexture(r.TEXTURE_2D, t8));\n}\nfunction tZ(r, t8) {\n wR(r, t8), ce(r, () => r.activeTexture(r.TEXTURE0 + t8)), ce(r, () => r.bindTexture(r.TEXTURE_2D, null));\n}\nfunction MI(r, t8, e) {\n return xi(r, () => r.getUniformLocation(t8, e), 'uniform \"' + e + '\" not present in program.');\n}\nfunction LI(r, t8, e) {\n return r.getUniformLocation(t8, e);\n}\nfunction BI(r, t8, e, o) {\n ce(r, () => bR(r, t8, o)), ce(r, () => r.uniform1i(e, o));\n}\nfunction rZ(r) {\n ce(r, () => r.bindFramebuffer(r.FRAMEBUFFER, null)), ce(r, () => r.viewport(0, 0, r.canvas.width, r.canvas.height)), ce(r, () => r.scissor(0, 0, r.canvas.width, r.canvas.height));\n}\nfunction Ql(r, t8, e) {\n ce(r, () => r.bindFramebuffer(r.FRAMEBUFFER, e)), ce(r, () => r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, t8, 0));\n}\nfunction Xf(r, t8) {\n ce(r, () => r.bindFramebuffer(r.FRAMEBUFFER, t8)), ce(r, () => r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, null, 0));\n}\nfunction Rc(r) {\n let t8 = r.checkFramebufferStatus(r.FRAMEBUFFER);\n if (t8 !== r.FRAMEBUFFER_COMPLETE)\n throw new Error(\"Error binding framebuffer: \" + CR(r, t8));\n}\nfunction CR(r, t8) {\n switch (t8) {\n case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n return \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";\n case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n return \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";\n case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n return \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";\n case r.FRAMEBUFFER_UNSUPPORTED:\n return \"FRAMEBUFFER_UNSUPPORTED\";\n default:\n return `unknown error ${t8}`;\n }\n}\nfunction xi(r, t8, e) {\n let o = ce(r, () => t8());\n if (o == null)\n throw new Error(e);\n return o;\n}\nfunction wR(r, t8) {\n let e = r.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1, o = t8 + r.TEXTURE0;\n if (o < r.TEXTURE0 || o > e) {\n let n = `[gl.TEXTURE0, gl.TEXTURE${e}]`;\n throw new Error(`textureUnit must be in ${n}.`);\n }\n}\nfunction yi(r, t8 = 2) {\n return y.sizeFromShape(r.slice(0, r.length - t8));\n}\nfunction bi(r) {\n if (r.length === 0)\n throw Error(\"Cannot get rows and columns of an empty shape array.\");\n return [r.length > 1 ? r[r.length - 2] : 1, r[r.length - 1]];\n}\nfunction Dc(r) {\n let t8 = [1, 1, 1];\n return r.length === 0 || r.length === 1 && r[0] === 1 || (t8 = [yi(r), ...bi(r)]), t8;\n}\nfunction zI(r, t8 = false) {\n let e = A().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"), o = A().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");\n o === 1 / 0 && A().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\") && (o = e / 2), t8 && (e = e * 2, o = o * 2, r = r.map((i, p) => p >= r.length - 2 ? y.nearestLargerEven(r[p]) : r[p]), r.length === 1 && (r = [2, r[0]])), r.length !== 2 && (r = y.squeezeShape(r).newShape);\n let n = y.sizeFromShape(r), s = null;\n r.length <= 1 && n <= e ? s = [1, n] : r.length === 2 && r[0] <= e && r[1] <= e ? s = r : r.length === 3 && r[0] * r[1] <= e && r[2] <= e ? s = [r[0] * r[1], r[2]] : r.length === 3 && r[0] <= e && r[1] * r[2] <= e ? s = [r[0], r[1] * r[2]] : r.length === 4 && r[0] * r[1] * r[2] <= e && r[3] <= e ? s = [r[0] * r[1] * r[2], r[3]] : r.length === 4 && r[0] <= e && r[1] * r[2] * r[3] <= e && (s = [r[0], r[1] * r[2] * r[3]]);\n let a = s != null && Math.max(...s) > o && Math.min(...s) <= (t8 ? 2 : 1) && Math.min(...s) > 0;\n if (s == null || a)\n if (t8) {\n let i = yi(r), p = 2, u = 2;\n r.length && ([p, u] = bi(r)), n = i * (p / 2) * (u / 2), s = y.sizeToSquarishShape(n).map((c) => c * 2);\n } else\n s = y.sizeToSquarishShape(n);\n return s;\n}\nfunction Gf(r) {\n return r % 2 === 0;\n}\nfunction Cu(r, t8) {\n if (r = r.slice(-2), t8 = t8.slice(-2), y.arraysEqual(r, t8) || !r.length || !t8.length || r[0] === 0 || r[1] === 0 || t8[0] === 0 || t8[1] === 0)\n return true;\n if (r.length !== t8.length) {\n let e = r[r.length - 1], o = t8[t8.length - 1];\n if (e === o || Gf(e) && Gf(o) && (r[0] === 1 || t8[0] === 1))\n return true;\n }\n return r[1] === t8[1] && Gf(r[0]) && Gf(t8[0]);\n}\nvar Hf;\nvar Kf;\nfunction VI(r) {\n if (Hf == null) {\n let t8 = Kr(r);\n Hf = t8.getParameter(t8.MAX_TEXTURE_SIZE);\n }\n return Hf;\n}\nfunction oZ() {\n Hf = null;\n}\nfunction nZ() {\n Kf = null;\n}\nfunction WI(r) {\n if (Kf == null) {\n let t8 = Kr(r);\n Kf = t8.getParameter(t8.MAX_TEXTURE_IMAGE_UNITS);\n }\n return Math.min(16, Kf);\n}\nfunction UI(r) {\n if (r === 0)\n return 0;\n let t8, e = Kr(r);\n return qr(e, \"EXT_disjoint_timer_query_webgl2\") && r === 2 ? t8 = 2 : qr(e, \"EXT_disjoint_timer_query\") ? t8 = 1 : t8 = 0, t8;\n}\nfunction qr(r, t8) {\n return r.getExtension(t8) != null;\n}\nfunction Yf(r) {\n try {\n if (Kr(r) != null)\n return true;\n } catch (t8) {\n return console.log(\"Error when getting WebGL context: \", t8), false;\n }\n return false;\n}\nfunction GI(r) {\n if (r === 0)\n return false;\n let t8 = Kr(r);\n if (r === 1) {\n if (!qr(t8, \"OES_texture_float\"))\n return false;\n } else if (!qr(t8, \"EXT_color_buffer_float\"))\n return false;\n return NI(t8);\n}\nfunction HI(r) {\n if (r === 0)\n return false;\n let t8 = Kr(r);\n if (r === 1) {\n if (!qr(t8, \"OES_texture_float\") || !qr(t8, \"WEBGL_color_buffer_float\"))\n return false;\n } else {\n if (qr(t8, \"EXT_color_buffer_float\"))\n return NI(t8);\n let o = \"EXT_color_buffer_half_float\";\n if (qr(t8, o)) {\n let n = t8.getExtension(o);\n return sZ(t8, n);\n }\n return false;\n }\n return NI(t8);\n}\nfunction NI(r) {\n let t8 = Xl(r), e = r.createTexture();\n r.bindTexture(r.TEXTURE_2D, e);\n let o = 1, n = 1;\n r.texImage2D(r.TEXTURE_2D, 0, t8.internalFormatFloat, o, n, 0, t8.textureFormatFloat, t8.textureTypeFloat, null);\n let s = r.createFramebuffer();\n r.bindFramebuffer(r.FRAMEBUFFER, s), r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, e, 0);\n let a = r.checkFramebufferStatus(r.FRAMEBUFFER) === r.FRAMEBUFFER_COMPLETE;\n return r.bindTexture(r.TEXTURE_2D, null), r.bindFramebuffer(r.FRAMEBUFFER, null), r.deleteTexture(e), r.deleteFramebuffer(s), a;\n}\nfunction sZ(r, t8) {\n let e = Xl(r, t8), o = r.createTexture();\n r.bindTexture(r.TEXTURE_2D, o);\n let n = 1, s = 1;\n r.texImage2D(r.TEXTURE_2D, 0, e.internalFormatHalfFloat, n, s, 0, e.textureFormatFloat, e.textureTypeHalfFloat, null);\n let a = r.createFramebuffer();\n r.bindFramebuffer(r.FRAMEBUFFER, a), r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, o, 0);\n let i = r.checkFramebufferStatus(r.FRAMEBUFFER) === r.FRAMEBUFFER_COMPLETE;\n return r.bindTexture(r.TEXTURE_2D, null), r.bindFramebuffer(r.FRAMEBUFFER, null), r.deleteTexture(o), r.deleteFramebuffer(a), i;\n}\nfunction KI(r) {\n return r !== 2 ? false : Kr(r).fenceSync != null;\n}\nfunction Vs(r, t8) {\n Array.isArray(r) || (r = [r]), r.forEach((e) => {\n e != null && y.assert(e.dtype !== \"complex64\", () => `${t8} does not support complex64 tensors in the WebGL backend.`);\n });\n}\nvar Se = A();\nSe.registerFlag(\"HAS_WEBGL\", () => Se.getNumber(\"WEBGL_VERSION\") > 0);\nSe.registerFlag(\"WEBGL_VERSION\", () => Yf(2) ? 2 : Yf(1) ? 1 : 0);\nSe.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\", () => false);\nSe.registerFlag(\"WEBGL_BUFFER_SUPPORTED\", () => Se.get(\"WEBGL_VERSION\") === 2);\nSe.registerFlag(\"WEBGL_CPU_FORWARD\", () => true);\nSe.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\", () => false);\nSe.registerFlag(\"WEBGL_PACK\", () => Se.getBool(\"HAS_WEBGL\"));\nSe.registerFlag(\"WEBGL_PACK_NORMALIZATION\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_CLIP\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_REDUCE\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_LAZILY_UNPACK\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_CONV_IM2COL\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_PACK_CONV2DTRANSPOSE\", () => Se.getBool(\"WEBGL_PACK\"));\nSe.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\", () => VI(Se.getNumber(\"WEBGL_VERSION\")));\nSe.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\", () => WI(Se.getNumber(\"WEBGL_VERSION\")));\nSe.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\", () => {\n let r = Se.getNumber(\"WEBGL_VERSION\");\n return r === 0 ? 0 : UI(r);\n});\nSe.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\", () => Se.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\") > 0 && !ou.isMobile());\nSe.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\", () => GI(Se.getNumber(\"WEBGL_VERSION\")));\nSe.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\", () => Se.getBool(\"WEBGL_FORCE_F16_TEXTURES\") ? false : Se.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));\nSe.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\", () => HI(Se.getNumber(\"WEBGL_VERSION\")));\nSe.registerFlag(\"WEBGL_FENCE_API_ENABLED\", () => KI(Se.getNumber(\"WEBGL_VERSION\")));\nSe.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\", () => Se.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\") ? 4 : 0);\nSe.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\", () => -1, (r) => {\n if (typeof r != \"number\")\n throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${r}.`);\n if (r < 0 && r !== -1)\n throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`);\n});\nSe.registerFlag(\"WEBGL_FLUSH_THRESHOLD\", () => ou.isMobile() ? 1 : -1, (r) => {\n if (typeof r != \"number\")\n throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${r}.`);\n if (r < 0 && r !== -1)\n throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`);\n});\nSe.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\", () => 128);\nSe.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\", () => false);\nSe.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\", () => 1e5);\nSe.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\", () => 128);\nSe.registerFlag(\"WEBGL_EXP_CONV\", () => false);\nSe.registerFlag(\"SOFTWARE_WEBGL_ENABLED\", () => Se.getBool(\"IS_TEST\"));\nSe.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\", () => 1 / 0);\nSe.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\", () => false);\nSe.registerFlag(\"WEBGL2_ISNAN_CUSTOM\", () => false);\nSe.registerFlag(\"ENGINE_COMPILE_ONLY\", () => false);\nfunction vt() {\n let r, t8, e, o, n, s, a, i, p, u;\n return A().getNumber(\"WEBGL_VERSION\") === 2 ? (r = \"#version 300 es\", t8 = \"in\", e = \"out\", o = \"in\", n = \"texture\", s = \"outputColor\", a = \"out vec4 outputColor;\", i = A().getBool(\"WEBGL2_ISNAN_CUSTOM\") ? `\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ` : \"\", p = \"\", u = `\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `) : (r = \"\", t8 = \"attribute\", e = \"varying\", o = \"varying\", n = \"texture2D\", s = \"gl_FragColor\", a = \"\", i = `\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n `, p = `\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n `, u = `\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `), { version: r, attribute: t8, varyingVs: e, varyingFs: o, texture2D: n, output: s, defineOutput: a, defineSpecialNaN: i, defineSpecialInf: p, defineRound: u };\n}\nfunction Ws(r, t8, e = \"index\") {\n let o = y.computeStrides(t8);\n return o.map((n, s) => {\n let a = `int ${r[s]} = ${e} / ${n}`, i = s === o.length - 1 ? `int ${r[s + 1]} = ${e} - ${r[s]} * ${n}` : `index -= ${r[s]} * ${n}`;\n return `${a}; ${i};`;\n }).join(\"\");\n}\nfunction Ip(r, t8, e = \"index\") {\n let o = y.computeStrides(t8);\n return o.map((n, s) => {\n let a = `int ${r[s]} = ${e} / outShapeStrides[${s}]`, i = s === o.length - 1 ? `int ${r[s + 1]} = ${e} - ${r[s]} * outShapeStrides[${s}]` : `index -= ${r[s]} * outShapeStrides[${s}]`;\n return `${a}; ${i};`;\n }).join(\"\");\n}\nfunction aZ(r, t8) {\n let e = r.length, o = r.map((s) => `${t8}[${s}]`), n = new Array(e - 1);\n n[e - 2] = o[e - 1];\n for (let s = e - 3; s >= 0; --s)\n n[s] = `(${n[s + 1]} * ${o[s + 1]})`;\n return n;\n}\nfunction SR(r, t8, e = \"index\") {\n let o = r.map((s, a) => a), n = aZ(o, t8);\n return n.map((s, a) => {\n let i = `int ${r[a]} = ${e} / ${n[a]}`, p = a === n.length - 1 ? `int ${r[a + 1]} = ${e} - ${r[a]} * ${n[a]}` : `index -= ${r[a]} * ${n[a]}`;\n return `${i}; ${p};`;\n }).join(\"\");\n}\nfunction Fc(r) {\n let t8 = y.computeStrides(r).map((e) => e.toString());\n return `\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t8[0]} + coords.y * ${t8[1]} + coords.z;\n }\n`;\n}\nfunction Pc() {\n return `\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`;\n}\nvar Qf = `\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n`;\nvar { getBroadcastDims: IR } = w;\nfunction vR(r, t8, e) {\n let o = [];\n if (r.forEach((d) => {\n let f = y.sizeFromShape(d.shapeInfo.logicalShape);\n if (d.shapeInfo.isUniform ? o.push(`uniform float ${d.name}${f > 1 ? `[${f}]` : \"\"};`) : (o.push(`uniform sampler2D ${d.name};`), o.push(`uniform int offset${d.name};`)), e.enableShapeUniforms) {\n let { uniformShape: h } = Zf(e.packedInputs, d.shapeInfo.logicalShape, d.shapeInfo.texShape);\n switch (h.length) {\n case 1:\n o.push(`uniform int ${d.name}Shape;`);\n break;\n case 2:\n o.push(`uniform ivec2 ${d.name}Shape;`);\n break;\n case 3:\n o.push(`uniform ivec3 ${d.name}Shape;`);\n break;\n case 4:\n o.push(`uniform ivec4 ${d.name}Shape;`);\n break;\n default:\n break;\n }\n o.push(`uniform ivec2 ${d.name}TexShape;`);\n }\n }), e.enableShapeUniforms) {\n switch (t8.logicalShape.length) {\n case 1:\n o.push(\"uniform int outShape;\");\n break;\n case 2:\n o.push(\"uniform ivec2 outShape;\"), o.push(\"uniform int outShapeStrides;\");\n break;\n case 3:\n o.push(\"uniform ivec3 outShape;\"), o.push(\"uniform ivec2 outShapeStrides;\");\n break;\n case 4:\n o.push(\"uniform ivec4 outShape;\"), o.push(\"uniform ivec3 outShapeStrides;\");\n break;\n default:\n break;\n }\n o.push(\"uniform ivec2 outTexShape;\");\n }\n e.customUniforms && e.customUniforms.forEach((d) => {\n o.push(`uniform ${d.type} ${d.name}${d.arrayIndex ? `[${d.arrayIndex}]` : \"\"};`);\n });\n let n = o.join(`\n`), s = r.map((d) => iZ(d, t8, e.packedInputs, e.enableShapeUniforms)).join(`\n`), a = t8.texShape, i = vt(), p = cZ(i), u, c, l = dZ(i);\n return t8.isPacked ? (u = uZ(t8.logicalShape, a, e.enableShapeUniforms), c = mZ(i)) : (u = pZ(t8.logicalShape, a, e.enableShapeUniforms), c = lZ(i)), e.packedInputs && (l += xZ), [l, p, c, n, u, s, e.userCode].join(`\n`);\n}\nfunction Mc(r, t8 = false) {\n let e = r.shapeInfo.logicalShape;\n switch (e.length) {\n case 0:\n return $Z(r, t8);\n case 1:\n return RZ(r, t8);\n case 2:\n return AZ(r, t8);\n case 3:\n return PZ(r, t8);\n case 4:\n return MZ(r, t8);\n case 5:\n return LZ(r);\n case 6:\n return BZ(r);\n default:\n throw new Error(`${e.length}-D input sampling is not yet supported`);\n }\n}\nfunction kR(r, t8) {\n switch (r.shapeInfo.logicalShape.length) {\n case 0:\n return _Z(r);\n case 1:\n return EZ(r, t8);\n case 2:\n return DZ(r, t8);\n case 3:\n return FZ(r, t8);\n default:\n return OZ(r, t8);\n }\n}\nfunction iZ(r, t8, e = false, o) {\n let n = \"\";\n e ? n += kR(r, o) : n += Mc(r, o);\n let s = r.shapeInfo.logicalShape, a = t8.logicalShape;\n return s.length <= a.length && (e ? n += zZ(r, t8) : n += VZ(r, t8)), n;\n}\nfunction uZ(r, t8, e) {\n switch (r.length) {\n case 0:\n return NR();\n case 1:\n return yZ(r, t8, e);\n case 2:\n return NZ(r, t8, e);\n case 3:\n return CZ(r, t8, e);\n default:\n return SZ(r, t8, e);\n }\n}\nfunction pZ(r, t8, e) {\n switch (r.length) {\n case 0:\n return NR();\n case 1:\n return bZ(r, t8, e);\n case 2:\n return TZ(r, t8, e);\n case 3:\n return wZ(r, t8, e);\n case 4:\n return IZ(r, t8, e);\n case 5:\n return vZ(r, t8);\n case 6:\n return kZ(r, t8);\n default:\n throw new Error(`${r.length}-D output sampling is not yet supported`);\n }\n}\nfunction cZ(r) {\n return `\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `;\n}\nfunction lZ(r) {\n return `\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `;\n}\nfunction mZ(r) {\n return `\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `;\n}\nfunction dZ(r) {\n return `${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${fZ}\n ${hZ}\n ${gZ}\n `;\n}\nvar fZ = `\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`;\nvar hZ = `\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`;\nvar gZ = `\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`;\nvar xZ = `\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;\nfunction NR() {\n return `\n int getOutputCoords() {\n return 0;\n }\n `;\n}\nfunction yZ(r, t8, e) {\n let o = [Math.ceil(t8[0] / 2), Math.ceil(t8[1] / 2)];\n return o[0] === 1 ? e ? `\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n ` : `\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${o[1]}.0);\n }\n ` : o[1] === 1 ? e ? `\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n ` : `\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${o[0]}.0);\n }\n ` : e ? `\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n ` : `\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${o[0]}, ${o[1]}));\n return 2 * (resTexRC.x * ${o[1]} + resTexRC.y);\n }\n `;\n}\nfunction bZ(r, t8, e) {\n return t8[0] === 1 ? e ? `\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n ` : `\n int getOutputCoords() {\n return int(resultUV.x * ${t8[1]}.0);\n }\n ` : t8[1] === 1 ? e ? `\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n ` : `\n int getOutputCoords() {\n return int(resultUV.y * ${t8[0]}.0);\n }\n ` : e ? `\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n ` : `\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n return resTexRC.x * ${t8[1]} + resTexRC.y;\n }\n `;\n}\nfunction CZ(r, t8, e) {\n if (e)\n return `\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;\n let o = [Math.ceil(t8[0] / 2), Math.ceil(t8[1] / 2)], n = Math.ceil(r[2] / 2), s = n * Math.ceil(r[1] / 2);\n return `\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${o[0]}, ${o[1]}));\n int index = resTexRC.x * ${o[1]} + resTexRC.y;\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${n});\n int c = imod(index, ${n}) * 2;\n\n return ivec3(b, r, c);\n }\n `;\n}\nfunction wZ(r, t8, e) {\n if (e)\n return `\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Ip([\"r\", \"c\", \"d\"], r)}\n return ivec3(r, c, d);\n }\n`;\n let o = Ws([\"r\", \"c\", \"d\"], r);\n return `\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n ${o}\n return ivec3(r, c, d);\n }\n `;\n}\nfunction SZ(r, t8, e) {\n if (e)\n return `\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;\n let o = [Math.ceil(t8[0] / 2), Math.ceil(t8[1] / 2)], n = Math.ceil(r[r.length - 1] / 2), s = n * Math.ceil(r[r.length - 2] / 2), a = s, i = \"\", p = \"b, r, c\";\n for (let u = 2; u < r.length - 1; u++)\n a *= r[r.length - u - 1], i = `\n int b${u} = index / ${a};\n index -= b${u} * ${a};\n ` + i, p = `b${u}, ` + p;\n return `\n ivec${r.length} getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${o[0]}, ${o[1]}));\n int index = resTexRC.x * ${o[1]} + resTexRC.y;\n\n ${i}\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${n});\n int c = imod(index, ${n}) * 2;\n\n return ivec${r.length}(${p});\n }\n `;\n}\nfunction IZ(r, t8, e) {\n if (e)\n return `\n ivec4 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Ip([\"r\", \"c\", \"d\", \"d2\"], r)}\n return ivec4(r, c, d, d2);\n }\n `;\n let o = Ws([\"r\", \"c\", \"d\", \"d2\"], r);\n return `\n ivec4 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n ${o}\n return ivec4(r, c, d, d2);\n }\n `;\n}\nfunction vZ(r, t8) {\n let e = Ws([\"r\", \"c\", \"d\", \"d2\", \"d3\"], r);\n return `\n ivec5 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t8[0]},\n ${t8[1]}));\n\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n\n ${e}\n\n ivec5 outShape = ivec5(r, c, d, d2, d3);\n return outShape;\n }\n `;\n}\nfunction kZ(r, t8) {\n let e = Ws([\"r\", \"c\", \"d\", \"d2\", \"d3\", \"d4\"], r);\n return `\n ivec6 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n\n ${e}\n\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\n return result;\n }\n `;\n}\nfunction NZ(r, t8, e) {\n let o = [Math.ceil(t8[0] / 2), Math.ceil(t8[1] / 2)];\n if (y.arraysEqual(r, t8))\n return e ? `\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1]));\n }\n ` : `\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${o[0]}, ${o[1]}));\n }\n `;\n let n = Math.ceil(r[1] / 2);\n return e ? `\n ivec2 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec2(r, c);\n }\n ` : `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${o[0]}, ${o[1]}));\n\n int index = resTexRC.x * ${o[1]} + resTexRC.y;\n int r = 2 * (index / ${n});\n int c = imod(index, ${n}) * 2;\n\n return ivec2(r, c);\n }\n `;\n}\nfunction TZ(r, t8, e) {\n return y.arraysEqual(r, t8) ? e ? `\n ivec2 getOutputCoords() {\n return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1]));\n }\n ` : `\n ivec2 getOutputCoords() {\n return ivec2(resultUV.yx * vec2(${t8[0]}, ${t8[1]}));\n }\n ` : r[1] === 1 ? e ? `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n return ivec2(index, 0);\n }\n ` : `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n return ivec2(index, 0);\n }\n ` : r[0] === 1 ? e ? `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n return ivec2(0, index);\n }\n ` : `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n return ivec2(0, index);\n }\n ` : e ? `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n int r = index / outShape[1];\n int c = index - r * outShape[1];\n return ivec2(r, c);\n }\n ` : `\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t8[0]}, ${t8[1]}));\n int index = resTexRC.x * ${t8[1]} + resTexRC.y;\n int r = index / ${r[1]};\n int c = index - r * ${r[1]};\n return ivec2(r, c);\n }\n `;\n}\nfunction vp(r) {\n return `offset${r}`;\n}\nfunction _Z(r) {\n let t8 = r.name, e = \"get\" + t8.charAt(0).toUpperCase() + t8.slice(1), o = vt();\n return `\n vec4 ${e}() {\n return ${o.texture2D}(${t8}, halfCR);\n }\n `;\n}\nfunction $Z(r, t8) {\n let e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1);\n if (r.shapeInfo.isUniform)\n return `float ${o}() {return ${e};}`;\n let [n, s] = r.shapeInfo.texShape;\n if (n === 1 && s === 1)\n return `\n float ${o}() {\n return sampleTexture(${e}, halfCR);\n }\n `;\n let a = vp(e);\n if (t8)\n return `\n float ${o}() {\n vec2 uv = uvFromFlat(${e}TexShape[0], ${e}TexShape[1], ${a});\n return sampleTexture(${e}, uv);\n }\n `;\n let [i, p] = r.shapeInfo.texShape;\n return `\n float ${o}() {\n vec2 uv = uvFromFlat(${i}, ${p}, ${a});\n return sampleTexture(${e}, uv);\n }\n `;\n}\nfunction EZ(r, t8) {\n let e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1), n = r.shapeInfo.texShape, s = vt();\n if (t8)\n return `\n vec4 ${o}(int index) {\n ivec2 packedTexShape = ivec2(ceil(float(${e}TexShape[0]) / 2.0), ceil(float(${e}TexShape[1]) / 2.0));\n vec2 uv = packedUVfrom1D(\n packedTexShape[0], packedTexShape[1], index);\n return ${s.texture2D}(${e}, uv);\n }\n `;\n let a = [Math.ceil(n[0] / 2), Math.ceil(n[1] / 2)];\n return `\n vec4 ${o}(int index) {\n vec2 uv = packedUVfrom1D(\n ${a[0]}, ${a[1]}, index);\n return ${s.texture2D}(${e}, uv);\n }\n `;\n}\nfunction RZ(r, t8) {\n let e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1);\n if (r.shapeInfo.isUniform)\n return `\n float ${o}(int index) {\n ${Lc(r)}\n }\n `;\n let n = r.shapeInfo.texShape, s = n[0], a = n[1];\n if (a === 1 && s === 1)\n return `\n float ${o}(int index) {\n return sampleTexture(${e}, halfCR);\n }\n `;\n let i = vp(e);\n return a === 1 ? t8 ? `\n float ${o}(int index) {\n vec2 uv = vec2(0.5, (float(index + ${i}) + 0.5) / float(${e}TexShape[0]));\n return sampleTexture(${e}, uv);\n }\n ` : `\n float ${o}(int index) {\n vec2 uv = vec2(0.5, (float(index + ${i}) + 0.5) / ${s}.0);\n return sampleTexture(${e}, uv);\n }\n ` : s === 1 ? t8 ? `\n float ${o}(int index) {\n vec2 uv = vec2((float(index + ${i}) + 0.5) / float(${e}TexShape[1]), 0.5);\n return sampleTexture(${e}, uv);\n }\n ` : `\n float ${o}(int index) {\n vec2 uv = vec2((float(index + ${i}) + 0.5) / ${a}.0, 0.5);\n return sampleTexture(${e}, uv);\n }\n ` : t8 ? `\n float ${o}(int index) {\n vec2 uv = uvFromFlat(${e}TexShape[0], ${e}TexShape[1], index + ${i});\n return sampleTexture(${e}, uv);\n }\n ` : `\n float ${o}(int index) {\n vec2 uv = uvFromFlat(${s}, ${a}, index + ${i});\n return sampleTexture(${e}, uv);\n }\n `;\n}\nfunction DZ(r, t8) {\n let e = r.shapeInfo.logicalShape, o = r.name, n = \"get\" + o.charAt(0).toUpperCase() + o.slice(1), s = r.shapeInfo.texShape, a = s[0], i = s[1], p = vt();\n if (s != null && y.arraysEqual(e, s))\n return t8 ? `\n vec4 ${n}(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2(${o}TexShape[1], ${o}TexShape[0]);\n\n return ${p.texture2D}(${o}, uv);\n }\n ` : `\n vec4 ${n}(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2(${i}.0, ${a}.0);\n\n return ${p.texture2D}(${o}, uv);\n }\n `;\n if (t8)\n return `\n vec4 ${n}(int row, int col) {\n ivec2 packedTexShape = ivec2(ceil(float(${o}TexShape[0]) / 2.0), ceil(float(${o}TexShape[1]) / 2.0));\n int valuesPerRow = int(ceil(float(${o}Shape[1]) / 2.0));\n vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col);\n return ${p.texture2D}(${o}, uv);\n }\n `;\n let u = [Math.ceil(s[0] / 2), Math.ceil(s[1] / 2)], c = Math.ceil(e[1] / 2);\n return `\n vec4 ${n}(int row, int col) {\n vec2 uv = packedUVfrom2D(${c}, ${u[0]}, ${u[1]}, row, col);\n return ${p.texture2D}(${o}, uv);\n }\n `;\n}\nfunction AZ(r, t8) {\n let e = r.shapeInfo.logicalShape, o = r.name, n = \"get\" + o.charAt(0).toUpperCase() + o.slice(1), s = r.shapeInfo.texShape;\n if (s != null && y.arraysEqual(e, s)) {\n if (t8)\n return `\n float ${n}(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2(${o}TexShape[1], ${o}TexShape[0]);\n return sampleTexture(${o}, uv);\n }\n `;\n let m = s[0], d = s[1];\n return `\n float ${n}(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2(${d}.0, ${m}.0);\n return sampleTexture(${o}, uv);\n }\n `;\n }\n let { newShape: a, keptDims: i } = y.squeezeShape(e), p = a;\n if (p.length < e.length) {\n let m = Bc(r, p), d = [\"row\", \"col\"];\n return `\n ${Mc(m, t8)}\n float ${n}(int row, int col) {\n return ${n}(${zc(d, i)});\n }\n `;\n }\n if (r.shapeInfo.isUniform)\n return `\n float ${n}(int row, int col) {\n int index = round(dot(vec2(row, col), vec2(${e[1]}, 1)));\n ${Lc(r)}\n }\n `;\n let u = s[0], c = s[1], l = vp(o);\n return c === 1 ? t8 ? `\n float ${n}(int row, int col) {\n float index = dot(vec3(row, col, ${l}), vec3(${o}Shape[1], 1, 1));\n vec2 uv = vec2(0.5, (index + 0.5) / float(${o}TexShape[0]));\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col) {\n float index = dot(vec3(row, col, ${l}), vec3(${e[1]}, 1, 1));\n vec2 uv = vec2(0.5, (index + 0.5) / ${u}.0);\n return sampleTexture(${o}, uv);\n }\n ` : u === 1 ? t8 ? `\n float ${n}(int row, int col) {\n float index = dot(vec3(row, col, ${l}), vec3(${o}Shape[1], 1, 1));\n vec2 uv = vec2((index + 0.5) / float(${o}TexShape[1]), 0.5);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col) {\n float index = dot(vec3(row, col, ${l}), vec3(${e[1]}, 1, 1));\n vec2 uv = vec2((index + 0.5) / ${c}.0, 0.5);\n return sampleTexture(${o}, uv);\n }\n ` : t8 ? `\n float ${n}(int row, int col) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${o}Shape[1] + col + ${l};\n vec2 uv = uvFromFlat(${o}TexShape[0], ${o}TexShape[1], index);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${e[1]} + col + ${l};\n vec2 uv = uvFromFlat(${u}, ${c}, index);\n return sampleTexture(${o}, uv);\n }\n`;\n}\nfunction FZ(r, t8) {\n let e = r.shapeInfo.logicalShape, o = r.name, n = \"get\" + o.charAt(0).toUpperCase() + o.slice(1), s = r.shapeInfo.texShape, a = [Math.ceil(s[0] / 2), Math.ceil(s[1] / 2)];\n if (e[0] === 1) {\n let m = e.slice(1), d = [1, 2], f = Bc(r, m), h = [\"b\", \"row\", \"col\"];\n return `\n ${kR(f, t8)}\n vec4 ${n}(int b, int row, int col) {\n return ${n}(${zc(h, d)});\n }\n `;\n }\n let i = vt();\n if (t8)\n return `\n vec4 ${n}(int b, int row, int col) {\n ivec2 packedTexShape = ivec2(ceil(float(${o}TexShape[0]) / 2.0), ceil(float(${o}TexShape[1]) / 2.0));\n int valuesPerRow = int(ceil(float(${o}Shape[2]) / 2.0));\n int texelsInBatch = valuesPerRow * int(ceil(float(${o}Shape[1]) / 2.0));\n vec2 uv = packedUVfrom3D(\n packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col);\n return ${i.texture2D}(${o}, uv);\n }\n `;\n let p = a[0], u = a[1], c = Math.ceil(e[2] / 2), l = c * Math.ceil(e[1] / 2);\n return `\n vec4 ${n}(int b, int row, int col) {\n vec2 uv = packedUVfrom3D(\n ${p}, ${u}, ${l}, ${c}, b, row, col);\n return ${i.texture2D}(${o}, uv);\n }\n `;\n}\nfunction PZ(r, t8) {\n let e = r.shapeInfo.logicalShape, o = r.name, n = \"get\" + o.charAt(0).toUpperCase() + o.slice(1), s = e[1] * e[2], a = e[2], { newShape: i, keptDims: p } = y.squeezeShape(e), u = i;\n if (u.length < e.length) {\n let h = Bc(r, u), g = [\"row\", \"col\", \"depth\"];\n return `\n ${Mc(h, t8)}\n float ${n}(int row, int col, int depth) {\n return ${n}(${zc(g, p)});\n }\n `;\n }\n if (r.shapeInfo.isUniform)\n return `\n float ${n}(int row, int col, int depth) {\n int index = round(dot(vec3(row, col, depth),\n vec3(${s}, ${a}, 1)));\n ${Lc(r)}\n }\n `;\n let c = r.shapeInfo.texShape, l = c[0], m = c[1], d = r.shapeInfo.flatOffset;\n if (m === s && d == null)\n return t8 ? `\n float ${n}(int row, int col, int depth) {\n int stride1 = ${o}Shape[2];\n float texR = float(row);\n float texC = dot(vec2(col, depth), vec2(stride1, 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}TexShape[1], ${o}TexShape[0]);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth) {\n float texR = float(row);\n float texC = dot(vec2(col, depth), vec2(${a}, 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${m}.0, ${l}.0);\n return sampleTexture(${o}, uv);\n }\n `;\n if (m === a && d == null)\n return t8 ? `\n float ${n}(int row, int col, int depth) {\n float texR = dot(vec2(row, col), vec2(${o}Shape[1], 1));\n float texC = float(depth);\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${o}TexShape[1], ${o}TexShape[0]);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth) {\n float texR = dot(vec2(row, col), vec2(${e[1]}, 1));\n float texC = float(depth);\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${m}.0, ${l}.0);\n return sampleTexture(${o}, uv);\n }\n `;\n let f = vp(o);\n return t8 ? `\n float ${n}(int row, int col, int depth) {\n // Explicitly use integer operations as dot() only works on floats.\n int stride0 = ${o}Shape[1] * ${o}Shape[2];\n int stride1 = ${o}Shape[2];\n int index = row * stride0 + col * stride1 + depth + ${f};\n vec2 uv = uvFromFlat(${o}TexShape[0], ${o}TexShape[1], index);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${s} + col * ${a} + depth + ${f};\n vec2 uv = uvFromFlat(${l}, ${m}, index);\n return sampleTexture(${o}, uv);\n }\n `;\n}\nfunction OZ(r, t8) {\n let e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1), n = vt();\n if (t8)\n return `\n vec4 ${o}(int b2, int b, int row, int col) {\n int valuesPerRow = int(ceil(float(${e}Shape[3]) / 2.0));\n int texelsInBatch = valuesPerRow * int(ceil(float(${e}Shape[2]) / 2.0));\n int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2);\n texelsInBatch *= ${e}Shape[1];\n index = b2 * texelsInBatch + index;\n ivec2 packedTexShape = ivec2(ceil(float(${e}TexShape[0]) / 2.0), ceil(float(${e}TexShape[1]) / 2.0));\n int texR = index / packedTexShape[1];\n int texC = index - texR * packedTexShape[1];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ${n.texture2D}(${e}, uv);\n }\n `;\n let s = r.shapeInfo.logicalShape, a = s.length, i = r.shapeInfo.texShape, p = [Math.ceil(i[0] / 2), Math.ceil(i[1] / 2)], u = p[0], c = p[1], l = Math.ceil(s[a - 1] / 2), m = l * Math.ceil(s[a - 2] / 2), d = \"int b, int row, int col\", f = `b * ${m} + (row / 2) * ${l} + (col / 2)`;\n for (let h = 2; h < a - 1; h++)\n d = `int b${h}, ` + d, m *= s[a - h - 1], f = `b${h} * ${m} + ` + f;\n return `\n vec4 ${o}(${d}) {\n int index = ${f};\n int texR = index / ${c};\n int texC = index - texR * ${c};\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${c}, ${u});\n return ${n.texture2D}(${e}, uv);\n }\n `;\n}\nfunction MZ(r, t8) {\n let e = r.shapeInfo.logicalShape, o = r.name, n = \"get\" + o.charAt(0).toUpperCase() + o.slice(1), s = e[3], a = e[2] * s, i = e[1] * a, { newShape: p, keptDims: u } = y.squeezeShape(e);\n if (p.length < e.length) {\n let b = Bc(r, p), C = [\"row\", \"col\", \"depth\", \"depth2\"];\n return `\n ${Mc(b, t8)}\n float ${n}(int row, int col, int depth, int depth2) {\n return ${n}(${zc(C, u)});\n }\n `;\n }\n if (r.shapeInfo.isUniform)\n return `\n float ${n}(int row, int col, int depth, int depth2) {\n int index = round(dot(vec4(row, col, depth, depth2),\n vec4(${i}, ${a}, ${s}, 1)));\n ${Lc(r)}\n }\n `;\n let c = r.shapeInfo.flatOffset, l = r.shapeInfo.texShape, m = l[0], d = l[1], f = `int stride2 = ${o}Shape[3];`, h = `int stride1 = ${o}Shape[2] * stride2;`, g = `int stride0 = ${o}Shape[1] * stride1;`;\n if (d === i && c == null)\n return t8 ? `\n float ${n}(int row, int col, int depth, int depth2) {\n ${f}\n ${h}\n float texR = float(row);\n float texC =\n dot(vec3(col, depth, depth2),\n vec3(stride1, stride2, 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}TexShape[1], ${o}TexShape[0]);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth, int depth2) {\n float texR = float(row);\n float texC =\n dot(vec3(col, depth, depth2),\n vec3(${a}, ${s}, 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${d}.0, ${m}.0);\n return sampleTexture(${o}, uv);\n }\n `;\n if (d === s && c == null)\n return t8 ? `\n float ${n}(int row, int col, int depth, int depth2) {\n float texR = dot(vec3(row, col, depth),\n vec3(${o}Shape[1] * ${o}Shape[2], ${o}Shape[2], 1));\n float texC = float(depth2);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}TexShape[1], ${o}TexShape[0]);\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth, int depth2) {\n float texR = dot(vec3(row, col, depth),\n vec3(${e[1] * e[2]}, ${e[2]}, 1));\n float texC = float(depth2);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${d}.0, ${m}.0);\n return sampleTexture(${o}, uv);\n }\n `;\n let x = vp(o);\n return t8 ? `\n float ${n}(int row, int col, int depth, int depth2) {\n // Explicitly use integer operations as dot() only works on floats.\n ${f}\n ${h}\n ${g}\n int index = row * stride0 + col * stride1 +\n depth * stride2 + depth2;\n vec2 uv = uvFromFlat(${o}TexShape[0], ${o}TexShape[1], index + ${x});\n return sampleTexture(${o}, uv);\n }\n ` : `\n float ${n}(int row, int col, int depth, int depth2) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${i} + col * ${a} +\n depth * ${s} + depth2;\n vec2 uv = uvFromFlat(${m}, ${d}, index + ${x});\n return sampleTexture(${o}, uv);\n }\n `;\n}\nfunction LZ(r) {\n let t8 = r.shapeInfo.logicalShape, e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1), n = t8[4], s = t8[3] * n, a = t8[2] * s, i = t8[1] * a, { newShape: p, keptDims: u } = y.squeezeShape(t8);\n if (p.length < t8.length) {\n let h = Bc(r, p), g = [\"row\", \"col\", \"depth\", \"depth2\", \"depth3\"];\n return `\n ${Mc(h)}\n float ${o}(int row, int col, int depth, int depth2, int depth3) {\n return ${o}(${zc(g, u)});\n }\n `;\n }\n if (r.shapeInfo.isUniform)\n return `\n float ${o}(int row, int col, int depth, int depth2, int depth3) {\n float index = dot(\n vec4(row, col, depth, depth2),\n vec4(${i}, ${a}, ${s}, ${n})) +\n depth3;\n ${Lc(r)}\n }\n `;\n let c = r.shapeInfo.flatOffset, l = r.shapeInfo.texShape, m = l[0], d = l[1];\n if (d === i && c == null)\n return `\n float ${o}(int row, int col, int depth, int depth2, int depth3) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4(${a}, ${s}, ${n}, 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${d}.0, ${m}.0);\n return sampleTexture(${e}, uv);\n }\n `;\n if (d === n && c == null)\n return `\n float ${o}(int row, int col, int depth, int depth2, int depth3) {\n float texR = dot(\n vec4(row, col, depth, depth2),\n vec4(${t8[1] * t8[2] * t8[3]},\n ${t8[2] * t8[3]}, ${t8[3]}, 1));\n int texC = depth3;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${d}.0, ${m}.0);\n return sampleTexture(${e}, uv);\n }\n `;\n let f = vp(e);\n return `\n float ${o}(int row, int col, int depth, int depth2, int depth3) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${i} + col * ${a} + depth * ${s} +\n depth2 * ${n} + depth3 + ${f};\n vec2 uv = uvFromFlat(${m}, ${d}, index);\n return sampleTexture(${e}, uv);\n }\n `;\n}\nfunction BZ(r) {\n let t8 = r.shapeInfo.logicalShape, e = r.name, o = \"get\" + e.charAt(0).toUpperCase() + e.slice(1), { newShape: n, keptDims: s } = y.squeezeShape(t8);\n if (n.length < t8.length) {\n let g = Bc(r, n), x = [\"row\", \"col\", \"depth\", \"depth2\", \"depth3\", \"depth4\"];\n return `\n ${Mc(g)}\n float ${o}(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n return ${o}(${zc(x, s)});\n }\n `;\n }\n let a = t8[5], i = t8[4] * a, p = t8[3] * i, u = t8[2] * p, c = t8[1] * u;\n if (r.shapeInfo.isUniform)\n return `\n float ${o}(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int index = round(dot(\n vec4(row, col, depth, depth2),\n vec4(${c}, ${u}, ${p}, ${i})) +\n dot(\n vec2(depth3, depth4),\n vec2(${a}, 1)));\n ${Lc(r)}\n }\n `;\n let l = r.shapeInfo.flatOffset, m = r.shapeInfo.texShape, d = m[0], f = m[1];\n if (f === c && l == null)\n return `\n float ${o}(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4(${u}, ${p}, ${i}, ${a})) +\n float(depth4);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${f}.0, ${d}.0);\n return sampleTexture(${e}, uv);\n }\n `;\n if (f === a && l == null)\n return `\n float ${o}(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n float texR = dot(vec4(row, col, depth, depth2),\n vec4(${t8[1] * t8[2] * t8[3] * t8[4]},\n ${t8[2] * t8[3] * t8[4]},\n ${t8[3] * t8[4]},\n ${t8[4]})) + float(depth3);\n int texC = depth4;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${f}.0, ${d}.0);\n return sampleTexture(${e}, uv);\n }\n `;\n let h = vp(e);\n return `\n float ${o}(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * ${c} + col * ${u} + depth * ${p} +\n depth2 * ${i} + depth3 * ${a} + depth4 + ${h};\n vec2 uv = uvFromFlat(${d}, ${f}, index);\n return sampleTexture(${e}, uv);\n }\n `;\n}\nfunction Lc(r) {\n let t8 = r.name, e = y.sizeFromShape(r.shapeInfo.logicalShape);\n return e < 2 ? `return ${t8};` : `\n for (int i = 0; i < ${e}; i++) {\n if (i == index) {\n return ${t8}[i];\n }\n }\n `;\n}\nfunction zZ(r, t8) {\n let e = r.name, o = e.charAt(0).toUpperCase() + e.slice(1), n = \"get\" + o + \"AtOutCoords\", s = r.shapeInfo.logicalShape.length, a = t8.logicalShape.length, i = IR(r.shapeInfo.logicalShape, t8.logicalShape), p = Re(a), u = a - s, c, l = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"];\n s === 0 ? c = \"\" : a < 2 && i.length >= 1 ? c = \"coords = 0;\" : c = i.map((b) => `coords.${l[b + u]} = 0;`).join(`\n`);\n let m = \"\";\n a < 2 && s > 0 ? m = \"coords\" : m = r.shapeInfo.logicalShape.map((b, C) => `coords.${l[C + u]}`).join(\", \");\n let d = \"return outputValue;\", h = y.sizeFromShape(r.shapeInfo.logicalShape) === 1, x = y.sizeFromShape(t8.logicalShape) === 1;\n if (s === 1 && !h && !x)\n d = `\n return vec4(outputValue.xy, outputValue.xy);\n `;\n else if (h && !x)\n a === 1 ? d = `\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ` : d = `\n return vec4(outputValue.x);\n `;\n else if (i.length) {\n let b = s - 2, C = s - 1;\n i.indexOf(b) > -1 && i.indexOf(C) > -1 ? d = \"return vec4(outputValue.x);\" : i.indexOf(b) > -1 ? d = \"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\" : i.indexOf(C) > -1 && (d = \"return vec4(outputValue.xx, outputValue.zz);\");\n }\n return `\n vec4 ${n}() {\n ${p} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${o}(${m});\n ${d}\n }\n `;\n}\nfunction VZ(r, t8) {\n let e = r.name, o = e.charAt(0).toUpperCase() + e.slice(1), n = \"get\" + o + \"AtOutCoords\", s = t8.texShape, a = r.shapeInfo.texShape, i = r.shapeInfo.logicalShape.length, p = t8.logicalShape.length;\n if (!r.shapeInfo.isUniform && i === p && r.shapeInfo.flatOffset == null && y.arraysEqual(a, s))\n return `\n float ${n}() {\n return sampleTexture(${e}, resultUV);\n }\n `;\n let u = Re(p), c = IR(r.shapeInfo.logicalShape, t8.logicalShape), l = p - i, m, d = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"];\n i === 0 ? m = \"\" : p < 2 && c.length >= 1 ? m = \"coords = 0;\" : m = c.map((h) => `coords.${d[h + l]} = 0;`).join(`\n`);\n let f = \"\";\n return p < 2 && i > 0 ? f = \"coords\" : f = r.shapeInfo.logicalShape.map((h, g) => `coords.${d[g + l]}`).join(\", \"), `\n float ${n}() {\n ${u} coords = getOutputCoords();\n ${m}\n return get${o}(${f});\n }\n `;\n}\nfunction Re(r) {\n if (r <= 1)\n return \"int\";\n if (r === 2)\n return \"ivec2\";\n if (r === 3)\n return \"ivec3\";\n if (r === 4)\n return \"ivec4\";\n if (r === 5)\n return \"ivec5\";\n if (r === 6)\n return \"ivec6\";\n throw Error(`GPU for rank ${r} is not yet supported`);\n}\nfunction Zf(r, t8, e) {\n let { newShape: o, keptDims: n } = y.squeezeShape(t8), s = t8.length, a = r && s === 3 && t8[0] === 1, i = a ? t8.slice(1) : o, p = !r && s > 1 && !y.arraysEqual(t8, e) && o.length < s || a;\n return { useSqueezeShape: p, uniformShape: p ? i : t8, keptDims: n };\n}\nfunction Bc(r, t8) {\n let e = JSON.parse(JSON.stringify(r));\n return e.shapeInfo.logicalShape = t8, e;\n}\nfunction zc(r, t8) {\n return t8.map((e) => r[e]).join(\", \");\n}\nfunction _R(r, t8, e, o) {\n let n = e.map((c, l) => {\n let m = { logicalShape: c.shape, texShape: c.isUniform ? null : c.texData.texShape, isUniform: c.isUniform, isPacked: c.isUniform ? false : c.texData.isPacked, flatOffset: null };\n return c.texData != null && c.texData.slice != null && c.texData.slice.flatOffset > 0 && (m.flatOffset = c.texData.slice.flatOffset), { name: t8.variableNames[l], shapeInfo: m };\n }), s = n.map((c) => c.shapeInfo), a = { logicalShape: o.shape, texShape: o.texData.texShape, isUniform: false, isPacked: o.texData.isPacked, flatOffset: null }, i = vR(n, a, t8), p = $I(r.gl, i), u = r.createProgram(p);\n return A().get(\"ENGINE_COMPILE_ONLY\") ? { program: t8, fragmentShader: p, source: i, webGLProgram: u, inShapeInfos: s, outShapeInfo: a, variablesLocations: null, customUniformLocations: null, infLoc: null, nanLoc: null, outShapeLocation: null, outShapeStridesLocation: null, outTexShapeLocation: null } : (r.buildVao(u), Object.assign({ program: t8, fragmentShader: p, source: i, webGLProgram: u, inShapeInfos: s, outShapeInfo: a }, qI(r, t8, u)));\n}\nfunction qI(r, t8, e) {\n let o = [], n = [], s, a, i, p = null, u = null;\n u = r.getUniformLocation(e, \"NAN\", false), A().getNumber(\"WEBGL_VERSION\") === 1 && (p = r.getUniformLocation(e, \"INFINITY\", false));\n let c = false;\n for (let l of t8.variableNames) {\n let m = { name: l, uniform: r.getUniformLocation(e, l, c), offset: r.getUniformLocation(e, `offset${l}`, c) };\n t8.enableShapeUniforms && (m.shape = r.getUniformLocation(e, `${l}Shape`, c), m.texShape = r.getUniformLocation(e, `${l}TexShape`, c)), o.push(m);\n }\n if (t8.enableShapeUniforms && (s = r.getUniformLocation(e, \"outShape\", c), i = r.getUniformLocation(e, \"outShapeStrides\", c), a = r.getUniformLocation(e, \"outTexShape\", c)), t8.customUniforms)\n for (let l of t8.customUniforms)\n n.push(r.getUniformLocation(e, l.name, c));\n return { variablesLocations: o, customUniformLocations: n, infLoc: p, nanLoc: u, outShapeLocation: s, outShapeStridesLocation: i, outTexShapeLocation: a };\n}\nfunction TR(r, t8) {\n if (r.length !== t8.length)\n throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t8.length} inputs`);\n r.forEach((e, o) => {\n let n = e.logicalShape, s = t8[o], a = s.shape;\n if (!y.arraysEqual(n, a))\n throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${a} must match`);\n if (e.isUniform && s.isUniform)\n return;\n let i = e.texShape, p = s.isUniform ? null : s.texData.texShape;\n if (!y.arraysEqual(i, p))\n throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${p} must match`);\n });\n}\nfunction $R(r, t8, e, o, n) {\n t8.program.enableShapeUniforms || (TR(t8.inShapeInfos, e), TR([t8.outShapeInfo], [o]));\n let s = o.texData.texture, a = o.texData.texShape;\n o.texData.isPacked ? r.setOutputPackedMatrixTexture(s.texture, a[0], a[1]) : r.setOutputMatrixTexture(s.texture, a[0], a[1]), r.setProgram(t8.webGLProgram), r.bindVertexArray(t8.webGLProgram.vao), A().getNumber(\"WEBGL_VERSION\") === 1 && t8.infLoc !== null && r.gl.uniform1f(t8.infLoc, 1 / 0), t8.nanLoc !== null && r.gl.uniform1f(t8.nanLoc, NaN);\n for (let p = 0; p < e.length; ++p) {\n let u = e[p], { uniform: c, offset: l, shape: m, texShape: d } = t8.variablesLocations[p];\n if (m) {\n let { uniformShape: f } = Zf(t8.program.packedInputs, u.shape, u.texData.texShape);\n switch (f.length) {\n case 1:\n r.gl.uniform1iv(m, new Int32Array(f));\n break;\n case 2:\n r.gl.uniform2iv(m, new Int32Array(f));\n break;\n case 3:\n r.gl.uniform3iv(m, new Int32Array(f));\n break;\n case 4:\n r.gl.uniform4iv(m, new Int32Array(f));\n break;\n default:\n break;\n }\n }\n if (d && r.gl.uniform2i(d, u.texData.texShape[0], u.texData.texShape[1]), c != null) {\n if (u.isUniform) {\n if (y.sizeFromShape(u.shape) < 2)\n r.gl.uniform1f(c, u.uniformValues[0]);\n else {\n let f = u.uniformValues;\n f instanceof Float32Array || (f = new Float32Array(f)), r.gl.uniform1fv(c, f);\n }\n continue;\n }\n u.texData.slice != null && l != null && r.gl.uniform1i(l, u.texData.slice.flatOffset), r.setInputMatrixTexture(u.texData.texture.texture, c, p);\n }\n }\n let i = t8.outShapeLocation;\n if (i)\n switch (o.shape.length) {\n case 1:\n r.gl.uniform1iv(i, new Int32Array(o.shape));\n break;\n case 2:\n r.gl.uniform2iv(i, new Int32Array(o.shape));\n break;\n case 3:\n r.gl.uniform3iv(i, new Int32Array(o.shape));\n break;\n case 4:\n r.gl.uniform4iv(i, new Int32Array(o.shape));\n break;\n default:\n break;\n }\n if (t8.outShapeStridesLocation) {\n let p = y.computeStrides(o.shape);\n switch (o.shape.length) {\n case 2:\n r.gl.uniform1iv(t8.outShapeStridesLocation, new Int32Array(p));\n break;\n case 3:\n r.gl.uniform2iv(t8.outShapeStridesLocation, new Int32Array(p));\n break;\n case 4:\n r.gl.uniform3iv(t8.outShapeStridesLocation, new Int32Array(p));\n break;\n default:\n break;\n }\n }\n if (t8.outTexShapeLocation && r.gl.uniform2i(t8.outTexShapeLocation, o.texData.texShape[0], o.texData.texShape[1]), t8.program.customUniforms && n)\n for (let p = 0; p < t8.program.customUniforms.length; ++p) {\n let u = t8.program.customUniforms[p], c = t8.customUniformLocations[p], l = n[p];\n if (u.type === \"float\")\n r.gl.uniform1fv(c, l);\n else if (u.type === \"vec2\")\n r.gl.uniform2fv(c, l);\n else if (u.type === \"vec3\")\n r.gl.uniform3fv(c, l);\n else if (u.type === \"vec4\")\n r.gl.uniform4fv(c, l);\n else if (u.type === \"int\")\n r.gl.uniform1iv(c, l);\n else if (u.type === \"ivec2\")\n r.gl.uniform2iv(c, l);\n else if (u.type === \"ivec3\")\n r.gl.uniform3iv(c, l);\n else if (u.type === \"ivec4\")\n r.gl.uniform4iv(c, l);\n else\n throw Error(`uniform type ${u.type} is not supported yet.`);\n }\n r.executeProgram();\n}\nfunction ER(r, t8, e) {\n let o = \"\";\n t8.concat(e).forEach((a) => {\n let i = a.texData != null && a.texData.slice != null && a.texData.slice.flatOffset > 0;\n if (r.enableShapeUniforms && !a.isUniform) {\n let p = a.texData.texShape, { useSqueezeShape: u, uniformShape: c, keptDims: l } = Zf(r.packedInputs, a.shape, p), m = \"\", d = \"\", f = \"\";\n if (c.length === 1 && r.packedInputs) {\n let k = [Math.ceil(p[0] / 2), Math.ceil(p[1] / 2)];\n m = `${k[0] > 1}_${k[1] > 1}`;\n } else if (c.length === 2 && !r.packedInputs)\n d = `${c[0] > 1}_${c[1] > 1}`;\n else if (c.length > 2 && !r.packedInputs) {\n let k = y.computeStrides(c);\n f = `${k[0] === p[1]}_${k[k.length - 1] === p[1]}`;\n }\n let h = a.shape.length, g = c.length === 2 && y.arraysEqual(a.shape, p), x = y.sizeFromShape(a.shape) === 1, b = w.getBroadcastDims(a.shape, e.shape), C = !r.packedInputs && h === e.shape.length && y.arraysEqual(p, e.texData.texShape), S = r.packedInputs || c.length > 2 ? \"\" : `${p[0] > 1}_${p[1] > 1}`;\n o += `${h}_${C}_${u ? l : \"\"}_${c.length}_${x}_${b}_${g}_${m}_${d}_${f}_${S}_${i}`;\n } else {\n let p = a.isUniform ? \"uniform\" : a.texData.texShape;\n o += `${a.shape}_${p}_${i}`;\n }\n });\n let n = r.userCode, s = r.constructor.name;\n return s += \"_\" + o + \"_\" + n + `${A().getNumber(\"WEBGL_VERSION\")}`, s;\n}\nfunction pt(r) {\n return A().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\") && r <= 4;\n}\nvar Jf = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = false, this.packedOutput = true, this.outPackingScheme = bu.DENSE, this.customUniforms = [{ name: \"texShape\", type: \"ivec2\" }];\n let e = vt();\n this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length), this.userCode = `\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms ? Ip([\"r\", \"c\", \"d\"], t8) : Ws([\"r\", \"c\", \"d\"], t8)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${e.output} = result;\n }\n `;\n }\n};\nvar eh = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.outPackingScheme = bu.DENSE, this.customUniforms = [{ name: \"texShape\", type: \"ivec2\" }];\n let e = vt();\n this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length), this.userCode = `\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms ? Ip([\"r\", \"c\", \"d\"], t8) : Ws([\"r\", \"c\", \"d\"], t8)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${e.output} = result;\n }\n `;\n }\n};\nvar th = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.outTexUsage = dr.DOWNLOAD;\n let e = vt();\n this.outputShape = t8, this.userCode = `\n ${Qf}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `;\n }\n};\nvar rh = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = false, this.outTexUsage = dr.DOWNLOAD;\n let e = vt();\n this.outputShape = t8, this.userCode = `\n ${Qf}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `;\n }\n};\nvar GZ = { R: 0, G: 1, B: 2, A: 3 };\nvar Zl = class {\n constructor(t8, e = false, o = \"RGBA\") {\n this.variableNames = [\"A\"], this.customUniforms = [{ name: \"texShape\", type: \"ivec2\" }];\n let n = vt();\n this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length);\n let s = \"result\";\n e && (s = \"floor(result * 255. + 0.5)\");\n let a = \"\";\n for (let i = 0; i < o.length; i++) {\n let p = o[i];\n a += `\n if(offset == ${i}) {\n result = values[${GZ[p]}];\n }`;\n }\n this.userCode = `\n ${this.enableShapeUniforms ? Pc() : Fc(t8)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n int flatIndex = getFlatIndex(coords);\n float result = 0.;\n int offset = imod(flatIndex, ${o.length});\n\n flatIndex = idiv(flatIndex, ${o.length}, 1.);\n\n int r = flatIndex / texShape[1];\n if (r < texShape[0]) {\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n vec4 values = ${n.texture2D}(A, uv);\n ${a}\n }\n ${n.output} = vec4(${s}, 0., 0., 0.);\n }\n `;\n }\n};\nvar oh = class {\n constructor(t8, e = false) {\n this.variableNames = [\"A\"], this.packedInputs = false, this.packedOutput = true, this.customUniforms = [{ name: \"texShape\", type: \"ivec2\" }];\n let o = vt();\n this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length);\n let n = \"\", s = \"result\";\n e && (s = \"floor(result * 255. + 0.5)\");\n for (let a = 0; a <= 1; a++)\n for (let i = 0; i <= 1; i++) {\n let p = a * 2 + i;\n n += `\n localCoords = coords;\n if(localCoords[2] + ${i} < ${this.enableShapeUniforms ? \"outShape[2]\" : `${t8[2]}`}) {\n localCoords[2] += ${i};\n if (localCoords[1] + ${a} < ${this.enableShapeUniforms ? \"outShape[1]\" : `${t8[1]}`}) {\n localCoords[1] += ${a};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / texShape[1];\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n values = ${o.texture2D}(A, uv);\n\n if (offset == 0) {\n result[${p}] = values[0];\n } else if (offset == 1) {\n result[${p}] = values[1];\n } else if (offset == 2) {\n result[${p}] = values[2];\n } else {\n result[${p}] = values[3];\n }\n }\n }\n `;\n }\n this.userCode = `\n ${this.enableShapeUniforms ? Pc() : Fc(t8)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${n}\n\n ${o.output} = ${s};\n }\n `;\n }\n};\nvar cv = {};\nqe(cv, { bindVertexProgramAttributeStreams: () => rv, createBufferFromOutputTexture: () => sv, createFloat16MatrixTexture: () => ZI, createFloat16PackedMatrixTexture: () => tv, createFloat32MatrixTexture: () => QI, createIndexBuffer: () => YI, createPackedMatrixTexture: () => ev, createUnsignedBytesMatrixTexture: () => JI, createVertexBuffer: () => XI, createVertexShader: () => jI, downloadByteEncodedFloatMatrixFromOutputTexture: () => iv, downloadFloat32MatrixFromBuffer: () => av, downloadMatrixFromPackedOutputTexture: () => pv, downloadPackedMatrixFromBuffer: () => uv, getInternalFormatForFloat16MatrixTexture: () => sh, getInternalFormatForFloat16PackedMatrixTexture: () => uh, getInternalFormatForFloat32MatrixTexture: () => nh, getInternalFormatForPackedMatrixTexture: () => ih, getInternalFormatForUnsignedBytesMatrixTexture: () => ah, uploadDenseMatrixToTexture: () => ov, uploadPixelDataToTexture: () => nv });\nfunction jI(r) {\n let t8 = vt(), e = `${t8.version}\n precision highp float;\n ${t8.attribute} vec3 clipSpacePos;\n ${t8.attribute} vec2 uv;\n ${t8.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`;\n return _I(r, e);\n}\nfunction XI(r) {\n let t8 = new Float32Array([-1, 1, 0, 0, 1, -1, -1, 0, 0, 0, 1, 1, 0, 1, 1, 1, -1, 0, 1, 0]);\n return DI(r, t8);\n}\nfunction YI(r) {\n let t8 = new Uint16Array([0, 1, 2, 2, 1, 3]);\n return AI(r, t8);\n}\nfunction Jl(r, t8, e, o, n, s) {\n PI(t8, e);\n let a = FI(r), i = r.TEXTURE_2D;\n return ce(r, () => r.bindTexture(i, a)), ce(r, () => r.texParameteri(i, r.TEXTURE_WRAP_S, r.CLAMP_TO_EDGE)), ce(r, () => r.texParameteri(i, r.TEXTURE_WRAP_T, r.CLAMP_TO_EDGE)), ce(r, () => r.texParameteri(i, r.TEXTURE_MIN_FILTER, r.NEAREST)), ce(r, () => r.texParameteri(i, r.TEXTURE_MAG_FILTER, r.NEAREST)), A().getNumber(\"WEBGL_VERSION\") === 1 ? ce(r, () => r.texImage2D(i, 0, o, t8, e, 0, n, s, null)) : ce(r, () => r.texStorage2D(i, 1, o, t8, e)), ce(r, () => r.bindTexture(r.TEXTURE_2D, null)), { texture: a, texShape: [e, t8] };\n}\nfunction nh(r) {\n return r.internalFormatFloat;\n}\nfunction QI(r, t8, e, o) {\n let [n, s] = Sp(t8, e);\n return Jl(r, n, s, nh(o), o.textureFormatFloat, r.FLOAT);\n}\nfunction sh(r) {\n return r.internalFormatHalfFloat;\n}\nfunction ZI(r, t8, e, o) {\n let [n, s] = Sp(t8, e);\n return Jl(r, n, s, sh(o), o.textureFormatFloat, o.textureTypeHalfFloat);\n}\nfunction ah(r) {\n return r.downloadTextureFormat;\n}\nfunction JI(r, t8, e, o) {\n let [n, s] = Sp(t8, e);\n return Jl(r, n, s, ah(o), r.RGBA, r.UNSIGNED_BYTE);\n}\nfunction ih(r) {\n return r.internalFormatPackedFloat;\n}\nfunction ev(r, t8, e, o) {\n let [n, s] = La(t8, e);\n return Jl(r, n, s, ih(o), r.RGBA, r.FLOAT);\n}\nfunction uh(r) {\n return r.internalFormatPackedHalfFloat;\n}\nfunction tv(r, t8, e, o) {\n let [n, s] = La(t8, e);\n return Jl(r, n, s, uh(o), r.RGBA, o.textureTypeHalfFloat);\n}\nfunction rv(r, t8, e) {\n return ce(r, () => r.bindBuffer(r.ARRAY_BUFFER, e)), jf(r, t8, \"clipSpacePos\", e, 3, 20, 0) && jf(r, t8, \"uv\", e, 2, 20, 12);\n}\nfunction ov(r, t8, e, o, n, s) {\n ce(r, () => r.bindTexture(r.TEXTURE_2D, t8));\n let a, i, p;\n n instanceof Uint8Array ? (a = new Uint8Array(e * o * 4), i = r.UNSIGNED_BYTE, p = r.RGBA) : (a = new Float32Array(e * o * 4), i = r.FLOAT, p = s.internalFormatPackedFloat), a.set(n), A().getNumber(\"WEBGL_VERSION\") === 2 ? ce(r, () => r.texSubImage2D(r.TEXTURE_2D, 0, 0, 0, e, o, r.RGBA, i, a)) : ce(r, () => r.texImage2D(r.TEXTURE_2D, 0, p, e, o, 0, r.RGBA, i, a)), ce(r, () => r.bindTexture(r.TEXTURE_2D, null));\n}\nfunction nv(r, t8, e) {\n ce(r, () => r.bindTexture(r.TEXTURE_2D, t8)), e.data instanceof Uint8Array ? A().getNumber(\"WEBGL_VERSION\") === 2 ? ce(r, () => r.texSubImage2D(r.TEXTURE_2D, 0, 0, 0, e.width, e.height, r.RGBA, r.UNSIGNED_BYTE, e.data)) : ce(r, () => r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, e.width, e.height, 0, r.RGBA, r.UNSIGNED_BYTE, e.data)) : A().getNumber(\"WEBGL_VERSION\") === 2 ? ce(r, () => r.texSubImage2D(r.TEXTURE_2D, 0, 0, 0, r.RGBA, r.UNSIGNED_BYTE, e)) : ce(r, () => r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, r.UNSIGNED_BYTE, e)), ce(r, () => r.bindTexture(r.TEXTURE_2D, null));\n}\nfunction sv(r, t8, e, o) {\n let n = r.createBuffer();\n ce(r, () => r.bindBuffer(r.PIXEL_PACK_BUFFER, n));\n let i = 4 * 4 * t8 * e;\n return ce(r, () => r.bufferData(r.PIXEL_PACK_BUFFER, i, r.STREAM_READ)), ce(r, () => r.readPixels(0, 0, e, t8, r.RGBA, r.FLOAT, 0)), ce(r, () => r.bindBuffer(r.PIXEL_PACK_BUFFER, null)), n;\n}\nfunction av(r, t8, e) {\n let o = r, n = new Float32Array(e);\n return o.bindBuffer(o.PIXEL_PACK_BUFFER, t8), o.getBufferSubData(o.PIXEL_PACK_BUFFER, 0, n), o.bindBuffer(o.PIXEL_PACK_BUFFER, null), n;\n}\nfunction iv(r, t8, e, o) {\n let [n, s] = Sp(t8, e), a = 4, i = new Uint8Array(gR(t8 * e, a));\n return ce(r, () => r.readPixels(0, 0, n, s, o.downloadTextureFormat, r.UNSIGNED_BYTE, i)), new Float32Array(i.buffer);\n}\nfunction uv(r, t8, e, o, n, s, a, i) {\n let p = r, u = new Float32Array(xR(s, a));\n return p.bindBuffer(p.PIXEL_PACK_BUFFER, t8), p.getBufferSubData(p.PIXEL_PACK_BUFFER, 0, u), p.bindBuffer(p.PIXEL_PACK_BUFFER, null), u;\n}\nfunction pv(r, t8, e) {\n let o = new Float32Array(t8 * e * 4);\n return ce(r, () => r.readPixels(0, 0, e, t8, r.RGBA, r.FLOAT, o)), o;\n}\nvar kp = class {\n constructor(t8) {\n this.outputTexture = null, this.program = null, this.disposed = false, this.itemsToPoll = [];\n let e = A().getNumber(\"WEBGL_VERSION\");\n if (t8 != null ? (this.gl = t8, vI(e, t8)) : this.gl = Kr(e), t8 = this.gl, A().getNumber(\"WEBGL_VERSION\") === 2) {\n let s = t8;\n this.createVertexArray = () => ce(s, () => s.createVertexArray()), this.bindVertexArray = (a) => ce(s, () => s.bindVertexArray(a)), this.deleteVertexArray = (a) => ce(s, () => s.deleteVertexArray(a)), this.getVertexArray = () => ce(s, () => s.getParameter(s.VERTEX_ARRAY_BINDING));\n } else if (t8 != null) {\n let s = t8.getExtension(\"OES_vertex_array_object\");\n if (s == null)\n throw new Error(\"All WebGL1 implementations are expected to offer OES_vertex_array_object.\");\n this.createVertexArray = () => ce(t8, () => s.createVertexArrayOES()), this.bindVertexArray = (a) => ce(t8, () => s.bindVertexArrayOES(a)), this.deleteVertexArray = (a) => ce(t8, () => s.deleteVertexArrayOES(a)), this.getVertexArray = () => ce(t8, () => t8.getParameter(s.VERTEX_ARRAY_BINDING_OES));\n }\n let o = \"WEBGL_color_buffer_float\", n = \"EXT_color_buffer_half_float\";\n if (this.parallelCompilationExtension = this.gl.getExtension(\"KHR_parallel_shader_compile\"), A().getNumber(\"WEBGL_VERSION\") === 1) {\n let s = \"OES_texture_float\", a = \"OES_texture_half_float\";\n if (this.textureFloatExtension = Ec(this.gl, s), qr(this.gl, a))\n this.textureHalfFloatExtension = Ec(this.gl, a);\n else if (A().get(\"WEBGL_FORCE_F16_TEXTURES\"))\n throw new Error(\"GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\");\n if (this.colorBufferFloatExtension = this.gl.getExtension(o), qr(this.gl, n))\n this.colorBufferHalfFloatExtension = Ec(this.gl, n);\n else if (A().get(\"WEBGL_FORCE_F16_TEXTURES\"))\n throw new Error(\"GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\");\n } else if (o = \"EXT_color_buffer_float\", qr(this.gl, o))\n this.colorBufferFloatExtension = this.gl.getExtension(o);\n else if (qr(this.gl, n))\n this.colorBufferHalfFloatExtension = this.gl.getExtension(n);\n else\n throw new Error(\"GL context does not support color renderable floats\");\n this.vertexBuffer = XI(this.gl), this.indexBuffer = YI(this.gl), this.framebuffer = OI(this.gl), this.textureConfig = Xl(this.gl, this.textureHalfFloatExtension);\n }\n get debug() {\n return A().getBool(\"DEBUG\");\n }\n dispose() {\n if (this.disposed)\n return;\n this.program != null && console.warn(\"Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing.\"), this.outputTexture != null && console.warn(\"Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.\");\n let t8 = this.gl;\n ce(t8, () => t8.finish()), ce(t8, () => t8.bindFramebuffer(t8.FRAMEBUFFER, null)), ce(t8, () => t8.deleteFramebuffer(this.framebuffer)), ce(t8, () => t8.bindBuffer(t8.ARRAY_BUFFER, null)), ce(t8, () => t8.bindBuffer(t8.ELEMENT_ARRAY_BUFFER, null)), ce(t8, () => t8.deleteBuffer(this.indexBuffer)), this.disposed = true;\n }\n createFloat32MatrixTexture(t8, e) {\n return this.throwIfDisposed(), QI(this.gl, t8, e, this.textureConfig);\n }\n createFloat16MatrixTexture(t8, e) {\n return this.throwIfDisposed(), ZI(this.gl, t8, e, this.textureConfig);\n }\n createUnsignedBytesMatrixTexture(t8, e) {\n return this.throwIfDisposed(), JI(this.gl, t8, e, this.textureConfig);\n }\n uploadPixelDataToTexture(t8, e) {\n this.throwIfDisposed(), nv(this.gl, t8, e);\n }\n uploadDenseMatrixToTexture(t8, e, o, n) {\n this.throwIfDisposed(), ov(this.gl, t8, e, o, n, this.textureConfig);\n }\n createFloat16PackedMatrixTexture(t8, e) {\n return this.throwIfDisposed(), tv(this.gl, t8, e, this.textureConfig);\n }\n createPackedMatrixTexture(t8, e) {\n return this.throwIfDisposed(), ev(this.gl, t8, e, this.textureConfig);\n }\n deleteMatrixTexture(t8) {\n this.throwIfDisposed(), this.outputTexture === t8 && (Xf(this.gl, this.framebuffer), this.outputTexture = null), ce(this.gl, () => this.gl.deleteTexture(t8));\n }\n downloadByteEncodedFloatMatrixFromOutputTexture(t8, e, o) {\n return this.downloadMatrixDriver(t8, () => iv(this.gl, e, o, this.textureConfig));\n }\n downloadPackedMatrixFromBuffer(t8, e, o, n, s, a) {\n return uv(this.gl, t8, e, o, n, s, a, this.textureConfig);\n }\n downloadFloat32MatrixFromBuffer(t8, e) {\n return av(this.gl, t8, e);\n }\n createBufferFromTexture(t8, e, o) {\n this.bindTextureToFrameBuffer(t8);\n let n = sv(this.gl, e, o, this.textureConfig);\n return this.unbindTextureToFrameBuffer(), n;\n }\n createAndWaitForFence() {\n let t8 = this.createFence(this.gl);\n return this.pollFence(t8);\n }\n createFence(t8) {\n let e, o;\n if (A().getBool(\"WEBGL_FENCE_API_ENABLED\")) {\n let n = t8, s = n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE, 0);\n t8.flush(), o = () => {\n let a = n.clientWaitSync(s, 0, 0);\n return a === n.ALREADY_SIGNALED || a === n.CONDITION_SATISFIED;\n }, e = s;\n } else\n A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\") > 0 ? (e = this.beginQuery(), this.endQuery(), o = () => this.isQueryAvailable(e, A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))) : o = () => true;\n return { query: e, isFencePassed: o };\n }\n downloadMatrixFromPackedTexture(t8, e, o) {\n return this.downloadMatrixDriver(t8, () => pv(this.gl, e, o));\n }\n createProgram(t8) {\n this.throwIfDisposed();\n let e = this.gl;\n this.vertexShader == null && (this.vertexShader = jI(e));\n let o = EI(e);\n ce(e, () => e.attachShader(o, this.vertexShader)), ce(e, () => e.attachShader(o, t8)), RI(e, o);\n let n = Object.assign(o, { vao: this.createVertexArray() });\n return this.debug && Yl(e, n), n;\n }\n buildVao(t8) {\n this.setProgram(t8), this.bindVertexArray(t8.vao);\n let e = this.gl;\n ce(e, () => e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer)), rv(e, t8, this.vertexBuffer);\n }\n deleteProgram(t8) {\n this.throwIfDisposed(), t8 === this.program && (this.program = null), t8 != null && (ce(this.gl, () => this.gl.deleteProgram(t8)), this.deleteVertexArray(t8.vao));\n }\n setProgram(t8) {\n this.throwIfDisposed(), this.program = t8, this.program != null && this.debug && Yl(this.gl, this.program), ce(this.gl, () => this.gl.useProgram(t8));\n }\n getUniformLocation(t8, e, o = true) {\n return this.throwIfDisposed(), o ? MI(this.gl, t8, e) : LI(this.gl, t8, e);\n }\n getAttributeLocation(t8, e) {\n return this.throwIfDisposed(), ce(this.gl, () => this.gl.getAttribLocation(t8, e));\n }\n getUniformLocationNoThrow(t8, e) {\n return this.throwIfDisposed(), this.gl.getUniformLocation(t8, e);\n }\n setInputMatrixTexture(t8, e, o) {\n this.throwIfDisposed(), this.throwIfNoProgram(), BI(this.gl, t8, e, o);\n }\n setOutputMatrixTexture(t8, e, o) {\n this.setOutputMatrixTextureDriver(t8, o, e);\n }\n setOutputPackedMatrixTexture(t8, e, o) {\n this.throwIfDisposed();\n let [n, s] = La(e, o);\n this.setOutputMatrixTextureDriver(t8, n, s);\n }\n setOutputMatrixWriteRegion(t8, e, o, n) {\n this.setOutputMatrixWriteRegionDriver(o, t8, n, e);\n }\n setOutputPackedMatrixWriteRegion(t8, e, o, n) {\n throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\");\n }\n debugValidate() {\n this.program != null && Yl(this.gl, this.program), Rc(this.gl);\n }\n executeProgram() {\n this.throwIfDisposed(), this.throwIfNoProgram();\n let t8 = this.gl;\n if (this.debug) {\n let e = this.getVertexArray();\n console.assert(e === this.program.vao, \"VAO changed between setProgram and executeProgram!\"), this.debugValidate();\n }\n ce(t8, () => t8.drawElements(t8.TRIANGLES, 6, t8.UNSIGNED_SHORT, 0));\n }\n blockUntilAllProgramsCompleted() {\n this.throwIfDisposed(), ce(this.gl, () => this.gl.finish());\n }\n getQueryTimerExtension() {\n return this.disjointQueryTimerExtension == null && (this.disjointQueryTimerExtension = Ec(this.gl, A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\") === 2 ? \"EXT_disjoint_timer_query_webgl2\" : \"EXT_disjoint_timer_query\")), this.disjointQueryTimerExtension;\n }\n getQueryTimerExtensionWebGL2() {\n return this.getQueryTimerExtension();\n }\n getQueryTimerExtensionWebGL1() {\n return this.getQueryTimerExtension();\n }\n beginQuery() {\n if (A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\") === 2) {\n let o = this.gl, n = this.getQueryTimerExtensionWebGL2(), s = o.createQuery();\n return o.beginQuery(n.TIME_ELAPSED_EXT, s), s;\n }\n let t8 = this.getQueryTimerExtensionWebGL1(), e = t8.createQueryEXT();\n return t8.beginQueryEXT(t8.TIME_ELAPSED_EXT, e), e;\n }\n endQuery() {\n if (A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\") === 2) {\n let e = this.gl, o = this.getQueryTimerExtensionWebGL2();\n e.endQuery(o.TIME_ELAPSED_EXT);\n return;\n }\n let t8 = this.getQueryTimerExtensionWebGL1();\n t8.endQueryEXT(t8.TIME_ELAPSED_EXT);\n }\n async waitForQueryAndGetTime(t8) {\n return await y.repeatedTry(() => this.disposed || this.isQueryAvailable(t8, A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))), this.getQueryTime(t8, A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"));\n }\n getQueryTime(t8, e) {\n if (e === 0)\n return null;\n if (e === 2) {\n let o = this.gl;\n return o.getQueryParameter(t8, o.QUERY_RESULT) / 1e6;\n } else {\n let o = this.getQueryTimerExtensionWebGL1();\n return o.getQueryObjectEXT(t8, o.QUERY_RESULT_EXT) / 1e6;\n }\n }\n isQueryAvailable(t8, e) {\n if (e === 0)\n return true;\n if (e === 2) {\n let o = this.gl, n = this.getQueryTimerExtensionWebGL2(), s = o.getQueryParameter(t8, o.QUERY_RESULT_AVAILABLE);\n return this.disjoint == null && (this.disjoint = this.gl.getParameter(n.GPU_DISJOINT_EXT)), s && !this.disjoint;\n } else {\n let o = this.getQueryTimerExtensionWebGL1(), n = o.getQueryObjectEXT(t8, o.QUERY_RESULT_AVAILABLE_EXT);\n return this.disjoint == null && (this.disjoint = this.gl.getParameter(o.GPU_DISJOINT_EXT)), n && !this.disjoint;\n }\n }\n pollFence(t8) {\n return new Promise((e) => {\n this.addItemToPoll(() => t8.isFencePassed(), () => e());\n });\n }\n pollItems() {\n let t8 = HZ(this.itemsToPoll.map((e) => e.isDoneFn));\n for (let e = 0; e <= t8; ++e) {\n let { resolveFn: o } = this.itemsToPoll[e];\n o();\n }\n this.itemsToPoll = this.itemsToPoll.slice(t8 + 1);\n }\n addItemToPoll(t8, e) {\n if (this.itemsToPoll.push({ isDoneFn: t8, resolveFn: e }), this.itemsToPoll.length > 1)\n return;\n let o;\n \"setTimeoutCustom\" in A().platform && (o = A().platform.setTimeoutCustom.bind(A().platform)), y.repeatedTry(() => (this.pollItems(), this.itemsToPoll.length === 0), () => 0, null, o);\n }\n bindTextureToFrameBuffer(t8) {\n this.throwIfDisposed(), Ql(this.gl, t8, this.framebuffer), this.debug && Rc(this.gl);\n }\n unbindTextureToFrameBuffer() {\n this.outputTexture != null ? (Ql(this.gl, this.outputTexture, this.framebuffer), this.debug && Rc(this.gl)) : Xf(this.gl, this.framebuffer);\n }\n downloadMatrixDriver(t8, e) {\n this.bindTextureToFrameBuffer(t8);\n let o = e();\n return this.unbindTextureToFrameBuffer(), o;\n }\n setOutputMatrixTextureDriver(t8, e, o) {\n this.throwIfDisposed();\n let n = this.gl;\n Ql(n, t8, this.framebuffer), this.debug && Rc(n), this.outputTexture = t8, ce(n, () => n.viewport(0, 0, e, o)), ce(n, () => n.scissor(0, 0, e, o));\n }\n setOutputMatrixWriteRegionDriver(t8, e, o, n) {\n this.throwIfDisposed(), ce(this.gl, () => this.gl.scissor(t8, e, o, n));\n }\n throwIfDisposed() {\n if (this.disposed)\n throw new Error(\"Attempted to use disposed GPGPUContext.\");\n }\n throwIfNoProgram() {\n if (this.program == null)\n throw new Error(\"No GPU program is currently set.\");\n }\n};\nfunction HZ(r) {\n let t8 = 0;\n for (; t8 < r.length && r[t8](); ++t8)\n ;\n return t8 - 1;\n}\nvar { addImpl: RR, bincountImpl: ph, bincountReduceImpl: DR, bitwiseAndImpl: AR, castImpl: FR, ceilImpl: PR, concatImpl: OR, equalImpl: MR, expImpl: LR, expm1Impl: BR, floorImpl: zR, gatherNdImpl: VR, gatherV2Impl: WR, greaterImpl: UR, greaterEqualImpl: GR, lessImpl: HR, lessEqualImpl: KR, linSpaceImpl: qR, logImpl: jR, maxImpl: XR, maximumImpl: YR, minimumImpl: QR, multiplyImpl: ZR, negImpl: JR, notEqualImpl: eD, prodImpl: tD, raggedGatherImpl: rD, raggedRangeImpl: oD, raggedTensorToTensorImpl: nD, rangeImpl: sD, rsqrtImpl: aD, scatterImpl: iD, sigmoidImpl: uD, simpleAbsImpl: ch, sliceImpl: pD, sparseFillEmptyRowsImpl: cD, sparseReshapeImpl: lD, sparseSegmentReductionImpl: lh, sqrtImpl: mD, staticRegexReplaceImpl: dD, stridedSliceImpl: fD, stringNGramsImpl: hD, stringSplitImpl: gD, stringToHashBucketFastImpl: xD, subImpl: yD, tileImpl: bD, topKImpl: CD, transposeImpl: Np, uniqueImpl: wD } = Tc;\nfunction lv(r, t8) {\n return [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"].slice(0, t8).map((e) => `${r}.${e}`);\n}\nfunction Dt(r, t8) {\n return t8 === 1 ? [r] : lv(r, t8);\n}\nfunction SD(r, t8) {\n if (r === 1)\n return \"rc\";\n let e = \"\";\n for (let o = 0; o < r; o++)\n e += t8[o], o < r - 1 && (e += \",\");\n return e;\n}\nvar mh = class {\n constructor(t8) {\n if (this.variableNames = [\"A\"], this.packedInputs = false, this.packedOutput = true, this.outputShape = t8, this.rank = t8.length, this.enableShapeUniforms = pt(this.outputShape.length), this.rank === 0)\n this.userCode = `\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n `;\n else {\n let e = Dt(\"rc\", this.rank), o = Re(this.rank), n = this.getOutOfBoundsCondition(e), s = this.getSetup(e), a = this.getOutput(e);\n this.userCode = `\n void main() {\n ${o} rc = getOutputCoords();\n\n if(${n}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${a}));\n }\n }\n `;\n }\n }\n getSourceCoordsArr(t8) {\n let e = [];\n for (let o = 0; o <= 1; o++)\n for (let n = 0; n <= 1; n++) {\n let s = `${o === 0 ? \"r\" : \"rp1\"}, ${n === 0 ? \"c\" : \"cp1\"}`;\n for (let a = 2; a < this.rank; a++)\n s = `${t8[t8.length - 1 - a]},` + s;\n e.push(s);\n }\n return e;\n }\n getOutOfBoundsCondition(t8) {\n if (this.rank === 1)\n return `rc > ${this.enableShapeUniforms ? \"outShape\" : this.outputShape[0]}`;\n let e = \"\";\n for (let o = this.rank - 2; o < this.rank; o++)\n e += `${t8[o]} >= ${this.enableShapeUniforms ? `outShape[${o}]` : this.outputShape[o]}`, o < this.rank - 1 && (e += \"||\");\n return e;\n }\n getSetup(t8) {\n if (this.rank === 1)\n return \"\";\n let e = t8.slice(-2), o = this.enableShapeUniforms ? `outShape[${this.rank} - 1]` : this.outputShape[this.rank - 1], n = this.enableShapeUniforms ? `outShape[${this.rank} - 2]` : this.outputShape[this.rank - 2];\n return `\n int r = ${e[0]};\n int c = ${e[1]};\n int rp1 = r + 1;\n int cp1 = c + 1;\n\n bool cEdge = cp1 >= ${o};\n bool rEdge = rp1 >= ${n};\n `;\n }\n getOutput(t8) {\n let e = this.getSourceCoordsArr(t8);\n return this.rank === 1 ? `getA(rc), (rc + 1 >= ${this.enableShapeUniforms ? \"outShape\" : this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0` : `getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`;\n }\n};\nvar Vc = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"inputShape\", type: \"ivec3\" }], this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length);\n let o = \"\";\n for (let n = 0; n < 4; n++) {\n let s = \"thisRC = rc;\";\n n % 2 === 1 && (s += \"thisRC.z += 1;\"), n > 1 && (s += \"thisRC.y += 1;\"), o += `\n ${s}\n ${n > 0 ? \"if(thisRC.y < rows && thisRC.z < cols){\" : \"\"}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${n}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${n > 0 ? \"}\" : \"\"}\n `;\n }\n this.userCode = `\n ${KZ(e, this.enableShapeUniforms)}\n ${this.enableShapeUniforms ? Pc() : Fc(t8)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms ? \"outShape[1]\" : t8[1]};\n int cols = ${this.enableShapeUniforms ? \"outShape[2]\" : t8[2]};\n\n ${o}\n\n setOutput(result);\n }\n `;\n }\n};\nfunction KZ(r, t8) {\n return `\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t8 ? SR([\"r\", \"c\", \"d\"], \"inputShape\") : Ws([\"r\", \"c\", \"d\"], r)}\n return ivec3(r, c, d);\n }\n `;\n}\nvar dh = class {\n constructor(t8) {\n this.gpgpu = t8, this.numUsedTextures = 0, this.numFreeTextures = 0, this._numBytesAllocated = 0, this._numBytesFree = 0, this.freeTextures = {}, this.usedTextures = {}, this.logEnabled = false;\n }\n acquireTexture(t8, e, o) {\n let n = vD(e, o), s = kD(t8, n, o);\n s in this.freeTextures || (this.freeTextures[s] = []), s in this.usedTextures || (this.usedTextures[s] = []);\n let a = ID(t8, n, this.gpgpu.gl, this.gpgpu.textureConfig, o);\n if (this.freeTextures[s].length > 0) {\n this.numFreeTextures--, this.numUsedTextures++, this._numBytesFree -= a, this.log();\n let p = this.freeTextures[s].pop();\n return this.usedTextures[s].push(p), p;\n }\n let i;\n return n === rr.PACKED_2X2_FLOAT32 ? i = this.gpgpu.createPackedMatrixTexture(t8[0], t8[1]) : n === rr.PACKED_2X2_FLOAT16 ? i = this.gpgpu.createFloat16PackedMatrixTexture(t8[0], t8[1]) : n === rr.UNPACKED_FLOAT32 ? i = this.gpgpu.createFloat32MatrixTexture(t8[0], t8[1]) : n === rr.UNPACKED_FLOAT16 ? i = this.gpgpu.createFloat16MatrixTexture(t8[0], t8[1]) : n === rr.PACKED_4X1_UNSIGNED_BYTE && (i = this.gpgpu.createUnsignedBytesMatrixTexture(t8[0], t8[1])), this.usedTextures[s].push(i), this.numUsedTextures++, this._numBytesAllocated += a, this.log(), i;\n }\n releaseTexture(t8, e, o, n) {\n if (this.freeTextures == null)\n return;\n let s = vD(o, n), a = kD(e, s, n);\n a in this.freeTextures || (this.freeTextures[a] = []);\n let i = ID(e, s, this.gpgpu.gl, this.gpgpu.textureConfig, n), p = A().getNumber(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");\n p !== -1 && this._numBytesAllocated > p ? (this.gpgpu.deleteMatrixTexture(t8.texture), this._numBytesAllocated -= i) : (this.freeTextures[a].push(t8), this.numFreeTextures++, this._numBytesFree += i), this.numUsedTextures--;\n let u = this.usedTextures[a], c = u && u.indexOf(t8);\n if (c == null || c < 0)\n throw new Error(\"Cannot release a texture that was never provided by this texture manager\");\n u[c] = u[u.length - 1], u.pop(), this.log();\n }\n log() {\n if (!this.logEnabled)\n return;\n let t8 = this.numFreeTextures + this.numUsedTextures;\n console.log(\"Free/Used\", `${this.numFreeTextures} / ${this.numUsedTextures}`, `(${t8})`);\n let e = this._numBytesFree / this._numBytesAllocated;\n console.log(`Bytes allocated: ${this._numBytesAllocated}`), console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100 * e)}%)`);\n }\n get numBytesAllocated() {\n return this._numBytesAllocated;\n }\n get numBytesFree() {\n return this._numBytesFree;\n }\n getNumUsedTextures() {\n return this.numUsedTextures;\n }\n getNumFreeTextures() {\n return this.numFreeTextures;\n }\n dispose() {\n if (this.freeTextures != null) {\n for (let t8 in this.freeTextures)\n this.freeTextures[t8].forEach((e) => {\n this.gpgpu.deleteMatrixTexture(e.texture);\n });\n for (let t8 in this.usedTextures)\n this.usedTextures[t8].forEach((e) => {\n this.gpgpu.deleteMatrixTexture(e.texture);\n });\n this.freeTextures = null, this.usedTextures = null, this.numUsedTextures = 0, this.numFreeTextures = 0, this._numBytesAllocated = 0, this._numBytesFree = 0;\n }\n }\n};\nfunction qZ(r, t8) {\n let e = r;\n if (t8 === e.R32F)\n return 4;\n if (t8 === e.R16F)\n return 2;\n if (t8 === e.RGBA32F)\n return 16;\n if (t8 === r.RGBA)\n return 16;\n if (t8 === e.RGBA16F)\n return 8;\n if (t8 === e.RGBA8)\n return 4;\n throw new Error(`Unknown internal format ${t8}`);\n}\nfunction ID(r, t8, e, o, n) {\n let s = jZ(t8, o), a;\n if (n) {\n let [p, u] = La(r[0], r[1]);\n a = p * u;\n } else {\n let [p, u] = Sp(r[0], r[1]);\n a = p * u;\n }\n let i = qZ(e, s);\n return a * i;\n}\nfunction jZ(r, t8) {\n switch (r) {\n case rr.PACKED_2X2_FLOAT32:\n return ih(t8);\n case rr.PACKED_2X2_FLOAT16:\n return uh(t8);\n case rr.UNPACKED_FLOAT32:\n return nh(t8);\n case rr.UNPACKED_FLOAT16:\n return sh(t8);\n case rr.PACKED_4X1_UNSIGNED_BYTE:\n return ah(t8);\n default:\n throw new Error(`Unknown physical texture type ${r}`);\n }\n}\nfunction XZ(r) {\n return A().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\") ? r ? rr.PACKED_2X2_FLOAT32 : rr.UNPACKED_FLOAT32 : r ? rr.PACKED_2X2_FLOAT16 : rr.UNPACKED_FLOAT16;\n}\nfunction vD(r, t8) {\n if (r === dr.UPLOAD)\n return rr.PACKED_2X2_FLOAT32;\n if (r === dr.RENDER || r == null)\n return XZ(t8);\n if (r === dr.DOWNLOAD || r === dr.PIXELS)\n return rr.PACKED_4X1_UNSIGNED_BYTE;\n throw new Error(`Unknown logical texture type ${r}`);\n}\nfunction kD(r, t8, e) {\n return `${r[0]}_${r[1]}_${t8}_${e}`;\n}\nvar or = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length), this.userCode = `\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `;\n }\n};\nvar Ut = \"if (isnan(x)) return x;\";\nvar ND = \"return x;\";\nvar mv = \"return abs(x);\";\nvar TD = \"return (x >= 0.0) ? x : (exp(x) - 1.0);\";\nvar _D = Ut + `\n return (x < 0.0) ? 0.0 : x;\n`;\nvar $D = Ut + `\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`;\nvar Ba = \"return x;\";\nvar ED = \"return 1.0 / (1.0 + exp(-1.0 * x));\";\nvar DD = \"return x;\";\nvar AD = `\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`;\nvar FD = `\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar PD = `\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar OD = \"return 1.0 / (1.0 + exp(-1.0 * x));\";\nvar Fr = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length), this.userCode = `\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `;\n }\n};\nvar fh = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = false, this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length);\n let e = t8.length, o = Dt(\"rc\", e), n = Re(e), s = SD(e, o), a = o.slice(-2), i = e <= 1 ? \"rc\" : `vec2(${a.join(\",\")})`;\n this.userCode = `\n void main() {\n ${n} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${i}));\n }\n `;\n }\n};\nvar QZ = Wt.whereImpl;\nvar ZZ = 1e-7;\nvar JZ = 1e-4;\nvar hh = {};\nfunction e9(r) {\n return r in hh || (hh[r] = {}), hh[r];\n}\nvar t9 = A().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\");\nvar r9 = 600;\nfunction o9() {\n return A().global.screen == null ? 1024 : A().global.screen.height * A().global.screen.width * window.devicePixelRatio * r9 / 1024 / 1024;\n}\nvar wu = class extends ao {\n nextDataId() {\n return wu.nextDataId++;\n }\n constructor(t8) {\n if (super(), this.pendingRead = /* @__PURE__ */ new WeakMap(), this.pendingDisposal = /* @__PURE__ */ new WeakSet(), this.dataRefCount = /* @__PURE__ */ new WeakMap(), this.numBytesInGPU = 0, this.uploadWaitMs = 0, this.downloadWaitMs = 0, this.lastGlFlushTime = 0, this.warnedAboutMemory = false, this.pendingDeletes = 0, this.disposed = false, !A().getBool(\"HAS_WEBGL\"))\n throw new Error(\"WebGL is not supported on this device\");\n let e;\n if (t8 != null) {\n if (t8 instanceof kp)\n e = t8;\n else {\n let o = Kr(A().getNumber(\"WEBGL_VERSION\"), t8);\n e = new kp(o);\n }\n this.binaryCache = {}, this.gpgpuCreatedLocally = false;\n } else {\n let o = Kr(A().getNumber(\"WEBGL_VERSION\"));\n e = new kp(o), this.binaryCache = e9(A().getNumber(\"WEBGL_VERSION\")), this.gpgpuCreatedLocally = true;\n }\n this.gpgpu = e, this.canvas = this.gpgpu.gl.canvas, this.textureManager = new dh(this.gpgpu), this.numMBBeforeWarning = o9(), this.texData = new zo(this, pr());\n }\n numDataIds() {\n return this.texData.numDataIds() - this.pendingDeletes;\n }\n writeTexture(t8, e, o, n, s, a) {\n let i = this.makeTensorInfo(e, o), p = this.texData.get(i.dataId);\n p.isPacked = false, p.texture = { texture: t8, texShape: [n, s] }, p.texShape = [n, s];\n let u = Dc(e), c = new Zl(u, false, a), l = this.runWebGLProgram(c, [i], o, [[n, s]]);\n return l.shape = e, p.texture = null, this.disposeIntermediateTensorInfo(i), l.dataId;\n }\n write(t8, e, o) {\n if ((A().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\") || A().getBool(\"DEBUG\")) && this.checkNumericalProblems(t8), o === \"complex64\" && t8 != null)\n throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");\n let n = { id: this.nextDataId() };\n return this.texData.set(n, { shape: e, dtype: o, values: t8, usage: dr.UPLOAD, refCount: 1 }), n;\n }\n refCount(t8) {\n return this.texData.has(t8) ? this.texData.get(t8).refCount : 0;\n }\n incRef(t8) {\n let e = this.texData.get(t8);\n e.refCount++;\n }\n decRef(t8) {\n if (this.texData.has(t8)) {\n let e = this.texData.get(t8);\n e.refCount--;\n }\n }\n move(t8, e, o, n, s) {\n if (A().getBool(\"DEBUG\") && this.checkNumericalProblems(e), n === \"complex64\")\n throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");\n this.texData.set(t8, { shape: o, dtype: n, values: e, usage: dr.UPLOAD, refCount: s });\n }\n disposeIntermediateTensorInfo(t8) {\n this.disposeData(t8.dataId);\n }\n readSync(t8) {\n let e = this.texData.get(t8), { values: o, dtype: n, complexTensorInfos: s, slice: a, shape: i, isPacked: p } = e;\n if (a != null) {\n let m;\n p ? m = new Fr(i, Ba) : m = new or(i, Ba);\n let d = this.runWebGLProgram(m, [{ dataId: t8, shape: i, dtype: n }], n), f = this.readSync(d.dataId);\n return this.disposeIntermediateTensorInfo(d), f;\n }\n if (o != null)\n return this.convertAndCacheOnCPU(t8);\n if (n === \"string\")\n return o;\n let u = this.activeTimers != null, c;\n u && (c = y.now());\n let l;\n if (n === \"complex64\") {\n let m = this.readSync(s.real.dataId), d = this.readSync(s.imag.dataId);\n l = w.mergeRealAndImagArrays(m, d);\n } else\n l = this.getValuesFromTexture(t8);\n return u && (this.downloadWaitMs += y.now() - c), this.convertAndCacheOnCPU(t8, l);\n }\n async read(t8) {\n if (this.pendingRead.has(t8)) {\n let f = this.pendingRead.get(t8);\n return new Promise((h) => f.push(h));\n }\n let e = this.texData.get(t8), { values: o, shape: n, slice: s, dtype: a, complexTensorInfos: i, isPacked: p } = e;\n if (s != null) {\n let f;\n p ? f = new Fr(n, Ba) : f = new or(n, Ba);\n let h = this.runWebGLProgram(f, [{ dataId: t8, shape: n, dtype: a }], a), g = this.read(h.dataId);\n return this.disposeIntermediateTensorInfo(h), g;\n }\n if (o != null)\n return this.convertAndCacheOnCPU(t8);\n if (A().getBool(\"DEBUG\") && !A().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\") && A().getNumber(\"WEBGL_VERSION\") === 2)\n throw new Error(\"tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.\");\n let u = null, c;\n if (a !== \"complex64\" && A().get(\"WEBGL_BUFFER_SUPPORTED\")) {\n c = this.decode(t8);\n let f = this.texData.get(c.dataId);\n u = this.gpgpu.createBufferFromTexture(f.texture.texture, ...jl(n));\n }\n this.pendingRead.set(t8, []), a !== \"complex64\" && await this.gpgpu.createAndWaitForFence();\n let l;\n if (a === \"complex64\") {\n let f = await Promise.all([this.read(i.real.dataId), this.read(i.imag.dataId)]), h = f[0], g = f[1];\n l = w.mergeRealAndImagArrays(h, g);\n } else if (u == null)\n l = this.getValuesFromTexture(t8);\n else {\n let f = y.sizeFromShape(n);\n l = this.gpgpu.downloadFloat32MatrixFromBuffer(u, f);\n }\n if (c != null && this.disposeIntermediateTensorInfo(c), u != null) {\n let f = this.gpgpu.gl;\n ce(f, () => f.deleteBuffer(u));\n }\n let m = this.convertAndCacheOnCPU(t8, l), d = this.pendingRead.get(t8);\n return this.pendingRead.delete(t8), d.forEach((f) => f(m)), this.pendingDisposal.has(t8) && (this.pendingDisposal.delete(t8), this.disposeData(t8) && pr().removeDataId(t8, this), this.pendingDeletes--), m;\n }\n readToGPU(t8, e = {}) {\n let o = this.texData.get(t8), { values: n, shape: s, slice: a, dtype: i, isPacked: p, texture: u } = o;\n if (i === \"complex64\")\n throw new Error(\"Does not support reading texture for complex64 dtype.\");\n if (a != null) {\n let d;\n p ? d = new Fr(s, Ba) : d = new or(s, Ba);\n let f = this.runWebGLProgram(d, [{ dataId: t8, shape: s, dtype: i }], i), h = this.readToGPU(f, e);\n return this.disposeIntermediateTensorInfo(f), h;\n }\n if (u == null)\n throw n != null ? new Error(\"Data is not on GPU but on CPU.\") : new Error(\"There is no data on GPU or CPU.\");\n let c = this.decode(t8, e.customTexShape), l = pr().makeTensorFromTensorInfo(c), m = this.texData.get(c.dataId);\n return Object.assign({ tensorRef: l }, m.texture);\n }\n bufferSync(t8) {\n let e = this.readSync(t8.dataId);\n if (t8.dtype === \"string\")\n try {\n let o = e.map((n) => y.decodeString(n));\n return me(t8.shape, t8.dtype, o);\n } catch (o) {\n throw new Error(\"Failed to decode encoded string bytes into utf-8\");\n }\n return me(t8.shape, t8.dtype, e);\n }\n checkNumericalProblems(t8) {\n if (t8 != null)\n for (let e = 0; e < t8.length; e++) {\n let o = t8[e];\n if (!TI(o))\n throw A().getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\") ? Error(`The value ${o} cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'`) : Error(`The value ${o} cannot be represented on this device.`);\n }\n }\n getValuesFromTexture(t8) {\n let { shape: e, dtype: o, isPacked: n } = this.texData.get(t8), s = y.sizeFromShape(e);\n if (A().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")) {\n let m = this.decode(t8), d = this.texData.get(m.dataId), f = this.gpgpu.downloadMatrixFromPackedTexture(d.texture.texture, ...jl(e)).subarray(0, s);\n return this.disposeIntermediateTensorInfo(m), f;\n }\n let a = A().getBool(\"WEBGL_PACK\") && n === true, i = a ? Dc(e) : e, p = a ? new rh(i) : new th(i), u = this.runWebGLProgram(p, [{ shape: i, dtype: o, dataId: t8 }], \"float32\"), c = this.texData.get(u.dataId), l = this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(c.texture.texture, c.texShape[0], c.texShape[1]).subarray(0, s);\n return this.disposeIntermediateTensorInfo(u), l;\n }\n timerAvailable() {\n return A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\") > 0;\n }\n time(t8) {\n let e = this.activeTimers, o = [], n = false;\n this.programTimersStack == null ? (this.programTimersStack = o, n = true) : this.activeTimers.push(o), this.activeTimers = o, t8();\n let s = y.flatten(this.activeTimers.map((p) => p.query)).filter((p) => p != null), a = y.flatten(this.activeTimers.map((p) => p.name)).filter((p) => p != null);\n this.activeTimers = e, n && (this.programTimersStack = null);\n let i = { uploadWaitMs: this.uploadWaitMs, downloadWaitMs: this.downloadWaitMs, kernelMs: null, wallMs: null };\n return (async () => {\n if (A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\") > 0) {\n let p = await Promise.all(s);\n i.kernelMs = y.sum(p), i.getExtraProfileInfo = () => p.map((u, c) => ({ name: a[c], ms: u })).map((u) => `${u.name}: ${u.ms}`).join(\", \");\n } else\n i.kernelMs = { error: \"WebGL query timers are not supported in this environment.\" };\n return this.uploadWaitMs = 0, this.downloadWaitMs = 0, i;\n })();\n }\n memory() {\n return { unreliable: false, numBytesInGPU: this.numBytesInGPU, numBytesInGPUAllocated: this.textureManager.numBytesAllocated, numBytesInGPUFree: this.textureManager.numBytesFree };\n }\n startTimer() {\n return A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\") > 0 ? this.gpgpu.beginQuery() : { startMs: y.now(), endMs: null };\n }\n endTimer(t8) {\n return A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\") > 0 ? (this.gpgpu.endQuery(), t8) : (t8.endMs = y.now(), t8);\n }\n async getQueryTime(t8) {\n if (A().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\") > 0)\n return this.gpgpu.waitForQueryAndGetTime(t8);\n let e = t8;\n return e.endMs - e.startMs;\n }\n disposeData(t8, e = false) {\n if (this.pendingDisposal.has(t8))\n return false;\n if (!this.texData.has(t8))\n return true;\n if (e ? this.texData.get(t8).refCount = 0 : this.texData.get(t8).refCount--, !e && this.texData.get(t8).refCount > 0)\n return false;\n if (this.pendingRead.has(t8))\n return this.pendingDisposal.add(t8), this.pendingDeletes++, false;\n this.releaseGPUData(t8);\n let { complexTensorInfos: o } = this.texData.get(t8);\n return o != null && (this.disposeData(o.real.dataId, e), this.disposeData(o.imag.dataId, e)), this.texData.delete(t8), true;\n }\n releaseGPUData(t8) {\n let { texture: e, dtype: o, texShape: n, usage: s, isPacked: a, slice: i } = this.texData.get(t8), p = i && i.origDataId || t8, u = this.dataRefCount.get(p);\n u > 1 ? this.dataRefCount.set(p, u - 1) : (this.dataRefCount.delete(p), e != null && (this.numBytesInGPU -= this.computeBytes(n, o), this.textureManager.releaseTexture(e, n, s, a)));\n let c = this.texData.get(t8);\n c.texture = null, c.texShape = null, c.isPacked = false, c.slice = null;\n }\n getTexture(t8) {\n return this.uploadToGPU(t8), this.texData.get(t8).texture.texture;\n }\n getDataInfo(t8) {\n return this.texData.get(t8);\n }\n shouldExecuteOnCPU(t8, e = t9) {\n return A().getBool(\"WEBGL_CPU_FORWARD\") && t8.every((o) => this.texData.get(o.dataId).texture == null && y.sizeFromShape(o.shape) < e);\n }\n getGPGPUContext() {\n return this.gpgpu;\n }\n where(t8) {\n w.warn(\"tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead\");\n let e = t8.dataSync();\n return QZ(t8.shape, e);\n }\n packedUnaryOp(t8, e, o) {\n let n = new Fr(t8.shape, e), s = this.compileAndRun(n, [t8], o);\n return pr().makeTensorFromTensorInfo(s);\n }\n abs(t8) {\n if (this.shouldExecuteOnCPU([t8]) && t8.dtype !== \"complex64\") {\n let n = ch(this.texData.get(t8.dataId).values);\n return this.makeOutput(t8.shape, t8.dtype, n);\n }\n if (A().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\"))\n return this.packedUnaryOp(t8, mv, t8.dtype);\n let e = new or(t8.shape, mv), o = this.compileAndRun(e, [t8]);\n return pr().makeTensorFromTensorInfo(o);\n }\n makeTensorInfo(t8, e, o) {\n let n;\n if (e === \"string\" && o != null && o.length > 0 && y.isString(o[0])) {\n let s = o.map((a) => y.encodeString(a));\n n = this.write(s, t8, e);\n } else\n n = this.write(o, t8, e);\n return this.texData.get(n).usage = null, { dataId: n, shape: t8, dtype: e };\n }\n makeOutput(t8, e, o) {\n return pr().makeTensorFromTensorInfo(this.makeTensorInfo(t8, e, o), this);\n }\n unpackTensor(t8) {\n let e = new fh(t8.shape);\n return this.runWebGLProgram(e, [t8], t8.dtype);\n }\n packTensor(t8) {\n let e = new mh(t8.shape), o = true;\n return this.runWebGLProgram(e, [t8], t8.dtype, null, o);\n }\n packedReshape(t8, e) {\n let o = [yi(t8.shape), ...bi(t8.shape)], n = { dtype: t8.dtype, shape: o, dataId: t8.dataId }, s = [yi(e), ...bi(e)], a = new Vc(s, o), i = true, p = [o], u = this.runWebGLProgram(a, [n], t8.dtype, p, i);\n return { dataId: u.dataId, shape: e, dtype: u.dtype };\n }\n decode(t8, e) {\n let o = this.texData.get(t8), { isPacked: n, shape: s, dtype: a } = o;\n if (e != null) {\n let m = y.sizeFromShape(s), d = e[0] * e[1] * 4;\n y.assert(m <= d, () => \"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\");\n }\n let i = Dc(s), p;\n n ? p = new eh(i) : p = new Jf(i);\n let u = true, c = [e != null ? e : jl(i)], l = this.runWebGLProgram(p, [{ shape: i, dtype: a, dataId: t8 }], a, c, u, e);\n return { dtype: a, shape: s, dataId: l.dataId };\n }\n runWebGLProgram(t8, e, o, n, s = false, a) {\n let i = this.makeTensorInfo(t8.outputShape, o), p = this.texData.get(i.dataId);\n if (t8.packedOutput && (p.isPacked = true), t8.outPackingScheme === bu.DENSE) {\n let x = a != null ? a : jl(t8.outputShape);\n p.texShape = x.map((b) => b * 2);\n }\n if (t8.outTexUsage != null && (p.usage = t8.outTexUsage), y.sizeFromShape(i.shape) === 0)\n return p.values = y.getTypedArrayFromDType(i.dtype, 0), i;\n let u = [], c = e.map((x) => {\n if (x.dtype === \"complex64\")\n throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");\n let b = this.texData.get(x.dataId);\n if (b.texture == null) {\n if (!t8.packedInputs && y.sizeFromShape(x.shape) <= A().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))\n return { shape: x.shape, texData: null, isUniform: true, uniformValues: b.values };\n t8.packedInputs && (b.isPacked = true, b.shape = x.shape);\n }\n if (this.uploadToGPU(x.dataId), !!b.isPacked != !!t8.packedInputs)\n x = b.isPacked ? this.unpackTensor(x) : this.packTensor(x), u.push(x), b = this.texData.get(x.dataId);\n else if (b.isPacked && !Cu(b.shape, x.shape)) {\n let C = x, S = x.shape;\n x.shape = b.shape, x = this.packedReshape(x, S), u.push(x), b = this.texData.get(x.dataId), C.shape = S;\n }\n return { shape: x.shape, texData: b, isUniform: false };\n });\n this.uploadToGPU(i.dataId);\n let l = { shape: i.shape, texData: p, isUniform: false }, m = ER(t8, c, l), d = this.getAndSaveBinary(m, () => _R(this.gpgpu, t8, c, l)), f = this.activeTimers != null, h;\n f && (h = this.startTimer()), A().get(\"ENGINE_COMPILE_ONLY\") || $R(this.gpgpu, d, c, l, n), u.forEach((x) => this.disposeIntermediateTensorInfo(x)), f && (h = this.endTimer(h), this.activeTimers.push({ name: t8.constructor.name, query: this.getQueryTime(h) }));\n let g = A().getNumber(\"WEBGL_FLUSH_THRESHOLD\");\n if (g > 0) {\n let x = y.now();\n x - this.lastGlFlushTime > g && (this.gpgpu.gl.flush(), this.lastGlFlushTime = x);\n }\n if (!A().getBool(\"WEBGL_LAZILY_UNPACK\") && p.isPacked && s === false) {\n let x = this.unpackTensor(i);\n return this.disposeIntermediateTensorInfo(i), x;\n }\n return i;\n }\n compileAndRun(t8, e, o, n, s = false) {\n return o = o || e[0].dtype, this.runWebGLProgram(t8, e, o, n, s);\n }\n getAndSaveBinary(t8, e) {\n return t8 in this.binaryCache || (this.binaryCache[t8] = e()), this.binaryCache[t8];\n }\n getTextureManager() {\n return this.textureManager;\n }\n dispose() {\n this.disposed || (A().getBool(\"IS_TEST\") || Object.keys(this.binaryCache).forEach((e) => {\n this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram), delete this.binaryCache[e];\n }), this.textureManager.dispose(), this.canvas != null && typeof HTMLCanvasElement != \"undefined\" && this.canvas instanceof HTMLCanvasElement ? this.canvas.remove() : this.canvas = null, this.gpgpuCreatedLocally && (this.gpgpu.program = null, this.gpgpu.dispose()), this.disposed = true);\n }\n floatPrecision() {\n return this.floatPrecisionValue == null && (this.floatPrecisionValue = De(() => {\n if (!A().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")) {\n let t8 = A().getBool(\"DEBUG\");\n A().set(\"DEBUG\", false);\n let e = this.abs(ke(1e-8)).dataSync()[0];\n if (A().set(\"DEBUG\", t8), e > 0)\n return 32;\n }\n return 16;\n })), this.floatPrecisionValue;\n }\n epsilon() {\n return this.floatPrecision() === 32 ? ZZ : JZ;\n }\n uploadToGPU(t8) {\n let e = this.texData.get(t8), { shape: o, dtype: n, values: s, texture: a, usage: i, isPacked: p } = e;\n if (a != null)\n return;\n let u = this.activeTimers != null, c;\n u && (c = y.now());\n let l = e.texShape;\n if (l == null && (l = zI(o, p), e.texShape = l), s != null) {\n let m = Dc(o), d, f = l[1], h = l[0], g = s instanceof Uint8Array || s instanceof Uint8ClampedArray;\n (p || !g) && ([f, h] = La(l[0], l[1])), p ? d = new oh(m, g) : d = new Zl(m, g);\n let x = g ? [h, f] : l, b = this.makeTensorInfo(x, n), C = this.texData.get(b.dataId);\n g ? C.usage = dr.PIXELS : C.usage = dr.UPLOAD, C.texShape = x, this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId), f, h, s);\n let S = [[h, f]], k = true, _ = this.runWebGLProgram(d, [b], n, S, k), E = this.texData.get(_.dataId);\n e.texShape = E.texShape, e.isPacked = E.isPacked, e.usage = E.usage, A().get(\"ENGINE_COMPILE_ONLY\") ? this.disposeData(_.dataId) : (e.texture = E.texture, e.values = null, this.texData.delete(_.dataId)), this.disposeIntermediateTensorInfo(b), u && (this.uploadWaitMs += y.now() - c);\n } else {\n let m = this.acquireTexture(l, i, n, p);\n e.texture = m;\n }\n }\n convertAndCacheOnCPU(t8, e) {\n let o = this.texData.get(t8), { dtype: n } = o;\n return e != null && (o.values = n9(e, n)), o.values;\n }\n acquireTexture(t8, e, o, n) {\n if (this.numBytesInGPU += this.computeBytes(t8, o), !this.warnedAboutMemory && this.numBytesInGPU > this.numMBBeforeWarning * 1024 * 1024) {\n let s = (this.numBytesInGPU / 1024 / 1024).toFixed(2);\n this.warnedAboutMemory = true, console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`);\n }\n return this.textureManager.acquireTexture(t8, e, n);\n }\n computeBytes(t8, e) {\n return t8[0] * t8[1] * y.bytesPerElement(e);\n }\n checkCompileCompletion() {\n for (let [, t8] of Object.entries(this.binaryCache))\n this.checkCompletion_(t8);\n }\n async checkCompileCompletionAsync() {\n let t8 = [];\n if (this.gpgpu.parallelCompilationExtension) {\n for (let [, e] of Object.entries(this.binaryCache))\n t8.push(this.checkCompletionAsync_(e));\n return Promise.all(t8);\n } else {\n for (let [, e] of Object.entries(this.binaryCache)) {\n let o = new Promise((n) => {\n try {\n this.checkCompletion_(e), n(true);\n } catch (s) {\n throw s;\n }\n });\n t8.push(o);\n }\n return Promise.all(t8);\n }\n }\n async checkCompletionAsync_(t8) {\n return this.gpgpu.gl.getProgramParameter(t8.webGLProgram, this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR) ? this.checkCompletion_(t8) : (await pS(), this.checkCompletionAsync_(t8));\n }\n checkCompletion_(t8) {\n if (this.gpgpu.gl.getProgramParameter(t8.webGLProgram, this.gpgpu.gl.LINK_STATUS) === false)\n throw console.log(this.gpgpu.gl.getProgramInfoLog(t8.webGLProgram)), this.gpgpu.gl.getShaderParameter(t8.fragmentShader, this.gpgpu.gl.COMPILE_STATUS) === false ? (qf(t8.source, this.gpgpu.gl.getShaderInfoLog(t8.fragmentShader)), new Error(\"Failed to compile fragment shader.\")) : new Error(\"Failed to link vertex and fragment shaders.\");\n return true;\n }\n getUniformLocations() {\n for (let t8 of Object.values(this.binaryCache)) {\n this.gpgpu.buildVao(t8.webGLProgram);\n let { variablesLocations: e, customUniformLocations: o, infLoc: n, nanLoc: s, outShapeLocation: a, outShapeStridesLocation: i, outTexShapeLocation: p } = qI(this.gpgpu, t8.program, t8.webGLProgram);\n t8.variablesLocations = e, t8.customUniformLocations = o, t8.infLoc = n, t8.nanLoc = s, t8.outShapeLocation = a, t8.outShapeStridesLocation = i, t8.outTexShapeLocation = p;\n }\n }\n createTensorFromGPUData(t8, e, o) {\n t8.channels = t8.channels || \"RGBA\";\n let { texture: n, height: s, width: a, channels: i } = t8, p = pr().backend;\n if (!p.gpgpu.gl.isTexture(n))\n throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");\n let u = p.writeTexture(n, e, o, s, a, i);\n return pr().makeTensorFromDataId(u, e, o, p);\n }\n};\nwu.nextDataId = 0;\nfunction n9(r, t8) {\n if (t8 === \"float32\" || t8 === \"complex64\")\n return r;\n if (t8 === \"int32\" || t8 === \"bool\") {\n let e = t8 === \"int32\" ? new Int32Array(r.length) : new Uint8Array(r.length);\n for (let o = 0; o < e.length; ++o)\n e[o] = Math.round(r[o]);\n return e;\n } else\n throw new Error(`Unknown dtype ${t8}`);\n}\nvar s9 = \"4.11.0\";\nfunction MD() {\n A().set(\"WEBGL_FORCE_F16_TEXTURES\", true);\n}\nou.isBrowser() && su(\"webgl\", () => new wu(), 2);\nvar Cat = { forceHalfFloat: MD };\nvar Wc = `\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;\nvar Pr = class {\n constructor(t8, e, o) {\n this.variableNames = [\"A\", \"B\"], this.outputShape = w.assertAndGetBroadcastShape(e, o), this.enableShapeUniforms = pt(this.outputShape.length), this.userCode = `\n float binaryOperation(float a, float b) {\n ${t8}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `;\n }\n};\nvar Xr = `\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;\nvar jr = class {\n constructor(t8, e, o, n = false) {\n this.variableNames = [\"A\", \"B\"], this.supportsBroadcasting = true, this.packedInputs = true, this.packedOutput = true, this.outputShape = w.assertAndGetBroadcastShape(e, o);\n let s = this.outputShape.length;\n this.enableShapeUniforms = pt(s);\n let a = \"\";\n if (n)\n if (s === 0 || y.sizeFromShape(this.outputShape) === 1)\n a = `\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;\n else if (a = `\n ${Re(s)} coords = getOutputCoords();\n `, s === 1)\n this.enableShapeUniforms ? a += `\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ` : a += `\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;\n else {\n let p = Dt(\"coords\", s);\n this.enableShapeUniforms ? a += `\n bool nextRowOutOfBounds =\n (${p[s - 2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${p[s - 1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n ` : a += `\n bool nextRowOutOfBounds =\n (${p[s - 2]} + 1) >= ${this.outputShape[s - 2]};\n bool nextColOutOfBounds =\n (${p[s - 1]} + 1) >= ${this.outputShape[s - 1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `;\n }\n this.userCode = `\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${t8}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${a}\n\n setOutput(result);\n }\n `;\n }\n};\nfunction At(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n return e.incRef(o.dataId), { dataId: o.dataId, shape: o.shape, dtype: o.dtype };\n}\nvar LD = { kernelName: wo, backendName: \"webgl\", kernelFunc: At };\nfunction Or(r) {\n let { inputs: t8, backend: e } = r, { real: o, imag: n } = t8, s = e.makeTensorInfo(o.shape, \"complex64\"), a = e.texData.get(s.dataId), i = At({ inputs: { x: o }, backend: e }), p = At({ inputs: { x: n }, backend: e });\n return a.complexTensorInfos = { real: i, imag: p }, s;\n}\nvar BD = { kernelName: Fi, backendName: \"webgl\", kernelFunc: Or };\nvar dv = \"return (a < 0.) ? b * a : a;\";\nvar fv = `\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;\nfunction a9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { alpha: s } = o, a = e.makeTensorInfo([], \"float32\", y.createScalarValue(s, \"float32\")), i = A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\") ? new jr(fv, n.shape, a.shape) : new Pr(dv, n.shape, a.shape), p = e.runWebGLProgram(i, [n, a], \"float32\");\n return e.disposeIntermediateTensorInfo(a), p;\n}\nvar zD = { kernelName: Rn, backendName: \"webgl\", kernelFunc: a9 };\nvar hv = \"return (a < 0.) ? b * a : a;\";\nvar gv = `\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;\nfunction i9(r) {\n let { inputs: t8, backend: e } = r, { x: o, alpha: n } = t8, s = A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\") ? new jr(gv, o.shape, n.shape) : new Pr(hv, o.shape, n.shape);\n return e.runWebGLProgram(s, [o, n], \"float32\");\n}\nvar VD = { kernelName: os, backendName: \"webgl\", kernelFunc: i9 };\nvar Po = \"if (isnan(x)) return x;\";\nfunction xe({ opSnippet: r, packedOpSnippet: t8, cpuKernelImpl: e, dtype: o }) {\n return ({ inputs: n, backend: s }) => {\n let { x: a } = n, i = s, p = o || a.dtype;\n if (i.shouldExecuteOnCPU([a]) && e != null) {\n let l = i.texData.get(a.dataId), m = e(l.values, p);\n return i.makeTensorInfo(a.shape, p, m);\n }\n let u = A().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\") && t8 != null, c;\n return u ? c = new Fr(a.shape, t8) : c = new or(a.shape, r), i.runWebGLProgram(c, [a], p);\n };\n}\nfunction nt({ opSnippet: r, packedOpSnippet: t8, checkOutOfBounds: e = false, supportsComplex: o = false, cpuKernelImpl: n, dtype: s }) {\n return ({ inputs: a, backend: i }) => {\n let { a: p, b: u } = a, c = i;\n if (o && p.dtype === \"complex64\") {\n let f = c.texData.get(p.dataId), h = c.texData.get(u.dataId), [g, x] = [[f.complexTensorInfos.real, h.complexTensorInfos.real], [f.complexTensorInfos.imag, h.complexTensorInfos.imag]].map((C) => {\n let [S, k] = C, _ = { dataId: S.dataId, dtype: S.dtype, shape: p.shape }, E = { dataId: k.dataId, dtype: k.dtype, shape: u.shape }, R = new Pr(r, p.shape, u.shape);\n return c.runWebGLProgram(R, [_, E], dt(S.dtype, k.dtype));\n }), b = Or({ inputs: { real: g, imag: x }, backend: c });\n return c.disposeIntermediateTensorInfo(g), c.disposeIntermediateTensorInfo(x), b;\n }\n let l = s || dt(p.dtype, u.dtype);\n if ((p.dtype === \"string\" || u.dtype === \"string\" || c.shouldExecuteOnCPU([p, u])) && n != null) {\n let f = c.texData.get(p.dataId).values, h = c.texData.get(u.dataId).values, g = p.dtype === \"string\" ? w.fromUint8ToStringArray(f) : f, x = p.dtype === \"string\" ? w.fromUint8ToStringArray(h) : h, [b, C] = n(p.shape, u.shape, g, x, l), S = c.makeTensorInfo(C, l), k = c.texData.get(S.dataId);\n return k.values = b, S;\n }\n let m = A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\") && t8 != null, d;\n return m ? d = new jr(t8, p.shape, u.shape, e) : d = new Pr(r, p.shape, u.shape), c.runWebGLProgram(d, [p, u], l);\n };\n}\nfunction Ci(r, t8 = false) {\n if (r === \"linear\")\n return t8 ? DD : ND;\n if (r === \"relu\")\n return t8 ? FD : _D;\n if (r === \"elu\")\n return t8 ? AD : TD;\n if (r === \"relu6\")\n return t8 ? PD : $D;\n if (r === \"prelu\")\n return t8 ? gv : hv;\n if (r === \"leakyrelu\")\n return t8 ? fv : dv;\n if (r === \"sigmoid\")\n return t8 ? OD : ED;\n throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`);\n}\nvar Uc = class {\n constructor(t8, e, o, n = false, s = false, a = false, i = null, p = false, u = false) {\n this.variableNames = [\"matrixA\", \"matrixB\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = o, this.enableShapeUniforms = pt(this.outputShape.length);\n let c = n ? t8[1] : t8[2], l = Math.ceil(c / 2), m = n ? \"i * 2, rc.y\" : \"rc.y, i * 2\", d = s ? \"rc.z, i * 2\" : \"i * 2, rc.z\", f = n ? [\"a.xxyy\", \"a.zzww\"] : [\"a.xxzz\", \"a.yyww\"], h = s ? [\"b.xzxz\", \"b.ywyw\"] : [\"b.xyxy\", \"b.zwzw\"], g = \"\", x = \"\";\n i && (p ? g = `vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${i}\n }` : u ? g = `vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${i}\n }` : g = `vec4 activation(vec4 x) {\n ${i}\n }`, x = \"result = activation(result);\");\n let b = a ? \"result += getBiasAtOutCoords();\" : \"\";\n a && this.variableNames.push(\"bias\"), p && this.variableNames.push(\"preluActivationWeights\"), u && this.variableNames.push(\"leakyreluAlpha\");\n let C = \"rc.x\", S = \"rc.x\";\n t8[0] < e[0] ? C = `imod(rc.x, ${t8[0]})` : e[0] < t8[0] && (S = `imod(rc.x, ${e[0]})`), this.userCode = `\n ${g}\n // Don't use uniform for sharedDimensionPacked for performance.\n const float sharedDimension = ${l}.0;\n\n vec4 dot2x2ARowBCol(ivec3 rc) {\n vec4 result = vec4(0);\n int batchA = ${C};\n int batchB = ${S};\n for (int i = 0; i < ${l}; i++) {\n vec4 a = getMatrixA(batchA, ${m});\n vec4 b = getMatrixB(batchB, ${d});\n\n // These swizzled products need to be separately added.\n // See: https://github.com/tensorflow/tfjs/issues/1735\n result += (${f[0]} * ${h[0]});\n result += (${f[1]} * ${h[1]});\n }\n return result;\n }\n\n void main() {\n ivec3 rc = getOutputCoords();\n vec4 result = dot2x2ARowBCol(rc);\n\n ${b}\n\n ${x}\n\n setOutput(result);\n }\n `;\n }\n};\nvar xv = { REAL: \"return areal * breal - aimag * bimag;\", IMAG: \"return areal * bimag + aimag * breal;\" };\nvar em = class {\n constructor(t8, e, o) {\n this.variableNames = [\"AReal\", \"AImag\", \"BReal\", \"BImag\"], this.outputShape = w.assertAndGetBroadcastShape(e, o), this.userCode = `\n float binaryOpComplex(\n float areal, float aimag, float breal, float bimag) {\n ${t8}\n }\n\n void main() {\n float areal = getARealAtOutCoords();\n float aimag = getAImagAtOutCoords();\n float breal = getBRealAtOutCoords();\n float bimag = getBImagAtOutCoords();\n setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n }\n `;\n }\n};\nvar WD = \"return a * b;\";\nfunction tm(r) {\n let { inputs: t8, backend: e } = r, { a: o, b: n } = t8, s = w.upcastType(o.dtype, n.dtype);\n if (o.dtype === \"complex64\") {\n let i = e.texData.get(o.dataId), p = e.texData.get(n.dataId), u = new em(xv.REAL, o.shape, n.shape), c = new em(xv.IMAG, o.shape, n.shape), l = [{ dataId: i.complexTensorInfos.real.dataId, dtype: i.complexTensorInfos.real.dtype, shape: o.shape }, { dataId: i.complexTensorInfos.imag.dataId, dtype: i.complexTensorInfos.imag.dtype, shape: o.shape }, { dataId: p.complexTensorInfos.real.dataId, dtype: p.complexTensorInfos.real.dtype, shape: n.shape }, { dataId: p.complexTensorInfos.imag.dataId, dtype: p.complexTensorInfos.imag.dtype, shape: n.shape }], m = e.runWebGLProgram(u, l, \"float32\"), d = e.runWebGLProgram(c, l, \"float32\"), f = Or({ inputs: { real: m, imag: d }, backend: e });\n return e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d), f;\n }\n if (e.shouldExecuteOnCPU([o, n])) {\n let i = e.texData.get(o.dataId), p = e.texData.get(n.dataId), [u, c] = ZR(o.shape, n.shape, i.values, p.values, s), l = e.makeTensorInfo(c, s), m = e.texData.get(l.dataId);\n return m.values = u, l;\n }\n let a;\n return A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\") ? a = new jr(WD, o.shape, n.shape) : a = new Pr(WD, o.shape, n.shape), e.runWebGLProgram(a, [o, n], s);\n}\nvar UD = { kernelName: Yn, backendName: \"webgl\", kernelFunc: tm };\nfunction GD(r, t8, e) {\n let o = [yi(r.shape), ...bi(r.shape)], n = { dtype: r.dtype, shape: o, dataId: r.dataId }, s = [yi(t8), ...bi(t8)], a = new Vc(s, o), i = true, p = [o], u = e.runWebGLProgram(a, [n], r.dtype, p, i);\n return { dataId: u.dataId, shape: t8, dtype: u.dtype };\n}\nfunction te(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { shape: s } = o, a = e, i = y.sizeFromShape(n.shape), p = y.inferFromImplicitShape(s, i), u = y.sizeFromShape(p);\n y.assert(i === u, () => `The new shape (${p}) has ${u} elements and the old shape (${n.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`);\n let c = a.texData.get(n.dataId);\n return c.isPacked && !Cu(n.shape, p) && !(c.texture !== null && Cu(c.shape, p)) ? GD(n, p, a) : (a.incRef(n.dataId), { dataId: n.dataId, shape: p, dtype: n.dtype });\n}\nvar HD = { kernelName: da, backendName: \"webgl\", kernelFunc: te };\nvar rm = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"];\n let { windowSize: o, batchSize: n, inSize: s, outSize: a } = t8;\n this.outputShape = [n, a];\n let i = Math.floor(o / 4) * 4, p = o % 4, u = \"sumValue += dot(values, ones);\";\n if (e != null) {\n let l = 1 / e;\n u = `sumValue += dot(values * ${y.isInt(l) ? l.toPrecision(2) : l}, ones);`;\n }\n let c = \"\";\n s % o > 0 && (c = `\n if (inIdx < 0 || inIdx >= ${s}) {\n return 0.0;\n }\n `), this.userCode = `\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${i}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${u}\n }\n\n int inIdx = inOffset + ${i};\n if (${p === 1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${u}\n } else if (${p === 2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${u}\n } else if (${p === 3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${u}\n }\n setOutput(sumValue);\n }\n `;\n }\n};\nvar gh = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"];\n let { windowSize: o, batchSize: n, inSize: s, outSize: a } = t8;\n this.outputShape = [n, a];\n let i = \"0.0\", p = \"\";\n e === \"prod\" ? i = \"1.0\" : e === \"min\" ? (i = \"1.0 / 1e-20\", p = \"min\") : e === \"max\" && (i = \"-1.0 / 1e-20\", p = \"max\");\n let u = `${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;\n e === \"sum\" ? u = \"sumValue\" : e === \"prod\" ? u = \"prodValue\" : e === \"all\" ? u = \"allValue\" : e === \"any\" && (u = \"anyValue\");\n let c = Math.floor(o / 4) * 4, l = o % 4, m = `\n if (${e === \"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e === \"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${p}(values, minMaxValue);\n if (${e === \"min\"} || ${e === \"max\"}) {\n minMaxValue = ${p}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `, d = \"vec4\";\n e === \"all\" ? (i = \"1.0\", m = `\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `, d = \"bvec4\") : e === \"any\" && (i = \"0.0\", m = `\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `, d = \"bvec4\");\n let f = \"\";\n s % o > 0 && (f = `\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `), this.userCode = `\n const float initializationValue = ${i};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n vec4 minMaxValue = vec4(${i});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${l === 1}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${l === 2}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${l === 3}) {\n ${d} values = ${d}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${u});\n }\n `;\n }\n};\nfunction p9(r) {\n let t8 = [];\n for (; t8.length === 0 || t8[t8.length - 1].outSize !== 1; ) {\n let e = t8.length ? t8[t8.length - 1].outSize : r[1], o = w.computeOptimalWindowSize(e);\n t8.push({ inSize: e, windowSize: o, outSize: Math.ceil(e / o) });\n }\n return t8;\n}\nfunction Yr(r, t8, e, o) {\n let n = p9(r.shape), s = r;\n for (let a = 0; a < n.length; a++) {\n let { inSize: i, windowSize: p, outSize: u } = n[a], c, l;\n e === \"mean\" ? c = a === 0 ? new rm({ windowSize: p, inSize: i, batchSize: r.shape[0], outSize: u }, i) : new rm({ windowSize: p, inSize: i, batchSize: r.shape[0], outSize: u }) : c = new gh({ windowSize: p, inSize: i, batchSize: r.shape[0], outSize: u }, e), l = s, s = o.runWebGLProgram(c, [s], t8), l.dataId !== r.dataId && o.disposeIntermediateTensorInfo(l);\n }\n return s;\n}\nvar xh = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"];\n let o = new Array(t8.length);\n for (let a = 0; a < o.length; a++)\n o[a] = t8[e[a]];\n this.outputShape = o, this.rank = o.length;\n let n = Re(this.rank), s = c9(e);\n this.userCode = `\n void main() {\n ${n} resRC = getOutputCoords();\n setOutput(getA(${s}));\n }\n `;\n }\n};\nfunction c9(r) {\n let t8 = r.length;\n if (t8 > 6)\n throw Error(`Transpose for rank ${t8} is not yet supported`);\n let e = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\", \"resRC.u\", \"resRC.v\"], o = new Array(t8);\n for (let n = 0; n < r.length; n++)\n o[r[n]] = e[n];\n return o.join();\n}\nvar yh = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true;\n let o = new Array(t8.length);\n for (let c = 0; c < o.length; c++)\n o[c] = t8[e[c]];\n if (this.outputShape = o, this.rank = o.length, this.rank > 6)\n throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);\n let n = Re(this.rank), s = lv(\"rc\", this.rank), a = new Array(this.rank);\n for (let c = 0; c < e.length; c++)\n a[e[c]] = s[c];\n let i = `vec2(${a.slice(-2).join()})`, p = `++${s[this.rank - 1]} < ${o[this.rank - 1]}`, u = `getChannel(getA(${a.join()}), ${i})`;\n this.userCode = `\n void main() {\n ${n} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result[0] = ${u};\n if(${p}) {\n result[1] = ${u};\n }\n --${s[this.rank - 1]};\n if(++${s[this.rank - 2]} < ${o[this.rank - 2]}) {\n result[2] = ${u};\n if(${p}) {\n result[3] = ${u};\n }\n }\n setOutput(result);\n }\n `;\n }\n};\nfunction Su(r, t8, e) {\n let o = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") ? new yh(r.shape, t8) : new xh(r.shape, t8);\n return e.runWebGLProgram(o, [r], r.dtype);\n}\nfunction KD(r, t8, e, o) {\n let n = t8, s = r.shape.length, a = y.parseAxisParam(n, r.shape), i = a, p = w.getAxesPermutation(i, s), u = p != null, c = r;\n u && (c = Su(r, p, o), i = w.getInnerMostAxes(i.length, s)), w.assertAxesAreInnerMostDims(\"sum\", i, s);\n let [l, m] = w.computeOutAndReduceShapes(c.shape, i), d = l;\n e && (d = w.expandShapeToKeepDim(l, a));\n let f = y.sizeFromShape(m), g = y.sizeFromShape(r.shape) / f, x = te({ inputs: { x: c }, attrs: { shape: [g, f] }, backend: o }), b = ni(r.dtype), C = Yr(x, b, \"sum\", o), S = te({ inputs: { x: C }, attrs: { shape: d }, backend: o });\n return o.disposeIntermediateTensorInfo(x), o.disposeIntermediateTensorInfo(C), u && o.disposeIntermediateTensorInfo(c), S;\n}\nfunction Tp(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n return KD(n, s, a, e);\n}\nvar qD = { kernelName: Is, backendName: \"webgl\", kernelFunc: Tp };\nfunction Ct(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { perm: s } = o, a = e, i = n.shape.length, p = new Array(i);\n for (let c = 0; c < p.length; c++)\n p[c] = n.shape[s[c]];\n let u;\n if (a.shouldExecuteOnCPU([n])) {\n let l = a.texData.get(n.dataId).values, m = Np(l, n.shape, n.dtype, s, p);\n u = a.makeTensorInfo(p, n.dtype);\n let d = a.texData.get(u.dataId);\n d.values = m;\n } else\n u = Su(n, s, a);\n return u;\n}\nvar jD = { kernelName: co, backendName: \"webgl\", kernelFunc: Ct };\nvar yv = 1e3;\nfunction _p({ a: r, b: t8, transposeA: e, transposeB: o, backend: n, bias: s = null, preluActivationWeights: a = null, leakyreluAlpha: i = 0, activation: p = null }) {\n let u = r.shape.length, c = t8.shape.length, l = e ? r.shape[u - 2] : r.shape[u - 1], m = o ? t8.shape[c - 1] : t8.shape[c - 2], d = e ? r.shape[u - 1] : r.shape[u - 2], f = o ? t8.shape[c - 2] : t8.shape[c - 1], h = r.shape.slice(0, -2), g = t8.shape.slice(0, -2), x = y.sizeFromShape(h), b = y.sizeFromShape(g), S = Ir.assertAndGetBroadcastShape(r.shape.slice(0, -2), t8.shape.slice(0, -2)).concat([d, f]);\n y.assert(l === m, () => `Error in matMul: inner shapes (${l}) and (${m}) of Tensors with shapes ${r.shape} and ${t8.shape} and transposeA=${e} and transposeB=${o} must match.`);\n let k = e ? [x, l, d] : [x, d, l], _ = o ? [b, f, m] : [b, m, f], E = te({ inputs: { x: r }, backend: n, attrs: { shape: k } }), R = te({ inputs: { x: t8 }, backend: n, attrs: { shape: _ } }), D = [E, R], P = Math.max(x, b), O = e ? E.shape[1] : E.shape[2], M = s != null, L = a != null, B = p === \"leakyrelu\", z = p != null ? Ci(p, true) : null, U = M || L || B || z != null, j;\n if ((d === 1 || f === 1) && O > yv && U === false) {\n let Y = E, J = R;\n e && (Y = Ct({ inputs: { x: E }, backend: n, attrs: { perm: [0, 2, 1] } }), D.push(Y)), o && (J = Ct({ inputs: { x: R }, backend: n, attrs: { perm: [0, 2, 1] } }), D.push(J));\n let re = f !== 1, ne = f === 1, ee = Y;\n re && (ee = te({ inputs: { x: Y }, backend: n, attrs: { shape: [P, O, 1] } }), D.push(ee));\n let oe = f === 1 ? 2 : 1, ie = J;\n ne && (ie = te({ inputs: { x: J }, backend: n, attrs: { shape: [P, 1, O] } }), D.push(ie));\n let le = tm({ inputs: { a: ee, b: ie }, backend: n });\n j = Tp({ inputs: { x: le }, backend: n, attrs: { axis: oe, keepDims: true } }), D.push(le);\n } else {\n let Y = dt(r.dtype, t8.dtype), J = new Uc(k, _, [P, d, f], e, o, M, z, L, B), re = [E, R];\n if (s != null && re.push(s), L && re.push(a), B) {\n let ne = n.makeTensorInfo([], \"float32\", y.createScalarValue(i, \"float32\"));\n re.push(ne), D.push(ne);\n }\n j = n.runWebGLProgram(J, re, Y);\n }\n let q = te({ inputs: { x: j }, backend: n, attrs: { shape: S } });\n D.push(j);\n for (let Y of D)\n n.disposeIntermediateTensorInfo(Y);\n return q;\n}\nfunction l9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s, bias: a, preluActivationWeights: i } = t8, { transposeA: p, transposeB: u, activation: c, leakyreluAlpha: l } = o;\n return _p({ a: n, b: s, transposeA: p, transposeB: u, backend: e, bias: a, preluActivationWeights: i, leakyreluAlpha: l, activation: c });\n}\nvar XD = { kernelName: Io, backendName: \"webgl\", kernelFunc: l9 };\nvar YD = \"return abs(x);\";\nfunction m9(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (e.shouldExecuteOnCPU([o]) && o.dtype !== \"complex64\") {\n let s = e.texData.get(o.dataId), a = ch(s.values);\n return e.makeTensorInfo(o.shape, o.dtype, a);\n }\n let n;\n return A().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\") ? n = new Fr(o.shape, YD) : n = new or(o.shape, YD), e.runWebGLProgram(n, [o], o.dtype);\n}\nvar QD = { kernelName: Xs, backendName: \"webgl\", kernelFunc: m9 };\nvar d9 = Ut + `\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`;\nvar f9 = xe({ opSnippet: d9 });\nvar ZD = { kernelName: Wo, backendName: \"webgl\", kernelFunc: f9 };\nvar h9 = Ut + `\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`;\nvar g9 = xe({ opSnippet: h9 });\nvar JD = { kernelName: Uo, backendName: \"webgl\", kernelFunc: g9 };\nvar eA = \"return a + b;\";\nvar x9 = nt({ opSnippet: eA, packedOpSnippet: eA, supportsComplex: true, cpuKernelImpl: RR });\nvar tA = { kernelName: uo, backendName: \"webgl\", kernelFunc: x9 };\nvar bh = class {\n constructor(t8, e) {\n this.outputShape = [], this.outputShape = t8, this.variableNames = e.map((s, a) => `T${a}`);\n let o = [];\n this.variableNames.forEach((s) => {\n o.push(`float v${s} = get${s}AtOutCoords();`);\n });\n let n = this.variableNames.map((s) => `v${s}`).join(\" + \");\n this.userCode = `\n void main() {\n ${o.join(`\n `)}\n\n float result = ${n};\n setOutput(result);\n }\n `;\n }\n};\nvar Ch = class {\n constructor(t8, e) {\n this.outputShape = [], this.packedInputs = true, this.packedOutput = true, this.outputShape = t8, this.variableNames = e.map((s, a) => `T${a}`);\n let o = [];\n this.variableNames.forEach((s) => {\n o.push(`vec4 v${s} = get${s}AtOutCoords();`);\n });\n let n = this.variableNames.map((s) => `v${s}`).join(\" + \");\n this.userCode = `\n void main() {\n ${o.join(`\n `)}\n\n vec4 result = ${n};\n setOutput(result);\n }\n `;\n }\n};\nfunction wh(r) {\n let { inputs: t8, backend: e } = r, o = t8;\n if (o.length === 1)\n return At({ inputs: { x: o[0] }, backend: e });\n if (o.length > A().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\")) {\n let p = Math.floor(o.length / 2), u = wh({ inputs: o.slice(0, p), backend: e }), c = wh({ inputs: o.slice(p), backend: e });\n return wh({ inputs: [u, c], backend: e });\n }\n let n = o.map((p) => p.dtype).reduce((p, u) => dt(p, u)), s = o.map((p) => p.shape), i = A().getBool(\"WEBGL_PACK\") ? new Ch(o[0].shape, s) : new bh(o[0].shape, s);\n return e.runWebGLProgram(i, o, n);\n}\nvar rA = { kernelName: Go, backendName: \"webgl\", kernelFunc: wh };\nfunction y9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o, i = n.shape.length, p = y.parseAxisParam(s, n.shape), u = p, c = w.getAxesPermutation(u, i), l = n;\n c != null && (l = Ct({ inputs: { x: n }, backend: e, attrs: { perm: c } }), u = w.getInnerMostAxes(u.length, i)), w.assertAxesAreInnerMostDims(\"all\", u, i);\n let [m, d] = w.computeOutAndReduceShapes(l.shape, u), f = y.sizeFromShape(d), h = te({ inputs: { x: l }, backend: e, attrs: { shape: [-1, f] } }), g = Yr(h, h.dtype, \"all\", e), x;\n if (a) {\n let b = w.expandShapeToKeepDim(m, p);\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: b } });\n } else\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: m } });\n return e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(g), c != null && e.disposeIntermediateTensorInfo(l), x;\n}\nvar oA = { kernelName: Ho, backendName: \"webgl\", kernelFunc: y9 };\nfunction b9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o, i = n.shape.length, p = y.parseAxisParam(s, n.shape), u = p, c = w.getAxesPermutation(u, i), l = n;\n c != null && (l = Ct({ inputs: { x: n }, backend: e, attrs: { perm: c } }), u = w.getInnerMostAxes(u.length, i)), w.assertAxesAreInnerMostDims(\"any\", u, i);\n let [m, d] = w.computeOutAndReduceShapes(l.shape, u), f = y.sizeFromShape(d), h = te({ inputs: { x: l }, backend: e, attrs: { shape: [-1, f] } }), g = Yr(h, h.dtype, \"any\", e), x;\n if (a) {\n let b = w.expandShapeToKeepDim(m, p);\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: b } });\n } else\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: m } });\n return e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(g), c != null && e.disposeIntermediateTensorInfo(l), x;\n}\nvar nA = { kernelName: Ko, backendName: \"webgl\", kernelFunc: b9 };\nvar Sh = class {\n constructor(t8, e, o) {\n this.variableNames = [\"A\"];\n let { windowSize: n, batchSize: s, outSize: a } = t8;\n o || this.variableNames.push(\"bestIndicesA\"), this.outputShape = [s, a];\n let i = e === \"max\" ? \">\" : \"<\", p = o ? \"inOffset + i;\" : \"round(getBestIndicesA(batch, inOffset + i));\";\n this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${n}; i++) {\n int inIdx = ${p};\n float candidate = getA(batch, inIdx);\n if (candidate ${i} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `;\n }\n};\nvar Ih = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, y.assert(t8.length > 2, () => `Packed arg${o.charAt(0).toUpperCase() + o.slice(1)} supports only inputs with rank above 2.`);\n let s = t8[t8.length - 1], a = Math.ceil(s / e);\n this.outputShape = t8.slice(0, -1), a > 1 && this.outputShape.push(a), n || this.variableNames.push(\"bestIndicesA\");\n let i = this.outputShape, p = i.length, u = Re(p), c = Dt(\"coords\", p), l, m;\n if (a === 1) {\n m = p + 1;\n let R = Re(m);\n l = `\n ${R} sourceLocR = ${R}(${c.join()}, 0);\n ++${c[p - 1]};\n ${R} sourceLocG = ${R}(${c.join()}, 0);\n ++${c[p - 2]};\n ${R} sourceLocA = ${R}(${c.join()}, 0);\n --${c[p - 1]};\n ${R} sourceLocB = ${R}(${c.join()}, 0);\n --${c[p - 2]};`;\n } else\n m = p, l = `\n ${u} sourceLocR = coords;\n ++${c[p - 1]};\n ${u} sourceLocG = coords;\n ++${c[p - 2]};\n ${u} sourceLocA = coords;\n --${c[p - 1]};\n ${u} sourceLocB = coords;\n --${c[p - 2]};`;\n let d = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"].slice(0, m), f = \".\" + d[m - 1], h = d.map((R) => \"int \" + R), g = Dt(\"sourceLocR\", m - 1).concat(\"inIdx.r\"), x = Dt(\"sourceLocG\", m - 1).concat(\"inIdx.g\"), b = Dt(\"sourceLocB\", m - 1).concat(\"inIdx.b\"), C = Dt(\"sourceLocA\", m - 1).concat(\"inIdx.a\"), S = o === \"max\" ? \"greaterThan\" : \"lessThan\", k = n ? \"\" : `\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${C.join()})));`, _ = `vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${C.join()}) : 0.)`, E = n ? \"\" : `\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }`;\n this.userCode = `\n float getAChannel(${h.join()}) {\n return getChannel(getA(${d.join()}),\n vec2(${d.slice(-2).join()}));\n }\n ${E}\n void main() {\n ${u} coords = getOutputCoords();\n bool hasNextCol = ${c[p - 1]} < ${i[p - 1] - 1};\n bool hasNextRow = ${c[p - 2]} < ${i[p - 2] - 1};\n ${l}\n ivec4 srcIdx = ivec4(sourceLocR${f}, sourceLocG${f},\n sourceLocB${f}, sourceLocA${f}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${k}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${S}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `;\n }\n};\nfunction sA(r, t8, e, o = null) {\n let n = t8.shape[0], s = t8.shape[1];\n o != null && (n = o.shape[0], s = o.shape[1]);\n let a = w.computeOptimalWindowSize(s), i = { windowSize: a, inSize: s, batchSize: n, outSize: Math.ceil(s / a) }, p = new Sh(i, e, o == null), u = [t8];\n o != null && u.push(o);\n let c = r.runWebGLProgram(p, u, \"int32\");\n if (c.shape[1] === 1)\n return c;\n let l = sA(r, t8, e, c);\n return r.disposeIntermediateTensorInfo(c), l;\n}\nfunction aA(r, t8, e, o = null) {\n let n = o != null ? o.shape : t8.shape, s = n[n.length - 1], a = w.computeOptimalWindowSize(s), i = new Ih(n, a, e, o == null), p = o == null ? [t8] : [t8, o], u = r.runWebGLProgram(i, p, \"int32\");\n if (u.shape.length === t8.shape.length) {\n let c = aA(r, t8, e, u);\n return r.disposeIntermediateTensorInfo(u), c;\n }\n return u;\n}\nfunction vh(r, t8, e, o) {\n let n = [e];\n if (w.assertAxesAreInnerMostDims(\"arg\" + o.charAt(0).toUpperCase() + o.slice(1), n, t8.shape.length), !A().getBool(\"WEBGL_PACK_REDUCE\") || t8.shape.length <= 2) {\n let s = [], a = r.texData.get(t8.dataId), i = a !== null && a.isPacked, p = t8;\n i && (p = r.unpackTensor(t8), s.push(p));\n let [u, c] = w.computeOutAndReduceShapes(p.shape, n), l = y.sizeFromShape(c), m = te({ inputs: { x: p }, backend: r, attrs: { shape: [-1, l] } });\n s.push(m);\n let d = sA(r, m, o);\n s.push(d);\n let f = te({ inputs: { x: d }, backend: r, attrs: { shape: u } });\n return s.forEach((h) => r.disposeIntermediateTensorInfo(h)), f;\n }\n return aA(r, t8, o);\n}\nfunction C9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o, a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = Ct({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), w.assertAxesAreInnerMostDims(\"argMax\", [a[0]], p.shape.length);\n let c = vh(e, p, a[0], \"max\");\n return u.forEach((l) => e.disposeIntermediateTensorInfo(l)), c;\n}\nvar iA = { kernelName: Ys, backendName: \"webgl\", kernelFunc: C9 };\nfunction w9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o, a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = Ct({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), w.assertAxesAreInnerMostDims(\"argMin\", [a[0]], p.shape.length);\n let c = vh(e, p, a[0], \"min\");\n return u.forEach((l) => e.disposeIntermediateTensorInfo(l)), c;\n}\nvar uA = { kernelName: Qs, backendName: \"webgl\", kernelFunc: w9 };\nvar S9 = Ut + `\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`;\nvar I9 = xe({ opSnippet: S9 });\nvar pA = { kernelName: qo, backendName: \"webgl\", kernelFunc: I9 };\nvar v9 = Ut + \"return log(x + sqrt(x * x + 1.0));\";\nvar k9 = xe({ opSnippet: v9 });\nvar cA = { kernelName: jo, backendName: \"webgl\", kernelFunc: k9 };\nvar N9 = Ut + `\n return atan(x);\n`;\nvar T9 = xe({ opSnippet: N9 });\nvar lA = { kernelName: Xo, backendName: \"webgl\", kernelFunc: T9 };\nvar _9 = Wc + `\n return atan(a, b);\n`;\nvar $9 = `\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n ` + Xr + `\n return result;\n`;\nvar E9 = nt({ opSnippet: _9, packedOpSnippet: $9 });\nvar mA = { kernelName: Qo, backendName: \"webgl\", kernelFunc: E9 };\nvar R9 = Ut + `\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`;\nvar D9 = xe({ opSnippet: R9 });\nvar dA = { kernelName: Yo, backendName: \"webgl\", kernelFunc: D9 };\nvar Us = class {\n constructor(t8, e, o, n = false, s = false) {\n if (this.variableNames = [\"x\"], e === \"avg\" && o)\n throw new Error(\"Cannot compute positions for average pool.\");\n let a = t8.filterWidth, i = t8.strideHeight, p = t8.strideWidth, u = t8.dilationHeight, c = t8.dilationWidth, l = t8.effectiveFilterHeight, m = t8.effectiveFilterWidth, d = t8.padInfo.top, f = t8.padInfo.left;\n this.outputShape = t8.outShape;\n let h = e === \"avg\", g = `((batch * ${t8.inHeight} + xR) * ${t8.inWidth} + xC) * ${t8.inChannels} + d`, x = `(xR * ${t8.inWidth} + xC) * ${t8.inChannels} + d`, b = \"0.0\";\n if (h || (b = \"-1.0 / 1e-20\"), o) {\n let R = \">=\";\n this.userCode = `\n const ivec2 strides = ivec2(${i}, ${p});\n const ivec2 pads = ivec2(${d}, ${f});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${l};\n wR += ${u}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${R} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${n ? s ? g : x : `wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;\n return;\n }\n let C = \"max\", S = `${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;\n e === \"avg\" && (S = \"avgValue / max(count, 1.0)\");\n let k = Math.floor(a / 4) * 4, _ = a % 4, E = `\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${C}(values, minMaxValue);\n }\n `;\n this.userCode = `\n const ivec2 strides = ivec2(${i}, ${p});\n const ivec2 pads = ivec2(${d}, ${f});\n const float initializationValue = ${b};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${t8.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${l};\n wR += ${u}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${k}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${E}\n }\n\n int xC = xCCorner + ${k};\n if (${_ === 1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${E}\n } else if (${_ === 2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${E}\n } else if (${_ === 3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${E}\n }\n }\n setOutput(${S});\n }\n `;\n }\n};\nvar Iu = class {\n constructor(t8, e, o, n = false, s = false) {\n if (this.variableNames = [\"x\"], e === \"avg\" && o)\n throw new Error(\"Cannot compute positions for average pool.\");\n let a = t8.filterWidth, i = t8.strideDepth, p = t8.strideHeight, u = t8.strideWidth, c = t8.dilationDepth, l = t8.dilationHeight, m = t8.dilationWidth, d = t8.effectiveFilterDepth, f = t8.effectiveFilterHeight, h = t8.effectiveFilterWidth, g = t8.padInfo.front, x = t8.padInfo.top, b = t8.padInfo.left;\n this.outputShape = t8.outShape;\n let C = e === \"avg\", S = \"0.0\";\n if (C || (S = \"-1.0 / 1e-20\"), o) {\n let P = \">=\";\n this.userCode = `\n const ivec3 strides =\n ivec3(${i}, ${p}, ${u});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${d};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t8.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${f};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${P} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${n ? s ? `(((batch * ${t8.inDepth} + xD) * ${t8.inHeight} + xR) * ${t8.inWidth} + xC) * ${t8.inChannels} + ch` : `((xD * ${t8.inHeight} + xR) * ${t8.inWidth} + xC) * ${t8.inChannels} + ch` : `wD * ${f} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;\n return;\n }\n let k = \"max\", _ = `${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;\n e === \"avg\" && (_ = \"avgValue / max(count, 1.0)\");\n let E = Math.floor(a / 4) * 4, R = a % 4, D = `\n if (${C}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${k}(values, minMaxValue);\n }\n `;\n this.userCode = `\n const ivec3 strides =\n ivec3(${i}, ${p}, ${u});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${S};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${t8.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${S});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${d};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t8.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${f};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${E}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${D}\n }\n\n int xC = xCCorner + ${E};\n if (${R === 1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${D}\n } else if (${R === 2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${D}\n } else if (${R === 3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${D}\n }\n }\n }\n setOutput(${_});\n }\n `;\n }\n};\nfunction A9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8;\n Vs(n, \"avgPool\");\n let { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1;\n y.assert(w.eitherStridesOrDilationsAreOne(a, u), () => `Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);\n let c = w.computePool2DInfo(n.shape, s, a, u, i, p);\n if (c.filterWidth === 1 && c.filterHeight === 1 && y.arraysEqual(c.inShape, c.outShape))\n return At({ inputs: { x: n }, backend: e });\n let l = new Us(c, \"avg\", false);\n return e.runWebGLProgram(l, [n], \"float32\");\n}\nvar fA = { kernelName: Zo, backendName: \"webgl\", kernelFunc: A9 };\nfunction F9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p, dataFormat: u } = o, c = [1, 1, 1], l = w.computePool3DInfo(n.shape, s, a, c, i, p, u), m = new Iu(l, \"avg\", false);\n return e.runWebGLProgram(m, [n], \"float32\");\n}\nvar hA = { kernelName: Zs, backendName: \"webgl\", kernelFunc: F9 };\nvar kh = class {\n constructor(t8) {\n this.variableNames = [\"dy\"], this.outputShape = t8.inShape;\n let e = t8.filterHeight, o = t8.filterWidth, n = t8.strideHeight, s = t8.strideWidth, a = t8.dilationHeight, i = t8.dilationWidth, p = t8.effectiveFilterHeight, u = t8.effectiveFilterWidth, c = p - 1 - t8.padInfo.top, l = u - 1 - t8.padInfo.left, m = 1 / (e * o);\n this.userCode = `\n const ivec2 pads = ivec2(${c}, ${l});\n const float avgMultiplier = float(${m});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${p};\n wR += ${a}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${u};\n wC+= ${i}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Nh = class {\n constructor(t8) {\n this.variableNames = [\"dy\"], this.outputShape = t8.inShape;\n let e = t8.filterDepth, o = t8.filterHeight, n = t8.filterWidth, s = t8.strideDepth, a = t8.strideHeight, i = t8.strideWidth, p = t8.dilationDepth, u = t8.dilationHeight, c = t8.dilationWidth, l = t8.effectiveFilterDepth, m = t8.effectiveFilterHeight, d = t8.effectiveFilterWidth, f = l - 1 - t8.padInfo.front, h = m - 1 - t8.padInfo.top, g = d - 1 - t8.padInfo.left, x = 1 / (e * o * n);\n this.userCode = `\n const ivec3 pads = ivec3(${f}, ${h}, ${g});\n const float avgMultiplier = float(${x});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${l};\n wD += ${p}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t8.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${u}) {\n float dyR = float(dyRCorner + wR) / ${a}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${d};\n wC += ${c}) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nfunction P9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s, { filterSize: i, strides: p, pad: u, dimRoundingMode: c } = o, l = [1, 1, 1], m = w.computePool3DInfo(a.shape, i, p, l, u, c), d = new Nh(m);\n return e.runWebGLProgram(d, [n], a.dtype);\n}\nvar gA = { kernelName: Ai, backendName: \"webgl\", kernelFunc: P9 };\nfunction O9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s;\n Vs([n, s], \"avgPoolGrad\");\n let { filterSize: i, strides: p, pad: u } = o, c = w.computePool2DInfo(a.shape, i, p, 1, u), l = new kh(c);\n return e.runWebGLProgram(l, [n], a.dtype);\n}\nvar xA = { kernelName: Di, backendName: \"webgl\", kernelFunc: O9 };\nfunction M9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s } = t8, { transposeA: a, transposeB: i } = o;\n return _p({ a: n, b: s, transposeA: a, transposeB: i, backend: e });\n}\nvar yA = { kernelName: Jo, backendName: \"webgl\", kernelFunc: M9 };\nvar Th = class {\n constructor(t8, e, o, n, s, a) {\n this.outputShape = [], this.variableNames = [\"x\", \"mean\", \"variance\"], w.assertAndGetBroadcastShape(t8, e), w.assertAndGetBroadcastShape(t8, o);\n let i = \"0.0\";\n n != null && (w.assertAndGetBroadcastShape(t8, n), this.variableNames.push(\"offset\"), i = \"getOffsetAtOutCoords()\");\n let p = \"1.0\";\n s != null && (w.assertAndGetBroadcastShape(t8, s), this.variableNames.push(\"scale\"), p = \"getScaleAtOutCoords()\"), this.outputShape = t8, this.userCode = `\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${i};\n float scale = ${p};\n float inv = scale * inversesqrt(variance + float(${a}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `;\n }\n};\nvar _h = class {\n constructor(t8, e, o, n, s, a) {\n this.packedInputs = true, this.packedOutput = true, this.variableNames = [\"x\", \"mean\", \"variance\"], w.assertAndGetBroadcastShape(t8, e), w.assertAndGetBroadcastShape(t8, o);\n let i = \"vec4(0.0)\";\n n != null && (w.assertAndGetBroadcastShape(t8, n), this.variableNames.push(\"offset\"), i = \"getOffsetAtOutCoords()\");\n let p = \"vec4(1.0)\";\n s != null && (w.assertAndGetBroadcastShape(t8, s), this.variableNames.push(\"scale\"), p = \"getScaleAtOutCoords()\"), this.outputShape = t8, this.userCode = `\n void main() {\n vec4 offset = ${i};\n vec4 scale = ${p};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${a}));\n\n setOutput((x - mean) * inv + offset);\n }\n `;\n }\n};\nvar L9 = ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o, mean: n, variance: s, offset: a, scale: i } = r;\n y.assert(n.shape.length === s.shape.length, () => \"Batch normalization gradient requires mean and variance to have equal ranks.\"), y.assert(a == null || n.shape.length === a.shape.length, () => \"Batch normalization gradient requires mean and offset to have equal ranks.\"), y.assert(i == null || n.shape.length === i.shape.length, () => \"Batch normalization gradient requires mean and scale to have equal ranks.\");\n let { varianceEpsilon: p } = e;\n p == null && (p = 1e-3);\n let u = [o, n, s], c = null;\n a != null && (c = a.shape, u.push(a));\n let l = null;\n i != null && (l = i.shape, u.push(i));\n let m = A().getBool(\"WEBGL_PACK_NORMALIZATION\") ? new _h(o.shape, n.shape, s.shape, c, l, p) : new Th(o.shape, n.shape, s.shape, c, l, p);\n return t8.runWebGLProgram(m, u, u[0].dtype);\n};\nvar bA = { kernelName: vn, backendName: \"webgl\", kernelFunc: L9 };\nvar $h = class {\n constructor(t8) {\n this.variableNames = [\"source\"], this.outputShape = t8, this.rank = t8.length;\n let e = Re(this.rank);\n this.customUniforms = [{ name: \"start\", arrayIndex: this.rank, type: \"int\" }];\n let o = B9(this.rank), n, s = t8.map((a, i) => `sourceLoc.${bv[i]} = start[${i}] + coords.${bv[i]};`);\n n = `\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `, this.userCode = `\n void main() {\n ${n}\n setOutput(getSource(${o}));\n }\n `;\n }\n};\nvar bv = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"];\nfunction B9(r) {\n if (r === 1)\n return \"sourceLoc\";\n if (r <= 6)\n return bv.slice(0, r).map((t8) => \"sourceLoc.\" + t8).join(\",\");\n throw Error(`Slicing for rank ${r} is not yet supported`);\n}\nvar Eh = class {\n constructor(t8) {\n this.variableNames = [\"source\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = t8, this.rank = t8.length, this.customUniforms = [{ name: \"start\", arrayIndex: this.rank, type: \"int\" }];\n let e = Re(this.rank), o = Dt(\"coords\", this.rank), n = Dt(\"sourceLoc\", this.rank), s = this.rank === 1 ? \"sourceLoc\" : `vec2(${n.slice(-2).join()})`, a = `getChannel(getSource(${n.join()}), ${s})`, i = `\n result.x = ${a};\n if (++${o[this.rank - 1]} < ${t8[this.rank - 1]}) {\n ++${n[this.rank - 1]};\n result.y = ${a};\n --${n[this.rank - 1]};\n }\n `, p = this.rank === 1 ? \"\" : `\n --${o[this.rank - 1]};\n if (++${o[this.rank - 2]} < ${t8[this.rank - 2]}) {\n ++${n[this.rank - 2]};\n result.z = ${a};\n if (++${o[this.rank - 1]} < ${t8[this.rank - 1]}) {\n ++${n[this.rank - 1]};\n result.w = ${a};\n }\n }\n `, u = this.rank <= 4 ? `sourceLoc = coords +\n ${e}(${t8.map((c, l) => `start[${l}]`).join()});` : t8.map((c, l) => `${n[l]} = ${o[l]} + start[${l}];`).join(`\n`);\n this.userCode = `\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${u}\n vec4 result = vec4(0.);\n ${i}\n ${p}\n setOutput(result);\n }\n `;\n }\n};\nfunction z9(r, t8, e, o) {\n let n = o.texData.get(r.dataId), s = o.makeTensorInfo(e, r.dtype), a = o.texData.get(s.dataId);\n Object.assign(a, n), a.refCount = 1, a.shape = e, a.dtype = r.dtype;\n let i = ct.computeFlatOffset(t8, y.computeStrides(r.shape));\n n.slice && (i += n.slice.flatOffset), a.slice = { flatOffset: i, origDataId: n.slice && n.slice.origDataId || r.dataId };\n let p = o.dataRefCount.get(a.slice.origDataId) || 1;\n return o.dataRefCount.set(a.slice.origDataId, p + 1), s;\n}\nfunction Gs(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, size: a } = o, [i, p] = ct.parseSliceParams(n, s, a);\n if (ct.assertParamsValid(n, i, p), y.sizeFromShape(p) === 0)\n return e.makeTensorInfo(p, n.dtype, []);\n if (e.shouldExecuteOnCPU([n]) || n.dtype === \"string\") {\n let l = e.texData.get(n.dataId), m = pD(l.values, i, p, n.shape, n.dtype);\n return e.makeTensorInfo(p, n.dtype, m);\n }\n let { isPacked: u } = e.texData.get(n.dataId), c = ct.isSliceContinous(n.shape, i, p);\n if (u || !c) {\n let l = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") ? new Eh(p) : new $h(p), m = [i];\n return e.runWebGLProgram(l, [n], n.dtype, m);\n }\n return e.uploadToGPU(n.dataId), z9(n, i, p, e);\n}\nvar CA = { kernelName: ha, backendName: \"webgl\", kernelFunc: Gs };\nvar V9 = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, crops: a } = o;\n y.assert(n.shape.length <= 4, () => \"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");\n let i = s.reduce((b, C) => b * C), p = w.getReshaped(n.shape, s, i), u = w.getPermuted(p.length, s.length), c = w.getReshapedPermuted(n.shape, s, i), l = w.getSliceBeginCoords(a, s.length), m = w.getSliceSize(c, a, s.length), d = [], f = te({ inputs: { x: n }, backend: e, attrs: { shape: p } }), h = Ct({ inputs: { x: f }, backend: e, attrs: { perm: u } }), g = te({ inputs: { x: h }, backend: e, attrs: { shape: c } }), x = Gs({ inputs: { x: g }, backend: e, attrs: { begin: l, size: m } });\n return d.push(f), d.push(h), d.push(g), d.forEach((b) => e.disposeIntermediateTensorInfo(b)), x;\n};\nvar wA = { kernelName: Js, backendName: \"webgl\", kernelFunc: V9 };\nfunction W9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a } = o, i = e.readSync(n.dataId), p = e.readSync(s.dataId), u = ph(i, p, s.dtype, s.shape, a);\n return e.makeTensorInfo([a], s.dtype, u);\n}\nvar SA = { kernelName: en, backendName: \"webgl\", kernelFunc: W9 };\nvar U9 = `\n int r = int(a.r) & int(b.r);\n int g = int(a.g) & int(b.g);\n int rb = int(a.b) & int(b.b);\n int ra = int(a.a) & int(b.a);\n return vec4(r, g, rb, ra);\n`;\nvar G9 = `\n return float(int(a.r) & int(b.r));\n`;\nfunction H9(r) {\n let { inputs: t8, backend: e } = r, { a: o, b: n } = t8, s = A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\"), a = A().getNumber(\"WEBGL_VERSION\");\n if (e.shouldExecuteOnCPU([o, n]) || a === 1) {\n let p = e.texData.get(o.dataId).values, u = e.texData.get(n.dataId).values, [c, l] = AR(o.shape, n.shape, p, u, o.dtype), m = e.makeTensorInfo(l, o.dtype), d = e.texData.get(m.dataId);\n return d.values = c, m;\n }\n let i;\n return s ? i = new jr(U9, o.shape, n.shape, false) : i = new Pr(G9, o.shape, n.shape), e.runWebGLProgram(i, [o, n], o.dtype);\n}\nvar IA = { kernelName: ja, backendName: \"webgl\", kernelFunc: H9 };\nfunction K9(r) {\n let { inputs: t8, backend: e } = r, { s0: o, s1: n } = t8, s = e.readSync(o.dataId), a = e.readSync(n.dataId), i = w.assertAndGetBroadcastShape(Array.from(s), Array.from(a));\n return e.makeTensorInfo([i.length], \"int32\", Int32Array.from(i));\n}\nvar vA = { kernelName: ea, backendName: \"webgl\", kernelFunc: K9 };\nvar q9 = \"return float(a != b);\";\nvar Cv = nt({ opSnippet: q9, cpuKernelImpl: eD, dtype: \"bool\" });\nvar kA = { kernelName: Qn, backendName: \"webgl\", kernelFunc: Cv };\nfunction wi(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.texData.get(o.dataId);\n return At({ inputs: { x: n.complexTensorInfos.real }, backend: e });\n}\nvar NA = { kernelName: qi, backendName: \"webgl\", kernelFunc: wi };\nvar j9 = \"return float(int(x));\";\nfunction TA(r, t8) {\n let e = new or(r.shape, j9), o = t8.runWebGLProgram(e, [r], \"int32\");\n return { dataId: o.dataId, shape: o.shape, dtype: o.dtype };\n}\nfunction wv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dtype: s } = o;\n if (s === \"complex64\") {\n if (n.dtype === \"complex64\")\n return At({ inputs: { x: n }, backend: e });\n let a = Gr(n.shape), i = wv({ inputs: { x: n }, backend: e, attrs: { dtype: \"float32\" } }), p = Or({ inputs: { real: i, imag: a }, backend: e });\n return a.dispose(), e.disposeIntermediateTensorInfo(i), p;\n }\n if (n.dtype === \"complex64\") {\n let a = wi({ inputs: { input: n }, backend: e }), i = wv({ inputs: { x: a }, backend: e, attrs: { dtype: s } });\n return e.disposeIntermediateTensorInfo(a), i;\n }\n if (!y.hasEncodingLoss(n.dtype, s)) {\n let a = At({ inputs: { x: n }, backend: e });\n return { dataId: a.dataId, shape: a.shape, dtype: s };\n }\n if (e.shouldExecuteOnCPU([n])) {\n let a = e.texData.get(n.dataId).values, [i, p, u] = FR(a, n.shape, n.dtype, s);\n return e.makeTensorInfo(i, p, u);\n }\n if (s === \"int32\")\n return TA(n, e);\n if (s === \"bool\") {\n let a = e.makeTensorInfo([], \"bool\", y.getTypedArrayFromDType(\"bool\", 1)), p = Cv({ inputs: { a: n, b: a }, backend: e });\n return e.disposeIntermediateTensorInfo(a), p;\n }\n throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`);\n}\nvar _A = { kernelName: bo, backendName: \"webgl\", kernelFunc: wv };\nvar $A = \"return ceil(x);\";\nvar X9 = xe({ opSnippet: $A, packedOpSnippet: $A, cpuKernelImpl: PR });\nvar EA = { kernelName: tn, backendName: \"webgl\", kernelFunc: X9 };\nvar Rh = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.customUniforms = [{ name: \"minVal\", type: \"float\" }, { name: \"maxVal\", type: \"float\" }], this.outputShape = t8, this.userCode = `\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n `;\n }\n};\nvar Dh = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"minVal\", type: \"float\" }, { name: \"maxVal\", type: \"float\" }], this.outputShape = t8, this.userCode = `\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n `;\n }\n};\nfunction Y9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { clipValueMin: s, clipValueMax: a } = o, i;\n A().getBool(\"WEBGL_PACK_CLIP\") ? i = new Dh(n.shape) : i = new Rh(n.shape);\n let p = [[s], [a]];\n return e.runWebGLProgram(i, [n], n.dtype, p);\n}\nvar RA = { kernelName: Co, backendName: \"webgl\", kernelFunc: Y9 };\nvar Ah = class {\n constructor(t8) {\n this.variableNames = [\"real\", \"imag\"], this.outputShape = t8, this.userCode = `\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n `;\n }\n};\nfunction DA(r, t8) {\n return { dataId: t8.dataId, dtype: t8.dtype, shape: r.shape };\n}\nfunction Q9(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = e.texData.get(o.dataId), s = new Ah(o.shape), a = [DA(o, n.complexTensorInfos.real), DA(o, n.complexTensorInfos.imag)];\n return e.runWebGLProgram(s, a, a[0].dtype);\n}\nvar AA = { kernelName: Pi, backendName: \"webgl\", kernelFunc: Q9 };\nvar Fh = class {\n constructor(t8) {\n this.outputShape = [], this.outputShape = w.computeOutShape(t8, 1), this.variableNames = t8.map((a, i) => `T${i}`);\n let e = new Array(t8.length - 1);\n e[0] = t8[0][1];\n for (let a = 1; a < e.length; a++)\n e[a] = e[a - 1] + t8[a][1];\n let o = [`if (yC < ${e[0]}) setOutput(getT0(yR, yC));`];\n for (let a = 1; a < e.length; a++) {\n let i = e[a - 1];\n o.push(`else if (yC < ${e[a]}) setOutput(getT${a}(yR, yC-${i}));`);\n }\n let n = e.length, s = e[e.length - 1];\n o.push(`else setOutput(getT${n}(yR, yC-${s}));`), this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n int yR = coords.x;\n int yC = coords.y;\n\n ${o.join(`\n `)}\n }\n `;\n }\n};\nvar Oh = class {\n constructor(t8, e) {\n this.packedInputs = true, this.packedOutput = true, this.outputShape = [], this.outputShape = w.computeOutShape(t8, e);\n let o = this.outputShape, n = o.length, s = Re(n), a = Dt(\"coords\", n), i = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"].slice(0, n);\n this.variableNames = t8.map((h, g) => `T${g}`);\n let p = new Array(t8.length - 1);\n p[0] = t8[0][e];\n for (let h = 1; h < p.length; h++)\n p[h] = p[h - 1] + t8[h][e];\n let u = i[e], c = i.slice(-2), l = i.join(), m = `if (${u} < ${p[0]}) {\n return getChannel(\n getT0(${l}), vec2(${c.join()}));\n }`;\n for (let h = 1; h < p.length; h++) {\n let g = p[h - 1];\n m += `\n if (${u} < ${p[h]} && ${u} >= ${p[h - 1]}) {\n return getChannel(\n getT${h}(${Ph(i, u, g)}),\n vec2(${Ph(c, u, g)}));\n }`;\n }\n let d = p.length, f = p[p.length - 1];\n m += `\n return getChannel(\n getT${d}(${Ph(i, u, f)}),\n vec2(${Ph(c, u, f)}));`, this.userCode = `\n float getValue(${i.map((h) => \"int \" + h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${a}), 0., 0., 0.);\n\n ${a[n - 1]} = ${a[n - 1]} + 1;\n if (${a[n - 1]} < ${o[n - 1]}) {\n result.g = getValue(${a});\n }\n\n ${a[n - 2]} = ${a[n - 2]} + 1;\n if (${a[n - 2]} < ${o[n - 2]}) {\n result.a = getValue(${a});\n }\n\n ${a[n - 1]} = ${a[n - 1]} - 1;\n if (${a[n - 2]} < ${o[n - 2]} &&\n ${a[n - 1]} < ${o[n - 1]}) {\n result.b = getValue(${a});\n }\n setOutput(result);\n }\n `;\n }\n};\nfunction Ph(r, t8, e) {\n let o = r.indexOf(t8);\n return r.map((s, a) => a === o ? `${s} - ${e}` : s).join();\n}\nfunction $p(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.texData.get(o.dataId);\n return At({ inputs: { x: n.complexTensorInfos.imag }, backend: e });\n}\nvar FA = { kernelName: Gi, backendName: \"webgl\", kernelFunc: $p };\nfunction Gc(r, t8, e) {\n let o = r[0].dtype;\n if (o === \"complex64\") {\n let d = r.map((b) => wi({ inputs: { input: b }, backend: e })), f = r.map((b) => $p({ inputs: { input: b }, backend: e })), h = Gc(d, t8, e), g = Gc(f, t8, e), x = Or({ inputs: { real: h, imag: g }, backend: e });\n return d.forEach((b) => e.disposeIntermediateTensorInfo(b)), f.forEach((b) => e.disposeIntermediateTensorInfo(b)), e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(g), x;\n }\n let n = e.shouldExecuteOnCPU(r);\n if (o === \"string\" && (n = true), n) {\n let d = r.map((S) => {\n let _ = [-1, y.sizeFromShape(S.shape.slice(t8))];\n return te({ inputs: { x: S }, backend: e, attrs: { shape: _ } });\n }), f = d.map((S) => ({ vals: e.readSync(S.dataId), shape: S.shape })), h = w.computeOutShape(d.map((S) => S.shape), 1), g = d[0].shape[0] === 1, x = OR(f, h, o, g), b = w.computeOutShape(r.map((S) => S.shape), t8), C = e.makeTensorInfo(b, o, x);\n return d.forEach((S) => e.disposeIntermediateTensorInfo(S)), C;\n }\n let s = r.filter((d) => y.sizeFromShape(d.shape) > 0), a = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") && s[0].shape.length > 1;\n if (s.length === 1) {\n let d = a ? new or(r[0].shape, Ba) : new Fr(r[0].shape, Ba);\n return e.runWebGLProgram(d, r, o);\n }\n let i = A().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");\n if (s.length > i) {\n let d = [];\n for (let h = 0; h < s.length; h += i) {\n let g = s.slice(h, h + i);\n d.push(Gc(g, t8, e));\n }\n let f = Gc(d, t8, e);\n for (let h of d)\n e.disposeIntermediateTensorInfo(h);\n return f;\n }\n if (a) {\n let d = new Oh(s.map((f) => f.shape), t8);\n return e.runWebGLProgram(d, s, o);\n }\n let { tensors2D: p, outShape: u } = Z9(s, t8, e), c = new Fh(p.map((d) => d.shape)), l = e.runWebGLProgram(c, p, o);\n p.forEach((d) => e.disposeIntermediateTensorInfo(d));\n let m = te({ inputs: { x: l }, attrs: { shape: u }, backend: e });\n return e.disposeIntermediateTensorInfo(l), m;\n}\nfunction Z9(r, t8, e) {\n let o = w.computeOutShape(r.map((s) => s.shape), t8);\n return { tensors2D: r.map((s) => te({ inputs: { x: s }, attrs: { shape: [-1, y.sizeFromShape(s.shape.slice(t8))] }, backend: e })), outShape: o };\n}\nfunction Sv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o, s = y.parseAxisParam(n, t8[0].shape)[0], a = t8.map((u) => u.shape);\n w.assertParamsConsistent(a, s);\n let i = w.computeOutShape(t8.map((u) => u.shape), s);\n if (y.sizeFromShape(i) === 0)\n return e.makeTensorInfo(i, t8[0].dtype, []);\n let p = t8.filter((u) => y.sizeFromShape(u.shape) > 0);\n return p.length === 1 ? At({ inputs: { x: p[0] }, backend: e }) : Gc(p, s, e);\n}\nvar PA = { kernelName: ta, backendName: \"webgl\", kernelFunc: Sv };\nvar Hc = class {\n constructor(t8, e = false, o = null, n = false, s = false) {\n this.variableNames = [\"x\", \"W\"], this.outputShape = t8.outShape;\n let a = t8.padInfo.top, i = t8.padInfo.left, p = t8.strideHeight, u = t8.strideWidth, c = t8.dilationHeight, l = t8.dilationWidth, m = t8.filterHeight, d = t8.filterWidth, f = Math.floor(t8.inChannels / 4) * 4, h = t8.inChannels % 4, g = t8.dataFormat === \"channelsLast\", x = g ? 1 : 2, b = g ? 2 : 3, C = g ? 3 : 1, S = \"\", k = \"\";\n o && (n ? S = `float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${o}\n }` : s ? S = `float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${o}\n }` : S = `\n float activation(float x) {\n ${o}\n }\n `, k = \"result = activation(result);\");\n let _ = e ? \"result += getBiasAtOutCoords();\" : \"\";\n e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), s && this.variableNames.push(\"leakyreluAlpha\"), this.userCode = `\n ${S}\n\n const ivec2 strides = ivec2(${p}, ${u});\n const ivec2 pads = ivec2(${a}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${C}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${d}; wC++) {\n int xC = xCCorner + wC * ${l};\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${f}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${g}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${h === 1}) {\n\n if (${g}) {\n dotProd +=\n getX(batch, xR, xC, ${f}) *\n getW(wR, wC, ${f}, d2);\n } else {\n dotProd +=\n getX(batch, ${f}, xR, xC) *\n getW(wR, wC, ${f}, d2);\n }\n\n } else if (${h === 2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${f}, d2),\n getW(wR, wC, ${f} + 1, d2)\n );\n\n if (${g}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${f}),\n getX(batch, xR, xC, ${f} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${f}, xR, xC),\n getX(batch, ${f} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${h === 3}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${f}, d2),\n getW(wR, wC, ${f} + 1, d2),\n getW(wR, wC, ${f} + 2, d2)\n );\n\n if (${g}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${f}),\n getX(batch, xR, xC, ${f} + 1),\n getX(batch, xR, xC, ${f} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${f}, xR, xC),\n getX(batch, ${f} + 1, xR, xC),\n getX(batch, ${f} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${_}\n ${k}\n setOutput(result);\n }\n `;\n }\n};\nvar Mh = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"W\"], this.outputShape = t8.outShape;\n let e = t8.padInfo.front, o = t8.padInfo.top, n = t8.padInfo.left, s = t8.strideDepth, a = t8.strideHeight, i = t8.strideWidth, p = t8.dilationDepth, u = t8.dilationHeight, c = t8.dilationWidth, l = t8.filterDepth, m = t8.filterHeight, d = t8.filterWidth, f = Math.floor(t8.inChannels / 4) * 4, h = t8.inChannels % 4;\n this.userCode = `\n const ivec3 strides = ivec3(${s}, ${a}, ${i});\n const ivec3 pads = ivec3(${e}, ${o}, ${n});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${l}; wF++) {\n int xF = xFCorner + wF * ${p};\n\n if (xF < 0 || xF >= ${t8.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${u};\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${d}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${f}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${h === 1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${f}) *\n getW(wF, wR, wC, ${f}, d2);\n } else if (${h === 2}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${f}),\n getX(batch, xF, xR, xC, ${f} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${f}, d2),\n getW(wF, wR, wC, ${f} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${h === 3}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${f}),\n getX(batch, xF, xR, xC, ${f} + 1),\n getX(batch, xF, xR, xC, ${f} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${f}, d2),\n getW(wF, wR, wC, ${f} + 1, d2),\n getW(wF, wR, wC, ${f} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Kc = class {\n constructor(t8, e = false, o = null, n = false, s = false) {\n this.variableNames = [\"x\", \"W\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"pads\", type: \"ivec2\" }, { name: \"strides\", type: \"ivec2\" }, { name: \"dilations\", type: \"ivec2\" }, { name: \"inDims\", type: \"ivec2\" }], this.outputShape = t8.outShape, this.enableShapeUniforms = pt(this.outputShape.length);\n let a = t8.padInfo.left, i = t8.strideWidth, p = t8.dilationWidth, u = t8.filterHeight, c = t8.filterWidth, l = c, m = `\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;\n for (let g = 0; g < c; g++)\n m += `\n vec4 xTexelC${g * 2};\n int xTexelC${g * 2}Ready;\n vec4 xTexelC${g * 2 + 1};\n int xTexelC${g * 2 + 1}Ready;\n vec4 xC${g};`;\n m += `\n for (int r = 0; r < ${u}; r++) {\n for (int d1 = 0; d1 < ${t8.inChannels}; d1 += 2) {\n `;\n for (let g = 0; g < c; g++)\n m += `\n xTexelC${g * 2} = vec4(0.0);\n xTexelC${g * 2}Ready = 0;\n xTexelC${g * 2 + 1} = vec4(0.0);\n xTexelC${g * 2 + 1}Ready = 0;\n xC${g} = vec4(0.0);`;\n m += `\n xR = xRCorner + r * dilations[0];\n if (xR >=0 && xR < inDims[0]) {\n `;\n for (let g = 0; g < (l + 1) / 2; g++) {\n let x = g * 2;\n if (m += `\n xC = xCCorner + ${x * p};\n `, i === 1) {\n if (x < c && (a % 2 === 1 ? (m += `\n xCOffset = xC + 1;\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `, p === 1 && x > 0 ? m += `\n xC${x} = vec4(xTexelC${x - 2}.zw, xTexelC${x}.xy);\n ` : m += `\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `) : m += `\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `, x + 1 < c)) {\n let b = a % 2 === 0 ? y.nearestLargerEven(p) : p;\n p % 2 === 0 && a % 2 === 1 || p % 2 !== 0 && a % 2 !== 1 ? (m += `\n xCOffset = xC + imod(pads[1], 2) + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x + 1}Ready == 0) {\n xTexelC${x + 1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x + 1}.zw = vec2(0.0);\n }\n xTexelC${x + 1}Ready = 1;\n }\n `, p > 1 ? m += `\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x + 1} = vec4(previous.zw, xTexelC${x + 1}.xy);\n } else {\n xC${x + 1} = vec4(0.0, 0.0, xTexelC${x + 1}.xy);\n }\n ` : m += `\n xC${x + 1} = vec4(xTexelC${x}.zw, xTexelC${x + 1}.xy);\n `) : b === 1 ? m += `\n xC${x + 1} = xTexelC${x};\n ` : m += `\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x + 1}Ready == 0) {\n xTexelC${x + 1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x + 1}.zw = vec2(0.0);\n }\n xTexelC${x + 1}Ready = 1;\n }\n\n xC${x + 1} = xTexelC${x + 1};\n `;\n }\n } else\n x < c && (a % 2 === 1 ? (m += `\n xCOffset = xC + 1 - strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x + 1}Ready == 0) {\n xTexelC${x + 1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x + 1}.zw = vec2(0.0);\n }\n xTexelC${x + 1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x + 1}.zw);\n `, x + 1 < c && (m += `\n final = vec4(0.0);\n xCOffset = xC + 1 + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x + 1} = vec4(xTexelC${x + 1}.xy, final.xy);\n `)) : (m += `\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x + 1}Ready == 0) {\n xTexelC${x + 1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x + 1}.zw = vec2(0.);\n }\n xTexelC${x + 1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x + 1}.xy);\n `, x + 1 < c && (m += `\n xC${x + 1} = vec4(xTexelC${x}.zw, xTexelC${x + 1}.zw);\n `)));\n x < c && (m += `\n wTexel = getW(r, ${x}, d1, d2);\n dotProd += xC${x}.xxzz * vec4(wTexel.xy, wTexel.xy);\n if(d1 + 1 < ${t8.inChannels}) {\n dotProd += xC${x}.yyww * vec4(wTexel.zw, wTexel.zw);\n }\n `, x + 1 < c && (m += `\n wTexel = getW(r, ${x + 1}, d1, d2);\n dotProd += xC${x + 1}.xxzz * vec4(wTexel.xy, wTexel.xy);\n if(d1 + 1 < ${t8.inChannels}) {\n dotProd += xC${x + 1}.yyww * vec4(wTexel.zw, wTexel.zw);\n }\n `));\n }\n m += `\n }\n `, m += `\n }\n `, m += `\n }\n `;\n let d = \"\", f = \"\";\n o && (n ? d = `vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${o}\n }` : s ? d = `vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${o}\n }` : d = `vec4 activation(vec4 x) {\n ${o}\n }`, f = \"result = activation(result);\");\n let h = e ? \"result += getBiasAtOutCoords();\" : \"\";\n e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), s && this.variableNames.push(\"leakyreluAlpha\"), this.userCode = `\n ${d}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss.\n vec4 dotProd = vec4(0.000000000000001);\n\n ${m}\n\n vec4 result = dotProd - vec4(0.000000000000001);\n ${h}\n ${f}\n setOutput(result);\n }\n `;\n }\n};\nvar Lh = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"inputShape\", type: \"ivec4\" }, { name: \"pad\", type: \"ivec2\" }, { name: \"stride\", type: \"ivec2\" }, { name: \"dilation\", type: \"ivec2\" }, { name: \"inChannels\", type: \"int\" }, { name: \"itemsPerBlockRow\", type: \"int\" }, { name: \"outWidth\", type: \"int\" }], this.outputShape = t8, this.enableShapeUniforms = pt(this.outputShape.length);\n let { dataFormat: o } = e, n = vt(), s = o === \"channelsLast\", a = s ? 1 : 2, i = s ? 2 : 3, p = this.enableShapeUniforms ? \"if(blockIndex < outShape[2] && pos < outShape[1]) {\" : `if(blockIndex < ${t8[2]} && pos < ${t8[1]}) {`, u = \"\";\n for (let c = 0; c <= 1; c++)\n for (let l = 0; l <= 1; l++)\n u += `\n blockIndex = rc.z + ${l};\n pos = rc.y + ${c};\n\n ${p}\n offsetY = int(blockIndex / outWidth) * stride[0] - pad[0];\n d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow);\n\n if(d0 < inputShape[${a}] && d0 >= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${i}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c * 2 + l}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c * 2 + l}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;\n this.userCode = `\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${u}\n\n ${n.output} = result;\n }\n `;\n }\n};\nfunction Bh(r, t8) {\n let e = r.length;\n return e >= 3 ? t8 ? [...r.slice(0, -3), r[e - 3] * r[e - 2], r[e - 1]] : [...r.slice(0, -3), r[e - 3], r[e - 2] * r[e - 1]] : !t8 && e === 1 && r[0] > 1 ? [r[0], 1] : null;\n}\nfunction zh({ x: r, filter: t8, convInfo: e, backend: o, bias: n = null, preluActivationWeights: s = null, leakyreluAlpha: a = 0, activation: i = null }) {\n let p = r.shape, u = o.texData.get(r.dataId), c = e.inChannels, l = p[0] * p[1] * p[2], m = e.outChannels, d = e.dataFormat === \"channelsLast\", f = false, h = false, g, x = [];\n if (s != null) {\n let S = Bh(s.shape, d);\n S != null && (s = te({ inputs: { x: s }, backend: o, attrs: { shape: S } }), x.push(s));\n }\n if (n != null) {\n let S = Bh(n.shape, d);\n S != null && (n = te({ inputs: { x: n }, backend: o, attrs: { shape: S } }), x.push(n));\n }\n if (!((l === 1 || m === 1) && c > yv) && u.isPacked && d && u.texture != null && p[2] % 2 !== 0 && y.arraysEqual(u.shape.slice(-3), p.slice(-3))) {\n let S = p[0] * p[1] * (p[2] + 1), k = { dataId: r.dataId, shape: [1, S, e.inChannels], dtype: r.dtype }, _ = u.shape;\n u.shape = u.shape.slice(), u.shape[u.shape.length - 2]++, y.assert(Cu(u.shape, k.shape), () => `packed reshape ${u.shape} to ${k.shape} isn't free`);\n let E = te({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, e.inChannels, e.outChannels] } });\n x.push(E);\n let R = _p({ a: k, b: E, backend: o, transposeA: f, transposeB: h, bias: n, activation: i, preluActivationWeights: s, leakyreluAlpha: a }), D = o.texData.get(R.dataId);\n y.assert(D.isPacked, () => \"batchMatMul result is expected to be packed\"), u.shape = _, D.shape = e.outShape, g = At({ inputs: { x: R }, backend: o }), g.shape = e.outShape, x.push(R);\n } else {\n let S = e.outHeight * e.outWidth, k = te({ inputs: { x: r }, backend: o, attrs: { shape: d ? [e.batchSize, S, e.inChannels] : [e.batchSize, e.inChannels, S] } }), _ = te({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, e.inChannels, e.outChannels] } }), E = _p({ a: d ? k : _, b: d ? _ : k, transposeA: !d, transposeB: h, backend: o, bias: n, activation: i, preluActivationWeights: s, leakyreluAlpha: a });\n g = te({ inputs: { x: E }, backend: o, attrs: { shape: e.outShape } }), x.push(k), x.push(_), x.push(E);\n }\n for (let S of x)\n o.disposeIntermediateTensorInfo(S);\n return g;\n}\nfunction Vh({ x: r, filter: t8, convInfo: e, backend: o, bias: n = null, preluActivationWeights: s = null, leakyreluAlpha: a = 0, activation: i = null }) {\n let { filterWidth: p, filterHeight: u, inChannels: c, outWidth: l, outHeight: m, dataFormat: d } = e, f = d === \"channelsLast\", h = p * u * c, g = m * l, x = [e.batchSize, h, g], b = true, C = false, S = [];\n if (s != null) {\n let q = Bh(s.shape, f);\n q != null && (s = te({ inputs: { x: s }, backend: o, attrs: { shape: q } }), S.push(s));\n }\n if (n != null) {\n let q = Bh(n.shape, f);\n q != null && (n = te({ inputs: { x: n }, backend: o, attrs: { shape: q } }), S.push(n));\n }\n let k = te({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, h, y.sizeFromShape(t8.shape) / h] } });\n S.push(k);\n let _ = new Lh(x, e), E = [r.shape, [e.padInfo.top, e.padInfo.left], [e.strideHeight, e.strideWidth], [e.dilationHeight, e.dilationWidth], [e.inChannels], [e.filterWidth * e.inChannels], [e.outWidth]], R = o.runWebGLProgram(_, [r], \"float32\", E), D = te({ inputs: { x: R }, backend: o, attrs: { shape: x } });\n S.push(R), S.push(D);\n let P = n != null, O = s != null, M = i === \"leakyrelu\", L = i ? Ci(i, true) : null, B = new Uc(f ? D.shape : k.shape, f ? k.shape : D.shape, f ? [e.batchSize, g, e.outChannels] : [e.batchSize, e.outChannels, g], b, C, P, L, O, M), z = f ? [D, k] : [k, D];\n if (n && z.push(n), O && z.push(s), M) {\n let q = o.makeTensorInfo([], \"float32\", y.createScalarValue(a, \"float32\"));\n z.push(q), S.push(q);\n }\n let U = o.runWebGLProgram(B, z, \"float32\"), j = te({ inputs: { x: U }, backend: o, attrs: { shape: e.outShape } });\n S.push(U);\n for (let q of S)\n o.disposeIntermediateTensorInfo(q);\n return j;\n}\nfunction J9(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dataFormat: p, dilations: u, dimRoundingMode: c } = o, l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, s.shape, a, u, i, c, false, l), d;\n if (m.filterHeight === 1 && m.filterWidth === 1 && m.dilationHeight === 1 && m.dilationWidth === 1 && m.strideHeight === 1 && m.strideWidth === 1 && (m.padInfo.type === \"SAME\" || m.padInfo.type === \"VALID\"))\n d = zh({ x: n, filter: s, convInfo: m, backend: e });\n else if (m.strideWidth <= 2 && l === \"channelsLast\" && A().getBool(\"WEBGL_EXP_CONV\")) {\n let h = new Kc(m), g = [[m.padInfo.top, m.padInfo.left], [m.strideHeight, m.strideWidth], [m.dilationHeight, m.dilationWidth], [m.inHeight, m.inWidth]];\n d = e.runWebGLProgram(h, [n, s], \"float32\", g);\n } else if (A().getBool(\"WEBGL_CONV_IM2COL\"))\n d = Vh({ x: n, filter: s, convInfo: m, backend: e });\n else {\n let h = new Hc(m);\n d = e.runWebGLProgram(h, [n, s], \"float32\");\n }\n let f = te({ inputs: { x: d }, backend: e, attrs: { shape: m.outShape } });\n return e.disposeIntermediateTensorInfo(d), f;\n}\nvar OA = { kernelName: rn, backendName: \"webgl\", kernelFunc: J9 };\nvar Wh = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.outputShape = t8.filterShape;\n let e = t8.strideHeight, o = t8.strideWidth, n = t8.padInfo.top, s = t8.padInfo.left, a = t8.dataFormat === \"channelsLast\";\n this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t8.batchSize}; b++) {\n for (int yR = 0; yR < ${t8.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${n};\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t8.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${s};\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n ${a ? `float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);` : `float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);`}\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Uh = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.outputShape = t8.inShape;\n let e = t8.filterHeight, o = t8.filterWidth, n = t8.strideHeight, s = t8.strideWidth, a = t8.dataFormat === \"channelsLast\", i = e - 1 - t8.padInfo.top, p = o - 1 - t8.padInfo.left, u = a ? 1 : 2, c = a ? 2 : 3, l = a ? 3 : 1;\n this.userCode = `\n const ivec2 pads = ivec2(${i}, ${p});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${l}];\n\n ivec2 dyCorner = ivec2(coords[${u}], coords[${c}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t8.outChannels}; d2++) {\n\n if (${a}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Gh = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.outputShape = t8.filterShape;\n let e = t8.strideDepth, o = t8.strideHeight, n = t8.strideWidth, s = t8.padInfo.front, a = t8.padInfo.top, i = t8.padInfo.left;\n this.userCode = `\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t8.batchSize}; b++) {\n for (int yF = 0; yF < ${t8.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t8.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t8.outHeight}; yR++) {\n int xR = wR + yR * ${o} - ${a};\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t8.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${i};\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Hh = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.outputShape = t8.inShape;\n let e = t8.filterDepth, o = t8.filterHeight, n = t8.filterWidth, s = t8.strideDepth, a = t8.strideHeight, i = t8.strideWidth, p = e - 1 - t8.padInfo.front, u = o - 1 - t8.padInfo.top, c = n - 1 - t8.padInfo.left;\n this.userCode = `\n const ivec3 pads = ivec3(${p}, ${u}, ${c});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t8.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${o}; wR++) {\n float dyR = float(dyRCorner + wR) / ${a}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${o} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t8.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nfunction eJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, dataFormat: p, dimRoundingMode: u, filterShape: c } = o, l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, c, a, 1, i, u, false, l), d = new Wh(m);\n return e.runWebGLProgram(d, [n, s], \"float32\");\n}\nvar MA = { kernelName: Oi, backendName: \"webgl\", kernelFunc: eJ };\nvar Kh = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"strides\", type: \"vec2\" }], this.outputShape = t8.inShape, this.enableShapeUniforms = pt(this.outputShape.length);\n let e = t8.filterHeight, o = t8.filterWidth, n = e - 1 - t8.padInfo.top, s = o - 1 - t8.padInfo.left;\n this.userCode = `\n const ivec2 pads = ivec2(${n}, ${s});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n\n ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n vec4 result = vec4(0.);\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / strides[0];\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n int wCPerm = ${o} - 1 - wC;\n\n float dyC = float(dyCCorner + wC) / strides[1];\n bool idyCVal = (dyC >= 0.0) && (dyC < ${t8.outWidth}.0)\n && (fract(dyC) == 0.0);\n int idyC = int(dyC);\n\n float dyC2 = float(dyCCorner + wC + 1) / strides[1];\n bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${t8.outWidth}.0)\n && (fract(dyC2) == 0.0);\n int idyC2 = int(dyC2);\n\n if (idyCVal && idyCVal2) {\n for (int d2 = 0; d2 < ${t8.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec4 dySample2 = (idyC / 2 == idyC2 / 2) ?\n dySample : getDy(batch, idyR, idyC2, d2);\n\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n\n dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample2.xy : dySample2.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal) {\n for (int d2 = 0; d2 < ${t8.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC, d2);\n vec2 dyValue = mod(float(idyC), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.xy += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n } else if (idyCVal2) {\n for (int d2 = 0; d2 < ${t8.outChannels}; d2 += 2) {\n vec4 wValue = getW(wRPerm, wCPerm, d1, d2);\n vec4 dySample = getDy(batch, idyR, idyC2, d2);\n vec2 dyValue = mod(float(idyC2), 2.) == 0. ?\n dySample.xy : dySample.zw;\n result.zw += vec2(dot(dyValue, wValue.xy),\n dot(dyValue, wValue.zw));\n }\n }\n }\n }\n setOutput(result);\n }\n `;\n }\n};\nfunction tJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { inputShape: a, strides: i, pad: p, dataFormat: u, dimRoundingMode: c } = o, l = w.convertConv2DDataFormat(u), m = w.computeConv2DInfo(a, s.shape, i, 1, p, c, false, l);\n if (A().getBool(\"WEBGL_PACK_CONV2DTRANSPOSE\") && l === \"channelsLast\") {\n let d = [[m.strideHeight, m.strideWidth]], f = new Kh(m);\n return e.runWebGLProgram(f, [n, s], \"float32\", d);\n } else {\n let d = new Uh(m);\n return e.runWebGLProgram(d, [n, s], \"float32\");\n }\n}\nvar LA = { kernelName: on, backendName: \"webgl\", kernelFunc: tJ };\nfunction rJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o, u = w.computeConv3DInfo(n.shape, s.shape, a, p, i), c = new Mh(u);\n return e.runWebGLProgram(c, [n, s], \"float32\");\n}\nvar BA = { kernelName: nn, backendName: \"webgl\", kernelFunc: rJ };\nfunction oJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, filterShape: p } = o, u = w.computeConv3DInfo(n.shape, p, a, 1, i), c = new Gh(u);\n return e.runWebGLProgram(c, [n, s], \"float32\");\n}\nvar zA = { kernelName: Xa, backendName: \"webgl\", kernelFunc: oJ };\nfunction nJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { pad: a, strides: i, inputShape: p } = o, u = w.computeConv3DInfo(p, s.shape, i, 1, a), c = new Hh(u);\n return e.runWebGLProgram(c, [n, s], \"float32\");\n}\nvar VA = { kernelName: sn, backendName: \"webgl\", kernelFunc: nJ };\nvar sJ = Po + `\n return cos(x);\n`;\nvar aJ = `\n vec4 result = cos(x);\n bvec4 isNaN = isnan(x);\n ${Xr}\n return result;\n`;\nvar iJ = xe({ opSnippet: sJ, packedOpSnippet: aJ });\nvar WA = { kernelName: an, backendName: \"webgl\", kernelFunc: iJ };\nvar uJ = `\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`;\nvar pJ = xe({ opSnippet: uJ });\nvar UA = { kernelName: un, backendName: \"webgl\", kernelFunc: pJ };\nvar qh = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"Image\", \"Boxes\", \"BoxInd\"], this.outputShape = [];\n let [a, i, p, u] = t8, [c] = e, [l, m] = o;\n this.outputShape = [c, l, m, u];\n let d = n === \"bilinear\" ? 1 : 0, [f, h] = [`${i - 1}.0`, `${p - 1}.0`], [g, x, b] = l > 1 ? [`${(i - 1) / (l - 1)}`, \"(y2-y1) * height_ratio\", `y1*${f} + float(y)*(height_scale)`] : [\"0.0\", \"0.0\", `0.5 * (y1+y2) * ${f}`], [C, S, k] = m > 1 ? [`${(p - 1) / (m - 1)}`, \"(x2-x1) * width_ratio\", `x1*${h} + float(x)*(width_scale)`] : [\"0.0\", \"0.0\", `0.5 * (x1+x2) * ${h}`];\n this.userCode = `\n const float height_ratio = float(${g});\n const float width_ratio = float(${C});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${a}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${S};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${f} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${k};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${d} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `;\n }\n};\nvar cJ = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n, boxes: s, boxInd: a } = t8, { cropSize: i, method: p, extrapolationValue: u } = o, c = new qh(n.shape, s.shape, i, p, u);\n return e.runWebGLProgram(c, [n, s, a], \"float32\");\n};\nvar GA = { kernelName: ln, backendName: \"webgl\", kernelFunc: cJ };\nvar Ep;\n(function(r) {\n r.Prod = \"*\", r.Sum = \"+\";\n})(Ep || (Ep = {}));\nvar om = class {\n constructor(t8, e, o, n) {\n this.op = t8, this.outputShape = e, this.variableNames = [\"x\"], this.customUniforms = [{ name: \"index\", type: \"float\" }];\n let s = this.outputShape.length, a = this.op === Ep.Prod ? \"1.0\" : \"0.0\", i = o ? a : `getX(${HA(s, \"coords\", this.op)})`, p = this.outputShape[this.outputShape.length - 1], u = \"\", c = \"\";\n o ? (u = n ? `end != ${p - 1}` : \"end != 0\", c = n ? \"end + 1\" : \"end - 1\") : (u = n ? `end + pow2 < ${p}` : \"end >= pow2\", c = n ? \"end + pow2\" : \"end - pow2\"), this.userCode = `\n void main() {\n ${Re(s)} coords = getOutputCoords();\n int end = ${KA(s, \"coords\", this.op)};\n float val = ${i};\n int pow2 = int(pow(2.0, index));\n if (${u}) {\n int idx = ${c};\n ${KA(s, \"coords\", this.op)} = idx;\n val ${this.op}= getX(${HA(s, \"coords\", this.op)});\n }\n setOutput(val);\n }\n `;\n }\n};\nfunction HA(r, t8, e) {\n if (r === 1)\n return `${t8}`;\n if (r === 2)\n return `${t8}.x, ${t8}.y`;\n if (r === 3)\n return `${t8}.x, ${t8}.y, ${t8}.z`;\n if (r === 4)\n return `${t8}.x, ${t8}.y, ${t8}.z, ${t8}.w`;\n throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`);\n}\nfunction KA(r, t8, e) {\n if (r === 1)\n return `${t8}`;\n if (r === 2)\n return `${t8}.y`;\n if (r === 3)\n return `${t8}.z`;\n if (r === 4)\n return `${t8}.w`;\n throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`);\n}\nfunction jh(r, t8, e, o, n, s) {\n let a = t8.shape.length, i = w.getAxesPermutation([o], a), p = t8;\n i != null && (p = Ct({ inputs: { x: t8 }, backend: e, attrs: { perm: i } }));\n let u = w.getInnerMostAxes(1, a)[0];\n if (u !== a - 1)\n throw new Error(`WebGL cumprod shader expects an inner-most axis=${t8.shape.length - 1} but got axis=${o}`);\n let c = p.shape[u], l = At({ inputs: { x: p }, backend: e });\n for (let m = 0; m <= Math.ceil(Math.log2(c)) - 1; m++) {\n let d = new om(r, p.shape, false, s), f = [[m]], h = l;\n l = e.runWebGLProgram(d, [l], l.dtype, f), e.disposeIntermediateTensorInfo(h);\n }\n if (n) {\n let m = new om(r, p.shape, n, s), d = l;\n l = e.runWebGLProgram(m, [l], l.dtype), e.disposeIntermediateTensorInfo(d);\n }\n if (i != null) {\n let m = w.getUndoAxesPermutation(i), d = Ct({ inputs: { x: l }, backend: e, attrs: { perm: m } });\n return e.disposeIntermediateTensorInfo(l), e.disposeIntermediateTensorInfo(p), d;\n }\n return l;\n}\nfunction lJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n return jh(Ep.Prod, n, e, s, a, i);\n}\nvar qA = { kernelName: pn, backendName: \"webgl\", kernelFunc: lJ };\nfunction mJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n return jh(Ep.Sum, n, e, s, a, i);\n}\nvar jA = { kernelName: cn, backendName: \"webgl\", kernelFunc: mJ };\nfunction dJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a, binaryOutput: i } = o;\n if (n.shape.length === 1) {\n let p = e.readSync(n.dataId), u = e.readSync(s.dataId), c = ph(p, u, s.dtype, s.shape, a);\n return e.makeTensorInfo([a], s.dtype, c);\n } else if (n.shape.length === 2) {\n let p = e.bufferSync(n), u = e.bufferSync(s), c = DR(p, u, a, i);\n return e.makeTensorInfo(c.shape, s.dtype, c.values);\n }\n throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`);\n}\nvar XA = { kernelName: ra, backendName: \"webgl\", kernelFunc: dJ };\nvar Xh = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.outputShape = [], this.outputShape = t8, this.blockSize = e, this.dataFormat = o, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `;\n }\n getHeightCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[1]\" : \"coords[2]\";\n }\n getWidthCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[2]\" : \"coords[3]\";\n }\n getDepthCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[3]\" : \"coords[1]\";\n }\n getOutputDepthSize() {\n return this.dataFormat === \"NHWC\" ? this.outputShape[3] : this.outputShape[1];\n }\n getInputSamplingString() {\n return this.dataFormat === \"NHWC\" ? \"getX(b, in_h, in_w, in_d)\" : \"getX(b, in_d, in_h, in_w)\";\n }\n};\nfunction fJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockSize: s, dataFormat: a } = o, i = n.shape[0], p = a === \"NHWC\" ? n.shape[1] : n.shape[2], u = a === \"NHWC\" ? n.shape[2] : n.shape[3], c = a === \"NHWC\" ? n.shape[3] : n.shape[1], l = p * s, m = u * s, d = c / (s * s), f = a === \"NHWC\" ? [i, l, m, d] : [i, d, l, m], h = new Xh(f, s, a);\n return e.runWebGLProgram(h, [n], n.dtype);\n}\nvar YA = { kernelName: mn, backendName: \"webgl\", kernelFunc: fJ };\nvar qc = class {\n constructor(t8, e = false, o = null, n = false, s = false) {\n this.variableNames = [\"x\", \"W\"], this.customUniforms = [{ name: \"pads\", type: \"ivec2\" }, { name: \"strides\", type: \"ivec2\" }, { name: \"dilations\", type: \"ivec2\" }, { name: \"inDims\", type: \"ivec2\" }], this.outputShape = t8.outShape, this.enableShapeUniforms = pt(this.outputShape.length);\n let a = t8.filterHeight, i = t8.filterWidth, p = t8.outChannels / t8.inChannels, u = \"\", c = \"\";\n o && (n ? u = `float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${o}\n }` : s ? u = `float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${o}\n }` : u = `\n float activation(float x) {\n ${o}\n }\n `, c = \"result = activation(result);\");\n let l = e ? \"result += getBiasAtOutCoords();\" : \"\";\n e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), s && this.variableNames.push(\"leakyreluAlpha\"), this.userCode = `\n ${u}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${p};\n int q = d2 - d1 * ${p};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${a}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${i}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${l}\n ${c}\n setOutput(result);\n }\n `;\n }\n};\nvar jc = class {\n constructor(t8, e = false, o = null, n = false, s = false) {\n this.variableNames = [\"x\", \"W\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"pads\", type: \"ivec2\" }, { name: \"strides\", type: \"ivec2\" }, { name: \"dilations\", type: \"ivec2\" }, { name: \"inDims\", type: \"ivec2\" }], this.outputShape = t8.outShape, this.enableShapeUniforms = pt(this.outputShape.length);\n let a = t8.outChannels / t8.inChannels, i = t8.padInfo.left, p = t8.strideWidth, u = t8.dilationWidth, c = t8.filterHeight, l = t8.filterWidth, m = l, d = `\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;\n for (let x = 0; x < l; x++)\n d += `\n vec4 xTexelC${x * 2};\n int xTexelC${x * 2}Ready;\n vec4 xTexelC${x * 2 + 1};\n int xTexelC${x * 2 + 1}Ready;\n vec4 xC${x};`;\n d += `\n for (int r = 0; r < ${c}; r++) {\n `;\n for (let x = 0; x < l; x++)\n d += `\n xTexelC${x * 2} = vec4(0.0);\n xTexelC${x * 2}Ready = 0;\n xTexelC${x * 2 + 1} = vec4(0.0);\n xTexelC${x * 2 + 1}Ready = 0;\n xC${x} = vec4(0.0);`;\n d += `\n xR = xRCorner + r * dilations[0];\n if (xR >=0 && xR < inDims[0]) {\n `;\n for (let x = 0; x < (m + 1) / 2; x++) {\n let b = x * 2;\n if (d += `\n xC = xCCorner + ${b * u};\n `, p === 1) {\n if (b < l && (i % 2 === 1 ? (d += `\n xCOffset = xC + 1;\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `, u === 1 && b > 0 ? d += `\n xC${b} = vec4(xTexelC${b - 2}.zw, xTexelC${b}.xy);\n ` : d += `\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `) : d += `\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `, b + 1 < l)) {\n let C = i % 2 === 0 ? y.nearestLargerEven(u) : u;\n u % 2 === 0 && i % 2 === 1 || u % 2 !== 0 && i % 2 !== 1 ? (d += `\n xCOffset = xC + imod(pads[1], 2) + ${C};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b + 1}Ready == 0) {\n xTexelC${b + 1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b + 1}.zw = vec2(0.0);\n }\n xTexelC${b + 1}Ready = 1;\n }\n `, u > 1 ? d += `\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b + 1} = vec4(previous.zw, xTexelC${b + 1}.xy);\n } else {\n xC${b + 1} = vec4(0.0, 0.0, xTexelC${b + 1}.xy);\n }\n ` : d += `\n xC${b + 1} = vec4(xTexelC${b}.zw, xTexelC${b + 1}.xy);\n `) : C === 1 ? d += `\n xC${b + 1} = xTexelC${b};\n ` : d += `\n xCOffset = xC + ${C};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b + 1}Ready == 0) {\n xTexelC${b + 1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b + 1}.zw = vec2(0.0);\n }\n xTexelC${b + 1}Ready = 1;\n }\n\n xC${b + 1} = xTexelC${b + 1};\n `;\n }\n } else\n b < l && (i % 2 === 1 ? (d += `\n xCOffset = xC + 1 - strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b + 1}Ready == 0) {\n xTexelC${b + 1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b + 1}.zw = vec2(0.0);\n }\n xTexelC${b + 1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b + 1}.zw);\n `, b + 1 < l && (d += `\n final = vec4(0.0);\n xCOffset = xC + 1 + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b + 1} = vec4(xTexelC${b + 1}.xy, final.xy);\n `)) : (d += `\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b + 1}Ready == 0) {\n xTexelC${b + 1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b + 1}.zw = vec2(0.);\n }\n xTexelC${b + 1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b + 1}.xy);\n `, b + 1 < l && (d += `\n xC${b + 1} = vec4(xTexelC${b}.zw, xTexelC${b + 1}.zw);\n `)));\n b < l && (d += `\n wTexel = getW(r, ${b}, d1, q);\n dotProd += xC${b} * vec4(wTexel.xz, wTexel.xz);\n `, b + 1 < l && (d += `\n wTexel = getW(r, ${b + 1}, d1, q);\n dotProd += xC${b + 1} * vec4(wTexel.xz, wTexel.xz);\n `));\n }\n d += `\n }\n `, d += `\n }\n `;\n let f = \"\", h = \"\";\n o && (n ? f = `vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${o}\n }` : s ? f = `vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${o}\n }` : f = `vec4 activation(vec4 x) {\n ${o}\n }`, h = \"result = activation(result);\");\n let g = e ? \"result += getBiasAtOutCoords();\" : \"\";\n e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), s && this.variableNames.push(\"leakyreluAlpha\"), this.userCode = `\n ${f}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${a};\n int q = d2 - d1 * ${a};\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss.\n vec4 dotProd = vec4(0.000000000000001);\n\n ${d}\n\n vec4 result = dotProd - vec4(0.000000000000001);\n ${g}\n ${h}\n setOutput(result);\n }\n `;\n }\n};\nfunction hJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p, dimRoundingMode: u } = o, c = p;\n c == null && (c = [1, 1]), y.assert(w.eitherStridesOrDilationsAreOne(a, c), () => `Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`);\n let l = w.computeConv2DInfo(n.shape, s.shape, a, c, i, u, true), m;\n A().getBool(\"WEBGL_PACK_DEPTHWISECONV\") && l.strideWidth <= 2 && l.outChannels / l.inChannels === 1 ? m = new jc(l) : m = new qc(l);\n let d = [[l.padInfo.top, l.padInfo.left], [l.strideHeight, l.strideWidth], [l.dilationHeight, l.dilationWidth], [l.inHeight, l.inWidth]];\n return e.runWebGLProgram(m, [n, s], \"float32\", d);\n}\nvar QA = { kernelName: dn, backendName: \"webgl\", kernelFunc: hJ };\nvar Yh = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.outputShape = t8.filterShape;\n let e = t8.strideHeight, o = t8.strideWidth, n = t8.padInfo.top, s = t8.padInfo.left, a = t8.outChannels / t8.inChannels;\n this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${a} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t8.batchSize}; b++) {\n for (int yR = 0; yR < ${t8.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${n};\n\n if (xR < 0 || xR >= ${t8.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t8.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${s};\n\n if (xC < 0 || xC >= ${t8.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar Qh = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.outputShape = t8.inShape;\n let e = t8.filterHeight, o = t8.filterWidth, n = t8.strideHeight, s = t8.strideWidth, a = e - 1 - t8.padInfo.top, i = o - 1 - t8.padInfo.left, p = t8.outChannels / t8.inChannels;\n this.userCode = `\n const ivec2 pads = ivec2(${a}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${p}; dm++) {\n int d2 = d1 * ${p} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nfunction gJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, filterShape: c } = o, l = w.computeConv2DInfo(n.shape, c, a, i, p, u, true), m = new Yh(l);\n return e.runWebGLProgram(m, [n, s], \"float32\");\n}\nvar ZA = { kernelName: Mi, backendName: \"webgl\", kernelFunc: gJ };\nfunction xJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, inputShape: c } = o, l = w.computeConv2DInfo(c, s.shape, a, i, p, u, true), m = new Qh(l);\n return e.runWebGLProgram(m, [n, s], \"float32\");\n}\nvar JA = { kernelName: Li, backendName: \"webgl\", kernelFunc: xJ };\nvar Zh = class {\n constructor(t8) {\n this.variableNames = [\"X\"], this.outputShape = [t8, t8], this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n `;\n }\n};\nfunction yJ(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = [...o.shape, ...o.shape], s = y.sizeFromShape(o.shape), a = te({ inputs: { x: o }, backend: e, attrs: { shape: [s] } }), i = new Zh(s), p = e.runWebGLProgram(i, [a], a.dtype), u = te({ inputs: { x: p }, backend: e, attrs: { shape: n } });\n return e.disposeIntermediateTensorInfo(a), e.disposeIntermediateTensorInfo(p), u;\n}\nvar eF = { kernelName: oa, backendName: \"webgl\", kernelFunc: yJ };\nvar Jh = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"W\"], this.outputShape = t8.outShape;\n let { inHeight: e, inWidth: o, padInfo: n, strideHeight: s, strideWidth: a, filterHeight: i, filterWidth: p, dilationHeight: u, dilationWidth: c } = t8, { top: l, left: m } = n;\n this.userCode = `\n const ivec2 strides = ivec2(${s}, ${a});\n const ivec2 pads = ivec2(${l}, ${m});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${i}; h++) {\n int hIn = hBeg + h * ${u};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${p}; w++) {\n int wIn = wBeg + w * ${c};\n\n if (wIn >= 0 && wIn < ${o}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `;\n }\n};\nfunction bJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o, u = w.computeDilation2DInfo(n.shape, s.shape, a, i, \"NHWC\", p), c, l = new Jh(u);\n c = e.runWebGLProgram(l, [n, s], \"float32\");\n let m = te({ inputs: { x: c }, backend: e, attrs: { shape: u.outShape } });\n return e.disposeIntermediateTensorInfo(c), m;\n}\nvar tF = { kernelName: fn, backendName: \"webgl\", kernelFunc: bJ };\nfunction CJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { equation: n } = o, s = t8, { allDims: a, summedDims: i, idDims: p } = w.decodeEinsumEquation(n, s.length);\n w.checkEinsumDimSizes(a.length, p, s);\n let { path: u, steps: c } = w.getEinsumComputePath(i, p), l = c.length, m = null, d = a.length, f = [];\n for (let h = 0; h < l; ++h) {\n for (let g of c[h]) {\n let { permutationIndices: x, expandDims: b } = w.getEinsumPermutation(d, p[g]), C;\n w.isIdentityPermutation(x) ? C = s[g] : (C = Ct({ inputs: { x: s[g] }, backend: e, attrs: { perm: x } }), f.push(C));\n let S = C.shape.slice();\n for (let k = 0; k < b.length; ++k)\n S.splice(b[k], 0, 1);\n y.arraysEqual(C.shape, S) || (C = te({ inputs: { x: C }, backend: e, attrs: { shape: S } }), f.push(C)), m === null ? m = C : (m = tm({ inputs: { a: C, b: m }, backend: e }), f.push(m));\n }\n h < l - 1 && (u[h] >= 0 && (m = Tp({ inputs: { x: m }, backend: e, attrs: { axis: u[h] - (a.length - d), keepDims: false } }), f.push(m)), d--);\n }\n for (let h of f)\n h !== m && e.disposeIntermediateTensorInfo(h);\n return m;\n}\nvar rF = { kernelName: Vi, backendName: \"webgl\", kernelFunc: CJ };\nvar wJ = \"return (x >= 0.0) ? x : (exp(x) - 1.0);\";\nvar SJ = `\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`;\nvar IJ = xe({ opSnippet: wJ, packedOpSnippet: SJ });\nvar oF = { kernelName: gn, backendName: \"webgl\", kernelFunc: IJ };\nvar vJ = \"return (b >= 0.0) ? a : a * (b + 1.0);\";\nvar kJ = `\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`;\nvar NJ = (r) => {\n let { inputs: t8, backend: e } = r, { dy: o, y: n } = t8, s = A().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\") ? new jr(kJ, o.shape, n.shape) : new Pr(vJ, o.shape, n.shape);\n return e.runWebGLProgram(s, [o, n], o.dtype);\n};\nvar nF = { kernelName: Ya, backendName: \"webgl\", kernelFunc: NJ };\nvar TJ = `\n return vec4(equal(a, b));\n`;\nvar _J = \"return float(a == b);\";\nvar $J = nt({ opSnippet: _J, packedOpSnippet: TJ, dtype: \"bool\", cpuKernelImpl: MR });\nvar sF = { kernelName: yn, backendName: \"webgl\", kernelFunc: $J };\nvar EJ = `\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n float p = ${w.ERF_P};\n float a1 = ${w.ERF_A1};\n float a2 = ${w.ERF_A2};\n float a3 = ${w.ERF_A3};\n float a4 = ${w.ERF_A4};\n float a5 = ${w.ERF_A5};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`;\nvar RJ = xe({ opSnippet: EJ });\nvar aF = { kernelName: xn, backendName: \"webgl\", kernelFunc: RJ };\nvar DJ = Po + `\n return exp(x);\n`;\nvar AJ = `\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar Iv = xe({ opSnippet: DJ, packedOpSnippet: AJ, cpuKernelImpl: LR, dtype: \"float32\" });\nvar iF = { kernelName: bn, backendName: \"webgl\", kernelFunc: Iv };\nfunction eg(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { dim: n } = e, { input: s } = t8, a = s.shape.length, i = s.shape.slice(), p = n;\n return n < 0 && (y.assert(-(a + 1) <= n, () => `Axis must be in the interval [${-(a + 1)}, ${a}]`), p = a + n + 1), i.splice(p, 0, 1), te({ inputs: { x: s }, backend: o, attrs: { shape: i } });\n}\nvar uF = { kernelName: na, backendName: \"webgl\", kernelFunc: eg };\nvar pF = \"return exp(x) - 1.0;\";\nvar FJ = xe({ opSnippet: pF, packedOpSnippet: pF, cpuKernelImpl: BR });\nvar cF = { kernelName: Cn, backendName: \"webgl\", kernelFunc: FJ };\nvar nm = class {\n constructor(t8, e, o) {\n this.variableNames = [\"real\", \"imag\"];\n let n = e[1];\n this.outputShape = e;\n let s = o ? `2.0 * ${Math.PI}` : `-2.0 * ${Math.PI}`, a = o ? `${n}.0` : \"1.0\", i;\n if (t8 === \"real\")\n i = \"return real * expR - imag * expI;\";\n else if (t8 === \"imag\")\n i = \"return real * expI + imag * expR;\";\n else\n throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t8}.`);\n this.userCode = `\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${i}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${n});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${n}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${a};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `;\n }\n};\nfunction tg(r, t8, e) {\n let o = e.texData.get(r.dataId), n = y.sizeFromShape(r.shape), s = r.shape[r.shape.length - 1], a = n / s, i = te({ inputs: { x: r }, backend: e, attrs: { shape: [a, s] } }), p = i.shape, u = new nm(\"real\", p, t8), c = new nm(\"imag\", p, t8), l = [{ dataId: o.complexTensorInfos.real.dataId, dtype: o.complexTensorInfos.real.dtype, shape: p }, { dataId: o.complexTensorInfos.imag.dataId, dtype: o.complexTensorInfos.imag.dtype, shape: p }], m = e.runWebGLProgram(u, l, \"float32\"), d = e.runWebGLProgram(c, l, \"float32\"), f = Or({ inputs: { real: m, imag: d }, backend: e });\n e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d);\n let h = te({ inputs: { x: f }, backend: e, attrs: { shape: r.shape } });\n return e.disposeIntermediateTensorInfo(i), e.disposeIntermediateTensorInfo(f), h;\n}\nfunction PJ(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8;\n return tg(o, false, e);\n}\nvar lF = { kernelName: Wi, backendName: \"webgl\", kernelFunc: PJ };\nvar rg = class {\n constructor(t8, e) {\n this.outputShape = [], this.customUniforms = [{ name: \"value\", type: \"float\" }], this.variableNames = [\"x\"], this.outputShape = t8, this.userCode = `\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `;\n }\n};\nfunction Si(r) {\n let { backend: t8, attrs: e } = r, { shape: o, value: n } = e, { dtype: s } = e;\n if (s = s || y.inferDtype(n), s === \"string\") {\n let a = y.getArrayFromDType(s, y.sizeFromShape(o));\n return a.fill(n), t8.makeTensorInfo(o, s, a);\n } else {\n let a = new rg(o, n), i = [[n]];\n return t8.runWebGLProgram(a, [], s, i);\n }\n}\nvar mF = { kernelName: sa, backendName: \"webgl\", kernelFunc: Si };\nvar og = class {\n constructor(t8) {\n this.variableNames = [\"Image\"], this.outputShape = [];\n let e = t8[2];\n this.outputShape = t8, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `;\n }\n};\nvar dF = { kernelName: wn, backendName: \"webgl\", kernelFunc: ({ inputs: r, backend: t8 }) => {\n let { image: e } = r, o = t8, n = new og(e.shape);\n return o.runWebGLProgram(n, [e], e.dtype);\n} };\nvar fF = \"return floor(x);\";\nvar OJ = xe({ opSnippet: fF, packedOpSnippet: fF, cpuKernelImpl: zR });\nvar hF = { kernelName: Sn, backendName: \"webgl\", kernelFunc: OJ };\nvar MJ = `\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n`;\nvar LJ = `\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n`;\nvar BJ = nt({ opSnippet: MJ, packedOpSnippet: LJ, dtype: \"int32\" });\nvar gF = { kernelName: In, backendName: \"webgl\", kernelFunc: BJ };\nvar ng = class {\n constructor(t8) {\n this.variableNames = [\"A\"];\n let e = vt(), [o, n] = t8;\n this.outputShape = t8, this.userCode = `\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${o}.0);\n\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `;\n }\n};\nvar sg = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.packedInputs = false, this.packedOutput = true;\n let e = vt(), [o, n] = t8;\n this.outputShape = t8, this.userCode = `\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${n}.0, ${o}.0);\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${e.output} = result;\n }\n `;\n }\n};\nvar xF = { kernelName: Mu, backendName: \"webgl\", kernelFunc: zJ };\nvar Xc;\nvar vv = A().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");\nfunction zJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { pixels: n } = t8, { numChannels: s } = o, a = typeof HTMLVideoElement != \"undefined\" && n instanceof HTMLVideoElement, i = typeof HTMLImageElement != \"undefined\" && n instanceof HTMLImageElement, [p, u] = a ? [n.videoWidth, n.videoHeight] : [n.width, n.height], c = [u, p], l = [u, p, s];\n if (i || a) {\n let h = A().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");\n (Xc == null || h !== vv) && (vv = h, Xc = document.createElement(\"canvas\").getContext(\"2d\", { willReadFrequently: vv })), Xc.canvas.width = p, Xc.canvas.height = u, Xc.drawImage(n, 0, 0, p, u), n = Xc.canvas;\n }\n let m = e.makeTensorInfo(c, \"int32\");\n e.texData.get(m.dataId).usage = dr.PIXELS, e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId), n);\n let d = A().getBool(\"WEBGL_PACK\") ? new sg(l) : new ng(l), f = e.runWebGLProgram(d, [m], \"int32\");\n return e.disposeData(m.dataId), f;\n}\nfunction VJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = o, h = w.convertConv2DDataFormat(c), g = w.computeConv2DInfo(n.shape, s.shape, p, l, u, m, false, h), x, b = [], C = a != null, S = i != null, k = d === \"leakyrelu\", _ = () => {\n let R = [n, s], D = (P, O) => {\n if (O === \"NCHW\" && P.shape.length === 1 && P.shape[0] !== 1) {\n let M = te({ inputs: { x: P }, backend: e, attrs: { shape: [P.shape[0], 1, 1] } });\n return b.push(M), M;\n }\n return P;\n };\n if (C && R.push(D(a, c)), S && R.push(D(i, c)), k) {\n let P = e.makeTensorInfo([], \"float32\", y.createScalarValue(f, \"float32\"));\n R.push(P), b.push(P);\n }\n return R;\n };\n if (g.filterHeight === 1 && g.filterWidth === 1 && g.dilationHeight === 1 && g.dilationWidth === 1 && g.strideHeight === 1 && g.strideWidth === 1 && (g.padInfo.type === \"SAME\" || g.padInfo.type === \"VALID\"))\n x = zh({ x: n, filter: s, convInfo: g, backend: e, bias: a, activation: d, preluActivationWeights: i, leakyreluAlpha: f });\n else if (g.strideWidth <= 2 && h === \"channelsLast\" && A().getBool(\"WEBGL_EXP_CONV\")) {\n let R = d ? Ci(d, true) : null, D = new Kc(g, C, R, S, k), P = [[g.padInfo.top, g.padInfo.left], [g.strideHeight, g.strideWidth], [g.dilationHeight, g.dilationWidth], [g.inHeight, g.inWidth]], O = _();\n x = e.runWebGLProgram(D, O, \"float32\", P);\n } else if (A().getBool(\"WEBGL_CONV_IM2COL\"))\n x = Vh({ x: n, filter: s, convInfo: g, backend: e, bias: a, activation: d, preluActivationWeights: i, leakyreluAlpha: f });\n else {\n let R = d ? Ci(d, false) : null, D = new Hc(g, C, R, S, k), P = _();\n x = e.runWebGLProgram(D, P, \"float32\");\n }\n let E = te({ inputs: { x }, backend: e, attrs: { shape: g.outShape } });\n return b.push(x), b.forEach((R) => e.disposeIntermediateTensorInfo(R)), E;\n}\nvar yF = { kernelName: vo, backendName: \"webgl\", kernelFunc: VJ };\nfunction WJ(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dilations: c, dimRoundingMode: l, activation: m, leakyreluAlpha: d } = o, f = [], h = c;\n h == null && (h = [1, 1]), y.assert(w.eitherStridesOrDilationsAreOne(p, h), () => `Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${p} and dilations '${h}'`);\n let g = w.computeConv2DInfo(n.shape, s.shape, p, h, u, l, true), x = A().getBool(\"WEBGL_PACK_DEPTHWISECONV\") && g.strideWidth <= 2 && g.outChannels / g.inChannels === 1, b = m ? Ci(m, x) : null, C = [n, s], S = a != null, k = i != null, _ = m === \"leakyrelu\";\n if (S && C.push(a), k && C.push(i), _) {\n let P = e.makeTensorInfo([], \"float32\", y.createScalarValue(d, \"float32\"));\n C.push(P), f.push(P);\n }\n let E;\n x ? E = new jc(g, S, b, k, _) : E = new qc(g, S, b, k, _);\n let R = [[g.padInfo.top, g.padInfo.left], [g.strideHeight, g.strideWidth], [g.dilationHeight, g.dilationWidth], [g.inHeight, g.inWidth]], D = e.runWebGLProgram(E, C, \"float32\", R);\n return f.forEach((P) => e.disposeIntermediateTensorInfo(P)), D;\n}\nvar bF = { kernelName: ko, backendName: \"webgl\", kernelFunc: WJ };\nvar ag = class {\n constructor(t8, e, o, n) {\n this.sliceDim = t8, this.strides = e, this.paramsShape = n, this.variableNames = [\"x\", \"indices\"], this.outputShape = o;\n let s = Re(o.length), a = `\n int index;`;\n for (let i = 0; i < this.sliceDim; i++)\n a += `\n index = round(getIndices(coords[0], ${i}));\n out_of_bounds = out_of_bounds || index < 0;\n out_of_bounds = out_of_bounds || index >= ${this.paramsShape[i]};\n flattenIndex += index * ${this.strides[i]};`;\n this.userCode = `\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${a}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `;\n }\n};\nfunction UJ(r) {\n let { inputs: t8, backend: e } = r, { params: o, indices: n } = t8, s = n.shape, a = s[s.length - 1], i = y.sizeFromShape(o.shape), [p, u, c, l] = w.prepareAndValidate(o, n), m = te({ inputs: { x: n }, backend: e, attrs: { shape: [u, a] } }), d = te({ inputs: { x: o }, backend: e, attrs: { shape: [y.sizeFromShape(o.shape) / c, c] } });\n if (e.shouldExecuteOnCPU([o, n]) || o.dtype === \"string\") {\n let x = e.readSync(n.dataId), b = e.bufferSync(o), C = VR(x, b, o.dtype, u, a, c, l, o.shape, i);\n return e.makeTensorInfo(p, o.dtype, C.values);\n }\n let f = new ag(a, l, [u, c], o.shape), h = e.runWebGLProgram(f, [d, m], d.dtype), g = te({ inputs: { x: h }, backend: e, attrs: { shape: p } });\n return e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(h), g;\n}\nvar CF = { kernelName: kn, backendName: \"webgl\", kernelFunc: UJ };\nvar ig = class {\n constructor(t8, e) {\n this.variableNames = [\"A\", \"indices\"], this.outputShape = e, this.rank = e.length;\n let o = Re(this.rank), n = GJ(t8, 2);\n this.userCode = `\n void main() {\n ${o} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t8[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${n}));\n }\n `;\n }\n};\nfunction GJ(r, t8) {\n let e = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\"], o = [];\n for (let n = 0; n < r.length; n++)\n n === 2 ? o.push(\"index\") : o.push(`${e[n]}`);\n return o.join();\n}\nfunction kv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, indices: s } = t8, { axis: a, batchDims: i } = o, p = y.parseAxisParam(a, n.shape)[0];\n if (A().get(\"DEBUG\")) {\n let b = e.readSync(s.dataId), C = n.shape[p];\n for (let S = 0; S < b.length; ++S) {\n let k = b[S];\n y.assert(k <= C - 1 && k >= 0, () => `GatherV2: the index value ${k} is not in [0, ${C - 1}]`);\n }\n }\n let u = w.segment_util.collectGatherOpShapeInfo(n, s, p, i), c = y.sizeFromShape(s.shape), l = [], m = te({ inputs: { x: n }, backend: e, attrs: { shape: [u.batchSize, u.outerSize, u.dimSize, u.sliceSize] } }), d = te({ inputs: { x: s }, backend: e, attrs: { shape: [u.batchSize, c / u.batchSize] } });\n l.push(m), l.push(d);\n let f = [u.batchSize, u.outerSize, c / u.batchSize, u.sliceSize];\n if (e.shouldExecuteOnCPU([n, s]) || n.dtype === \"string\") {\n let b = e.bufferSync(d), C = e.bufferSync(m), S = WR(C, b, f);\n return l.forEach((k) => e.disposeIntermediateTensorInfo(k)), e.makeTensorInfo(u.outputShape, S.dtype, S.values);\n }\n let h = new ig(m.shape, f), g = e.runWebGLProgram(h, [m, d], m.dtype);\n l.push(g);\n let x = te({ inputs: { x: g }, backend: e, attrs: { shape: u.outputShape } });\n return l.forEach((b) => e.disposeIntermediateTensorInfo(b)), x;\n}\nvar wF = { kernelName: aa, backendName: \"webgl\", kernelFunc: kv };\nvar HJ = \"return float(a > b);\";\nvar KJ = `\n return vec4(greaterThan(a, b));\n`;\nvar qJ = nt({ opSnippet: HJ, packedOpSnippet: KJ, cpuKernelImpl: UR, dtype: \"bool\" });\nvar SF = { kernelName: Nn, backendName: \"webgl\", kernelFunc: qJ };\nvar jJ = \"return float(a >= b);\";\nvar XJ = `\n return vec4(greaterThanEqual(a, b));\n`;\nvar YJ = nt({ opSnippet: jJ, packedOpSnippet: XJ, dtype: \"bool\", cpuKernelImpl: GR });\nvar IF = { kernelName: Tn, backendName: \"webgl\", kernelFunc: YJ };\nfunction QJ(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8;\n return tg(o, true, e);\n}\nvar vF = { kernelName: Ui, backendName: \"webgl\", kernelFunc: QJ };\nvar ZJ = \"return float(!isnan(x) && !isinf(x));\";\nvar JJ = xe({ opSnippet: ZJ, dtype: \"bool\" });\nvar kF = { kernelName: _n, backendName: \"webgl\", kernelFunc: JJ };\nvar eee = \"return float(isinf(x));\";\nvar tee = xe({ opSnippet: eee, dtype: \"bool\" });\nvar NF = { kernelName: $n, backendName: \"webgl\", kernelFunc: tee };\nvar ree = \"return float(isnan(x));\";\nvar oee = xe({ opSnippet: ree, dtype: \"bool\" });\nvar TF = { kernelName: En, backendName: \"webgl\", kernelFunc: oee };\nvar nee = \"return float(a < b);\";\nvar see = `\n return vec4(lessThan(a, b));\n`;\nvar aee = nt({ opSnippet: nee, packedOpSnippet: see, cpuKernelImpl: HR, dtype: \"bool\" });\nvar _F = { kernelName: Dn, backendName: \"webgl\", kernelFunc: aee };\nvar iee = \"return float(a <= b);\";\nvar uee = `\n return vec4(lessThanEqual(a, b));\n`;\nvar pee = nt({ opSnippet: iee, packedOpSnippet: uee, cpuKernelImpl: KR, dtype: \"bool\" });\nvar $F = { kernelName: An, backendName: \"webgl\", kernelFunc: pee };\nfunction cee(r) {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, num: s } = e, a = qR(o, n, s);\n return t8.makeTensorInfo([a.length], \"float32\", a);\n}\nvar EF = { kernelName: Fn, backendName: \"webgl\", kernelFunc: cee };\nvar lee = Po + `\n return x < 0.0 ? 0./0. : log(x);\n`;\nvar mee = `\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`;\nvar dee = xe({ opSnippet: lee, packedOpSnippet: mee, cpuKernelImpl: jR });\nvar RF = { kernelName: Pn, backendName: \"webgl\", kernelFunc: dee };\nvar fee = Po + `\n return log(1.0 + x);\n`;\nvar hee = xe({ opSnippet: fee });\nvar DF = { kernelName: On, backendName: \"webgl\", kernelFunc: hee };\nvar gee = \"return float(a >= 1.0 && b >= 1.0);\";\nvar xee = `\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`;\nvar yee = nt({ opSnippet: gee, packedOpSnippet: xee, dtype: \"bool\" });\nvar AF = { kernelName: Mn, backendName: \"webgl\", kernelFunc: yee };\nvar bee = \"return float(!(x >= 1.0));\";\nvar Cee = xe({ opSnippet: bee });\nvar FF = { kernelName: Ln, backendName: \"webgl\", kernelFunc: Cee };\nvar wee = \"return float(a >= 1.0 || b >= 1.0);\";\nvar See = `\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`;\nvar Iee = nt({ opSnippet: wee, packedOpSnippet: See, dtype: \"bool\" });\nvar PF = { kernelName: Bn, backendName: \"webgl\", kernelFunc: Iee };\nvar ug = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"x\"], this.outputShape = [];\n let a = e, i = t8[3] - 1;\n this.outputShape = t8;\n let p, u = `float(${o}) + float(${n}) * sum`;\n s === 0.5 ? p = `inversesqrt(${u})` : s === 1 ? p = `1.0/(${u})` : p = `exp(log(${u}) * float(-${s}));`, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${a}; j <= ${a}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${i}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${p};\n setOutput(val);\n }\n `;\n }\n};\nvar pg = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"x\"], this.outputShape = [], this.packedInputs = true, this.packedOutput = true;\n let a = e, i = t8[3] - 1;\n this.outputShape = t8;\n let p, u = `float(${o}) + float(${n}) * sum`;\n s === 0.5 ? p = `inversesqrt(${u})` : s === 1 ? p = `1.0/(${u})` : p = `exp(log(${u}) * float(-${s}));`, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${a};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${a}; j <= ${a}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${i}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${p};\n setOutput(result);\n }\n `;\n }\n};\nvar vee = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { depthRadius: s, bias: a, alpha: i, beta: p } = o, u = A().getBool(\"WEBGL_PACK_NORMALIZATION\") ? new pg(n.shape, s, a, i, p) : new ug(n.shape, s, a, i, p);\n return e.runWebGLProgram(u, [n], n.dtype);\n};\nvar OF = { kernelName: zn, backendName: \"webgl\", kernelFunc: vee };\nvar cg = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"inputImage\", \"outputImage\", \"dy\"], this.outputShape = [], this.outputShape = t8, this.depth = t8[3], this.depthRadius = e, this.bias = o, this.alpha = n, this.beta = s, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${n}) * norm + float(${o});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${n})\n * float(${s})\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `;\n }\n};\nvar kee = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, y: s, dy: a } = t8, { depthRadius: i, bias: p, alpha: u, beta: c } = o, l = new cg(n.shape, i, p, u, c);\n return e.runWebGLProgram(l, [n, s, a], n.dtype);\n};\nvar MF = { kernelName: Qa, backendName: \"webgl\", kernelFunc: kee };\nfunction LF(r, t8, e, o) {\n let n = y.sizeFromShape(t8), a = y.sizeFromShape(r.shape) / n, i = te({ inputs: { x: r }, attrs: { shape: [a, n] }, backend: o }), p = Yr(i, r.dtype, \"max\", o), u = te({ inputs: { x: p }, attrs: { shape: e }, backend: o });\n return o.disposeIntermediateTensorInfo(i), o.disposeIntermediateTensorInfo(p), u;\n}\nfunction Nv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reductionIndices: s, keepDims: a } = o, i = n.shape.length, p = y.parseAxisParam(s, n.shape), u = p, c = w.getAxesPermutation(u, i), l = c != null, m = e.shouldExecuteOnCPU([n]), d = n;\n if (l) {\n if (m) {\n let C = e.texData.get(d.dataId).values, S = new Array(i);\n for (let E = 0; E < S.length; E++)\n S[E] = n.shape[c[E]];\n let k = Np(C, n.shape, n.dtype, c, S);\n d = e.makeTensorInfo(S, n.dtype);\n let _ = e.texData.get(d.dataId);\n _.values = k;\n } else\n d = Su(n, c, e);\n u = w.getInnerMostAxes(u.length, i);\n }\n w.assertAxesAreInnerMostDims(\"max\", u, i);\n let [f, h] = w.computeOutAndReduceShapes(d.shape, u), g = f;\n a && (g = w.expandShapeToKeepDim(f, p));\n let x;\n if (m) {\n let C = e.texData.get(d.dataId).values, S = XR(C, y.sizeFromShape(h), g, n.dtype);\n x = e.makeTensorInfo(g, n.dtype);\n let k = e.texData.get(x.dataId);\n k.values = S;\n } else\n x = LF(d, h, g, e);\n return l && e.disposeIntermediateTensorInfo(d), x;\n}\nvar BF = { kernelName: Vn, backendName: \"webgl\", kernelFunc: Nv };\nvar Nee = Wc + `\n return max(a, b);\n`;\nvar Tee = `\n vec4 result = vec4(max(a, b));\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n ` + Xr + `\n return result;\n`;\nvar _ee = nt({ opSnippet: Nee, packedOpSnippet: Tee, cpuKernelImpl: YR });\nvar zF = { kernelName: Wn, backendName: \"webgl\", kernelFunc: _ee };\nfunction $ee(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8;\n Vs(n, \"maxPool\");\n let { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1;\n y.assert(w.eitherStridesOrDilationsAreOne(a, u), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);\n let c = w.computePool2DInfo(n.shape, s, a, u, i, p);\n if (c.filterWidth === 1 && c.filterHeight === 1 && y.arraysEqual(c.inShape, c.outShape))\n return At({ inputs: { x: n }, backend: e });\n let l = new Us(c, \"max\", false);\n return e.runWebGLProgram(l, [n], n.dtype);\n}\nvar VF = { kernelName: Un, backendName: \"webgl\", kernelFunc: $ee };\nfunction Eee(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dataFormat: p, dimRoundingMode: u } = o, c = [1, 1, 1], l = w.computePool3DInfo(n.shape, s, a, c, i, u, p), m = new Iu(l, \"max\", false);\n return e.runWebGLProgram(m, [n], n.dtype);\n}\nvar WF = { kernelName: ia, backendName: \"webgl\", kernelFunc: Eee };\nvar lg = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"maxPos\"], this.outputShape = t8.inShape;\n let e = t8.strideHeight, o = t8.strideWidth, n = t8.dilationHeight, s = t8.effectiveFilterHeight, a = t8.effectiveFilterWidth, i = s - 1 - t8.padInfo.top, p = a - 1 - t8.padInfo.left, u = s * a - 1;\n this.userCode = `\n const ivec2 pads = ivec2(${i}, ${p});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${s};\n wR += ${n}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${a}; wC++) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${u} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${a} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nvar mg = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"maxPos\"], this.outputShape = t8.inShape;\n let e = t8.strideDepth, o = t8.strideHeight, n = t8.strideWidth, s = t8.dilationDepth, a = t8.dilationHeight, i = t8.dilationWidth, p = t8.effectiveFilterDepth, u = t8.effectiveFilterHeight, c = t8.effectiveFilterWidth, l = p - 1 - t8.padInfo.front, m = u - 1 - t8.padInfo.top, d = c - 1 - t8.padInfo.left, f = p * u * c - 1;\n this.userCode = `\n const ivec3 pads = ivec3(${l}, ${m}, ${d});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${p};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t8.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${u};\n wR += ${a}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t8.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${i}) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t8.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${f} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${u} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `;\n }\n};\nfunction Ree(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s, { filterSize: i, strides: p, pad: u, dimRoundingMode: c } = o, l = [1, 1, 1], m = w.computePool3DInfo(a.shape, i, p, l, u, c), d = new Iu(m, \"max\", true), f = e.runWebGLProgram(d, [a], a.dtype), h = new mg(m), g = e.runWebGLProgram(h, [n, f], a.dtype);\n return e.disposeIntermediateTensorInfo(f), g;\n}\nvar UF = { kernelName: Ki, backendName: \"webgl\", kernelFunc: Ree };\nfunction Dee(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s, output: a } = t8, i = s;\n Vs([s, a], \"maxPoolGrad\");\n let { filterSize: p, strides: u, pad: c, dimRoundingMode: l } = o, m = w.computePool2DInfo(i.shape, p, u, 1, c, l), d = true, f = new Us(m, \"max\", d), h = e.runWebGLProgram(f, [i], i.dtype), g = new lg(m), x = e.runWebGLProgram(g, [n, h], i.dtype);\n return e.disposeIntermediateTensorInfo(h), x;\n}\nvar GF = { kernelName: Hi, backendName: \"webgl\", kernelFunc: Dee };\nfunction HF(r, t8, e, o) {\n let n = new Us(e, \"max\", false), s = o.runWebGLProgram(n, [r], \"float32\");\n n = new Us(e, \"max\", true, true, t8);\n let a = o.runWebGLProgram(n, [r], \"float32\");\n return [s, a];\n}\nvar KF = { kernelName: ua, backendName: \"webgl\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { x: o } = r, { filterSize: n, strides: s, pad: a, includeBatchInIndex: i } = t8, p = e;\n y.assert(o.shape.length === 4, () => `Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);\n let u = [1, 1];\n y.assert(w.eitherStridesOrDilationsAreOne(s, u), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);\n let c = w.computePool2DInfo(o.shape, n, s, u, a), [l, m] = HF(o, i, c, p);\n return [l, m];\n} };\nfunction qF(r, t8, e, o) {\n let n = y.sizeFromShape(t8), a = y.sizeFromShape(r.shape) / n, i = te({ inputs: { x: r }, attrs: { shape: [a, n] }, backend: o }), p = Yr(i, \"float32\", \"mean\", o), u = te({ inputs: { x: p }, attrs: { shape: e }, backend: o });\n return o.disposeIntermediateTensorInfo(i), o.disposeIntermediateTensorInfo(p), u;\n}\nvar jF = { kernelName: Gn, backendName: \"webgl\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { x: o } = r, { keepDims: n, axis: s } = t8, a = e, i = o.shape.length, p = y.parseAxisParam(s, o.shape), u = p, c = w.getAxesPermutation(u, i), l = c != null, m = a.shouldExecuteOnCPU([o]), d = [], f = o;\n if (l) {\n if (m) {\n let S = a.texData.get(f.dataId).values, k = new Array(i);\n for (let R = 0; R < k.length; R++)\n k[R] = o.shape[c[R]];\n let _ = Np(S, o.shape, o.dtype, c, k);\n f = a.makeTensorInfo(k, o.dtype);\n let E = a.texData.get(f.dataId);\n E.values = _;\n } else\n f = Su(o, c, a);\n d.push(f), u = w.getInnerMostAxes(u.length, i);\n }\n w.assertAxesAreInnerMostDims(\"sum\", u, i);\n let [h, g] = w.computeOutAndReduceShapes(f.shape, u), x = h;\n n && (x = w.expandShapeToKeepDim(h, p));\n let b = qF(f, g, x, a);\n for (let C of d)\n a.disposeIntermediateTensorInfo(C);\n return b;\n} };\nfunction Aee(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o, i = n.shape.length, p = y.parseAxisParam(s, n.shape), u = p, c = w.getAxesPermutation(u, i), l = n;\n c != null && (l = Ct({ inputs: { x: n }, backend: e, attrs: { perm: c } }), u = w.getInnerMostAxes(u.length, n.shape.length)), w.assertAxesAreInnerMostDims(\"min\", u, i);\n let [m, d] = w.computeOutAndReduceShapes(l.shape, u), f = y.sizeFromShape(d), h = te({ inputs: { x: l }, backend: e, attrs: { shape: [-1, f] } }), g = Yr(h, h.dtype, \"min\", e), x;\n if (a) {\n let b = w.expandShapeToKeepDim(m, p);\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: b } });\n } else\n x = te({ inputs: { x: g }, backend: e, attrs: { shape: m } });\n return e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(g), c != null && e.disposeIntermediateTensorInfo(l), x;\n}\nvar XF = { kernelName: Hn, backendName: \"webgl\", kernelFunc: Aee };\nvar Fee = Wc + `\n return min(a, b);\n`;\nvar Pee = `\n vec4 result = vec4(min(a, b));\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n ` + Xr + `\n return result;\n`;\nvar Oee = nt({ opSnippet: Fee, packedOpSnippet: Pee, cpuKernelImpl: QR });\nvar YF = { kernelName: Kn, backendName: \"webgl\", kernelFunc: Oee };\nvar dg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.outputShape = e.map((c, l) => c[0] + t8[l] + c[1]);\n let n = t8.length, s = Re(n), a = e.map((c) => c[0]).join(\",\"), i = e.map((c, l) => c[0] + t8[l]).join(\",\"), p = [\"coords[0]\", \"coords[1]\", \"coords[2]\", \"coords[3]\"].slice(0, n), u = o === \"reflect\" ? 0 : 1;\n if (n === 1) {\n this.userCode = `\n int start = ${a};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${u};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${u};\n }\n setOutput(getX(outC - start));\n }\n `;\n return;\n }\n this.userCode = `\n ${s} start = ${s}(${a});\n ${s} end = ${s}(${i});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${n}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${u};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${u};\n }\n }\n ${s} coords = outC - start;\n setOutput(getX(${p}));\n }\n `;\n }\n};\nvar fg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = e.map((f, h) => f[0] + t8[h] + f[1]);\n let n = t8.length, s = Re(n), a = e.map((f) => f[0]).join(\",\"), i = e.map((f, h) => f[0] + t8[h]).join(\",\"), p = Dt(\"rc\", n), u = Dt(\"source\", n), c = `${p[n - 1]} < ${this.outputShape[n - 1]}`, l = n === 1 ? \"source\" : `vec2(${u.slice(-2).join()})`, m = o === \"reflect\" ? 0 : 1, d = \"\";\n if (n === 1) {\n let f = `\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;\n d = `\n ${s} rc = outputLoc;\n ${f}\n result[0] = getChannel(getX(${u.join()}), ${l});\n ${p[n - 1]} += 1;\n if(${c}) {\n ${f}\n result[1] = getChannel(getX(${u.join()}), ${l});\n }\n `;\n } else {\n let f = `\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;\n d = `\n ${s} rc = outputLoc;\n ${f}\n result[0] = getChannel(getX(${u.join()}), ${l});\n ${p[n - 1]} += 1;\n if(${c}) {\n ${f}\n result[1] = getChannel(getX(${u.join()}), ${l});\n }\n rc = outputLoc;\n ${p[n - 2]} += 1;\n if(${p[n - 2]} < ${this.outputShape[n - 2]}) {\n ${f}\n result[2] = getChannel(getX(${u.join()}), ${l});\n ${p[n - 1]} += 1;\n if(${c}) {\n ${f}\n result[3] = getChannel(getX(${u.join()}), ${l});\n }\n }\n `;\n }\n this.userCode = `\n const ${s} start = ${s}(${a});\n const ${s} end = ${s}(${i});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${d}\n setOutput(result);\n }\n `;\n }\n};\nvar Mee = ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o } = r, { paddings: n, mode: s } = e, a = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") ? new fg(o.shape, n, s) : new dg(o.shape, n, s);\n return t8.runWebGLProgram(a, [o], o.dtype);\n};\nvar QF = { kernelName: qn, backendName: \"webgl\", kernelFunc: Mee };\nvar Lee = `if (b == 0.0) return NAN;\n return mod(a, b);`;\nvar Bee = `\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n ` + Xr + `\n return result;\n`;\nvar zee = nt({ opSnippet: Lee, packedOpSnippet: Bee });\nvar ZF = { kernelName: jn, backendName: \"webgl\", kernelFunc: zee };\nvar hg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"probs\"], this.customUniforms = [{ name: \"seed\", type: \"float\" }], this.outputShape = [t8, o], this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${e - 1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${e - 1}));\n }\n `;\n }\n};\nvar Vee = `\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`;\nvar Wee = `\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n`;\nvar Tv = nt({ opSnippet: Vee, packedOpSnippet: Wee, checkOutOfBounds: true });\nvar JF = { kernelName: hn, backendName: \"webgl\", kernelFunc: Tv };\nvar e3 = \"return a - b;\";\nvar _v = nt({ opSnippet: e3, packedOpSnippet: e3, supportsComplex: true, cpuKernelImpl: yD });\nvar t3 = { kernelName: _s, backendName: \"webgl\", kernelFunc: _v };\nfunction $v(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { dim: s } = o, a = y.parseAxisParam([s], n.shape), i = Nv({ inputs: { x: n }, backend: e, attrs: { reductionIndices: a, keepDims: false } }), p = w.expandShapeToKeepDim(i.shape, a), u = te({ inputs: { x: i }, backend: e, attrs: { shape: p } }), c = _v({ inputs: { a: n, b: u }, backend: e }), l = Iv({ inputs: { x: c }, backend: e }), m = Tp({ inputs: { x: l }, backend: e, attrs: { axis: a, keepDims: false } }), d = te({ inputs: { x: m }, backend: e, attrs: { shape: p } }), f = Tv({ inputs: { a: l, b: d }, backend: e });\n return e.disposeIntermediateTensorInfo(i), e.disposeIntermediateTensorInfo(u), e.disposeIntermediateTensorInfo(c), e.disposeIntermediateTensorInfo(l), e.disposeIntermediateTensorInfo(m), e.disposeIntermediateTensorInfo(d), f;\n}\nvar r3 = { kernelName: vs, backendName: \"webgl\", kernelFunc: $v };\nfunction Uee(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { numSamples: s, seed: a, normalized: i } = o, p = i ? n : $v({ inputs: { logits: n }, backend: e, attrs: { dim: n.shape.length - 1 } }), u = p.shape[0], c = p.shape[1], l = new hg(u, c, s), m = [[a]], d = e.runWebGLProgram(l, [p], \"int32\", m);\n return i || e.disposeIntermediateTensorInfo(p), d;\n}\nvar o3 = { kernelName: Xn, backendName: \"webgl\", kernelFunc: Uee };\nvar Gee = Ut + `\n return -x;\n`;\nvar Hee = `\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nfunction Kee(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (e.shouldExecuteOnCPU([o])) {\n let s = e.texData.get(o.dataId), [a, i] = JR(s.values, o.shape, o.dtype);\n return e.makeTensorInfo(i, o.dtype, a);\n }\n let n;\n return A().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\") ? n = new Fr(o.shape, Hee) : n = new or(o.shape, Gee), e.runWebGLProgram(n, [o], o.dtype);\n}\nvar n3 = { kernelName: pa, backendName: \"webgl\", kernelFunc: Kee };\nvar qee = Wt.nonMaxSuppressionV3Impl;\nfunction jee(r) {\n w.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p } = o, u = e.readSync(n.dataId), c = e.readSync(s.dataId), { selectedIndices: l } = qee(u, c, a, i, p);\n return e.makeTensorInfo([l.length], \"int32\", new Int32Array(l));\n}\nvar s3 = { kernelName: Zn, backendName: \"webgl\", kernelFunc: jee };\nvar Xee = Wt.nonMaxSuppressionV4Impl;\nfunction Yee(r) {\n w.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p, padToMaxOutputSize: u } = o, c = e.readSync(n.dataId), l = e.readSync(s.dataId), { selectedIndices: m, validOutputs: d } = Xee(c, l, a, i, p, u);\n return [e.makeTensorInfo([m.length], \"int32\", new Int32Array(m)), e.makeTensorInfo([], \"int32\", new Int32Array([d]))];\n}\nvar a3 = { kernelName: Za, backendName: \"webgl\", kernelFunc: Yee };\nvar Qee = Wt.nonMaxSuppressionV5Impl;\nfunction Zee(r) {\n w.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p, softNmsSigma: u } = o, c = e.readSync(n.dataId), l = e.readSync(s.dataId), m = a, d = i, f = p, h = u, { selectedIndices: g, selectedScores: x } = Qee(c, l, m, d, f, h);\n return [e.makeTensorInfo([g.length], \"int32\", new Int32Array(g)), e.makeTensorInfo([x.length], \"float32\", new Float32Array(x))];\n}\nvar i3 = { kernelName: Jn, backendName: \"webgl\", kernelFunc: Zee };\nvar gg = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"indices\"], this.outputShape = [t8, e], this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${n}), float(${o}),\n float(index == coords.y)));\n }\n `;\n }\n};\nvar Jee = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n } = t8, { dtype: s, depth: a, onValue: i, offValue: p } = o, u = y.sizeFromShape(n.shape), c = new gg(u, a, i, p), l = te({ inputs: { x: n }, backend: e, attrs: { shape: [u] } }), m = e.runWebGLProgram(c, [l], s);\n e.disposeIntermediateTensorInfo(l);\n let d = [...n.shape, a], f = te({ inputs: { x: m }, backend: e, attrs: { shape: d } });\n return e.disposeIntermediateTensorInfo(m), f;\n};\nvar u3 = { kernelName: es, backendName: \"webgl\", kernelFunc: Jee };\nfunction sm(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"complex64\") {\n let n = wi({ inputs: { input: o }, backend: e }), s = sm({ inputs: { x: n }, backend: e }), a = $p({ inputs: { input: o }, backend: e }), i = sm({ inputs: { x: a }, backend: e }), p = Or({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeIntermediateTensorInfo(n), e.disposeIntermediateTensorInfo(s), e.disposeIntermediateTensorInfo(a), e.disposeIntermediateTensorInfo(i), p;\n } else\n return Si({ attrs: { shape: o.shape, dtype: o.dtype, value: o.dtype === \"string\" ? \"\" : 0 }, backend: e });\n}\nvar p3 = { kernelName: Sa, backendName: \"webgl\", kernelFunc: sm };\nfunction c3(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"string\")\n throw new Error(\"onesLike is not supported under string dtype\");\n if (o.dtype === \"complex64\") {\n let n = wi({ inputs: { input: o }, backend: e }), s = c3({ inputs: { x: n }, backend: e }), a = $p({ inputs: { input: o }, backend: e }), i = sm({ inputs: { x: a }, backend: e }), p = Or({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeIntermediateTensorInfo(n), e.disposeIntermediateTensorInfo(s), e.disposeIntermediateTensorInfo(a), e.disposeIntermediateTensorInfo(i), p;\n } else\n return Si({ attrs: { shape: o.shape, dtype: o.dtype, value: 1 }, backend: e });\n}\nvar l3 = { kernelName: ca, backendName: \"webgl\", kernelFunc: c3 };\nfunction ete(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o;\n if (t8.length === 1)\n return eg({ inputs: { input: t8[0] }, backend: e, attrs: { dim: n } });\n let s = t8[0].shape, a = t8[0].dtype;\n t8.forEach((c) => {\n y.assertShapesMatch(s, c.shape, \"All tensors passed to stack must have matching shapes\"), y.assert(a === c.dtype, () => \"All tensors passed to stack must have matching dtypes\");\n });\n let i = [], p = t8.map((c) => {\n let l = eg({ inputs: { input: c }, backend: e, attrs: { dim: n } });\n return i.push(l), l;\n }), u = Sv({ inputs: p, backend: e, attrs: { axis: n } });\n return i.forEach((c) => e.disposeIntermediateTensorInfo(c)), u;\n}\nvar m3 = { kernelName: la, backendName: \"webgl\", kernelFunc: ete };\nvar xg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.customUniforms = [{ name: \"value\", type: \"float\" }], this.outputShape = e.map((u, c) => u[0] + t8[c] + u[1]);\n let n = t8.length, s = Re(n), a = e.map((u) => u[0]).join(\",\"), i = e.map((u, c) => u[0] + t8[c]).join(\",\"), p = [\"coords[0]\", \"coords[1]\", \"coords[2]\", \"coords[3]\"].slice(0, n);\n if (n === 1) {\n this.userCode = `\n int start = ${a};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `;\n return;\n }\n this.userCode = `\n ${s} start = ${s}(${a});\n ${s} end = ${s}(${i});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${p}));\n }\n }\n `;\n }\n};\nvar yg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.packedInputs = true, this.packedOutput = true, this.customUniforms = [{ name: \"value\", type: \"float\" }], this.outputShape = e.map((h, g) => h[0] + t8[g] + h[1]);\n let n = t8.length, s = Re(n), a = e.map((h) => h[0]).join(\",\"), i = e.map((h, g) => h[0] + t8[g]).join(\",\"), p = Dt(\"rc\", n), u = Dt(\"source\", n), c = `${p[n - 1]} < ${this.outputShape[n - 1]}`, l = n === 1 ? \"source\" : `vec2(${u.slice(-2).join()})`, m = [`${s} rc = outputLoc;`, `${p[n - 1]} += 1;\n if(${c}) {\n `, n === 1 ? \"\" : `}\n rc = outputLoc;\n ${p[n - 2]} += 1;\n if(${p[n - 2]} < ${this.outputShape[n - 2]}) {`, n === 1 ? \"\" : ` ${p[n - 1]} += 1;\n if(${c}) {`], d = n === 1 ? \"rc < start || rc >= end\" : \"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\", f = \"\";\n for (let h = 0, g = n === 1 ? 2 : 4; h < g; h++)\n f += `\n ${m[h]}\n if (${d}) {\n result[${h}] = float(value);\n } else {\n ${s} source = rc - start;\n result[${h}] = getChannel(getX(${u.join()}), ${l});\n }\n `;\n f += n === 1 ? \"} \" : \"}}\", this.userCode = `\n const ${s} start = ${s}(${a});\n const ${s} end = ${s}(${i});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `;\n }\n};\nvar Ev = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { paddings: s, constantValue: a } = o;\n if (y.sizeFromShape(n.shape) === 0) {\n let u = s.map((c, l) => c[0] + n.shape[l] + c[1]);\n return Si({ backend: e, attrs: { shape: u, value: a, dtype: n.dtype } });\n }\n let i = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") ? new yg(n.shape, s, a) : new xg(n.shape, s, a), p = [[a]];\n return e.runWebGLProgram(i, [n], n.dtype, p);\n};\nvar d3 = { kernelName: ts, backendName: \"webgl\", kernelFunc: Ev };\nvar tte = `\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n`;\nvar rte = `\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n ` + Xr + `\n return result;\n`;\nvar ote = nt({ opSnippet: tte, packedOpSnippet: rte });\nvar f3 = { kernelName: rs, backendName: \"webgl\", kernelFunc: ote };\nfunction nte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o, i = n.shape.length, p = [], u = y.parseAxisParam(s, n.shape), c = u, l = w.getAxesPermutation(c, i), m = n;\n l != null && (m = Ct({ inputs: { x: n }, backend: e, attrs: { perm: l } }), c = w.getInnerMostAxes(c.length, i), p.push(m)), w.assertAxesAreInnerMostDims(\"prod\", c, i);\n let d;\n if (e.shouldExecuteOnCPU([m])) {\n let f = e.texData.get(m.dataId).values, { outVals: h, outShape: g, outDtype: x } = tD(m.shape, m.dtype, f, c);\n d = e.makeTensorInfo(g, x, h);\n } else {\n let [f, h] = w.computeOutAndReduceShapes(m.shape, c), g = y.sizeFromShape(h), x = te({ inputs: { x: m }, backend: e, attrs: { shape: [-1, g] } }), b = ni(n.dtype), C = Yr(x, b, \"prod\", e);\n d = te({ inputs: { x: C }, backend: e, attrs: { shape: f } }), p.push(x), p.push(C);\n }\n if (a) {\n p.push(d);\n let f = w.expandShapeToKeepDim(d.shape, u);\n d = te({ inputs: { x: d }, backend: e, attrs: { shape: f } });\n }\n return p.forEach((f) => e.disposeIntermediateTensorInfo(f)), d;\n}\nvar h3 = { kernelName: ns, backendName: \"webgl\", kernelFunc: nte };\nfunction ste(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { paramsNestedSplits: n, paramsDenseValues: s, indices: a } = t8, { outputRaggedRank: i } = o, p = n.map((x) => e.readSync(x.dataId)), u = n.map((x) => x.shape), c = e.readSync(s.dataId), l = e.readSync(a.dataId), [m, d, f] = rD(p, u, c, s.shape, s.dtype, l, a.shape, i), h = m.map((x) => e.makeTensorInfo([x.length], \"int32\", x)), g = e.makeTensorInfo(f, s.dtype, d);\n return h.concat([g]);\n}\nvar g3 = { kernelName: Qp, backendName: \"webgl\", kernelFunc: ste };\nfunction ate(r) {\n let { inputs: t8, backend: e } = r, { starts: o, limits: n, deltas: s } = t8, a = e.readSync(o.dataId), i = e.readSync(n.dataId), p = e.readSync(s.dataId), [u, c] = oD(a, o.shape, o.dtype, i, n.shape, p, s.shape), l = e.makeTensorInfo([u.length], \"int32\", u), m = e.makeTensorInfo([c.length], o.dtype, c);\n return [l, m];\n}\nvar x3 = { kernelName: Zp, backendName: \"webgl\", kernelFunc: ate };\nfunction ite(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { shape: n, values: s, defaultValue: a, rowPartitionTensors: i } = t8, { rowPartitionTypes: p } = o, u = e.readSync(n.dataId), c = e.readSync(s.dataId), l = e.readSync(a.dataId), m = i.map((g) => e.readSync(g.dataId)), d = i.map((g) => g.shape), [f, h] = nD(u, n.shape, c, s.shape, s.dtype, l, a.shape, m, d, p);\n return e.makeTensorInfo(f, s.dtype, h);\n}\nvar y3 = { kernelName: Jp, backendName: \"webgl\", kernelFunc: ite };\nvar Rv = (r) => {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, step: s, dtype: a } = e, i = sD(o, n, s, a);\n return t8.makeTensorInfo([i.length], a, i);\n};\nvar b3 = { kernelName: ma, backendName: \"webgl\", kernelFunc: Rv };\nvar ute = \"return 1.0 / x;\";\nvar pte = xe({ opSnippet: ute });\nvar C3 = { kernelName: ss, backendName: \"webgl\", kernelFunc: pte };\nvar cte = Ut + `\n return (x < 0.0) ? 0.0 : x;\n`;\nvar lte = `\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar mte = xe({ opSnippet: cte, packedOpSnippet: lte });\nvar w3 = { kernelName: as, backendName: \"webgl\", kernelFunc: mte };\nvar dte = Ut + `\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`;\nvar fte = `\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar hte = xe({ opSnippet: dte, packedOpSnippet: fte });\nvar S3 = { kernelName: ps, backendName: \"webgl\", kernelFunc: hte };\nvar bg = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"A\"], this.outputShape = [];\n let [a, i, p, u] = t8;\n this.outputShape = [a, e, o, u];\n let c = [n && e > 1 ? i - 1 : i, n && o > 1 ? p - 1 : p], l = [n && e > 1 ? e - 1 : e, n && o > 1 ? o - 1 : o], m;\n s ? m = \"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\" : m = \"vec2(yRC) * effectiveInputOverOutputRatioRC\", this.userCode = `\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0] / l[0]},\n ${c[1] / l[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${p}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `;\n }\n};\nvar Cg = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = [];\n let [a, i, p, u] = t8;\n this.outputShape = [a, e, o, u];\n let c = [n && e > 1 ? i - 1 : i, n && o > 1 ? p - 1 : p], l = [n && e > 1 ? e - 1 : e, n && o > 1 ? o - 1 : o], m;\n s ? m = \"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\" : m = \"vec3(yRC) * effectiveInputOverOutputRatioRC\", this.userCode = `\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0] / l[0]},\n ${c[1] / l[1]},\n ${c[1] / l[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${p}.0,\n ${p}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${u - 1};\n bool hasNextRow = coords.z < ${o - 1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `;\n }\n};\nfunction gte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, halfPixelCenters: a, size: i } = o, [p, u] = i, c = A().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\") ? new Cg(n.shape, p, u, s, a) : new bg(n.shape, p, u, s, a);\n return e.runWebGLProgram(c, [n], \"float32\");\n}\nvar I3 = { kernelName: us, backendName: \"webgl\", kernelFunc: gte };\nvar wg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"dy\"], this.outputShape = [], this.outputShape = e;\n let [, n, s] = e, [, a, i] = t8, p = [o && a > 1 ? n - 1 : n, o && i > 1 ? s - 1 : s], u = [o && a > 1 ? a - 1 : a, o && i > 1 ? i - 1 : i], c = p[0] / u[0], l = p[1] / u[1], m = 1 / c, d = 1 / l, f = Math.ceil(m) * 2 + 2, h = Math.ceil(d) * 2 + 2;\n this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${l});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${f});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${a}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${n - 1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${s - 1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `;\n }\n};\nfunction xte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, i = new wg(s.shape, n.shape, a);\n return e.runWebGLProgram(i, [s], s.dtype);\n}\nvar v3 = { kernelName: ei, backendName: \"webgl\", kernelFunc: xte };\nvar Sg = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"A\"], this.outputShape = [];\n let [a, i, p, u] = t8;\n this.outputShape = [a, e, o, u];\n let c = [n && e > 1 ? i - 1 : i, n && o > 1 ? p - 1 : p], l = [n && e > 1 ? e - 1 : e, n && o > 1 ? o - 1 : o], m = n ? \"0.5\" : \"0.0\", d;\n s ? d = \"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\" : d = \"vec2(yRC) * effectiveInputOverOutputRatioRC\", this.userCode = `\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0] / l[0]},\n ${c[1] / l[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${p}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `;\n }\n};\nvar Ig = class {\n constructor(t8, e, o, n, s) {\n this.variableNames = [\"A\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = [];\n let [a, i, p, u] = t8;\n this.outputShape = [a, e, o, u];\n let c = [n && e > 1 ? i - 1 : i, n && o > 1 ? p - 1 : p], l = [n && e > 1 ? e - 1 : e, n && o > 1 ? o - 1 : o], m = n ? \"0.5\" : \"0.0\", d;\n s ? d = \"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\" : d = \"vec3(yRC) * effectiveInputOverOutputRatioRC\", this.userCode = `\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0] / l[0]},\n ${c[1] / l[1]},\n ${c[1] / l[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${p}.0,\n ${p}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${d};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${u - 1};\n bool hasNextRow = coords.z < ${o - 1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `;\n }\n};\nfunction yte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, halfPixelCenters: a, size: i } = o, [p, u] = i, c = A().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\") ? new Ig(n.shape, p, u, s, a) : new Sg(n.shape, p, u, s, a);\n return e.runWebGLProgram(c, [n], n.dtype);\n}\nvar k3 = { kernelName: is, backendName: \"webgl\", kernelFunc: yte };\nvar vg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"dy\"], this.outputShape = [], this.outputShape = e;\n let [, n, s] = e, [, a, i] = t8, p = [o && a > 1 ? n - 1 : n, o && i > 1 ? s - 1 : s], u = [o && a > 1 ? a - 1 : a, o && i > 1 ? i - 1 : i], c = p[0] / u[0], l = p[1] / u[1], m = 1 / c, d = 1 / l, f = Math.ceil(m) * 2 + 2, h = Math.ceil(d) * 2 + 2;\n this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${l});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${d});\n\n const int winHeight = int(${f});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${a}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float sourceFracRow =\n float(${p[0]}) *\n (float(dyR) / float(${u[0]}));\n\n float sourceFracCol =\n float(${p[1]}) *\n (float(dyC) / float(${u[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${n}) - 1),\n ${o} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 1),\n ${o} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `;\n }\n};\nfunction bte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, i = new vg(s.shape, n.shape, a);\n return e.runWebGLProgram(i, [s], s.dtype);\n}\nvar N3 = { kernelName: Ja, backendName: \"webgl\", kernelFunc: bte };\nvar kg = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"];\n let o = t8.length;\n if (o > 4)\n throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);\n if (this.outputShape = t8, o === 1) {\n this.userCode = `\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t8[0]} - coord - 1));\n }\n `;\n return;\n }\n let n = (i) => e.indexOf(i) !== -1 && t8[i] !== 1 ? `${t8[i]} - coords[${i}] - 1` : `coords[${i}]`, s = t8.map((i, p) => n(p)).join(\",\"), a = Re(o);\n this.userCode = `\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `;\n }\n};\nvar Ng = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"], this.packedInputs = true, this.packedOutput = true;\n let o = t8.length;\n if (o > 4)\n throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);\n this.outputShape = t8;\n let n = Dt(\"rc\", o), s = `${n[o - 1]} + 1 < ${this.outputShape[o - 1]}`, a = `${n[o - 2]} + 1 < ${this.outputShape[o - 2]}`, i = Re(o);\n o === 1 ? this.userCode = `\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t8[0]} - rc - 1),\n ${t8[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t8[0]} - (rc + 1) - 1),\n ${t8[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n ` : this.userCode = `\n void main() {\n ${i} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${p(n.slice())};\n if(${s}){\n result.g = ${u(n.slice())};\n }\n if(${a}) {\n result.b = ${c(n.slice())};\n if(${s}) {\n result.a = ${l(n.slice())};\n }\n }\n setOutput(result);\n }\n `;\n function p(f) {\n return m(f);\n }\n function u(f) {\n return f[o - 1] = \"(\" + f[o - 1] + \" + 1)\", m(f);\n }\n function c(f) {\n return f[o - 2] = \"(\" + f[o - 2] + \" + 1)\", m(f);\n }\n function l(f) {\n return f[o - 1] = \"(\" + f[o - 1] + \" + 1)\", f[o - 2] = \"(\" + f[o - 2] + \" + 1)\", m(f);\n }\n function m(f) {\n let h = t8.map((b, C) => d(C, f)), g = h.join(\",\"), x = h.slice(-2).join(\",\");\n return `getChannel(getX(${g}), vec2(${x}))`;\n }\n function d(f, h) {\n return e.indexOf(f) !== -1 && t8[f] !== 1 ? `${t8[f]} - ${h[f]} - 1` : `${h[f]}`;\n }\n }\n};\nfunction Cte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dims: s } = o, a = n.shape.length, i = y.parseAxisParam(s, n.shape);\n if (a === 0)\n return At({ inputs: { x: n }, backend: e });\n let p = A().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\") ? new Ng(n.shape, i) : new kg(n.shape, i);\n return e.runWebGLProgram(p, [n], n.dtype);\n}\nvar T3 = { kernelName: cs, backendName: \"webgl\", kernelFunc: Cte };\nvar Tg = class {\n constructor(t8, e) {\n this.variableNames = [\"Image\"], this.outputShape = [], this.customUniforms = [{ name: \"params\", type: \"vec4\" }];\n let o = t8[1], n = t8[2];\n this.outputShape = t8;\n let s = \"\";\n typeof e == \"number\" ? s = `float outputValue = ${e.toFixed(2)};` : s = `\n vec3 fill = vec3(${e.join(\",\")});\n float outputValue = fill[coords[3]];`, this.userCode = `\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${s}\n if(coordX >= 0 && coordX < ${n} && coordY >= 0 && coordY < ${o}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `;\n }\n};\nvar _3 = { kernelName: As, backendName: \"webgl\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { image: o } = r, { radians: n, fillValue: s, center: a } = t8, i = e, p = new Tg(o.shape, s), [u, c] = w.getImageCenter(a, o.shape[1], o.shape[2]), l = [[u, c, Math.sin(n), Math.cos(n)]];\n return i.runWebGLProgram(p, [o], o.dtype, l);\n} };\nvar wte = `\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n`;\nvar Ste = xe({ opSnippet: wte });\nvar $3 = { kernelName: ls, backendName: \"webgl\", kernelFunc: Ste };\nvar Ite = \"return inversesqrt(x);\";\nvar vte = xe({ opSnippet: Ite, cpuKernelImpl: aD });\nvar E3 = { kernelName: ms, backendName: \"webgl\", kernelFunc: vte };\nvar vu = class {\n constructor(t8, e, o, n, s, a, i = true, p = false) {\n this.variableNames = [\"updates\", \"indices\", \"defaultValue\"], this.outputShape = a;\n let u = Re(s.length), c = Re(a.length), l = \"\";\n o === 1 ? l = \"i\" : o === 2 && (l = \"i, j\");\n let m = `getIndices(${l})`, d = \"\";\n n === 1 ? d = \"i\" : n === 2 && (d = \"i, coords[1]\");\n let f = `getUpdates(${d})`, h = \"\";\n p && (h = \"coords[0], coords[1]\");\n let g = `getDefaultValue(${h})`, x = e > 1 ? \"strides[j]\" : \"strides\";\n this.userCode = `\n ${u} strides = ${u}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t8}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${m});\n flattenedIndex += index * ${x};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(${g}, sum, float(found)));\n }\n `;\n }\n};\nvar _g = class {\n constructor(t8, e, o, n, s, a, i = true, p = false) {\n this.variableNames = [\"updates\", \"indices\", \"defaultValue\"], this.packedInputs = true, this.packedOutput = true, this.outputShape = a;\n let u = Re(s.length), c = Re(a.length), l = \"\";\n o === 1 ? l = \"i\" : o === 2 && (l = \"i, j\");\n let m = `getIndices(${l})`, d = \"\";\n n === 1 ? d = \"i\" : n === 2 && (d = \"i, coords[1]\");\n let f = `getUpdates(${d})`, h = \"\";\n p && (h = \"coords[0], coords[1]\");\n let g = `getDefaultValue(${h})`, x = e > 1 ? \"strides[j]\" : \"strides\", b = e > 1 ? \"strides[j + 1]\" : \"strides\";\n this.userCode = `\n ${u} strides = ${u}(${s});\n\n void main() {\n ${c} coords = getOutputCoords();\n vec4 sum = vec4(0.);\n vec4 found = vec4(0.);\n for (int i = 0; i < ${t8}; i+=2) {\n ivec2 flattenedIndex = ivec2(0);\n for (int j = 0; j < ${e}; j+=2) {\n ivec4 index = round(${m});\n flattenedIndex += index.xz * ${x};\n if (j + 1 < ${e}) {\n flattenedIndex += index.yw * ${b};\n }\n }\n if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] ||\n flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) {\n vec4 updVals = ${f};\n if (flattenedIndex[0] == coords[0]) {\n sum.xy += updVals.xy;\n found.xy = vec2(1.);\n } else if (flattenedIndex[0] == coords[0] + 1) {\n sum.zw += updVals.xy;\n found.zw = vec2(1.);\n }\n if (flattenedIndex[1] == coords[0]) {\n sum.xy += updVals.zw;\n found.xy = vec2(1.);\n } else if (flattenedIndex[1] == coords[0] + 1) {\n sum.zw += updVals.zw;\n found.zw = vec2(1.);\n }\n }\n }\n setOutput(mix(${g}, sum, found));\n }\n `;\n }\n};\nfunction kte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n, updates: s } = t8, { shape: a } = o, { sliceRank: i, numUpdates: p, sliceSize: u, strides: c, outputSize: l } = w.calculateShapes(s, n, a), m = [l / u, u];\n if (l === 0)\n return e.makeTensorInfo(a, n.dtype);\n let d = te({ inputs: { x: n }, backend: e, attrs: { shape: [p, i] } }), f = te({ inputs: { x: s }, backend: e, attrs: { shape: [p, u] } }), h = e.makeTensorInfo([], \"float32\", new Float32Array([0])), g;\n A().getBool(\"WEBGL_PACK\") ? g = new _g(p, i, d.shape.length, f.shape.length, c, m) : g = new vu(p, i, d.shape.length, f.shape.length, c, m);\n let x = e.runWebGLProgram(g, [f, d, h], f.dtype), b = te({ inputs: { x }, backend: e, attrs: { shape: a } });\n return e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), e.disposeIntermediateTensorInfo(x), e.disposeIntermediateTensorInfo(h), b;\n}\nvar R3 = { kernelName: ds, backendName: \"webgl\", kernelFunc: kte };\nvar $g = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"sortedSequence\", \"values\"], this.customUniforms = [{ name: \"numInputs\", type: \"int\" }], this.outputShape = [t8, o];\n let s = \"while (left < right) {\", a = `for (int i = 0; i < ${Math.ceil(Math.log2(e + 1))}; ++i) { if (left >= right) break;`, i = A().getNumber(\"WEBGL_VERSION\") === 2 ? s : a, p = n === \"left\" ? \"<\" : \"<=\";\n this.userCode = `\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${i}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${p} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `;\n }\n};\nfunction Nte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sortedSequence: n, values: s } = t8, { side: a } = o, i = new $g(n.shape[0], n.shape[1], s.shape[1], a), p = [[n.shape[1]]];\n return e.runWebGLProgram(i, [n, s], \"int32\", p);\n}\nvar D3 = { kernelName: hs, backendName: \"webgl\", kernelFunc: Nte };\nvar Eg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"c\", \"a\", \"b\"], this.outputShape = e;\n let n, s;\n if (o > 4)\n throw Error(`Where for rank ${o} is not yet supported`);\n if (o === 1)\n s = \"resRC\", n = \"resRC\";\n else {\n let i = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\"], p = [], u = [];\n for (let c = 0; c < e.length; c++)\n u.push(`${i[c]}`), c < t8 && p.push(`${i[c]}`);\n n = p.join(), s = u.join();\n }\n let a = Re(o);\n this.userCode = `\n void main() {\n ${a} resRC = getOutputCoords();\n float cVal = getC(${n});\n if (cVal >= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `;\n }\n};\nfunction Tte(r) {\n let { inputs: t8, backend: e } = r, { condition: o, t: n, e: s } = t8, a = new Eg(o.shape.length, n.shape, n.shape.length);\n return e.runWebGLProgram(a, [o, n, s], dt(n.dtype, s.dtype));\n}\nvar A3 = { kernelName: fa, backendName: \"webgl\", kernelFunc: Tte };\nvar _te = `\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${w.SELU_SCALEALPHA};\n float scale = ${w.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`;\nvar $te = xe({ opSnippet: _te });\nvar F3 = { kernelName: gs, backendName: \"webgl\", kernelFunc: $te };\nvar Ete = Po + `\n return 1.0 / (1.0 + exp(-1.0 * x));\n`;\nvar Rte = `\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;\nvar Dte = xe({ opSnippet: Ete, packedOpSnippet: Rte, cpuKernelImpl: uD });\nvar P3 = { kernelName: Cs, backendName: \"webgl\", kernelFunc: Dte };\nvar Ate = `\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`;\nvar Fte = xe({ opSnippet: Ate });\nvar O3 = { kernelName: bs, backendName: \"webgl\", kernelFunc: Fte };\nvar Pte = Po + `\n return sin(x);\n`;\nvar Ote = `\n vec4 result = sin(x);\n bvec4 isNaN = isnan(x);\n ${Xr}\n return result;\n`;\nvar Mte = xe({ opSnippet: Pte, packedOpSnippet: Ote });\nvar M3 = { kernelName: xs, backendName: \"webgl\", kernelFunc: Mte };\nvar Lte = `\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`;\nvar Bte = xe({ opSnippet: Lte });\nvar L3 = { kernelName: ys, backendName: \"webgl\", kernelFunc: Bte };\nvar zte = `\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n`;\nvar Vte = xe({ opSnippet: zte });\nvar B3 = { kernelName: ws, backendName: \"webgl\", kernelFunc: Vte };\nvar Wte = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, paddings: a } = o;\n y.assert(n.shape.length <= 4, () => \"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");\n let i = s.reduce((x, b) => x * b), p = [[0, 0]];\n p.push(...a);\n for (let x = 1 + s.length; x < n.shape.length; ++x)\n p.push([0, 0]);\n let u = [], c = Ev({ inputs: { x: n }, backend: e, attrs: { paddings: p, constantValue: 0 } }), l = w.getReshaped(c.shape, s, i, false), m = w.getPermuted(l.length, s.length, false), d = w.getReshapedPermuted(c.shape, s, i, false), f = te({ inputs: { x: c }, backend: e, attrs: { shape: l } }), h = Ct({ inputs: { x: f }, backend: e, attrs: { perm: m } }), g = te({ inputs: { x: h }, backend: e, attrs: { shape: d } });\n return u.push(c), u.push(f), u.push(h), u.forEach((x) => e.disposeIntermediateTensorInfo(x)), g;\n};\nvar z3 = { kernelName: ga, backendName: \"webgl\", kernelFunc: Wte };\nfunction Ute(r) {\n let { inputs: t8, backend: e } = r, { indices: o, values: n, denseShape: s, defaultValue: a } = t8;\n if (s.shape.length !== 1)\n throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);\n if (o.shape.length !== 2)\n throw new Error(`Indices must be a matrix, saw:\n ${o.shape}`);\n if (n.shape.length !== 1)\n throw new Error(`Values must be a vector, saw:\n ${n.shape}`);\n if (a.shape.length !== 0)\n throw new Error(`Default value must be a scalar, saw:\n ${a.shape}`);\n let i = e.readSync(o.dataId), p = e.readSync(n.dataId), u = e.readSync(s.dataId), c = e.readSync(a.dataId)[0], [l, m, d, f, h] = cD(i, o.shape, o.dtype, p, n.dtype, u, c);\n return [e.makeTensorInfo(m, o.dtype, l), e.makeTensorInfo([m[0]], n.dtype, d), e.makeTensorInfo([f.length], \"bool\", new Uint8Array(f.map((g) => Number(g)))), e.makeTensorInfo([h.length], o.dtype, new Int32Array(h))];\n}\nvar V3 = { kernelName: ji, backendName: \"webgl\", kernelFunc: Ute };\nfunction Gte(r) {\n let { inputs: t8, backend: e } = r, { inputIndices: o, inputShape: n, newShape: s } = t8;\n if (o.shape.length !== 2)\n throw new Error(`Input indices should be a matrix but received shape ${o.shape}`);\n if (n.shape.length !== 1)\n throw new Error(`Input shape should be a vector but received shape ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Target shape should be a vector but received shape ${s.shape}`);\n let a = Array.from(e.readSync(n.dataId)), i = e.readSync(o.dataId), p = Array.from(e.readSync(s.dataId)), [u, c, l] = lD(i, o.shape, o.dtype, a, p);\n return [e.makeTensorInfo(c, o.dtype, u), e.makeTensorInfo([l.length], s.dtype, new Int32Array(l))];\n}\nvar W3 = { kernelName: ti, backendName: \"webgl\", kernelFunc: Gte };\nfunction Hte(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n if (o.shape.length < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.shape.length !== 1)\n throw new Error(`Indices should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);\n let a = e.readSync(o.dataId), i = e.readSync(n.dataId), p = e.readSync(s.dataId), [u, c] = lh(a, o.shape, o.dtype, i, p, true);\n return e.makeTensorInfo(c, o.dtype, u);\n}\nvar U3 = { kernelName: ya, backendName: \"webgl\", kernelFunc: Hte };\nfunction Kte(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n if (o.shape.length < 1)\n throw new Error(\"Data should be at least 1 dimensional but received scalar\");\n if (n.shape.length !== 1)\n throw new Error(`Indices should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);\n let a = e.readSync(o.dataId), i = e.readSync(n.dataId), p = e.readSync(s.dataId), [u, c] = lh(a, o.shape, o.dtype, i, p);\n return e.makeTensorInfo(c, o.dtype, u);\n}\nvar G3 = { kernelName: ba, backendName: \"webgl\", kernelFunc: Kte };\nfunction qte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sparseIndices: n, sparseValues: s, defaultValue: a } = t8, { outputShape: i } = o, { sliceRank: p, numUpdates: u, sliceSize: c, strides: l, outputSize: m } = w.calculateShapes(s, n, i), d = false;\n if (s.dtype === \"string\") {\n let x = e.bufferSync(n), b = e.bufferSync(s), C = y.decodeString(e.readSync(a.dataId)[0]), S = iD(x, b, i, m, c, u, p, l, C, d);\n return e.makeTensorInfo(i, S.dtype, S.values);\n }\n let f = new vu(u, p, n.shape.length, s.shape.length, l, [m, 1], d), h = e.runWebGLProgram(f, [s, n, a], s.dtype), g = te({ inputs: { x: h }, backend: e, attrs: { shape: i } });\n return e.disposeIntermediateTensorInfo(h), g;\n}\nvar H3 = { kernelName: ks, backendName: \"webgl\", kernelFunc: qte };\nfunction jte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { numOrSizeSplits: s, axis: a } = o, i = y.parseAxisParam(a, n.shape)[0], p = w.prepareSplitSize(n, s, i), u = n.shape.length, c = new Array(u).fill(0), l = n.shape.slice();\n return p.map((m) => {\n let d = [...l];\n d[i] = m;\n let f = Gs({ inputs: { x: n }, backend: e, attrs: { begin: c, size: d } });\n return c[i] += m, f;\n });\n}\nvar K3 = { kernelName: xa, backendName: \"webgl\", kernelFunc: jte };\nvar q3 = \"return sqrt(x);\";\nvar Xte = xe({ opSnippet: q3, packedOpSnippet: q3, cpuKernelImpl: mD });\nvar j3 = { kernelName: Ss, backendName: \"webgl\", kernelFunc: Xte };\nvar Yte = \"return x * x;\";\nvar Qte = xe({ opSnippet: Yte });\nvar X3 = { kernelName: Xi, backendName: \"webgl\", kernelFunc: Qte };\nvar Y3 = \"return (a - b) * (a - b);\";\nvar Zte = nt({ opSnippet: Y3, packedOpSnippet: Y3 });\nvar Q3 = { kernelName: Ns, backendName: \"webgl\", kernelFunc: Zte };\nfunction Jte(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8;\n if (n.dtype !== \"string\")\n throw new Error(\"Input must be of datatype string\");\n let s = e.readSync(n.dataId), a = w.fromUint8ToStringArray(s), i = dD(a, \"string\", o);\n return e.makeTensorInfo(n.shape, \"string\", i);\n}\nvar Z3 = { kernelName: Ou, backendName: \"webgl\", kernelFunc: Jte };\nfunction ere({ inputs: r, attrs: t8, backend: e }) {\n let { x: o } = r, n = Ut + `\n return x > 0.0 ? 1.0 : float(${t8.alpha});\n `, s = new or(o.shape, n);\n return e.runWebGLProgram(s, [o], o.dtype);\n}\nvar J3 = { kernelName: So, backendName: \"webgl\", kernelFunc: ere };\nvar Rg = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.outputShape = o;\n let n = o.length, s = Re(o.length), a = Re(o.length), i = \"\";\n if (n === 1)\n i = \"coords * strides + begin\";\n else {\n let p = 0;\n i = o.map((u, c) => (p++, o.length === 1 ? `coords * strides[${c}] + begin[${c}]` : `coords[${p - 1}] * strides[${c}] + begin[${c}]`)).join(\",\");\n }\n this.userCode = `\n ${s} begin = ${s}(${t8});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${i}));\n }\n `;\n }\n};\nfunction tre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, end: a, strides: i, beginMask: p, endMask: u, ellipsisMask: c, newAxisMask: l, shrinkAxisMask: m } = o, { finalShapeSparse: d, finalShape: f, isIdentity: h, sliceDim0: g, isSimpleSlice: x, begin: b, end: C, strides: S } = ct.sliceInfo(n.shape, s, a, i, p, u, c, l, m), k;\n if (h)\n k = te({ inputs: { x: n }, backend: e, attrs: { shape: f } });\n else if (g || x) {\n y.assert(n.shape.length >= 1, () => `Input must have rank at least 1, got: ${n.shape.length}`);\n let E = ct.computeOutShape(b, C, S), R = Gs({ inputs: { x: n }, backend: e, attrs: { begin: b, size: E } });\n k = te({ inputs: { x: R }, backend: e, attrs: { shape: f } }), e.disposeIntermediateTensorInfo(R);\n } else if (e.shouldExecuteOnCPU([n])) {\n let R = e.readSync(n.dataId), D = me(n.shape, n.dtype, R), P = fD(d, D, S, b);\n k = e.makeTensorInfo(f, n.dtype, P.values);\n } else {\n let R = new Rg(b, S, d);\n k = e.runWebGLProgram(R, [n], n.dtype);\n }\n let _ = te({ inputs: { x: k }, backend: e, attrs: { shape: f } });\n return e.disposeIntermediateTensorInfo(k), _;\n}\nvar eP = { kernelName: Ts, backendName: \"webgl\", kernelFunc: tre };\nfunction rre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { separator: n, nGramWidths: s, leftPad: a, rightPad: i, padWidth: p, preserveShortSequences: u } = o, { data: c, dataSplits: l } = t8, m = e.readSync(c.dataId), d = e.readSync(l.dataId), [f, h] = hD(m, d, n, s, a, i, p, u);\n return [e.makeTensorInfo([f.length], \"string\", f), e.makeTensorInfo(l.shape, \"int32\", h)];\n}\nvar tP = { kernelName: Ca, backendName: \"webgl\", kernelFunc: rre };\nfunction ore(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { skipEmpty: n } = o, { input: s, delimiter: a } = t8;\n if (s.dtype !== \"string\")\n throw new Error(\"Input must be of datatype string\");\n if (s.shape.length !== 1)\n throw new Error(`Input must be a vector, got shape: ${s.shape}`);\n if (a.shape.length !== 0)\n throw new Error(`Delimiter must be a scalar, got shape: ${a.shape}`);\n let i = e.readSync(s.dataId), p = e.readSync(a.dataId)[0], [u, c, l] = gD(i, p, n), m = c.length;\n return [e.makeTensorInfo([m, 2], \"int32\", u), e.makeTensorInfo([m], \"string\", c), e.makeTensorInfo([2], \"int32\", new Int32Array(l))];\n}\nvar rP = { kernelName: Yi, backendName: \"webgl\", kernelFunc: ore };\nfunction nre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { numBuckets: n } = o, { input: s } = t8;\n if (s.dtype !== \"string\")\n throw new Error(\"Input must be of datatype string\");\n if (n <= 0)\n throw new Error(\"Number of buckets must be at least 1\");\n let a = e.readSync(s.dataId), i = xD(a, n);\n return e.makeTensorInfo(s.shape, \"int32\", i);\n}\nvar oP = { kernelName: Qi, backendName: \"webgl\", kernelFunc: nre };\nvar sre = \"return tan(x);\";\nvar are = xe({ opSnippet: sre });\nvar nP = { kernelName: $s, backendName: \"webgl\", kernelFunc: are };\nvar ire = `\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`;\nvar ure = xe({ opSnippet: ire });\nvar sP = { kernelName: Es, backendName: \"webgl\", kernelFunc: ure };\nfunction pre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { tensor: n, indices: s, updates: a } = t8, {} = o, { sliceRank: i, numUpdates: p, sliceSize: u, strides: c, outputSize: l } = w.calculateShapes(a, s, n.shape), m = [l / u, u];\n if (l === 0)\n return e.makeTensorInfo(n.shape, s.dtype);\n let d = te({ inputs: { x: s }, backend: e, attrs: { shape: [p, i] } }), f = te({ inputs: { x: a }, backend: e, attrs: { shape: [p, u] } }), h = te({ inputs: { x: n }, backend: e, attrs: { shape: m } }), g = new vu(p, i, d.shape.length, f.shape.length, c, m, false, true), x = e.runWebGLProgram(g, [f, d, h], h.dtype), b = te({ inputs: { x }, backend: e, attrs: { shape: n.shape } });\n return e.disposeIntermediateTensorInfo(d), e.disposeIntermediateTensorInfo(f), e.disposeIntermediateTensorInfo(h), e.disposeIntermediateTensorInfo(x), b;\n}\nvar aP = { kernelName: fs, backendName: \"webgl\", kernelFunc: pre };\nvar Dg = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"];\n let o = new Array(t8.length);\n for (let a = 0; a < o.length; a++)\n o[a] = t8[a] * e[a];\n this.outputShape = o, this.rank = o.length;\n let n = Re(this.rank), s = cre(t8);\n this.userCode = `\n void main() {\n ${n} resRC = getOutputCoords();\n setOutput(getA(${s}));\n }\n `;\n }\n};\nfunction cre(r) {\n let t8 = r.length;\n if (t8 > 5)\n throw Error(`Tile for rank ${t8} is not yet supported`);\n if (t8 === 1)\n return `imod(resRC, ${r[0]})`;\n let e = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\", \"resRC.u\"], o = [];\n for (let n = 0; n < r.length; n++)\n o.push(`imod(${e[n]}, ${r[n]})`);\n return o.join();\n}\nfunction Dv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reps: s } = o;\n if (n.dtype === \"string\" || n.shape.length > 5) {\n let p = e.readSync(n.dataId), u = n.dtype === \"string\" ? p.map((m) => y.decodeString(m)) : p, c = me(n.shape, n.dtype, u), l = bD(c, s);\n return e.makeTensorInfo(l.shape, l.dtype, l.values);\n }\n let a = new Dg(n.shape, s);\n return e.runWebGLProgram(a, [n], n.dtype);\n}\nvar iP = { kernelName: po, backendName: \"webgl\", kernelFunc: Dv };\nvar Ag = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"indices\"], this.customUniforms = [{ name: \"n\", type: \"int\" }, { name: \"firstPass\", type: \"int\" }, { name: \"negativeInf\", type: \"float\" }, { name: \"dir\", type: \"int\" }, { name: \"inc\", type: \"int\" }], this.outputShape = t8, this.userCode = `\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `;\n }\n};\nvar Fg = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"indices\"], this.customUniforms = [{ name: \"n\", type: \"int\" }, { name: \"firstPass\", type: \"int\" }, { name: \"k\", type: \"int\" }], this.outputShape = t8, this.userCode = `\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `;\n }\n};\nfunction Rp(r, t8) {\n t8 !== null && r.disposeIntermediateTensorInfo(t8);\n}\nfunction uP(r) {\n let t8 = 1;\n for (; t8 < r; )\n t8 *= 2;\n return t8;\n}\nfunction lre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { k: s, sorted: a } = o, i = A().getNumber(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\"), p = A().getNumber(\"TOPK_K_CPU_HANDOFF_THRESHOLD\"), u = n.shape, c = u[u.length - 1];\n if (e.shouldExecuteOnCPU([n]) || c < i || s > p) {\n let P = e.readSync(n.dataId), [O, M] = CD(P, u, n.dtype, s, a);\n return [e.makeTensorInfo(O.shape, O.dtype, O.values), e.makeTensorInfo(M.shape, M.dtype, M.values)];\n }\n if (s === 0)\n return u[u.length - 1] = 0, [e.makeTensorInfo(u, n.dtype, []), e.makeTensorInfo(u, \"int32\", [])];\n if (c === 1)\n return [n, Si({ attrs: { shape: u, dtype: \"int32\", value: 0 }, backend: e })];\n let l = e.texData.get(n.dataId), m = l !== null && l.isPacked, d = m ? e.unpackTensor(n) : n, h = y.sizeFromShape(u) / c, g = te({ inputs: { x: d }, attrs: { shape: [h, c] }, backend: e });\n m && Rp(e, d);\n let x = uP(s), b = uP(c), C = null, S = () => C === null ? [g, g] : [g, C], k = (P, O, M) => {\n let L = S(), B = new Ag(M), U = [[c], [C === null ? 1 : 0], [Number.NEGATIVE_INFINITY], [P], [O]], j = C;\n C = e.runWebGLProgram(B, L, \"int32\", U), Rp(e, j);\n };\n for (let P = 1; P < x; P *= 2) {\n let O = P * 2;\n for (let M = P; M >= 1; M /= 2)\n k(O, M, [h, b]);\n }\n for (let P = b; P > x; P /= 2) {\n let O = S(), M = new Fg([h, P / 2]), B = [[c], [C === null ? 1 : 0], [x]], z = C;\n C = e.runWebGLProgram(M, O, \"int32\", B), Rp(e, z);\n let U = x / 2, j = U * 2;\n for (let q = U; q >= 1; q /= 2)\n k(j, q, C.shape);\n }\n let _ = C;\n C = Gs({ inputs: { x: C }, backend: e, attrs: { begin: 0, size: [h, s] } }), Rp(e, _);\n let E = kv({ inputs: { x: g, indices: C }, backend: e, attrs: { axis: 1, batchDims: 1 } });\n Rp(e, g);\n let R = u.slice(0, -1);\n R.push(s), _ = C, C = te({ inputs: { x: C }, attrs: { shape: R }, backend: e }), Rp(e, _);\n let D = E;\n return E = te({ inputs: { x: E }, attrs: { shape: R }, backend: e }), Rp(e, D), [E, C];\n}\nvar pP = { kernelName: Rs, backendName: \"webgl\", kernelFunc: lre };\nvar Pg = class {\n constructor(t8, e, o, n, s, a) {\n this.variableNames = [\"Image\", \"Transforms\"], this.outputShape = a;\n let i = o === \"nearest\" ? 1 : 2, p;\n switch (n) {\n case \"constant\":\n p = 1;\n break;\n case \"reflect\":\n p = 2;\n break;\n case \"wrap\":\n p = 3;\n break;\n case \"nearest\":\n p = 4;\n break;\n default:\n p = 1;\n break;\n }\n this.userCode = `\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${p} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${p} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${p} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${t8} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${s});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${e}));\n float mapY = mapCoord(inY, float(${t8}));\n\n if (${i} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `;\n }\n};\nfunction mre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n, transforms: s } = t8, { interpolation: a, fillMode: i, fillValue: p, outputShape: u } = o, [c, l, m, d] = n.shape, [f, h] = u != null ? u : [l, m], g = [c, f, h, d], x = new Pg(l, m, a, i, p, g);\n return e.runWebGLProgram(x, [n, s], \"float32\");\n}\nvar cP = { kernelName: Ds, backendName: \"webgl\", kernelFunc: mre };\nfunction dre(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { axis: n } = e, { x: s } = t8;\n Vs(s, \"unique\"), console.warn(\"WARNING: \", \"UI might be locked temporarily as data is being downloaded\");\n let a = o.readSync(s.dataId), { outputValues: i, outputShape: p, indices: u } = wD(a, n, s.shape, s.dtype);\n return [o.makeTensorInfo(p, s.dtype, i), o.makeTensorInfo([u.length], \"int32\", u)];\n}\nvar lP = { kernelName: Zi, backendName: \"webgl\", kernelFunc: dre };\nfunction fre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { value: n } = t8, { axis: s } = o;\n s < 0 && (s += n.shape.length);\n let a = n, i = a.shape.length, p = n.shape[s], u = new Array(i - 1), c = 0;\n for (let h = 0; h < i; h++)\n h !== s && (u[c++] = a.shape[h]);\n let l = [], m = new Array(i).fill(0), d = a.shape.slice();\n d[s] = 1;\n let f = new Array(p);\n for (let h = 0; h < f.length; h++) {\n m[s] = h;\n let g = Gs({ inputs: { x: a }, backend: e, attrs: { begin: m, size: d } }), x = te({ inputs: { x: g }, backend: e, attrs: { shape: u } });\n f[h] = x, l.push(g);\n }\n return l.forEach((h) => e.disposeIntermediateTensorInfo(h)), f;\n}\nvar mP = { kernelName: wa, backendName: \"webgl\", kernelFunc: fre };\nvar Og = class {\n constructor(t8, e) {\n this.variableNames = [\"x\", \"segmentIds\"];\n let o = t8.windowSize, n = t8.batchSize, s = t8.inSize, a = t8.numSegments, i = a * Math.ceil(s / o);\n this.outputShape = [n, i];\n let p = \"0.0\", u = \"sumValue\", c = Math.floor(o / 4) * 4, l = o % 4, m = `\n sumValue += dot(values, segFilter);\n `, d = \"\";\n s % o > 0 && (d = `\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);\n let f = \"\";\n s % o > 0 && (f = `\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `), this.userCode = `\n const float initializationValue = ${p};\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${f}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${a})) * float(${o}));\n int currentSeg = int(mod(float(outIdx), float(${a})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${l === 1}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${l === 2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${l === 3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${m}\n }\n setOutput(${u});\n }\n `;\n }\n};\nfunction hre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, segmentIds: s } = t8, { numSegments: a } = o, i = n.shape.length, p = [], u = 0, c = w.getAxesPermutation([u], i), l = n;\n c != null && (l = Ct({ inputs: { x: n }, backend: e, attrs: { perm: c } }), p.push(l), u = w.getInnerMostAxes(1, i)[0]);\n let m = w.segment_util.computeOutShape(l.shape, u, a), d = y.sizeFromShape([l.shape[u]]), f = te({ inputs: { x: l }, backend: e, attrs: { shape: [-1, d] } });\n p.push(f);\n let h = ni(n.dtype), g = (S, k, _, E, R) => {\n let D = S.shape[0], P = S.shape[1], O = w.segment_util.segOpComputeOptimalWindowSize(P, R), M = { windowSize: O, inSize: P, batchSize: D, numSegments: R }, L = new Og(M, k), B = e.compileAndRun(L, [S, _], E);\n if (p.push(B), B.shape[1] === R)\n return B;\n let z = Rv({ backend: e, attrs: { start: 0, stop: R, step: 1, dtype: \"float32\" } }), U = Dv({ inputs: { x: z }, backend: e, attrs: { reps: [P / O] } });\n return p.push(z), p.push(U), g(B, k, U, E, R);\n }, x = g(f, \"unsortedSegmentSum\", s, h, a), b = te({ inputs: { x }, backend: e, attrs: { shape: m } }), C = b;\n if (c != null) {\n p.push(b);\n let S = w.getUndoAxesPermutation(c);\n C = Ct({ inputs: { x: C }, backend: e, attrs: { perm: S } });\n }\n return p.forEach((S) => e.disposeIntermediateTensorInfo(S)), C;\n}\nvar dP = { kernelName: Ji, backendName: \"webgl\", kernelFunc: hre };\nvar gre = [XD, QD, ZD, JD, tA, rA, oA, nA, iA, uA, pA, cA, lA, mA, dA, fA, hA, gA, xA, yA, bA, wA, SA, IA, vA, _A, EA, RA, BD, AA, PA, OA, MA, LA, BA, zA, VA, WA, UA, GA, qA, jA, XA, YA, QA, ZA, JA, eF, tF, rF, oF, nF, sF, aF, iF, uF, cF, lF, mF, dF, hF, gF, xF, yF, bF, CF, wF, SF, IF, LD, vF, FA, kF, NF, TF, zD, _F, $F, EF, RF, DF, AF, FF, PF, OF, MF, BF, zF, VF, WF, UF, GF, KF, jF, XF, YF, QF, ZF, o3, UD, n3, s3, a3, i3, kA, u3, l3, m3, d3, f3, VD, h3, g3, x3, y3, b3, NA, JF, C3, w3, S3, HD, I3, v3, k3, N3, T3, _3, $3, E3, R3, D3, A3, F3, P3, O3, M3, L3, CA, r3, B3, z3, V3, W3, U3, G3, H3, K3, j3, X3, Q3, Z3, J3, eP, tP, rP, oP, t3, qD, nP, sP, aP, iP, pP, cP, jD, lP, mP, dP, p3];\nfor (let r of gre)\n ri(r);\nvar we;\n(function(r) {\n r[r.float32 = 0] = \"float32\", r[r.int32 = 1] = \"int32\", r[r.bool = 2] = \"bool\", r[r.string = 3] = \"string\", r[r.complex64 = 4] = \"complex64\";\n})(we || (we = {}));\nvar ku;\n(function(r) {\n r[r.linear = 0] = \"linear\", r[r.relu = 1] = \"relu\", r[r.relu6 = 2] = \"relu6\", r[r.prelu = 3] = \"prelu\", r[r.leakyrelu = 4] = \"leakyrelu\", r[r.sigmoid = 5] = \"sigmoid\", r[r.elu = 6] = \"elu\";\n})(ku || (ku = {}));\nvar fP;\nfunction xre(r) {\n fP = r.wasm.cwrap(Io, null, [\"number\", \"array\", \"number\", \"number\", \"array\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction yre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s, bias: a, preluActivationWeights: i } = t8;\n if (n.dtype !== \"float32\" || s.dtype !== \"float32\")\n throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");\n let { transposeA: p, transposeB: u, activation: c, leakyreluAlpha: l } = o, m = e.dataIdMap.get(n.dataId).id, d = e.dataIdMap.get(s.dataId).id, f = 0;\n if (a != null) {\n let R = e.dataIdMap.get(a.dataId);\n if (R.shape.length !== 1)\n throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${R.shape.length}.`);\n f = R.id;\n }\n let h = i == null ? 0 : e.dataIdMap.get(i.dataId).id, g = ku[c];\n if (g == null)\n throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);\n let x = p ? n.shape[2] : n.shape[1], b = u ? s.shape[1] : s.shape[2], C = Ir.assertAndGetBroadcastShape(n.shape.slice(0, -2), s.shape.slice(0, -2)), S = e.makeOutput([...C, x, b], n.dtype), k = e.dataIdMap.get(S.dataId).id, _ = new Uint8Array(new Int32Array(n.shape).buffer), E = new Uint8Array(new Int32Array(s.shape).buffer);\n return fP(m, _, n.shape.length, d, E, s.shape.length, p, u, g, f, h, l || 0, k), S;\n}\nvar hP = { kernelName: Io, backendName: \"wasm\", setupFunc: xre, kernelFunc: yre };\nfunction he(r, t8) {\n let e;\n function o(s) {\n e = s.wasm.cwrap(r, null, [\"number\", \"number\", \"number\"]);\n }\n function n(s) {\n let { backend: a, inputs: { x: i } } = s, p = a.dataIdMap.get(i.dataId).id, u = a.makeOutput(i.shape, t8 || i.dtype), c = a.dataIdMap.get(u.dataId).id;\n return y.sizeFromShape(u.shape) === 0 || e(p, we[i.dtype], c), u;\n }\n return { kernelName: r, backendName: \"wasm\", setupFunc: o, kernelFunc: n };\n}\nvar gP = he(Xs);\nvar xP = he(Wo);\nvar yP = he(Uo);\nfunction Ue(r, t8, e) {\n let o;\n function n(a) {\n o = a.wasm.cwrap(r, null, [\"number\", \"array\", \"number\", \"number\", \"array\", \"number\", \"number\", \"number\"]);\n }\n function s(a) {\n let { backend: i, inputs: p } = a, { a: u, b: c } = p, l = i.dataIdMap.get(u.dataId).id, m = i.dataIdMap.get(c.dataId).id, d = e != null ? e : u.dtype, f = w.assertAndGetBroadcastShape(u.shape, c.shape), h = i.makeOutput(f, d);\n if (y.sizeFromShape(f) === 0)\n return h;\n let g = new Uint8Array(new Int32Array(u.shape).buffer), x = new Uint8Array(new Int32Array(c.shape).buffer), b = i.dataIdMap.get(h.dataId).id;\n return (() => o(l, g, u.shape.length, m, x, c.shape.length, we[u.dtype], b))(), h;\n }\n return { kernelName: r, backendName: \"wasm\", setupFunc: n, kernelFunc: s };\n}\nvar bre = true;\nvar bP = Ue(uo, bre);\nvar CP;\nfunction Cre(r) {\n CP = r.wasm.cwrap(Go, null, [\"array\", \"number\", \"number\", \"number\"]);\n}\nfunction wre(r) {\n let { inputs: t8, backend: e } = r, o = e.makeOutput(t8[0].shape, t8[0].dtype);\n if (y.sizeFromShape(o.shape) === 0)\n return o;\n let n = t8.map((i) => e.dataIdMap.get(i.dataId).id), s = new Uint8Array(new Int32Array(n).buffer), a = e.dataIdMap.get(o.dataId).id;\n return CP(s, n.length, we[o.dtype], a), o;\n}\nvar wP = { kernelName: Go, backendName: \"wasm\", setupFunc: Cre, kernelFunc: wre };\nfunction Dp(r) {\n let { inputs: { x: t8 }, backend: e } = r;\n if (t8.dtype === \"string\")\n return ur(e.readSync(t8.dataId), t8.shape, t8.dtype);\n let o = e.makeOutput(t8.shape, t8.dtype), n = e.typedArrayFromHeap(t8);\n return e.typedArrayFromHeap(o).set(n), o;\n}\nvar SP = { kernelName: wo, backendName: \"wasm\", kernelFunc: Dp };\nvar IP;\nfunction Sre(r) {\n IP = r.wasm.cwrap(co, null, [\"number\", \"array\", \"number\", \"number\", \"number\", \"array\", \"number\"]);\n}\nfunction go(r) {\n let { inputs: t8, backend: e, attrs: o } = r, [n, s] = vre(t8.x.shape, o.perm), a = true;\n for (let f = 0; f < s.length; f++)\n s[f] !== f && (a = false);\n let i = Ire(t8.x.shape, o.perm), p = { dataId: t8.x.dataId, shape: n, dtype: t8.x.dtype };\n if (a) {\n let f = Dp({ inputs: t8, backend: e });\n return f.shape = i, f;\n }\n let u = e.makeOutput(i, p.dtype), c = e.dataIdMap.get(p.dataId).id, l = e.dataIdMap.get(u.dataId).id, m = new Uint8Array(new Int32Array(s).buffer), d = new Uint8Array(new Int32Array(p.shape).buffer);\n return IP(c, d, p.shape.length, we[p.dtype], l, m, s.length), u;\n}\nfunction Ire(r, t8) {\n let e = new Array(r.length);\n for (let o = 0; o < e.length; o++)\n e[o] = r[t8[o]];\n return e;\n}\nfunction vre(r, t8) {\n let e = [], o = [];\n for (let n = 0; n < r.length; ++n)\n r[n] !== 1 && e.push(r[n]), r[t8[n]] !== 1 && o.push(t8[n]);\n for (let n = 0; n < o.length; ++n) {\n let s = -1;\n for (let a = 0; a < o.length; ++a)\n o[a] >= n && (s === -1 || o[s] > o[a]) && (s = a);\n o[s] = n;\n }\n return [e, o];\n}\nvar vP = { kernelName: co, backendName: \"wasm\", kernelFunc: go, setupFunc: Sre };\nfunction _r(r, t8, e) {\n let o = r.shape, n = r.shape.length, s = y.parseAxisParam(t8, o), a = s, i = w.getAxesPermutation(a, n), p = null, u = false;\n if (i != null) {\n let c = new Array(n);\n for (let d = 0; d < c.length; d++)\n c[d] = o[i[d]];\n a = w.getInnerMostAxes(a.length, n), p = go({ inputs: { x: r }, attrs: { perm: i }, backend: e });\n let l = e.dataIdMap.get(r.dataId).id;\n e.dataIdMap.get(p.dataId).id !== l && (u = true);\n }\n return { transposed: p, originalAxes: s, axes: a, inputWasTransposed: u };\n}\nvar kP;\nfunction kre(r) {\n kP = r.wasm.cwrap(Ho, null, [\"number, number, number\"]);\n}\nfunction Nre(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, p = t8.dataIdMap.get(a.dataId).id, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8);\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n u = c, p = C;\n }\n let f = u.shape.length;\n w.assertAxesAreInnerMostDims(\"all\", l, f);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, l), x = y.sizeFromShape(g), b = t8.makeOutput(h, a.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n kP(p, x, C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar NP = { kernelName: Ho, backendName: \"wasm\", setupFunc: kre, kernelFunc: Nre };\nvar TP;\nfunction Tre(r) {\n TP = r.wasm.cwrap(Ko, null, [\"number, number, number\"]);\n}\nfunction _re(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, p = t8.dataIdMap.get(a.dataId).id, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8);\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n u = c, p = C;\n }\n let f = u.shape.length;\n w.assertAxesAreInnerMostDims(\"any\", l, f);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, l), x = y.sizeFromShape(g), b = t8.makeOutput(h, a.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n TP(p, x, C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar _P = { kernelName: Ko, backendName: \"wasm\", setupFunc: Tre, kernelFunc: _re };\nfunction Mg(r) {\n let t8;\n function e(n) {\n t8 = n.wasm.cwrap(r, null, [\"number\", \"number\", \"number\", \"number\", \"number\"]);\n }\n function o(n) {\n let { backend: s, inputs: a, attrs: i } = n, { axis: p } = i, { x: u } = a, c = s.dataIdMap.get(u.dataId).id, l = c, m = u, { transposed: d, axes: f, inputWasTransposed: h } = _r(u, p, s);\n if (h) {\n let k = s.dataIdMap.get(d.dataId).id;\n k !== c && (m = d, l = k);\n }\n let g = m.shape.slice(0, -1), x = s.makeOutput(g, \"int32\"), b = s.dataIdMap.get(x.dataId).id, C = y.sizeFromShape(x.shape), S = m.shape[f[0]];\n return t8(l, we[m.dtype], C, S, b), h && s.disposeData(d.dataId), x;\n }\n return { kernelName: r, backendName: \"wasm\", setupFunc: e, kernelFunc: o };\n}\nvar $P = Mg(Ys);\nvar EP = Mg(Qs);\nvar RP = he(qo);\nvar DP = he(jo);\nvar AP = he(Xo);\nvar FP = Ue(Qo, false);\nvar PP = he(Yo);\nvar OP;\nfunction $re(r) {\n OP = r.wasm.cwrap(Zo, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Ere(r) {\n let { inputs: t8, attrs: e, backend: o } = r, n = t8.x, s = o.dataIdMap.get(n.dataId).id, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = e, c = w.computePool2DInfo(n.shape, a, i, 1, p, u), l = c.filterHeight, m = c.filterWidth, d = c.padInfo.top, f = c.padInfo.right, h = c.padInfo.bottom, g = c.padInfo.left, x = c.strideHeight, b = c.strideWidth, C = c.inChannels;\n if (c.dataFormat !== \"channelsLast\")\n throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);\n if (c.dilationWidth !== 1 || c.dilationHeight !== 1)\n throw new Error(`was backend only supports average pooling with dilation = [1, 1], got [${c.dilationHeight}, ${c.dilationWidth}].`);\n let S = o.makeOutput(c.outShape, \"float32\"), k = o.dataIdMap.get(S.dataId).id;\n return OP(s, n.shape[0], n.shape[1], n.shape[2], l, m, d, f, h, g, x, b, C, k), S;\n}\nvar MP = { kernelName: Zo, backendName: \"wasm\", setupFunc: $re, kernelFunc: Ere };\nvar LP;\nfunction Rre(r) {\n LP = r.wasm.cwrap(\"AvgPool3D\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Dre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p, dataFormat: u } = o, c = w.computePool3DInfo(n.shape, s, a, 1, i, p, u), l = e.makeOutput(c.outShape, n.dtype);\n return LP(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, c.batchSize, c.inChannels, c.inDepth, c.inHeight, c.inWidth, c.outDepth, c.outHeight, c.outWidth, c.strideDepth, c.strideHeight, c.strideWidth, c.dilationDepth, c.dilationHeight, c.dilationWidth, c.effectiveFilterDepth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.front, c.padInfo.top, c.padInfo.left), l;\n}\nvar BP = { kernelName: Zs, backendName: \"wasm\", setupFunc: Rre, kernelFunc: Dre };\nvar zP;\nfunction Are(r) {\n zP = r.wasm.cwrap(\"AvgPool3DGrad\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Fre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = o, c = w.computePool3DInfo(s.shape, a, i, 1, p, u), l = e.makeOutput(s.shape, s.dtype);\n return zP(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, c.batchSize, c.inChannels, c.inDepth, c.inHeight, c.inWidth, c.outDepth, c.outHeight, c.outWidth, c.strideDepth, c.strideHeight, c.strideWidth, c.dilationDepth, c.dilationHeight, c.dilationWidth, c.effectiveFilterDepth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.front, c.padInfo.top, c.padInfo.left, c.filterDepth, c.filterHeight, c.filterWidth), l;\n}\nvar VP = { kernelName: Ai, backendName: \"wasm\", setupFunc: Are, kernelFunc: Fre };\nvar WP;\nfunction Pre(r) {\n WP = r.wasm.cwrap(\"AvgPoolGrad\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Ore(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p } = o, u = w.computePool2DInfo(s.shape, a, i, 1, p), c = e.makeOutput(s.shape, s.dtype);\n return WP(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(c.dataId).id, u.batchSize, u.inChannels, u.inHeight, u.inWidth, u.outHeight, u.outWidth, u.strideHeight, u.strideWidth, u.dilationHeight, u.dilationWidth, u.effectiveFilterHeight, u.effectiveFilterWidth, u.padInfo.top, u.padInfo.left, u.filterHeight, u.filterWidth), c;\n}\nvar UP = { kernelName: Di, backendName: \"wasm\", setupFunc: Pre, kernelFunc: Ore };\nfunction Vt(r) {\n let { inputs: t8, attrs: e } = r, { x: o } = t8, { shape: n } = e, s = y.sizeFromShape(o.shape), a = y.inferFromImplicitShape(n, s);\n return y.assert(s === y.sizeFromShape(a), () => `new shape: ${a}, old shape: ${o.shape}. New shape and old shape must have the same number of elements.`), r.backend.incRef(o.dataId), { dataId: o.dataId, shape: a, dtype: o.dtype };\n}\nvar GP = { kernelName: da, backendName: \"wasm\", kernelFunc: Vt };\nvar HP;\nfunction Mre(r) {\n HP = r.wasm.cwrap(Jo, null, [\"number\", \"array\", \"number\", \"number\", \"array\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Lre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s } = t8, { transposeA: a, transposeB: i } = o;\n if (n.dtype !== \"float32\" || s.dtype !== \"float32\")\n throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");\n let p = n.shape.length, u = s.shape.length, c = a ? n.shape[p - 2] : n.shape[p - 1], l = i ? s.shape[u - 1] : s.shape[u - 2], m = a ? n.shape[p - 1] : n.shape[p - 2], d = i ? s.shape[u - 2] : s.shape[u - 1], f = n.shape.slice(0, -2), h = s.shape.slice(0, -2), g = y.sizeFromShape(f), x = y.sizeFromShape(h), C = Ir.assertAndGetBroadcastShape(n.shape.slice(0, -2), s.shape.slice(0, -2)).concat([m, d]);\n y.assert(c === l, () => `Error in matMul: inner shapes (${c}) and (${l}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);\n let S = a ? [g, c, m] : [g, m, c], k = i ? [x, d, l] : [x, l, d], _ = Vt({ inputs: { x: n }, backend: e, attrs: { shape: S } }), E = Vt({ inputs: { x: s }, backend: e, attrs: { shape: k } }), R = e.dataIdMap.get(_.dataId).id, D = e.dataIdMap.get(E.dataId).id, P = a ? _.shape[2] : _.shape[1], O = i ? E.shape[1] : E.shape[2], M = Math.max(g, x), L = e.makeOutput([M, P, O], _.dtype), B = e.dataIdMap.get(L.dataId).id, z = new Uint8Array(new Int32Array(_.shape).buffer), U = new Uint8Array(new Int32Array(E.shape).buffer);\n return HP(R, z, _.shape.length, D, U, E.shape.length, a, i, B), e.disposeData(_.dataId), e.disposeData(E.dataId), L.shape = C, L;\n}\nvar KP = { kernelName: Jo, backendName: \"wasm\", setupFunc: Mre, kernelFunc: Lre };\nfunction Oo(r) {\n let { inputs: { x: t8 }, attrs: { begin: e, size: o }, backend: n } = r, [s, a] = ct.parseSliceParams(t8, e, o), i = ct.isSliceContinous(t8.shape, s, a), p = n.readSync(t8.dataId), u = n.makeOutput(a, t8.dtype), c = y.computeStrides(t8.shape), l = n.dataIdMap.get(u.dataId);\n if (i) {\n let f = ct.computeFlatOffset(s, c);\n return t8.dtype === \"string\" ? l.stringBytes = p.slice(f, f + y.sizeFromShape(a)) : n.typedArrayFromHeap(u).set(p.subarray(f, f + y.sizeFromShape(a))), u;\n }\n if (t8.dtype === \"string\") {\n let f = hp(p, s, a, t8.shape, t8.dtype);\n return l.stringBytes = f, u;\n }\n let m = n.typedArrayFromHeap(u), d = t8.shape.length;\n if (d === 2)\n Bre(p, c[0], m, s, a);\n else if (d === 3)\n zre(p, c[0], c[1], m, s, a);\n else if (d === 4)\n Vre(p, c[0], c[1], c[2], m, s, a);\n else {\n let f = hp(p, s, a, t8.shape, t8.dtype);\n m.set(f);\n }\n return u;\n}\nfunction Bre(r, t8, e, o, n) {\n let s = 0, a = o[0], i = o[1], p = a + n[0];\n for (let u = a; u < p; u++) {\n let c = u * t8 + i;\n e.set(r.subarray(c, c + n[1]), s), s += n[1];\n }\n}\nfunction zre(r, t8, e, o, n, s) {\n let a = 0, i = n[0], p = n[1], u = n[2], c = i + s[0], l = p + s[1];\n for (let m = i; m < c; m++)\n for (let d = p; d < l; d++) {\n let f = m * t8 + d * e + u;\n o.set(r.subarray(f, f + s[2]), a), a += s[2];\n }\n}\nfunction Vre(r, t8, e, o, n, s, a) {\n let i = 0, p = s[0], u = s[1], c = s[2], l = p + a[0], m = u + a[1], d = c + a[2], f = s[3];\n for (let h = p; h < l; h++)\n for (let g = u; g < m; g++)\n for (let x = c; x < d; x++) {\n let b = h * t8 + g * e + x * o + f;\n n.set(r.subarray(b, b + a[3]), i), i += a[3];\n }\n}\nvar qP = { kernelName: ha, backendName: \"wasm\", kernelFunc: Oo };\nfunction Wre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, crops: a } = o, i = s.reduce((x, b) => x * b), p = w.getReshaped(n.shape, s, i), u = w.getPermuted(p.length, s.length), c = w.getReshapedPermuted(n.shape, s, i), l = w.getSliceBeginCoords(a, s.length), m = w.getSliceSize(c, a, s.length), d = Vt({ inputs: { x: n }, backend: e, attrs: { shape: p } }), f = go({ inputs: { x: d }, backend: e, attrs: { perm: u } }), h = Vt({ inputs: { x: f }, backend: e, attrs: { shape: c } }), g = Oo({ inputs: { x: h }, backend: e, attrs: { begin: l, size: m } });\n return e.disposeData(d.dataId), e.disposeData(f.dataId), e.disposeData(h.dataId), g;\n}\nvar jP = { kernelName: Js, backendName: \"wasm\", kernelFunc: Wre };\nvar XP;\nfunction Ure(r) {\n XP = r.wasm.cwrap(en, null, [\"number\", \"number\", \"boolean\", \"number\", \"number\", \"number\"]);\n}\nfunction Gre(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { x: n, weights: s } = e, { size: a } = o, i = s.shape.reduce((l, m) => l * m, 1) !== 0, p = n.shape.length === 1 ? [a] : [n.shape[0], a], u = t8.makeOutput(p, s.dtype);\n function c(l) {\n return t8.dataIdMap.get(l.dataId).id;\n }\n return XP(c(n), a, i, c(s), we[s.dtype], c(u)), u;\n}\nvar YP = { kernelName: en, backendName: \"wasm\", setupFunc: Ure, kernelFunc: Gre };\nvar Hre = true;\nvar QP = Ue(ja, Hre);\nfunction Kre(r) {\n let { inputs: t8, backend: e } = r, { s0: o, s1: n } = t8, s = e.typedArrayFromHeap(o), a = e.typedArrayFromHeap(n), i = w.assertAndGetBroadcastShape(Array.from(s), Array.from(a));\n return e.makeOutput([i.length], \"int32\", void 0, new Int32Array(i));\n}\nvar ZP = { kernelName: ea, backendName: \"wasm\", kernelFunc: Kre };\nfunction Mr(r) {\n let { inputs: { x: t8 }, attrs: { dtype: e }, backend: o } = r, n = o.makeOutput(t8.shape, e), s = o.typedArrayFromHeap(t8);\n return o.typedArrayFromHeap(n).set(s), n;\n}\nvar JP = { kernelName: bo, backendName: \"wasm\", kernelFunc: Mr };\nvar eO = he(tn);\nvar tO;\nfunction qre(r) {\n tO = r.wasm.cwrap(Co, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction jre(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { clipValueMin: s, clipValueMax: a } = o, i = e.dataIdMap.get(n.dataId).id, p = e.makeOutput(n.shape, n.dtype), u = e.dataIdMap.get(p.dataId).id;\n return tO(i, s, a, u), p;\n}\nvar rO = { kernelName: Co, backendName: \"wasm\", setupFunc: qre, kernelFunc: jre };\nfunction Av(r) {\n let { inputs: t8, backend: e } = r, o = y.parseAxisParam(r.attrs.axis, t8[0].shape)[0], n = t8.map((d) => d.shape);\n w.assertParamsConsistent(n, o);\n let s = w.computeOutShape(t8.map((d) => d.shape), o), a = t8.filter((d) => y.sizeFromShape(d.shape) > 0);\n if (a.length === 1)\n return Dp({ inputs: { x: a[0] }, backend: e });\n let i = e.makeOutput(s, t8[0].dtype);\n if (y.sizeFromShape(s) === 0)\n return i;\n if (a[0].dtype === \"string\") {\n let d = a.map((C) => {\n let k = [-1, y.sizeFromShape(C.shape.slice(o))];\n return Vt({ inputs: { x: C }, backend: e, attrs: { shape: k } });\n }), f = d.map((C) => ({ vals: e.readSync(C.dataId), shape: C.shape }));\n s = w.computeOutShape(d.map((C) => C.shape), 1);\n let h = d[0].shape[0] === 1, g = mp(f, s, t8[0].dtype, h), x = w.computeOutShape(a.map((C) => C.shape), o);\n i.shape = x;\n let b = e.dataIdMap.get(i.dataId);\n return b.stringBytes = w.fromStringArrayToUint8(g), d.forEach((C) => e.disposeData(C.dataId)), i;\n }\n let p = y.sizeFromShape(a[0].shape.slice(0, o)), u = 0, c = a.map((d) => {\n let f = y.sizeFromShape(d.shape.slice(o));\n return u += f, f;\n }), l = a.map((d) => e.typedArrayFromHeap(d)), m = e.typedArrayFromHeap(i);\n for (let d = 0; d < p; d++) {\n let f = d * u;\n for (let h = 0; h < l.length; h++) {\n let g = c[h], x = d * g, b = l[h].subarray(x, x + g);\n m.set(b, f), f += g;\n }\n }\n return i;\n}\nvar oO = { kernelName: ta, backendName: \"wasm\", kernelFunc: Av };\nvar nO;\nfunction Xre(r) {\n nO = r.wasm.cwrap(rn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Yre(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n, filter: s } = t8, a = o.dataIdMap.get(n.dataId).id, i = o.dataIdMap.get(s.dataId).id, { strides: p, dilations: u, pad: c, dimRoundingMode: l, dataFormat: m } = e, d = w.convertConv2DDataFormat(m), f = w.computeConv2DInfo(n.shape, s.shape, p, u, c, l, false, d), h = f.filterHeight, g = f.filterWidth, x = f.padInfo.top, b = f.padInfo.right, C = f.padInfo.bottom, S = f.padInfo.left, k = f.dilationHeight, _ = f.dilationWidth, E = f.strideHeight, R = f.strideWidth, D = f.inChannels, P = f.outChannels, O = f.padInfo.type === \"SAME\" ? 1 : 0;\n if (f.dataFormat !== \"channelsLast\")\n throw new Error(`wasm backend Conv2D does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);\n let M = o.makeOutput(f.outShape, \"float32\"), L = o.dataIdMap.get(M.dataId).id;\n return nO(a, n.shape[0], n.shape[1], n.shape[2], i, h, g, x, b, C, S, O, k, _, E, R, D, P, L), M;\n}\nvar sO = { kernelName: rn, backendName: \"wasm\", setupFunc: Xre, kernelFunc: Yre };\nvar aO;\nfunction Qre(r) {\n aO = r.wasm.cwrap(on, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Zre(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { dy: n, filter: s } = e, { strides: a, pad: i, dataFormat: p, dimRoundingMode: u, inputShape: c } = o, l = 1, m = w.convertConv2DDataFormat(p), d = w.computeConv2DInfo(c, s.shape, a, l, i, u, false, m), { batchSize: f, filterHeight: h, filterWidth: g, inChannels: x, inHeight: b, inWidth: C, outChannels: S, outHeight: k, outWidth: _, strideHeight: E, strideWidth: R } = d, D = h - 1 - d.padInfo.top, P = g - 1 - d.padInfo.left, O = d.dataFormat === \"channelsLast\", M = y.computeStrides(d.inShape), L = y.computeStrides(n.shape), [B, z, U] = y.computeStrides(s.shape), j = M[0], q = O ? M[1] : M[2], Y = O ? M[2] : 1, J = O ? 1 : M[1], re = L[0], ne = O ? L[1] : L[2], ee = O ? L[2] : 1, oe = O ? 1 : L[1], ie = t8.makeOutput(d.inShape, \"float32\"), le = t8.dataIdMap.get(ie.dataId).id, be = t8.dataIdMap.get(n.dataId).id, _e = t8.dataIdMap.get(s.dataId).id;\n return aO(be, _e, f, h, g, b, C, x, k, _, S, E, R, D, P, B, z, U, j, q, Y, J, re, ne, ee, oe, le), ie;\n}\nvar iO = { kernelName: on, backendName: \"wasm\", setupFunc: Qre, kernelFunc: Zre };\nvar uO;\nfunction Jre(r) {\n uO = r.wasm.cwrap(nn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction eoe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o;\n if (n.dtype !== \"float32\")\n throw new Error(`Tensor x must have dtype float32, got ${n.dtype}`);\n if (s.dtype !== \"float32\")\n throw new Error(`Tensor filter must have dtype float32, got ${s.dtype}`);\n let u = w.computeConv3DInfo(n.shape, s.shape, a, p, i), c = e.makeOutput(u.outShape, n.dtype);\n return uO(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(c.dataId).id, u.batchSize, u.inDepth, u.inHeight, u.inWidth, u.inChannels, u.outDepth, u.outHeight, u.outWidth, u.outChannels, u.strideDepth, u.strideHeight, u.strideWidth, u.dilationDepth, u.dilationHeight, u.dilationWidth, u.filterDepth, u.filterHeight, u.filterWidth, u.padInfo.front, u.padInfo.top, u.padInfo.left), c;\n}\nvar pO = { kernelName: nn, backendName: \"wasm\", setupFunc: Jre, kernelFunc: eoe };\nvar cO;\nfunction toe(r) {\n cO = r.wasm.cwrap(Xa, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction roe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, filterShape: p } = o;\n if (n.dtype !== \"float32\")\n throw new Error(`Tensor dy must have dtype float32, got ${n.dtype}`);\n if (s.dtype !== \"float32\")\n throw new Error(`Tensor filter must have dtype float32, got ${s.dtype}`);\n let u = w.computeConv3DInfo(n.shape, p, a, 1, i), c = e.makeOutput(u.filterShape, s.dtype);\n return cO(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(c.dataId).id, u.batchSize, u.inDepth, u.inHeight, u.inWidth, u.inChannels, u.outDepth, u.outHeight, u.outWidth, u.outChannels, u.strideDepth, u.strideHeight, u.strideWidth, u.dilationDepth, u.dilationHeight, u.dilationWidth, u.filterDepth, u.filterHeight, u.filterWidth, u.padInfo.front, u.padInfo.top, u.padInfo.left), c;\n}\nvar lO = { kernelName: Xa, backendName: \"wasm\", setupFunc: toe, kernelFunc: roe };\nvar mO;\nfunction ooe(r) {\n mO = r.wasm.cwrap(sn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction noe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { pad: a, strides: i, inputShape: p } = o;\n if (n.dtype !== \"float32\")\n throw new Error(`Tensor dy must have dtype float32, got ${n.dtype}`);\n if (s.dtype !== \"float32\")\n throw new Error(`Tensor filter must have dtype float32, got ${s.dtype}`);\n let u = w.computeConv3DInfo(p, s.shape, i, 1, a), c = e.makeOutput(u.inShape, n.dtype);\n return mO(e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(c.dataId).id, u.batchSize, u.inDepth, u.inHeight, u.inWidth, u.inChannels, u.outDepth, u.outHeight, u.outWidth, u.outChannels, u.strideDepth, u.strideHeight, u.strideWidth, u.dilationDepth, u.dilationHeight, u.dilationWidth, u.filterDepth, u.filterHeight, u.filterWidth, u.padInfo.front, u.padInfo.top, u.padInfo.left), c;\n}\nvar dO = { kernelName: sn, backendName: \"wasm\", setupFunc: ooe, kernelFunc: noe };\nvar fO = he(an);\nvar hO = he(un);\nvar Fv;\n(function(r) {\n r[r.bilinear = 0] = \"bilinear\", r[r.nearest = 1] = \"nearest\";\n})(Fv || (Fv = {}));\nvar gO;\nfunction soe(r) {\n gO = r.wasm.cwrap(ln, null, [\"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction aoe(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { method: n, extrapolationValue: s, cropSize: a } = o, { image: i, boxes: p, boxInd: u } = e, c = p.shape[0], [l, m] = a, d = [c, l, m, i.shape[3]], f = t8.dataIdMap.get(i.dataId), h;\n i.dtype !== \"float32\" && (h = Mr({ backend: t8, inputs: { x: i }, attrs: { dtype: \"float32\" } }), f = t8.dataIdMap.get(h.dataId));\n let g = f.id, x = t8.dataIdMap.get(p.dataId).id, b = t8.dataIdMap.get(u.dataId).id, C = t8.makeOutput(d, \"float32\"), S = t8.dataIdMap.get(C.dataId).id, k = new Uint8Array(new Int32Array(i.shape).buffer);\n return gO(g, x, b, c, k, l, m, Fv[n], s, S), h != null && t8.disposeData(h.dataId), C;\n}\nvar xO = { kernelName: ln, backendName: \"wasm\", setupFunc: soe, kernelFunc: aoe };\nvar yO;\nfunction ioe(r) {\n yO = r.wasm.cwrap(pn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction uoe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o, p = n.shape.length;\n y.assert(n.dtype === \"float32\" || n.dtype === \"int32\", () => `cumprod does not support ${n.dtype} tensors in the WASM backend`);\n let u = w.getAxesPermutation([s], p), c = n;\n u !== null && (c = go({ inputs: { x: n }, attrs: { perm: u }, backend: e }));\n let l = w.getInnerMostAxes(1, p)[0];\n w.assertAxesAreInnerMostDims(\"cumprod\", [l], p);\n let m = e.makeOutput(c.shape, c.dtype), d = c.shape[l], f = e.dataIdMap.get(c.dataId).id, h = e.dataIdMap.get(m.dataId).id;\n yO(f, a ? 1 : 0, i ? 1 : 0, d, h, we[n.dtype]);\n let g = m;\n if (u !== null) {\n let x = w.getUndoAxesPermutation(u);\n g = go({ inputs: { x: m }, attrs: { perm: x }, backend: e }), e.disposeData(c.dataId), e.disposeData(m.dataId);\n }\n return g;\n}\nvar bO = { kernelName: pn, backendName: \"wasm\", setupFunc: ioe, kernelFunc: uoe };\nvar CO;\nfunction poe(r) {\n CO = r.wasm.cwrap(cn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction coe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o, p = n.shape.length;\n y.assert(n.dtype === \"float32\" || n.dtype === \"int32\", () => `cumsum does not support ${n.dtype} tensors in the WASM backend`);\n let u = w.getAxesPermutation([s], p), c = n;\n u !== null && (c = go({ inputs: { x: n }, attrs: { perm: u }, backend: e }));\n let l = w.getInnerMostAxes(1, p)[0];\n w.assertAxesAreInnerMostDims(\"cumsum\", [l], p);\n let m = e.makeOutput(c.shape, c.dtype), d = c.shape[l], f = e.dataIdMap.get(c.dataId).id, h = e.dataIdMap.get(m.dataId).id;\n CO(f, a ? 1 : 0, i ? 1 : 0, d, h, we[n.dtype]);\n let g = m;\n if (u !== null) {\n let x = w.getUndoAxesPermutation(u);\n g = go({ inputs: { x: m }, attrs: { perm: x }, backend: e }), e.disposeData(c.dataId), e.disposeData(m.dataId);\n }\n return g;\n}\nvar wO = { kernelName: cn, backendName: \"wasm\", setupFunc: poe, kernelFunc: coe };\nvar SO;\nfunction loe(r) {\n SO = r.wasm.cwrap(\"DenseBincount\", null, [\"number\", \"array\", \"number\", \"number\", \"boolean\", \"number\", \"number\", \"boolean\", \"number\"]);\n}\nfunction moe(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { x: n, weights: s } = e, { size: a, binaryOutput: i } = o, p = s.shape.reduce((m, d) => m * d, 1) !== 0, u = n.shape.length === 1 ? [a] : [n.shape[0], a], c = t8.makeOutput(u, s.dtype);\n function l(m) {\n return t8.dataIdMap.get(m.dataId).id;\n }\n return SO(l(n), new Uint8Array(new Int32Array(n.shape).buffer), n.shape.length, a, p, l(s), we[s.dtype], i, l(c)), c;\n}\nvar IO = { kernelName: ra, backendName: \"wasm\", setupFunc: loe, kernelFunc: moe };\nvar vO;\nfunction doe(r) {\n vO = r.wasm.cwrap(mn, null, [\"number\", \"number\", \"number\", \"array\", \"number\", \"array\", \"array\", \"number\", \"number\"]);\n}\nfunction foe(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { x: n } = e, { blockSize: s, dataFormat: a } = o, i = n.shape[0], p = a === \"NHWC\" ? n.shape[1] : n.shape[2], u = a === \"NHWC\" ? n.shape[2] : n.shape[3], c = a === \"NHWC\" ? n.shape[3] : n.shape[1], l = p * s, m = u * s, d = c / (s * s), f = a === \"NHWC\" ? [i, l, m, d] : [i, d, l, m], h = t8.makeOutput(f, \"float32\"), x = t8.dataIdMap.get(n.dataId).id, b = new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer), C = new Uint8Array(new Int32Array(f).buffer), S = new Uint8Array(new Int32Array(y.computeStrides(f)).buffer), k = t8.dataIdMap.get(h.dataId).id;\n return vO(x, s, a === \"NHWC\" ? 1 : 0, b, n.shape.length - 1, C, S, f.length, k), h;\n}\nvar kO = { kernelName: mn, backendName: \"wasm\", setupFunc: doe, kernelFunc: foe };\nvar NO;\nfunction hoe(r) {\n NO = r.wasm.cwrap(dn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction goe(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n, filter: s } = t8, a = o.dataIdMap.get(n.dataId).id, i = o.dataIdMap.get(s.dataId).id, { strides: p, dilations: u, pad: c, dimRoundingMode: l } = e, m = u == null ? [1, 1] : u, d = w.computeConv2DInfo(n.shape, s.shape, p, m, c, l, true), f = d.filterHeight, h = d.filterWidth, g = d.padInfo.top, x = d.padInfo.right, b = d.padInfo.bottom, C = d.padInfo.left, S = d.dilationHeight, k = d.dilationWidth, _ = d.strideHeight, E = d.strideWidth, R = d.inChannels, D = d.outChannels, P = d.padInfo.type === \"SAME\" ? 1 : 0;\n if (d.dataFormat !== \"channelsLast\")\n throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${d.dataFormat}'. Please use 'channelsLast'.`);\n let O = o.makeOutput(d.outShape, \"float32\"), M = o.dataIdMap.get(O.dataId).id;\n return NO(a, n.shape[0], n.shape[1], n.shape[2], i, f, h, g, x, b, C, P, S, k, _, E, R, D, M), O;\n}\nvar TO = { kernelName: dn, backendName: \"wasm\", setupFunc: hoe, kernelFunc: goe };\nvar _O;\nfunction xoe(r) {\n _O = r.wasm.cwrap(\"Diag\", null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction yoe(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = y.sizeFromShape(o.shape), s = e.makeOutput([...o.shape, ...o.shape], o.dtype);\n return _O(e.dataIdMap.get(o.dataId).id, we[o.dtype], n, e.dataIdMap.get(s.dataId).id), s;\n}\nvar $O = { kernelName: oa, backendName: \"wasm\", setupFunc: xoe, kernelFunc: yoe };\nvar EO;\nfunction boe(r) {\n EO = r.wasm.cwrap(fn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Coe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o;\n if (n.dtype !== s.dtype)\n throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${n.dtype} and ${s.dtype}`);\n let u = w.computeDilation2DInfo(n.shape, s.shape, a, i, \"NHWC\", p), c = e.makeOutput(u.outShape, n.dtype);\n return EO(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(c.dataId).id, we[n.dtype], u.batchSize, u.inChannels, u.inHeight, u.inWidth, u.outHeight, u.outWidth, u.strideHeight, u.strideWidth, u.dilationHeight, u.dilationWidth, u.filterHeight, u.filterWidth, u.padInfo.top, u.padInfo.left), c;\n}\nvar RO = { kernelName: fn, backendName: \"wasm\", setupFunc: boe, kernelFunc: Coe };\nvar DO;\nfunction woe(r) {\n DO = r.wasm.cwrap(zi, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Soe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, dy: a } = t8, { strides: i, pad: p, dilations: u } = o;\n if (n.dtype !== s.dtype || n.dtype !== a.dtype)\n throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${n.dtype}, ${s.dtype}, and ${a.dtype}`);\n let c = w.computeDilation2DInfo(n.shape, s.shape, i, p, \"NHWC\", u), l = e.makeOutput(s.shape, s.dtype);\n return DO(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(a.dataId).id, e.dataIdMap.get(l.dataId).id, we[n.dtype], c.batchSize, c.inChannels, c.inHeight, c.inWidth, c.outHeight, c.outWidth, c.strideHeight, c.strideWidth, c.dilationHeight, c.dilationWidth, c.filterHeight, c.filterWidth, c.padInfo.top, c.padInfo.left), l;\n}\nvar AO = { kernelName: zi, backendName: \"wasm\", setupFunc: woe, kernelFunc: Soe };\nvar FO;\nfunction Ioe(r) {\n FO = r.wasm.cwrap(Bi, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction voe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, dy: a } = t8, { strides: i, pad: p, dilations: u } = o;\n if (n.dtype !== s.dtype || n.dtype !== a.dtype)\n throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${n.dtype}, ${s.dtype}, and ${a.dtype}`);\n let c = w.computeDilation2DInfo(n.shape, s.shape, i, p, \"NHWC\", u), l = e.makeOutput(n.shape, n.dtype);\n return FO(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(a.dataId).id, e.dataIdMap.get(l.dataId).id, we[n.dtype], c.batchSize, c.inChannels, c.inHeight, c.inWidth, c.outHeight, c.outWidth, c.strideHeight, c.strideWidth, c.dilationHeight, c.dilationWidth, c.filterHeight, c.filterWidth, c.padInfo.top, c.padInfo.left), l;\n}\nvar PO = { kernelName: Bi, backendName: \"wasm\", setupFunc: Ioe, kernelFunc: voe };\nvar OO = he(gn);\nvar MO;\nfunction koe(r) {\n MO = r.wasm.cwrap(Ya, null, [\"number\", \"number\", \"number\"]);\n}\nfunction Noe(r) {\n let { inputs: t8, backend: e } = r, { dy: o, y: n } = t8, s = e.makeOutput(n.shape, \"float32\"), a = (i) => e.dataIdMap.get(i.dataId).id;\n return MO(a(n), a(o), a(s)), s;\n}\nvar LO = { kernelName: Ya, backendName: \"wasm\", setupFunc: koe, kernelFunc: Noe };\nvar Toe = false;\nvar BO = Ue(yn, Toe, \"bool\");\nvar zO = he(xn);\nvar VO = he(bn, \"float32\");\nfunction Lg(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { input: n } = t8, { dim: s } = e, a = n.shape.length, i = n.shape.slice(), p = s;\n return s < 0 && (y.assert(-(a + 1) <= s, () => `Axis must be in the interval [${-(a + 1)}, ${a}]`), p = a + s + 1), i.splice(p, 0, 1), Vt({ inputs: { x: n }, backend: o, attrs: { shape: i } });\n}\nvar WO = { kernelName: na, backendName: \"wasm\", kernelFunc: Lg };\nvar UO = he(Cn, \"float32\");\nfunction Pv(r) {\n let { attrs: { shape: t8, value: e, dtype: o }, backend: n } = r, s = n.makeOutput(t8, o);\n return n.typedArrayFromHeap(s).fill(e), s;\n}\nvar GO = { kernelName: sa, backendName: \"wasm\", kernelFunc: Pv };\nvar HO;\nfunction _oe(r) {\n HO = r.wasm.cwrap(wn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction $oe(r) {\n let { inputs: t8, backend: e } = r, { image: o } = t8, n = e.makeOutput(o.shape, o.dtype), s = e.dataIdMap.get(o.dataId).id, a = e.dataIdMap.get(n.dataId).id, [i, p, u, c] = o.shape;\n return HO(s, i, p, u, c, a), n;\n}\nvar KO = { kernelName: wn, backendName: \"wasm\", kernelFunc: $oe, setupFunc: _oe };\nvar qO = he(Sn);\nvar Eoe = false;\nvar jO = Ue(In, Eoe);\nvar XO;\nfunction Roe(r) {\n XO = r.wasm.cwrap(vn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Doe(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { varianceEpsilon: n } = o, { x: s, mean: a, variance: i, offset: p, scale: u } = e, c = t8.dataIdMap.get(s.dataId).id, l = t8.dataIdMap.get(a.dataId).id, m = t8.dataIdMap.get(i.dataId).id, d = p != null ? t8.dataIdMap.get(p.dataId).id : 0, f = u != null ? t8.dataIdMap.get(u.dataId).id : 0, h = t8.makeOutput(s.shape, s.dtype);\n if (y.sizeFromShape(s.shape) === 0)\n return h;\n let g = t8.dataIdMap.get(h.dataId).id;\n return XO(c, l, m, d, f, n, g), h;\n}\nvar YO = { kernelName: vn, backendName: \"wasm\", setupFunc: Roe, kernelFunc: Doe };\nvar QO;\nfunction Aoe(r) {\n QO = r.wasm.cwrap(vo, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Foe(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dilations: c, dataFormat: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = e, h = w.computeConv2DInfo(n.shape, s.shape, p, c, u, m), g = ku[d];\n if (g == null)\n throw new Error(`${d} activation not yet supported for FusedConv2D in the wasm backend.`);\n let x = o.dataIdMap.get(n.dataId).id, b = o.dataIdMap.get(s.dataId).id, C = h.outChannels, S = 0;\n if (a != null) {\n let ee = o.dataIdMap.get(a.dataId);\n if (ee.shape.length !== 1)\n throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);\n if (ee.shape[0] !== C)\n throw new Error(`FusedConv2D bias shape (${ee.shape}) does not match the number of output channels (${C})`);\n S = ee.id;\n }\n let k = h.filterHeight, _ = h.filterWidth, E = h.padInfo.top, R = h.padInfo.right, D = h.padInfo.bottom, P = h.padInfo.left, O = h.dilationHeight, M = h.dilationWidth, L = h.strideHeight, B = h.strideWidth, z = h.inChannels, U = h.padInfo.type === \"SAME\" ? 1 : 0, j = h.batchSize, q = h.inHeight, Y = h.inWidth;\n if (l !== \"NHWC\")\n throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${l}'. Please use 'NHWC'.`);\n let J = o.makeOutput(h.outShape, \"float32\"), re = o.dataIdMap.get(J.dataId).id, ne = i == null ? 0 : o.dataIdMap.get(i.dataId).id;\n return QO(x, j, q, Y, b, k, _, S, E, R, D, P, U, O, M, L, B, z, C, g, ne, f || 0, re), J;\n}\nvar ZO = { kernelName: vo, backendName: \"wasm\", setupFunc: Aoe, kernelFunc: Foe };\nvar JO;\nfunction Poe(r) {\n JO = r.wasm.cwrap(ko, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Ooe(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dilations: c, dataFormat: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = e, h = w.computeConv2DInfo(n.shape, s.shape, p, c, u, m, true), g = ku[d];\n if (g == null)\n throw new Error(`${d} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);\n let x = o.dataIdMap.get(n.dataId).id, b = o.dataIdMap.get(s.dataId).id, C = h.outChannels, S = 0;\n if (a != null) {\n let ee = o.dataIdMap.get(a.dataId);\n if (ee.shape.length !== 1)\n throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);\n if (ee.shape[0] !== C)\n throw new Error(`FusedDepthwiseConv2D bias shape (${ee.shape}) does not match the number of output channels (${C})`);\n S = ee.id;\n }\n let k = h.filterHeight, _ = h.filterWidth, E = h.padInfo.top, R = h.padInfo.right, D = h.padInfo.bottom, P = h.padInfo.left, O = h.dilationHeight, M = h.dilationWidth, L = h.strideHeight, B = h.strideWidth, z = h.inChannels, U = h.padInfo.type === \"SAME\" ? 1 : 0, j = h.batchSize, q = h.inHeight, Y = h.inWidth;\n if (l !== \"NHWC\")\n throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${l}'. Please use 'NHWC'.`);\n let J = o.makeOutput(h.outShape, \"float32\"), re = o.dataIdMap.get(J.dataId).id, ne = i == null ? 0 : o.dataIdMap.get(i.dataId).id;\n return JO(x, j, q, Y, b, k, _, S, E, R, D, P, U, O, M, L, B, z, C, g, ne, f || 0, re), J;\n}\nvar eM = { kernelName: ko, backendName: \"wasm\", setupFunc: Poe, kernelFunc: Ooe };\nvar tM;\nfunction Moe(r) {\n tM = r.wasm.cwrap(kn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\"]);\n}\nfunction Loe(r) {\n let { backend: t8, inputs: e } = r, { params: o, indices: n } = e, [s, a, i, p] = af.prepareAndValidate(o, n), u = t8.makeOutput(s, o.dtype);\n if (a === 0)\n return u;\n let c = n.shape, l = c[c.length - 1], d = t8.dataIdMap.get(o.dataId).id, h = t8.dataIdMap.get(n.dataId).id, g = new Uint8Array(new Int32Array(p).buffer), x = t8.dataIdMap.get(u.dataId).id;\n return tM(d, we[o.dtype], h, a, l, i, g, x), u;\n}\nvar rM = { kernelName: kn, backendName: \"wasm\", setupFunc: Moe, kernelFunc: Loe };\nvar oM;\nfunction Boe(r) {\n oM = r.wasm.cwrap(\"Gather\", null, [\"number\", \"number\", \"array\", \"number\", \"number\", \"number\", \"array\", \"number\"]);\n}\nfunction zoe(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { x: n, indices: s } = e, { axis: a, batchDims: i } = o, p = y.parseAxisParam(a, n.shape)[0], u = t8.readSync(s.dataId), c = n.shape[p];\n for (let D = 0; D < u.length; ++D) {\n let P = u[D];\n y.assert(P <= c - 1 && P >= 0, () => `GatherV2: the index value ${P} is not in [0, ${c - 1}]`);\n }\n let l = w.segment_util.collectGatherOpShapeInfo(n, s, p, i), m = Vt({ inputs: { x: n }, attrs: { shape: [l.batchSize, l.outerSize, l.dimSize, l.sliceSize] }, backend: t8 }), d = y.sizeFromShape(s.shape), f = Vt({ inputs: { x: s }, attrs: { shape: [l.batchSize, d / l.batchSize] }, backend: t8 }), h = [l.batchSize, l.outerSize, d / l.batchSize, l.sliceSize], g = t8.makeOutput(h, n.dtype);\n if (y.sizeFromShape(n.shape) === 0)\n return g;\n let x = m.shape.length - 1, C = t8.dataIdMap.get(m.dataId).id, k = t8.dataIdMap.get(f.dataId).id, _ = t8.dataIdMap.get(g.dataId).id, E = new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer), R = new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);\n return oM(C, we[n.dtype], E, x, k, l.batchSize, R, _), t8.disposeData(m.dataId), t8.disposeData(f.dataId), g.shape = l.outputShape, g;\n}\nvar nM = { kernelName: aa, backendName: \"wasm\", setupFunc: Boe, kernelFunc: zoe };\nvar Voe = false;\nvar sM = Ue(Nn, Voe, \"bool\");\nvar Woe = false;\nvar aM = Ue(Tn, Woe, \"bool\");\nvar iM = he(_n, \"bool\");\nvar uM = he($n, \"bool\");\nvar pM = he(En, \"bool\");\nvar cM;\nfunction Uoe(r) {\n cM = r.wasm.cwrap(Rn, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Goe(r) {\n let { inputs: { x: t8 }, attrs: { alpha: e }, backend: o } = r, n = o.dataIdMap.get(t8.dataId).id, s = o.makeOutput(t8.shape, \"float32\");\n if (y.sizeFromShape(t8.shape) !== 0) {\n let a = o.dataIdMap.get(s.dataId).id;\n cM(n, we[t8.dtype], e, a);\n }\n return s;\n}\nvar lM = { kernelName: Rn, backendName: \"wasm\", setupFunc: Uoe, kernelFunc: Goe };\nvar Hoe = false;\nvar mM = Ue(Dn, Hoe, \"bool\");\nvar Koe = false;\nvar dM = Ue(An, Koe, \"bool\");\nvar fM;\nfunction qoe(r) {\n fM = r.wasm.cwrap(Fn, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction joe(r) {\n let { attrs: t8, backend: e } = r, { start: o, stop: n, num: s } = t8, a = Math.floor(s), i = e.makeOutput([a], \"float32\");\n return fM(e.dataIdMap.get(i.dataId).id, o, n, a), i;\n}\nvar hM = { kernelName: Fn, backendName: \"wasm\", setupFunc: qoe, kernelFunc: joe };\nvar gM = he(Pn);\nvar xM = he(On);\nvar Xoe = false;\nvar yM = Ue(Mn, Xoe, \"bool\");\nvar bM = he(Ln);\nvar Yoe = false;\nvar CM = Ue(Bn, Yoe, \"bool\");\nvar Qoe = false;\nvar wM = Ue($0, Qoe, \"bool\");\nvar SM;\nfunction Zoe(r) {\n SM = r.wasm.cwrap(zn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Joe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { depthRadius: s, bias: a, alpha: i, beta: p } = o;\n if (n.dtype !== \"float32\")\n throw new Error(\"LRN error: x must have dtype float32\");\n let u = e.makeOutput(n.shape, n.dtype);\n return SM(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(u.dataId).id, n.shape[3], s, a, i, p), u;\n}\nvar IM = { kernelName: zn, backendName: \"wasm\", setupFunc: Zoe, kernelFunc: Joe };\nvar vM;\nfunction ene(r) {\n vM = r.wasm.cwrap(Qa, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction tne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, y: s, dy: a } = t8, { depthRadius: i, bias: p, alpha: u, beta: c } = o;\n if (n.dtype !== \"float32\" || s.dtype !== \"float32\" || a.dtype !== \"float32\")\n throw new Error(\"LRNGrad error: x, y, and dy must have dtype float32\");\n let l = e.makeOutput(n.shape, n.dtype);\n return vM(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(a.dataId).id, e.dataIdMap.get(l.dataId).id, a.shape[3], i, p, u, c), l;\n}\nvar kM = { kernelName: Qa, backendName: \"wasm\", setupFunc: ene, kernelFunc: tne };\nvar NM;\nfunction rne(r) {\n NM = r.wasm.cwrap(Vn, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction one(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { reductionIndices: n, keepDims: s } = o, { x: a } = e, p = t8.dataIdMap.get(a.dataId).id, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8);\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n u = c, p = C;\n }\n let f = u.shape.length;\n w.assertAxesAreInnerMostDims(\"max\", l, f);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, l), x = y.sizeFromShape(g), b = t8.makeOutput(h, a.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n NM(p, we[a.dtype], x, C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar TM = { kernelName: Vn, backendName: \"wasm\", setupFunc: rne, kernelFunc: one };\nvar nne = false;\nvar _M = Ue(Wn, nne);\nvar $M;\nfunction sne(r) {\n $M = r.wasm.cwrap(Un, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction ane(r) {\n let { inputs: t8, attrs: e, backend: o } = r, n = t8.x, s = o.dataIdMap.get(n.dataId).id;\n y.assert(n.dtype === \"float32\", () => `Error in MaxPool: only float32 input is supported. Got ${n.dtype}.`);\n let { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = e, c = w.computePool2DInfo(n.shape, a, i, 1, p, u), l = c.filterHeight, m = c.filterWidth, d = c.padInfo.top, f = c.padInfo.right, h = c.padInfo.bottom, g = c.padInfo.left, x = c.dilationHeight, b = c.dilationWidth, C = c.strideHeight, S = c.strideWidth, k = c.inChannels, _ = c.outChannels;\n if (c.dataFormat !== \"channelsLast\")\n throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);\n let E = o.makeOutput(c.outShape, \"float32\"), R = o.dataIdMap.get(E.dataId).id;\n return $M(s, n.shape[0], n.shape[1], n.shape[2], l, m, d, f, h, g, x, b, C, S, k, _, R), E;\n}\nvar EM = { kernelName: Un, backendName: \"wasm\", setupFunc: sne, kernelFunc: ane };\nvar RM;\nfunction ine(r) {\n RM = r.wasm.cwrap(\"MaxPool3D\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction une(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p, dataFormat: u } = o, c = w.computePool3DInfo(n.shape, s, a, 1, i, p, u), l = e.makeOutput(c.outShape, n.dtype);\n return RM(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, c.batchSize, c.inChannels, c.inDepth, c.inHeight, c.inWidth, c.outDepth, c.outHeight, c.outWidth, c.strideDepth, c.strideHeight, c.strideWidth, c.dilationDepth, c.dilationHeight, c.dilationWidth, c.effectiveFilterDepth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.front, c.padInfo.top, c.padInfo.left), l;\n}\nvar DM = { kernelName: ia, backendName: \"wasm\", setupFunc: ine, kernelFunc: une };\nvar AM;\nfunction pne(r) {\n AM = r.wasm.cwrap(\"MaxPool3DGrad\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction cne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = o, c = w.computePool3DInfo(s.shape, a, i, 1, p, u), l = e.makeOutput(s.shape, s.dtype);\n return AM(e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, c.batchSize, c.inChannels, c.inDepth, c.inHeight, c.inWidth, c.outDepth, c.outHeight, c.outWidth, c.strideDepth, c.strideHeight, c.strideWidth, c.dilationDepth, c.dilationHeight, c.dilationWidth, c.effectiveFilterDepth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.front, c.padInfo.top, c.padInfo.left), l;\n}\nvar FM = { kernelName: Ki, backendName: \"wasm\", setupFunc: pne, kernelFunc: cne };\nvar PM;\nfunction lne(r) {\n PM = r.wasm.cwrap(\"MaxPoolGrad\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction mne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, { filterSize: a, strides: i, pad: p, dimRoundingMode: u } = o, c = w.computePool2DInfo(s.shape, a, i, 1, p, u), l = e.makeOutput(s.shape, s.dtype);\n return PM(e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, c.batchSize, c.inChannels, c.inHeight, c.inWidth, c.outHeight, c.outWidth, c.strideHeight, c.strideWidth, c.dilationHeight, c.dilationWidth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.top, c.padInfo.left), l;\n}\nvar OM = { kernelName: Hi, backendName: \"wasm\", setupFunc: lne, kernelFunc: mne };\nvar MM;\nfunction dne(r) {\n MM = r.wasm.cwrap(\"MaxPoolWithArgmax\", null, [\"number\", \"number\", \"number\", \"number\", \"boolean\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction fne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, includeBatchInIndex: p } = o;\n y.assert(n.shape.length === 4, () => `Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);\n let u = [1, 1];\n y.assert(w.eitherStridesOrDilationsAreOne(a, u), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);\n let c = w.computePool2DInfo(n.shape, s, a, [1, 1], i), l = e.makeOutput(c.outShape, n.dtype), m = e.makeOutput(c.outShape, \"int32\");\n return MM(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(l.dataId).id, e.dataIdMap.get(m.dataId).id, we[n.dtype], p, c.batchSize, c.inChannels, c.inHeight, c.inWidth, c.outHeight, c.outWidth, c.strideHeight, c.strideWidth, c.dilationHeight, c.dilationWidth, c.effectiveFilterHeight, c.effectiveFilterWidth, c.padInfo.top, c.padInfo.left), [l, m];\n}\nvar LM = { kernelName: ua, backendName: \"wasm\", setupFunc: dne, kernelFunc: fne };\nvar BM;\nfunction hne(r) {\n BM = r.wasm.cwrap(Gn, null, [\"number, number, number\"]);\n}\nfunction gne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, i = t8.dataIdMap.get(a.dataId).id, p = i, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8), f = l;\n if (d) {\n let S = t8.dataIdMap.get(c.dataId).id;\n S !== i && (u = c, p = S, f = w.getInnerMostAxes(f.length, u.shape.length));\n }\n w.assertAxesAreInnerMostDims(\"mean\", f, u.shape.length);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, f), x = y.sizeFromShape(g), b = u;\n u.dtype !== \"float32\" && (b = Mr({ backend: t8, inputs: { x: u }, attrs: { dtype: \"float32\" } }), p = t8.dataIdMap.get(b.dataId).id);\n let C = t8.makeOutput(h, \"float32\");\n if (y.sizeFromShape(u.shape) !== 0) {\n let S = t8.dataIdMap.get(C.dataId).id;\n BM(p, x, S);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let S = w.expandShapeToKeepDim(C.shape, m);\n C.shape = S;\n }\n return u.dtype !== \"float32\" && t8.disposeData(b.dataId), C;\n}\nvar zM = { kernelName: Gn, backendName: \"wasm\", setupFunc: hne, kernelFunc: gne };\nvar VM;\nfunction xne(r) {\n VM = r.wasm.cwrap(Hn, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction yne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, i = t8.dataIdMap.get(a.dataId).id, p = i, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8);\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n C !== i && (u = c, p = C);\n }\n let f = u.shape.length;\n w.assertAxesAreInnerMostDims(\"min\", l, f);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, l), x = y.sizeFromShape(g), b = t8.makeOutput(h, u.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n VM(p, we[a.dtype], x, C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar WM = { kernelName: Hn, backendName: \"wasm\", setupFunc: xne, kernelFunc: yne };\nvar bne = false;\nvar UM = Ue(Kn, bne);\nvar Ov;\n(function(r) {\n r[r.reflect = 0] = \"reflect\", r[r.symmetric = 1] = \"symmetric\";\n})(Ov || (Ov = {}));\nvar GM;\nfunction Cne(r) {\n GM = r.wasm.cwrap(qn, null, [\"number\", \"array\", \"number\", \"number\", \"array\", \"array\", \"number\", \"number\"]);\n}\nfunction wne(r) {\n let { inputs: { x: t8 }, backend: e, attrs: { paddings: o, mode: n } } = r, s = o.map((f, h) => f[0] + t8.shape[h] + f[1]), a = e.dataIdMap.get(t8.dataId).id, i = e.makeOutput(s, t8.dtype), p = e.dataIdMap.get(i.dataId).id, u = new Uint8Array(new Int32Array(t8.shape).buffer), c = o.map((f) => f[0]), l = o.map((f) => f[1]), m = new Uint8Array(new Int32Array(c).buffer), d = new Uint8Array(new Int32Array(l).buffer);\n return GM(a, u, t8.shape.length, we[t8.dtype], m, d, Ov[n], p), i;\n}\nvar HM = { kernelName: qn, backendName: \"wasm\", kernelFunc: wne, setupFunc: Cne };\nvar KM;\nfunction Sne(r) {\n KM = r.wasm.cwrap(vs, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Mv(r) {\n let { backend: t8, inputs: { logits: e }, attrs: { dim: o } } = r, n = t8.dataIdMap.get(e.dataId).id, s = t8.makeOutput(e.shape, e.dtype), a = t8.dataIdMap.get(s.dataId).id, i = e.shape[o], p = y.sizeFromShape(e.shape) / i;\n return y.sizeFromShape(s.shape) === 0 || KM(n, a, i, p), s;\n}\nvar qM = { kernelName: vs, backendName: \"wasm\", setupFunc: Sne, kernelFunc: Mv };\nvar jM;\nfunction Ine(r) {\n jM = r.wasm.cwrap(Xn, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction vne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { numSamples: s, seed: a, normalized: i } = o;\n if (n.dtype !== \"float32\")\n throw new Error(`Tensor logits must have dtype float32, got ${n.dtype}`);\n let p = i ? n : Mv({ inputs: { logits: n }, backend: e, attrs: { dim: n.shape.length - 1 } }), [u, c] = p.shape, l = e.makeOutput([u, s], \"int32\");\n return jM(e.dataIdMap.get(p.dataId).id, u, c, s, a, e.dataIdMap.get(l.dataId).id), i || e.disposeData(p.dataId), l;\n}\nvar XM = { kernelName: Xn, backendName: \"wasm\", setupFunc: Ine, kernelFunc: vne };\nvar YM = Ue(jn, true);\nvar kne = true;\nvar QM = Ue(Yn, kne);\nvar ZM = he(pa);\nfunction Yc(r, t8) {\n let e = new Int32Array(r.wasm.HEAPU8.buffer, t8, 4), o = e[0], n = e[1], s = e[2], a = e[3];\n return r.wasm._free(t8), { pSelectedIndices: o, selectedSize: n, pSelectedScores: s, pValidOutputs: a };\n}\nvar JM;\nfunction Nne(r) {\n JM = r.wasm.cwrap(Zn, \"number\", [\"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Tne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { iouThreshold: n, maxOutputSize: s, scoreThreshold: a } = o, { boxes: i, scores: p } = e, u = t8.dataIdMap.get(i.dataId).id, c = t8.dataIdMap.get(p.dataId).id, l = JM(u, c, s, n, a), { pSelectedIndices: m, selectedSize: d, pSelectedScores: f, pValidOutputs: h } = Yc(t8, l);\n return t8.wasm._free(f), t8.wasm._free(h), t8.makeOutput([d], \"int32\", m);\n}\nvar eL = { kernelName: Zn, backendName: \"wasm\", setupFunc: Nne, kernelFunc: Tne };\nvar tL;\nfunction _ne(r) {\n tL = r.wasm.cwrap(Za, \"number\", [\"number\", \"number\", \"number\", \"number\", \"number\", \"bool\"]);\n}\nfunction $ne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { iouThreshold: n, maxOutputSize: s, scoreThreshold: a, padToMaxOutputSize: i } = o, { boxes: p, scores: u } = e, c = t8.dataIdMap.get(p.dataId).id, l = t8.dataIdMap.get(u.dataId).id, m = tL(c, l, s, n, a, i), { pSelectedIndices: d, selectedSize: f, pSelectedScores: h, pValidOutputs: g } = Yc(t8, m);\n t8.wasm._free(h);\n let x = t8.makeOutput([f], \"int32\", d), b = t8.makeOutput([], \"int32\", g);\n return [x, b];\n}\nvar rL = { kernelName: Za, backendName: \"wasm\", setupFunc: _ne, kernelFunc: $ne };\nvar oL;\nfunction Ene(r) {\n oL = r.wasm.cwrap(Jn, \"number\", [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Rne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { iouThreshold: n, maxOutputSize: s, scoreThreshold: a, softNmsSigma: i } = o, { boxes: p, scores: u } = e, c = t8.dataIdMap.get(p.dataId).id, l = t8.dataIdMap.get(u.dataId).id, m = oL(c, l, s, n, a, i), { pSelectedIndices: d, selectedSize: f, pSelectedScores: h, pValidOutputs: g } = Yc(t8, m);\n t8.wasm._free(g);\n let x = t8.makeOutput([f], \"int32\", d), b = t8.makeOutput([f], \"float32\", h);\n return [x, b];\n}\nvar nL = { kernelName: Jn, backendName: \"wasm\", setupFunc: Ene, kernelFunc: Rne };\nvar Dne = false;\nvar sL = Ue(Qn, Dne, \"bool\");\nvar aL;\nfunction Ane(r) {\n aL = r.wasm.cwrap(es, null, [\"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Fne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n } = t8, { dtype: s, depth: a, onValue: i, offValue: p } = o, u = e.makeOutput([...n.shape, a], s), c = e.dataIdMap.get(u.dataId).id, m = e.dataIdMap.get(n.dataId).id;\n return aL(m, a, i, p, c), u;\n}\nvar iL = { kernelName: es, backendName: \"wasm\", setupFunc: Ane, kernelFunc: Fne };\nfunction Pne(r) {\n let { inputs: { x: t8 }, backend: e } = r, o = e.makeOutput(t8.shape, t8.dtype);\n return e.typedArrayFromHeap(o).fill(1), o;\n}\nvar uL = { kernelName: ca, backendName: \"wasm\", kernelFunc: Pne };\nfunction One(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o;\n if (t8.length === 1)\n return Lg({ inputs: { input: t8[0] }, backend: e, attrs: { dim: n } });\n let s = t8[0].shape, a = t8[0].dtype;\n t8.forEach((c) => {\n y.assertShapesMatch(s, c.shape, \"All tensors passed to stack must have matching shapes\"), y.assert(a === c.dtype, () => \"All tensors passed to stack must have matching dtypes\");\n });\n let i = [], p = t8.map((c) => {\n let l = Lg({ inputs: { input: c }, backend: e, attrs: { dim: n } });\n return i.push(l), l;\n }), u = Av({ inputs: p, backend: e, attrs: { axis: n } });\n return i.forEach((c) => e.disposeData(c.dataId)), u;\n}\nvar pL = { kernelName: la, backendName: \"wasm\", kernelFunc: One };\nvar cL;\nfunction Mne(r) {\n cL = r.wasm.cwrap(ts, null, [\"number\", \"array\", \"number\", \"number\", \"array\", \"array\", \"number\", \"number\"]);\n}\nfunction Lne(r) {\n let { inputs: { x: t8 }, backend: e, attrs: { paddings: o, constantValue: n } } = r, s = o.map((h, g) => h[0] + t8.shape[g] + h[1]);\n if (y.sizeFromShape(t8.shape) === 0)\n return Pv({ backend: e, attrs: { shape: s, value: n, dtype: t8.dtype } });\n let a = e.dataIdMap.get(t8.dataId).id, i = e.makeOutput(s, t8.dtype), u = e.dataIdMap.get(i.dataId).id, c = new Uint8Array(new Int32Array(t8.shape).buffer), l = o.map((h) => h[0]), m = o.map((h) => h[1]), d = new Uint8Array(new Int32Array(l).buffer), f = new Uint8Array(new Int32Array(m).buffer);\n return cL(a, c, t8.shape.length, we[t8.dtype], d, f, n, u), i;\n}\nvar Bg = { kernelName: ts, backendName: \"wasm\", kernelFunc: Lne, setupFunc: Mne };\nvar Bne = false;\nvar lL = Ue(rs, Bne);\nvar mL;\nfunction zne(r) {\n mL = r.wasm.cwrap(os, null, [\"number\", \"number\", \"number\"]);\n}\nfunction Vne(r) {\n let { inputs: t8, backend: e } = r, { x: o, alpha: n } = t8, s = e.dataIdMap.get(o.dataId).id, a = e.dataIdMap.get(n.dataId).id, i = s, p = o, u = p;\n p.dtype !== \"float32\" && (u = Mr({ backend: e, inputs: { x: o }, attrs: { dtype: \"float32\" } }), i = e.dataIdMap.get(u.dataId).id);\n let c = e.makeOutput(o.shape, \"float32\"), l = e.dataIdMap.get(c.dataId).id;\n return mL(i, a, l), p.dtype !== \"float32\" && e.disposeData(u.dataId), c;\n}\nvar dL = { kernelName: os, backendName: \"wasm\", setupFunc: zne, kernelFunc: Vne };\nvar fL;\nfunction Wne(r) {\n fL = r.wasm.cwrap(ns, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Une(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, i = t8.dataIdMap.get(a.dataId).id, p = i, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8), f = l;\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n C !== i && (u = c, p = C, f = w.getInnerMostAxes(f.length, u.shape.length));\n }\n w.assertAxesAreInnerMostDims(\"prod\", f, u.shape.length);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, f), x = y.sizeFromShape(g), b = t8.makeOutput(h, u.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n fL(p, x, we[b.dtype], C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar hL = { kernelName: ns, backendName: \"wasm\", setupFunc: Wne, kernelFunc: Une };\nvar Gne = (r) => {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, step: s, dtype: a } = e, i = fp(o, n, s, a), p = t8.makeOutput([i.length], a);\n return t8.typedArrayFromHeap(p).set(i), p;\n};\nvar gL = { kernelName: ma, backendName: \"wasm\", kernelFunc: Gne };\nvar Hne = true;\nvar xL = Ue(hn, Hne);\nvar yL = he(ss);\nvar bL = he(as);\nvar CL = he(ps);\nvar wL;\nfunction Kne(r) {\n wL = r.wasm.cwrap(us, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction qne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { images: n } = e, { alignCorners: s, halfPixelCenters: a, size: i } = o, [p, u] = i, [c, l, m, d] = n.shape, f = [c, p, u, d], h = t8.dataIdMap.get(n.dataId), g;\n h.dtype !== \"float32\" && (g = Mr({ backend: t8, inputs: { x: n }, attrs: { dtype: \"float32\" } }), h = t8.dataIdMap.get(g.dataId));\n let x = h.id, b = t8.makeOutput(f, \"float32\");\n if (y.sizeFromShape(n.shape) === 0)\n return b;\n let C = t8.dataIdMap.get(b.dataId).id;\n return wL(x, c, l, m, d, p, u, s ? 1 : 0, a ? 1 : 0, C), g != null && t8.disposeData(g.dataId), b;\n}\nvar SL = { kernelName: us, backendName: \"wasm\", setupFunc: Kne, kernelFunc: qne };\nvar IL;\nfunction jne(r) {\n IL = r.wasm.cwrap(ei, null, [\"number\", \"number\", \"number\", \"array\", \"array\", \"boolean\"]);\n}\nfunction Xne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, i = e.makeOutput(n.shape, \"float32\"), p = e.dataIdMap.get(n.dataId), u;\n return p.dtype !== \"float32\" && (u = Mr({ backend: e, inputs: { x: n }, attrs: { dtype: \"float32\" } }), p = e.dataIdMap.get(u.dataId)), IL(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(i.dataId).id, new Uint8Array(new Int32Array(n.shape).buffer), new Uint8Array(new Int32Array(s.shape).buffer), a), u != null && e.disposeData(u.dataId), i;\n}\nvar vL = { kernelName: ei, backendName: \"wasm\", setupFunc: jne, kernelFunc: Xne };\nvar kL;\nfunction Yne(r) {\n kL = r.wasm.cwrap(is, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Qne(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { images: n } = e, { alignCorners: s, halfPixelCenters: a, size: i } = o, [p, u] = i, [c, l, m, d] = n.shape, f = [c, p, u, d], h = t8.makeOutput(f, \"float32\");\n if (y.sizeFromShape(n.shape) === 0)\n return h;\n let g = t8.dataIdMap.get(n.dataId), x;\n g.dtype !== \"float32\" && (x = Mr({ backend: t8, inputs: { x: n }, attrs: { dtype: \"float32\" } }), g = t8.dataIdMap.get(x.dataId));\n let b = g.id, C = t8.dataIdMap.get(h.dataId).id;\n return kL(b, c, l, m, d, p, u, s ? 1 : 0, a ? 1 : 0, C), x != null && t8.disposeData(x.dataId), h;\n}\nvar NL = { kernelName: is, backendName: \"wasm\", setupFunc: Yne, kernelFunc: Qne };\nvar TL;\nfunction Zne(r) {\n TL = r.wasm.cwrap(Ja, null, [\"number\", \"number\", \"number\", \"array\", \"array\", \"boolean\"]);\n}\nfunction Jne(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, i = e.makeOutput(n.shape, \"float32\"), p = e.dataIdMap.get(n.dataId), u;\n return p.dtype !== \"float32\" && (u = Mr({ backend: e, inputs: { x: n }, attrs: { dtype: \"float32\" } }), p = e.dataIdMap.get(u.dataId)), TL(e.dataIdMap.get(n.dataId).id, e.dataIdMap.get(s.dataId).id, e.dataIdMap.get(i.dataId).id, new Uint8Array(new Int32Array(n.shape).buffer), new Uint8Array(new Int32Array(s.shape).buffer), a), u != null && e.disposeData(u.dataId), i;\n}\nvar _L = { kernelName: Ja, backendName: \"wasm\", setupFunc: Zne, kernelFunc: Jne };\nvar $L;\nfunction ese(r) {\n $L = r.wasm.cwrap(cs, null, [\"number\", \"array\", \"number\", \"array\", \"number\", \"number\"]);\n}\nfunction tse(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dims: s } = o, a = y.parseAxisParam(s, n.shape);\n if (n.shape.length === 0)\n return Dp({ inputs: { x: n }, backend: e });\n let i = e.makeOutput(n.shape, n.dtype), p = e.dataIdMap.get(n.dataId).id, u = e.dataIdMap.get(i.dataId).id, c = new Uint8Array(new Int32Array(a).buffer), l = new Uint8Array(new Int32Array(n.shape).buffer);\n $L(p, c, a.length, l, n.shape.length, u);\n let m = Vt({ inputs: { x: i }, attrs: { shape: n.shape }, backend: e });\n return e.disposeData(i.dataId), m;\n}\nvar EL = { kernelName: cs, backendName: \"wasm\", kernelFunc: tse, setupFunc: ese };\nvar RL;\nfunction rse(r) {\n RL = r.wasm.cwrap(As, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"number\"]);\n}\nfunction ose(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n } = t8, { radians: s, fillValue: a, center: i } = o, p = e.makeOutput(n.shape, n.dtype), u = e.dataIdMap.get(n.dataId).id, c = e.dataIdMap.get(p.dataId).id, [l, m, d, f] = n.shape, [h, g] = w.getImageCenter(i, m, d), x = a === 0, b = 255, C = typeof a == \"number\" ? [a, a, a, x ? 0 : b] : [...a, b], S = new Uint8Array(new Int32Array(C).buffer);\n return RL(u, l, m, d, f, s, h, g, S, C.length, c), p;\n}\nvar DL = { kernelName: As, backendName: \"wasm\", kernelFunc: ose, setupFunc: rse };\nvar AL = he(ls);\nvar FL = he(ms);\nvar PL;\nfunction nse(r) {\n PL = r.wasm.cwrap(ds, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"number\"]);\n}\nfunction sse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { indices: n, updates: s } = e, { shape: a } = o, i = t8.makeOutput(a, s.dtype);\n if (y.sizeFromShape(a) === 0)\n return i;\n let { sliceRank: p, numUpdates: u, sliceSize: c, strides: l, outputSize: m } = hu.calculateShapes(s, n, a), f = t8.dataIdMap.get(n.dataId).id, g = t8.dataIdMap.get(s.dataId).id, x = new Uint8Array(new Int32Array(l).buffer), b = t8.dataIdMap.get(i.dataId).id;\n return PL(f, g, we[s.dtype], p, u, c, x, m, b), i;\n}\nvar OL = { kernelName: ds, backendName: \"wasm\", setupFunc: nse, kernelFunc: sse };\nvar ML;\nfunction ase(r) {\n ML = r.wasm.cwrap(hs, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"bool\", \"number\"]);\n}\nfunction ise(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sortedSequence: n, values: s } = t8, { side: a } = o;\n if (n.dtype !== s.dtype)\n throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${n.dtype} and ${s.dtype}`);\n let i = e.makeOutput(s.shape, \"int32\");\n function p(u) {\n return e.dataIdMap.get(u.dataId).id;\n }\n return ML(p(n), p(s), n.shape[0], n.shape[1], s.shape[1], we[n.dtype], a === \"left\", p(i)), i;\n}\nvar LL = { kernelName: hs, backendName: \"wasm\", setupFunc: ase, kernelFunc: ise };\nvar BL;\nfunction use(r) {\n BL = r.wasm.cwrap(\"SelectV2\", null, [\"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction pse(r) {\n let { inputs: t8, backend: e } = r, { condition: o, t: n, e: s } = t8, a = e.dataIdMap.get(o.dataId).id, i = e.dataIdMap.get(n.dataId).id, p = e.dataIdMap.get(s.dataId).id, u = e.makeOutput(n.shape, n.dtype), c = e.dataIdMap.get(u.dataId).id, l = o.shape.length, m = n.shape.length, d = l === 0 || l > 1 || m === 1 ? 1 : y.sizeFromShape(n.shape.slice(1));\n return BL(a, i, p, d, c), u;\n}\nvar zL = { kernelName: fa, backendName: \"wasm\", kernelFunc: pse, setupFunc: use };\nvar VL = he(gs);\nvar WL;\nfunction cse(r) {\n WL = r.wasm.cwrap(Cs, null, [\"number\", \"number\"]);\n}\nfunction lse(r) {\n let { backend: t8, inputs: { x: e } } = r, o = t8.dataIdMap.get(e.dataId).id, n = t8.makeOutput(e.shape, e.dtype), s = t8.dataIdMap.get(n.dataId).id;\n return y.sizeFromShape(n.shape) === 0 || WL(o, s), n;\n}\nvar UL = { kernelName: \"Sigmoid\", backendName: \"wasm\", setupFunc: cse, kernelFunc: lse };\nvar GL = he(bs);\nvar HL = he(xs);\nvar KL = he(ys);\nvar qL = he(ws);\nfunction mse(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, paddings: a } = o, i = y.sizeFromShape(s), p = [[0, 0]];\n p.push(...a);\n for (let _ = 1 + s.length; _ < n.shape.length; ++_)\n p.push([0, 0]);\n let u = Bg.kernelFunc({ inputs: { x: n }, backend: e, attrs: { paddings: p, constantValue: 0 } }), c = w.getReshaped(u.shape, s, i, false), l = w.getPermuted(c.length, s.length, false), m = w.getReshapedPermuted(u.shape, s, i, false), h = Vt({ inputs: { x: u }, backend: e, attrs: { shape: c } }), b = go({ inputs: { x: h }, backend: e, attrs: { perm: l } }), k = Vt({ inputs: { x: b }, backend: e, attrs: { shape: m } });\n return e.disposeData(u.dataId), e.disposeData(h.dataId), e.disposeData(b.dataId), k;\n}\nvar jL = { kernelName: ga, backendName: \"wasm\", kernelFunc: mse };\nvar XL;\nfunction dse(r) {\n XL = r.wasm.cwrap(\"SparseFillEmptyRows\", \"number\", [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction fse(r) {\n let { backend: t8, inputs: e } = r, { indices: o, values: n, denseShape: s, defaultValue: a } = e, i = o.shape[0], p = o.shape[1], u = t8.readSync(s.dataId)[0], c = [i + u, p], l = t8.dataIdMap.get(o.dataId).id, m = t8.dataIdMap.get(n.dataId).id, d = t8.dataIdMap.get(a.dataId).id, f = t8.makeOutput(c, o.dtype), h = t8.dataIdMap.get(f.dataId).id, g = t8.makeOutput(c.slice(0, 1), n.dtype), x = t8.dataIdMap.get(g.dataId).id, b = t8.makeOutput([u], \"bool\"), C = t8.dataIdMap.get(b.dataId).id, S = t8.makeOutput([i], o.dtype), k = t8.dataIdMap.get(S.dataId).id, _ = t8.makeOutput([4], \"int32\"), E = t8.dataIdMap.get(_.dataId).id, R = XL(l, m, we[n.dtype], i, u, p, d, h, x, C, k, E), D = t8.readSync(_.dataId), P;\n switch (D[0]) {\n case 1: {\n P = w.getSparseFillEmptyRowsIndicesDenseShapeMismatch(D[1]);\n break;\n }\n case 2: {\n P = w.getSparseFillEmptyRowsNegativeIndexErrorMessage(D[1], D[2]);\n break;\n }\n case 3:\n P = w.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(D[1], D[2], D[3]);\n break;\n default:\n P = \"\";\n }\n if (t8.disposeData(_.dataId), P)\n throw t8.disposeData(f.dataId), t8.disposeData(g.dataId), t8.disposeData(b.dataId), t8.disposeData(S.dataId), new Error(P);\n let O = f, M = g;\n return R !== c[0] && (O = Oo({ inputs: { x: f }, attrs: { begin: 0, size: [R, p] }, backend: t8 }), M = Oo({ inputs: { x: g }, attrs: { begin: 0, size: R }, backend: t8 }), t8.disposeData(f.dataId), t8.disposeData(g.dataId)), [O, M, b, S];\n}\nvar YL = { kernelName: ji, backendName: \"wasm\", setupFunc: dse, kernelFunc: fse };\nvar QL;\nfunction hse(r) {\n QL = r.wasm.cwrap(ti, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction gse(r) {\n let { backend: t8, inputs: e } = r, { inputIndices: o, inputShape: n, newShape: s } = e;\n if (o.shape.length !== 2)\n throw new Error(`Input indices should be a matrix but received shape\n ${o.shape}`);\n if (n.shape.length !== 1)\n throw new Error(`Input shape should be a vector but received shape\n ${n.shape}`);\n if (s.shape.length !== 1)\n throw new Error(`Target shape should be a vector but received shape ${s.shape}`);\n let a = t8.dataIdMap.get(o.dataId).id, i = t8.dataIdMap.get(n.dataId).id, p = t8.dataIdMap.get(s.dataId).id, u = o.shape[0], c = y.sizeFromShape(s.shape), l = t8.makeOutput([u, c], o.dtype), m = t8.dataIdMap.get(l.dataId).id, d = t8.makeOutput([c], s.dtype), f = t8.dataIdMap.get(d.dataId).id, h = t8.makeOutput([3], \"int32\"), g = t8.dataIdMap.get(h.dataId).id;\n QL(a, i, p, u, m, f, g);\n let x = t8.readSync(h.dataId), b;\n switch (x[0]) {\n case 0: {\n b = w.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(x[1], x[2]);\n break;\n }\n case 1: {\n b = w.getSparseReshapeNegativeOutputDimErrorMessage(x[1], x[2]);\n break;\n }\n case 2:\n b = w.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();\n break;\n case 3: {\n let C = Array.from(t8.readSync(n.dataId)), S = Array.from(t8.readSync(d.dataId));\n b = w.getSparseReshapeInputOutputMultipleErrorMessage(C, S);\n break;\n }\n case 4: {\n let C = Array.from(t8.readSync(n.dataId)), S = Array.from(t8.readSync(d.dataId));\n b = w.getSparseReshapeInputOutputMismatchErrorMessage(C, S);\n break;\n }\n default:\n b = \"\";\n }\n if (t8.disposeData(h.dataId), b)\n throw t8.disposeData(l.dataId), t8.disposeData(d.dataId), new Error(b);\n return [l, d];\n}\nvar ZL = { kernelName: ti, backendName: \"wasm\", setupFunc: hse, kernelFunc: gse };\nvar JL;\nfunction zg(r) {\n JL = r.wasm.cwrap(\"SparseSegmentReduction\", null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Vg(r, t8) {\n let { backend: e, inputs: o } = r, { data: n, indices: s, segmentIds: a } = o, i = s.shape[0], p = e.readSync(a.dataId, i - 1, i)[0], c = i > 0 ? p + 1 : 0;\n if (c < 0)\n throw new Error(w.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());\n let l = n.shape.slice();\n l[0] = c;\n let m = e.dataIdMap.get(n.dataId).id, d = e.dataIdMap.get(s.dataId).id, f = e.dataIdMap.get(a.dataId).id, h = e.makeOutput(l, n.dtype), g = e.dataIdMap.get(h.dataId).id, x = e.makeOutput([4], \"int32\"), b = e.dataIdMap.get(x.dataId).id;\n JL(m, we[n.dtype], n.shape[0], d, f, g, b, t8, 0);\n let C = e.readSync(x.dataId), S;\n switch (C[0]) {\n case 0: {\n S = w.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();\n break;\n }\n case 1: {\n S = w.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();\n break;\n }\n case 2:\n S = w.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(C[1], C[2]);\n break;\n case 3:\n S = w.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C[1], C[2], C[3]);\n break;\n default:\n S = \"\";\n }\n if (e.disposeData(x.dataId), S)\n throw e.disposeData(h.dataId), new Error(S);\n return h;\n}\nfunction xse(r) {\n return Vg(r, true);\n}\nvar eB = { kernelName: ya, backendName: \"wasm\", setupFunc: zg, kernelFunc: xse };\nfunction yse(r) {\n return Vg(r, false);\n}\nvar tB = { kernelName: ba, backendName: \"wasm\", setupFunc: zg, kernelFunc: yse };\nvar rB;\nfunction bse(r) {\n rB = r.wasm.cwrap(ks, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"number\"]);\n}\nfunction Cse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { sparseIndices: n, sparseValues: s, defaultValue: a } = e, { outputShape: i } = o, p = t8.makeOutput(i, a.dtype);\n if (y.sizeFromShape(i) === 0)\n return p;\n let { sliceRank: u, numUpdates: c, sliceSize: l, strides: m, outputSize: d } = w.calculateShapes(s, n, i), f = t8.dataIdMap.get(n.dataId).id, h = t8.dataIdMap.get(s.dataId).id, g = t8.dataIdMap.get(a.dataId).id, x = new Uint8Array(new Int32Array(m).buffer), b = t8.dataIdMap.get(p.dataId).id;\n return rB(f, h, s.shape.length, g, we[a.dtype], u, c, l, x, d, b), p;\n}\nvar oB = { kernelName: ks, backendName: \"wasm\", setupFunc: bse, kernelFunc: Cse };\nfunction wse(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n } = t8, { numOrSizeSplits: s, axis: a } = e, i = y.parseAxisParam(a, n.shape)[0], p = w.prepareSplitSize(n, s, i), u = new Array(n.shape.length).fill(0), c = n.shape.slice();\n return p.map((l) => {\n let m = [...c];\n m[i] = l;\n let d = Oo({ inputs: { x: n }, attrs: { begin: u, size: m }, backend: o });\n return u[i] += l, d;\n });\n}\nvar nB = { kernelName: xa, backendName: \"wasm\", kernelFunc: wse };\nvar sB = he(Ss);\nvar aB = he(Xi);\nvar Sse = true;\nvar iB = Ue(Ns, Sse);\nvar uB;\nfunction Ise(r) {\n uB = r.wasm.cwrap(So, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction vse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { alpha: n } = o, { x: s } = e, a = t8.dataIdMap.get(s.dataId).id, i = t8.makeOutput(s.shape, s.dtype), p = t8.dataIdMap.get(i.dataId).id;\n return uB(a, n, we[s.dtype], p), i;\n}\nvar pB = { kernelName: So, backendName: \"wasm\", setupFunc: Ise, kernelFunc: vse };\nvar cB;\nfunction kse(r) {\n cB = r.wasm.cwrap(Ts, null, [\"number\", \"array\", \"number\", \"array\", \"array\", \"array\", \"array\", \"array\", \"number\", \"number\"]);\n}\nfunction Nse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { x: n } = e, { begin: s, end: a, strides: i, beginMask: p, endMask: u, ellipsisMask: c, newAxisMask: l, shrinkAxisMask: m } = o, { finalShapeSparse: d, finalShape: f, isIdentity: h, sliceDim0: g, isSimpleSlice: x, begin: b, end: C, strides: S } = ct.sliceInfo(n.shape, s, a, i, p, u, c, l, m), k;\n if (h)\n k = Vt({ inputs: { x: n }, backend: t8, attrs: { shape: f } });\n else if (g || x) {\n y.assert(n.shape.length >= 1, () => `Input must have rank at least 1, got: ${n.shape.length}`);\n let _ = ct.computeOutShape(b, C, S), E = Oo({ inputs: { x: n }, backend: t8, attrs: { begin: b, size: _ } });\n k = Vt({ inputs: { x: E }, backend: t8, attrs: { shape: f } }), t8.disposeData(E.dataId);\n } else {\n let _ = t8.makeOutput(d, \"float32\"), E = t8.dataIdMap.get(n.dataId).id, R = new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer), D = new Uint8Array(new Int32Array(b).buffer), P = new Uint8Array(new Int32Array(C).buffer), O = new Uint8Array(new Int32Array(S).buffer), M = new Uint8Array(new Int32Array(d).buffer), L = new Uint8Array(new Int32Array(y.computeStrides(d)).buffer), B = t8.dataIdMap.get(_.dataId).id;\n cB(E, R, n.shape.length, D, P, O, M, L, d.length, B), k = Vt({ inputs: { x: _ }, backend: t8, attrs: { shape: f } }), t8.disposeData(_.dataId);\n }\n return k;\n}\nvar lB = { kernelName: Ts, backendName: \"wasm\", setupFunc: kse, kernelFunc: Nse };\nfunction Tse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { data: n, dataSplits: s } = e, { separator: a, nGramWidths: i, leftPad: p, rightPad: u, padWidth: c, preserveShortSequences: l } = o, m = t8.readSync(n.dataId), d = t8.readSync(s.dataId), [f, h] = gp(m, d, a, i, p, u, c, l), g = t8.makeOutput([f.length], \"string\"), x = t8.dataIdMap.get(g.dataId);\n x.stringBytes = f;\n let b = t8.makeOutput(s.shape, \"int32\");\n return t8.typedArrayFromHeap(b).set(h), [g, b];\n}\nvar mB = { kernelName: Ca, backendName: \"wasm\", kernelFunc: Tse };\nfunction _se(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { input: n, delimiter: s } = e, { skipEmpty: a } = o, i = t8.readSync(n.dataId), p = t8.readSync(s.dataId), [u, c, l] = xp(i, p[0], a), m = c.length, d = t8.makeOutput([m, 2], \"int32\");\n t8.typedArrayFromHeap(d).set(u);\n let h = t8.makeOutput([m], \"string\"), g = t8.dataIdMap.get(h.dataId);\n g.stringBytes = c;\n let x = t8.makeOutput([2], \"int32\");\n return t8.typedArrayFromHeap(x).set(l), [d, h, x];\n}\nvar dB = { kernelName: Yi, backendName: \"wasm\", kernelFunc: _se };\nfunction $se(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { input: n } = e, { numBuckets: s } = o, a = t8.readSync(n.dataId), i = yp(a, s), p = t8.makeOutput(n.shape, \"int32\");\n return t8.typedArrayFromHeap(p).set(i), p;\n}\nvar fB = { kernelName: Qi, backendName: \"wasm\", kernelFunc: $se };\nvar Ese = true;\nvar hB = Ue(_s, Ese);\nvar gB;\nfunction Rse(r) {\n gB = r.wasm.cwrap(Is, null, [\"number\", \"number\", \"number\", \"number\"]);\n}\nfunction Dse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { axis: n, keepDims: s } = o, { x: a } = e, i = t8.dataIdMap.get(a.dataId).id, p = i, u = a, { transposed: c, axes: l, originalAxes: m, inputWasTransposed: d } = _r(a, n, t8), f = l;\n if (d) {\n let C = t8.dataIdMap.get(c.dataId).id;\n C !== i && (u = c, p = C, f = w.getInnerMostAxes(f.length, u.shape.length));\n }\n w.assertAxesAreInnerMostDims(\"sum\", f, u.shape.length);\n let [h, g] = w.computeOutAndReduceShapes(u.shape, f), x = y.sizeFromShape(g), b = t8.makeOutput(h, u.dtype);\n if (y.sizeFromShape(u.shape) !== 0) {\n let C = t8.dataIdMap.get(b.dataId).id;\n gB(p, x, we[b.dtype], C);\n }\n if (d && t8.disposeData(c.dataId), s) {\n let C = w.expandShapeToKeepDim(b.shape, m);\n b.shape = C;\n }\n return b;\n}\nvar xB = { kernelName: Is, backendName: \"wasm\", setupFunc: Rse, kernelFunc: Dse };\nvar yB = he($s);\nvar bB = he(Es);\nvar CB;\nfunction Ase(r) {\n CB = r.wasm.cwrap(fs, null, [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"number\", \"number\"]);\n}\nfunction Fse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { tensor: n, indices: s, updates: a } = e, {} = o, i = t8.makeOutput(n.shape, n.dtype);\n if (y.sizeFromShape(n.shape) === 0)\n return i;\n let { sliceRank: p, numUpdates: u, sliceSize: c, strides: l, outputSize: m } = hu.calculateShapes(a, s, n.shape), f = t8.dataIdMap.get(s.dataId).id, g = t8.dataIdMap.get(a.dataId).id, b = t8.dataIdMap.get(n.dataId).id, C = new Uint8Array(new Int32Array(l).buffer), S = t8.dataIdMap.get(i.dataId).id;\n return CB(f, g, we[a.dtype], p, u, c, C, m, S, b), i;\n}\nvar wB = { kernelName: fs, backendName: \"wasm\", setupFunc: Ase, kernelFunc: Fse };\nvar SB;\nfunction Pse(r) {\n SB = r.wasm.cwrap(po, null, [\"number\", \"array\", \"number\", \"array\", \"number\", \"number\"]);\n}\nfunction Ose(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, s = e.dataIdMap.get(n.dataId).id, { reps: a } = o, i = new Array(n.shape.length);\n for (let m = 0; m < i.length; m++)\n i[m] = n.shape[m] * a[m];\n let p = new Uint8Array(new Int32Array(n.shape).buffer), u = new Uint8Array(new Int32Array(i).buffer), c = e.makeOutput(i, n.dtype), l = e.dataIdMap.get(c.dataId).id;\n return SB(s, p, n.shape.length, u, i.length, we[c.dtype], l), c;\n}\nvar IB = { kernelName: po, backendName: \"wasm\", setupFunc: Pse, kernelFunc: Ose };\nvar vB;\nfunction Mse(r) {\n vB = r.wasm.cwrap(Rs, null, [\"number\", \"array\", \"number\", \"number\", \"number\", \"bool\", \"number\", \"number\"]);\n}\nvar Lse = ({ inputs: r, backend: t8, attrs: e }) => {\n let { x: o } = r, { k: n, sorted: s } = e, a = t8.dataIdMap.get(o.dataId).id, i = new Uint8Array(new Int32Array(o.shape).buffer), p = o.shape.slice();\n p[p.length - 1] = n;\n let u = t8.makeOutput(p, o.dtype), c = t8.dataIdMap.get(u.dataId).id, l = t8.makeOutput(p, \"int32\"), m = t8.dataIdMap.get(l.dataId).id;\n return vB(a, i, o.shape.length, we[o.dtype], n, s, c, m), [u, l];\n};\nvar kB = { kernelName: Rs, backendName: \"wasm\", setupFunc: Mse, kernelFunc: Lse };\nvar NB;\nfunction Bse(r) {\n NB = r.wasm.cwrap(Ds, null, [\"number\", \"number\", \"bool\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"array\", \"number\", \"array\", \"number\", \"number\", \"number\", \"number\", \"number\"]);\n}\nfunction zse(r) {\n let { backend: t8, inputs: e, attrs: o } = r, { image: n, transforms: s } = e, { interpolation: a, fillMode: i, fillValue: p, outputShape: u } = o, [c, l, m, d] = n.shape, [f, h] = u != null ? u : [l, m], g = [c, f, h, d], x = new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer), b = new Uint8Array(new Int32Array(y.computeStrides(g)).buffer), C = t8.makeOutput(g, n.dtype), S = t8.dataIdMap.get(C.dataId).id, _ = t8.dataIdMap.get(n.dataId).id, R = t8.dataIdMap.get(s.dataId).id, D = a === \"nearest\" ? 1 : 2, P;\n switch (i) {\n case \"constant\":\n P = 1;\n break;\n case \"reflect\":\n P = 2;\n break;\n case \"wrap\":\n P = 3;\n break;\n case \"nearest\":\n P = 4;\n break;\n default:\n P = 1;\n break;\n }\n return NB(_, R, s.shape[0] > 1, c, f, h, d, m, l, x, n.shape.length - 1, b, g.length - 1, D, P, p, S), C;\n}\nvar TB = { kernelName: Ds, backendName: \"wasm\", setupFunc: Bse, kernelFunc: zse };\nfunction Vse(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { axis: n } = e, { x: s } = t8, { outputValues: a, outputShape: i, indices: p } = bp(o.readSync(s.dataId), n, s.shape, s.dtype);\n return [o.makeOutput(i, s.dtype, void 0, a), o.makeOutput([p.length], \"int32\", void 0, p)];\n}\nvar _B = { kernelName: Zi, backendName: \"wasm\", kernelFunc: Vse };\nfunction Wse(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { value: n } = t8, { axis: s } = o;\n s < 0 && (s += n.shape.length);\n let a = n.shape[s], i = n.shape.length, p = new Array(i - 1), u = 0;\n for (let d = 0; d < i; d++)\n d !== s && (p[u++] = n.shape[d]);\n let c = new Array(a), l = new Array(i).fill(0), m = n.shape.slice();\n m[s] = 1;\n for (let d = 0; d < c.length; d++)\n l[s] = d, c[d] = Oo({ inputs: { x: n }, attrs: { begin: l, size: m }, backend: e });\n return c.map(({ dataId: d, dtype: f }) => ({ dataId: d, dtype: f, shape: p }));\n}\nvar $B = { kernelName: wa, backendName: \"wasm\", kernelFunc: Wse };\nfunction Use(r) {\n let { inputs: { x: t8 }, backend: e } = r, o = e.makeOutput(t8.shape, t8.dtype);\n return e.typedArrayFromHeap(o).fill(0), o;\n}\nvar EB = { kernelName: Sa, backendName: \"wasm\", kernelFunc: Use };\nvar Gse = [hP, gP, xP, yP, bP, wP, NP, _P, $P, EP, RP, DP, AP, FP, PP, MP, UP, BP, VP, KP, jP, YP, QP, ZP, JP, eO, rO, oO, sO, iO, pO, lO, dO, fO, hO, xO, bO, wO, IO, kO, TO, $O, RO, AO, PO, OO, LO, BO, zO, VO, WO, UO, GO, KO, qO, jO, YO, ZO, eM, rM, nM, sM, aM, SP, iM, uM, pM, lM, mM, dM, hM, xM, gM, yM, bM, CM, wM, IM, kM, TM, _M, EM, DM, FM, OM, LM, zM, WM, UM, HM, XM, YM, QM, ZM, eL, rL, nL, sL, iL, uL, pL, Bg, lL, dL, hL, gL, xL, yL, bL, CL, GP, SL, vL, NL, _L, EL, DL, AL, FL, OL, LL, zL, VL, UL, GL, HL, KL, qP, qM, qL, jL, YL, ZL, eB, tB, oB, nB, sB, aB, iB, pB, lB, mB, dB, fB, hB, xB, yB, bB, wB, IB, kB, TB, vP, _B, $B, EB];\nfor (let r of Gse)\n ri(r);\nvar Lv = A();\nLv.registerFlag(\"WASM_HAS_SIMD_SUPPORT\", async () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 9, 1, 7, 0, 65, 0, 253, 15, 26, 11]));\n } catch (r) {\n return false;\n }\n});\nLv.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\", async () => {\n if (Lv.get(\"IS_NODE\"))\n return false;\n try {\n return 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]));\n } catch (r) {\n return false;\n }\n});\nvar Kv = Kp(FB());\nvar zB = Kp(OB());\nvar qv = Kp(MB());\nvar LB = Kv.default || Kv;\nvar Hse = qv.default || qv;\nvar pm = class extends ao {\n constructor(t8) {\n super(), this.wasm = t8, this.dataIdNextNumber = 1, this.wasm.tfjs.initWithThreadsCount(WB), Hv = this.wasm.tfjs.getThreadsCount(), this.dataIdMap = new zo(this, pr());\n }\n write(t8, e, o) {\n let n = { id: this.dataIdNextNumber++ };\n return this.move(n, t8, e, o, 1), n;\n }\n numDataIds() {\n return this.dataIdMap.numDataIds();\n }\n async time(t8) {\n let e = y.now();\n return t8(), { kernelMs: y.now() - e };\n }\n move(t8, e, o, n, s) {\n let a = this.dataIdNextNumber++;\n if (n === \"string\") {\n let c = e;\n this.dataIdMap.set(t8, { id: a, stringBytes: c, shape: o, dtype: n, memoryOffset: null, refCount: s });\n return;\n }\n let i = y.sizeFromShape(o), p = i * y.bytesPerElement(n), u = this.wasm._malloc(p) >>> 0;\n this.dataIdMap.set(t8, { id: a, memoryOffset: u, shape: o, dtype: n, refCount: s }), this.wasm.tfjs.registerTensor(a, i, u), e != null && this.wasm.HEAPU8.set(new Uint8Array(e.buffer, e.byteOffset, p), u);\n }\n async read(t8) {\n return this.readSync(t8);\n }\n readSync(t8, e, o) {\n let { memoryOffset: n, dtype: s, shape: a, stringBytes: i } = this.dataIdMap.get(t8);\n if (s === \"string\")\n return (e == null || e === 0) && (o == null || o >= i.length) ? i : i.slice(e, o);\n e = e || 0, o = o || y.sizeFromShape(a);\n let p = y.bytesPerElement(s), u = this.wasm.HEAPU8.slice(n + e * p, n + o * p);\n return qse(u.buffer, s);\n }\n disposeData(t8, e = false) {\n if (this.dataIdMap.has(t8)) {\n let o = this.dataIdMap.get(t8);\n if (o.refCount--, !e && o.refCount > 0)\n return false;\n this.wasm._free(o.memoryOffset), this.wasm.tfjs.disposeData(o.id), this.dataIdMap.delete(t8);\n }\n return true;\n }\n refCount(t8) {\n return this.dataIdMap.has(t8) ? this.dataIdMap.get(t8).refCount : 0;\n }\n incRef(t8) {\n let e = this.dataIdMap.get(t8);\n e != null && e.refCount++;\n }\n floatPrecision() {\n return 32;\n }\n getMemoryOffset(t8) {\n return this.dataIdMap.get(t8).memoryOffset;\n }\n dispose() {\n this.wasm.tfjs.dispose(), \"PThread\" in this.wasm && this.wasm.PThread.terminateAllThreads(), this.wasm = null;\n }\n memory() {\n return { unreliable: false };\n }\n makeOutput(t8, e, o, n) {\n let s;\n if (o == null)\n s = this.write(n != null ? n : null, t8, e);\n else {\n let a = this.dataIdNextNumber++;\n s = { id: a }, this.dataIdMap.set(s, { id: a, memoryOffset: o, shape: t8, dtype: e, refCount: 1 });\n let i = y.sizeFromShape(t8);\n this.wasm.tfjs.registerTensor(a, i, o);\n }\n return { dataId: s, shape: t8, dtype: e };\n }\n typedArrayFromHeap({ shape: t8, dtype: e, dataId: o }) {\n let n = this.wasm.HEAPU8.buffer, { memoryOffset: s } = this.dataIdMap.get(o), a = y.sizeFromShape(t8);\n switch (e) {\n case \"float32\":\n return new Float32Array(n, s, a);\n case \"int32\":\n return new Int32Array(n, s, a);\n case \"bool\":\n return new Uint8Array(n, s, a);\n default:\n throw new Error(`Unknown dtype ${e}`);\n }\n }\n};\nfunction Kse(r) {\n return (t8, e) => (y.fetch(r, { credentials: \"same-origin\" }).then((o) => {\n o.ok || t8.env.a(`failed to load wasm binary file at '${r}'`), o.arrayBuffer().then((n) => {\n WebAssembly.instantiate(n, t8).then((s) => {\n e(s.instance, s.module);\n });\n });\n }), {});\n}\nfunction BB(r, t8, e) {\n if (Gg != null)\n return Gg;\n let o = \"tfjs-backend-wasm.wasm\";\n return r && t8 ? o = \"tfjs-backend-wasm-threaded-simd.wasm\" : r && (o = \"tfjs-backend-wasm-simd.wasm\"), im != null && im[o] != null ? im[o] : e + o;\n}\nasync function VB() {\n let [r, t8] = await Promise.all([A().getAsync(\"WASM_HAS_SIMD_SUPPORT\"), A().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);\n return new Promise((e, o) => {\n let n = {};\n n.locateFile = (i, p) => {\n if (i.endsWith(\".worker.js\")) {\n let u = zB.wasmWorkerContents.replace(/\\n/g, \"\\\\n\"), c = new Blob([u], { type: \"application/javascript\" });\n return URL.createObjectURL(c);\n }\n return i.endsWith(\".wasm\") ? BB(r, t8, am != null ? am : p) : p + i;\n }, jv && (n.instantiateWasm = Kse(BB(r, t8, am != null ? am : \"\")));\n let s = false;\n n.onAbort = () => {\n if (s || um)\n return;\n um = true, o({ message: \"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers\" });\n };\n let a;\n t8 && r && Gg == null ? (n.mainScriptUrlOrBlob = new Blob([\"var WasmBackendModuleThreadedSimd = \" + LB.toString()], { type: \"text/javascript\" }), a = LB(n)) : a = Hse(n), a.then((i) => {\n s = true, um = false;\n let p = null;\n i.tfjs = { init: i.cwrap(\"init\", null, []), initWithThreadsCount: i.cwrap(\"init_with_threads_count\", null, [\"number\"]), getThreadsCount: i.cwrap(\"get_threads_count\", \"number\", []), registerTensor: i.cwrap(\"register_tensor\", null, [\"number\", \"number\", \"number\"]), disposeData: i.cwrap(\"dispose_data\", p, [\"number\"]), dispose: i.cwrap(\"dispose\", p, []) }, e({ wasm: i });\n }).catch(o);\n });\n}\nfunction qse(r, t8) {\n switch (t8) {\n case \"float32\":\n return new Float32Array(r);\n case \"int32\":\n return new Int32Array(r);\n case \"bool\":\n return new Uint8Array(r);\n default:\n throw new Error(`Unknown dtype ${t8}`);\n }\n}\nvar jse = [\"tfjs-backend-wasm.wasm\", \"tfjs-backend-wasm-simd.wasm\", \"tfjs-backend-wasm-threaded-simd.wasm\"];\nvar Gg = null;\nvar am = null;\nvar im = {};\nvar um = false;\nvar jv = false;\nfunction Xse(r, t8 = false) {\n if (Pw(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"), um)\n throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");\n Gg = r, jv = t8;\n}\nfunction Yse(r, t8 = false) {\n if (um)\n throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`\");\n if (typeof r == \"string\")\n am = r;\n else {\n im = r;\n let e = jse.filter((o) => im[o] == null);\n if (e.length > 0)\n throw new Error(`There were no entries found for the following binaries: ${e.join(\",\")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`);\n }\n jv = t8;\n}\nvar WB = -1;\nvar Hv = -1;\nfunction Qse(r) {\n WB = r;\n}\nfunction Zse() {\n if (Hv === -1)\n throw new Error(\"WASM backend not initialized.\");\n return Hv;\n}\nvar Jse = \"4.11.0\";\nvar eae = 2;\nsu(\"wasm\", async () => {\n let { wasm: r } = await VB();\n return new pm(r);\n}, eae);\nvar xo = A();\nxo.registerFlag(\"WEBGPU_DEFERRED_SUBMIT_BATCH_SIZE\", () => 15);\nxo.registerFlag(\"WEBGPU_CPU_FORWARD\", () => true);\nxo.registerFlag(\"WEBGPU_MATMUL_PROGRAM_TYPE\", () => -1);\nxo.registerFlag(\"WEBGPU_USE_NAIVE_CONV2D_TRANSPOSE\", () => true);\nxo.registerFlag(\"WEBGPU_USE_LOW_POWER_GPU\", () => false);\nxo.registerFlag(\"WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD\", () => 1e3);\nxo.registerFlag(\"WEBGPU_USE_PROFILE_TOOL\", () => false);\nxo.registerFlag(\"WEBGPU_IMPORT_EXTERNAL_TEXTURE\", () => true);\nxo.registerFlag(\"WEBGPU_USE_NAIVE_CONV2D_DEBUG\", () => false);\nxo.registerFlag(\"WEBGPU_THRESHOLD_TO_INCREASE_WORKGROUPS_FOR_MATMUL\", () => -1);\nxo.registerFlag(\"WEBGPU_CONV_SEPARATE_IM2COL_SHADER\", () => false);\nxo.registerFlag(\"WEBGPU_PRINT_SHADER\", () => \"\");\nxo.registerFlag(\"WEBGPU_ENGINE_COMPILE_ONLY\", () => false);\nvar Hg = class {\n constructor(t8) {\n t8 && (this.vendor = t8.vendor, this.architecture = t8.architecture, this.intelGPUGeneration = this.getIntelGPUGeneration());\n }\n getIntelGPUGeneration() {\n if (this.isIntel()) {\n if (this.architecture.startsWith(\"gen\"))\n return Number(this.architecture.match(/\\d+/));\n if (this.architecture.startsWith(\"xe\"))\n return 12;\n }\n return 0;\n }\n isIntel() {\n return this.vendor === \"intel\";\n }\n};\nvar Kg = class {\n constructor(t8) {\n this.device = t8, this.numUsedBuffers = 0, this.numFreeBuffers = 0, this.freeBuffers = /* @__PURE__ */ new Map(), this.usedBuffers = /* @__PURE__ */ new Map(), this.numBytesUsed = 0, this.numBytesAllocated = 0;\n }\n acquireBuffer(t8, e, o = false, n = true) {\n let s, a = UB(t8, e);\n return n ? (this.freeBuffers.has(a) || this.freeBuffers.set(a, []), this.freeBuffers.get(a).length > 0 ? (s = this.freeBuffers.get(a).pop(), this.numFreeBuffers--) : (s = this.device.createBuffer({ size: t8, usage: e, mappedAtCreation: o }), this.numBytesAllocated += t8)) : (s = this.device.createBuffer({ size: t8, usage: e, mappedAtCreation: o }), this.numBytesAllocated += t8), this.usedBuffers.has(a) || this.usedBuffers.set(a, []), this.usedBuffers.get(a).push(s), this.numUsedBuffers++, this.numBytesUsed += t8, s;\n }\n releaseBuffer(t8, e = true) {\n if (this.freeBuffers.size === 0)\n return;\n let o = t8.size, n = t8.usage, s = UB(o, n), a = this.usedBuffers.get(s), i = a.indexOf(t8);\n if (i < 0)\n throw new Error(\"Cannot find the buffer in buffer manager\");\n a[i] = a[a.length - 1], a.pop(), this.numUsedBuffers--, this.numBytesUsed -= o, e ? (this.freeBuffers.get(s).push(t8), this.numFreeBuffers++) : (t8.destroy(), this.numBytesAllocated -= o);\n }\n getNumUsedBuffers() {\n return this.numUsedBuffers;\n }\n getNumFreeBuffers() {\n return this.numFreeBuffers;\n }\n dispose() {\n this.freeBuffers.forEach((t8, e) => {\n t8.forEach((o) => {\n o.destroy();\n });\n }), this.usedBuffers.forEach((t8, e) => {\n t8.forEach((o) => {\n o.destroy();\n });\n }), this.freeBuffers = /* @__PURE__ */ new Map(), this.usedBuffers = /* @__PURE__ */ new Map(), this.numUsedBuffers = 0, this.numFreeBuffers = 0, this.numBytesUsed = 0, this.numBytesAllocated = 0;\n }\n};\nfunction UB(r, t8) {\n return `${r}_${t8}`;\n}\nvar qg = class {\n constructor(t8) {\n this.device = t8, this.numUsedTextures = 0, this.numFreeTextures = 0, this.freeTextures = /* @__PURE__ */ new Map(), this.usedTextures = /* @__PURE__ */ new Map(), this.numBytesUsed = 0, this.numBytesAllocated = 0;\n }\n acquireTexture(t8, e, o, n) {\n let s = HB(o), a = t8 * e * s, i = GB(t8, e, o, n);\n if (this.freeTextures.has(i) || this.freeTextures.set(i, []), this.usedTextures.has(i) || this.usedTextures.set(i, []), this.numBytesUsed += a, this.numUsedTextures++, this.freeTextures.get(i).length > 0) {\n this.numFreeTextures--;\n let u = this.freeTextures.get(i).shift();\n return this.usedTextures.get(i).push(u), u;\n }\n this.numBytesAllocated += a;\n let p = this.device.createTexture({ size: [t8, e], format: o, usage: n });\n return this.usedTextures.get(i).push(p), p;\n }\n releaseTexture(t8) {\n if (this.freeTextures.size === 0)\n return;\n let e = t8.width, o = t8.height, n = t8.format, s = t8.usage, a = GB(e, o, n, s);\n this.freeTextures.has(a) || this.freeTextures.set(a, []), this.freeTextures.get(a).push(t8), this.numFreeTextures++, this.numUsedTextures--;\n let i = this.usedTextures.get(a), p = i.indexOf(t8);\n if (p < 0)\n throw new Error(\"Cannot release a texture that was never provided by this texture manager\");\n i.splice(p, 1);\n let u = HB(n), c = e * o * u;\n this.numBytesUsed -= c;\n }\n getNumUsedTextures() {\n return this.numUsedTextures;\n }\n getNumFreeTextures() {\n return this.numFreeTextures;\n }\n dispose() {\n this.freeTextures.forEach((t8, e) => {\n t8.forEach((o) => {\n o.destroy();\n });\n }), this.usedTextures.forEach((t8, e) => {\n t8.forEach((o) => {\n o.destroy();\n });\n }), this.freeTextures = /* @__PURE__ */ new Map(), this.usedTextures = /* @__PURE__ */ new Map(), this.numUsedTextures = 0, this.numFreeTextures = 0, this.numBytesUsed = 0, this.numBytesAllocated = 0;\n }\n};\nfunction GB(r, t8, e, o) {\n return `${r}_${t8}_${e}_${o}`;\n}\nfunction HB(r) {\n if (r === \"rgba8unorm\")\n return 16;\n throw new Error(`${r} is not supported!`);\n}\nfunction KB(r, t8) {\n if (Math.max(...r) > 5)\n throw new Error(\"Cannot symbolically compute strides for rank > 6 tensor.\");\n let e = r.length, o = \"xyzwuv\", n = r.map((a) => `${t8}.${o[a]}`), s = new Array(e - 1);\n s[e - 2] = n[e - 1];\n for (let a = e - 3; a >= 0; --a)\n s[a] = `(${s[a + 1]} * ${n[a + 1]})`;\n return s;\n}\nvar Qr = (r, t8, e) => e === \"int32\" ? `atomicAdd(${r}, bitcast(${t8}));` : `\n {\n var oldValue = 0;\n loop {\n let newValueF32 = bitcast(oldValue) + (${t8});\n let newValue = bitcast(newValueF32);\n let res = atomicCompareExchangeWeak(${r}, oldValue, newValue);\n if res.exchanged {\n break;\n }\n oldValue = res.old_value;\n }\n }`;\nvar Ii;\n(function(r) {\n r[r.FROM_PIXELS = 0] = \"FROM_PIXELS\", r[r.DRAW = 1] = \"DRAW\";\n})(Ii || (Ii = {}));\nvar YB = (r, t8, e, o, n) => {\n let s = { dtype: o.dtype, shape: o.shape }, a = rae(e, s, t8), i = r.createShaderModule({ code: a, label: t8.constructor.name }), p = A().get(\"WEBGPU_PRINT_SHADER\");\n if (p !== \"\") {\n p = p.toLowerCase();\n let u = p.split(\",\");\n (p === \"all\" || u.some((c) => t8.shaderKey.toLowerCase().includes(c))) && (console.group(t8.shaderKey), console.debug(a), console.groupEnd());\n }\n return n ? r.createComputePipelineAsync({ compute: { module: i, entryPoint: \"_start\" }, label: t8.constructor.name, layout: \"auto\" }) : r.createComputePipeline({ compute: { module: i, entryPoint: \"_start\" }, label: t8.constructor.name, layout: \"auto\" });\n};\nvar Ae = (r, t8 = \"f32\") => {\n switch (r) {\n case 1:\n return `${t8}`;\n case 2:\n return `vec2<${t8}>`;\n case 3:\n return `vec3<${t8}>`;\n case 4:\n return `vec4<${t8}>`;\n default:\n throw new Error(`${r}-component ${t8} is not supported.`);\n }\n};\nfunction ht(r) {\n if (r <= 1)\n return \"i32\";\n if (r === 2)\n return \"vec2\";\n if (r === 3)\n return \"vec3\";\n if (r === 4)\n return \"vec4\";\n if (r === 5)\n return \"vec5\";\n if (r === 6)\n return \"vec6\";\n throw Error(`GPU for rank ${r} is not yet supported`);\n}\nfunction Mo(r) {\n if (r === 0)\n return \"x\";\n if (r === 1)\n return \"y\";\n if (r === 2)\n return \"z\";\n if (r === 3)\n return \"w\";\n if (r === 4)\n return \"u\";\n if (r === 5)\n return \"v\";\n throw Error(`Index ${r} is not yet supported`);\n}\nfunction G(...r) {\n let t8;\n switch (r.length) {\n case 0:\n t8 = `\n fn main()\n `;\n break;\n case 1:\n t8 = `\n fn main(${r[0]} : i32)\n `;\n break;\n default:\n throw Error(\"Unreachable\");\n }\n return t8;\n}\nfunction qB(r, t8) {\n let e;\n return e = `\n ${tae(t8)}\n fn _start(@builtin(local_invocation_id) LocalId : vec3,\n @builtin(global_invocation_id) GlobalId : vec3,\n @builtin(local_invocation_index) LocalIndex: u32,\n @builtin(workgroup_id) WorkgroupId : vec3,\n @builtin(num_workgroups) NumWorkgroups : vec3) {\n localId = LocalId;\n localIndex = LocalIndex;\n globalId = GlobalId;\n numWorkgroups = NumWorkgroups;\n workgroupId = WorkgroupId;\n ${r ? \"main(getGlobalIndex());\" : \"main();\"};\n }\n `, e;\n}\nfunction tae(r) {\n return `\n @compute @workgroup_size(${r.workgroupSize[0]}, ${r.workgroupSize[1]}, ${r.workgroupSize[2]})\n`;\n}\nfunction rae(r, t8, e) {\n let o = [], n = e.workgroupSize[0] * e.workgroupSize[1] * e.workgroupSize[2];\n if (e.outputComponent = e.outputComponent ? e.outputComponent : 1, o.push(`\n\n var localId: vec3;\n var localIndex: u32;\n var globalId: vec3;\n var numWorkgroups: vec3;\n var workgroupId: vec3;\n\n // Only used when the y/z dimension of workgroup size is 1.\n fn getGlobalIndex() -> i32 {\n ${ZB(e) ? \" return i32(globalId.x);\" : ` return i32((workgroupId.z * numWorkgroups.x * numWorkgroups.y +\n workgroupId.y * numWorkgroups.x + workgroupId.x) * ${n}u +\n localIndex);\n `}\n }\n `), e.pixelsOpType != null) {\n let f = e.pixelsOpType === Ii.FROM_PIXELS ? `@group(0) @binding(0) var result: array<${Nu(t8.dtype, e.outputComponent)}>;` : `@group(0) @binding(1) var inBuf : array<${Nu(r[0].dtype, e.outputComponent)}>;`, h = t8.shape.length === 3 ? \"vec2\" : \"i32\";\n o.push(`\n struct Uniform {\n outShapeStrides : ${h},\n size : i32,\n numChannels : i32,\n alpha : f32,\n };\n\n ${f}\n @group(0) @binding(2) var uniforms: Uniform;\n `);\n let g = XB(e);\n return [jB, o.join(`\n`), cm(t8.shape), e.getUserCode(), qB(g, e)].join(`\n`);\n }\n let s, a, i = \"struct Uniforms { NAN : f32, INFINITY : f32, \";\n e.variableNames.forEach((f, h) => {\n let g = ht(r[h].shape.length);\n i += `${f.charAt(0).toLowerCase() + f.slice(1)}Shape : ${g}, `, s = r[h].shape.length - 1, a = ht(s), i += `${f.charAt(0).toLowerCase() + f.slice(1)}ShapeStrides: ${a}, `;\n });\n let p = ht(t8.shape.length);\n i += `outShape : ${p}, `, s = t8.shape.length - 1, a = ht(s), i += `\n outShapeStrides: ${a}, `, e.size && (i += \"size : i32, \"), e.uniforms && (i += e.uniforms), i += \"};\", i = cae(i), o.push(i), e.atomic ? o.push(`\n @group(0) @binding(0) var result: array>;\n `) : o.push(`\n @group(0) @binding(0) var result: array<${Nu(t8.dtype, e.outputComponent)}>;\n `), e.variableNames.forEach((f, h) => {\n o.push(`\n @group(0) @binding(${1 + h}) var ${f}: array<${e.variableComponents ? Nu(r[h].dtype, e.variableComponents[h]) : Nu(r[h].dtype, e.outputComponent)}>;\n `);\n }), i !== \"\" && o.push(`\n @group(0) @binding(${1 + e.variableNames.length}) var uniforms: Uniforms;\n `);\n let u = iae(t8.shape, e.dispatchLayout), c = [jB, o.join(`\n`) + oae, cm(t8.shape), u, uae(t8.shape.length)];\n e.atomic || c.push(pae(t8.shape, t8.dtype, e.outputComponent)), e.variableNames.forEach((f, h) => {\n c.push(`${cm(r[h].shape, f)}`);\n });\n let l = r.map((f, h) => aae(f, t8.shape, e.variableComponents ? e.variableComponents[h] : e.outputComponent, e.dispatchLayout.x.length === t8.shape.length)).join(`\n`);\n c.push(l), c.push(e.getUserCode());\n let m = XB(e);\n return c.push(qB(m, e)), c.join(`\n`);\n}\nfunction QB(r, t8, e) {\n let o = r.shaderKey;\n if (r.pixelsOpType != null)\n return o;\n let n = [], s = [];\n t8.forEach((c) => {\n n.push(c.shape), s.push(c.dtype);\n }), n.push(e.shape), s.push(e.dtype);\n let a = t8.map((c) => w.getBroadcastDims(c.shape, e.shape)), i = t8.map((c) => y.arraysEqual(c.shape, e.shape)).join(\"_\"), p = a.map((c) => c.join(\"_\")).join(\";\"), u = ZB(r) ? \"flatDispatch\" : \"\";\n return o += \"_\" + (r.workgroupSize ? r.workgroupSize.join(\",\") : \"\") + n.map((c) => c.length).join(\",\") + s.join(\",\") + r.variableNames.join(\",\") + p + i + u, o;\n}\nvar jB = `\n struct vec5 {x: i32, y: i32, z: i32, w: i32, u: i32};\n struct vec6 {x: i32, y: i32, z: i32, w: i32, u: i32, v: i32};\n\n // Checks whether coordinates lie within the bounds of the shape.\n fn coordsInBounds2D(coord : vec2, shape : vec2) -> bool {\n return all(coord >= vec2(0)) && all(coord < shape);\n }\n fn coordsInBounds3D(coord : vec3, shape : vec3) -> bool {\n return all(coord >= vec3(0)) && all(coord < shape);\n }\n fn coordsInBounds4D(coord : vec4, shape : vec4) -> bool {\n return all(coord >= vec4(0)) && all(coord < shape);\n }\n\n fn getIndexFromCoords1D(coord : i32, shape : i32) -> i32 {\n return coord;\n }\n fn getIndexFromCoords2D(coords : vec2, shape : vec2) -> i32 {\n return dot(coords, vec2(shape.y, 1));\n }\n fn getIndexFromCoords3D(coords : vec3, shape : vec3) -> i32 {\n return dot(coords, vec3(shape.y * shape.z, shape.z, 1));\n }\n fn getIndexFromCoords4D(coords : vec4, shape : vec4) -> i32 {\n return dot(coords, vec4(\n shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1));\n }\n fn getIndexFromCoords5D(coords : vec5, shape : vec5) -> i32 {\n let shapeStrides: vec5 = vec5(shape.y * shape.z * shape.w * shape.u, shape.z * shape.w * shape.u, shape.w * shape.u, shape.u, 1);\n return coords.x*shapeStrides.x + coords.y*shapeStrides.y + coords.z*shapeStrides.z + coords.w*shapeStrides.w + coords.u*shapeStrides.u;\n }\n fn getIndexFromCoords6D(coords : vec6, shape : vec6) -> i32 {\n let shapeStrides: vec6 = vec6(shape.y * shape.z * shape.w * shape.u * shape.v, shape.z * shape.w * shape.u * shape.v, shape.w * shape.u * shape.v, shape.u * shape.v, shape.v, 1);\n return coords.x*shapeStrides.x + coords.y*shapeStrides.y + coords.z*shapeStrides.z + coords.w*shapeStrides.w + coords.u*shapeStrides.u + coords.v*shapeStrides.v;\n }\n\n // NaN defination in IEEE 754-1985 is :\n // - sign = either 0 or 1.\n // - biased exponent = all 1 bits.\n // - fraction = anything except all 0 bits (since all 0 bits represents infinity).\n // https://en.wikipedia.org/wiki/IEEE_754-1985#Representation_of_non-numbers\n fn isnan(val: f32) -> bool {\n let floatToUint: u32 = bitcast(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n fn isnanVec4(val : vec4) -> vec4 {\n let floatToUint: vec4 = bitcast>(val);\n return (floatToUint & vec4(0x7fffffffu)) > vec4(0x7f800000u);\n }\n`;\nvar oae = `\n fn isinf(val: f32) -> bool {\n return abs(val) == uniforms.INFINITY;\n }\n`;\nfunction cm(r, t8 = \"\") {\n let e = r.length, o = t8 !== \"\" ? `get${t8.charAt(0).toUpperCase() + t8.slice(1)}CoordsFromIndex` : \"getCoordsFromIndex\", n = t8 !== \"\" ? `${t8.charAt(0).toLowerCase() + t8.slice(1)}ShapeStrides` : \"outShapeStrides\";\n if (e <= 1)\n return `fn ${o}(index : i32) -> i32 { return index; }`;\n let s = y.computeStrides(r), a = ht(e), i = [];\n for (let u = 0; u < e; u++)\n i.push(`d${u}`);\n if (s.length === 1)\n return ` fn ${o}(index : i32) -> vec2 {\n let d0 = index / uniforms.${n}; let d1 = index - d0 * uniforms.${n};\n return vec2(d0, d1);\n }`;\n let p;\n return p = \"var index2 = index;\" + s.map((u, c) => {\n let l = `let ${i[c]} = index2 / uniforms.${n}.${Mo(c)}`, m = c === s.length - 1 ? `let ${i[c + 1]} = index2 - ${i[c]} * uniforms.${n}.${Mo(c)}` : `index2 = index2 - ${i[c]} * uniforms.${n}.${Mo(c)}`;\n return `${l}; ${m};`;\n }).join(\"\"), `\n fn ${o}(index : i32) -> ${a} {\n ${p}\n return ${a}(${i.join(\",\")});\n }\n `;\n}\nfunction nae(r, t8) {\n let e = r.name, o = r.shape.length, n = ht(o), s = \"get\" + e.charAt(0).toUpperCase() + e.slice(1), a = [\"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\"].slice(0, o), i = a.map((c) => `${c} : i32`).join(\", \");\n if (o < 1)\n return `\n fn ${s}() -> ${Ae(t8)} {\n return ${Ae(t8)}(${e}[0]);\n }\n `;\n let p = `uniforms.${e.charAt(0).toLowerCase() + e.slice(1)}Shape`, u = `${o}D`;\n return o === 0 && (u = \"1D\"), `\n fn ${s}(${i}) -> ${Ae(t8)} {\n return ${Ae(t8)}(${e}[getIndexFromCoords${u}(${n}(${a.join(\",\")}),\n ${p})${t8 === 1 ? \"\" : ` / ${t8}`}]);\n }\n `;\n}\nfunction sae(r, t8, e, o) {\n let n = r.name, s = n.charAt(0).toUpperCase() + n.slice(1), a = \"get\" + s + \"ByOutput\", i = r.shape.length, p = t8.length, u = ht(p);\n if (y.arraysEqual(r.shape, t8) && o)\n return `\n fn ${a}Index(globalIndex : i32) -> ${Ae(e)} {\n return ${Ae(e)}(${n}[globalIndex]);\n }\n\n fn ${a}Coords(coords : ${u}) -> ${Ae(e)} {\n return ${Ae(e)}(${n}[${p > 1 ? \"getOutputIndexFromCoords(coords)\" : \"coords\"}${e === 1 ? \"\" : ` / ${e}`}]);\n }\n `;\n let c = w.getBroadcastDims(r.shape, t8), l = p - i, m = \"\";\n if (i === 0)\n return `\n fn ${a}Index(globalIndex : i32) -> ${Ae(e)}{\n return get${s}();\n }\n\n fn ${a}Coords(coords : ${u}) -> ${Ae(e)}{\n return get${s}();\n }\n `;\n p < 2 && c.length >= 1 ? m = \"coords = 0;\" : m = c.map((g) => `coords.${Mo(g + l)} = 0;`).join(`\n`);\n let d = \"\";\n if (p < 2 && i > 0)\n d = \"coords\";\n else if (p > 1) {\n let g = ht(i), x = r.shape.map((b, C) => `coords.${Mo(C + l)}`).join(\", \");\n d = `${g}(${x})`;\n } else\n d = \"coords\";\n let f = `uniforms.${n.charAt(0).toLowerCase() + n.slice(1)}Shape`, h = `${i}D`;\n return `\n fn ${a}Index(globalIndex : i32) -> ${Ae(e)} {\n var coords = getCoordsFromIndex(globalIndex);\n ${m}\n return ${Ae(e)}(${n}[getIndexFromCoords${h}(${d}, ${f})${e === 1 ? \"\" : ` / ${e}`}]);\n }\n\n fn ${a}Coords(coordsIn : ${u}) -> ${Ae(e)} {\n var coords = coordsIn;\n ${m}\n return ${Ae(e)}(${n}[getIndexFromCoords${h}(${d}, ${f})${e === 1 ? \"\" : ` / ${e}`}]);\n }\n`;\n}\nfunction aae(r, t8, e, o) {\n let n = nae(r, e);\n return r.shape.length <= t8.length && (n += sae(r, t8, e, o)), n;\n}\nfunction iae(r, t8) {\n let { x: e, y: o = [], z: n = [] } = t8, s = r.length, a = e.length + o.length + n.length;\n if (a !== s)\n return \"\";\n if (e.length === s)\n return `fn getOutputCoords() -> ${ht(s)}{\n let globalIndex = getGlobalIndex();\n return getCoordsFromIndex(globalIndex);\n }\n `;\n let i = \"\", p = [e, o, n];\n for (let m = 0; m < p.length; m++) {\n let d = p[m];\n if (d.length !== 0)\n if (d.length === 1)\n i += `let d${d[0]} = i32(globalId[${m}]);`;\n else {\n let f = KB(d, \"uniforms.outShape\");\n i += `var index${m} = i32(globalId[${m}]);`;\n for (let h = 0; h < f.length; h++)\n i += `let d${d[h]} = index${m} / ${f[h]};`, h === f.length - 1 ? i += `let d${d[h + 1]} = index${m} - d${d[h]} * ${f[h]};` : i += `index${m} = index${m} - d${d[h]} * ${f[h]};`;\n }\n }\n let u = [];\n for (let m = 0; m < a; m++)\n u.push(`d${m}`);\n let c = ht(a), l = `fn getOutputCoords() -> ${c} {\n ${i}\n`;\n return u.length === 0 ? l += `return ${c}(0); }` : l += `return ${c}(${u.join(\",\")}); }`, l;\n}\nfunction uae(r) {\n let t8 = \"\";\n switch (r) {\n case 0:\n case 1:\n t8 += `\n fn getOutputIndexFromCoords(coords : i32) -> i32 {\n return coords;\n }\n `;\n break;\n case 2:\n t8 += `\n fn getOutputIndexFromCoords(coords : vec2) -> i32 {\n return dot(coords, vec2(uniforms.outShapeStrides, 1));\n }\n `;\n break;\n case 3:\n t8 += `\n fn getOutputIndexFromCoords(coords : vec3) -> i32 {\n return dot(coords, vec3(uniforms.outShapeStrides.x, uniforms.outShapeStrides.y, 1));\n }\n `;\n break;\n case 4:\n t8 += `\n fn getOutputIndexFromCoords(coords : vec4) -> i32 {\n return dot(coords, vec4(\n uniforms.outShapeStrides.x, uniforms.outShapeStrides.y, uniforms.outShapeStrides.z, 1));\n }\n `;\n break;\n case 5:\n t8 += `\n fn getOutputIndexFromCoords(coords : vec5) -> i32 {\n return coords.x * uniforms.outShapeStrides.x +\n coords.y * uniforms.outShapeStrides.y +\n coords.z * uniforms.outShapeStrides.z +\n coords.w * uniforms.outShapeStrides.w +\n coords.u;\n }\n `;\n break;\n case 6:\n t8 += `\n fn getOutputIndexFromCoords(coords : vec6) -> i32 {\n return coords.x * uniforms.outShapeStrides.x +\n coords.y * uniforms.outShapeStrides.y +\n coords.z * uniforms.outShapeStrides.z +\n coords.w * uniforms.outShapeStrides.w +\n coords.u * uniforms.outShapeStrides.u +\n coords.v;\n }\n `;\n break;\n default:\n y.assert(false, () => `Unsupported ${r}D shape`);\n break;\n }\n return t8;\n}\nfunction ZB(r) {\n return r.dispatch[1] === 1 && r.dispatch[2] === 1;\n}\nfunction Nu(r, t8 = 1) {\n if (r === \"float32\")\n return Ae(t8, \"f32\");\n if (r === \"int32\" || r === \"bool\")\n return Ae(t8, \"i32\");\n throw new Error(`type ${r} is not supported.`);\n}\nfunction pae(r, t8, e) {\n let o = r.length, n = Nu(t8, e), s = `fn setOutputAtIndex(flatIndex : i32, value : ${Ae(e)}) {\n result[flatIndex] = ${n}(value);\n }\n\n fn setOutputAtIndexI32(flatIndex : i32, value : ${Ae(e, \"i32\")}) {\n result[flatIndex] = ${n}(value);\n }\n `;\n if (o >= 2) {\n let a = [\"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\"].slice(0, o), i = ht(o);\n s += `\n fn setOutputAtCoords(${a.map((p) => `${p} : i32`).join(\", \")}, value : ${Ae(e)}) {\n let flatIndex = getOutputIndexFromCoords(${i}(${a.join(\", \")}));\n setOutputAtIndex(flatIndex${e === 1 ? \"\" : ` / ${e}`}, value);\n }\n fn setOutputAtCoordsI32(${a.map((p) => `${p} : i32`).join(\", \")}, value : ${Ae(e, \"i32\")}) {\n let flatIndex = getOutputIndexFromCoords(${i}(${a.join(\", \")}));\n setOutputAtIndexI32(flatIndex${e === 1 ? \"\" : ` / ${e}`}, value);\n }\n `;\n }\n return s;\n}\nfunction cae(r) {\n let t8 = /(\\w+)\\s*:\\s*vec(5|6)/g;\n r = r.replace(t8, (o) => \"@align(16) \" + o);\n let e = /vec(5|6)\\s*,\\s*(\\w+)/g;\n return r = r.replace(e, (o, n, s) => `vec${n}, @align(16) ${s}`), r;\n}\nfunction XB(r) {\n return !(r.dispatchLayout.hasOwnProperty(\"y\") && r.dispatchLayout.y.length !== 0 || r.dispatchLayout.hasOwnProperty(\"z\") && r.dispatchLayout.z.length !== 0);\n}\nvar Yv = {};\nqe(Yv, { GPUBytesPerElement: () => jg, MatMulProgramType: () => Lo, assertNotComplex: () => fm, computeDispatch: () => H, computeWorkPerThreadForConv2d: () => mm, computeWorkgroupInfoForMatMul: () => Xv, computeWorkgroupSizeForConv2d: () => lm, flatDispatchLayout: () => X, isWebGPUSupported: () => dm, tilesFitEvenlyIntoShape: () => mae });\nvar Ap = (r) => {\n let t8 = 1;\n for (let e = 0; e < r.length; e++)\n t8 *= r[e];\n return t8;\n};\nfunction mae(r, t8) {\n if (r.length !== t8.length)\n throw new Error(`Cannot compute whether rank ${r.length} tiles fit evenly into rank ${t8.length} shape - ranks must match.`);\n return t8.every((e, o) => e % r[o] === 0);\n}\nfunction H(r, t8, e = [1, 1, 1], o = [1, 1, 1]) {\n let [n, s, a] = [Math.ceil(Ap(r.x.map((i) => t8[i])) / (e[0] * o[0])), r.y ? Math.ceil(Ap(r.y.map((i) => t8[i])) / (e[1] * o[1])) : 1, r.z ? Math.ceil(Ap(r.z.map((i) => t8[i])) / (e[2] * o[2])) : 1];\n return [n, s, a];\n}\nfunction Xv(r, t8, e, o = false) {\n let n = [8, 8, 1], s = [4, 4, 1];\n return o || (r <= 8 && (s[1] = 1), t8 <= 16 && e <= 16 && (n[0] = 4)), { workgroupSize: n, elementsPerThread: s };\n}\nfunction lm(r, t8, e = false) {\n if (e)\n return [8, 8, 1];\n let o = Ap(r.x.map((s) => t8[s])), n = Ap(r.y.map((s) => t8[s]));\n return o <= 4 ? [4, 16, 1] : n <= 4 ? [16, 4, 1] : [16, 16, 1];\n}\nfunction mm(r, t8, e = false) {\n if (e)\n return [4, 4, 1];\n let o = Ap(r.x.map((s) => t8[s])), n = Ap(r.y.map((s) => t8[s]));\n return o <= 4 ? [1, 2, 1] : n <= 4 ? [2, 1, 1] : [2, 2, 1];\n}\nfunction X(r) {\n return { x: r.map((t8, e) => e) };\n}\nfunction jg(r) {\n if (r === \"float32\" || r === \"int32\" || r === \"bool\" || r === \"string\")\n return 4;\n if (r === \"complex64\")\n return 8;\n throw new Error(`Unknown dtype ${r}`);\n}\nfunction dm() {\n return (typeof window != \"undefined\" || typeof WorkerGlobalScope != \"undefined\") && !!navigator.gpu;\n}\nfunction fm(r, t8) {\n Array.isArray(r) || (r = [r]), r.forEach((e) => {\n e != null && y.assert(e.dtype !== \"complex64\", () => `${t8} does not support complex64 tensors in the WebGPU backend.`);\n });\n}\nvar Lo;\n(function(r) {\n r[r.MatMulReduceProgram = 0] = \"MatMulReduceProgram\", r[r.MatMulSplitKProgram = 1] = \"MatMulSplitKProgram\", r[r.MatMulSmallOutputSizeProgram = 2] = \"MatMulSmallOutputSizeProgram\", r[r.MatMulPackedProgram = 3] = \"MatMulPackedProgram\", r[r.MatMulMax = 4] = \"MatMulMax\";\n})(Lo || (Lo = {}));\nvar dae = A().getNumber(\"WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD\");\nvar fae = (r, t8) => {\n let e = r.limits.maxComputeWorkgroupsPerDimension, o = t8.dispatchLayout, n = t8.dispatch;\n if (n.every((a) => a <= e))\n return n;\n y.assert(n[0] > e && o.y === void 0 && o.z === void 0, () => \"Dispatch size exceeds WebGPU limits in Y or Z dimension.\");\n let s = Math.ceil(Math.sqrt(n[0]));\n return s > e ? (s = Math.ceil(Math.cbrt(n[0])), y.assert(s <= e, () => \"Total dispatch size exceeds WebGPU maximum.\"), [s, s, s]) : [s, s, 1];\n};\nvar Tu = class extends ao {\n nextDataId() {\n return Tu.nextDataId++;\n }\n constructor(t8, e) {\n if (super(), this.commandQueueOwnedIds = /* @__PURE__ */ new WeakSet(), this.dispatchCountInPass = 0, this.disposed = false, this.downloadWaitMs = 0, this.tensorDataPendingDisposal = [], this.queryResolveBuffer = null, this.querySet = null, this.querySetCount = 2, this.stagingPendingDisposal = [], this.uniformPendingDisposal = [], this.uploadWaitMs = 0, this.hasReadSyncWarned = false, this.hasTimestampQueryWarned = false, !dm())\n throw new Error(\"WebGPU is not supported on this device\");\n this.pipelineCache = {}, this.device = t8, this.queue = t8.queue, this.commandEncoder = null, this.computePassEncoder = null, this.adapterInfo = new Hg(e), this.supportTimestampQuery = this.device.features.has(\"timestamp-query\"), this.thresholdToIncreaseWorkgroups = this.adapterInfo.intelGPUGeneration >= 12 ? 16 : 8, this.bufferManager = new Kg(this.device), this.textureManager = new qg(this.device), this.tensorMap = new zo(this, pr()), A().getBool(\"WEBGPU_USE_PROFILE_TOOL\") && (this.dummyCanvas = document.createElement(\"canvas\"), this.dummyCanvas.width = 1, this.dummyCanvas.height = 1, this.dummyContext = this.dummyCanvas.getContext(\"webgpu\"), this.dummyContext.configure({ device: t8, format: \"bgra8unorm\" }), document.body.appendChild(this.dummyCanvas));\n }\n floatPrecision() {\n return 32;\n }\n disposeData(t8, e = false) {\n if (!this.tensorMap.has(t8))\n return true;\n let o = this.tensorMap.get(t8);\n return e ? o.refCount = 0 : o.refCount--, o.refCount > 0 ? false : (o.complexTensorInfos != null && (this.disposeData(o.complexTensorInfos.real.dataId), this.disposeData(o.complexTensorInfos.imag.dataId)), this.commandQueueOwnedIds.has(t8) ? (this.tensorDataPendingDisposal.push(t8), true) : (this.releaseResource(t8), this.tensorMap.delete(t8), true));\n }\n memory() {\n return { numBytesInGPU: this.bufferManager.numBytesUsed, numBytesAllocatedInGPU: this.bufferManager.numBytesAllocated, unreliable: false };\n }\n releaseResource(t8) {\n let e = this.tensorMap.get(t8);\n if (!(!e || !e.resource)) {\n if (e.external) {\n e.resource = null;\n return;\n }\n e.resource instanceof GPUBuffer ? this.bufferManager.releaseBuffer(e.resource) : e.resource instanceof GPUTexture && this.textureManager.releaseTexture(e.resource), e.resource = null;\n }\n }\n refCount(t8) {\n return this.tensorMap.has(t8) ? this.tensorMap.get(t8).refCount : 0;\n }\n incRef(t8) {\n let e = this.tensorMap.get(t8);\n e.refCount++;\n }\n decRef(t8) {\n if (this.tensorMap.has(t8)) {\n let e = this.tensorMap.get(t8);\n e.refCount--;\n }\n }\n write(t8, e, o) {\n if (o === \"complex64\" && t8 != null)\n throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");\n let n = { id: this.nextDataId() };\n return this.tensorMap.set(n, { dtype: o, shape: e, values: t8, refCount: 1 }), n;\n }\n move(t8, e, o, n, s) {\n if (n === \"complex64\")\n throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");\n this.tensorMap.set(t8, { dtype: n, shape: o, values: e, refCount: s });\n }\n submitQueue() {\n this.queue.submit([this.commandEncoder.finish()]), this.commandEncoder = null, this.dispatchCountInPass = 0, this.commandQueueOwnedIds = /* @__PURE__ */ new WeakSet(), this.tensorDataPendingDisposal.forEach((t8) => {\n this.releaseResource(t8), this.tensorMap.delete(t8);\n }), this.uniformPendingDisposal.forEach((t8) => this.bufferManager.releaseBuffer(t8)), this.stagingPendingDisposal.forEach((t8) => this.bufferManager.releaseBuffer(t8, false)), this.tensorDataPendingDisposal = [], this.uniformPendingDisposal = [], this.stagingPendingDisposal = [];\n }\n ensureCommandEncoderReady() {\n this.commandEncoder || (this.commandEncoder = this.device.createCommandEncoder());\n }\n endComputePassEncoder() {\n this.computePassEncoder && (this.computePassEncoder.end(), this.computePassEncoder = null);\n }\n async checkCompileCompletionAsync() {\n let t8;\n try {\n t8 = await Promise.all(Object.values(this.pipelineCache));\n } catch (e) {\n throw new Error(e.message);\n }\n Object.keys(this.pipelineCache).map((e, o) => {\n this.pipelineCache[e] = t8[o];\n });\n }\n async getBufferData(t8) {\n if (A().getBool(\"WEBGPU_ENGINE_COMPILE_ONLY\"))\n return console.warn(\"The data may be invalid since WEBGPU_ENGINE_COMPILE_ONLY is true, this can only be called when WEBGPU_ENGINE_COMPILE_ONLY is false\"), null;\n let e = t8.size, o = this.bufferManager.acquireBuffer(e, GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ);\n this.ensureCommandEncoderReady(), this.endComputePassEncoder(), this.commandEncoder.copyBufferToBuffer(t8, 0, o, 0, e), this.submitQueue(), await o.mapAsync(GPUMapMode.READ);\n let n = o.getMappedRange().slice(0);\n return o.unmap(), o != null && this.bufferManager.releaseBuffer(o), A().getBool(\"WEBGPU_USE_PROFILE_TOOL\") && (y.assert(this.dummyContext !== void 0, () => \"Fail to get context for profiling tool\"), this.dummyContext.getCurrentTexture()), n;\n }\n convertAndCacheOnCPU(t8, e) {\n let o = this.tensorMap.get(t8);\n return o.values = e, o.values;\n }\n readSync(t8) {\n let e = this.tensorMap.get(t8), { values: o, complexTensorInfos: n } = e;\n if (o != null || e.dtype === \"string\")\n return o;\n if (e.dtype === \"complex64\") {\n let h = this.readSync(n.real.dataId), g = this.readSync(n.imag.dataId), x = y.convertBackendValuesAndArrayBuffer(w.mergeRealAndImagArrays(h, g).buffer, \"float32\");\n return this.convertAndCacheOnCPU(t8, x), x;\n }\n this.hasReadSyncWarned || (this.hasReadSyncWarned = true, console.warn(\"The performance of synchronously reading data from GPU to CPU is poor on the webgpu backend, please use asynchronous APIs instead.\"));\n let s = [\"opaque\", \"premultiplied\"], a = e.resource, i = a.size;\n y.assert(i % 4 === 0, () => \"Because there is 4 bytes for one pixel, buffer size must be multiple of 4.\");\n let p = i / 4, u = new ArrayBuffer(i), c = 256, l = 256, m = s.map((h) => new OffscreenCanvas(c, l)), d = new OffscreenCanvas(c, l);\n this.endComputePassEncoder(), m.map((h, g) => {\n let x = h.getContext(\"webgpu\");\n return x.configure({ device: this.device, format: \"bgra8unorm\", usage: GPUTextureUsage.COPY_DST, alphaMode: s[g] }), x.getCurrentTexture();\n }).map((h, g) => {\n let x = c * 4, b = (R, D, P) => {\n this.ensureCommandEncoderReady(), this.commandEncoder.copyBufferToTexture({ buffer: a, bytesPerRow: x, offset: P }, { texture: h }, { width: R, height: D }), this.submitQueue();\n let O = d.getContext(\"2d\", { willReadFrequently: true });\n O.clearRect(0, 0, R, D), O.drawImage(m[g], 0, 0);\n let M = O.getImageData(0, 0, R, D).data, L = s[g], B = new Uint8ClampedArray(u, P, R * D * 4);\n for (let z = 0; z < B.length; z += 4)\n if (L === \"premultiplied\")\n B[z + 3] = M[z + 3];\n else {\n let U = M[z];\n B[z] = M[z + 2], B[z + 1] = M[z + 1], B[z + 2] = U;\n }\n }, C = Math.floor(p / (c * l)), S = c, k = l, _ = 0;\n for (let R = 0; R < C; R++)\n b(S, k, _), _ += c * l * 4;\n let E = p % (c * l);\n k = Math.floor(E / c), k > 0 && (b(S, k, _), _ += k * (c * 4)), S = E % c, S > 0 && b(S, 1, _);\n });\n let f = y.convertBackendValuesAndArrayBuffer(u, e.dtype);\n return this.convertAndCacheOnCPU(t8, f), f;\n }\n async read(t8) {\n if (!this.tensorMap.has(t8))\n throw new Error(`Tensor ${t8} was not registered!`);\n let e = this.tensorMap.get(t8), { values: o } = e;\n if (o != null)\n return o;\n let n;\n if (e.dtype === \"complex64\") {\n let s = await Promise.all([this.read(e.complexTensorInfos.real.dataId), this.read(e.complexTensorInfos.imag.dataId)]), a = s[0], i = s[1];\n n = w.mergeRealAndImagArrays(a, i);\n } else {\n let s = await this.getBufferData(e.resource);\n n = y.convertBackendValuesAndArrayBuffer(s, e.dtype);\n }\n return this.convertAndCacheOnCPU(t8, n), n;\n }\n copyBuffer(t8) {\n let e = t8.size, o = t8.usage, n = this.bufferManager.acquireBuffer(e, o);\n return this.ensureCommandEncoderReady(), this.endComputePassEncoder(), this.commandEncoder.copyBufferToBuffer(t8, 0, n, 0, e), this.submitQueue(), n;\n }\n createTensorFromGPUData(t8, e, o) {\n let n = t8.buffer;\n if (o === \"complex64\")\n throw new Error(\"Cannot write to a complex64 dtype. \");\n let s = { id: this.nextDataId() };\n this.tensorMap.set(s, { dtype: o, shape: e, values: null, refCount: 1, external: t8.zeroCopy });\n let a = this.tensorMap.get(s), i = jg(a.dtype) * y.sizeFromShape(a.shape);\n if (t8.buffer.size < i)\n throw new Error(`GPUBuffer size(${t8.buffer.size}) is smaller than tensor size(${i})!`);\n if ((t8.buffer.usage & (GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC)) !== (GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC))\n throw new Error(\"GPUBuffer.usage should include GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC!\");\n return t8.zeroCopy !== true && (n = this.copyBuffer(n)), a.resource = n, pr().makeTensorFromDataId(s, e, o, this);\n }\n readToGPU(t8) {\n let e = this.tensorMap.get(t8), { values: o, dtype: n, shape: s, resource: a } = e;\n if (n === \"complex64\")\n throw new Error(\"Does not support reading buffer for complex64 dtype.\");\n if (a == null)\n throw o != null ? new Error(\"Data is not on GPU but on CPU.\") : new Error(\"There is no data on GPU or CPU.\");\n let i = a, p = i.size, u = i.usage, c = this.bufferManager.acquireBuffer(p, u);\n this.ensureCommandEncoderReady(), this.endComputePassEncoder(), this.commandEncoder.copyBufferToBuffer(a, 0, c, 0, p), this.submitQueue();\n let l = this.makeTensorInfo(s, n), m = pr().makeTensorFromTensorInfo(l), d = this.tensorMap.get(l.dataId);\n return d.resource = c, { tensorRef: m, buffer: c };\n }\n bufferSync(t8) {\n let e = this.readSync(t8.dataId);\n if (t8.dtype === \"string\")\n try {\n let o = e.map((n) => y.decodeString(n));\n return me(t8.shape, t8.dtype, o);\n } catch (o) {\n throw new Error(\"Failed to decode encoded string bytes into utf-8\");\n }\n return me(t8.shape, t8.dtype, e);\n }\n async time(t8) {\n !this.supportTimestampQuery && !this.hasTimestampQueryWarned && (console.warn(\"This device doesn't support timestamp-query extension. Start Chrome browser with flag --disable-dawn-features=disallow_unsafe_apis to try it again. Otherwise, zero will be shown for the kernel time when profiling mode is enabled.\"), this.hasTimestampQueryWarned = true);\n let e = this.activeTimers, o = [], n = false;\n this.programTimersStack == null ? (this.programTimersStack = o, n = true) : this.activeTimers.push(o), this.activeTimers = o, t8();\n let s = y.flatten(this.activeTimers.map((u) => u.query)).filter((u) => u != null), a = y.flatten(this.activeTimers.map((u) => u.name)).filter((u) => u != null);\n this.activeTimers = e, n && (this.programTimersStack = null);\n let i = { uploadWaitMs: this.uploadWaitMs, downloadWaitMs: this.downloadWaitMs, kernelMs: null, wallMs: null }, p = await Promise.all(s);\n return i.kernelMs = y.sum(p), i.getExtraProfileInfo = () => p.map((u, c) => ({ name: a[c], ms: u })).map((u) => `${u.name}: ${u.ms}`).join(\", \"), this.uploadWaitMs = 0, this.downloadWaitMs = 0, i;\n }\n makeTensorInfo(t8, e, o) {\n return e === \"string\" && o != null && o.length > 0 && y.isString(o[0]) && (o = o.map((s) => y.encodeString(s))), { dataId: this.write(o, t8, e), shape: t8, dtype: e };\n }\n tensorToBinding(t8) {\n if (!t8)\n return null;\n let o = this.tensorMap.get(t8.dataId).resource;\n return o instanceof GPUBuffer ? { buffer: o } : o instanceof GPUTexture ? o.createView() : o;\n }\n uploadToGPU(t8) {\n let e = this.tensorMap.get(t8);\n if (e.resource != null)\n return;\n let o = jg(e.dtype) * y.sizeFromShape(e.shape), n, s = GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST;\n if (e.values) {\n if (n = this.bufferManager.acquireBuffer(o, s, true), n.mapState === \"unmapped\") {\n let a = this.bufferManager.acquireBuffer(o, GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC, true, false), i = a.getMappedRange();\n e.dtype === \"int32\" || e.dtype === \"bool\" ? new Int32Array(i).set(e.values) : new Float32Array(i).set(e.values), a.unmap(), this.ensureCommandEncoderReady(), this.endComputePassEncoder(), this.commandEncoder.copyBufferToBuffer(a, 0, n, 0, o), this.stagingPendingDisposal.push(a);\n } else {\n let a = n.getMappedRange();\n e.dtype === \"int32\" || e.dtype === \"bool\" ? new Int32Array(a).set(e.values) : new Float32Array(a).set(e.values), n.unmap();\n }\n e.values = null;\n } else\n n = this.bufferManager.acquireBuffer(o, s);\n e.resource = n;\n }\n makeUniforms(t8) {\n let e = 0, o = 0, n = [], s = 1;\n t8.forEach((p) => {\n p.data.length === 0 && (p.data = [1]);\n let u;\n switch (p.data.length) {\n case 1:\n u = 4;\n break;\n case 2:\n u = 8;\n break;\n case 3:\n u = 16;\n break;\n case 4:\n u = 16;\n break;\n case 5:\n u = 16;\n break;\n case 6:\n u = 16;\n break;\n default:\n y.assert(false, () => `Unsupported ${p.data.length}D shape`);\n }\n (o === 5 || o === 6) && (u = 16), u > s && (s = u), e = Math.ceil(e / u) * u, o = p.data.length, n.push(e), e += p.data.length * 4;\n }), e = Math.ceil(e / s) * s;\n let a = new ArrayBuffer(e);\n t8.forEach((p, u) => {\n let c = n[u];\n p.type === \"int32\" ? new Int32Array(a, c, p.data.length).set(p.data) : p.type === \"uint32\" ? new Uint32Array(a, c, p.data.length).set(p.data) : new Float32Array(a, c, p.data.length).set(p.data);\n });\n let i = this.bufferManager.acquireBuffer(e, GPUBufferUsage.COPY_DST | GPUBufferUsage.UNIFORM);\n return this.queue.writeBuffer(i, 0, a, 0, e), this.uniformPendingDisposal.push(i), { offset: 0, size: e, buffer: i };\n }\n runWebGPUProgram(t8, e, o, n, s) {\n if (s || (s = this.makeTensorInfo(t8.outputShape, o)), y.sizeFromShape(s.shape) === 0)\n return this.tensorMap.get(s.dataId).values = y.getTypedArrayFromDType(s.dtype, 0), s;\n this.uploadToGPU(s.dataId), t8.dispatch = fae(this.device, t8);\n let a = e.map((p, u) => {\n if (p.dtype === \"complex64\")\n throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");\n return this.uploadToGPU(p.dataId), { dtype: this.tensorMap.get(p.dataId).dtype, shape: p.shape, name: t8.variableNames[u] };\n });\n t8.shaderKey = QB(t8, a, s);\n let i = A().getBool(\"WEBGPU_ENGINE_COMPILE_ONLY\");\n return t8.shaderKey in this.pipelineCache || (this.pipelineCache[t8.shaderKey] = YB(this.device, t8, a, s, i)), t8.pipeline = this.pipelineCache[t8.shaderKey], i || this.recordAndSubmit(t8, s, e, n), s;\n }\n recordAndSubmit(t8, e, o, n) {\n if (t8.pipeline instanceof Promise)\n throw new Error(\"Please call checkCompileCompletionAsync to ensure parallel compilation is done!\");\n let s = [], a = [], i = \"int32\";\n if (t8.pixelsOpType == null) {\n s.push({ type: \"float32\", data: [NaN] }, { type: \"float32\", data: [1 / 0] }), a = o.concat(e).map((d) => d.shape);\n let m = \"int32\";\n a.map((d) => {\n s.push({ type: m, data: d });\n let f = y.computeStrides(d);\n s.push({ type: m, data: f });\n });\n } else {\n let m = y.computeStrides(e.shape);\n s.push({ type: i, data: m });\n }\n if (t8.size) {\n let m = y.sizeFromShape(t8.outputShape);\n s.push({ type: i, data: [t8.outputComponent ? m / t8.outputComponent : m] });\n }\n n && (s = [...s, ...n]);\n let p = [this.tensorToBinding(e), ...o.map((m) => this.tensorToBinding(m)), this.makeUniforms(s)];\n o.forEach((m) => {\n this.commandQueueOwnedIds.add(m.dataId);\n }), this.commandQueueOwnedIds.add(e.dataId);\n let u = this.device.createBindGroup({ layout: t8.pipeline.getBindGroupLayout(0), entries: p.map((m, d) => ({ binding: d, resource: m })) }), c = this.activeTimers != null;\n this.ensureCommandEncoderReady();\n let l = {};\n c && this.supportTimestampQuery ? (this.endComputePassEncoder(), this.querySet == null && (this.querySet = this.device.createQuerySet({ type: \"timestamp\", count: this.querySetCount })), l.timestampWrites = [{ querySet: this.querySet, queryIndex: 0, location: \"beginning\" }, { querySet: this.querySet, queryIndex: 1, location: \"end\" }], this.computePassEncoder = this.commandEncoder.beginComputePass(l)) : this.computePassEncoder || (this.computePassEncoder = this.commandEncoder.beginComputePass(l)), this.computePassEncoder.setPipeline(t8.pipeline), this.computePassEncoder.setBindGroup(0, u), this.computePassEncoder.dispatchWorkgroups(t8.dispatch[0], t8.dispatch[1], t8.dispatch[2]), this.dispatchCountInPass++, (c || A().get(\"WEBGPU_DEFERRED_SUBMIT_BATCH_SIZE\") <= this.dispatchCountInPass || t8.pixelsOpType === Ii.DRAW) && (this.endComputePassEncoder(), c ? this.activeTimers.push({ name: t8.constructor.name, query: this.getQueryTime() }) : this.submitQueue());\n }\n async getQueryTime() {\n if (!this.supportTimestampQuery)\n return 0;\n this.queryResolveBuffer == null && (this.queryResolveBuffer = this.bufferManager.acquireBuffer(this.querySetCount * 8, GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST | GPUBufferUsage.QUERY_RESOLVE)), this.commandEncoder.resolveQuerySet(this.querySet, 0, this.querySetCount, this.queryResolveBuffer, 0);\n let t8 = this.bufferManager.acquireBuffer(this.querySetCount * 8, GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);\n this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer, 0, t8, 0, this.querySetCount * 8), this.submitQueue(), await t8.mapAsync(GPUMapMode.READ);\n let e = new BigUint64Array(t8.getMappedRange()), o = Number(e[1] - e[0]) / 1e6;\n return t8.unmap(), this.bufferManager.releaseBuffer(t8), o;\n }\n shouldExecuteOnCPU(t8, e = dae) {\n return A().getBool(\"WEBGPU_CPU_FORWARD\") && t8.every((o) => this.tensorMap.get(o.dataId).resource == null && y.sizeFromShape(o.shape) < e);\n }\n numDataIds() {\n return this.tensorMap.numDataIds() - this.tensorDataPendingDisposal.length;\n }\n dispose() {\n this.disposed || (this.querySet != null && this.querySet.destroy(), this.bufferManager.dispose(), this.textureManager.dispose(), this.disposed = true);\n }\n};\nTu.nextDataId = 0;\ndm() && su(\"webgpu\", async () => {\n let r = { powerPreference: A().get(\"WEBGPU_USE_LOW_POWER_GPU\") ? \"low-power\" : \"high-performance\" }, t8 = await navigator.gpu.requestAdapter(r), e = {}, o = [];\n t8.features.has(\"timestamp-query\") && o.push(\"timestamp-query\"), t8.features.has(\"bgra8unorm-storage\") && o.push([\"bgra8unorm-storage\"]), e.requiredFeatures = o;\n let n = t8.limits;\n e.requiredLimits = { maxComputeWorkgroupStorageSize: n.maxComputeWorkgroupStorageSize, maxComputeWorkgroupsPerDimension: n.maxComputeWorkgroupsPerDimension, maxStorageBufferBindingSize: n.maxStorageBufferBindingSize, maxBufferSize: n.maxBufferSize, maxComputeWorkgroupSizeX: n.maxComputeWorkgroupSizeX, maxComputeInvocationsPerWorkgroup: n.maxComputeInvocationsPerWorkgroup };\n let s = await t8.requestDevice(e), a = await t8.requestAdapterInfo();\n return new Tu(s, a);\n}, 3);\nvar fe;\n(function(r) {\n r[r.ADD = 0] = \"ADD\", r[r.ATAN2 = 1] = \"ATAN2\", r[r.COMPLEX_MULTIPLY_IMAG = 2] = \"COMPLEX_MULTIPLY_IMAG\", r[r.COMPLEX_MULTIPLY_REAL = 3] = \"COMPLEX_MULTIPLY_REAL\", r[r.DIV = 4] = \"DIV\", r[r.ELU_DER = 5] = \"ELU_DER\", r[r.EQUAL = 6] = \"EQUAL\", r[r.FLOOR_DIV = 7] = \"FLOOR_DIV\", r[r.GREATER = 8] = \"GREATER\", r[r.GREATER_EQUAL = 9] = \"GREATER_EQUAL\", r[r.LESS = 10] = \"LESS\", r[r.LESS_EQUAL = 11] = \"LESS_EQUAL\", r[r.LOGICAL_AND = 12] = \"LOGICAL_AND\", r[r.LOGICAL_OR = 13] = \"LOGICAL_OR\", r[r.MAX = 14] = \"MAX\", r[r.MIN = 15] = \"MIN\", r[r.MOD = 16] = \"MOD\", r[r.MUL = 17] = \"MUL\", r[r.NOT_EQUAL = 18] = \"NOT_EQUAL\", r[r.POW = 19] = \"POW\", r[r.PRELU = 20] = \"PRELU\", r[r.SQUARED_DIFFERENCE = 21] = \"SQUARED_DIFFERENCE\", r[r.SUB = 22] = \"SUB\";\n})(fe || (fe = {}));\nvar hae = \"let resultTemp = a + b;\";\nvar gae = \"let resultTemp = atan2(a, b);\";\nvar xae = \"let resultTemp = areal * breal - aimag * bimag;\";\nvar yae = \"let resultTemp = areal * bimag + aimag * breal;\";\nvar bae = \"let resultTemp = a / b;\";\nvar Cae = \"let resultTemp = select(a * (b + 1.0), a, b >= b - b);\";\nvar wae = `\n let zero = sign(a) * 0 + 0;\n let one = sign(b) * 0 + 1;\n let resultTemp = select(zero, one, a == b);\n`;\nvar Sae = `\n let remainder =\n select(a % b, round(a % b), (round(a) == a) & (round(b) == b));\n let quotient = (a - remainder) / b;\n let resultTemp =\n round(select(quotient, quotient - 1, sign(remainder) == -sign(b)));\n`;\nvar Iae = `\n let zero = sign(a) * 0 + 0;\n let one = sign(b) * 0 + 1;\n let resultTemp = select(zero, one, a > b);\n`;\nvar vae = `\n let zero = sign(a) * 0 + 0;\n let one = sign(b) * 0 + 1;\n let resultTemp = select(zero, one, a >= b);\n`;\nvar kae = `\n let zero = sign(a) * 0 + 0;\n let one = sign(b) * 0 + 1;\n let resultTemp = select(zero, one, a < b);\n`;\nvar Nae = `\n let zero = sign(a) * 0 + 0;\n let one = sign(b) * 0 + 1;\n let resultTemp = select(zero, one, a <= b);\n`;\nvar Tae = \"return f32(a >= 1.0 && b >= 1.0);\";\nvar _ae = `return (vec4(a >= vec4(1.0)) *\n vec4(b >= vec4(1.0)));`;\nvar $ae = \"return f32(a >= 1.0 || b >= 1.0);\";\nvar Eae = `return min(vec4(a >= vec4(1.0)) +\n vec4(b >= vec4(1.0)), vec4(1.0));`;\nvar Rae = \"let resultTemp = max(a, b);\";\nvar Dae = \"let resultTemp = min(a, b);\";\nvar Aae = `\n let isNaN = b == 0.;\n var resultTemp = a % b;\n resultTemp = select((resultTemp + b) % b, resultTemp,\n (a < 0. && b < 0.) || (a >= 0. && b > 0.));\n`;\nvar Fae = `\n let isNaN = !vec4(b);\n var resultTemp = vec4(a % b);\n if (!((a[0] < 0. && b[0] < 0.) || (a[0] >= 0. && b[0] > 0.))) {\n resultTemp[0] = (resultTemp[0] + b[0]) % b[0];\n }\n if (!((a[1] < 0. && b[1] < 0.) || (a[1] >= 0. && b[1] > 0.))) {\n resultTemp[1] = (resultTemp[1] + b[1]) % b[1];\n }\n if (!((a[2] < 0. && b[2] < 0.) || (a[2] >= 0. && b[2] > 0.))) {\n resultTemp[2] = (resultTemp[2] + b[2]) % b[2];\n }\n if (!((a[3] < 0. && b[3] < 0.) || (a[3] >= 0. && b[3] > 0.))) {\n resultTemp[3] = (resultTemp[3] + b[3]) % b[3];\n }\n`;\nvar Pae = \"let resultTemp = a * b;\";\nvar Oae = `\n var resultTemp = f32(a != b);\n let valueForNaN = 1.0;\n`;\nvar Mae = `\n var resultTemp = vec4(a != b);\n let valueForNaN = 1.0;\n`;\nvar Lae = `\n let isNaN = a < 0.0 && floor(b) < b;\n if (b == 0.0) {\n return 1.0;\n }\n var resultTemp = select(sign(a) * pow(abs(a), b), pow(abs(a), b),\n round(abs(b) % 2.0) != 1.0);\n`;\nvar Bae = `\n let isModRound1Bool = vec4(round(abs(b) % vec4(2.0))) == vec4(1);\n let isModRound1 = vec4(isModRound1Bool);\n let multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n var resultTemp = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n let isExpZero = b == vec4(0.0);\n if (isExpZero.r) {\n resultTemp.r = 1.0;\n }\n if (isExpZero.g) {\n resultTemp.g = 1.0;\n }\n if (isExpZero.b) {\n resultTemp.b = 1.0;\n }\n if (isExpZero.a) {\n resultTemp.a = 1.0;\n }\n let isNaN = (a < vec4(0.0)) & (floor(b) < b);\n`;\nvar zae = \"if (a < 0.0) { return b * a; } return a;\";\nvar Vae = `\n let aLessThanZero = vec4(a < vec4(0.0));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;\nvar Wae = \"let resultTemp = (a - b) * (a - b);\";\nvar Uae = \"let resultTemp = a - b;\";\nfunction Qc(r, t8) {\n let e;\n do {\n switch (r) {\n case fe.ATAN2:\n e = gae;\n break;\n case fe.MAX:\n e = Rae;\n break;\n case fe.MIN:\n e = Dae;\n break;\n case fe.MOD:\n e = t8 ? Fae : Aae;\n break;\n case fe.NOT_EQUAL:\n e = t8 ? Mae : Oae;\n break;\n case fe.POW:\n e = t8 ? Bae : Lae;\n break;\n default:\n continue;\n }\n let o, n, s;\n return t8 ? (o = \"isnanVec4\", n = \"vec4\", s = \"vec4\") : (o = \"isnan\", n = \"f32\", s = \"bool\"), `\n let aIsNaN = ${o}(a);\n let aPostLegalization = select(a, ${n}(42), aIsNaN);\n let bIsNaN = ${o}(b);\n let bPostLegalization = select(b, ${n}(42), bIsNaN);\n let isNaN = false;\n let valueForNaN = uniforms.NAN;\n {\n let a = aPostLegalization;\n let b = bPostLegalization;\n ${e}\n return select(\n resultTemp, ${n}(valueForNaN),\n ${s}(isNaN) | aIsNaN | bIsNaN);\n }\n `;\n } while (false);\n switch (r) {\n case fe.ADD:\n e = hae;\n break;\n case fe.COMPLEX_MULTIPLY_IMAG:\n e = yae;\n break;\n case fe.COMPLEX_MULTIPLY_REAL:\n e = xae;\n break;\n case fe.DIV:\n e = bae;\n break;\n case fe.ELU_DER:\n e = Cae;\n break;\n case fe.EQUAL:\n e = wae;\n break;\n case fe.FLOOR_DIV:\n e = Sae;\n break;\n case fe.GREATER:\n e = Iae;\n break;\n case fe.GREATER_EQUAL:\n e = vae;\n break;\n case fe.LESS:\n e = kae;\n break;\n case fe.LESS_EQUAL:\n e = Nae;\n break;\n case fe.LOGICAL_AND:\n return t8 ? _ae : Tae;\n case fe.LOGICAL_OR:\n return t8 ? Eae : $ae;\n case fe.MUL:\n e = Pae;\n break;\n case fe.PRELU:\n return t8 ? Vae : zae;\n case fe.SQUARED_DIFFERENCE:\n e = Wae;\n break;\n case fe.SUB:\n e = Uae;\n break;\n default:\n }\n return `\n ${e}\n return resultTemp;\n `;\n}\nvar Z;\n(function(r) {\n r[r.ABS = 0] = \"ABS\", r[r.ACOS = 1] = \"ACOS\", r[r.ACOSH = 2] = \"ACOSH\", r[r.ASIN = 3] = \"ASIN\", r[r.ASINH = 4] = \"ASINH\", r[r.ATAN = 5] = \"ATAN\", r[r.ATANH = 6] = \"ATANH\", r[r.CEIL = 7] = \"CEIL\", r[r.COS = 8] = \"COS\", r[r.COSH = 9] = \"COSH\", r[r.ELU = 10] = \"ELU\", r[r.ERF = 11] = \"ERF\", r[r.EXP = 12] = \"EXP\", r[r.EXPM1 = 13] = \"EXPM1\", r[r.FLOOR = 14] = \"FLOOR\", r[r.IS_FINITE = 15] = \"IS_FINITE\", r[r.IS_INF = 16] = \"IS_INF\", r[r.IS_NAN = 17] = \"IS_NAN\", r[r.LINEAR = 18] = \"LINEAR\", r[r.LOG = 19] = \"LOG\", r[r.LOG1P = 20] = \"LOG1P\", r[r.LOGICAL_NOT = 21] = \"LOGICAL_NOT\", r[r.NEG = 22] = \"NEG\", r[r.RELU = 23] = \"RELU\", r[r.RELU6 = 24] = \"RELU6\", r[r.LEAKYRELU = 25] = \"LEAKYRELU\", r[r.RECIPROCAL = 26] = \"RECIPROCAL\", r[r.ROUND = 27] = \"ROUND\", r[r.RSQRT = 28] = \"RSQRT\", r[r.SELU = 29] = \"SELU\", r[r.SIGMOID = 30] = \"SIGMOID\", r[r.SIGN = 31] = \"SIGN\", r[r.SIN = 32] = \"SIN\", r[r.SINH = 33] = \"SINH\", r[r.SOFTPLUS = 34] = \"SOFTPLUS\", r[r.SQRT = 35] = \"SQRT\", r[r.SQUARE = 36] = \"SQUARE\", r[r.STEP = 37] = \"STEP\", r[r.TAN = 38] = \"TAN\", r[r.TANH = 39] = \"TANH\", r[r.TO_INT = 40] = \"TO_INT\";\n})(Z || (Z = {}));\nvar Gae = \"return abs(a);\";\nvar Hae = `\n if (abs(a) > 1.) {\n return uniforms.NAN;\n }\n return acos(a);\n`;\nvar Kae = `\n if (a < 1.) {\n return uniforms.NAN;\n }\n return acosh(a);\n`;\nvar qae = `\n if (abs(a) > 1.) {\n return uniforms.NAN;\n }\n return asin(a);\n`;\nvar jae = \"return asinh(a);\";\nvar Xae = `\n if (isnan(a)) {\n return uniforms.NAN;\n }\n return atan(a);\n`;\nvar Yae = `\n if (abs(a) > 1.) {\n return uniforms.NAN;\n }\n if (a == 1.) {\n return uniforms.INFINITY;\n }\n if (a == -1.) {\n return -uniforms.INFINITY;\n }\n return atanh(a);\n`;\nvar Qae = \"return ceil(a);\";\nvar Zae = \"return cos(a);\";\nvar Jae = `\n let e2x = exp(-a);\n return (e2x + 1.0 / e2x) / 2.0;\n`;\nvar eie = \"return exp(a) - 1.0;\";\nvar tie = \"if (a >= 0.0) { return a; } return (exp(a) - 1.0);\";\nvar rie = `\n var resFloat = exp(a) - vec4(1.0);\n if (a.r >= 0.0) {\n resFloat.r = a.r;\n }\n if (a.g >= 0.0) {\n resFloat.g = a.g;\n }\n if (a.b >= 0.0) {\n resFloat.b = a.b;\n }\n if (a.a >= 0.0) {\n resFloat.a = a.a;\n }\n return resFloat;\n`;\nvar oie = `\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n let p = ${w.ERF_P};\n let a1 = ${w.ERF_A1};\n let a2 = ${w.ERF_A2};\n let a3 = ${w.ERF_A3};\n let a4 = ${w.ERF_A4};\n let a5 = ${w.ERF_A5};\n\n let sign = sign(a);\n let absA = abs(a);\n let t = 1.0 / (1.0 + p * absA);\n return sign * (1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * exp(-absA * absA));\n`;\nvar nie = \"return exp(a);\";\nvar sie = \"return floor(a);\";\nvar aie = \"return f32(!isnan(a) && !isinf(a));\";\nvar iie = \"return f32(isinf(a));\";\nvar uie = \"return f32(isnan(a));\";\nvar pie = \"return a;\";\nvar cie = `if (a < 0.0) { return uniforms.NAN; }\n return log(a);`;\nvar lie = `\n if (isnan(a)) { return a; }\n return log(1.0 + a);\n`;\nvar mie = \"return f32(!(a >= 1.0));\";\nvar die = \"return -a;\";\nvar fie = \"if (a < 0.0) { return uniforms.alpha * a; } return a;\";\nvar hie = `\n let aLessThanZero = vec4(a < vec4(0.0));\n return (aLessThanZero * (uniforms.alpha * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;\nvar gie = \"return 1.0 / a;\";\nvar xie = \"return select(a, 0.0, a < 0.0);\";\nvar yie = \"return clamp(a, 0.0, 6.0);\";\nvar bie = \"return clamp(a, vec4(0.0, 0.0, 0.0, 0.0), vec4(6.0, 6.0, 6.0, 6.0));\";\nvar Cie = `\n return select(a, vec4(0.0), a < vec4(0.0));\n`;\nvar wie = \"return round(a);\";\nvar Sie = \"return inverseSqrt(a);\";\nvar Iie = `\n if (a >= 0.0) {\n return ${w.SELU_SCALE} * a;\n } else {\n return ${w.SELU_SCALEALPHA} * (exp(a) - 1.0);\n }\n`;\nvar vie = \"return 1.0 / (1.0 + exp(-1.0 * a));\";\nvar kie = \"return sign(a);\";\nvar Nie = \"return sin(a);\";\nvar Tie = `\n let e2x = exp(a);\n return (e2x - 1.0 / e2x) / 2.0;\n`;\nvar _ie = `\n let epsilon = 1.1920928955078125e-7;\n let threshold = log(epsilon) + 2.0;\n\n let too_large = a > -threshold;\n let too_small = a < threshold;\n let exp_a = exp(a);\n\n if (too_large) {\n return a;\n } else if (too_small) {\n return exp_a;\n } else {\n return log(exp_a + 1.0);\n }\n`;\nvar $ie = \"return sqrt(a);\";\nvar Eie = \"return a * a;\";\nvar Rie = `\n if (isnan(a)) {\n return a;\n }\n\n return select(uniforms.stepAlpha, 1.0, a > 0.0);\n`;\nvar Die = \"return tan(a);\";\nvar Aie = `\n let e2x = exp(-2.0 * abs(a));\n return sign(a) * (1.0 - e2x) / (1.0 + e2x);\n`;\nvar Fie = \"return f32(i32((a)));\";\nfunction vi(r, t8) {\n switch (r) {\n case Z.ABS:\n return Gae;\n case Z.ACOS:\n return Hae;\n case Z.ACOSH:\n return Kae;\n case Z.ASIN:\n return qae;\n case Z.ASINH:\n return jae;\n case Z.ATAN:\n return Xae;\n case Z.ATANH:\n return Yae;\n case Z.COS:\n return Zae;\n case Z.COSH:\n return Jae;\n case Z.CEIL:\n return Qae;\n case Z.ELU:\n return t8 ? rie : tie;\n case Z.ERF:\n return oie;\n case Z.EXP:\n return nie;\n case Z.EXPM1:\n return eie;\n case Z.FLOOR:\n return sie;\n case Z.IS_FINITE:\n return aie;\n case Z.IS_INF:\n return iie;\n case Z.IS_NAN:\n return uie;\n case Z.LINEAR:\n return pie;\n case Z.LOG:\n return cie;\n case Z.LOG1P:\n return lie;\n case Z.LOGICAL_NOT:\n return mie;\n case Z.NEG:\n return die;\n case Z.LEAKYRELU:\n return t8 ? hie : fie;\n case Z.RECIPROCAL:\n return gie;\n case Z.RELU:\n return t8 ? Cie : xie;\n case Z.RELU6:\n return t8 ? bie : yie;\n case Z.ROUND:\n return wie;\n case Z.RSQRT:\n return Sie;\n case Z.SELU:\n return Iie;\n case Z.SIGMOID:\n return vie;\n case Z.SIGN:\n return kie;\n case Z.SIN:\n return Nie;\n case Z.SINH:\n return Tie;\n case Z.SOFTPLUS:\n return _ie;\n case Z.SQRT:\n return $ie;\n case Z.SQUARE:\n return Eie;\n case Z.STEP:\n return Rie;\n case Z.TAN:\n return Die;\n case Z.TANH:\n return Aie;\n case Z.TO_INT:\n return Fie;\n default:\n throw new Error(`BinaryType ${r} is not implemented!`);\n }\n}\nfunction fr(r, t8 = false, e = false, o = 3) {\n if (r === null)\n return \"\";\n let n = \"\";\n if (r === \"linear\")\n n = vi(Z.LINEAR);\n else if (r === \"relu\")\n n = vi(Z.RELU, e);\n else if (r === \"elu\")\n n = vi(Z.ELU, e);\n else if (r === \"relu6\")\n n = vi(Z.RELU6, e);\n else if (r === \"prelu\")\n n = Qc(fe.PRELU, e);\n else if (r === \"sigmoid\")\n n = vi(Z.SIGMOID, e);\n else if (r === \"leakyrelu\")\n n = vi(Z.LEAKYRELU, e);\n else\n throw new Error(`Activation ${r} has not been implemented for the WebGPU backend.`);\n let a = Ae(e ? 4 : 1), i = \"\";\n return t8 ? i = `\n fn activation(a : ${a}, coords : vec${o}) -> ${a} {\n let b = getPreluActivationWeightsByOutputCoords(coords);\n ${n}\n }` : i = `\n fn activation(a : ${a}, coords : vec${o}) -> ${a} {\n ${n}\n }`, i;\n}\nfunction Zr(r, t8) {\n return `\n ${r ? \"value = value + getBiasByOutputCoords(coords);\" : \"\"}\n ${t8 ? \"value = activation(value, coords);\" : \"\"}\n `;\n}\nfunction Qv(r, t8, e = false, o = false, n = false, s = 1) {\n y.assert(r && s === 1 || !r, () => `transposeA ${r} is not compatible with component size ${s}`);\n let a = `\n ${r ? \"value = getA(batch, col, row);\" : \"value = getA(batch, row, col);\"}\n\n `, i = t8 ? \"value = getB(batch, col, row);\" : \"value = getB(batch, row, col);\";\n return `\n fn mm_readA(batch: i32, row: i32, col: i32) -> ${Ae(s)} {\n var value = ${Ae(s)}(0.0);\n ${e && n ? a : `\n ${r ? \"if(row < uniforms.dimAOuter && col < uniforms.dimInner)\" : \"if(row < uniforms.aShape[1] && col < uniforms.aShape[2])\"}\n {\n ${a}\n }\n `}\n return value;\n }\n\n fn mm_readB(batch: i32, row: i32, col: i32) -> ${Ae(s)} {\n var value = ${Ae(s)}(0.0);\n ${i}\n return value;\n }\n `;\n}\nfunction hm(r, t8, e, o, n = false, s = false, a = false, i = 1) {\n return `\n ${Qv(e, o, n, s, a, i)}\n fn mm_write(batch: i32, row: i32, col: i32, valueIn: ${Ae(i)}) {\n ${n && s ? \"\" : \"if (row < uniforms.dimAOuter && col < uniforms.dimBOuter)\"}\n {\n var value = valueIn;\n let coords = vec3(batch, row, col);\n ${Zr(r, t8)}\n setOutputAtCoords(coords[0], coords[1], coords[2], value);\n }\n }\n `;\n}\nvar Pie = (r, t8) => r ? `\n mm_Asub[inputRow][inputCol] = mm_readA(batchA,\n kStart + inputRow,\n globalRowStart + inputCol * ${t8});\n ` : `\n mm_Asub[inputRow][inputCol] = mm_readA(batchA,\n globalRow + innerRow,\n kStart + inputCol * ${t8});\n `;\nvar Oie = (r, t8, e, o) => {\n if (r)\n return `\n for (var k = 0; k < ${o}; k++) {\n let BCached0 = mm_Bsub[k][tileCol];\n let ACached0 = mm_Asub[k][localRow];\n for (var i = 0; i < ${e}; i++) {\n acc[i] = fma(BCached0, vec4(ACached0[i]), acc[i]);\n }\n }`;\n {\n let n = \"\", s = \"\";\n for (let a = 0; a < t8; a++)\n n += `let BCached${a} = mm_Bsub[k * ${t8} + ${a}][tileCol];`, s += `acc[i] = fma(BCached${a}, vec4(ACached[${a}]), acc[i]);`;\n return `\n for (var k = 0; k < ${o / t8}; k++) {\n ${n}\n for (var i = 0; i < ${e}; i++) {\n let ACached = mm_Asub[tileRow + i][k];\n ${s}\n }\n }`;\n }\n};\nfunction Fp(r, t8, e = false, o = 32, n = false, s = 32, a = false) {\n let i = t8[1] * r[1], p = t8[0] * r[0], u = e ? i : o, c = e ? o : i, l = u / t8[0], m = o / t8[1], d = r[1], f = r[0];\n return y.assert((e && l === 4 && r[1] === 4 || !e && (l === 3 || l === 4)) && u % t8[0] === 0 && o % t8[1] === 0 && r[0] === 4, () => `If transposeA ${e} is true, innerElementSize ${l} and workPerThread[1] ${r[1]} must be 4.\n Otherwise, innerElementSize ${l} must be 3 or 4.\n tileAWidth ${u} must be divisible by workgroupSize[0]${t8[0]}. tileInner ${o} must be divisible by workgroupSize[1] ${t8[1]}. colPerThread ${r[0]} must be 4.`), `\n var mm_Asub : array, ${u / l}>, ${c}>;\n var mm_Bsub : array, ${p / r[0]}>, ${o}>;\n\n ${G()} {\n let localRow = i32(localId.y);\n let tileRow = localRow * ${d};\n let tileCol = i32(localId.x);\n\n let globalRow = i32(globalId.y) * ${d};\n let globalCol = i32(globalId.x) * ${f};\n let batch = ${n ? \"0\" : \"i32(globalId.z)\"};\n let batchA = ${n || !a ? \"batch\" : \"batch % uniforms.aShape[0]\"};\n let batchB = ${n || !a ? \"batch\" : \"batch % uniforms.bShape[0]\"};\n let globalRowStart = i32(workgroupId.y) * ${i};\n\n let numTiles = ${n ? `${Math.ceil(s / o)}` : `(uniforms.dimInner - 1) / ${o} + 1`};\n var kStart = ${n ? `i32(globalId.z) * ${s}` : \"0\"};\n\n var acc: array, ${d}>;\n\n // Loop over shared dimension.\n let tileRowB = localRow * ${m};\n for (var t = 0; t < numTiles; t++) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < ${d}; innerRow++) {\n let inputRow = tileRow + innerRow;\n let inputCol = tileCol;\n ${Pie(e, l)}\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${m}; innerRow++) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batchB, kStart + inputRow, globalCol);\n }\n kStart = kStart + ${o};\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n ${Oie(e, l, d, o)}\n workgroupBarrier();\n }\n\n for (var innerRow = 0; innerRow < ${d}; innerRow++) {\n mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]);\n }\n }`;\n}\nvar JB = (r) => r ? `\n mm_Asub[inputRow][inputCol] = mm_readA(batchA,\n kStart + inputRow,\n globalRowStart + inputCol);\n ` : `\n mm_Asub[inputRow][inputCol] = mm_readA(batchA,\n globalRowStart + inputRow,\n kStart + inputCol);\n `;\nvar Mie = (r) => r ? \"let ACached = mm_Asub[k][tileRow + innerRow];\" : \"let ACached = mm_Asub[tileRow + innerRow][k];\";\nfunction Pp(r, t8, e = false, o = 32, n = false, s = 32, a = false, i = false) {\n let p = r[1] * t8[1], u = r[0] * t8[0], c = e ? p : o, l = e ? o : p;\n y.assert(l % t8[1] === 0 && c % t8[0] === 0 && o % t8[1] === 0, () => `tileAHight ${l} must be divisible by workgroupSize[1]${t8[1]}, tileAWidth ${c} must be divisible by workgroupSize[0]${t8[0]}, tileInner ${o} must be divisible by workgroupSize[1]${t8[1]}`);\n let m = l / t8[1], d = c / t8[0], f = o / t8[1], h = r[1], g = r[0], x = a ? `\n let localRow = i32(localId.y);\n let localCol = i32(localId.x);\n let globalRowStart = i32(workgroupId.y) * ${p};\n let globalColStart = i32(workgroupId.x) * ${u};\n\n // Loop over shared dimension.\n for (var t = 0; t < numTiles; t++) {\n // Load one tile of A into local memory.\n for (var inputRow = localRow; inputRow < ${l}; inputRow = inputRow + ${t8[1]}) {\n for (var inputCol = localCol; inputCol < ${c}; inputCol = inputCol + ${t8[0]}) {\n ${JB(e)}\n }\n }\n // Load one tile of B into local memory.\n for (var inputRow = localRow; inputRow < ${o}; inputRow = inputRow + ${t8[1]}) {\n for (var inputCol = localCol; inputCol < ${u}; inputCol = inputCol + ${t8[0]}) {\n mm_Bsub[inputRow][inputCol] = mm_readB(batchB,\n kStart + inputRow,\n globalColStart + inputCol);\n }\n }\n kStart = kStart + ${o};\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array;\n for (var k = 0; k < ${o}; k++) {\n for (var inner = 0; inner < ${g}; inner++) {\n BCached[inner] = mm_Bsub[k][localCol + inner * ${t8[0]}];\n }\n for (var innerRow = 0; innerRow < ${h}; innerRow++) {\n let ACached = ${e ? `mm_Asub[k][localRow + innerRow * ${t8[1]}];` : `mm_Asub[localRow + innerRow * ${t8[1]}][k];`}\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n acc[innerRow][innerCol] =\n fma(ACached, BCached[innerCol], acc[innerRow][innerCol]);\n }\n }\n }\n workgroupBarrier();\n }\n for (var innerRow = 0; innerRow < ${h}; innerRow++) {\n let gRow = globalRowStart + localRow + innerRow * ${t8[1]};\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n let gCol = globalColStart + localCol + innerCol * ${t8[0]};\n mm_write(batch, gRow, gCol, acc[innerRow][innerCol]);\n }\n }\n ` : `\n let tileRow = i32(localId.y) * ${h};\n let tileCol = i32(localId.x) * ${g};\n\n let globalRow = i32(globalId.y) * ${h};\n let globalCol = i32(globalId.x) * ${g};\n let globalRowStart = i32(workgroupId.y) * ${p};\n\n let tileRowA = i32(localId.y) * ${m};\n let tileColA = i32(localId.x) * ${d};\n let tileRowB = i32(localId.y) * ${f};\n // Loop over shared dimension.\n for (var t = 0; t < numTiles; t++) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < ${m}; innerRow++) {\n for (var innerCol = 0; innerCol < ${d}; innerCol++) {\n let inputRow = tileRowA + innerRow;\n let inputCol = tileColA + innerCol;\n ${JB(e)}\n }\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${f}; innerRow++) {\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol + innerCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batchB,\n kStart + inputRow,\n globalCol + innerCol);\n }\n }\n kStart = kStart + ${o};\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array;\n for (var k = 0; k < ${o}; k++) {\n for (var inner = 0; inner < ${g}; inner++) {\n BCached[inner] = mm_Bsub[k][tileCol + inner];\n }\n\n for (var innerRow = 0; innerRow < ${h}; innerRow++) {\n ${Mie(e)}\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n acc[innerRow][innerCol] =\n fma(ACached, BCached[innerCol], acc[innerRow][innerCol]);\n }\n }\n }\n\n workgroupBarrier();\n }\n\n for (var innerRow = 0; innerRow < ${h}; innerRow++) {\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n mm_write(batch, globalRow + innerRow, globalCol + innerCol,\n acc[innerRow][innerCol]);\n }\n }\n `;\n return `\n var mm_Asub : array, ${l}>;\n var mm_Bsub : array, ${o}>;\n\n ${G()} {\n let batch = ${n ? \"0\" : \"i32(globalId.z)\"};\n let batchA = ${n || !i ? \"batch\" : \"batch % uniforms.aShape[0]\"};\n let batchB = ${n || !i ? \"batch\" : \"batch % uniforms.bShape[0]\"};\n let numTiles = ${n ? `${Math.ceil(s / o)}` : `(uniforms.dimInner - 1) / ${o} + 1`};\n var kStart = ${n ? `i32(globalId.z) * ${s}` : \"0\"};\n\n var acc : array, ${h}>;\n\n // Without this initialization strange values show up in acc.\n for (var innerRow = 0; innerRow < ${h}; innerRow++) {\n for (var innerCol = 0; innerCol < ${g}; innerCol++) {\n acc[innerRow][innerCol] = 0.0;\n }\n }\n ${x}\n }\n `;\n}\nvar Lie = (r) => r ? `\n mm_readA(batchA, colA, globalRow),\n mm_readA(batchA, colA + 1, globalRow),\n mm_readA(batchA, colA + 2, globalRow),\n mm_readA(batchA, colA + 3, globalRow)\n ` : `\n mm_readA(batchA, globalRow, colA),\n mm_readA(batchA, globalRow, colA + 1),\n mm_readA(batchA, globalRow, colA + 2),\n mm_readA(batchA, globalRow, colA + 3)\n `;\nfunction Bie(r, t8 = false) {\n y.assert(r[1] === 1 && r[2] === 1, () => `A linear work group size is required. But got ${r}.`);\n let e = r[0] * 4;\n return `\n var mm_Asub : array, ${r[0]}>;\n\n ${G()} {\n let tileCol = i32(localId.x);\n let globalCol = i32(globalId.x);\n let globalRow = i32(globalId.y);\n\n let numTiles = (uniforms.dimInner - 1) / ${e} + 1;\n let batch = i32(globalId.z);\n let batchA = batch % uniforms.aShape[0];\n let batchB = batch % uniforms.bShape[0];\n // Without this initialization strange values show up in acc.\n var acc = 0.0;\n\n // Loop over shared dimension.\n for (var t = 0; t < numTiles; t++) {\n // Load one tile of A into local memory.\n let colA = t * ${e} + tileCol * 4;\n mm_Asub[tileCol] = vec4(${Lie(t8)});\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n for (var k = 0; k < ${e / 4}; k++) {\n let rowB = t * ${e} + k * 4;\n let BCached = vec4(mm_readB(batchB, rowB, globalCol),\n mm_readB(batchB, rowB + 1, globalCol),\n mm_readB(batchB, rowB + 2, globalCol),\n mm_readB(batchB, rowB + 3, globalCol));\n\n let ACached = mm_Asub[k];\n acc = acc + dot(ACached, BCached);\n }\n\n workgroupBarrier();\n }\n\n mm_write(batch, globalRow, globalCol, acc);\n }\n `;\n}\nvar Xg = class {\n constructor(t8, e, o = false, n = false, s = null, a = null, i = null, p = false) {\n this.variableNames = [\"A\", \"B\"], this.uniforms = \"dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.outputShape = e, this.dispatchLayout = { x: [2], y: [1], z: [0] };\n let u = o ? t8[1] : t8[2];\n if (this.isVec4 = (u % 4 === 0 && !o || e[1] % 4 === 0 && o) && e[2] % 4 === 0 && !n, this.outputComponent = this.isVec4 ? 4 : 1, this.isVectorA = e[1] === 1 && !o, !this.isVec4 && this.isVectorA)\n this.elementsPerThread = [1, 1, 1], this.workgroupSize = [32, 1, 1];\n else {\n let m = Xv(e[1], u, e[2], o);\n this.workgroupSize = m.workgroupSize, this.elementsPerThread = m.elementsPerThread;\n }\n this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, this.elementsPerThread);\n let c = s != null, l = i != null;\n c && this.variableNames.push(\"bias\"), l && this.variableNames.push(\"preluActivationWeights\"), this.sequentialAccessByThreads = p, this.transposeA = o, this.transposeB = n, this.addBias = c, this.activation = a, this.hasPreluActivationWeights = l, [this.fitAOuter, this.fitBOuter, this.fitInner] = this.getShapeFit(e[1], e[2], u), this.shaderKey = `matMulPacked_${this.elementsPerThread}_${o}_${n}_${this.activation}_${this.fitAOuter}_${this.fitBOuter}_${this.fitInner}_${this.isVec4}_${this.isVectorA}_${this.sequentialAccessByThreads}`;\n }\n getShapeFit(t8, e, o) {\n let n = this.workgroupSize[1] * this.elementsPerThread[1], s = this.workgroupSize[0] * this.elementsPerThread[0];\n !this.isVec4 && this.isVectorA ? this.tileInner = this.workgroupSize[0] * 4 : this.tileInner = s;\n let a = t8 % n === 0, i = e % s === 0, p = o % this.tileInner === 0;\n return [a, i, p];\n }\n getUserCode() {\n return `\n ${fr(this.activation, this.hasPreluActivationWeights, this.isVec4)}\n ${hm(this.addBias, this.activation, false, this.transposeB, this.fitAOuter, this.fitBOuter, this.fitInner, this.isVec4 ? 4 : 1)}\n ${this.isVec4 ? Fp(this.elementsPerThread, this.workgroupSize, this.transposeA, this.tileInner, false, null, true) : this.isVectorA ? Bie(this.workgroupSize, this.transposeA) : Pp(this.elementsPerThread, this.workgroupSize, this.transposeA, this.tileInner, false, null, this.sequentialAccessByThreads, true)}\n `;\n }\n};\nfunction zie(r) {\n return `\n var sumValues : array;\n ${G()} {\n let coords = getOutputCoords();\n let batch = coords[0];\n let batchA = batch % uniforms.aShape[0];\n let batchB = batch % uniforms.bShape[0];\n let row = coords[1];\n let col = coords[2];\n var sum = 0.0;\n let Length = uniforms.dimInner;\n for (var k = i32(localId.x); k < Length; k = k + ${r}) {\n let dataA = mm_readA(batchA, row, k);\n let dataB = mm_readB(batchB, k, col);\n sum = sum + dataA * dataB;\n }\n sumValues[localId.x] = sum;\n workgroupBarrier();\n\n for(var currentSize = ${r / 2}u; currentSize > 1u;\n currentSize = currentSize / 2u) {\n if (localId.x < currentSize)\n {\n sumValues[localId.x] = sumValues[localId.x] + sumValues[localId.x + currentSize];\n }\n workgroupBarrier();\n }\n\n if (localId.x == 0u) {\n sum = sumValues[0] + sumValues[1];\n mm_write(batch, row, col, sum);\n }\n }\n `;\n}\nvar Yg = class {\n constructor(t8, e = false, o = false, n = null, s = null, a = null) {\n this.variableNames = [\"A\", \"B\"], this.uniforms = \"dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.workgroupSize = [256, 1, 1], this.outputShape = t8, this.dispatchLayout = { x: [], y: [1, 2], z: [0] }, this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize);\n let i = n != null, p = a != null;\n i && this.variableNames.push(\"bias\"), p && this.variableNames.push(\"preluActivationWeights\"), this.transposeA = e, this.transposeB = o, this.addBias = i, this.activation = s, this.hasPreluActivationWeights = p, this.shaderKey = `matMulReduce_${this.activation}_${e}_${o}`;\n }\n getUserCode() {\n return `\n ${fr(this.activation, this.hasPreluActivationWeights)}\n ${hm(this.addBias, this.activation, this.transposeA, this.transposeB)}\n ${zie(this.workgroupSize[0])}\n `;\n }\n};\nfunction Vie(r) {\n let t8 = r[1], e = r[0], o = t8 > e ? t8 : e;\n return `\n var mm_Asub : array, ${t8}>;\n var mm_Bsub : array, ${o}>;\n\n // If the output size is small for matrix multiplication, avoid to use vec4\n // and handle some elements per thread to optimally utilize the ALU.\n // Read data from global memory to registers firstly, then store them into\n // shared memory, so it is instruction-Level parallelism for arithmetic\n // operations and others handle IO operations between barrier api, makes ALU\n // and load/store units work simultaneously, could improves the performance.\n ${G()} {\n let tileRow = i32(localId.y);\n let tileCol = i32(localId.x);\n let globalRow = i32(globalId.y);\n let globalCol = i32(globalId.x);\n let batch = i32(globalId.z);\n let batchA = batch % uniforms.aShape[0];\n let batchB = batch % uniforms.bShape[0];\n\n // uniforms.dimInner should be greater than 0.\n let numTiles = (uniforms.dimInner - 1) / ${o} + 1;\n var acc = 0.0;\n\n var globalColA = tileCol;\n var globalRowB = 0;\n var regA = mm_readA(batchA, globalRow, globalColA);\n var regB0 = mm_readB(batchB, globalRowB + 2 * tileRow, globalCol);\n var regB1 = mm_readB(batchB, globalRowB + 2 * tileRow + 1, globalCol);\n globalColA = globalColA + ${o};\n globalRowB = globalRowB + ${o};\n\n for (var t = 0; t < numTiles; t = t + 1) {\n mm_Asub[tileRow][tileCol] = regA;\n mm_Bsub[2 * tileRow][tileCol] = regB0;\n mm_Bsub[2 * tileRow + 1][tileCol] = regB1;\n\n workgroupBarrier();\n\n regA = mm_readA(batchA, globalRow, globalColA);\n regB0 = mm_readB(batchB, globalRowB + 2 * tileRow, globalCol);\n regB1 = mm_readB(batchB, globalRowB + 2 * tileRow + 1, globalCol);\n globalColA = globalColA + ${o};\n globalRowB = globalRowB + ${o};\n\n for (var k = 0; k < ${o}; k = k + 1) {\n acc = acc + mm_Asub[tileRow][k] * mm_Bsub[k][tileCol];\n }\n workgroupBarrier();\n }\n\n mm_write(batch, globalRow, globalCol, acc);\n }\n `;\n}\nvar Qg = class {\n constructor(t8, e, o, n = false, s = false, a = null, i = null, p = null) {\n this.variableNames = [\"A\", \"B\"], this.uniforms = \"dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.workgroupSize = [16, 8, 1], this.outputShape = o, this.dispatchLayout = { x: [2], y: [1], z: [0] }, this.dispatch = [Math.ceil(o[2] / this.workgroupSize[0]), Math.ceil(o[1] / this.workgroupSize[1]), o[0]];\n let u = a != null;\n u && this.variableNames.push(\"bias\");\n let c = p != null;\n c && this.variableNames.push(\"preluActivationWeights\"), this.transposeA = n, this.transposeB = s, this.addBias = u, this.activation = i, this.hasPreluActivationWeights = c, this.shaderKey = `matMulSmallOutputSize_${this.activation}_${n}_${s}`;\n }\n getUserCode() {\n return `\n ${fr(this.activation, this.hasPreluActivationWeights)}\n ${hm(this.addBias, this.activation, this.transposeA, this.transposeB)}\n ${Vie(this.workgroupSize)}\n `;\n }\n};\nvar Zg = class {\n constructor(t8, e, o = false, n = false) {\n this.variableNames = [\"A\", \"B\"], this.uniforms = \"dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.workgroupSize = [8, 8, 1], this.atomic = true, this.splitedDimInner = 128, y.assert(t8[0] === 1, () => \"MatMulSplitKProgram only supports batch = 1.\"), this.outputShape = t8, this.dispatchLayout = { x: [2], y: [1], z: [0, 3] };\n let s = (o && this.outputShape[1] % 4 === 0 || !o && e % 4 === 0) && this.outputShape[2] % 4 === 0;\n this.elementsPerThread = [4, 4, this.splitedDimInner], this.outputComponent = s ? 4 : 1, s || (this.outputShape[1] < 16 && (this.elementsPerThread[1] = 1), this.outputShape[2] < 16 && (this.elementsPerThread[0] = 1)), this.dispatch = H(this.dispatchLayout, [this.outputShape[0], this.outputShape[1], this.outputShape[2], e], this.workgroupSize, this.elementsPerThread), this.transposeA = o, this.transposeB = n, this.shaderKey = `matMulSplitK_${o}_${n}_${this.elementsPerThread}_${this.outputComponent}`;\n }\n getUserCode() {\n let t8 = this.outputComponent;\n return `\n ${Qv(false, this.transposeB, false, false, false, t8)}\n fn mm_write(batch: i32, row : i32, col : i32, value : ${Ae(t8)}) {\n if (row < uniforms.dimAOuter && col < uniforms.dimBOuter) {\n let coords = vec3(batch, row, col);\n let flatIndex = getOutputIndexFromCoords(coords);\n // The problem is that we should initialize output to zero before using.\n // Otherwise, the original value will be added to the result.\n for (var i = 0; i < ${t8}; i = i + 1) {\n ${Qr(\"&result[flatIndex + i]\", `${t8 > 1 ? \"value[i]\" : \"value\"}`, \"float32\")}\n }\n }\n }\n ${t8 === 4 ? Fp(this.elementsPerThread, this.workgroupSize, this.transposeA, 32, true, this.splitedDimInner) : Pp(this.elementsPerThread, this.workgroupSize, this.transposeA, 32, true, this.splitedDimInner)}\n `;\n }\n};\nvar Jg = class {\n constructor(t8, e = null, o = null, n = null) {\n this.uniforms = \"\", this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.addBias = e != null, this.hasPreluActivationWeights = n != null, this.activation = o, this.addBias && this.variableNames.push(\"bias\"), this.hasPreluActivationWeights && this.variableNames.push(\"preluActivationWeights\"), this.shaderKey = `biasActivation_${o}`;\n }\n getUserCode() {\n return `\n ${fr(this.activation, this.hasPreluActivationWeights)}\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n var value = getXByOutputIndex(index);\n ${Zr(this.addBias, this.activation)}\n setOutputAtIndex(index, value);\n }\n }\n `;\n }\n};\nvar ex = class {\n constructor(t8) {\n this.variableNames = [], this.outputShape = [], this.uniforms = \"value : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"fill\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n setOutputAtIndex(index, uniforms.value);\n }\n }\n `;\n }\n};\nfunction kt(r) {\n let { backend: t8, attrs: e } = r, { shape: o, value: n } = e, { dtype: s } = e;\n if (s = s || y.inferDtype(n), s === \"string\") {\n let a = y.getArrayFromDType(s, y.sizeFromShape(o));\n return a.fill(n), t8.makeTensorInfo(o, s, a);\n } else {\n let a = new ex(o), i = [{ type: \"float32\", data: [n] }];\n return t8.runWebGPUProgram(a, [], s, i);\n }\n}\nvar ez = { kernelName: sa, backendName: \"webgpu\", kernelFunc: kt };\nfunction pe(r) {\n let { inputs: t8, attrs: e } = r, { x: o } = t8, { shape: n } = e, s = y.sizeFromShape(o.shape), a = y.inferFromImplicitShape(n, s), i = y.sizeFromShape(a);\n return y.assert(s === i, () => `The new shape (${a}) has ${i} elements and the old shape (${o.shape}) has ${s} elements. The new shape and old shape must have the same number of elements.`), r.backend.incRef(o.dataId), { dataId: o.dataId, shape: a, dtype: o.dtype };\n}\nvar tz = { kernelName: da, backendName: \"webgpu\", kernelFunc: pe };\nfunction Op({ a: r, b: t8, transposeA: e, transposeB: o, backend: n, bias: s = null, preluActivationWeights: a = null, leakyreluAlpha: i = 0, activation: p = null }) {\n let u = r.shape.length, c = t8.shape.length, l = e ? r.shape[u - 2] : r.shape[u - 1], m = o ? t8.shape[c - 1] : t8.shape[c - 2], d = e ? r.shape[u - 1] : r.shape[u - 2], f = o ? t8.shape[c - 2] : t8.shape[c - 1], h = r.shape.slice(0, -2), g = t8.shape.slice(0, -2), x = y.sizeFromShape(h), b = y.sizeFromShape(g), S = Ir.assertAndGetBroadcastShape(r.shape.slice(0, -2), t8.shape.slice(0, -2)).concat([d, f]);\n y.assert(l === m, () => `Error in matMul: inner shapes (${l}) and (${m}) of Tensors with shapes ${r.shape} and ${t8.shape} and transposeA=${e} and transposeB=${o} must match.`);\n let k = e ? [x, l, d] : [x, d, l], _ = o ? [b, f, m] : [b, m, f], E = pe({ inputs: { x: r }, backend: n, attrs: { shape: k } }), R = pe({ inputs: { x: t8 }, backend: n, attrs: { shape: _ } }), D = [E, R], P = Math.max(x, b), O = [E, R], M = [{ type: \"int32\", data: [d] }, { type: \"int32\", data: [f] }, { type: \"int32\", data: [l] }], L, B, z = [P, d, f], U = A().get(\"WEBGPU_MATMUL_PROGRAM_TYPE\");\n if (U < 0) {\n let q = A().getNumber(\"WEBGPU_THRESHOLD_TO_INCREASE_WORKGROUPS_FOR_MATMUL\"), Y = q > 0 ? q : n.thresholdToIncreaseWorkgroups, J = P * Math.ceil(d / 32) * Math.ceil(f / 32);\n J <= Y || d <= 8 && J <= Y * 2 ? P * d * f <= 128 ? U = Lo.MatMulReduceProgram : P === 1 && m >= 2e3 ? U = Lo.MatMulSplitKProgram : U = Lo.MatMulSmallOutputSizeProgram : U = Lo.MatMulPackedProgram;\n }\n switch (U) {\n case Lo.MatMulReduceProgram:\n L = new Yg(z, e, o, s, p, a);\n break;\n case Lo.MatMulSplitKProgram: {\n if (B = kt({ backend: n, attrs: { shape: z, value: 0, dtype: r.dtype } }), L = new Zg(z, m, e, o), s || p) {\n B = n.runWebGPUProgram(L, O, r.dtype, M, B);\n let Y = new Jg(B.shape, s, p, a), J = null, re = [B];\n s && re.push(s), a && re.push(a), p === \"leakyrelu\" && (J = [{ type: \"float32\", data: [i] }], Y.uniforms += \" alpha : f32,\");\n let ne = n.runWebGPUProgram(Y, re, B.dtype, J);\n D.push(B);\n let ee = pe({ inputs: { x: ne }, backend: n, attrs: { shape: S } });\n D.push(ne);\n for (let oe of D)\n n.disposeData(oe.dataId);\n return ee;\n }\n break;\n }\n case Lo.MatMulSmallOutputSizeProgram:\n L = new Qg(k, _, z, e, o, s, p, a);\n break;\n case Lo.MatMulPackedProgram:\n let q = n.adapterInfo.isIntel();\n L = new Xg(k, z, e, o, s, p, a, q);\n break;\n default:\n throw new Error(`Unsupported MatMulProgramType ${U}.`);\n }\n s && O.push(s), a && O.push(a), p === \"leakyrelu\" && (M.push({ type: \"float32\", data: [i] }), L.uniforms += \" alpha : f32,\"), B = n.runWebGPUProgram(L, O, r.dtype, M, B);\n let j = pe({ inputs: { x: B }, backend: n, attrs: { shape: S } });\n D.push(B);\n for (let q of D)\n n.disposeData(q.dataId);\n return j;\n}\nfunction Wie(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s, bias: a, preluActivationWeights: i } = t8, { transposeA: p, transposeB: u, activation: c, leakyreluAlpha: l } = o;\n return Op({ a: n, b: s, transposeA: p, transposeB: u, backend: e, bias: a, preluActivationWeights: i, leakyreluAlpha: l, activation: c });\n}\nvar rz = { kernelName: Io, backendName: \"webgpu\", kernelFunc: Wie };\nvar gm = class {\n constructor(t8, e, o) {\n this.variableNames = [\"AReal\", \"AImag\", \"BReal\", \"BImag\"], this.workgroupSize = [128, 1, 1], this.size = true, this.outputShape = w.assertAndGetBroadcastShape(e, o), this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = `binaryOpComplex_${t8}`, this.op = t8;\n }\n getUserCode() {\n return `\n fn binaryOpComplex(\n areal : f32, aimag : f32, breal : f32, bimag : f32) -> f32 {\n ${Qc(this.op, false)}\n }\n\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let areal = getARealByOutputIndex(index);\n let aimag = getAImagByOutputIndex(index);\n let breal = getBRealByOutputIndex(index);\n let bimag = getBImagByOutputIndex(index);\n setOutputAtIndex(index, binaryOpComplex(areal, aimag, breal, bimag));\n }\n }\n `;\n }\n};\nvar ki = class {\n constructor(t8, e, o) {\n if (this.size = true, this.variableNames = [\"A\", \"B\"], this.outputShape = w.assertAndGetBroadcastShape(e, o), this.dispatchLayout = X(this.outputShape), this.op = t8, this.useSharedMemoryWithA = e.length <= 1 && o.length > 1 && e[0] < 128, this.useSharedMemoryWithB = o.length <= 1 && e.length > 1 && o[0] < 128, this.useSharedMemoryWithA || this.useSharedMemoryWithB)\n this.outputComponent = 1, this.variableComponents = [1, 1], this.lastDimensionSize = this.useSharedMemoryWithB ? o[0] : e[0], this.shaderKey = `binary_${t8}_${this.lastDimensionSize}`, this.type = \"shared\", this.workgroupSize = [256, 1, 1];\n else {\n let n = e.length > 0 && e[e.length - 1] % 4 === 0, s = o.length > 0 && o[o.length - 1] % 4 === 0;\n n && s ? (this.outputComponent = 4, this.variableComponents = [4, 4]) : n && (y.isScalarShape(o) || o[o.length - 1] === 1) || s && (y.isScalarShape(e) || e[e.length - 1] === 1) ? (this.outputComponent = 4, this.variableComponents = n ? [4, 1] : [1, 4]) : (this.outputComponent = 1, this.variableComponents = [1, 1]), this.type = \"nonshared\", this.shaderKey = `binary_${t8}_${this.variableComponents}`, this.workgroupSize = [128, 1, 1];\n }\n this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.outputComponent, 1, 1]);\n }\n getUserCode() {\n let t8, e = this.outputComponent === 4 ? \"vec4\" : \"f32\", o = `\n fn binaryOperation(a : ${e}, b : ${e}) -> ${e} {\n ${Qc(this.op, this.outputComponent === 4)}\n };\n `;\n if (this.type === \"shared\") {\n let n = this.lastDimensionSize > 1 ? `coords[${this.outputShape.length - 1}]` : \"0\", s = this.useSharedMemoryWithB ? `let a = getAByOutputIndex(index);\n let b = sharedBuf[${n}];` : `let a = sharedBuf[${n}];\n let b = getBByOutputIndex(index);`;\n t8 = `\n ${o}\n var sharedBuf : array;\n ${G(\"index\")} {\n // Fill in the shared memory buffer.\n let localIndex = i32(localId.x);\n if(localIndex < ${this.lastDimensionSize}) {\n sharedBuf[localIndex] = f32(${this.useSharedMemoryWithB ? \"B\" : \"A\"}[localIndex]);\n }\n workgroupBarrier();\n\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n ${s}\n setOutputAtIndex(index, binaryOperation(a, b));\n }\n }\n `;\n } else\n t8 = `\n ${o}\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index * ${this.outputComponent});\n let a = ${e}(getAByOutputCoords(coords));\n let b = ${e}(getBByOutputCoords(coords));\n setOutputAtIndex(index, binaryOperation(a, b));\n }\n }\n `;\n return t8;\n }\n};\nfunction Ft(r) {\n let { inputs: t8 } = r, { x: e } = t8;\n return r.backend.incRef(e.dataId), { dataId: e.dataId, shape: e.shape, dtype: e.dtype };\n}\nvar oz = { kernelName: wo, backendName: \"webgpu\", kernelFunc: Ft };\nfunction yo(r) {\n let { inputs: t8, backend: e } = r, { real: o, imag: n } = t8, s = e.makeTensorInfo(o.shape, \"complex64\"), a = e.tensorMap.get(s.dataId), i = Ft({ inputs: { x: o }, backend: e }), p = Ft({ inputs: { x: n }, backend: e });\n return a.complexTensorInfos = { real: i, imag: p }, s;\n}\nvar nz = { kernelName: Fi, backendName: \"webgpu\", kernelFunc: yo };\nvar Jr = class {\n constructor(t8, e, o = \"\") {\n this.variableNames = [\"A\"], this.size = true;\n let n = 128;\n this.workgroupSize = [n, 1, 1], this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.op = e, o !== \"\" && (this.uniforms = o), this.shaderKey = `unary_${e}`;\n }\n getUserCode() {\n return `\n fn unaryOperation(a : f32) -> f32 {\n ${vi(this.op, false)}\n }\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let a = getAByOutputIndex(index);\n setOutputAtIndex(index, unaryOperation(a));\n }\n }\n `;\n }\n};\nfunction ye({ opType: r, cpuKernelImpl: t8, dtype: e }) {\n return ({ inputs: o, backend: n }) => {\n let { x: s } = o, a = n, i = e || s.dtype;\n if (a.shouldExecuteOnCPU([s]) && t8 != null) {\n let u = a.tensorMap.get(s.dataId), c = t8(u.values, i);\n return a.makeTensorInfo(s.shape, i, c);\n }\n let p = new Jr(s.shape, r);\n return a.runWebGPUProgram(p, [s], i);\n };\n}\nfunction et({ opType: r, cpuKernelImpl: t8, supportsComplex: e = false, dtype: o }) {\n return ({ inputs: n, backend: s }) => {\n let { a, b: i } = n, p = s;\n if (e && a.dtype === \"complex64\") {\n let l = p.tensorMap.get(a.dataId), m = p.tensorMap.get(i.dataId), d, f;\n if (r !== fe.MUL)\n [d, f] = [[l.complexTensorInfos.real, m.complexTensorInfos.real], [l.complexTensorInfos.imag, m.complexTensorInfos.imag]].map((g) => {\n let [x, b] = g, C = { dataId: x.dataId, dtype: x.dtype, shape: a.shape }, S = { dataId: b.dataId, dtype: b.dtype, shape: i.shape }, k = new ki(r, a.shape, i.shape);\n return p.runWebGPUProgram(k, [C, S], dt(x.dtype, b.dtype));\n });\n else {\n let g = new gm(fe.COMPLEX_MULTIPLY_REAL, a.shape, i.shape), x = new gm(fe.COMPLEX_MULTIPLY_IMAG, a.shape, i.shape), b = [{ dataId: l.complexTensorInfos.real.dataId, dtype: l.complexTensorInfos.real.dtype, shape: a.shape }, { dataId: l.complexTensorInfos.imag.dataId, dtype: l.complexTensorInfos.imag.dtype, shape: a.shape }, { dataId: m.complexTensorInfos.real.dataId, dtype: m.complexTensorInfos.real.dtype, shape: i.shape }, { dataId: m.complexTensorInfos.imag.dataId, dtype: m.complexTensorInfos.imag.dtype, shape: i.shape }];\n d = p.runWebGPUProgram(g, b, \"float32\"), f = p.runWebGPUProgram(x, b, \"float32\");\n }\n let h = yo({ inputs: { real: d, imag: f }, backend: p });\n return p.disposeData(d.dataId), p.disposeData(f.dataId), h;\n }\n let u = o || dt(a.dtype, i.dtype);\n if ((a.dtype === \"string\" || i.dtype === \"string\" || p.shouldExecuteOnCPU([a, i])) && t8 != null) {\n let l = p.tensorMap.get(a.dataId).values, m = p.tensorMap.get(i.dataId).values, d = a.dtype === \"string\" ? w.fromUint8ToStringArray(l) : l, f = a.dtype === \"string\" ? w.fromUint8ToStringArray(m) : m, [h, g] = t8(a.shape, i.shape, d, f, u);\n return p.makeTensorInfo(g, u, h);\n }\n let c = new ki(r, a.shape, i.shape);\n return p.runWebGPUProgram(c, [a, i], u);\n };\n}\nvar { addImpl: sz, castImpl: az, ceilImpl: iz, concatImpl: uz, equalImpl: pz, expImpl: cz, expm1Impl: lz, floorImpl: mz, floorDivImpl: dz, gatherNdImpl: fz, gatherV2Impl: hz, greaterEqualImpl: gz, greaterImpl: xz, lessEqualImpl: yz, lessImpl: bz, logImpl: Cz, maxImpl: wz, maximumImpl: Sz, minimumImpl: Iz, multiplyImpl: vz, negImpl: kz, notEqualImpl: Nz, prodImpl: Tz, rangeImpl: _z, rsqrtImpl: $z, scatterImpl: Ez, simpleAbsImpl: Rz, sliceImpl: Dz, stridedSliceImpl: Az, stringNGramsImpl: Fz, subImpl: Pz, tileImpl: Oz, topKImpl: Mz, transposeImpl: Lz, uniqueImpl: HPt } = Tc;\nvar Uie = ye({ opType: Z.ABS, cpuKernelImpl: Rz });\nvar Bz = { kernelName: Xs, backendName: \"webgpu\", kernelFunc: Uie };\nvar Gie = ye({ opType: Z.ACOS });\nvar zz = { kernelName: Wo, backendName: \"webgpu\", kernelFunc: Gie };\nvar Hie = ye({ opType: Z.ACOSH });\nvar Vz = { kernelName: Uo, backendName: \"webgpu\", kernelFunc: Hie };\nvar Kie = et({ opType: fe.ADD, cpuKernelImpl: sz, supportsComplex: true });\nvar Wz = { kernelName: uo, backendName: \"webgpu\", kernelFunc: Kie };\nvar tx = class {\n constructor(t8) {\n this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8[0], this.variableNames = t8.map((e, o) => `T${o}`), this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]), this.shaderKey = \"addN\";\n }\n getUserCode() {\n let t8 = [];\n this.variableNames.forEach((n) => {\n t8.push(`let v${n} = get${n}ByOutputCoords(coords);`);\n });\n let e = this.variableNames.map((n) => `v${n}`).join(\" + \");\n return `\n ${G(\"index\")} {\n for (var i = 0; i < ${this.workPerThread}; i = i + 1) {\n let flatIndex = index * ${this.workPerThread} + i;\n if (flatIndex < uniforms.size) {\n let coords = getCoordsFromIndex(flatIndex);\n ${t8.join(`\n `)}\n setOutputAtIndex(flatIndex, ${e});\n }\n }\n }\n `;\n }\n};\nfunction qie(r) {\n let { inputs: t8, backend: e } = r, o = t8;\n if (o.length === 1)\n return Ft({ inputs: { x: o[0] }, backend: e });\n let n = o.map((i) => i.dtype).reduce((i, p) => dt(i, p)), s = o.map((i) => i.shape), a = new tx(s);\n return e.runWebGPUProgram(a, o, n);\n}\nvar Uz = { kernelName: Go, backendName: \"webgpu\", kernelFunc: qie };\nvar rx = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.workgroupSize = [16, 16, 1];\n let o = new Array(t8.length);\n for (let n = 0; n < o.length; n++)\n o[n] = t8[e[n]];\n this.outputShape = o, this.dispatchLayout = { x: [0], y: [1] }, this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [1, 1, 1]), this.shaderKey = \"transposeShared\";\n }\n getUserCode() {\n y.assert(this.workgroupSize[0] === this.workgroupSize[1], () => `Must be a square tile, current tile shape is ${this.workgroupSize[0]} x ${this.workgroupSize[1]}`);\n let t8 = this.workgroupSize[0];\n return `\n var tile : array, ${this.workgroupSize[0]}>;\n ${G()} {\n var x = i32(workgroupId.x) * ${t8} + i32(localId.x);\n var y = i32(workgroupId.y) * ${t8} + i32(localId.y);\n let width = uniforms.outShape[0];\n let height = uniforms.outShape[1];\n if (x < width && y < height) {\n tile[localId.y][localId.x] = f32(A[y * width + x]);\n }\n workgroupBarrier();\n\n x = i32(workgroupId.y) * ${t8} + i32(localId.x);\n y = i32(workgroupId.x) * ${t8} + i32(localId.y);\n if (x < height && y < width) {\n setOutputAtIndex((y * height + x), tile[localId.x]\n [localId.y]);\n }\n }\n `;\n }\n};\nvar ox = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.size = true;\n let o = new Array(t8.length);\n for (let n = 0; n < o.length; n++)\n o[n] = t8[e[n]];\n this.outputShape = o, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]), this.newDim = e, this.shaderKey = `transpose_${e}`;\n }\n getUserCode() {\n let t8 = ht(this.outputShape.length), e = Zv(this.newDim);\n return `\n ${G(\"index\")} {\n for(var i = 0; i < ${this.workPerThread}; i = i + 1) {\n let flatIndex = index * ${this.workPerThread} + i;\n if(flatIndex < uniforms.size) {\n let coords = getCoordsFromIndex(flatIndex);\n setOutputAtIndex(flatIndex, A[getIndexFromCoords${this.outputShape.length}D(\n ${t8}(${e}), uniforms.aShape)]);\n }\n }\n }\n `;\n }\n};\nfunction Zv(r) {\n let t8 = r.length;\n if (t8 > 6)\n throw Error(`Transpose for rank ${t8} is not yet supported`);\n let e = new Array(t8);\n for (let o = 0; o < r.length; o++)\n e[r[o]] = `coords.${Mo(o)}`;\n return e.join();\n}\nfunction yr(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { perm: s } = o, a = e, i = n.shape.length, p = new Array(i);\n for (let c = 0; c < p.length; c++)\n p[c] = n.shape[s[c]];\n if (e.shouldExecuteOnCPU([n])) {\n let l = a.tensorMap.get(n.dataId).values, m = Lz(l, n.shape, n.dtype, s, p);\n return e.makeTensorInfo(p, n.dtype, m);\n }\n if (n.shape.length === 2 && y.arraysEqual(s, [1, 0])) {\n let c = new rx(n.shape, s);\n return a.runWebGPUProgram(c, [n], n.dtype);\n }\n let u = new ox(n.shape, s);\n return a.runWebGPUProgram(u, [n], n.dtype);\n}\nvar Gz = { kernelName: co, backendName: \"webgpu\", kernelFunc: yr };\nvar nx = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.uniforms = \"reduceSize : i32,\", this.size = true, this.inputShape = [t8.batchSize, t8.inSize];\n let [n] = w.computeOutAndReduceShapes(this.inputShape, [1]);\n this.outputShape = n.length === 0 ? [1] : n, t8.inSize >= 32768 && o >= 512 ? this.workgroupSize = [512, 1, 1] : t8.inSize >= 4096 ? this.workgroupSize = [256, 1, 1] : this.workgroupSize = [64, 1, 1], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, [1, 1, 1]), this.reduceType = e, this.shaderKey = `reduce_${e}`;\n }\n getUserCode() {\n let t8 = \"\", e = \"0.0\", o = this.workgroupSize[0];\n this.reduceType === \"min\" || this.reduceType === \"max\" ? (t8 = `\n if (isnan(candidate)) {\n bestValue = uniforms.NAN;\n } else if (!isnan(bestValue) && candidate ${this.reduceType === \"min\" ? \"<\" : \">\"} bestValue)\n { bestValue = candidate; }`, e = \"f32(x[offset])\") : this.reduceType === \"sum\" || this.reduceType === \"mean\" ? t8 = \" bestValue = bestValue + candidate; \" : this.reduceType === \"prod\" ? (t8 = \" bestValue = bestValue * candidate; \", e = \"1.0\") : this.reduceType === \"all\" ? (t8 = \" bestValue = f32(bestValue >= 1.0 && candidate >= 1.0); \", e = \"1.0\") : this.reduceType === \"any\" && (t8 = \" bestValue = f32(bestValue >= 1.0 || candidate >= 1.0); \", e = \"0.0\");\n let n = this.reduceType === \"mean\" ? \"setOutputAtIndex(outputIndex, bestValue / f32(uniforms.reduceSize));\" : \"setOutputAtIndex(outputIndex, bestValue);\";\n return `\n fn DIV_CEIL(a : u32, b : u32) -> u32 {\n return ((a - 1u) / b + 1u);\n }\n\n ${`\n var xBestValues : array;\n `}\n fn getOffset(outputIndex : i32) -> i32 {\n let outputCoords = getCoordsFromIndex(outputIndex);\n let offset = ${this.outputShape.length === 1 ? \"outputCoords\" : \"outputCoords[0]\"} * uniforms.reduceSize;\n return offset;\n }\n ${G(\"index\")} {\n let outputIndex = index / ${o};\n let offset = getOffset(outputIndex);\n var bestValue = ${e};\n let Length = uniforms.reduceSize;\n let WorkPerThread = DIV_CEIL(u32(Length), ${o}u);\n for (var k = i32(localId.x); k < Length && outputIndex < uniforms.size;\n k = k + ${o}) {\n let candidate = f32(x[offset + k]);\n ${t8}\n }\n xBestValues[localId.x] = bestValue;\n workgroupBarrier();\n\n var reduceSize = min(u32(Length), ${o}u);\n for (var currentSize = reduceSize / 2u; reduceSize > 1u;\n currentSize = reduceSize / 2u) {\n let interval = DIV_CEIL(reduceSize, 2u);\n if (localId.x < currentSize) {\n let candidate = xBestValues[localId.x + interval];\n ${t8}\n xBestValues[localId.x] = bestValue;\n }\n reduceSize = interval;\n workgroupBarrier();\n }\n\n if (localId.x == 0u && outputIndex < uniforms.size) {\n ${n}\n }\n }\n `;\n }\n};\nvar jie = { mean: \"float32\", all: \"bool\", any: \"bool\" };\nfunction eo(r, t8, e, o, n) {\n let s = r.shape.length, a = [], i = y.parseAxisParam(t8, r.shape), p = i, u = w.getAxesPermutation(p, s), c = r;\n u != null && (c = yr({ inputs: { x: r }, attrs: { perm: u }, backend: n }), p = w.getInnerMostAxes(p.length, s), a.push(c)), w.assertAxesAreInnerMostDims(o, p, s);\n let [l, m] = w.computeOutAndReduceShapes(c.shape, p), d = l;\n e && (d = w.expandShapeToKeepDim(l, i));\n let f;\n if ((o === \"max\" || o === \"prod\") && n.shouldExecuteOnCPU([c])) {\n let h = n.tensorMap.get(c.dataId).values;\n switch (o) {\n case \"max\":\n let g = wz(h, y.sizeFromShape(m), d, r.dtype);\n f = n.makeTensorInfo(d, r.dtype, g);\n break;\n case \"prod\":\n let { outVals: x, outShape: b, outDtype: C } = Tz(c.shape, c.dtype, h, p);\n f = n.makeTensorInfo(b, C, x);\n break;\n default:\n throw new Error(`${o} CPU implementation is not yet supported.`);\n }\n } else {\n let h = y.sizeFromShape(m), x = y.sizeFromShape(c.shape) / h, b = { windowSize: h, inSize: h, batchSize: x, outSize: 1 }, C = jie[o] || ni(r.dtype), S = [{ type: \"int32\", data: [h] }], k = new nx(b, o, n.device.limits.maxComputeWorkgroupSizeX), _ = n.runWebGPUProgram(k, [c], C, S);\n a.push(_), f = pe({ inputs: { x: _ }, attrs: { shape: d }, backend: n });\n }\n return a.forEach((h) => n.disposeData(h.dataId)), f;\n}\nfunction Xie(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { keepDims: s, axis: a } = o;\n return eo(n, a, s, \"all\", e);\n}\nvar Hz = { kernelName: Ho, backendName: \"webgpu\", kernelFunc: Xie };\nfunction Yie(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { keepDims: s, axis: a } = o;\n return eo(n, a, s, \"any\", e);\n}\nvar Kz = { kernelName: Ko, backendName: \"webgpu\", kernelFunc: Yie };\nvar Zc = class {\n constructor(t8, e, o) {\n this.workgroupSize = [64, 1, 1], this.variableNames = [\"x\"], this.uniforms = \"infinityValue : f32,\", this.size = true;\n let n = [e];\n this.op = o === \"min\" ? \"<\" : \">\";\n let [s, a] = w.computeOutAndReduceShapes(t8, n);\n this.outputShape = s.length === 0 ? [1] : s, this.dispatchLayout = X(this.outputShape), y.sizeFromShape(a) < 32 ? (this.type = \"plain\", this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize)) : (this.type = \"shared\", this.dispatch = H(this.dispatchLayout, this.outputShape, [1, 1, 1])), this.inputShape = t8, this.shaderKey = `argMinMax_${this.op}_${this.type}`;\n }\n getUserCode() {\n let t8 = this.workgroupSize[0], e = () => this.inputShape.length === 1 ? \"uniforms.xShape\" : `uniforms.xShape.${Mo(this.inputShape.length - 1)}`, o = () => {\n let n = \"\";\n if (this.outputShape.length === 1)\n this.inputShape.length !== 1 && (n += \"outputCoords,\");\n else\n for (let s = 0; s < this.outputShape.length; s++)\n n += `outputCoords.${Mo(s)},`;\n return n;\n };\n return this.type === \"shared\" ? `\n fn DIV_CEIL(a : u32, b : u32) -> u32 {\n return ((a - 1u) / b + 1u);\n }\n\n ${`\n var xBestIndices : array;\n var xBestValues : array;\n `}\n\n ${G(\"index\")} {\n let outputIndex = index / ${t8};\n let reduceLength = ${e()};\n\n var bestIndex = i32(localId.x);\n var bestValue = uniforms.infinityValue;\n let outputCoords = getCoordsFromIndex(outputIndex);\n for (var k = i32(localId.x); k < reduceLength && outputIndex < uniforms.size;\n k = k + ${t8}) {\n let candidate = getX(${o()} k);\n if (!isnan(candidate) && candidate ${this.op} bestValue) {\n bestValue = candidate;\n bestIndex = k;\n }\n }\n xBestValues[localId.x] = bestValue;\n xBestIndices[localId.x] = bestIndex;\n workgroupBarrier();\n\n var reduceSize = min(u32(reduceLength), ${t8}u);\n for (var currentSize = reduceSize / 2u; reduceSize > 1u;\n currentSize = reduceSize / 2u) {\n let interval = DIV_CEIL(reduceSize, 2u);\n if (localId.x < currentSize) {\n let candidate = xBestValues[localId.x + interval];\n if (candidate ${this.op} bestValue) {\n bestValue = candidate;\n xBestValues[localId.x] = bestValue;\n xBestIndices[localId.x] = xBestIndices[localId.x + interval];\n }\n }\n reduceSize = interval;\n workgroupBarrier();\n }\n\n if (localId.x == 0u && outputIndex < uniforms.size) {\n setOutputAtIndexI32(outputIndex, xBestIndices[localId.x]);\n }\n }\n ` : `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let outputCoords = getCoordsFromIndex(index);\n var bestIndex = 0;\n var bestValue = getX(${o()} 0);\n let reduceLength = ${e()};\n for (var i = 1; i < reduceLength; i++) {\n let candidate = getX(${o()} i);\n if (candidate ${this.op} bestValue) {\n bestValue = candidate;\n bestIndex = i;\n }\n }\n setOutputAtIndexI32(index, bestIndex);\n }\n }\n `;\n }\n};\nfunction Qie(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o, a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = yr({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), w.assertAxesAreInnerMostDims(\"argMax\", [a[0]], p.shape.length);\n let c = new Zc(p.shape, a[0], \"max\"), l = [{ type: \"float32\", data: [Number.NEGATIVE_INFINITY] }], m = e.runWebGPUProgram(c, [p], \"int32\", l);\n return u.forEach((d) => e.disposeData(d.dataId)), m;\n}\nvar qz = { kernelName: Ys, backendName: \"webgpu\", kernelFunc: Qie };\nfunction Zie(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s } = o, a = y.parseAxisParam(s, n.shape), i = w.getAxesPermutation(a, n.shape.length), p = n, u = [];\n i != null && (p = yr({ inputs: { x: n }, backend: e, attrs: { perm: i } }), u.push(p), a = w.getInnerMostAxes(a.length, p.shape.length)), w.assertAxesAreInnerMostDims(\"argMin\", [a[0]], p.shape.length);\n let c = new Zc(p.shape, a[0], \"min\"), l = [{ type: \"float32\", data: [Number.POSITIVE_INFINITY] }], m = e.runWebGPUProgram(c, [p], \"int32\", l);\n return u.forEach((d) => e.disposeData(d.dataId)), m;\n}\nvar jz = { kernelName: Qs, backendName: \"webgpu\", kernelFunc: Zie };\nvar Jie = ye({ opType: Z.ASIN });\nvar Xz = { kernelName: qo, backendName: \"webgpu\", kernelFunc: Jie };\nvar eue = ye({ opType: Z.ASINH });\nvar Yz = { kernelName: jo, backendName: \"webgpu\", kernelFunc: eue };\nvar tue = ye({ opType: Z.ATAN });\nvar Qz = { kernelName: Xo, backendName: \"webgpu\", kernelFunc: tue };\nvar rue = et({ opType: fe.ATAN2 });\nvar Zz = { kernelName: Qo, backendName: \"webgpu\", kernelFunc: rue };\nvar oue = ye({ opType: Z.ATANH });\nvar Jz = { kernelName: Yo, backendName: \"webgpu\", kernelFunc: oue };\nvar sx = class {\n constructor(t8) {\n this.variableNames = [\"x\"], this.uniforms = \"strides : vec2,\", this.workgroupSize = [256, 1, 1], this.size = true, this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"poolWithFilterSizeEqualsOne\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d = coords[3];\n\n let xRCCorner = coords.yz * uniforms.strides;\n let xRCorner = xRCCorner.x;\n let xCCorner = xRCCorner.y;\n\n let value = getX(batch, xRCorner, xCCorner, d);\n setOutputAtIndex(index, value);\n }\n }\n `;\n }\n};\nvar za = class {\n constructor(t8, e, o = false, n = false, s = false) {\n if (this.variableNames = [\"x\"], this.uniforms = \"strides : vec2, pads : vec2, dilations : vec2, convDims : vec2, filterDims : vec2,\", this.workgroupSize = [128, 1, 1], this.size = true, e === \"avg\" && o)\n throw new Error(\"Cannot compute positions for average pool.\");\n this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.poolType = e, this.computePositions = o, this.flattenPositions = n, this.includeBatchIndex = s, this.shaderKey = `pool2D_${e}_${o}_${n}_${s}`;\n }\n getUserCode() {\n let t8;\n this.poolType === \"avg\" ? t8 = \"resultValue = resultValue + value; count = count + 1.0;\" : this.computePositions ? t8 = `let currMaxValue = mix(value, maxValue, maxValueFound);\n if (value >= currMaxValue) {\n maxValue = value;\n maxValueFound = 1.0;\n maxPosition = ${this.flattenPositions ? this.includeBatchIndex ? \"((batch * uniforms.xShape[1] + xR) * uniforms.xShape[2] + xC) * uniforms.xShape[3] + d\" : \"(xR * uniforms.xShape[2] + xC) * uniforms.xShape[3] + d\" : \"wR * uniforms.filterDims.y + wC\"};\n }` : t8 = \"resultValue = max(value, resultValue);\";\n let e = \"resultValue\";\n return this.poolType === \"avg\" && (e = \"resultValue / max(count, 1.0)\"), `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d = coords[3];\n let xRCCorner = vec2(coords.yz) * uniforms.strides - uniforms.pads;\n let xRCorner = xRCCorner.x;\n let xCCorner = xRCCorner.y;\n\n ${this.computePositions ? `var maxValue = 0.0;\n var maxValueFound = 0.0;\n var maxPosition = 0;` : `var resultValue = ${this.poolType === \"avg\" ? \"0.0\" : \"-1.0 / pow(10.0, -20.0)\"};`}\n\n var count = 0.0;\n for (var wR = 0; wR < uniforms.filterDims.x; wR = wR + uniforms.dilations.x) {\n let xR = xRCorner + wR;\n\n if (xR < 0 || xR >= uniforms.convDims.x) {\n continue;\n }\n\n for (var wC = 0; wC < uniforms.filterDims.y; wC = wC + uniforms.dilations.y) {\n let xC = xCCorner + wC;\n if (xC < 0 || xC >= uniforms.convDims.y) {\n continue;\n }\n\n let value = getX(batch, xR, xC, d);\n ${t8}\n }\n }\n\n ${this.computePositions ? \"setOutputAtIndexI32(index, maxPosition);\" : `setOutputAtIndex(index, ${e});`}\n }\n }\n `;\n }\n};\nvar _u = class {\n constructor(t8, e, o = false, n = false, s = false) {\n if (this.variableNames = [\"x\"], this.uniforms = \"strides : vec3, pads : vec3, convDims : vec3, filterDims : vec3,\", this.workgroupSize = [128, 1, 1], this.size = true, e === \"avg\" && o)\n throw new Error(\"Cannot compute positions for average pool.\");\n this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.poolType = e, this.computePositions = o, this.flattenPositions = n, this.includeBatchIndex = s, this.shaderKey = `pool3D_${e}_${o}_${n}_${s}`;\n }\n getUserCode() {\n let t8;\n this.poolType === \"avg\" ? t8 = \"resultValue += value; count += 1.0;\" : this.computePositions ? t8 = `let currMaxValue = mix(value, maxValue, maxValueFound);\n if (value >= currMaxValue) {\n maxValue = value;\n maxValueFound = 1.0;\n maxPosition = ${this.flattenPositions ? this.includeBatchIndex ? \"(((batch * uniforms.xShape.y + xD) * uniforms.xShape.z + xR) * uniforms.xShape.w + xC) * uniforms.xShape.u + ch\" : \"((xD * uniforms.xShape.z + xR) * uniforms.xShape.w + xC) * uniforms.xShape.u + ch\" : \"wD * uniforms.filterDims.y * uniforms.filterDims.y + wR * uniforms.filterDims.z + wC\"};\n }` : t8 = \"resultValue = max(value, resultValue);\";\n let e = \"resultValue\";\n return this.poolType === \"avg\" && (e = \"resultValue / max(count, 1.0)\"), `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords.x;\n let ch = coords.u;\n\n let xCorner = vec3(coords.y, coords.z, coords.w) * uniforms.strides - uniforms.pads;\n let xDCorner = xCorner.x;\n let xRCorner = xCorner.y;\n let xCCorner = xCorner.z;\n\n ${this.computePositions ? `var maxValue = 0.0;\n var maxValueFound = 0.0;\n var maxPosition = 0;` : `var resultValue = ${this.poolType === \"avg\" ? \"0.0\" : \"-1.0 / pow(10.0, -20.0)\"};`}\n\n var count = 0.0;\n for (var wD = 0; wD < uniforms.filterDims.x; wD++) {\n let xD = xDCorner + wD;\n if (xD < 0 || xD >= uniforms.convDims.x) {\n continue;\n }\n\n for (var wR = 0; wR < uniforms.filterDims.y; wR++) {\n let xR = xRCorner + wR;\n if (xR < 0 || xR >= uniforms.convDims.y) {\n continue;\n }\n\n for (var wC = 0; wC < uniforms.filterDims.z; wC++) {\n let xC = xCCorner + wC;\n if (xC < 0 || xC >= uniforms.convDims.z) {\n continue;\n }\n\n let value = getX(batch, xD, xR, xC, ch);\n ${t8}\n }\n }\n }\n\n ${this.computePositions ? \"setOutputAtIndexI32(index, maxPosition);\" : `setOutputAtIndex(index, ${e});`}\n }\n }\n `;\n }\n};\nfunction Jv(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reductionIndices: s, keepDims: a } = o;\n return eo(n, s, a, \"max\", e);\n}\nvar eV = { kernelName: Vn, backendName: \"webgpu\", kernelFunc: Jv };\nfunction e0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { keepDims: s, axis: a } = o;\n return eo(n, a, s, \"mean\", e);\n}\nvar tV = { kernelName: Gn, backendName: \"webgpu\", kernelFunc: e0 };\nfunction ax(r, t8, e, o) {\n if (t8.filterWidth === 1 && t8.filterHeight === 1 && y.arraysEqual(t8.inShape, t8.outShape))\n return Ft({ inputs: { x: r }, backend: o });\n if (t8.filterWidth === t8.inWidth && t8.filterHeight === t8.inHeight && t8.batchSize === 1 && t8.padInfo.type === \"VALID\") {\n let a = r.shape.length, i = pe({ inputs: { x: r }, backend: o, attrs: { shape: [r.shape[a - 3] * r.shape[a - 2], r.shape[a - 1]] } }), p;\n e === \"avg\" ? p = e0({ inputs: { x: i }, backend: o, attrs: { axis: 0, keepDims: false } }) : (y.assert(e === \"max\", () => `Invalid pool type ${e}`), p = Jv({ inputs: { x: i }, backend: o, attrs: { reductionIndices: 0, keepDims: false } }));\n let u = pe({ inputs: { x: p }, backend: o, attrs: { shape: t8.outShape } });\n return o.disposeData(i.dataId), o.disposeData(p.dataId), u;\n }\n let n, s = [{ type: \"int32\", data: [t8.strideHeight, t8.strideWidth] }];\n return t8.filterHeight === 1 && t8.filterWidth === 1 ? n = new sx(t8) : (e === \"avg\" ? n = new za(t8, \"avg\") : (y.assert(e === \"max\", () => `Invalid pool type ${e}`), n = new za(t8, \"max\")), s.push({ type: \"int32\", data: [t8.padInfo.top, t8.padInfo.left] }, { type: \"int32\", data: [t8.dilationHeight, t8.dilationWidth] }, { type: \"int32\", data: [t8.inHeight, t8.inWidth] }, { type: \"int32\", data: [t8.effectiveFilterHeight, t8.effectiveFilterWidth] })), o.runWebGPUProgram(n, [r], r.dtype, s);\n}\nfunction nue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1, c = w.computePool2DInfo(n.shape, s, a, u, i, p);\n return ax(n, c, \"avg\", e);\n}\nvar rV = { kernelName: Zo, backendName: \"webgpu\", kernelFunc: nue };\nfunction sue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dataFormat: p, dimRoundingMode: u } = o, c = [1, 1, 1], l = w.computePool3DInfo(n.shape, s, a, c, i, u, p), m = new _u(l, \"avg\"), d = [{ type: \"int32\", data: [l.strideDepth, l.strideHeight, l.strideWidth] }, { type: \"int32\", data: [l.padInfo.front, l.padInfo.top, l.padInfo.left] }, { type: \"int32\", data: [l.inDepth, l.inHeight, l.inWidth] }, { type: \"int32\", data: [l.effectiveFilterDepth, l.effectiveFilterHeight, l.effectiveFilterWidth] }];\n return e.runWebGPUProgram(m, [n], n.dtype, d);\n}\nvar oV = { kernelName: Zs, backendName: \"webgpu\", kernelFunc: sue };\nvar ix = class {\n constructor(t8) {\n this.variableNames = [\"dy\"], this.uniforms = `strides : vec2, pads : vec2, dilations : vec2, filterDims : vec2,\n outHeight : i32, outWidth : i32, avgMultiplier : f32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"avgPool2DBackprop\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d = coords[3];\n\n let dyRCCorner = vec2(coords.yz) - uniforms.pads;\n let dyRCorner = dyRCCorner.x;\n let dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n for (var wR = 0; wR < uniforms.filterDims[0]; wR = wR + uniforms.dilations[0]) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[0]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims[1]; wC = wC + uniforms.dilations[1]) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[1]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n let idyC = i32(dyC);\n\n let dyValue = getDy(batch, idyR, idyC, d);\n\n dotProd = dotProd + dyValue * uniforms.avgMultiplier;\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar ux = class {\n constructor(t8) {\n this.variableNames = [\"dy\"], this.uniforms = `strides : vec3, pads : vec3, filterDims : vec3,\n outDepth : i32, outHeight : i32, outWidth : i32, avgMultiplier : f32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"avgPool3DBackprop\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords.x;\n let ch = coords.u;\n\n let dyCorner = vec3(coords.y, coords.z, coords.w) - uniforms.pads;\n let dyDCorner = dyCorner.x;\n let dyRCorner = dyCorner.y;\n let dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n for (var wD = 0; wD < uniforms.filterDims[0]; wD++) {\n let dyD = f32(dyDCorner + wD) / f32(uniforms.strides[0]);\n\n if (dyD < 0.0 || dyD >= f32(uniforms.outDepth) || fract(dyD) > 0.0) {\n continue;\n }\n let idyD = i32(dyD);\n\n for (var wR = 0; wR < uniforms.filterDims[1]; wR++) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[1]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims[2]; wC++) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[2]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n let idyC = i32(dyC);\n\n let dyValue = getDy(batch, idyD, idyR, idyC, ch);\n dotProd += dyValue * uniforms.avgMultiplier;\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nfunction aue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s, { filterSize: i, strides: p, pad: u, dimRoundingMode: c } = o, l = w.computePool3DInfo(a.shape, i, p, 1, u, c), m = new ux(l), d = 1 / (l.filterDepth * l.filterHeight * l.filterWidth), f = [{ type: \"int32\", data: [l.strideDepth, l.strideHeight, l.strideWidth] }, { type: \"int32\", data: [l.effectiveFilterDepth - 1 - l.padInfo.front, l.effectiveFilterHeight - 1 - l.padInfo.top, l.effectiveFilterWidth - 1 - l.padInfo.left] }, { type: \"int32\", data: [l.effectiveFilterDepth, l.effectiveFilterHeight, l.effectiveFilterWidth] }, { type: \"int32\", data: [l.outDepth] }, { type: \"int32\", data: [l.outHeight] }, { type: \"int32\", data: [l.outWidth] }, { type: \"float32\", data: [d] }];\n return e.runWebGPUProgram(m, [n], a.dtype, f);\n}\nvar nV = { kernelName: Ai, backendName: \"webgpu\", kernelFunc: aue };\nfunction iue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s;\n fm([n, s], \"avgPoolGrad\");\n let { filterSize: i, strides: p, pad: u } = o, c = w.computePool2DInfo(a.shape, i, p, 1, u), l = new ix(c), m = 1 / (c.filterHeight * c.filterWidth), d = [{ type: \"int32\", data: [c.strideHeight, c.strideWidth] }, { type: \"int32\", data: [c.effectiveFilterHeight - 1 - c.padInfo.top, c.effectiveFilterWidth - 1 - c.padInfo.left] }, { type: \"int32\", data: [c.dilationHeight, c.dilationWidth] }, { type: \"int32\", data: [c.effectiveFilterHeight, c.effectiveFilterWidth] }, { type: \"int32\", data: [c.outHeight] }, { type: \"int32\", data: [c.outWidth] }, { type: \"float32\", data: [m] }];\n return e.runWebGPUProgram(l, [n], a.dtype, d);\n}\nvar sV = { kernelName: Di, backendName: \"webgpu\", kernelFunc: iue };\nfunction uue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { a: n, b: s } = t8, { transposeA: a, transposeB: i } = o;\n return Op({ a: n, b: s, transposeA: a, transposeB: i, backend: e });\n}\nvar aV = { kernelName: Jo, backendName: \"webgpu\", kernelFunc: uue };\nvar px = class {\n constructor(t8, e) {\n this.variableNames = [\"source\"], this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e, this.rank = e.length, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]), this.start = t8, this.uniforms = `start : ${ht(t8.length)}, `, this.shaderKey = \"slice\";\n }\n getUserCode() {\n let t8 = ht(this.rank), e = pue(this.rank), o;\n return this.start.length === 1 ? o = this.outputShape.map((s, a) => \"sourceLoc = uniforms.start + coords;\") : o = this.outputShape.map((s, a) => `sourceLoc.${t0[a]} = uniforms.start.${Mo(a)} + coords.${t0[a]};`), `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n var sourceLoc : ${t8};\n let coords = getCoordsFromIndex(index);\n ${o.join(`\n`)}\n setOutputAtIndex(index, getSource(${e}));\n }\n }\n `;\n }\n};\nvar t0 = [\"x\", \"y\", \"z\", \"w\", \"u\", \"v\"];\nfunction pue(r) {\n if (r === 1)\n return \"sourceLoc\";\n if (r <= 6)\n return t0.slice(0, r).map((t8) => `sourceLoc.${t8}`).join(\",\");\n throw Error(`Slicing for rank ${r} is not yet supported`);\n}\nfunction Hs(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, size: a } = o, [i, p] = ct.parseSliceParams(n, s, a);\n if (ct.assertParamsValid(n, i, p), e.shouldExecuteOnCPU([n]) || n.dtype === \"string\") {\n let l = e.tensorMap.get(n.dataId), m = Dz(l.values, i, p, n.shape, n.dtype);\n return e.makeTensorInfo(p, n.dtype, m);\n }\n if (y.sizeFromShape(p) === 0)\n return e.makeTensorInfo(p, n.dtype, []);\n let u = new px(i, p), c = [{ type: \"int32\", data: i }];\n return e.runWebGPUProgram(u, [n], n.dtype, c);\n}\nvar iV = { kernelName: ha, backendName: \"webgpu\", kernelFunc: Hs };\nvar cue = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, crops: a } = o;\n y.assert(n.shape.length <= 4, () => \"batchToSpaceND for rank > 4 with a WebGPU backend not implemented yet\");\n let i = s.reduce((b, C) => b * C), p = w.getReshaped(n.shape, s, i), u = w.getPermuted(p.length, s.length), c = w.getReshapedPermuted(n.shape, s, i), l = w.getSliceBeginCoords(a, s.length), m = w.getSliceSize(c, a, s.length), d = [], f = pe({ inputs: { x: n }, backend: e, attrs: { shape: p } }), h = yr({ inputs: { x: f }, backend: e, attrs: { perm: u } }), g = pe({ inputs: { x: h }, backend: e, attrs: { shape: c } }), x = Hs({ inputs: { x: g }, backend: e, attrs: { begin: l, size: m } });\n return d.push(f), d.push(h), d.push(g), d.forEach((b) => e.disposeData(b.dataId)), x;\n};\nvar uV = { kernelName: Js, backendName: \"webgpu\", kernelFunc: cue };\nvar lue = `\n fn bincount_write(index: i32, value: f32) {\n ${Qr(\"&result[index]\", \"value\", \"float32\")}\n }\n`;\nvar mue = `\n fn bincount_write(index: i32, value: f32) {\n atomicStore(&result[index], bitcast(value));\n }\n`;\nvar Jc = class {\n constructor(t8, e, o = false) {\n this.outputShape = [], this.variableNames = [\"x\"], this.uniforms = \"binCountSize : i32,\", this.workgroupSize = [64, 1, 1], this.atomic = true, this.hasWeights = true, this.binaryOutput = false, this.outputShape = t8, this.rank = t8.length, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.binaryOutput = o, o && (this.atomic = false), this.hasWeights = e, this.hasWeights && this.variableNames.push(\"w\"), this.shaderKey = `bincount_${this.hasWeights}_${this.binaryOutput}_${this.rank}`;\n }\n getUserCode() {\n return `\n ${this.binaryOutput ? mue : lue}\n ${G(\"index\")} {\n ${this.rank === 1 ? `if (index < uniforms.xShape) {\n let indexVal = i32(getX(index));\n if (indexVal < uniforms.binCountSize) {\n let value = ${this.binaryOutput ? 1 : this.hasWeights ? \"getW(index)\" : \"1.\"};\n bincount_write(indexVal, value);\n }\n }` : `let coord = getCoordsFromIndex(index);\n if (coordsInBounds2D(coord, uniforms.xShape)) {\n let indexVal = i32(getX(coord[0], coord[1]));\n if (indexVal < uniforms.binCountSize) {\n let value = ${this.binaryOutput ? 1 : this.hasWeights ? \"getW(coord[0], coord[1])\" : \"1.\"};\n bincount_write(coord.x * uniforms.binCountSize + indexVal, value);\n }\n }`}\n }\n `;\n }\n};\nfunction due(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a } = o, i = y.sizeFromShape(n.shape), u = y.sizeFromShape(s.shape) > 0, c = [a], l = s.dtype, m = kt({ backend: e, attrs: { shape: c, value: 0, dtype: l } }), d = new Jc([i], u), f = [{ type: \"int32\", data: [a] }], h = u ? [n, s] : [n];\n return e.runWebGPUProgram(d, h, l, f, m);\n}\nvar pV = { kernelName: en, backendName: \"webgpu\", kernelFunc: due };\nvar cx = class {\n constructor(t8) {\n this.outputShape = [], this.variableNames = [\"s0\", \"s1\"], this.uniforms = \"s0Size : i32, s1Size : i32, \", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"broadcastArgs\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n var s0 = 1.0;\n var s1 = 1.0;\n let indexS0 = index - uniforms.size + uniforms.s0Size;\n let indexS1 = index - uniforms.size + uniforms.s1Size;\n if (indexS0 >= 0) {\n s0 = getS0(indexS0);\n }\n if (indexS1 >= 0) {\n s1 = getS1(indexS1);\n }\n\n if (s0 == 1.0) {\n setOutputAtIndex(index, s1);\n } else if (s1 == 1.0) {\n setOutputAtIndex(index, s0);\n } else if (s0 != s1) {\n setOutputAtIndex(index, uniforms.NAN);\n } else {\n setOutputAtIndex(index, s0);\n }\n }\n }\n `;\n }\n};\nfunction fue(r) {\n let { inputs: t8, backend: e } = r, { s0: o, s1: n } = t8;\n if (e.shouldExecuteOnCPU([o, n])) {\n let c = e.tensorMap.get(o.dataId), l = e.tensorMap.get(n.dataId), m = c.values, d = l.values, f = w.assertAndGetBroadcastShape(Array.from(m), Array.from(d));\n return e.makeTensorInfo([f.length], \"int32\", Int32Array.from(f));\n }\n let s = y.sizeFromShape(o.shape), a = y.sizeFromShape(n.shape), i = Math.max(s, a), p = new cx(i), u = [{ type: \"int32\", data: [s] }, { type: \"int32\", data: [a] }];\n return e.runWebGPUProgram(p, [o, n], \"int32\", u);\n}\nvar cV = { kernelName: ea, backendName: \"webgpu\", kernelFunc: fue };\nvar r0 = et({ opType: fe.NOT_EQUAL, dtype: \"bool\", cpuKernelImpl: Nz });\nvar lV = { kernelName: Qn, backendName: \"webgpu\", kernelFunc: r0 };\nfunction Ni(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.tensorMap.get(o.dataId);\n return Ft({ inputs: { x: n.complexTensorInfos.real }, backend: e });\n}\nvar mV = { kernelName: qi, backendName: \"webgpu\", kernelFunc: Ni };\nfunction dV(r, t8) {\n let e = new Jr(r.shape, Z.TO_INT), o = t8.runWebGPUProgram(e, [r], \"int32\");\n return { dataId: o.dataId, shape: o.shape, dtype: o.dtype };\n}\nfunction o0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dtype: s } = o;\n if (s === \"complex64\") {\n if (n.dtype === \"complex64\")\n return Ft({ inputs: { x: n }, backend: e });\n let a = Gr(n.shape), i = o0({ inputs: { x: n }, backend: e, attrs: { dtype: \"float32\" } }), p = yo({ inputs: { real: i, imag: a }, backend: e });\n return a.dispose(), e.disposeData(i.dataId), p;\n }\n if (n.dtype === \"complex64\") {\n let a = Ni({ inputs: { input: n }, backend: e }), i = o0({ inputs: { x: a }, backend: e, attrs: { dtype: s } });\n return e.disposeData(a.dataId), i;\n }\n if (!y.hasEncodingLoss(n.dtype, s)) {\n let a = Ft({ inputs: { x: n }, backend: e });\n return { dataId: a.dataId, shape: a.shape, dtype: s };\n }\n if (e.shouldExecuteOnCPU([n])) {\n let a = e.tensorMap.get(n.dataId).values, [i, p, u] = az(a, n.shape, n.dtype, s);\n return e.makeTensorInfo(i, p, u);\n }\n if (s === \"int32\")\n return dV(n, e);\n if (s === \"bool\") {\n let a = e.makeTensorInfo([], \"bool\", y.getTypedArrayFromDType(\"bool\", 1)), p = r0({ inputs: { a: n, b: a }, backend: e });\n return e.disposeData(a.dataId), p;\n }\n throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`);\n}\nvar fV = { kernelName: bo, backendName: \"webgpu\", kernelFunc: o0 };\nvar hue = ye({ opType: Z.CEIL, cpuKernelImpl: iz });\nvar hV = { kernelName: tn, backendName: \"webgpu\", kernelFunc: hue };\nvar lx = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.uniforms = \"minVal : f32, maxVal : f32,\", this.workPerThread = 4, this.workgroupSize = [64, 1, 1], this.outputComponent = 4, this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]), this.shaderKey = \"clipVec4\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let value = getAByOutputIndex(index);\n var clampedValue = clamp(\n value, vec4(uniforms.minVal), vec4(uniforms.maxVal));\n clampedValue = select(clampedValue, value, isnanVec4(value));\n setOutputAtIndex(index, clampedValue);\n }\n }\n `;\n }\n};\nvar mx = class {\n constructor(t8) {\n this.variableNames = [\"A\"], this.uniforms = \"minVal : f32, maxVal : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"clip\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let value = getAByOutputIndex(index);\n if (isnan(value)) {\n setOutputAtIndex(index, value);\n return;\n }\n setOutputAtIndex(index, clamp(value, uniforms.minVal, uniforms.maxVal));\n }\n }\n `;\n }\n};\nfunction gue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { clipValueMin: s, clipValueMax: a } = o, i, p = [{ type: \"float32\", data: [s] }, { type: \"float32\", data: [a] }];\n return y.sizeFromShape(n.shape) % 4 === 0 ? i = new lx(n.shape) : i = new mx(n.shape), e.runWebGPUProgram(i, [n], n.dtype, p);\n}\nvar gV = { kernelName: Co, backendName: \"webgpu\", kernelFunc: gue };\nvar dx = class {\n constructor(t8) {\n this.outputShape = [], this.variableNames = [\"real\", \"imag\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"complexAbs\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let re = abs(getRealByOutputIndex(index));\n let im = abs(getImagByOutputIndex(index));\n let mx = max(re, im);\n\n // The length function in wgsl may be not underflow-safe on some GPUs.\n // So the safe solution is to ensure underflow-safety in all cases.\n setOutputAtIndex(index, select(mx * length(vec2(1, min(re, im)/mx)), 0.0, mx == 0.0));\n }\n }\n `;\n }\n};\nfunction xV(r, t8) {\n return { dataId: t8.dataId, dtype: t8.dtype, shape: r.shape };\n}\nfunction xue(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = e.tensorMap.get(o.dataId), s = new dx(o.shape), a = [xV(o, n.complexTensorInfos.real), xV(o, n.complexTensorInfos.imag)];\n return e.runWebGPUProgram(s, a, a[0].dtype);\n}\nvar yV = { kernelName: Pi, backendName: \"webgpu\", kernelFunc: xue };\nvar fx = class {\n constructor(t8) {\n this.uniforms = \"\", this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = w.computeOutShape(t8, 1), this.variableNames = t8.map((e, o) => `T${o}`), this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]), this.offsetLength = t8.length - 1;\n for (let e = 0; e < this.offsetLength; e++)\n this.uniforms += `offset${e} : i32,`;\n this.shaderKey = \"concat\";\n }\n getUserCode() {\n let t8 = [];\n if (this.offsetLength > 0) {\n t8.push(\"if (yC < uniforms.offset0){ setOutputAtCoords(coords.x, coords.y, getT0(yR, yC)); }\");\n for (let s = 1; s < this.offsetLength; s++)\n t8.push(`else if (yC < uniforms.offset${[s]}){ setOutputAtCoords(coords.x, coords.y, getT${s}(yR, yC - uniforms.offset${s - 1})); }`);\n let o = this.offsetLength, n = this.offsetLength - 1;\n t8.push(`else { setOutputAtCoords(coords.x, coords.y, getT${o}(yR, yC - uniforms.offset${n})); }`);\n } else\n t8.push(\"setOutputAtCoords(coords.x, coords.y, getT0(yR, yC));\");\n return `\n ${G(\"index\")} {\n for(var i = 0; i < ${this.workPerThread}; i = i + 1) {\n let flatIndex = index * ${this.workPerThread} + i;\n if(flatIndex < uniforms.size) {\n let coords = getCoordsFromIndex(flatIndex);\n let yR = coords.x;\n let yC = coords.y;\n\n ${t8.join(`\n `)}\n }\n }\n }\n `;\n }\n};\nfunction Mp(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8, n = e.tensorMap.get(o.dataId);\n return Ft({ inputs: { x: n.complexTensorInfos.imag }, backend: e });\n}\nvar bV = { kernelName: Gi, backendName: \"webgpu\", kernelFunc: Mp };\nfunction el(r, t8, e) {\n let o = r[0].dtype;\n if (o === \"complex64\") {\n let f = r.map((C) => Ni({ inputs: { input: C }, backend: e })), h = r.map((C) => Mp({ inputs: { input: C }, backend: e })), g = el(f, t8, e), x = el(h, t8, e), b = yo({ inputs: { real: g, imag: x }, backend: e });\n return f.forEach((C) => e.disposeData(C.dataId)), h.forEach((C) => e.disposeData(C.dataId)), e.disposeData(g.dataId), e.disposeData(x.dataId), b;\n }\n let n = e.shouldExecuteOnCPU(r);\n if (o === \"string\" && (n = true), n) {\n let f = r.map((k) => {\n let E = [-1, y.sizeFromShape(k.shape.slice(t8))];\n return pe({ inputs: { x: k }, backend: e, attrs: { shape: E } });\n }), h = f.map((k) => ({ vals: e.readSync(k.dataId), shape: k.shape })), g = w.computeOutShape(f.map((k) => k.shape), 1), x = f[0].shape[0] === 1, b = uz(h, g, o, x), C = w.computeOutShape(r.map((k) => k.shape), t8), S = e.makeTensorInfo(C, o, b);\n return f.forEach((k) => e.disposeData(k.dataId)), S;\n }\n let s = e.device.limits.maxStorageBuffersPerShaderStage - 1;\n if (r.length > s) {\n let f = [];\n for (let g = 0; g < r.length; g += s) {\n let x = r.slice(g, g + s);\n f.push(el(x, t8, e));\n }\n let h = el(f, t8, e);\n for (let g of f)\n e.disposeData(g.dataId);\n return h;\n }\n let { tensors2D: a, outShape: i } = yue(r, t8, e), p = a.map((f) => f.shape), u = new fx(p), c = [], l = new Array(p.length - 1);\n if (l.length > 0) {\n l[0] = p[0][1], c.push({ type: \"int32\", data: [l[0]] });\n for (let f = 1; f < l.length; f++)\n l[f] = l[f - 1] + p[f][1], c.push({ type: \"int32\", data: [l[f]] });\n }\n let m = e.runWebGPUProgram(u, a, a[0].dtype, c);\n a.forEach((f) => e.disposeData(f.dataId));\n let d = pe({ inputs: { x: m }, backend: e, attrs: { shape: i } });\n return e.disposeData(m.dataId), d;\n}\nfunction yue(r, t8, e) {\n let o = w.computeOutShape(r.map((s) => s.shape), t8);\n return { tensors2D: r.map((s) => pe({ inputs: { x: s }, backend: e, attrs: { shape: [y.sizeFromShape(s.shape.slice(0, t8)), y.sizeFromShape(s.shape.slice(t8))] } })), outShape: o };\n}\nfunction n0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o, s = y.parseAxisParam(n, t8[0].shape)[0], a = t8.map((u) => u.shape);\n w.assertParamsConsistent(a, s);\n let i = w.computeOutShape(t8.map((u) => u.shape), s);\n if (y.sizeFromShape(i) === 0)\n return e.makeTensorInfo(i, t8[0].dtype, []);\n let p = t8.filter((u) => y.sizeFromShape(u.shape) > 0);\n return p.length === 1 ? Ft({ inputs: { x: p[0] }, backend: e }) : el(p, s, e);\n}\nvar CV = { kernelName: ta, backendName: \"webgpu\", kernelFunc: n0 };\nfunction bue(r, t8, e, o, n = false, s = null, a = false, i = 4, p = 4, u = 4) {\n let c = (D) => {\n switch (D) {\n case 1:\n return \"resData = f32(x[xIndex]);\";\n case 3:\n return \"resData = vec3(x[xIndex], x[xIndex + 1], x[xIndex + 2]);\";\n case 4:\n return \"resData = vec4(x[xIndex / 4]);\";\n default:\n throw new Error(`innerElementSize ${D} is not supported.`);\n }\n }, l = (D) => {\n switch (D) {\n case 1:\n return \"return f32(W[row * uniforms.wShape[3] + col]);\";\n case 4:\n return \"return vec4(W[(row * uniforms.wShape[3] + col) / 4]);\";\n default:\n throw new Error(`innerElementSize ${D} is not supported.`);\n }\n }, m = r ? `\n let coord = vec4(batch, xRow, xCol, xCh);\n ` : `\n let coord = vec4(batch, xCh, xRow, xCol);\n `, d = r ? `\n let coords = vec4(\n batch,\n row / outWidth,\n row % outWidth,\n col);\n ` : `\n let coords = vec4(\n batch,\n row,\n col / outWidth,\n col % outWidth);\n `, f = r ? \"uniforms.xShape[1]\" : \"uniforms.xShape[2]\", h = r ? \"uniforms.xShape[2]\" : \"uniforms.xShape[3]\", g = r ? \"row\" : \"col\", x = r ? \"col\" : \"row\", b = `\n let inChannels = uniforms.wShape[2];\n let outWidth = ${r ? \"uniforms.outShape[2]\" : \"uniforms.outShape[3]\"};\n let outRow = ${g} / outWidth;\n let outCol = ${g} % outWidth;\n\n let WRow = ${x} / (uniforms.filterDims[1] * inChannels);\n let WCol = ${x} / inChannels % uniforms.filterDims[1];\n let xRow = outRow * uniforms.strides[0] + uniforms.dilations[0] * WRow - uniforms.pads[0];\n let xCol = outCol * uniforms.strides[1] + uniforms.dilations[1] * WCol - uniforms.pads[1];\n let xCh = ${x} % inChannels;\n var resData = ${Ae(i)}(0.0);\n // The bounds checking is always needed since we use it to pad zero for\n // the 'same' padding type.\n if (xRow >= 0 && xRow < ${f} && xCol >= 0 && xCol < ${h}) {\n ${m}\n let xIndex = getIndexFromCoords4D(coord, uniforms.xShape);\n ${c(i)}\n }\n return resData;`, C = r ? t8 && o ? `\n ${b}` : `\n if (row < uniforms.dimAOuter && col < uniforms.dimInner) {\n ${b}\n }\n return ${Ae(i)}(0.0);` : o && e ? `\n ${b}` : `\n if (row < uniforms.dimInner && col < uniforms.dimBOuter) {\n ${b}\n }\n return ${Ae(i)}(0.0);`, S = `${l(p)}`, k = Ae(u), _ = r ? Ae(i) : Ae(p), E = r ? Ae(p) : Ae(i);\n return `\n ${fr(s, a, u === 4, 4)}\n fn mm_readA(batch: i32, row : i32, col : i32) -> ${_} {\n ${r ? C : S}\n }\n\n fn mm_readB(batch: i32, row : i32, col : i32) -> ${E} {\n ${r ? S : C}\n }\n\n fn mm_write(batch: i32, row : i32, col : i32, valueIn : ${k}) {\n if (row < uniforms.dimAOuter && col < uniforms.dimBOuter)\n {\n var value = valueIn;\n let outWidth = ${r ? \"uniforms.outShape[2]\" : \"uniforms.outShape[3]\"};\n ${d}\n ${Zr(n, s)}\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }`;\n}\nvar hx = class {\n constructor(t8, e, o, n, s = false, a = null, i = false, p = false) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"filterDims : vec2, pads : vec2, strides : vec2, dilations : vec2, dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.outputShape = t8.outShape, this.isChannelsLast = t8.dataFormat === \"channelsLast\", this.isVec4 = ((t8.inChannels % 4 === 0 || t8.inChannels % 3 === 0) && this.isChannelsLast || t8.outWidth % 4 === 0 && !this.isChannelsLast) && t8.outChannels % 4 === 0, this.dispatchLayout = this.isChannelsLast ? { x: [3], y: [1, 2], z: [0] } : { x: [2, 3], y: [1], z: [0] }, this.workgroupSize = lm(this.dispatchLayout, this.outputShape, this.isVec4), this.elementsPerThread = mm(this.dispatchLayout, this.outputShape, this.isVec4), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, this.elementsPerThread), this.isVec4 ? (this.outputComponent = 4, this.isChannelsLast && t8.inChannels % 4 !== 0 ? (this.innerElementSize = 3, this.variableComponents = [1, 4]) : (this.innerElementSize = 4, this.variableComponents = [4, 4]), s && (this.variableNames.push(\"bias\"), this.variableComponents.push(4)), i && (this.variableNames.push(\"preluActivationWeights\"), this.variableComponents.push(4))) : (this.innerElementSize = this.elementsPerThread[0], s && this.variableNames.push(\"bias\"), i && this.variableNames.push(\"preluActivationWeights\")), this.sequentialAccessByThreads = p, this.addBias = s, this.activation = a, this.hasPreluActivationWeights = i, this.tileAOuter = this.workgroupSize[1] * this.elementsPerThread[1], this.tileBOuter = this.workgroupSize[0] * this.elementsPerThread[0], this.tileInner = Math.max(this.workgroupSize[0] * this.innerElementSize, this.workgroupSize[1]), this.fitAOuter = e % this.tileAOuter === 0, this.fitBOuter = o % this.tileBOuter === 0, this.fitInner = n % this.tileInner === 0, this.shaderKey = `conv2DMM_${this.elementsPerThread}_${this.activation}}_${this.fitAOuter}_${this.fitBOuter}_${this.fitInner}_${this.isVec4}_${this.innerElementSize}_${this.isChannelsLast}_${this.sequentialAccessByThreads}`;\n }\n getUserCode() {\n let t8 = this.isVec4 ? Fp(this.elementsPerThread, this.workgroupSize, !this.isChannelsLast, this.tileInner) : Pp(this.elementsPerThread, this.workgroupSize, !this.isChannelsLast, this.tileInner, false, null, this.sequentialAccessByThreads), e = this.isVec4 ? [this.innerElementSize, 4, 4] : [1, 1, 1];\n return `\n ${bue(this.isChannelsLast, this.fitAOuter, this.fitBOuter, this.fitInner, this.addBias, this.activation, this.hasPreluActivationWeights, e[0], e[1], e[2])}\n ${t8}\n `;\n }\n};\nvar gx = class {\n constructor(t8, e = false, o = null, n = false) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"filterDims: vec2, pads: vec2, strides: vec2, dilations: vec2,\", this.workgroupSize = [4, 4, 8], this.outputShape = t8.outShape, this.isChannelsLast = t8.dataFormat === \"channelsLast\", this.dispatchLayout = this.isChannelsLast ? { x: [2], y: [1], z: [0, 3] } : { x: [3], y: [2], z: [0, 1] }, this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.addBias = e, this.activation = o, this.hasPreluActivationWeights = n, e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), this.shaderKey = `conv2dnaive_${this.activation}_${this.isChannelsLast}`;\n }\n getUserCode() {\n return `\n ${fr(this.activation, this.hasPreluActivationWeights, false, 4)}\n fn readInp(batch : i32, row : i32, col : i32, chan : i32) -> f32{\n let coords = vec4(batch, row, col, chan);\n if (coordsInBounds4D(coords, uniforms.xShape)) {\n return getX(batch, row, col, chan);\n } else {\n return 0.0;\n }\n }\n fn readFilt(row : i32, col : i32, xChannel : i32, outChannel : i32) -> f32{\n let coords = vec4(row, col, xChannel, outChannel);\n if(coordsInBounds4D(coords, uniforms.wShape)) {\n return getW(row, col, xChannel, outChannel);\n } else {\n return 0.0;\n }\n }\n fn writeResult(batch : i32, row : i32, col : i32, chan : i32, valueIn : f32) {\n let coords = ${this.isChannelsLast ? \"vec4(batch, row, col, chan);\" : \"vec4(batch, chan, row, col);\"}\n if (coordsInBounds4D(coords, uniforms.outShape)) {\n var value = valueIn;\n ${Zr(this.addBias, this.activation)}\n setOutputAtCoords(coords.x, coords.y, coords.z, coords.w, value);\n }\n }\n ${G(\"index\")} {\n let coords = getOutputCoords();\n let batch = coords[0];\n let outChannel = ${this.isChannelsLast ? \"coords[3];\" : \"coords[1];\"}\n let outRow = ${this.isChannelsLast ? \"coords[1];\" : \"coords[2];\"}\n let outCol = ${this.isChannelsLast ? \"coords[2];\" : \"coords[3];\"}\n var acc : f32 = 0.0;\n for (var row = 0; row < uniforms.filterDims[0]; row = row + 1) {\n for (var col = 0; col < uniforms.filterDims[1]; col = col + 1) {\n let xRow = outRow * uniforms.strides[0] + uniforms.dilations[0] * row - uniforms.pads[0];\n let xCol = outCol * uniforms.strides[1] + uniforms.dilations[1] * col - uniforms.pads[1];\n for (var xChannel = 0; xChannel < ${this.isChannelsLast ? \"uniforms.xShape[3];\" : \"uniforms.xShape[1];\"} xChannel = xChannel + 1) {\n ${this.isChannelsLast ? \"let v = readInp(batch, xRow, xCol, xChannel);\" : \"let v = readInp(batch, xChannel, xRow, xCol);\"}\n let f = readFilt(row, col, xChannel, outChannel);\n acc = acc + v * f;\n }\n }\n }\n writeResult(batch, outRow, outCol, outChannel, acc);\n }\n `;\n }\n};\nvar xx = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"], this.uniforms = `pads : vec2, strides : vec2, dilations : vec2, outWidth : i32, itemsPerBlockRow : i32,\n inChannels : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.isChannelsLast = e, this.shaderKey = `im2col_${this.isChannelsLast}`;\n }\n getUserCode() {\n let t8 = this.isChannelsLast ? 1 : 2, e = this.isChannelsLast ? 2 : 3, o = this.isChannelsLast ? \"coords[1]\" : \"coords[2]\", n = this.isChannelsLast ? \"coords[2]\" : \"coords[1]\", s = this.isChannelsLast ? \"getX(batch, xRow, xCol, ch)\" : \"getX(batch, ch, xRow, xCol)\";\n return `\n ${G(\"index\")} {\n let coords = getCoordsFromIndex(index);\n if(index < uniforms.size) {\n let batch = coords[0];\n let row = ${o};\n let col = ${n};\n let offsetY = (row / uniforms.outWidth) * uniforms.strides[0] - uniforms.pads[0];\n let xRow = offsetY + uniforms.dilations[0] * (col / uniforms.itemsPerBlockRow);\n var value = 0.0;\n if(xRow < uniforms.xShape[${t8}] && xRow >= 0) {\n let offsetX = (row % uniforms.outWidth) * uniforms.strides[1] -\n uniforms.pads[1];\n let xCol = offsetX + uniforms.dilations[1] * ((col %\n uniforms.itemsPerBlockRow) / uniforms.inChannels);\n let ch = col % uniforms.inChannels;\n if(xCol < uniforms.xShape[${e}] && xCol >= 0) {\n value = ${s};\n }\n }\n setOutputAtIndex(index, value);\n }\n }\n `;\n }\n};\nfunction yx(r, t8) {\n let e = r.length;\n return e >= 3 ? t8 ? [...r.slice(0, -3), r[e - 3] * r[e - 2], r[e - 1]] : [...r.slice(0, -3), r[e - 3], r[e - 2] * r[e - 1]] : !t8 && e === 1 && r[0] > 1 ? [r[0], 1] : null;\n}\nfunction Cue({ x: r, filter: t8, convInfo: e, backend: o, bias: n = null, preluActivationWeights: s = null, leakyreluAlpha: a = 0, activation: i = null }) {\n let p = e.dataFormat === \"channelsLast\", u = !p, c = false, l = p && e.filterHeight === e.inHeight && e.filterWidth === e.inWidth && e.padInfo.type === \"VALID\", m = [], d, f;\n if (l) {\n let x = e.inHeight * e.inWidth * e.inChannels;\n d = pe({ inputs: { x: r }, backend: o, attrs: { shape: [1, e.batchSize, x] } }), f = pe({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, x, e.outChannels] } });\n } else\n d = pe({ inputs: { x: r }, backend: o, attrs: { shape: p ? [e.batchSize, e.inHeight * e.inWidth, e.inChannels] : [e.batchSize, e.inChannels, e.inHeight * e.inWidth] } }), f = pe({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, e.inChannels, e.outChannels] } });\n if (m.push(d), m.push(f), s != null) {\n let x = yx(s.shape, p);\n x != null && (s = pe({ inputs: { x: s }, backend: o, attrs: { shape: x } }), m.push(s));\n }\n if (n != null) {\n let x = yx(n.shape, p);\n x != null && (n = pe({ inputs: { x: n }, backend: o, attrs: { shape: x } }), m.push(n));\n }\n let h = Op({ a: p ? d : f, b: p ? f : d, transposeA: u, transposeB: c, backend: o, bias: n, activation: i, preluActivationWeights: s, leakyreluAlpha: a }), g = pe({ inputs: { x: h }, backend: o, attrs: { shape: e.outShape } });\n m.push(h);\n for (let x of m)\n o.disposeData(x.dataId);\n return g;\n}\nfunction wue({ x: r, filter: t8, convInfo: e, backend: o, bias: n = null, preluActivationWeights: s = null, leakyreluAlpha: a = 0, activation: i = null }) {\n let { filterWidth: p, filterHeight: u, inChannels: c, strideWidth: l, strideHeight: m, padInfo: d, outWidth: f, outHeight: h, dilationWidth: g, dilationHeight: x, dataFormat: b } = e, C = b === \"channelsLast\", S = p * u * c, k = h * f, _ = C ? [e.batchSize, k, S] : [e.batchSize, S, k], E = new xx(_, C), R = [{ type: \"int32\", data: [d.top, d.left] }, { type: \"int32\", data: [m, l] }, { type: \"int32\", data: [x, g] }, { type: \"int32\", data: [f] }, { type: \"int32\", data: [c * p] }, { type: \"int32\", data: [c] }], D = o.runWebGPUProgram(E, [r], r.dtype, R), P = [];\n P.push(D);\n let O = pe({ inputs: { x: t8 }, backend: o, attrs: { shape: [1, S, -1] } });\n if (P.push(O), s != null) {\n let U = yx(s.shape, C);\n U != null && (s = pe({ inputs: { x: s }, backend: o, attrs: { shape: U } }), P.push(s));\n }\n if (n != null) {\n let U = yx(n.shape, C);\n U != null && (n = pe({ inputs: { x: n }, backend: o, attrs: { shape: U } }), P.push(n));\n }\n let B = Op({ a: C ? D : O, b: C ? O : D, transposeA: !C, transposeB: false, backend: o, bias: n, activation: i, preluActivationWeights: s, leakyreluAlpha: a }), z = pe({ inputs: { x: B }, backend: o, attrs: { shape: e.outShape } });\n P.push(B);\n for (let U of P)\n o.disposeData(U.dataId);\n return z;\n}\nfunction bx({ x: r, filter: t8, convInfo: e, backend: o, bias: n = null, preluActivationWeights: s = null, leakyreluAlpha: a = 0, activation: i = null }) {\n let p = n != null, u = s != null, c = e.dataFormat === \"channelsLast\", l = c && e.filterHeight === e.inHeight && e.filterWidth === e.inWidth && e.padInfo.type === \"VALID\", m = A().getBool(\"WEBGPU_USE_NAIVE_CONV2D_DEBUG\");\n if (!m && (l || e.filterHeight === 1 && e.filterWidth === 1 && e.dilationHeight === 1 && e.dilationWidth === 1 && e.strideHeight === 1 && e.strideWidth === 1 && (e.padInfo.type === \"SAME\" || e.padInfo.type === \"VALID\")))\n return Cue({ x: r, filter: t8, convInfo: e, backend: o, bias: n, activation: i, preluActivationWeights: s, leakyreluAlpha: a });\n let d = A().getNumber(\"WEBGPU_THRESHOLD_TO_INCREASE_WORKGROUPS_FOR_MATMUL\"), f = d > -1 ? d : o.thresholdToIncreaseWorkgroups, h = e.batchSize * Math.ceil(e.outHeight * e.outWidth / 32) * Math.ceil(e.outChannels / 32);\n if (A().getBool(\"WEBGPU_CONV_SEPARATE_IM2COL_SHADER\") || h <= f)\n return wue({ x: r, filter: t8, convInfo: e, backend: o, bias: n, preluActivationWeights: s, leakyreluAlpha: a, activation: i });\n let g, x = [e.padInfo.top, e.padInfo.left], b = [{ type: \"int32\", data: [e.filterHeight, e.filterWidth] }, { type: \"int32\", data: [...x] }, { type: \"int32\", data: [e.strideHeight, e.strideWidth] }, { type: \"int32\", data: [e.dilationHeight, e.dilationWidth] }];\n if (m)\n g = new gx(e, p, i, u);\n else {\n let _ = c ? e.outHeight * e.outWidth : e.outChannels, E = c ? e.outChannels : e.outHeight * e.outWidth, R = e.filterHeight * e.filterWidth * e.inChannels;\n b.push({ type: \"int32\", data: [_] }, { type: \"int32\", data: [E] }, { type: \"int32\", data: [R] });\n let D = o.adapterInfo.isIntel();\n g = new hx(e, _, E, R, p, i, u, D);\n }\n let C = [], S = [r, t8];\n p && (!c && n.shape.length === 1 && (n = pe({ inputs: { x: n }, backend: o, attrs: { shape: [n.shape[0], 1, 1] } }), C.push(n)), S.push(n)), u && (!c && s.shape.length === 1 && (s = pe({ inputs: { x: s }, backend: o, attrs: { shape: [s.shape[0], 1, 1] } }), C.push(s)), S.push(s)), i === \"leakyrelu\" && (b.push({ type: \"float32\", data: [a] }), g.uniforms += \" alpha : f32,\");\n let k = o.runWebGPUProgram(g, S, r.dtype, b);\n for (let _ of C)\n o.disposeData(_.dataId);\n return k;\n}\nfunction Sue(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dataFormat: p, dilations: u, dimRoundingMode: c } = e, l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, s.shape, a, u, i, c, false, l);\n return bx({ x: n, filter: s, convInfo: m, backend: o });\n}\nvar wV = { kernelName: rn, backendName: \"webgpu\", kernelFunc: Sue };\nvar Cx = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.uniforms = \"filterDims : vec2, pads : vec2, strides : vec2, outBackprop : vec4,\", this.workgroupSize = [64, 1, 1], this.size = false, this.isVec4 = false, this.workPerThread = 1, this.outputShape = t8.inShape, this.isChannelsLast = t8.dataFormat === \"channelsLast\", this.isVec4 = this.isChannelsLast && t8.outChannels % 4 === 0 && t8.inChannels % 4 === 0, this.isVec4 ? (this.workPerThread = 2, this.outputComponent = 4, this.workgroupSize = [4, 4, 4], this.dispatchLayout = { x: [3], y: [2], z: [0, 1] }, this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [4, this.workPerThread, 1])) : (this.size = true, this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize)), this.shaderKey = `conv2DDerInput_${this.isChannelsLast}_${this.isVec4}_${this.workPerThread}`;\n }\n getUserCode() {\n let t8 = this.isChannelsLast ? 1 : 2, e = this.isChannelsLast ? 2 : 3, o = this.isChannelsLast ? 3 : 1, n = `\n ${G()} {\n let batch = i32(globalId.z) / uniforms.outShape[1];\n let r = i32(globalId.z) % uniforms.outShape[1];\n let c = i32(globalId.y) * ${this.workPerThread};\n let d1 = i32(globalId.x) * 4;\n\n let dyCorner = vec2(r, c) - uniforms.pads;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n var dotProd: array, ${this.workPerThread}>;\n for (var i = 0; i < ${this.workPerThread}; i++) {\n dotProd[i] = vec4(0.0);\n }\n for (var wR = 0; wR < uniforms.filterDims.x; wR = wR + 1) {\n let dyR = f32(dyCorner.x + wR) / f32(uniforms.strides.x);\n let wRPerm = uniforms.filterDims.x - 1 - wR;\n if (dyR < 0.0 || dyR >= f32(uniforms.outBackprop[1]) ||\n fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims.y; wC = wC + 1) {\n let dyC = f32(dyCorner.y + wC) / f32(uniforms.strides.y);\n let dyC2 = f32(dyCorner.y + 1 + wC) / f32(uniforms.strides.y);\n let wCPerm = uniforms.filterDims.y - 1 - wC;\n var bDyCVal = true;\n var bDyCVal2 = true;\n if (dyC < 0.0 || dyC >= f32(uniforms.outBackprop[2]) ||\n fract(dyC) > 0.0) {\n bDyCVal = false;\n }\n if (dyC2 < 0.0 || dyC2 >= f32(uniforms.outBackprop[2]) ||\n fract(dyC2) > 0.0) {\n bDyCVal2 = false;\n }\n\n let idyC = i32(dyC);\n let idyC2 = i32(dyC2);\n if (bDyCVal && bDyCVal2) {\n let d2Length = uniforms.outBackprop[3];\n for (var d2 = 0; d2 < d2Length; d2 = d2 + 4) {\n let wValue0 = getW(wRPerm, wCPerm, d1, d2);\n let wValue1 = getW(wRPerm, wCPerm, d1 + 1, d2);\n let wValue2 = getW(wRPerm, wCPerm, d1 + 2, d2);\n let wValue3 = getW(wRPerm, wCPerm, d1 + 3, d2);\n var xValue = getDy(batch, idyR, idyC, d2);\n let tmpval = vec4(dot(xValue, wValue0),\n dot(xValue, wValue1),\n dot(xValue, wValue2),\n dot(xValue, wValue3));\n dotProd[0] = dotProd[0] + tmpval;\n xValue = getDy(batch, idyR, idyC2, d2);\n dotProd[1] = dotProd[1] + vec4(dot(xValue, wValue0),\n dot(xValue, wValue1),\n dot(xValue, wValue2),\n dot(xValue, wValue3));\n }\n } else if (bDyCVal) {\n let d2Length = uniforms.outBackprop[3];\n for (var d2 = 0; d2 < d2Length; d2 = d2 + 4) {\n let wValue0 = getW(wRPerm, wCPerm, d1, d2);\n let wValue1 = getW(wRPerm, wCPerm, d1 + 1, d2);\n let wValue2 = getW(wRPerm, wCPerm, d1 + 2, d2);\n let wValue3 = getW(wRPerm, wCPerm, d1 + 3, d2);\n var xValue = getDy(batch, idyR, idyC, d2);\n let tmpval = vec4(dot(xValue, wValue0),\n dot(xValue, wValue1),\n dot(xValue, wValue2),\n dot(xValue, wValue3));\n dotProd[0] = dotProd[0] + tmpval;\n }\n } else if (bDyCVal2) {\n let d2Length = uniforms.outBackprop[3];\n for (var d2 = 0; d2 < d2Length; d2 = d2 + 4) {\n let wValue0 = getW(wRPerm, wCPerm, d1, d2);\n let wValue1 = getW(wRPerm, wCPerm, d1 + 1, d2);\n let wValue2 = getW(wRPerm, wCPerm, d1 + 2, d2);\n let wValue3 = getW(wRPerm, wCPerm, d1 + 3, d2);\n var xValue = getDy(batch, idyR, idyC2, d2);\n let tmpval = vec4(dot(xValue, wValue0),\n dot(xValue, wValue1),\n dot(xValue, wValue2),\n dot(xValue, wValue3));\n dotProd[1] = dotProd[1] + tmpval;\n }\n }\n }\n }\n\n for (var i = 0; i < ${this.workPerThread}; i = i + 1) {\n let coords = vec4(batch, r, c + i, d1);\n if (coordsInBounds4D(coords, uniforms.outShape)) {\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], dotProd[i]);\n }\n }\n }\n `;\n return this.isVec4 ? `\n ${n}\n ` : `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d1 = coords[${o}];\n\n let dyCorner = vec2(coords[${t8}], coords[${e}]) - uniforms.pads;\n let dyRCorner = dyCorner.x;\n let dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n for (var wR = 0; wR < uniforms.filterDims.x; wR = wR + 1) {\n let dyR = (f32(dyRCorner) + f32(wR)) / f32(uniforms.strides.x);\n let wRPerm = uniforms.filterDims.x - 1 - wR;\n if (dyR < 0.0 || dyR >= f32(uniforms.outBackprop[1]) || fract(dyR) > 0.0 ||\n wRPerm < 0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims.y; wC = wC + 1) {\n let dyC = (f32(dyCCorner) + f32(wC)) / f32(uniforms.strides.y);\n let wCPerm = uniforms.filterDims.y - 1 - wC;\n if (dyC < 0.0 || dyC >= f32(uniforms.outBackprop[2]) ||\n fract(dyC) > 0.0 || wCPerm < 0) {\n continue;\n }\n let idyC = i32(dyC);\n\n for (var d2 = 0; d2 < uniforms.outBackprop[3]; d2 = d2 + 1) {\n let xValue = ${this.isChannelsLast ? \"getDy(batch, idyR, idyC, d2)\" : \"getDy(batch, d2, idyR, idyC)\"};\n let wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd = dotProd + xValue * wValue;\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar wx = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.uniforms = \"pads : vec2, strides : vec2, batchSize : i32, outHeight : i32, outWidth : i32, inHeight : i32, inWidth : i32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.filterShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.isChannelsLast = t8.dataFormat === \"channelsLast\", this.shaderKey = `conv2DDerFilter_${this.isChannelsLast}`;\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let wR = coords[0];\n let wC = coords[1];\n let d1 = coords[2];\n let d2 = coords[3];\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n for (var b = 0; b < uniforms.batchSize; b = b + 1) {\n for (var yR = 0; yR < uniforms.outHeight; yR = yR + 1) {\n let xR = wR + yR * uniforms.strides[0] - uniforms.pads[0];\n if (xR < 0 || xR >= uniforms.inHeight) {\n continue;\n }\n\n for (var yC = 0; yC < uniforms.outWidth; yC = yC + 1) {\n let xC = wC + yC * uniforms.strides[1] - uniforms.pads[1];\n\n if (xC < 0 || xC >= uniforms.inWidth) {\n continue;\n }\n\n if (${this.isChannelsLast}) {\n let dyValue = getDy(b, yR, yC, d2);\n let xValue = getX(b, xR, xC, d1);\n dotProd = dotProd + xValue * dyValue;\n } else {\n let dyValue = getDy(b, d2, yR, yC);\n let xValue = getX(b, d1, xR, xC);\n dotProd = dotProd + xValue * dyValue;\n }\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar Sx = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.uniforms = `pads : vec3, strides : vec3, batchSize : i32, outDepth : i32,\n outHeight : i32, outWidth : i32, inDepth : i32, inHeight : i32, inWidth : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.filterShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"conv3DDerFilter\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let wF = coords.x;\n let wR = coords.y;\n let wC = coords.z;\n let d1 = coords.w;\n let d2 = coords.u;\n\n var dotProd = 0.0;\n for (var b = 0; b < uniforms.batchSize; b++) {\n for (var yF = 0; yF < uniforms.outDepth; yF++) {\n let xF = wF + yF * uniforms.strides[0] - uniforms.pads[0];\n if (xF < 0 || xF >= uniforms.inDepth) {\n continue;\n }\n\n for (var yR = 0; yR < uniforms.outHeight; yR++) {\n let xR = wR + yR * uniforms.strides[1] - uniforms.pads[1];\n if (xR < 0 || xR >= uniforms.inHeight) {\n continue;\n }\n\n for (var yC = 0; yC < uniforms.outWidth; yC++) {\n let xC = wC + yC * uniforms.strides[2] - uniforms.pads[2];\n if (xC < 0 || xC >= uniforms.inWidth) {\n continue;\n }\n\n let dyValue = getDy(b, yF, yR, yC, d2);\n let xValue = getX(b, xF, xR, xC, d1);\n dotProd += xValue * dyValue;\n }\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar Ix = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.uniforms = `filterDims : vec3, pads : vec3, strides : vec3,\n outDepth : i32, outHeight : i32, outWidth : i32, outChannels : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"conv3DDerInput\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords.x;\n let d1 = coords.u;\n\n let dyCorner = vec3(coords.y, coords.z, coords.w) - uniforms.pads;\n let dyFCorner = dyCorner.x;\n let dyRCorner = dyCorner.y;\n let dyCCorner = dyCorner.z;\n\n var dotProd = 0.0;\n for (var wF = 0; wF < uniforms.filterDims[0]; wF++) {\n let dyF = f32(dyFCorner + wF) / f32(uniforms.strides[0]);\n if (dyF < 0.0 || dyF >= f32(uniforms.outDepth) || fract(dyF) > 0.0) {\n continue;\n }\n let idyF = i32(dyF);\n\n let wFPerm = uniforms.filterDims[0] - 1 - wF;\n\n for (var wR = 0; wR < uniforms.filterDims[1]; wR++) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[1]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n let wRPerm = uniforms.filterDims[1] - 1 - wR;\n\n for (var wC = 0; wC < uniforms.filterDims[2]; wC++) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[2]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n let idyC = i32(dyC);\n\n let wCPerm = uniforms.filterDims[2] - 1 - wC;\n\n for (var d2 = 0; d2 < uniforms.outChannels; d2++) {\n let xValue = getDy(batch, idyF, idyR, idyC, d2);\n let wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nfunction Iue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, dataFormat: p, dimRoundingMode: u, filterShape: c } = o, l = w.convertConv2DDataFormat(p), m = w.computeConv2DInfo(n.shape, c, a, 1, i, u, false, l), d = new wx(m), f = [{ type: \"int32\", data: [m.padInfo.top, m.padInfo.left] }, { type: \"int32\", data: [m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.batchSize] }, { type: \"int32\", data: [m.outHeight] }, { type: \"int32\", data: [m.outWidth] }, { type: \"int32\", data: [m.inHeight] }, { type: \"int32\", data: [m.inWidth] }];\n return e.runWebGPUProgram(d, [n, s], n.dtype, f);\n}\nvar SV = { kernelName: Oi, backendName: \"webgpu\", kernelFunc: Iue };\nfunction vue(r = 4) {\n let t8 = (s) => {\n switch (s) {\n case 1:\n return \"return W[getIndexFromCoords4D(coord, uniforms.wShape)];\";\n case 4:\n return `\n let coord1 = vec4(coordX, coordY, col + 1, rowInner);\n let coord2 = vec4(coordX, coordY, col + 2, rowInner);\n let coord3 = vec4(coordX, coordY, col + 3, rowInner);\n let v0 = W[getIndexFromCoords4D(coord, uniforms.wShape)];\n let v1 = W[getIndexFromCoords4D(coord1, uniforms.wShape)];\n let v2 = W[getIndexFromCoords4D(coord2, uniforms.wShape)];\n let v3 = W[getIndexFromCoords4D(coord3, uniforms.wShape)];\n return vec4(v0, v1, v2, v3);\n `;\n default:\n throw new Error(`innerElementSize ${s} is not supported.`);\n }\n }, o = `if (row < uniforms.dimAOuter && col < uniforms.dimInner) {\n ${`\n let outRow = row / uniforms.outShape[2];\n let outCol = row % uniforms.outShape[2];\n\n let WRow = col / (uniforms.filterDims[1] * uniforms.outBackprop[3]);\n let WCol = col / uniforms.outBackprop[3] % uniforms.filterDims[1];\n let xR = f32(outRow - uniforms.pads[0] + WRow) / f32(uniforms.strides[0]);\n let xC = f32(outCol - uniforms.pads[1] + WCol) / f32(uniforms.strides[1]);\n if (xR < 0.0 || xR >= f32(uniforms.outBackprop[1]) || fract(xR) > 0.0) {\n return ${Ae(r)}(0.0);\n }\n if (xC < 0.0 || xC >= f32(uniforms.outBackprop[2]) || fract(xC) > 0.0) {\n return ${Ae(r)}(0.0);\n }\n let coord = vec4(\n batch,\n i32(xR),\n i32(xC),\n col % uniforms.outBackprop[3]);\n return x[getIndexFromCoords4D(coord, uniforms.xShape)/${r}];`}\n }\n return ${Ae(r)}(0.0);`;\n return `\n fn mm_readA(batch: i32, row : i32, col : i32) -> ${Ae(r)} {\n ${o}\n }\n\n fn mm_readB(batch: i32, row : i32, col : i32) -> ${Ae(r)} {\n let coordX = uniforms.filterDims.x - 1 -\n row / (uniforms.filterDims[1] * uniforms.outBackprop[3]);\n let coordY = uniforms.filterDims.y - 1 -\n (row / uniforms.outBackprop[3]) % uniforms.filterDims[1];\n if (row < uniforms.dimInner && col < uniforms.dimBOuter &&\n coordX >= 0 && coordY >= 0) {\n let rowInner = row % uniforms.outBackprop[3];\n let coord = vec4(coordX, coordY, col, rowInner);\n ${t8(r)}\n }\n return ${Ae(r)}(0.0);\n }\n\n fn mm_write(batch: i32, row : i32, col : i32, valueInput : ${Ae(r)}) {\n if (row < uniforms.dimAOuter && col < uniforms.dimBOuter) {\n var value = valueInput;\n let outCoord = vec4(\n batch,\n row / uniforms.outShape[2],\n row % uniforms.outShape[2],\n col);\n result[getIndexFromCoords4D(outCoord, uniforms.outShape)/${r}] = value;\n }\n }`;\n}\nvar vx = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"filterDims : vec2, pads : vec2, strides : vec2, outBackprop : vec4, dimAOuter : i32, dimBOuter : i32, dimInner : i32,\", this.outputShape = t8.inShape, y.assert(t8.dataFormat === \"channelsLast\", () => \"TODO: NCHW is unimplemented\"), this.isVec4 = t8.inChannels % 4 === 0 && t8.outChannels % 4 === 0, this.dispatchLayout = { x: [3], y: [1, 2], z: [0] }, this.workgroupSize = lm(this.dispatchLayout, this.outputShape, this.isVec4), this.elementsPerThread = mm(this.dispatchLayout, this.outputShape, this.isVec4), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, this.elementsPerThread), this.isVec4 && (this.outputComponent = 4, this.variableComponents = [4, 1]), this.shaderKey = `conv2DDerInputMM_${this.isVec4}_${this.elementsPerThread}`;\n }\n getUserCode() {\n let t8 = this.isVec4 ? Fp(this.elementsPerThread, this.workgroupSize) : Pp(this.elementsPerThread, this.workgroupSize);\n return `\n ${vue(this.isVec4 ? 4 : 1)}\n ${t8}\n `;\n }\n};\nfunction kue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { inputShape: a, strides: i, pad: p, dataFormat: u, dimRoundingMode: c } = o, l = w.convertConv2DDataFormat(u), m = w.computeConv2DInfo(a, s.shape, i, 1, p, c, false, l), d = [{ type: \"int32\", data: [m.filterHeight, m.filterWidth] }, { type: \"int32\", data: [m.filterHeight - 1 - m.padInfo.top, m.filterWidth - 1 - m.padInfo.left] }, { type: \"int32\", data: [m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.batchSize, m.outHeight, m.outWidth, m.outChannels] }], f;\n if (A().getBool(\"WEBGPU_USE_NAIVE_CONV2D_TRANSPOSE\") || m.dataFormat !== \"channelsLast\")\n f = new Cx(m);\n else {\n f = new vx(m);\n let h = m.inHeight * m.inWidth, g = m.inChannels, x = m.filterHeight * m.filterWidth * m.outChannels;\n d.push({ type: \"uint32\", data: [h] }, { type: \"uint32\", data: [g] }, { type: \"uint32\", data: [x] });\n }\n return e.runWebGPUProgram(f, [n, s], \"float32\", d);\n}\nvar IV = { kernelName: on, backendName: \"webgpu\", kernelFunc: kue };\nvar kx = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"filterDims: vec3, pads: vec3, strides: vec3, dilations: vec3,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"conv3dnaive\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let batch = coords.x;\n let d2 = coords.u;\n\n let xFRCCorner = vec3(coords.y, coords.z, coords.w) * uniforms.strides - uniforms.pads;\n let xFCorner = xFRCCorner.x;\n let xRCorner = xFRCCorner.y;\n let xCCorner = xFRCCorner.z;\n\n let inputDepthNearestVec4 = (uniforms.xShape.u / 4) * 4;\n let inputDepthVec4Remainder = uniforms.xShape.u % 4;\n\n var dotProd = 0.0;\n for (var wF = 0; wF < uniforms.filterDims[0]; wF++) {\n let xF = xFCorner + wF * uniforms.dilations[0];\n if (xF < 0 || xF >= uniforms.xShape.y) {\n continue;\n }\n\n for (var wR = 0; wR < uniforms.filterDims[1]; wR++) {\n let xR = xRCorner + wR * uniforms.dilations[1];\n if (xR < 0 || xR >= uniforms.xShape.z) {\n continue;\n }\n\n for (var wC = 0; wC < uniforms.filterDims[2]; wC++) {\n let xC = xCCorner + wC * uniforms.dilations[2];\n if (xC < 0 || xC >= uniforms.xShape.w) {\n continue;\n }\n\n for (var d1 = 0; d1 < inputDepthNearestVec4; d1 += 4) {\n let xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n let wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (inputDepthVec4Remainder == 1) {\n dotProd += getX(batch, xF, xR, xC, inputDepthNearestVec4) *\n getW(wF, wR, wC, inputDepthNearestVec4, d2);\n } else if (inputDepthVec4Remainder == 2) {\n let xValues = vec2(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)\n );\n let wValues = vec2(\n getW(wF, wR, wC, inputDepthNearestVec4, d2),\n getW(wF, wR, wC, inputDepthNearestVec4 + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (inputDepthVec4Remainder == 3) {\n let xValues = vec3(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)\n );\n let wValues = vec3(\n getW(wF, wR, wC, inputDepthNearestVec4, d2),\n getW(wF, wR, wC, inputDepthNearestVec4 + 1, d2),\n getW(wF, wR, wC, inputDepthNearestVec4 + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }`;\n }\n};\nfunction Nue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o, u = w.computeConv3DInfo(n.shape, s.shape, a, p, i), c = [u.padInfo.front, u.padInfo.top, u.padInfo.left], l = [{ type: \"int32\", data: [u.filterDepth, u.filterHeight, u.filterWidth] }, { type: \"int32\", data: [...c] }, { type: \"int32\", data: [u.strideDepth, u.strideHeight, u.strideWidth] }, { type: \"int32\", data: [u.dilationDepth, u.dilationHeight, u.dilationWidth] }], m = new kx(u), d = dt(n.dtype, s.dtype);\n return e.runWebGPUProgram(m, [n, s], d, l);\n}\nvar vV = { kernelName: nn, backendName: \"webgpu\", kernelFunc: Nue };\nfunction Tue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, pad: i, filterShape: p } = o, u = w.computeConv3DInfo(n.shape, p, a, 1, i), c = new Sx(u), l = [{ type: \"int32\", data: [u.padInfo.front, u.padInfo.top, u.padInfo.left] }, { type: \"int32\", data: [u.strideDepth, u.strideHeight, u.strideWidth] }, { type: \"int32\", data: [u.batchSize] }, { type: \"int32\", data: [u.outDepth] }, { type: \"int32\", data: [u.outHeight] }, { type: \"int32\", data: [u.outWidth] }, { type: \"int32\", data: [u.inDepth] }, { type: \"int32\", data: [u.inHeight] }, { type: \"int32\", data: [u.inWidth] }];\n return e.runWebGPUProgram(c, [n, s], s.dtype, l);\n}\nvar kV = { kernelName: Xa, backendName: \"webgpu\", kernelFunc: Tue };\nfunction _ue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { strides: a, pad: i, inputShape: p } = o, u = w.computeConv3DInfo(p, s.shape, a, 1, i), c = new Ix(u), l = [{ type: \"int32\", data: [u.filterDepth, u.filterHeight, u.filterWidth] }, { type: \"int32\", data: [u.filterDepth - 1 - u.padInfo.front, u.filterHeight - 1 - u.padInfo.top, u.filterWidth - 1 - u.padInfo.left] }, { type: \"int32\", data: [u.strideDepth, u.strideHeight, u.strideWidth] }, { type: \"int32\", data: [u.outDepth] }, { type: \"int32\", data: [u.outHeight] }, { type: \"int32\", data: [u.outWidth] }, { type: \"int32\", data: [u.outChannels] }];\n return e.runWebGPUProgram(c, [n, s], n.dtype, l);\n}\nvar NV = { kernelName: sn, backendName: \"webgpu\", kernelFunc: _ue };\nvar $ue = ye({ opType: Z.COS });\nvar TV = { kernelName: an, backendName: \"webgpu\", kernelFunc: $ue };\nvar Eue = ye({ opType: Z.COSH });\nvar _V = { kernelName: un, backendName: \"webgpu\", kernelFunc: Eue };\nvar Nx = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"Image\", \"Boxes\", \"BoxInd\"], this.uniforms = \"extrapolationValue : f32,\", this.workgroupSize = [64, 1, 1], this.size = true;\n let [s] = e;\n this.outputShape = [s, o[0], o[1], t8], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.methodId = n === \"bilinear\" ? 1 : 0, this.cropHeightBiggerThan1 = this.outputShape[1] > 1, this.cropWidthBiggerThan1 = this.outputShape[2] > 1, this.shaderKey = `cropAndResize_${this.methodId}_${this.cropHeightBiggerThan1}_${this.cropWidthBiggerThan1}`;\n }\n getUserCode() {\n let [t8, e] = [\"f32(uniforms.imageShape[1] - 1)\", \"f32(uniforms.imageShape[2] - 1)\"], [o, n, s] = this.cropHeightBiggerThan1 ? [`(${t8} / f32(uniforms.outShape[1] - 1))`, \"(y2-y1) * height_ratio\", `y1*${t8} + f32(y)*(height_scale)`] : [\"0.0\", \"0.0\", `0.5 * (y1+y2) * ${t8}`], [a, i, p] = this.cropWidthBiggerThan1 ? [`(${e} / f32(uniforms.outShape[2] - 1))`, \"(x2-x1) * width_ratio\", `x1*${e} + f32(x)*(width_scale)`] : [\"0.0\", \"0.0\", `0.5 * (x1+x2) * ${e}`];\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let height_ratio = f32(${o});\n let width_ratio = f32(${a});\n let b = coords[0];\n let y = coords[1];\n let x = coords[2];\n let d = coords[3];\n // get box vals\n let y1 = getBoxes(b, 0);\n let x1 = getBoxes(b, 1);\n let y2 = getBoxes(b, 2);\n let x2 = getBoxes(b, 3);\n // get image in batch index\n let bInd = i32(round(getBoxInd(b)));\n if(bInd < 0 || bInd >= uniforms.outShape[0]) {\n return;\n }\n let height_scale = ${n};\n let width_scale = ${i};\n let in_y = ${s};\n if( in_y < 0.0 || in_y > ${t8} ) {\n setOutputAtIndex(index, uniforms.extrapolationValue);\n return;\n }\n let in_x = ${p};\n if( in_x < 0.0 || in_x > ${e} ) {\n setOutputAtIndex(index, uniforms.extrapolationValue);\n return;\n }\n let sourceFracIndexCR = vec2(in_x,in_y);\n if(${this.methodId} == 1) {\n // Compute the four integer indices.\n let sourceFloorCR = vec2(sourceFracIndexCR);\n let sourceCeilCR = vec2(ceil(sourceFracIndexCR));\n let topLeft = getImage(bInd, sourceFloorCR.y, sourceFloorCR.x, d);\n let bottomLeft = getImage(bInd, sourceCeilCR.y, sourceFloorCR.x, d);\n let topRight = getImage(bInd, sourceFloorCR.y, sourceCeilCR.x, d);\n let bottomRight = getImage(bInd, sourceCeilCR.y, sourceCeilCR.x, d);\n let fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n let top = topLeft + (topRight - topLeft) * fracCR.x;\n let bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n let newValue = top + (bottom - top) * fracCR.y;\n setOutputAtIndex(index, newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n let sourceNearestCR = vec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n let newValue = getImage(\n bInd, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutputAtIndex(index, newValue);\n }\n }\n }\n `;\n }\n};\nvar Rue = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n, boxes: s, boxInd: a } = t8, { cropSize: i, method: p, extrapolationValue: u } = o, c = new Nx(n.shape[3], s.shape, i, p), l = [{ type: \"float32\", data: [u] }];\n return e.runWebGPUProgram(c, [n, s, a], \"float32\", l);\n};\nvar $V = { kernelName: ln, backendName: \"webgpu\", kernelFunc: Rue };\nvar Lp;\n(function(r) {\n r.Prod = \"*\", r.Sum = \"+\";\n})(Lp || (Lp = {}));\nvar xm = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"x\"], this.uniforms = \"index : f32,\", this.size = true, this.workgroupSize = [128, 1, 1], this.outputShape = e, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.exclusive = o, this.reverse = n, this.op = t8, this.shaderKey = `cum_${this.op}_${this.exclusive}_${this.reverse}`;\n }\n getUserCode() {\n let t8 = this.outputShape.length, e = this.op === Lp.Prod ? \"1.0\" : \"0.0\", o = this.exclusive ? e : `getX(${EV(t8, \"coords\", this.op)})`, n = this.outputShape[this.outputShape.length - 1], s = \"\", a = \"\";\n return this.exclusive ? (s = this.reverse ? `end != ${n - 1}` : \"end != 0\", a = this.reverse ? \"end + 1\" : \"end - 1\") : (s = this.reverse ? `end + pow2 < ${n}` : \"end >= pow2\", a = this.reverse ? \"end + pow2\" : \"end - pow2\"), `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n var coords = getCoordsFromIndex(index);\n\n let end = ${RV(t8, \"coords\", this.op)};\n var val = ${o};\n let pow2 = i32(pow(2.0, uniforms.index));\n if (${s}) {\n let idx = ${a};\n ${RV(t8, \"coords\", this.op)} = idx;\n val ${this.op}= getX(${EV(t8, \"coords\", this.op)});\n }\n setOutputAtIndex(index, val);\n }\n }\n `;\n }\n};\nfunction EV(r, t8, e) {\n if (r === 1)\n return `${t8}`;\n if (r === 2)\n return `${t8}.x, ${t8}.y`;\n if (r === 3)\n return `${t8}.x, ${t8}.y, ${t8}.z`;\n if (r === 4)\n return `${t8}.x, ${t8}.y, ${t8}.z, ${t8}.w`;\n throw Error(`Cumulative ${e} for rank ${r} is not yet supported`);\n}\nfunction RV(r, t8, e) {\n if (r === 1)\n return `${t8}`;\n if (r === 2)\n return `${t8}.y`;\n if (r === 3)\n return `${t8}.z`;\n if (r === 4)\n return `${t8}.w`;\n throw Error(`Cumulative ${e} for rank ${r} is not yet supported`);\n}\nfunction Tx(r, t8, e, o, n, s) {\n let a = t8.shape.length, i = w.getAxesPermutation([o], a), p = t8;\n i != null && (p = yr({ inputs: { x: t8 }, backend: e, attrs: { perm: i } }));\n let u = w.getInnerMostAxes(1, a)[0];\n if (u !== a - 1)\n throw new Error(`WebGPU cumprod shader expects an inner-most axis=${t8.shape.length - 1} but got axis=${o}`);\n let c = p.shape[u], l = Ft({ inputs: { x: p }, backend: e });\n for (let m = 0; m <= Math.ceil(Math.log2(c)) - 1; m++) {\n let d = new xm(r, p.shape, false, s), f = l, h = [{ type: \"float32\", data: [m] }];\n l = e.runWebGPUProgram(d, [l], l.dtype, h), e.disposeData(f.dataId);\n }\n if (n) {\n let m = new xm(r, p.shape, n, s), d = l, f = [{ type: \"float32\", data: [0] }];\n l = e.runWebGPUProgram(m, [l], l.dtype, f), e.disposeData(d.dataId);\n }\n if (i != null) {\n let m = w.getUndoAxesPermutation(i), d = yr({ inputs: { x: l }, backend: e, attrs: { perm: m } });\n return e.disposeData(l.dataId), e.disposeData(p.dataId), d;\n }\n return l;\n}\nfunction Due(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n return Tx(Lp.Prod, n, e, s, a, i);\n}\nvar DV = { kernelName: pn, backendName: \"webgpu\", kernelFunc: Due };\nfunction Aue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, exclusive: a, reverse: i } = o;\n return Tx(Lp.Sum, n, e, s, a, i);\n}\nvar AV = { kernelName: cn, backendName: \"webgpu\", kernelFunc: Aue };\nfunction Fue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, weights: s } = t8, { size: a, binaryOutput: i } = o, p = n.shape.length === 1, c = y.sizeFromShape(s.shape) > 0, l = s.dtype, m = p ? [n.shape[0]] : [n.shape[0], n.shape[1]], d = p ? [a] : [n.shape[0], a], f = kt({ backend: e, attrs: { shape: d, value: 0, dtype: l } }), h = new Jc(m, c, i), g = [{ type: \"int32\", data: [a] }], x = c ? [n, s] : [n];\n return e.runWebGPUProgram(h, x, l, g, f);\n}\nvar FV = { kernelName: ra, backendName: \"webgpu\", kernelFunc: Fue };\nvar _x = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.uniforms = \"blockSize : i32,\", this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = `depthToSpace_${e}`, this.dataFormat = e;\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let b = coords[0];\n let h = ${this.getHeightCoordString()};\n let w = ${this.getWidthCoordString()};\n let d = ${this.getDepthCoordString()};\n\n let in_h = h / uniforms.blockSize;\n let offset_h = h % uniforms.blockSize;\n let in_w = w / uniforms.blockSize;\n let offset_w = w % uniforms.blockSize;\n let offset_d = (offset_h * uniforms.blockSize + offset_w) *\n ${this.getOutputDepthSize()};\n let in_d = d + offset_d;\n\n let rlt = ${this.getInputSamplingString()};\n setOutputAtIndex(index, rlt);\n }\n }`;\n }\n getHeightCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[1]\" : \"coords[2]\";\n }\n getWidthCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[2]\" : \"coords[3]\";\n }\n getDepthCoordString() {\n return this.dataFormat === \"NHWC\" ? \"coords[3]\" : \"coords[1]\";\n }\n getOutputDepthSize() {\n return this.dataFormat === \"NHWC\" ? \"uniforms.outShape[3]\" : \"uniforms.outShape[1]\";\n }\n getInputSamplingString() {\n return this.dataFormat === \"NHWC\" ? \"getX(b, in_h, in_w, in_d)\" : \"getX(b, in_d, in_h, in_w)\";\n }\n};\nfunction Pue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockSize: s, dataFormat: a } = o, i = n.shape[0], p = a === \"NHWC\" ? n.shape[1] : n.shape[2], u = a === \"NHWC\" ? n.shape[2] : n.shape[3], c = a === \"NHWC\" ? n.shape[3] : n.shape[1], l = p * s, m = u * s, d = c / (s * s), f = a === \"NHWC\" ? [i, l, m, d] : [i, d, l, m], h = [{ type: \"int32\", data: [s] }], g = new _x(f, a);\n return e.runWebGPUProgram(g, [n], n.dtype, h);\n}\nvar PV = { kernelName: mn, backendName: \"webgpu\", kernelFunc: Pue };\nvar $x = class {\n constructor(t8, e, o, n = false, s = null, a = false) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"pads : vec2, inDims : vec2,\", this.workgroupSize = [16, 16, 1], this.outputShape = t8, this.dispatchLayout = { x: [3], y: [2], z: [0, 1] }, this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), n && this.variableNames.push(\"bias\"), a && this.variableNames.push(\"preluActivationWeights\"), this.addBias = n, this.activation = s, this.hasPreluActivation = a, this.filterHeight = e, this.filterWidth = o, this.shaderKey = `depthwiseNCHW_${this.activation}_${this.filterHeight}_${this.filterWidth}`;\n }\n getUserCode() {\n let t8 = this.filterWidth * this.filterHeight, e = this.workgroupSize[0] * this.workgroupSize[1] * this.workgroupSize[2], o = this.workgroupSize[1] + this.filterHeight - 1, n = this.workgroupSize[0] + this.filterWidth - 1;\n return `\n ${fr(this.activation, this.hasPreluActivation, false, 4)}\n\n var mm_Asub : array, ${o}>;\n var mm_Bsub : array, ${this.filterHeight}>;\n fn readX(batch : i32, channel : i32, row : i32, col : i32) -> f32 {\n var value = 0.0;\n if (row >=0 && row < uniforms.inDims[0] && col >=0 && col < uniforms.inDims[1])\n {\n value = getX(batch, channel, row, col);\n }\n return value;\n }\n\n ${G()} {\n let coords = getOutputCoords();\n let batch = coords[0];\n let xRCCorner = vec2(coords.zw) - uniforms.pads;\n let channelMul = uniforms.wShape[3];\n let d1 = coords[1] / channelMul;\n let q = coords[1] % channelMul;\n\n let inputRowStart = xRCCorner.x;\n let inputColStart = xRCCorner.y;\n\n let localRow = i32(localId.y);\n let localCol = i32(localId.x);\n\n // Load one tile of X into local memory.\n for (var inputRow = localRow; inputRow < ${o}; inputRow = inputRow + ${this.workgroupSize[1]}) {\n for (var inputCol = localCol; inputCol < ${n}; inputCol = inputCol + ${this.workgroupSize[0]}) {\n let rowOffset = inputRow - localRow;\n let colOffset = inputCol - localCol;\n mm_Asub[inputRow][inputCol] = readX(batch, d1, inputRowStart + rowOffset, inputColStart + colOffset);\n }\n }\n\n // Load one tile of W into local memory.\n var wIndex = i32(localIndex);\n ${t8 < e ? `if (wIndex < ${t8})` : `for(; wIndex < ${t8}; wIndex = wIndex + ${e})`}\n\n {\n let wRow = wIndex / ${this.filterWidth};\n let wCol = wIndex % ${this.filterWidth};\n mm_Bsub[wRow][wCol] = getW(wRow, wCol, d1, q);\n }\n\n workgroupBarrier();\n\n var value = 0.0;\n for (var wR = 0; wR < ${this.filterHeight}; wR = wR + 1) {\n for (var wC = 0; wC < ${this.filterWidth}; wC = wC + 1) {\n let xVal = mm_Asub[localRow + wR][localCol + wC];\n let wVal = mm_Bsub[wR][wC];\n value = fma(xVal, wVal, value);\n }\n }\n ${Zr(this.addBias, this.activation)}\n if (coordsInBounds4D(coords, uniforms.outShape)) {\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }\n `;\n }\n};\nvar tl = class {\n constructor(t8, e = false, o = null, n = false) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = \"pads : vec2, inDims : vec2, virtualWidth : i32,\", this.workgroupSize = [64, 1, 1], this.workPerThread = 4, this.outputComponent = 4, this.outputShape = t8.outShape, this.virtualWidth = Math.ceil(this.outputShape[2] / this.workPerThread) * this.workPerThread;\n let s = [this.outputShape[0], this.outputShape[1], this.virtualWidth, this.outputShape[3]];\n this.dispatchLayout = X(s), this.dispatch = H(this.dispatchLayout, s, this.workgroupSize, [this.outputComponent * this.workPerThread, 1, 1]), y.assert(t8.dataFormat === \"channelsLast\", () => \"TODO: NCHW is unimplemented\"), e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), this.convInfo = t8, this.addBias = e, this.activation = o, this.hasPreluActivation = n, this.shaderKey = `depthwiseVec4_${o}_${this.convInfo.filterHeight}_${this.convInfo.filterWidth}_${this.convInfo.strideHeight}_${this.convInfo.strideWidth}_${this.workPerThread}`;\n }\n getUserCode() {\n let t8 = (this.workPerThread - 1) * this.convInfo.strideWidth + this.convInfo.filterWidth, e = this.convInfo.strideHeight, o = this.convInfo.strideWidth;\n return `\n ${fr(this.activation, this.hasPreluActivation, true, 4)}\n fn readX(batch : i32, row : i32, col : i32, channel : i32) -> vec4 {\n var value = vec4(0.0);\n if (col >=0 && col < uniforms.inDims[1]) {\n value = getX(batch, row, col, channel);\n }\n return value;\n }\n\n ${G(\"index\")} {\n let width0 = uniforms.outShape[3] / ${this.outputComponent};\n let d1 = (index % width0) * ${this.outputComponent};\n var index1 = index / width0;\n let width1 = uniforms.virtualWidth / ${this.workPerThread};\n let c = (index1 % width1) * ${this.workPerThread};\n index1 = index1 / width1;\n let r = index1 % uniforms.outShape[1];\n let batch = index1 / uniforms.outShape[1];\n\n let xRCCorner = vec2(r, c) * vec2(${e}, ${o}) - uniforms.pads;\n\n let xRCorner = xRCCorner.x;\n let xCCorner = xRCCorner.y;\n var xVals : array, ${t8}>;\n var dotProd : array, ${this.workPerThread}>;\n for (var i = 0; i < ${this.workPerThread}; i++) {\n dotProd[i] = vec4(0.0);\n }\n\n // Use constant instead of uniform can give better performance.\n for (var wR = 0; wR < ${this.convInfo.filterHeight}; wR = wR + 1) {\n let xR = xRCorner + wR;\n if (xR >=0 && xR < uniforms.inDims[0]) {\n for (var i = 0; i < ${t8}; i++) {\n xVals[i] = readX(batch, xR, xCCorner + i, d1);\n }\n for (var wC = 0; wC < ${this.convInfo.filterWidth}; wC = wC + 1) {\n let wValue = getW(wR, wC, d1, 0);\n for (var i = 0; i < ${this.workPerThread}; i++) {\n dotProd[i] = fma(xVals[i * ${o} + wC], wValue, dotProd[i]);\n }\n }\n }\n }\n\n for (var i = 0; i < ${this.workPerThread}; i = i + 1) {\n let coords = vec4(batch, r, c + i, d1);\n if (coordsInBounds4D(coords, uniforms.outShape)) {\n var value = dotProd[i];\n ${Zr(this.addBias, this.activation)}\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }\n }\n `;\n }\n};\nvar rl = class {\n constructor(t8, e = false, o = null, n = false) {\n this.variableNames = [\"x\", \"W\"], this.uniforms = `pads : vec2, inDims : vec2, filterHeight : i32,\n filterWidth : i32, strides : vec2, dilations : vec2,`, this.workgroupSize = [256, 1, 1], this.size = true, this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.isChannelsLast = t8.dataFormat === \"channelsLast\", e && this.variableNames.push(\"bias\"), n && this.variableNames.push(\"preluActivationWeights\"), this.convInfo = t8, this.addBias = e, this.activation = o, this.hasPreluActivation = n, this.shaderKey = `depthwise_${this.activation}_${this.isChannelsLast}`;\n }\n getUserCode() {\n let t8 = this.isChannelsLast ? \"getX(batch, xR, xC, d1);\" : \"getX(batch, d1, xR, xC);\";\n return `\n ${fr(this.activation, this.hasPreluActivation, false, 4)}\n\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let batch = coords[0];\n let xRCCorner = vec2(coords.${this.isChannelsLast ? \"yz\" : \"zw\"}) * uniforms.strides - uniforms.pads;\n let d2 = coords[${this.isChannelsLast ? 3 : 1}];\n let channelMul = uniforms.wShape[3];\n let d1 = d2 / channelMul;\n let q = d2 % channelMul;\n\n let inputRowStart = xRCCorner.x;\n let inputColStart = xRCCorner.y;\n let inputRowEnd = inputRowStart + uniforms.filterHeight *\n uniforms.dilations[0];\n let inputColEnd = inputColStart + uniforms.filterWidth *\n uniforms.dilations[1];\n\n // Convolve x(?, ?, d1)|x(d1, ?, ?) with w(:, :, d1, q) to get\n // y(yR, yC, d2)|y(d2, yR, yC). ? = to be determined. : = across all\n // values in that axis. x(?, ?, d1) and y(yR, yC, d2) is for NHWC.\n // x(d1, ?, ?) and y(d2, yR, yC) is for NCHW.\n var value = 0.0;\n\n // Extract if checking out of for loop for performance.\n if (inputRowStart >= 0 && inputColStart >= 0 &&\n inputRowEnd < uniforms.inDims[0] &&\n inputColEnd < uniforms.inDims[1]) {\n for (var wR = 0; wR < uniforms.filterHeight; wR = wR + 1) {\n let xR = inputRowStart + wR * uniforms.dilations[0];\n\n for (var wC = 0; wC < uniforms.filterWidth; wC = wC + 1) {\n let xC = inputColStart + wC * uniforms.dilations[1];\n\n let xVal = ${t8};\n let wVal = getW(wR, wC, d1, q);\n value = value + xVal * wVal;\n }\n }\n } else {\n for (var wR = 0; wR < uniforms.filterHeight; wR = wR + 1) {\n let xR = inputRowStart + wR * uniforms.dilations[0];\n\n if (xR < 0 || xR >= uniforms.inDims[0]) {\n continue;\n }\n\n for (var wC = 0; wC < uniforms.filterWidth; wC = wC + 1) {\n let xC = inputColStart + wC * uniforms.dilations[1];\n\n if (xC < 0 || xC >= uniforms.inDims[1]) {\n continue;\n }\n\n let xVal = ${t8};\n let wVal = getW(wR, wC, d1, q);\n value = value + xVal * wVal;\n }\n }\n }\n ${Zr(this.addBias, this.activation)}\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }\n `;\n }\n};\nfunction Oue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dataFormat: p, dilations: u, dimRoundingMode: c } = o, l = w.convertConv2DDataFormat(p), m = u;\n m == null && (m = [1, 1]);\n let d = w.computeConv2DInfo(n.shape, s.shape, a, m, i, c, true, l), f = [{ type: \"int32\", data: [d.padInfo.top, d.padInfo.left] }, { type: \"int32\", data: [d.inHeight, d.inWidth] }], h = d.dataFormat === \"channelsLast\", g;\n return !h && d.inHeight > 16 && d.inWidth > 16 && d.strideHeight === 1 && d.strideWidth === 1 && d.dilationWidth === 1 && d.dilationHeight === 1 && d.inChannels === d.outChannels ? g = new $x(d.outShape, d.filterHeight, d.filterWidth) : h && d.outHeight > 4 && d.outWidth > 4 && d.strideWidth <= 2 && d.inChannels === d.outChannels && d.dilationHeight === 1 && d.dilationWidth === 1 && d.inChannels % 4 === 0 ? (g = new tl(d), f.push({ type: \"int32\", data: [g.virtualWidth] })) : (g = new rl(d), f.push({ type: \"int32\", data: [d.filterHeight] }, { type: \"int32\", data: [d.filterWidth] }, { type: \"int32\", data: [d.strideHeight, d.strideWidth] }, { type: \"int32\", data: [d.dilationHeight, d.dilationWidth] })), e.runWebGPUProgram(g, [n, s], n.dtype, f);\n}\nvar OV = { kernelName: dn, backendName: \"webgpu\", kernelFunc: Oue };\nvar Ex = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"dy\"], this.uniforms = `strides : vec2, pads : vec2, filterDims : vec2, outHeight : i32,\n outWidth : i32, inHeight : i32, inWidth : i32, batchSize : i32, channelMul : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.filterShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"depthwise_conv2d_backprop_filter\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let wR = coords[0];\n let wC = coords[1];\n let d1 = coords[2];\n let dm = coords[3];\n let d2 = d1 * uniforms.channelMul + dm;\n\n var dotProd = 0.0;\n for (var b = 0; b < uniforms.batchSize; b++) {\n for (var yR = 0; yR < uniforms.outHeight; yR++) {\n let xR = wR + yR * uniforms.strides[0] - uniforms.pads[0];\n\n if (xR < 0 || xR >= uniforms.inHeight) {\n continue;\n }\n\n for (var yC = 0; yC < uniforms.outWidth; yC++) {\n let xC = wC + yC * uniforms.strides[1] - uniforms.pads[1];\n\n if (xC < 0 || xC >= uniforms.inWidth) {\n continue;\n }\n\n let dyValue = getDy(b, yR, yC, d2);\n let xValue = getX(b, xR, xC, d1);\n dotProd += xValue * dyValue;\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar Rx = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"W\"], this.uniforms = `strides : vec2, pads : vec2, filterDims : vec2,\n outHeight : i32, outWidth : i32, channelMul : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"depthwise_conv2d_backprop_input\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d1 = coords[3];\n let dyCorner = coords.yz - uniforms.pads;\n let dyRCorner = dyCorner.x;\n let dyCCorner = dyCorner.y;\n\n var dotProd = 0.0;\n for (var wR = 0; wR < uniforms.filterDims[0]; wR++) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[0]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n\n let idyR = i32(dyR);\n let wRPerm = uniforms.filterDims[0] - 1 - wR;\n\n for (var wC = 0; wC < uniforms.filterDims[1]; wC++) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[1]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n\n let idyC = i32(dyC);\n let wCPerm = uniforms.filterDims[1] - 1 - wC;\n\n for (var dm = 0; dm < uniforms.channelMul; dm++) {\n let d2 = d1 * uniforms.channelMul + dm;\n let xValue = getDy(batch, idyR, idyC, d2);\n let wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nfunction Mue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, dy: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, filterShape: c } = o, l = w.computeConv2DInfo(n.shape, c, a, i, p, u, true), m = new Ex(l), d = [{ type: \"int32\", data: [l.strideHeight, l.strideWidth] }, { type: \"int32\", data: [l.padInfo.top, l.padInfo.left] }, { type: \"int32\", data: [l.filterHeight, l.filterWidth] }, { type: \"int32\", data: [l.outHeight] }, { type: \"int32\", data: [l.outWidth] }, { type: \"int32\", data: [l.inHeight] }, { type: \"int32\", data: [l.inWidth] }, { type: \"int32\", data: [l.batchSize] }, { type: \"int32\", data: [l.outChannels / l.inChannels] }];\n return e.runWebGPUProgram(m, [n, s], \"float32\", d);\n}\nvar MV = { kernelName: Mi, backendName: \"webgpu\", kernelFunc: Mue };\nfunction Lue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, filter: s } = t8, { strides: a, dilations: i, pad: p, dimRoundingMode: u, inputShape: c } = o, l = w.computeConv2DInfo(c, s.shape, a, i, p, u, true), m = new Rx(l), d = [{ type: \"int32\", data: [l.strideHeight, l.strideWidth] }, { type: \"int32\", data: [l.filterHeight - 1 - l.padInfo.top, l.filterWidth - 1 - l.padInfo.left] }, { type: \"int32\", data: [l.filterHeight, l.filterWidth] }, { type: \"int32\", data: [l.outHeight] }, { type: \"int32\", data: [l.outWidth] }, { type: \"int32\", data: [l.outChannels / l.inChannels] }];\n return e.runWebGPUProgram(m, [n, s], n.dtype, d);\n}\nvar LV = { kernelName: Li, backendName: \"webgpu\", kernelFunc: Lue };\nvar Dx = class {\n constructor(t8) {\n this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8, t8], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"diag\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let value = select(0.0, getX(coords[0]), coords[0] == coords[1]);\n setOutputAtIndex(index, value);\n }\n }\n `;\n }\n};\nfunction Bue(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8, n = [...o.shape, ...o.shape], s = y.sizeFromShape(o.shape), a = pe({ inputs: { x: o }, backend: e, attrs: { shape: [s] } }), i = new Dx(s), p = e.runWebGPUProgram(i, [a], a.dtype), u = pe({ inputs: { x: p }, backend: e, attrs: { shape: n } });\n return e.disposeData(a.dataId), e.disposeData(p.dataId), u;\n}\nvar BV = { kernelName: oa, backendName: \"webgpu\", kernelFunc: Bue };\nvar Ax = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"w\"], this.uniforms = \"filterDims: vec2, pads: vec2, strides: vec2, dilations: vec2\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.outShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"dilation2d\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let neg_infinity = -3.4e38;\n let coords = getOutputCoords();\n let batch = coords.x;\n let d1 = coords.w;\n let outTopLeftCorner = coords.yz * uniforms.strides - uniforms.pads;\n let hBeg = outTopLeftCorner.x;\n let wBeg = outTopLeftCorner.y;\n\n var curVal = neg_infinity;\n for (var h = 0; h < uniforms.filterDims[0]; h = h + 1) {\n let hIn = hBeg + h * uniforms.dilations[0];\n\n if (hIn >= 0 && hIn < uniforms.xShape[1]) {\n for (var w = 0; w < uniforms.filterDims[1]; w = w + 1) {\n let wIn = wBeg + w * uniforms.dilations[1];\n\n if (wIn >= 0 && wIn < uniforms.xShape[2]) {\n let val = getX(batch, hIn, wIn, d1) + getW(h, w, d1);\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n setOutputAtIndex(index, curVal);\n }\n }\n `;\n }\n};\nfunction zue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s } = t8, { strides: a, pad: i, dilations: p } = o, u = w.computeDilation2DInfo(n.shape, s.shape, a, i, \"NHWC\", p), c = [u.padInfo.top, u.padInfo.left], l = [{ type: \"int32\", data: [u.filterHeight, u.filterWidth] }, { type: \"int32\", data: [...c] }, { type: \"int32\", data: [u.strideHeight, u.strideWidth] }, { type: \"int32\", data: [u.dilationHeight, u.dilationWidth] }], m = new Ax(u);\n return e.runWebGPUProgram(m, [n, s], n.dtype, l);\n}\nvar zV = { kernelName: fn, backendName: \"webgpu\", kernelFunc: zue };\nvar Fx = class {\n constructor(t8, e) {\n if (this.variableNames = [\"x\", \"w\", \"dy\"], this.uniforms = \"filterDims: vec2, pads: vec2, strides: vec2, dilations: vec2, dySize: i32,\", this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = t8.inShape, this.dispatchLayout = X(t8.outShape), this.dispatch = H(this.dispatchLayout, t8.outShape, this.workgroupSize), e !== \"float32\" && e !== \"int32\")\n throw new Error(`Dilation2DBackpropInput only supports float32 and int32\n types, does not support ${e} type.`);\n this.type = e, this.shaderKey = \"dilation2DBackpropInput\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.dySize) {\n let coords = getDyCoordsFromIndex(index);\n let b = coords[0];\n let r = coords[1];\n let c = coords[2];\n let d = coords[3];\n\n let dyCorner = vec2(r, c) * uniforms.strides - uniforms.pads;\n var curVal = -3.4e38; // neg_infinity\n var xRMax = 0;\n var xCMax = 0;\n\n // In the case of multiple argmax branches, we only back-propagate\n // along the last branch, i.e., the one with largest value of\n // 'wR * uniforms.filterDims[1] + wC', similarly to the max-pooling\n // backward routines.\n for (var wR = 0; wR < uniforms.filterDims[0]; wR++) {\n let xR = dyCorner.x + wR * uniforms.dilations[0];\n\n if (xR >= 0 && xR < uniforms.xShape[1]) {\n for (var wC = 0; wC < uniforms.filterDims[1]; wC++) {\n let xC = dyCorner.y + wC * uniforms.dilations[1];\n\n if (xC >= 0 && xC < uniforms.xShape[2]) {\n let val = getX(b, xR, xC, d) + getW(wR, wC, d);\n if (val > curVal) {\n curVal = val;\n xRMax = xR;\n xCMax = xC;\n }\n }\n }\n }\n }\n\n let flatIndexIn = d + uniforms.xShape[3] *\n (xCMax + uniforms.xShape[2] * (xRMax + uniforms.xShape[1] * b));\n let value = getDy(b, r, c, d);\n ${Qr(\"&result[flatIndexIn]\", \"value\", this.type)}\n }\n }\n `;\n }\n};\nvar Px = class {\n constructor(t8, e, o) {\n if (this.variableNames = [\"x\", \"w\", \"dy\"], this.uniforms = \"filterDims: vec2, pads: vec2, strides: vec2, dilations: vec2, dySize: i32,\", this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = t8.filterShape, this.dispatchLayout = X(t8.outShape), this.dispatch = H(this.dispatchLayout, t8.outShape, this.workgroupSize), o !== \"float32\" && o !== \"int32\")\n throw new Error(`Dilation2DBackpropFilter only supports float32 and int32\n types, does not support ${o} type.`);\n this.type = o, this.shaderKey = \"dilation2DBackpropFilter\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.dySize) {\n let coords = getDyCoordsFromIndex(index);\n let b = coords[0];\n let r = coords[1];\n let c = coords[2];\n let d = coords[3];\n\n let dyCorner = vec2(r, c) * uniforms.strides - uniforms.pads;\n var curVal = -3.4e38; // neg_infinity\n var wRMax = 0;\n var wCMax = 0;\n\n // In the case of multiple argmax branches, we only back-propagate\n // along the last branch, i.e., the one with largest value of\n // 'wR * uniforms.filterDims[1] + wC', similarly to the max-pooling\n // backward routines.\n for (var wR = 0; wR < uniforms.filterDims[0]; wR++) {\n let xR = dyCorner.x + wR * uniforms.dilations[0];\n\n if (xR >= 0 && xR < uniforms.xShape[1]) {\n for (var wC = 0; wC < uniforms.filterDims[1]; wC++) {\n let xC = dyCorner.y + wC * uniforms.dilations[1];\n\n if (xC >= 0 && xC < uniforms.xShape[2]) {\n let val = getX(b, xR, xC, d) + getW(wR, wC, d);\n if (val > curVal) {\n curVal = val;\n wRMax = wR;\n wCMax = wC;\n }\n }\n }\n }\n }\n\n let flatIndexIn = d + uniforms.wShape[2] * (wCMax + wRMax * uniforms.wShape[1]);\n let value = getDy(b, r, c, d);\n ${Qr(\"&result[flatIndexIn]\", \"value\", this.type)}\n }\n }\n `;\n }\n};\nfunction Vue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, dy: a } = t8, { strides: i, pad: p, dilations: u } = o, c = w.computeDilation2DInfo(n.shape, s.shape, i, p, \"NHWC\", u), l = s.dtype, m = new Px(c, s.shape, l), d = [{ type: \"int32\", data: [c.filterHeight, c.filterWidth] }, { type: \"int32\", data: [c.padInfo.top, c.padInfo.left] }, { type: \"int32\", data: [c.strideHeight, c.strideWidth] }, { type: \"int32\", data: [c.dilationHeight, c.dilationWidth] }, { type: \"int32\", data: [y.sizeFromShape(c.outShape)] }], f = kt({ backend: e, attrs: { shape: s.shape, value: 0, dtype: l } });\n return e.runWebGPUProgram(m, [n, s, a], l, d, f);\n}\nvar VV = { kernelName: zi, backendName: \"webgpu\", kernelFunc: Vue };\nfunction Wue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, dy: a } = t8, { strides: i, pad: p, dilations: u } = o, c = w.computeDilation2DInfo(n.shape, s.shape, i, p, \"NHWC\", u), l = n.dtype, m = new Fx(c, l), d = [{ type: \"int32\", data: [c.filterHeight, c.filterWidth] }, { type: \"int32\", data: [c.padInfo.top, c.padInfo.left] }, { type: \"int32\", data: [c.strideHeight, c.strideWidth] }, { type: \"int32\", data: [c.dilationHeight, c.dilationWidth] }, { type: \"int32\", data: [y.sizeFromShape(c.outShape)] }], f = kt({ backend: e, attrs: { shape: c.inShape, value: 0, dtype: l } });\n return e.runWebGPUProgram(m, [n, s, a], l, d, f);\n}\nvar WV = { kernelName: Bi, backendName: \"webgpu\", kernelFunc: Wue };\nvar Ox = class {\n constructor(t8, e, o) {\n this.variableNames = [\"Image\"], this.uniforms = \"alpha: f32,\", this.workgroupSize = [64, 1, 1], this.pixelsOpType = Ii.DRAW, this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.type = e, this.textureFormat = o, this.shaderKey = `draw_${e}_${o}`;\n }\n getUserCode() {\n let t8, e = this.type === \"float32\" ? \"value\" : \"value / 255.0\";\n return t8 = `\n if (uniforms.numChannels == 1) {\n rgba[0] = ${e};\n rgba[1] = ${e};\n rgba[2] = ${e};\n } else {\n rgba[d] = ${e};\n }`, `\n @group(0) @binding(0) var outImage : texture_storage_2d<${this.textureFormat}, write>;\n ${G(\"index\")} {\n if (index < uniforms.size) {\n var rgba = vec4(0.0, 0.0, 0.0, uniforms.alpha);\n for (var d = 0; d < uniforms.numChannels; d = d + 1) {\n let value = f32(inBuf[index * uniforms.numChannels + d]);\n ${t8}\n }\n rgba.x = rgba.x * rgba.w;\n rgba.y = rgba.y * rgba.w;\n rgba.z = rgba.z * rgba.w;\n let coords = getCoordsFromIndex(index);\n textureStore(outImage, vec2(coords.yx), rgba);\n }\n }\n `;\n }\n};\nfunction Uue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n } = t8, { canvas: s, options: a } = o, [i, p] = n.shape.slice(0, 2), { imageOptions: u } = a || {}, c = (u == null ? void 0 : u.alpha) || 1, l = e.device.features.has(\"bgra8unorm-storage\") ? \"bgra8unorm\" : \"rgba8unorm\", m = [i, p], d = new Ox(m, n.dtype, l);\n s.width = p, s.height = i;\n let f = \"webgpu\", h = s.getContext(f), g;\n h || (g = new OffscreenCanvas(p, i), h = g.getContext(f));\n let x = n.shape.length === 3 ? n.shape[2] : 1;\n h.configure({ device: e.device, format: l, usage: GPUTextureUsage.STORAGE_BINDING, alphaMode: \"premultiplied\" });\n let b = \"int32\", C = e.makeTensorInfo(m, b), S = e.tensorMap.get(C.dataId);\n S.resource = h.getCurrentTexture(), S.external = true;\n let k = [{ type: \"uint32\", data: [x] }, { type: \"float32\", data: [c] }];\n if (e.runWebGPUProgram(d, [n], b, k, C), g) {\n let _ = s.getContext(\"2d\");\n if (!_)\n throw new Error(\"Please make sure this canvas has only been used for 2d or webgpu context!\");\n _.drawImage(g, 0, 0);\n }\n return e.disposeData(C.dataId), n;\n}\nvar UV = { kernelName: Pu, backendName: \"webgpu\", kernelFunc: Uue };\nvar s0 = et({ opType: fe.MUL, cpuKernelImpl: vz, supportsComplex: true });\nvar GV = { kernelName: Yn, backendName: \"webgpu\", kernelFunc: s0 };\nfunction a0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n return eo(n, s, a, \"sum\", e);\n}\nvar HV = { kernelName: Is, backendName: \"webgpu\", kernelFunc: a0 };\nfunction Gue(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { equation: n } = o, s = t8, { allDims: a, summedDims: i, idDims: p } = w.decodeEinsumEquation(n, s.length);\n w.checkEinsumDimSizes(a.length, p, s);\n let { path: u, steps: c } = w.getEinsumComputePath(i, p), l = c.length, m = null, d = a.length, f = [];\n for (let h = 0; h < l; ++h) {\n for (let g of c[h]) {\n let { permutationIndices: x, expandDims: b } = w.getEinsumPermutation(d, p[g]), C;\n w.isIdentityPermutation(x) ? C = s[g] : (C = yr({ inputs: { x: s[g] }, backend: e, attrs: { perm: x } }), f.push(C));\n let S = C.shape.slice();\n for (let k = 0; k < b.length; ++k)\n S.splice(b[k], 0, 1);\n y.arraysEqual(C.shape, S) || (C = pe({ inputs: { x: C }, backend: e, attrs: { shape: S } }), f.push(C)), m === null ? m = C : (m = s0({ inputs: { a: C, b: m }, backend: e }), f.push(m));\n }\n h < l - 1 && (u[h] >= 0 && (m = a0({ inputs: { x: m }, backend: e, attrs: { axis: u[h] - (a.length - d), keepDims: false } }), f.push(m)), d--);\n }\n for (let h of f)\n h !== m && e.disposeData(h.dataId);\n return m;\n}\nvar KV = { kernelName: Vi, backendName: \"webgpu\", kernelFunc: Gue };\nvar Hue = ye({ opType: Z.ELU });\nvar qV = { kernelName: gn, backendName: \"webgpu\", kernelFunc: Hue };\nvar Kue = (r) => {\n let { inputs: t8, backend: e } = r, { dy: o, y: n } = t8, s = new ki(fe.ELU_DER, o.shape, n.shape);\n return e.runWebGPUProgram(s, [o, n], o.dtype);\n};\nvar jV = { kernelName: Ya, backendName: \"webgpu\", kernelFunc: Kue };\nvar que = et({ opType: fe.EQUAL, dtype: \"bool\", cpuKernelImpl: pz });\nvar XV = { kernelName: yn, backendName: \"webgpu\", kernelFunc: que };\nvar jue = ye({ opType: Z.ERF });\nvar YV = { kernelName: xn, backendName: \"webgpu\", kernelFunc: jue };\nvar Xue = ye({ opType: Z.EXP, cpuKernelImpl: cz, dtype: \"float32\" });\nvar QV = { kernelName: bn, backendName: \"webgpu\", kernelFunc: Xue };\nfunction Mx(r) {\n let { inputs: t8, attrs: e, backend: o } = r, { dim: n } = e, { input: s } = t8, a = s.shape.length, i = s.shape.slice(), p = n;\n return n < 0 && (y.assert(-(a + 1) <= n, () => `Axis must be in the interval [${-(a + 1)}, ${a}]`), p = a + n + 1), i.splice(p, 0, 1), pe({ inputs: { x: s }, backend: o, attrs: { shape: i } });\n}\nvar ZV = { kernelName: na, backendName: \"webgpu\", kernelFunc: Mx };\nvar Yue = ye({ opType: Z.EXPM1, cpuKernelImpl: lz });\nvar JV = { kernelName: Cn, backendName: \"webgpu\", kernelFunc: Yue };\nvar ym = class {\n constructor(t8, e) {\n this.variableNames = [\"real\", \"imag\"], this.outputShape = [], this.uniforms = \"exponentMultiplier : f32, denominator: f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.component = t8, this.shaderKey = `fft_${t8}`;\n }\n getUserCode() {\n return `\n fn unaryOpComplex(real: f32, expR: f32, imag: f32, expI: f32) -> f32 {\n ${this.component === \"real\" ? \"return real * expR - imag * expI;\" : \"return real * expI + imag * expR;\"}\n }\n\n fn mulMatDFT(batch: i32, index: i32) -> f32 {\n let indexRatio = f32(index) / f32(uniforms.realShape[1]);\n let exponentMultiplierTimesIndexRatio =\n uniforms.exponentMultiplier * indexRatio;\n\n var result = 0.0;\n\n for (var i = 0; i < uniforms.realShape[1]; i = i + 1) {\n // x = (-2|2 * PI / N) * index * i;\n let x = exponentMultiplierTimesIndexRatio * f32(i);\n let expR = cos(x);\n let expI = sin(x);\n let real = getReal(batch, i);\n let imag = getImag(batch, i);\n\n result = result +\n unaryOpComplex(real, expR, imag, expI) / uniforms.denominator;\n }\n\n return result;\n }\n\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n setOutputAtIndex(index, mulMatDFT(coords[0], coords[1]));\n }\n }\n `;\n }\n};\nfunction Lx(r, t8, e) {\n let o = e.tensorMap.get(r.dataId), n = y.sizeFromShape(r.shape), s = r.shape[r.shape.length - 1], a = n / s, i = [], p = pe({ inputs: { x: r }, backend: e, attrs: { shape: [a, s] } });\n i.push(p);\n let u = p.shape, c = new ym(\"real\", u), l = new ym(\"imag\", u), m = [{ dataId: o.complexTensorInfos.real.dataId, dtype: o.complexTensorInfos.real.dtype, shape: u }, { dataId: o.complexTensorInfos.imag.dataId, dtype: o.complexTensorInfos.imag.dtype, shape: u }], d = t8 ? 2 * Math.PI : -2 * Math.PI, f = t8 ? u[1] : 1, h = [{ type: \"float32\", data: [d] }, { type: \"float32\", data: [f] }], g = e.runWebGPUProgram(c, m, \"float32\", h);\n i.push(g);\n let x = e.runWebGPUProgram(l, m, \"float32\", h);\n i.push(x);\n let b = yo({ inputs: { real: g, imag: x }, backend: e });\n i.push(b);\n let C = pe({ inputs: { x: b }, backend: e, attrs: { shape: r.shape } });\n return i.forEach((S) => e.disposeData(S.dataId)), C;\n}\nfunction Que(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8;\n return Lx(o, false, e);\n}\nvar eW = { kernelName: Wi, backendName: \"webgpu\", kernelFunc: Que };\nvar Bx = class {\n constructor(t8) {\n this.outputShape = [], this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"flipLeftRight\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let coordX = uniforms.xShape[2] - coords[2] - 1;\n let outputValue = getX(coords[0], coords[1], coordX, coords[3]);\n setOutputAtIndex(index, outputValue);\n }\n }\n `;\n }\n};\nvar tW = { kernelName: wn, backendName: \"webgpu\", kernelFunc: ({ inputs: r, backend: t8 }) => {\n let { image: e } = r, o = t8, n = new Bx(e.shape);\n return o.runWebGPUProgram(n, [e], e.dtype);\n} };\nvar Zue = ye({ opType: Z.FLOOR, cpuKernelImpl: mz });\nvar rW = { kernelName: Sn, backendName: \"webgpu\", kernelFunc: Zue };\nvar Jue = et({ opType: fe.FLOOR_DIV, cpuKernelImpl: dz, dtype: \"int32\" });\nvar oW = { kernelName: In, backendName: \"webgpu\", kernelFunc: Jue };\nvar zx = class {\n constructor(t8, e, o = false) {\n this.pixelsOpType = Ii.FROM_PIXELS, this.outputShape = [0], this.variableNames = [], this.workgroupSize = [256, 1, 1], this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [e, 1, 1]), this.importVideo = o, this.shaderKey = `fromPixels_${this.importVideo}`;\n }\n getUserCode() {\n let t8 = this.importVideo ? \"textureLoad(src, vec2(coords.yx));\" : \"textureLoad(src, vec2(coords.yx), 0)\";\n return `\n @binding(1) @group(0) var src: ${this.importVideo ? \"texture_external\" : \"texture_2d\"};\n ${G(\"index\")} {\n let flatIndex = index * uniforms.numChannels;\n if (flatIndex < uniforms.size) {\n let coords = getCoordsFromIndex(flatIndex);\n let values = ${t8};\n for (var i = 0; i < uniforms.numChannels; i = i + 1) {\n result[flatIndex + i] = i32(floor(255.0 * values[i]));\n }\n }\n }\n `;\n }\n};\nvar nW = { kernelName: Mu, backendName: \"webgpu\", kernelFunc: epe };\nvar ol;\nvar i0 = A().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");\nfunction epe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { pixels: n } = t8, { numChannels: s } = o;\n if (n == null)\n throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");\n let a = typeof HTMLVideoElement != \"undefined\" && n instanceof HTMLVideoElement, i = typeof HTMLImageElement != \"undefined\" && n instanceof HTMLImageElement, p = typeof HTMLCanvasElement != \"undefined\" && n instanceof HTMLCanvasElement || typeof OffscreenCanvas != \"undefined\" && n instanceof OffscreenCanvas, u = typeof ImageBitmap != \"undefined\" && n instanceof ImageBitmap, [c, l] = a ? [n.videoWidth, n.videoHeight] : [n.width, n.height], m = [l, c, s], d = false, f = a || i;\n if (u || p || f) {\n let b;\n if (d)\n b = e.device.importExternalTexture({ source: n });\n else {\n if (f) {\n let L = A().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");\n (ol == null || L !== i0) && (i0 = L, ol = document.createElement(\"canvas\").getContext(\"2d\", { willReadFrequently: i0 })), ol.canvas.width = c, ol.canvas.height = l, ol.drawImage(n, 0, 0, c, l), n = ol.canvas;\n }\n let P = GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING, O = \"rgba8unorm\", M = e.textureManager.acquireTexture(m[1], m[0], O, P);\n e.queue.copyExternalImageToTexture({ source: n }, { texture: M }, [m[1], m[0]]), b = M;\n }\n let C = y.sizeFromShape(m), S = y.computeStrides(m), k = new zx(m, s, d), _ = [{ type: \"uint32\", data: [C] }, { type: \"uint32\", data: [s] }, { type: \"uint32\", data: [...S] }], E = e.makeTensorInfo([l, c], \"int32\"), R = e.tensorMap.get(E.dataId);\n R.resource = b;\n let D = e.runWebGPUProgram(k, [E], \"int32\", _);\n return e.disposeData(E.dataId), D;\n }\n let h = n.data, g = h;\n if (s != null && s !== 4) {\n g = new Uint8Array(n.width * n.height * s);\n let b = h.length, C = 0;\n for (let S = 0; S < b; S++)\n S % 4 < s && (g[C++] = h[S]);\n }\n let x = e.makeTensorInfo(m, \"int32\", new Int32Array(g));\n return e.uploadToGPU(x.dataId), x;\n}\nvar Vx = class {\n constructor(t8, e, o, n, s) {\n this.uniforms = \"varianceEpsilon : f32,\", this.workgroupSize = [128, 1, 1], this.size = true, this.variableNames = [\"x\", \"mean\", \"variance\"], w.assertAndGetBroadcastShape(t8, e), w.assertAndGetBroadcastShape(t8, o), this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), n != null && (w.assertAndGetBroadcastShape(t8, n), this.variableNames.push(\"offset\")), s != null && (w.assertAndGetBroadcastShape(t8, s), this.variableNames.push(\"scale\")), this.offsetShape = n, this.scaleShape = s, this.shaderKey = \"batchNorm\";\n }\n getUserCode() {\n let t8 = \"0.0\";\n this.offsetShape != null && (t8 = \"getOffsetByOutputIndex(index)\");\n let e = \"1.0\";\n return this.scaleShape != null && (e = \"getScaleByOutputIndex(index)\"), `\n ${G(\"index\")} {\n if (index < uniforms.size)\n {\n let xValue = getXByOutputIndex(index);\n let meanValue = getMeanByOutputIndex(index);\n let varianValue = getVarianceByOutputIndex(index);\n let offsetValue = ${t8};\n let scaleValue = ${e};\n let inv = scaleValue * inverseSqrt(varianValue + f32(uniforms.varianceEpsilon));\n setOutputAtIndex(index,dot(vec3(xValue, -meanValue, offsetValue), vec3(inv, inv, 1.0)));\n }\n }\n `;\n }\n};\nvar sW = { kernelName: vn, backendName: \"webgpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { x: o, scale: n, offset: s, mean: a, variance: i } = r, { varianceEpsilon: p } = t8, u = e, c = [o, a, i], l = null;\n s != null && (l = s.shape, c.push(s));\n let m = null;\n n != null && (m = n.shape, c.push(n));\n let d = new Vx(o.shape, a.shape, i.shape, l, m), f = [{ type: \"float32\", data: [p] }];\n return u.runWebGPUProgram(d, c, o.dtype, f);\n} };\nfunction tpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dataFormat: c, dilations: l, dimRoundingMode: m, activation: d, leakyreluAlpha: f } = o, h = w.convertConv2DDataFormat(c), g = w.computeConv2DInfo(n.shape, s.shape, p, l, u, m, false, h);\n return bx({ x: n, filter: s, convInfo: g, backend: e, bias: a, preluActivationWeights: i, leakyreluAlpha: f, activation: d });\n}\nvar aW = { kernelName: vo, backendName: \"webgpu\", kernelFunc: tpe };\nfunction rpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, filter: s, bias: a, preluActivationWeights: i } = t8, { strides: p, pad: u, dilations: c, dimRoundingMode: l, activation: m, leakyreluAlpha: d } = o, f = c;\n f == null && (f = [1, 1]), y.assert(w.eitherStridesOrDilationsAreOne(p, f), () => `Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${p} and dilations '${f}'`);\n let h = w.computeConv2DInfo(n.shape, s.shape, p, f, u, l, true), g = [n, s], x = a != null, b = i != null;\n x && g.push(a), b && g.push(i);\n let C = [{ type: \"int32\", data: [h.padInfo.top, h.padInfo.left] }, { type: \"int32\", data: [h.inHeight, h.inWidth] }], S;\n return h.outHeight > 4 && h.outWidth > 4 && h.strideWidth <= 2 && h.inChannels === h.outChannels && h.dilationHeight === 1 && h.dilationWidth === 1 && h.inChannels % 4 === 0 ? (S = new tl(h, x, m, b), C.push({ type: \"int32\", data: [S.virtualWidth] })) : (S = new rl(h, x, m, b), C.push({ type: \"int32\", data: [h.filterHeight] }, { type: \"int32\", data: [h.filterWidth] }, { type: \"int32\", data: [h.strideHeight, h.strideWidth] }, { type: \"int32\", data: [h.dilationHeight, h.dilationWidth] })), m === \"leakyrelu\" && (C.push({ type: \"float32\", data: [d] }), S.uniforms += \" alpha : f32,\"), e.runWebGPUProgram(S, g, \"float32\", C);\n}\nvar iW = { kernelName: ko, backendName: \"webgpu\", kernelFunc: rpe };\nvar Wx = class {\n constructor(t8, e) {\n this.variableNames = [\"A\", \"indices\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = `gathernd_${t8}`, this.sliceDim = t8, this.uniforms = `sliceDim : i32, strides : ${ht(t8)},`;\n }\n getUserCode() {\n let t8;\n return this.sliceDim > 1 ? t8 = \"uniforms.strides[j]\" : t8 = \"uniforms.strides\", `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n var flattenIndex = 0;\n for (var j = 0; j < uniforms.sliceDim; j = j + 1) {\n let indexTemp = i32(round(getIndices(coords[0], j)));\n let strideNum = ${t8};\n flattenIndex = flattenIndex + indexTemp * strideNum;\n }\n\n setOutputAtIndex(index, getA(flattenIndex, coords[1]));\n }\n }\n `;\n }\n};\nfunction ope(r) {\n let { inputs: t8, backend: e } = r, { params: o, indices: n } = t8, s = n.shape, a = s[s.length - 1], i = y.sizeFromShape(o.shape), [p, u, c, l] = w.prepareAndValidate(o, n), m = pe({ inputs: { x: n }, backend: e, attrs: { shape: [u, a] } }), d = pe({ inputs: { x: o }, backend: e, attrs: { shape: [y.sizeFromShape(o.shape) / c, c] } });\n if (e.shouldExecuteOnCPU([o, n]) || o.dtype === \"string\") {\n let b = e.readSync(n.dataId), C = e.bufferSync(o), S = fz(b, C, o.dtype, u, a, c, l, o.shape, i);\n return e.makeTensorInfo(p, o.dtype, S.values);\n }\n let f = new Wx(a, [u, c]), h = [{ type: \"int32\", data: [a] }, { type: \"int32\", data: l }], g = e.runWebGPUProgram(f, [d, m], d.dtype, h), x = pe({ inputs: { x: g }, backend: e, attrs: { shape: p } });\n return e.disposeData(m.dataId), e.disposeData(d.dataId), e.disposeData(g.dataId), x;\n}\nvar uW = { kernelName: kn, backendName: \"webgpu\", kernelFunc: ope };\nvar Ux = class {\n constructor(t8, e) {\n this.variableNames = [\"A\", \"indices\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.slice(), this.aShape = t8, this.outputShape = e, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"gather\";\n }\n getUserCode() {\n let t8 = npe(this.aShape);\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let resRC = getCoordsFromIndex(index);\n let indexZ = i32(getIndices(resRC.x, resRC.z));\n let inBounds = select(0.0, 1.0, indexZ >= 0 && indexZ < uniforms.aShape[2]);\n setOutputAtIndex(index, inBounds * getA(${t8}));\n }\n }\n `;\n }\n};\nfunction npe(r) {\n let t8 = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\"], e = [];\n for (let o = 0; o < r.length; o++)\n o === 2 ? e.push(\"indexZ\") : e.push(`${t8[o]}`);\n return e.join();\n}\nfunction u0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, indices: s } = t8, { axis: a, batchDims: i } = o, p = y.parseAxisParam(a, n.shape)[0], u = w.segment_util.collectGatherOpShapeInfo(n, s, p, i), c = y.sizeFromShape(s.shape), l = [], m = pe({ inputs: { x: n }, backend: e, attrs: { shape: [u.batchSize, u.outerSize, u.dimSize, u.sliceSize] } }), d = pe({ inputs: { x: s }, backend: e, attrs: { shape: [u.batchSize, c / u.batchSize] } });\n l.push(m), l.push(d);\n let f = [u.batchSize, u.outerSize, c / u.batchSize, u.sliceSize];\n if (e.shouldExecuteOnCPU([n, s])) {\n let C = e.tensorMap.get(d.dataId).values, S = me(d.shape, d.dtype, C), _ = e.tensorMap.get(m.dataId).values, E = me(m.shape, m.dtype, _), R = hz(E, S, f);\n return l.forEach((D) => e.disposeData(D.dataId)), e.makeTensorInfo(u.outputShape, R.dtype, R.values);\n }\n let h = new Ux(m.shape, f), g = e.runWebGPUProgram(h, [m, d], m.dtype);\n l.push(g);\n let x = pe({ inputs: { x: g }, backend: e, attrs: { shape: u.outputShape } });\n return l.forEach((b) => e.disposeData(b.dataId)), x;\n}\nvar pW = { kernelName: aa, backendName: \"webgpu\", kernelFunc: u0 };\nvar spe = et({ opType: fe.GREATER, cpuKernelImpl: xz, dtype: \"bool\" });\nvar cW = { kernelName: Nn, backendName: \"webgpu\", kernelFunc: spe };\nvar ape = et({ opType: fe.GREATER_EQUAL, dtype: \"bool\", cpuKernelImpl: gz });\nvar lW = { kernelName: Tn, backendName: \"webgpu\", kernelFunc: ape };\nfunction ipe(r) {\n let { inputs: t8, backend: e } = r, { input: o } = t8;\n return Lx(o, true, e);\n}\nvar mW = { kernelName: Ui, backendName: \"webgpu\", kernelFunc: ipe };\nvar upe = ye({ opType: Z.IS_FINITE, dtype: \"bool\" });\nvar dW = { kernelName: _n, backendName: \"webgpu\", kernelFunc: upe };\nvar ppe = ye({ opType: Z.IS_INF, dtype: \"bool\" });\nvar fW = { kernelName: $n, backendName: \"webgpu\", kernelFunc: ppe };\nvar cpe = ye({ opType: Z.IS_NAN, dtype: \"bool\" });\nvar hW = { kernelName: En, backendName: \"webgpu\", kernelFunc: cpe };\nfunction lpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { alpha: s } = o, a = [{ type: \"float32\", data: [s] }], i = new Jr(n.shape, Z.LEAKYRELU, \"alpha : f32,\");\n return e.runWebGPUProgram(i, [n], \"float32\", a);\n}\nvar gW = { kernelName: Rn, backendName: \"webgpu\", kernelFunc: lpe };\nvar mpe = et({ opType: fe.LESS, dtype: \"bool\", cpuKernelImpl: bz });\nvar xW = { kernelName: Dn, backendName: \"webgpu\", kernelFunc: mpe };\nvar dpe = et({ opType: fe.LESS_EQUAL, dtype: \"bool\", cpuKernelImpl: yz });\nvar yW = { kernelName: An, backendName: \"webgpu\", kernelFunc: dpe };\nvar Gx = class {\n constructor(t8) {\n this.variableNames = [], this.outputShape = [], this.uniforms = \"start : f32, step : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"linSpace\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n setOutputAtIndex(index, uniforms.start + f32(index) * uniforms.step);\n }\n }\n `;\n }\n};\nfunction fpe(r) {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, num: s } = e, a = (n - o) / (s - 1), i = new Gx(s), p = [{ type: \"float32\", data: [o] }, { type: \"float32\", data: [a] }];\n return t8.runWebGPUProgram(i, [], \"float32\", p);\n}\nvar bW = { kernelName: Fn, backendName: \"webgpu\", kernelFunc: fpe };\nvar hpe = ye({ opType: Z.LOG, cpuKernelImpl: Cz });\nvar CW = { kernelName: Pn, backendName: \"webgpu\", kernelFunc: hpe };\nvar gpe = ye({ opType: Z.LOG1P });\nvar wW = { kernelName: On, backendName: \"webgpu\", kernelFunc: gpe };\nvar xpe = et({ opType: fe.LOGICAL_AND, dtype: \"bool\" });\nvar SW = { kernelName: Mn, backendName: \"webgpu\", kernelFunc: xpe };\nvar ype = ye({ opType: Z.LOGICAL_NOT });\nvar IW = { kernelName: Ln, backendName: \"webgpu\", kernelFunc: ype };\nvar bpe = et({ opType: fe.LOGICAL_OR });\nvar vW = { kernelName: Bn, backendName: \"webgpu\", kernelFunc: bpe };\nvar kW = `\n var powValue = 0.0;\n let basis = uniforms.bias + uniforms.alpha * sum;\n if (uniforms.beta == 0.5) {\n powValue = inverseSqrt(basis);\n } else if (uniforms.beta == 1.0) {\n powValue = 1.0 / basis;\n } else {\n powValue = exp(log(basis) * (-uniforms.beta));\n }\n`;\nvar Hx = class {\n constructor(t8) {\n this.outputShape = [], this.variableNames = [\"x\"], this.uniforms = \"radius : i32, bias : f32, alpha : f32, beta : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"lrn\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let b = coords[0];\n let r = coords[1];\n let c = coords[2];\n let d = coords[3];\n\n let x = getX(b, r, c, d);\n var sum = 0.0;\n for (var i = -uniforms.radius; i <= uniforms.radius; i = i + 1) {\n let idx = d + i;\n if (idx >= 0 && idx < uniforms.xShape[3]) {\n let z = getX(b, r, c, idx);\n sum = sum + z * z;\n }\n }\n ${kW}\n\n setOutputAtIndex(index, x * powValue);\n }\n }\n `;\n }\n};\nvar Kx = class {\n constructor(t8, e) {\n this.outputShape = [], this.variableNames = [\"x\"], this.uniforms = \"radius : i32, bias : f32, alpha : f32, beta : f32,\", this.workgroupSize = [256, 1, 1], this.maxAllowRadius = 16, y.assert(e <= this.maxAllowRadius, () => `Radius must be less than or equal to ${this.maxAllowRadius}, current radius is ${e}`), this.outputShape = t8, this.elementsPerWorkgroup = this.workgroupSize[0] - 2 * this.maxAllowRadius, this.dispatchLayout = { x: [3], y: [2], z: [0, 1] }, this.dispatch = H(this.dispatchLayout, this.outputShape, [this.elementsPerWorkgroup, this.workgroupSize[1], this.workgroupSize[2]]), this.shaderKey = \"lrn_shared\";\n }\n getUserCode() {\n return `\n var lrnSub: array;\n const elementsPerWorkgroup = ${this.elementsPerWorkgroup};\n const maxAllowRadius = ${this.maxAllowRadius};\n\n ${G()} {\n let localDepth = i32(localId.x);\n let workgroupDepth = i32(workgroupId.x) * elementsPerWorkgroup;\n let xDepth = workgroupDepth + localDepth - maxAllowRadius;\n let b = i32(globalId.z) / uniforms.xShape[1];\n let r = i32(globalId.z) - b * uniforms.xShape[1];\n let c = i32(globalId.y);\n let d = workgroupDepth + localDepth;\n\n var x = 0.0;\n if (xDepth >= 0 && xDepth < uniforms.xShape[3]) {\n x = getX(b, r, c, xDepth);\n }\n lrnSub[localDepth] = x;\n workgroupBarrier();\n\n if (localDepth < elementsPerWorkgroup && d < uniforms.outShape[3]) {\n var sum = 0.0;\n let index = localDepth + maxAllowRadius;\n for (var i = -uniforms.radius; i <= uniforms.radius; i = i + 1) {\n let z = lrnSub[index + i];\n sum = sum + z * z;\n }\n ${kW}\n\n setOutputAtCoords(b, r, c, d, lrnSub[index] * powValue);\n }\n } `;\n }\n};\nfunction Cpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { depthRadius: s, bias: a, alpha: i, beta: p } = o, u;\n s > 16 ? u = new Hx(n.shape) : u = new Kx(n.shape, s);\n let c = [{ type: \"int32\", data: [s] }, { type: \"float32\", data: [a] }, { type: \"float32\", data: [i] }, { type: \"float32\", data: [p] }];\n return e.runWebGPUProgram(u, [n], n.dtype, c);\n}\nvar NW = { kernelName: zn, backendName: \"webgpu\", kernelFunc: Cpe };\nvar qx = class {\n constructor(t8) {\n this.outputShape = [], this.variableNames = [\"inputImage\", \"outputImage\", \"dy\"], this.uniforms = \"depthRadius : i32, bias : f32, alpha : f32, beta : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"lrn_grad\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let b = coords[0];\n let r = coords[1];\n let c = coords[2];\n\n let MIN_DEPTH_BEGIN = 0;\n let MAX_DEPTH_END = uniforms.outShape[3];\n var result = 0.0;\n for (var d = MIN_DEPTH_BEGIN; d < MAX_DEPTH_END; d++) {\n let depthBegin = max(MIN_DEPTH_BEGIN, d - uniforms.depthRadius);\n let depthEnd = min(MAX_DEPTH_END, d + uniforms.depthRadius + 1);\n\n var norm = 0.0;\n for (var k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; k++) {\n if (k < depthBegin) {\n continue;\n } else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n } else {\n break;\n }\n }\n\n norm = uniforms.alpha * norm + uniforms.bias;\n\n for (var k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; k++) {\n if (k < depthBegin) {\n continue;\n } else if (k >= depthBegin && k < depthEnd) {\n var dyi = -2.0 * uniforms.alpha * uniforms.beta\n * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * uniforms.beta);\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n } else {\n break;\n }\n }\n }\n\n setOutputAtIndex(index, result);\n }\n }\n `;\n }\n};\nfunction wpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, y: s, dy: a } = t8, { depthRadius: i, bias: p, alpha: u, beta: c } = o, l = new qx(n.shape), m = [{ type: \"int32\", data: [i] }, { type: \"float32\", data: [p] }, { type: \"float32\", data: [u] }, { type: \"float32\", data: [c] }];\n return e.runWebGPUProgram(l, [n, s, a], n.dtype, m);\n}\nvar TW = { kernelName: Qa, backendName: \"webgpu\", kernelFunc: wpe };\nvar Spe = et({ opType: fe.MAX, cpuKernelImpl: Sz });\nvar _W = { kernelName: Wn, backendName: \"webgpu\", kernelFunc: Spe };\nfunction Ipe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dimRoundingMode: p } = o, u = 1, c = w.computePool2DInfo(n.shape, s, a, u, i, p);\n return ax(n, c, \"max\", e);\n}\nvar $W = { kernelName: Un, backendName: \"webgpu\", kernelFunc: Ipe };\nfunction vpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { filterSize: s, strides: a, pad: i, dataFormat: p, dimRoundingMode: u } = o, c = [1, 1, 1], l = w.computePool3DInfo(n.shape, s, a, c, i, u, p), m = new _u(l, \"max\"), d = [{ type: \"int32\", data: [l.strideDepth, l.strideHeight, l.strideWidth] }, { type: \"int32\", data: [l.padInfo.front, l.padInfo.top, l.padInfo.left] }, { type: \"int32\", data: [l.inDepth, l.inHeight, l.inWidth] }, { type: \"int32\", data: [l.effectiveFilterDepth, l.effectiveFilterHeight, l.effectiveFilterWidth] }];\n return e.runWebGPUProgram(m, [n], n.dtype, d);\n}\nvar EW = { kernelName: ia, backendName: \"webgpu\", kernelFunc: vpe };\nvar jx = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"maxPos\"], this.uniforms = `strides : vec2, pads : vec2, dilations : vec2, filterDims : vec2,\n outHeight : i32, outWidth : i32`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"maxPool2DBackprop\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords[0];\n let d = coords[3];\n\n let dyRCCorner = vec2(coords.yz) - uniforms.pads;\n let dyRCorner = dyRCCorner.x;\n let dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n let lastIndex = uniforms.filterDims[0] * uniforms.filterDims[1] - 1;\n for (var wR = 0; wR < uniforms.filterDims[0]; wR += uniforms.dilations[0]) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[0]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims[1]; wC += uniforms.dilations[1]) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[1]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n let idyC = i32(dyC);\n\n let dyValue = getDy(batch, idyR, idyC, d);\n let maxPosValue = lastIndex - i32(getMaxPos(batch, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n let curPosValue = wR * uniforms.filterDims[1] + wC;\n let mask = select(0.0, 1.0, maxPosValue == curPosValue);\n dotProd += dyValue * mask;\n }\n }\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nvar Xx = class {\n constructor(t8) {\n this.variableNames = [\"dy\", \"maxPos\"], this.uniforms = `strides : vec3, pads : vec3, filterDims : vec3,\n outDepth : i32, outHeight : i32, outWidth : i32`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8.inShape, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"maxPool3DBackprop\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let batch = coords.x;\n let ch = coords.u;\n\n let dyCorner = vec3(coords.y, coords.z, coords.w) - uniforms.pads;\n let dyDCorner = dyCorner.x;\n let dyRCorner = dyCorner.y;\n let dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = 0.0;\n let lastIndex = uniforms.filterDims[0] * uniforms.filterDims[1] * uniforms.filterDims[2] - 1;\n\n for (var wD = 0; wD < uniforms.filterDims[0]; wD++) {\n let dyD = f32(dyDCorner + wD) / f32(uniforms.strides[0]);\n\n if (dyD < 0.0 || dyD >= f32(uniforms.outDepth) || fract(dyD) > 0.0) {\n continue;\n }\n let idyD = i32(dyD);\n\n for (var wR = 0; wR < uniforms.filterDims[1]; wR++) {\n let dyR = f32(dyRCorner + wR) / f32(uniforms.strides[1]);\n\n if (dyR < 0.0 || dyR >= f32(uniforms.outHeight) || fract(dyR) > 0.0) {\n continue;\n }\n let idyR = i32(dyR);\n\n for (var wC = 0; wC < uniforms.filterDims[2]; wC++) {\n let dyC = f32(dyCCorner + wC) / f32(uniforms.strides[2]);\n\n if (dyC < 0.0 || dyC >= f32(uniforms.outWidth) || fract(dyC) > 0.0) {\n continue;\n }\n let idyC = i32(dyC);\n\n let dyValue = getDy(batch, idyD, idyR, idyC, ch);\n let maxPosValue = lastIndex - i32(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n let curPosValue = wD * uniforms.filterDims[1] * uniforms.filterDims[2] + wR * uniforms.filterDims[2] + wC;\n let mask = select(0.0, 1.0, maxPosValue == curPosValue);\n dotProd += dyValue * mask;\n }\n }\n }\n\n setOutputAtIndex(index, dotProd);\n }\n }\n `;\n }\n};\nfunction kpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s } = t8, a = s, { filterSize: i, strides: p, pad: u, dimRoundingMode: c } = o, l = [1, 1, 1], m = w.computePool3DInfo(a.shape, i, p, l, u, c), d = new _u(m, \"max\", true), f = [{ type: \"int32\", data: [m.strideDepth, m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.padInfo.front, m.padInfo.top, m.padInfo.left] }, { type: \"int32\", data: [m.inDepth, m.inHeight, m.inWidth] }, { type: \"int32\", data: [m.effectiveFilterDepth, m.effectiveFilterHeight, m.effectiveFilterWidth] }], h = e.runWebGPUProgram(d, [a], \"int32\", f), g = new Xx(m);\n f = [{ type: \"int32\", data: [m.strideDepth, m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.effectiveFilterDepth - 1 - m.padInfo.front, m.effectiveFilterHeight - 1 - m.padInfo.top, m.effectiveFilterWidth - 1 - m.padInfo.left] }, { type: \"int32\", data: [m.effectiveFilterDepth, m.effectiveFilterHeight, m.effectiveFilterWidth] }, { type: \"int32\", data: [m.outDepth] }, { type: \"int32\", data: [m.outHeight] }, { type: \"int32\", data: [m.outWidth] }];\n let x = e.runWebGPUProgram(g, [n, h], a.dtype, f);\n return e.disposeData(h.dataId), x;\n}\nvar RW = { kernelName: Ki, backendName: \"webgpu\", kernelFunc: kpe };\nfunction Npe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { dy: n, input: s, output: a } = t8, i = s;\n fm([s, a], \"maxPoolGrad\");\n let { filterSize: p, strides: u, pad: c, dimRoundingMode: l } = o, m = w.computePool2DInfo(i.shape, p, u, 1, c, l), d = new za(m, \"max\", true), f = [{ type: \"int32\", data: [m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.padInfo.top, m.padInfo.left] }, { type: \"int32\", data: [m.dilationHeight, m.dilationWidth] }, { type: \"int32\", data: [m.inHeight, m.inWidth] }, { type: \"int32\", data: [m.effectiveFilterHeight, m.effectiveFilterWidth] }], h = e.runWebGPUProgram(d, [i], \"int32\", f), g = new jx(m);\n f = [{ type: \"int32\", data: [m.strideHeight, m.strideWidth] }, { type: \"int32\", data: [m.effectiveFilterHeight - 1 - m.padInfo.top, m.effectiveFilterWidth - 1 - m.padInfo.left] }, { type: \"int32\", data: [m.dilationHeight, m.dilationWidth] }, { type: \"int32\", data: [m.effectiveFilterHeight, m.effectiveFilterWidth] }, { type: \"int32\", data: [m.outHeight] }, { type: \"int32\", data: [m.outWidth] }];\n let x = e.runWebGPUProgram(g, [n, h], i.dtype, f);\n return e.disposeData(h.dataId), x;\n}\nvar DW = { kernelName: Hi, backendName: \"webgpu\", kernelFunc: Npe };\nfunction Tpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { filterSize: n, strides: s, pad: a, includeBatchInIndex: i } = o, { x: p } = t8;\n y.assert(p.shape.length === 4, () => `Error in maxPool: input must be rank 4 but got rank ${p.shape.length}.`);\n let u = [1, 1];\n y.assert(w.eitherStridesOrDilationsAreOne(s, u), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);\n let c = w.computePool2DInfo(p.shape, n, s, u, a), l = [{ type: \"int32\", data: [c.strideHeight, c.strideWidth] }, { type: \"int32\", data: [c.padInfo.top, c.padInfo.left] }, { type: \"int32\", data: [c.dilationHeight, c.dilationWidth] }, { type: \"int32\", data: [c.inHeight, c.inWidth] }, { type: \"int32\", data: [c.effectiveFilterHeight, c.effectiveFilterWidth] }], m = new za(c, \"max\", false), d = e.runWebGPUProgram(m, [p], p.dtype, l);\n m = new za(c, \"max\", true, true, i);\n let f = e.runWebGPUProgram(m, [p], \"int32\", l);\n return [d, f];\n}\nvar AW = { kernelName: ua, backendName: \"webgpu\", kernelFunc: Tpe };\nfunction _pe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n return eo(n, s, a, \"min\", e);\n}\nvar FW = { kernelName: Hn, backendName: \"webgpu\", kernelFunc: _pe };\nvar $pe = et({ opType: fe.MIN, cpuKernelImpl: Iz });\nvar PW = { kernelName: Kn, backendName: \"webgpu\", kernelFunc: $pe };\nvar Yx = class {\n constructor(t8, e, o) {\n this.uniforms = \"\", this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e.map((n, s) => n[0] + t8[s] + n[1]), this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.xShape = t8, e.map((n, s) => {\n this.uniforms += ` pad${s} : vec2,`;\n }), this.offset = o === \"reflect\" ? 0 : 1, this.shaderKey = `mirrorPad_${o}`;\n }\n getUserCode() {\n let t8 = this.xShape.length, e = this.xShape.map((u, c) => `uniforms.pad${c}[0]`).join(\",\"), o = this.xShape.map((u, c) => `uniforms.pad${c}[0] + uniforms.xShape${t8 > 1 ? `[${c}]` : \"\"}`).join(\",\"), n = t8 === 1 ? \"start\" : \"start[i]\", s = t8 === 1 ? \"end\" : \"end[i]\", a = t8 === 1 ? \"outC\" : \"outC[i]\", i = ht(t8), p = t8 > 1 ? [\"coords[0]\", \"coords[1]\", \"coords[2]\", \"coords[3]\"].slice(0, t8) : \"coords\";\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let start = ${i}(${e});\n let end = ${i}(${o});\n var outC = getCoordsFromIndex(index);\n for (var i = 0; i < ${t8}; i = i + 1) {\n if (${a} < ${n}) {\n ${a} = ${n} * 2 - ${a} - ${this.offset};\n } else if(${a} >= ${s}) {\n ${a} = (${s} - 1) * 2 - ${a} + ${this.offset};\n }\n }\n let coords = outC - start;\n setOutputAtIndex(index, getX(${p}));\n }\n }\n `;\n }\n};\nvar OW = { kernelName: qn, backendName: \"webgpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { x: o } = r, { paddings: n, mode: s } = t8, a = e, i = n.map((c) => ({ type: \"int32\", data: [c[0], c[1]] })), p = new Yx(o.shape, n, s);\n return a.runWebGPUProgram(p, [o], o.dtype, i);\n} };\nvar Epe = et({ opType: fe.MOD });\nvar MW = { kernelName: jn, backendName: \"webgpu\", kernelFunc: Epe };\nvar Qx = class {\n constructor(t8, e) {\n this.variableNames = [\"probs\"], this.outputShape = [], this.uniforms = \"seed : f32, numOutcomes: i32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8, e], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"multinomial\";\n }\n getUserCode() {\n return `\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n fn random (seed : f32, resultUV : vec2) -> f32 {\n let HASHSCALE1 = 443.8975;\n let p = resultUV * seed;\n var p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 = p3 + dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let batch = coords[0];\n\n let resUV = vec2(f32(coords[1]) / f32(uniforms.outShape[1]),\n f32(coords[0]) / f32(uniforms.outShape[0]));\n let r = random(uniforms.seed, resUV);\n var cdf = 0.0;\n for (var i = 0; i < uniforms.numOutcomes - 1; i = i + 1) {\n cdf = cdf + getProbs(batch, i);\n\n if (r < cdf) {\n setOutputAtIndexI32(index, i);\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutputAtIndexI32(index, uniforms.numOutcomes - 1);\n }\n }\n `;\n }\n};\nvar Zx = class {\n constructor(t8) {\n this.variableNames = [\"logits\"], this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = [this.outputShape[0], 1, 1], this.outputShape[1] >= 4096 ? this.workgroupSize = [256, 1, 1] : this.workgroupSize = [64, 1, 1], this.shaderKey = \"softmax\";\n }\n getUserCode() {\n return `\n var buf : array;\n var rowMaxShared : f32;\n var rowSumShared : f32;\n const blockSize = ${this.workgroupSize[0]};\n ${G(\"index\")} {\n let row = index / blockSize;\n let tid = i32(localId.x);\n let cols = uniforms.outShape[1];\n\n var threadMax = -3.402823e+38f;\n for (var col = tid; col < cols; col += blockSize) {\n let value = getLogits(row, col);\n threadMax = max(threadMax, value);\n }\n if (tid < cols) {\n buf[tid] = threadMax;\n }\n workgroupBarrier();\n\n var reduceSize = min(cols, blockSize);\n for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) {\n reduceSize = currSize + (reduceSize & 1);\n if (tid < currSize) {\n buf[tid] = max(buf[tid], buf[tid + reduceSize]);\n }\n workgroupBarrier();\n }\n\n if (tid == 0) {\n rowMaxShared = buf[0];\n }\n workgroupBarrier();\n\n var threadSum = 0.0;\n for (var col = tid; col < cols; col += blockSize) {\n let subExp = exp(getLogits(row, col) - rowMaxShared);\n threadSum += subExp;\n }\n buf[tid] = threadSum;\n workgroupBarrier();\n\n for (var currSize = blockSize >> 1; currSize > 0; currSize = currSize >> 1) {\n if (tid < currSize) {\n buf[tid] = buf[tid] + buf[tid + currSize];\n }\n workgroupBarrier();\n }\n\n if (tid == 0) {\n rowSumShared = buf[0];\n }\n workgroupBarrier();\n\n for (var col = tid; col < cols; col += blockSize) {\n let value = exp(getLogits(row, col) - rowMaxShared) / rowSumShared;\n setOutputAtCoords(row, col, value);\n }\n }\n `;\n }\n};\nfunction p0(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { dim: s } = o, a = pe({ inputs: { x: n }, backend: e, attrs: { shape: [y.sizeFromShape(n.shape) / n.shape[s], n.shape[s]] } }), i = new Zx(a.shape), p = e.runWebGPUProgram(i, [a], n.dtype), u = pe({ inputs: { x: p }, backend: e, attrs: { shape: n.shape } });\n return e.disposeData(a.dataId), e.disposeData(p.dataId), u;\n}\nvar LW = { kernelName: vs, backendName: \"webgpu\", kernelFunc: p0 };\nfunction Rpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { logits: n } = t8, { numSamples: s, seed: a, normalized: i } = o, p = i ? n : p0({ inputs: { logits: n }, backend: e, attrs: { dim: n.shape.length - 1 } }), u = p.shape[0], c = p.shape[1], l = new Qx(u, s), m = [{ type: \"float32\", data: [a] }, { type: \"int32\", data: [c] }], d = e.runWebGPUProgram(l, [p], \"int32\", m);\n return i || e.disposeData(p.dataId), d;\n}\nvar BW = { kernelName: Xn, backendName: \"webgpu\", kernelFunc: Rpe };\nfunction Dpe(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (e.shouldExecuteOnCPU([o])) {\n let s = e.tensorMap.get(o.dataId), [a, i] = kz(s.values, o.shape, o.dtype);\n return e.makeTensorInfo(i, o.dtype, a);\n }\n let n = new Jr(o.shape, Z.NEG);\n return e.runWebGPUProgram(n, [o], o.dtype);\n}\nvar zW = { kernelName: pa, backendName: \"webgpu\", kernelFunc: Dpe };\nfunction Ape(r) {\n console.warn(\"tf.nonMaxSuppression() in webgpu locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p } = o, u = e.readSync(n.dataId), c = e.readSync(s.dataId), { selectedIndices: l } = Wt.nonMaxSuppressionV3Impl(u, c, a, i, p);\n return e.makeTensorInfo([l.length], \"int32\", new Int32Array(l));\n}\nvar VW = { kernelName: Zn, backendName: \"webgpu\", kernelFunc: Ape };\nfunction Fpe(r) {\n console.warn(\"tf.nonMaxSuppression() in webgpu locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");\n let { inputs: t8, backend: e, attrs: o } = r, { boxes: n, scores: s } = t8, { maxOutputSize: a, iouThreshold: i, scoreThreshold: p, softNmsSigma: u } = o, c = e.readSync(n.dataId), l = e.readSync(s.dataId), m = a, d = i, f = p, h = u, { selectedIndices: g, selectedScores: x } = Wt.nonMaxSuppressionV5Impl(c, l, m, d, f, h);\n return [e.makeTensorInfo([g.length], \"int32\", new Int32Array(g)), e.makeTensorInfo([x.length], \"float32\", new Float32Array(x))];\n}\nvar WW = { kernelName: Jn, backendName: \"webgpu\", kernelFunc: Fpe };\nvar Jx = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"], this.uniforms = \"onValue : f32, offValue : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8, e], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"onehot\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n setOutputAtIndex(index, mix(uniforms.offValue, uniforms.onValue,\n f32(i32(round(getX(coords.x))) == coords.y)));\n }\n }\n `;\n }\n};\nfunction Ppe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n } = t8, { dtype: s, depth: a, onValue: i, offValue: p } = o, u = y.sizeFromShape(n.shape), c = new Jx(u, a), l = pe({ inputs: { x: n }, backend: e, attrs: { shape: [u] } }), m = [{ type: \"float32\", data: [i] }, { type: \"float32\", data: [p] }], d = e.runWebGPUProgram(c, [l], s, m);\n e.disposeData(l.dataId);\n let f = [...n.shape, a], h = pe({ inputs: { x: d }, backend: e, attrs: { shape: f } });\n return e.disposeData(d.dataId), h;\n}\nvar UW = { kernelName: es, backendName: \"webgpu\", kernelFunc: Ppe };\nfunction bm(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"complex64\") {\n let n = Ni({ inputs: { input: o }, backend: e }), s = bm({ inputs: { x: n }, backend: e }), a = Mp({ inputs: { input: o }, backend: e }), i = bm({ inputs: { x: a }, backend: e }), p = yo({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeData(n.dataId), e.disposeData(s.dataId), e.disposeData(a.dataId), e.disposeData(i.dataId), p;\n } else\n return kt({ attrs: { shape: o.shape, dtype: o.dtype, value: o.dtype === \"string\" ? \"\" : 0 }, backend: e });\n}\nvar GW = { kernelName: Sa, backendName: \"webgpu\", kernelFunc: bm };\nfunction HW(r) {\n let { inputs: t8, backend: e } = r, { x: o } = t8;\n if (o.dtype === \"string\")\n throw new Error(\"onesLike is not supported under string dtype\");\n if (o.dtype === \"complex64\") {\n let n = Ni({ inputs: { input: o }, backend: e }), s = HW({ inputs: { x: n }, backend: e }), a = Mp({ inputs: { input: o }, backend: e }), i = bm({ inputs: { x: a }, backend: e }), p = yo({ inputs: { real: s, imag: i }, backend: e });\n return e.disposeData(n.dataId), e.disposeData(s.dataId), e.disposeData(a.dataId), e.disposeData(i.dataId), p;\n } else\n return kt({ attrs: { shape: o.shape, dtype: o.dtype, value: 1 }, backend: e });\n}\nvar KW = { kernelName: ca, backendName: \"webgpu\", kernelFunc: HW };\nfunction Ope(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { axis: n } = o;\n if (t8.length === 1)\n return Mx({ inputs: { input: t8[0] }, backend: e, attrs: { dim: n } });\n let s = t8[0].shape, a = t8[0].dtype;\n t8.forEach((c) => {\n y.assertShapesMatch(s, c.shape, \"All tensors passed to stack must have matching shapes\"), y.assert(a === c.dtype, () => \"All tensors passed to stack must have matching dtypes\");\n });\n let i = [], p = t8.map((c) => {\n let l = Mx({ inputs: { input: c }, backend: e, attrs: { dim: n } });\n return i.push(l), l;\n }), u = n0({ inputs: p, backend: e, attrs: { axis: n } });\n return i.forEach((c) => e.disposeData(c.dataId)), u;\n}\nvar qW = { kernelName: la, backendName: \"webgpu\", kernelFunc: Ope };\nfunction c0(r, t8 = false) {\n let e = r.length, o = ht(e), n = r.map((l, m) => `uniforms.pad${m}[0]`).join(\",\"), s = r.map((l, m) => `uniforms.pad${m}[0] + uniforms.xShape${e > 1 ? `[${m}]` : \"\"}`).join(\",\"), a = e > 1 ? `${o}(${n})` : `${n}`, i = e > 1 ? `${o}(${s})` : `${s}`, p = e > 1 ? \"any(paddedCoords < start)\" : \"paddedCoords < start\", u = e > 1 ? \"any(paddedCoords >= end)\" : \"paddedCoords >= end\", c = e > 1 ? [\"coords[0]\", \"coords[1]\", \"coords[2]\", \"coords[3]\"].slice(0, e) : \"coords\";\n return `\n let start = ${a};\n let end = ${i};\n if (${p} || ${u}) {\n setOutputAtIndex(index, ${t8 ? 0 : \"uniforms.constantValue\"});\n } else {\n let coords = paddedCoords - start;\n setOutputAtIndex(index, getX(${c}));\n }\n `;\n}\nvar ey = class {\n constructor(t8, e) {\n this.variableNames = [\"x\"], this.uniforms = \"constantValue : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e.map((o, n) => o[0] + t8[n] + o[1]), this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), e.map((o, n) => {\n this.uniforms += ` pad${n} : vec2,`;\n }), this.xShape = t8, this.shaderKey = \"pad\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let paddedCoords = getCoordsFromIndex(index);\n ${c0(this.xShape)}\n }\n }\n `;\n }\n};\nvar Mpe = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { paddings: s, constantValue: a } = o;\n if (s.every((u) => y.arraysEqual(u, [0, 0])))\n return Ft({ inputs: { x: n }, backend: e });\n if (y.sizeFromShape(n.shape) === 0) {\n let u = s.map((c, l) => c[0] + n.shape[l] + c[1]);\n return kt({ backend: e, attrs: { shape: u, value: a, dtype: n.dtype } });\n }\n let i = [{ type: \"float32\", data: [a] }];\n s.map((u) => i.push({ type: \"int32\", data: [u[0], u[1]] }));\n let p = new ey(n.shape, s);\n return e.runWebGPUProgram(p, [n], n.dtype, i);\n};\nvar jW = { kernelName: ts, backendName: \"webgpu\", kernelFunc: Mpe };\nvar Lpe = et({ opType: fe.POW });\nvar XW = { kernelName: rs, backendName: \"webgpu\", kernelFunc: Lpe };\nfunction Bpe(r) {\n let { inputs: t8, backend: e } = r, { x: o, alpha: n } = t8, s = new ki(fe.PRELU, o.shape, n.shape);\n return e.runWebGPUProgram(s, [o, n], \"float32\");\n}\nvar YW = { kernelName: os, backendName: \"webgpu\", kernelFunc: Bpe };\nfunction zpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { axis: s, keepDims: a } = o;\n return eo(n, s, a, \"prod\", e);\n}\nvar QW = { kernelName: ns, backendName: \"webgpu\", kernelFunc: zpe };\nvar Vpe = (r) => {\n let { backend: t8, attrs: e } = r, { start: o, stop: n, step: s, dtype: a } = e, i = _z(o, n, s, a);\n return t8.makeTensorInfo([i.length], a, i);\n};\nvar ZW = { kernelName: ma, backendName: \"webgpu\", kernelFunc: Vpe };\nvar Wpe = et({ opType: fe.DIV });\nvar JW = { kernelName: hn, backendName: \"webgpu\", kernelFunc: Wpe };\nvar Upe = ye({ opType: Z.RECIPROCAL });\nvar eU = { kernelName: ss, backendName: \"webgpu\", kernelFunc: Upe };\nvar Gpe = ye({ opType: Z.RELU });\nvar tU = { kernelName: as, backendName: \"webgpu\", kernelFunc: Gpe };\nvar Hpe = ye({ opType: Z.RELU6 });\nvar rU = { kernelName: ps, backendName: \"webgpu\", kernelFunc: Hpe };\nvar ty = class {\n constructor(t8, e, o) {\n this.variableNames = [\"x\"], this.uniforms = \"adjustHeightWidth : vec2, halfPixelCenters : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8[0], e, o, t8[3]], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"resizeBilinear\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let b = coords[0];\n let d = coords[3];\n let rc = coords.yz;\n\n let effectiveInSize = vec2(\n f32(uniforms.xShape.y) - uniforms.adjustHeightWidth[0],\n f32(uniforms.xShape.z) - uniforms.adjustHeightWidth[1]);\n\n let effectiveOutSize = vec2(\n f32(uniforms.outShape.y) - uniforms.adjustHeightWidth[0],\n f32(uniforms.outShape.z) - uniforms.adjustHeightWidth[1]);\n\n let effectiveInputOverOutputRatioRC =\n effectiveInSize / effectiveOutSize;\n\n // Fractional source index\n let sourceFracIndexRC =\n (vec2(rc) + vec2(uniforms.halfPixelCenters)) *\n effectiveInputOverOutputRatioRC - vec2(uniforms.halfPixelCenters);\n\n // Compute the four integer indices.\n let sourceFloorRC = vec2(sourceFracIndexRC);\n let sourceCeilRC = vec2(\n min(vec2(uniforms.xShape.yz) - vec2(1.0), ceil(sourceFracIndexRC)));\n\n let topLeft = getX(b, sourceFloorRC.x, sourceFloorRC.y, d);\n let bottomLeft = getX(b, sourceCeilRC.x, sourceFloorRC.y, d);\n let topRight = getX(b, sourceFloorRC.x, sourceCeilRC.y, d);\n let bottomRight = getX(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n let fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n let top = topLeft + (topRight - topLeft) * fracRC.y;\n let bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n let newValue = top + (bottom - top) * fracRC.x;\n\n setOutputAtIndex(index, newValue);\n }\n }\n `;\n }\n};\nfunction Kpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, size: a, halfPixelCenters: i } = o, [p, u] = a, c = s && p > 1 ? 1 : 0, l = s && u > 1 ? 1 : 0, d = [{ type: \"float32\", data: [c, l] }, { type: \"float32\", data: [i ? 0.5 : 0] }], f = new ty(n.shape, p, u);\n return e.runWebGPUProgram(f, [n], \"float32\", d);\n}\nvar oU = { kernelName: us, backendName: \"webgpu\", kernelFunc: Kpe };\nvar ry = class {\n constructor(t8, e) {\n this.variableNames = [\"dy\"], this.uniforms = `effectiveXSize : vec2, effectiveYSize : vec2, heightScale : f32, widthScale : f32,\n invHeightScale : f32, invWidthScale : f32, winHeight : i32, winWidth : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.alignCorners = e, this.shaderKey = `resizeBilinearBackprop_${e}`;\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let b = coords[0];\n let d = coords[3];\n let r = coords[1];\n let c = coords[2];\n\n var accumulator = 0.0;\n\n // Compute bounds for where in dy we will look\n let startRLerp = floor(f32(r) * uniforms.invHeightScale);\n let startDyR = i32(startRLerp - f32(uniforms.winHeight / 2));\n\n let startCLerp = floor(f32(c) * uniforms.invWidthScale);\n let startDyC = i32(startCLerp - f32(uniforms.winWidth / 2));\n\n // Loop over dy\n for (var dyROffset = 0; dyROffset < uniforms.winHeight; dyROffset++) {\n let dyR = startDyR + dyROffset;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= uniforms.dyShape[1]) {\n continue;\n }\n\n for (var dyCOffset = 0; dyCOffset < uniforms.winWidth; dyCOffset++) {\n let dyC = startDyC + dyCOffset;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= uniforms.dyShape[2]) {\n continue;\n }\n\n let dxR = f32(dyR) * uniforms.heightScale;\n let topDxRIndex = i32(floor(dxR));\n let bottomDxRIndex = i32(min(ceil(dxR), f32(uniforms.outShape[1] - 1)));\n let dxRLerp = dxR - f32(topDxRIndex);\n let inverseDxRLerp = 1.0 - dxRLerp;\n\n let dxC = f32(dyC) * uniforms.widthScale;\n let leftDxCIndex = i32(floor(dxC));\n let rightDxCIndex = i32(min(ceil(dxC), f32(uniforms.outShape[2] - 1)));\n let dxCLerp = dxC - f32(leftDxCIndex);\n let inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutputAtIndex(index, accumulator);\n }\n }\n `;\n }\n};\nfunction qpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, [, i, p] = n.shape, [, u, c] = s.shape, l = [a && u > 1 ? i - 1 : i, a && c > 1 ? p - 1 : p], m = [a && u > 1 ? u - 1 : u, a && c > 1 ? c - 1 : c], d = l[0] / m[0], f = l[1] / m[1], h = 1 / d, g = 1 / f, x = Math.ceil(h) * 2 + 2, b = Math.ceil(g) * 2 + 2, C = new ry(n.shape, a), S = [{ type: \"int32\", data: l }, { type: \"int32\", data: m }, { type: \"float32\", data: [d] }, { type: \"float32\", data: [f] }, { type: \"float32\", data: [h] }, { type: \"float32\", data: [g] }, { type: \"int32\", data: [x] }, { type: \"int32\", data: [b] }];\n return e.runWebGPUProgram(C, [s], s.dtype, S);\n}\nvar nU = { kernelName: ei, backendName: \"webgpu\", kernelFunc: qpe };\nvar oy = class {\n constructor(t8, e, o, n) {\n this.variableNames = [\"x\"], this.uniforms = \"adjustHeightWidth : vec2, roundBase : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = [t8[0], e, o, t8[3]], this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.halfPixelCenters = n, this.shaderKey = `resizeNearest_${n}`;\n }\n getUserCode() {\n let t8;\n return this.halfPixelCenters ? t8 = \"max((vec2(rc) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\" : t8 = \"vec2(rc) * effectiveInputOverOutputRatioRC\", `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let b = coords[0];\n let d = coords[3];\n let rc = coords.yz;\n\n let effectiveInSize = vec2(\n f32(uniforms.xShape.y) - uniforms.adjustHeightWidth[0],\n f32(uniforms.xShape.z) - uniforms.adjustHeightWidth[1]);\n\n let effectiveOutSize = vec2(\n f32(uniforms.outShape.y) - uniforms.adjustHeightWidth[0],\n f32(uniforms.outShape.z) - uniforms.adjustHeightWidth[1]);\n\n let effectiveInputOverOutputRatioRC =\n effectiveInSize / effectiveOutSize;\n\n // Fractional source index\n let sourceFracIndexRC = ${t8};\n\n // Compute the coordinators of nearest neighbor point.\n let inputShapeRC = vec2(f32(uniforms.xShape.y), f32(uniforms.xShape.z));\n let sourceNearestRC = vec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + uniforms.roundBase)));\n let newValue = getX(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutputAtIndex(index, newValue);\n }\n }\n `;\n }\n};\nfunction jpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n } = t8, { alignCorners: s, halfPixelCenters: a, size: i } = o, [p, u] = i, c = s && p > 1 ? 1 : 0, l = s && u > 1 ? 1 : 0, d = [{ type: \"float32\", data: [c, l] }, { type: \"float32\", data: [s ? 0.5 : 0] }], f = new oy(n.shape, p, u, a);\n return e.runWebGPUProgram(f, [n], n.dtype, d);\n}\nvar sU = { kernelName: is, backendName: \"webgpu\", kernelFunc: jpe };\nvar ny = class {\n constructor(t8, e) {\n this.variableNames = [\"dy\"], this.uniforms = `effectiveXSize : vec2, effectiveYSize : vec2, invHeightScale : f32, invWidthScale : f32,\n winHeight : i32, winWidth : i32,`, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.alignCorners = e, this.shaderKey = `resizeNearestNeigborBackprop_${e}`;\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getOutputCoords();\n let b = coords[0];\n let d = coords[3];\n let r = coords[1];\n let c = coords[2];\n\n var accumulator = 0.0;\n\n // Compute bounds for where in dy we will look\n let startRLerp = floor(f32(r) * uniforms.invHeightScale);\n let startDyR = i32(floor(startRLerp - f32(uniforms.winHeight / 2)));\n\n let startCLerp = floor(f32(c) * uniforms.invWidthScale);\n let startDyC = i32(floor(startCLerp - f32(uniforms.winWidth / 2)));\n\n // Loop over dy\n for (var dyROffset = 0; dyROffset < uniforms.winHeight; dyROffset++) {\n let dyR = startDyR + dyROffset;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= uniforms.dyShape[1]) {\n continue;\n }\n\n for (var dyCOffset = 0; dyCOffset < uniforms.winWidth; dyCOffset++) {\n let dyC = startDyC + dyCOffset;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= uniforms.dyShape[2]) {\n continue;\n }\n\n let sourceFracRow = f32(uniforms.effectiveXSize[0]) *\n (f32(dyR) / f32(uniforms.effectiveYSize[0]));\n\n let sourceFracCol = f32(uniforms.effectiveXSize[1]) *\n (f32(dyC) / f32(uniforms.effectiveYSize[1]));\n\n let sourceNearestRow =\n i32(min(f32(uniforms.outShape[1] - 1),\n ${this.alignCorners ? \"floor(sourceFracRow + 0.5)\" : \"floor(sourceFracRow)\"}));\n\n let sourceNearestCol =\n i32(min(f32(uniforms.outShape[2] - 1),\n ${this.alignCorners ? \"floor(sourceFracCol + 0.5)\" : \"floor(sourceFracCol)\"}));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutputAtIndex(index, accumulator);\n }\n }\n `;\n }\n};\nfunction Xpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { images: n, dy: s } = t8, { alignCorners: a } = o, [, i, p] = n.shape, [, u, c] = s.shape, l = [a && u > 1 ? i - 1 : i, a && c > 1 ? p - 1 : p], m = [a && u > 1 ? u - 1 : u, a && c > 1 ? c - 1 : c], d = l[0] / m[0], f = l[1] / m[1], h = 1 / d, g = 1 / f, x = Math.ceil(h) * 2 + 2, b = Math.ceil(g) * 2 + 2, C = new ny(n.shape, a), S = [{ type: \"int32\", data: l }, { type: \"int32\", data: m }, { type: \"float32\", data: [h] }, { type: \"float32\", data: [g] }, { type: \"int32\", data: [x] }, { type: \"int32\", data: [b] }];\n return e.runWebGPUProgram(C, [s], s.dtype, S);\n}\nvar aU = { kernelName: Ja, backendName: \"webgpu\", kernelFunc: Xpe };\nvar sy = class {\n constructor(t8) {\n this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.uniforms = \" axis : vec4,\", this.shaderKey = \"reverse\";\n }\n getUserCode() {\n return `\n \n // Using uniform variables as judging conditions, so the function has\n // coherent execution within all threads.\n fn getReverseCoords(coords : vec4) -> vec4 {\n var reverseCoords = coords;\n if (uniforms.axis[0] == 1) {\n reverseCoords[0] = uniforms.xShape[0] - coords[0] - 1;\n }\n if (uniforms.axis[1] == 1) {\n reverseCoords[1] = uniforms.xShape[1] - coords[1] - 1;\n }\n if (uniforms.axis[2] == 1) {\n reverseCoords[2] = uniforms.xShape[2] - coords[2] - 1;\n }\n if (uniforms.axis[3] == 1) {\n reverseCoords[3] = uniforms.xShape[3] - coords[3] - 1;\n }\n\n return reverseCoords;\n }\n \n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let reverseCoords = getReverseCoords(coords);\n setOutputAtIndex(index, getX(reverseCoords[0],\n reverseCoords[1], reverseCoords[2], reverseCoords[3]));\n }\n }\n `;\n }\n};\nfunction Ype(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { dims: s } = o, a = n.shape.length;\n if (a === 0)\n return Ft({ inputs: { x: n }, backend: e });\n let i = n.shape, p = [1, 1, 1, 1];\n i.forEach((g, x) => {\n let b = x + 4 - a;\n p[b] = g;\n });\n let u = y.parseAxisParam(s, n.shape), c = [0, 0, 0, 0];\n u.forEach((g) => {\n let x = g + 4 - a;\n c[x] = 1;\n });\n let l = [{ type: \"int32\", data: c }], m = pe({ inputs: { x: n }, backend: e, attrs: { shape: p } }), d = new sy(p), f = e.runWebGPUProgram(d, [m], m.dtype, l);\n e.disposeData(m.dataId);\n let h = pe({ inputs: { x: f }, backend: e, attrs: { shape: i } });\n return e.disposeData(f.dataId), h;\n}\nvar iU = { kernelName: cs, backendName: \"webgpu\", kernelFunc: Ype };\nvar ay = class {\n constructor(t8, e) {\n this.outputShape = [], this.variableNames = [\"x\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.uniforms = `centerX : f32, centerY : f32, sinRadians : f32,\n cosRadians : f32,`, this.shaderKey = \"rotate\", this.outputShape = t8, typeof e == \"number\" ? (this.uniforms += \" fillValue : f32,\", this.fillSnippet = \"var outputValue = uniforms.fillValue;\", this.shaderKey += \"_float\") : (this.uniforms += \" fillValue : vec3,\", this.fillSnippet = \"var outputValue = uniforms.fillValue[coords[3]];\", this.shaderKey += \"_vec3\");\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let coordXFloat = (f32(coords[2]) - uniforms.centerX) *\n uniforms.cosRadians - (f32(coords[1]) - uniforms.centerY) *\n uniforms.sinRadians;\n let coordYFloat = (f32(coords[2]) - uniforms.centerX) *\n uniforms.sinRadians + (f32(coords[1]) - uniforms.centerY) *\n uniforms.cosRadians;\n let coordX = i32(round(coordXFloat + uniforms.centerX));\n let coordY = i32(round(coordYFloat + uniforms.centerY));\n ${this.fillSnippet}\n if(coordX >= 0 && coordX < uniforms.xShape[2] && coordY >= 0 &&\n coordY < uniforms.xShape[1]) {\n outputValue = getX(coords[0], coordY, coordX, coords[3]);\n }\n setOutputAtIndex(index, outputValue);\n }\n }\n `;\n }\n};\nvar uU = { kernelName: As, backendName: \"webgpu\", kernelFunc: ({ inputs: r, attrs: t8, backend: e }) => {\n let { image: o } = r, { radians: n, fillValue: s, center: a } = t8, i = e, p = new ay(o.shape, s), [u, c] = w.getImageCenter(a, o.shape[1], o.shape[2]), l = [{ type: \"float32\", data: [u] }, { type: \"float32\", data: [c] }, { type: \"float32\", data: [Math.sin(n)] }, { type: \"float32\", data: [Math.cos(n)] }];\n return typeof s == \"number\" ? l.push({ type: \"float32\", data: [Number.parseFloat(s.toFixed(2))] }) : l.push({ type: \"float32\", data: s }), i.runWebGPUProgram(p, [o], o.dtype, l);\n} };\nvar Qpe = ye({ opType: Z.ROUND });\nvar pU = { kernelName: ls, backendName: \"webgpu\", kernelFunc: Qpe };\nvar Zpe = ye({ opType: Z.RSQRT, cpuKernelImpl: $z });\nvar cU = { kernelName: ms, backendName: \"webgpu\", kernelFunc: Zpe };\nvar Va = class {\n constructor(t8, e, o, n, s, a, i, p = true) {\n this.variableNames = [\"updates\", \"indices\"], this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = a, this.type = i, this.sumDupeIndices = p, this.dispatchLayout = X(t8), this.dispatch = H(this.dispatchLayout, t8, this.workgroupSize), this.sliceDimGreaterThanOne = e > 1, this.shaderKey = `scatter_${o}_${n}_${this.sliceDimGreaterThanOne}_${i}_${p}`;\n let u = ht(s.length);\n this.uniforms = `sliceDim : i32, strides: ${u}, updatesSize: i32,`, this.updatesRank = n, this.indicesRank = o;\n }\n getUserCode() {\n let t8 = \"\";\n this.indicesRank === 1 ? t8 = \"coords[0]\" : this.indicesRank === 2 && (t8 = \"coords[0], j\");\n let e = `getIndices(${t8})`, o = this.sliceDimGreaterThanOne ? \"uniforms.strides[j]\" : \"uniforms.strides\", n = \"\", s = \"\";\n this.dispatchLayout.x.length === 1 ? (n = \"flattenedIndex\", s = `\n fn getUpdatesCoordsFromFlatIndex(index : i32) -> i32 {\n return index;\n }\n `) : this.dispatchLayout.x.length === 2 && (n = \"vec2(flattenedIndex, coords[1])\", s = `\n fn getUpdatesCoordsFromFlatIndex(index : i32) -> vec2 {\n // N.B. |updates| could be a scalar tensor, conceptually representing a\n // 2D tensor with all values equal to that. By design, its size must be\n // the same as |outShape[1]| in one dimension, and |indicesShape[0]|\n // gives the other.\n let sliceSize = uniforms.outShape[1];\n let d0 = index / sliceSize;\n let d1 = index - d0 * sliceSize;\n return vec2(d0, d1);\n }\n `);\n let i = `getUpdates(${Array.from({ length: this.updatesRank }, (u, c) => `coords[${c}]`).join(\", \")})`;\n return `\n ${s}\n ${G(\"index\")} {\n if (index < uniforms.updatesSize) {\n let coords = getUpdatesCoordsFromFlatIndex(index);\n var flattenedIndex = 0;\n for (var j = 0; j < uniforms.sliceDim; j = j + 1) {\n let indexInside = i32(round(${e}));\n flattenedIndex = flattenedIndex + indexInside * ${o};\n }\n let updateValue =\n ${Nu(this.type)}(${i});\n let flatIndex = getOutputIndexFromCoords(${n});\n\n ${this.sumDupeIndices ? Qr(\"&result[flatIndex]\", \"updateValue\", this.type) : \"atomicStore(&result[flatIndex], bitcast(updateValue));\"}\n }\n }`;\n }\n};\nfunction Jpe(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { indices: n, updates: s } = t8, { shape: a } = o, { sliceRank: i, numUpdates: p, sliceSize: u, strides: c, outputSize: l } = w.calculateShapes(s, n, a), m = [l / u, u];\n if (l === 0)\n return e.makeTensorInfo(a, n.dtype);\n let d = pe({ inputs: { x: n }, backend: e, attrs: { shape: [p, i] } }), f = pe({ inputs: { x: s }, backend: e, attrs: { shape: [p, u] } }), h = f.dtype, g = kt({ backend: e, attrs: { shape: m, value: 0, dtype: h } }), x = y.sizeFromShape(f.shape), b = [{ type: \"int32\", data: [i] }, { type: \"int32\", data: c }, { type: \"int32\", data: [x] }], C = new Va(f.shape, i, d.shape.length, f.shape.length, c, m, h), S = e.runWebGPUProgram(C, [f, d], h, b, g), k = pe({ inputs: { x: S }, backend: e, attrs: { shape: a } });\n return e.disposeData(d.dataId), e.disposeData(f.dataId), e.disposeData(S.dataId), k;\n}\nvar lU = { kernelName: ds, backendName: \"webgpu\", kernelFunc: Jpe };\nvar iy = class {\n constructor(t8, e) {\n this.outputShape = [], this.variableNames = [\"sortedSequence\", \"values\"], this.uniforms = \"numInputs : i32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.side = e, this.shaderKey = `search_sorted_${e}`;\n }\n getUserCode() {\n return `\n fn findBound(batch: i32, value: f32) -> i32 {\n var left = i32(0);\n var right = uniforms.numInputs;\n while (left < right) {\n var mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${this.side === \"left\" ? \"<\" : \"<=\"} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let value = getValuesByOutputIndex(index);\n setOutputAtIndexI32(index, findBound(coords[0], value));\n }\n }\n `;\n }\n};\nfunction ece(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sortedSequence: n, values: s } = t8, { side: a } = o, i = new iy([s.shape[0], s.shape[1]], a), p = [{ type: \"int32\", data: [n.shape[1]] }];\n return e.runWebGPUProgram(i, [n, s], \"int32\", p);\n}\nvar mU = { kernelName: hs, backendName: \"webgpu\", kernelFunc: ece };\nvar uy = class {\n constructor(t8, e, o) {\n this.variableNames = [\"c\", \"a\", \"b\"], this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = e, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.cRank = t8, this.rank = o, this.shaderKey = \"select\";\n }\n getUserCode() {\n let t8, e;\n if (this.rank > 4)\n throw Error(`Where for rank ${this.rank} is not yet supported`);\n if (this.rank === 1)\n e = \"resRC\", t8 = \"resRC\";\n else {\n let n = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\"], s = [], a = [];\n for (let i = 0; i < this.outputShape.length; i++)\n a.push(`${n[i]}`), i < this.cRank && s.push(`${n[i]}`);\n t8 = s.join(), e = a.join();\n }\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let resRC = getCoordsFromIndex(index);\n let cVal = getC(${t8});\n if (cVal >= 1.0) {\n setOutputAtIndex(index, getA(${e}));\n } else {\n setOutputAtIndex(index, getB(${e}));\n }\n }\n }\n `;\n }\n};\nfunction tce(r) {\n let { inputs: t8, backend: e } = r, { condition: o, t: n, e: s } = t8, a = new uy(o.shape.length, n.shape, n.shape.length);\n return e.runWebGPUProgram(a, [o, n, s], dt(n.dtype, s.dtype));\n}\nvar dU = { kernelName: fa, backendName: \"webgpu\", kernelFunc: tce };\nvar rce = ye({ opType: Z.SELU });\nvar fU = { kernelName: gs, backendName: \"webgpu\", kernelFunc: rce };\nvar oce = ye({ opType: Z.SIGMOID });\nvar hU = { kernelName: Cs, backendName: \"webgpu\", kernelFunc: oce };\nvar nce = ye({ opType: Z.SIGN });\nvar gU = { kernelName: bs, backendName: \"webgpu\", kernelFunc: nce };\nvar sce = ye({ opType: Z.SIN });\nvar xU = { kernelName: xs, backendName: \"webgpu\", kernelFunc: sce };\nvar ace = ye({ opType: Z.SINH });\nvar yU = { kernelName: ys, backendName: \"webgpu\", kernelFunc: ace };\nvar ice = ye({ opType: Z.SOFTPLUS });\nvar bU = { kernelName: ws, backendName: \"webgpu\", kernelFunc: ice };\nvar py = class {\n constructor(t8, e, o, n, s, a) {\n this.variableNames = [\"x\"], this.outputShape = [], this.uniforms = \"\", this.workgroupSize = [64, 1, 1], this.size = true;\n let i = new Array(n.length);\n for (let p = 0; p < i.length; p++)\n i[p] = n[s[p]];\n this.outputShape = i, this.newDim = s, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.xShape = t8, this.paddedXShape = e, this.uniforms += `reshapedPaddedXShape : ${ht(n.length)}, paddedXShapeStrides : ${ht(a)}, `, o.map((p, u) => {\n this.uniforms += ` pad${u} : vec2,`;\n }), this.shaderKey = `spaceToBatchND_${s}`;\n }\n getUserCode() {\n let t8 = ht(this.outputShape.length), e = Zv(this.newDim);\n return `\n ${cm(this.paddedXShape, \"PaddedX\")}\n ${G(\"index\")} {\n if(index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n let switchedIndex = getIndexFromCoords${this.outputShape.length}D(${t8}(${e}), uniforms.reshapedPaddedXShape);\n let paddedCoords = getPaddedXCoordsFromIndex(switchedIndex);\n ${c0(this.xShape, true)}\n }\n }\n `;\n }\n};\nvar uce = (r) => {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { blockShape: s, paddings: a } = o;\n y.assert(n.shape.length <= 4, () => \"spaceToBatchND for rank > 4 with a WebGPU backend not implemented yet\");\n let i = s.reduce((b, C) => b * C), p = [[0, 0]];\n p.push(...a);\n for (let b = 1 + s.length; b < n.shape.length; ++b)\n p.push([0, 0]);\n let u = p.map((b, C) => b[0] + n.shape[C] + b[1]), c = w.getReshaped(u, s, i, false), l = w.getPermuted(c.length, s.length, false), m = w.getReshapedPermuted(u, s, i, false), d = y.computeStrides(u), f = new py(n.shape, u, p, c, l, d.length), h = [{ type: \"int32\", data: c }, { type: \"int32\", data: d }];\n p.map((b) => h.push({ type: \"int32\", data: [b[0], b[1]] }));\n let g = e.runWebGPUProgram(f, [n], n.dtype, h), x = pe({ inputs: { x: g }, backend: e, attrs: { shape: m } });\n return e.disposeData(g.dataId), x;\n};\nvar CU = { kernelName: ga, backendName: \"webgpu\", kernelFunc: uce };\nvar cy = class {\n constructor(t8, e, o) {\n this.variableNames = [\"input\", \"indices\", \"segmentIds\"], this.outputShape = [], this.uniforms = \"segmentSize : i32, sparseSize : i32,\", this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = t8, this.type = o, this.dispatchLayout = X([e]), this.dispatch = H(this.dispatchLayout, [e], this.workgroupSize), this.shaderKey = \"sparseSegmentSum\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.sparseSize) {\n let indexInSegmentIds = index / uniforms.segmentSize;\n let indexInSegment = index % uniforms.segmentSize;\n let indexInInput = indices[indexInSegmentIds];\n let segmentId = segmentIds[indexInSegmentIds];\n\n let value = input[indexInInput * uniforms.segmentSize + indexInSegment];\n let outIndex = segmentId * uniforms.segmentSize + indexInSegment;\n ${Qr(\"&result[outIndex]\", \"value\", this.type)}\n }\n }\n `;\n }\n};\nvar ly = class {\n constructor(t8, e) {\n this.variableNames = [\"segmentIds\"], this.outputShape = [], this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = [t8], this.dispatchLayout = X(e), this.dispatch = H(this.dispatchLayout, e, this.workgroupSize), this.shaderKey = \"sparseSegmentIdCountProgram\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.segmentIdsShape) {\n let segmentId = segmentIds[index];\n ${Qr(\"&result[segmentId]\", \"1\", \"int32\")}\n }\n }\n `;\n }\n};\nvar my = class {\n constructor(t8, e) {\n this.variableNames = [\"segmentSum\", \"sameSegmentIdCount\"], this.outputShape = [], this.uniforms = \"segmentSize : i32\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.type = e, this.dispatchLayout = X(t8), this.dispatch = H(this.dispatchLayout, t8, this.workgroupSize), this.shaderKey = \"sparseSegmentMean\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let segmentId = index / uniforms.segmentSize;\n let count = sameSegmentIdCount[segmentId];\n if (count != 0) {\n ${this.type === \"float32\" ? \"setOutputAtIndex(index, segmentSum[index] / f32(count));\" : \"setOutputAtIndexI32(index, segmentSum[index] / count);\"}\n }\n }\n }\n `;\n }\n};\nfunction dy(r, t8, e, o = false, n) {\n let a = y.sizeFromShape(r.shape) / r.shape[0], i = r.dtype, p = y.sizeFromShape(t8.shape), u = n.readSync(e.dataId), l = p > 0 ? u[p - 1] + 1 : 0, m, d = r.shape.slice();\n d[0] = l;\n let f = p * a, h = kt({ backend: n, attrs: { shape: d, value: 0, dtype: i } });\n m = new cy(d, f, i);\n let g = [{ type: \"int32\", data: [a] }, { type: \"int32\", data: [f] }], x = n.runWebGPUProgram(m, [r, t8, e], i, g, h);\n if (o)\n return x;\n let b = kt({ backend: n, attrs: { shape: [l], value: 0, dtype: \"int32\" } });\n m = new ly(l, e.shape);\n let C = n.runWebGPUProgram(m, [e], \"int32\", null, b), S = kt({ backend: n, attrs: { shape: d, value: 0, dtype: i } });\n m = new my(d, i), g = [{ type: \"int32\", data: [a] }];\n let k = n.runWebGPUProgram(m, [x, C], i, g, S);\n return n.disposeData(x.dataId), n.disposeData(C.dataId), k;\n}\nfunction pce(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n return dy(o, n, s, false, e);\n}\nvar wU = { kernelName: ya, backendName: \"webgpu\", kernelFunc: pce };\nfunction cce(r) {\n let { inputs: t8, backend: e } = r, { data: o, indices: n, segmentIds: s } = t8;\n return dy(o, n, s, true, e);\n}\nvar SU = { kernelName: ba, backendName: \"webgpu\", kernelFunc: cce };\nvar fy = class {\n constructor(t8, e) {\n this.variableNames = [\"A\"], this.workgroupSize = [64, 1, 1], this.size = true;\n let o = new Array(t8.length);\n for (let n = 0; n < o.length; n++)\n o[n] = t8[n] * e[n];\n this.outputShape = o, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.rank = this.outputShape.length, this.shaderKey = \"tile\";\n }\n getUserCode() {\n let t8 = lce(this.rank, \"uniforms.\");\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let resRC = getCoordsFromIndex(index);\n setOutputAtIndex(index, getA(${t8}));\n }\n }\n `;\n }\n};\nfunction lce(r, t8 = \"\") {\n if (r >= 5)\n throw Error(`Tile for rank ${r} is not yet supported`);\n if (r === 1)\n return `(resRC % ${t8}aShape)`;\n let e = [\"resRC.x\", \"resRC.y\", \"resRC.z\", \"resRC.w\"], o = [];\n for (let n = 0; n < r; n++)\n o.push(`(${e[n]} % ${t8}aShape[${n}])`);\n return o.join();\n}\nfunction Cm(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { reps: s } = o;\n if (e.shouldExecuteOnCPU([n]) || n.dtype === \"string\" || n.shape.length >= 5) {\n let p = e.readSync(n.dataId), u = n.dtype === \"string\" ? p.map((m) => y.decodeString(m)) : p, c = me(n.shape, n.dtype, u), l = Oz(c, s);\n return e.makeTensorInfo(l.shape, l.dtype, l.values);\n }\n let a = new fy(n.shape, s);\n return e.runWebGPUProgram(a, [n], n.dtype);\n}\nvar IU = { kernelName: po, backendName: \"webgpu\", kernelFunc: Cm };\nfunction mce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { sparseIndices: n, sparseValues: s, defaultValue: a } = t8, { outputShape: i } = o, { sliceRank: p, numUpdates: u, sliceSize: c, strides: l, outputSize: m } = w.calculateShapes(s, n, i), d = false;\n if (s.dtype === \"string\") {\n let R = e.bufferSync(n), D = e.bufferSync(s), P = y.decodeString(e.readSync(a.dataId)[0]), O = Ez(R, D, i, m, c, u, p, l, P, d);\n return e.makeTensorInfo(i, O.dtype, O.values);\n }\n let f = [m / c, c], h = pe({ inputs: { x: n }, backend: e, attrs: { shape: [u, p] } }), g = s.shape.length ? pe({ inputs: { x: s }, backend: e, attrs: { shape: [u, c] } }) : Ft({ inputs: { x: s }, backend: e }), x = g.dtype, b = e.makeTensorInfo([], x, y.makeZerosTypedArray(1, x)), C = pe({ inputs: { x: a }, backend: e, attrs: { shape: Array(f.length).fill(1) } }), S = Cm({ inputs: { x: C }, backend: e, attrs: { reps: f } }), k = y.sizeFromShape([u, c]), _ = [{ type: \"int32\", data: [p] }, { type: \"int32\", data: l }, { type: \"int32\", data: [k] }];\n switch (u) {\n case 0:\n break;\n case 1:\n {\n let R = new Va([u, c], p, h.shape.length, g.shape.length, l, f, x, d);\n e.runWebGPUProgram(R, [g, h], x, _, S);\n }\n break;\n default:\n {\n let R = new Va([u, c], p, h.shape.length, b.shape.length, l, f, x, d);\n e.runWebGPUProgram(R, [b, h], x, _, S);\n }\n {\n let R = new Va([u, c], p, h.shape.length, g.shape.length, l, f, x);\n e.runWebGPUProgram(R, [g, h], x, _, S);\n }\n }\n let E = pe({ inputs: { x: S }, backend: e, attrs: { shape: i } });\n return e.disposeData(h.dataId), e.disposeData(g.dataId), e.disposeData(C.dataId), e.disposeData(b.dataId), e.disposeData(S.dataId), E;\n}\nvar vU = { kernelName: ks, backendName: \"webgpu\", kernelFunc: mce };\nfunction dce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { numOrSizeSplits: s, axis: a } = o, i = y.parseAxisParam(a, n.shape)[0], p = w.prepareSplitSize(n, s, i), u = n.shape.length, c = new Array(u).fill(0), l = n.shape.slice();\n return p.map((m) => {\n let d = [...l];\n d[i] = m;\n let f = Hs({ inputs: { x: n }, backend: e, attrs: { begin: c, size: d } });\n return c[i] += m, f;\n });\n}\nvar kU = { kernelName: xa, backendName: \"webgpu\", kernelFunc: dce };\nvar fce = ye({ opType: Z.SQRT });\nvar NU = { kernelName: Ss, backendName: \"webgpu\", kernelFunc: fce };\nvar TU = { kernelName: Xi, backendName: \"webgpu\", kernelFunc: ({ inputs: r, backend: t8 }) => {\n let { x: e } = r, o = t8, n = new Jr(e.shape, Z.SQUARE);\n return o.runWebGPUProgram(n, [e], e.dtype);\n} };\nvar hce = et({ opType: fe.SQUARED_DIFFERENCE });\nvar _U = { kernelName: Ns, backendName: \"webgpu\", kernelFunc: hce };\nfunction gce({ inputs: r, attrs: t8, backend: e }) {\n let { x: o } = r, n = new Jr(o.shape, Z.STEP, \"stepAlpha : f32,\"), s = [{ type: \"float32\", data: [t8.alpha] }];\n return e.runWebGPUProgram(n, [o], o.dtype, s);\n}\nvar $U = { kernelName: So, backendName: \"webgpu\", kernelFunc: gce };\nvar hy = class {\n constructor(t8) {\n this.variableNames = [\"x\"], this.workPerThread = 1, this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize, [this.workPerThread, 1, 1]);\n let e = ht(this.outputShape.length);\n this.uniforms = `begin : ${e}, strides : ${e}, `, this.shaderKey = \"stridedSlice\";\n }\n getUserCode() {\n let t8 = this.outputShape.length, e = \"\";\n if (t8 === 1)\n e = \"coords * uniforms.strides + uniforms.begin\";\n else {\n let n = 0;\n e = this.outputShape.map((s, a) => (n++, this.outputShape.length === 1 ? `coords * uniforms.strides[${a}] + uniforms.begin[${a}]` : `coords[${n - 1}] * uniforms.strides[${a}] + uniforms.begin[${a}]`)).join(\",\");\n }\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n setOutputAtIndex(index, getX(${e}));\n }\n }\n `;\n }\n};\nfunction xce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { begin: s, end: a, strides: i, beginMask: p, endMask: u, ellipsisMask: c, newAxisMask: l, shrinkAxisMask: m } = o, { finalShapeSparse: d, finalShape: f, isIdentity: h, sliceDim0: g, isSimpleSlice: x, begin: b, end: C, strides: S } = ct.sliceInfo(n.shape, s, a, i, p, u, c, l, m), k;\n if (h)\n k = pe({ inputs: { x: n }, backend: e, attrs: { shape: f } });\n else if (g || x) {\n y.assert(n.shape.length >= 1, () => `Input must have rank at least 1, got: ${n.shape.length}`);\n let _ = ct.computeOutShape(b, C, S), E = Hs({ inputs: { x: n }, backend: e, attrs: { begin: b, size: _ } });\n k = pe({ inputs: { x: E }, backend: e, attrs: { shape: f } }), e.disposeData(E.dataId);\n } else if (e.shouldExecuteOnCPU([n])) {\n let E = e.readSync(n.dataId), R = me(n.shape, n.dtype, E), D = Az(d, R, S, b);\n k = e.makeTensorInfo(f, n.dtype, D.values);\n } else {\n let E = new hy(d), R = [{ type: \"int32\", data: b }, { type: \"int32\", data: S }], D = e.runWebGPUProgram(E, [n], n.dtype, R);\n k = pe({ inputs: { x: D }, backend: e, attrs: { shape: f } }), e.disposeData(D.dataId);\n }\n return k;\n}\nvar EU = { kernelName: Ts, backendName: \"webgpu\", kernelFunc: xce };\nfunction yce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { separator: n, nGramWidths: s, leftPad: a, rightPad: i, padWidth: p, preserveShortSequences: u } = o, { data: c, dataSplits: l } = t8, m = e.readSync(c.dataId), d = e.readSync(l.dataId), [f, h] = Fz(m, d, n, s, a, i, p, u);\n return [e.makeTensorInfo([f.length], \"string\", f), e.makeTensorInfo(l.shape, \"int32\", h)];\n}\nvar RU = { kernelName: Ca, backendName: \"webgpu\", kernelFunc: yce };\nvar bce = et({ opType: fe.SUB, cpuKernelImpl: Pz, supportsComplex: true });\nvar DU = { kernelName: _s, backendName: \"webgpu\", kernelFunc: bce };\nvar Cce = ye({ opType: Z.TAN });\nvar AU = { kernelName: $s, backendName: \"webgpu\", kernelFunc: Cce };\nvar wce = ye({ opType: Z.TANH });\nvar FU = { kernelName: Es, backendName: \"webgpu\", kernelFunc: wce };\nfunction Sce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { tensor: n, indices: s, updates: a } = t8, {} = o, { sliceRank: i, numUpdates: p, sliceSize: u, strides: c, outputSize: l } = w.calculateShapes(a, s, n.shape), m = [l / u, u];\n if (l === 0)\n return e.makeTensorInfo(n.shape, s.dtype);\n let d = [], f = pe({ inputs: { x: s }, backend: e, attrs: { shape: [p, i] } });\n d.push(f);\n let h = pe({ inputs: { x: a }, backend: e, attrs: { shape: [p, u] } });\n d.push(h);\n let g = pe({ inputs: { x: n }, backend: e, attrs: { shape: m } });\n d.push(g);\n let x = Cm({ inputs: { x: g }, backend: e, attrs: { reps: Array(m.length).fill(1) } }), b = new Va([p, u], i, f.shape.length, h.shape.length, c, m, n.dtype, false), C = y.sizeFromShape([p, u]), S = [{ type: \"int32\", data: [i] }, { type: \"int32\", data: c }, { type: \"int32\", data: [C] }], k = e.runWebGPUProgram(b, [h, f], g.dtype, S, x);\n d.push(k);\n let _ = pe({ inputs: { x: k }, backend: e, attrs: { shape: n.shape } });\n return d.forEach((E) => e.disposeData(E.dataId)), _;\n}\nvar PU = { kernelName: fs, backendName: \"webgpu\", kernelFunc: Sce };\nvar gy = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"indices\"], this.workgroupSize = [256, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.uniforms = `inputSize : i32, firstPass : i32, negativeInf : f32,\n dir : i32, inc : i32,`, this.shaderKey = \"swap\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let outC = getCoordsFromIndex(index);\n let batch = outC[0];\n let elemIdx = outC[1];\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced\n // above, Figure5(a) shows that element[1] is in the second half of\n // the group when group size is 2, but it is in the first half of\n // the group when group size is 4.\n let isFirstInPair = elemIdx % (2 * uniforms.inc) < uniforms.inc;\n var i = 0;\n if (isFirstInPair) {\n i = elemIdx;\n } else {\n i = elemIdx - uniforms.inc;\n }\n\n var i0 = 0;\n if (uniforms.firstPass == 1) {\n i0 = i;\n } else {\n i0 = i32(getIndices(batch, i));\n }\n\n var i1 = 0;\n if (uniforms.firstPass == 1) {\n i1 = i + uniforms.inc;\n } else {\n i1 = i32(getIndices(batch, i + uniforms.inc));\n }\n\n var x0 = f32(0.0);\n var x1 = f32(0.0);\n if (i0 < uniforms.inputSize) {\n x0 = getX(batch, i0);\n } else {\n x0 = uniforms.negativeInf;\n }\n if (i1 < uniforms.inputSize) {\n x1 = getX(batch, i1);\n } else {\n x1 = uniforms.negativeInf;\n }\n\n let reverse = elemIdx % (2 * uniforms.dir) >= uniforms.dir;\n let isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) {\n // Elements in opposite order of direction\n let iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutputAtIndex(index, f32(i0));\n } else {\n setOutputAtIndex(index, f32(i1));\n }\n }\n }\n `;\n }\n};\nvar xy = class {\n constructor(t8) {\n this.variableNames = [\"x\", \"indices\"], this.workgroupSize = [256, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.uniforms = \"inputSize : i32, firstPass : i32, k : i32,\", this.shaderKey = \"merge\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let outC = getCoordsFromIndex(index);\n let batch = outC[0];\n let elemIdx = outC[1];\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _\n // (k=4), we only need to output the indices at positions |, the\n // indices at positions _ can be thrown away, see Figure5(b) After\n // Phase 2 (Merge phase) in the Bitonic Top K paper referenced\n // above.\n // For example, the paper shows we only need to output the orange\n // bars. The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back to\n // the previous sequence to find the corresponding value, we need\n // to double the index. When we double the index, we basically\n // interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k\n // position of each 2k positions by - elemIdx % k. E.g. for output\n // at index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n var i = 0;\n if (elemIdx < uniforms.k) {\n i = elemIdx;\n } else {\n i = elemIdx * 2 - elemIdx % uniforms.k;\n }\n var i0 = 0;\n if (uniforms.firstPass == 1) {\n i0 = i;\n } else {\n i0 = i32(getIndices(batch, i));\n }\n var i1 = 0;\n if (uniforms.firstPass == 1) {\n i1 = i + uniforms.k;\n } else {\n i1 = i32(getIndices(batch, i + uniforms.k));\n }\n\n let x0 = getX(batch, i0);\n var x1 = f32(0.0);\n if (i1 < uniforms.inputSize) {\n x1 = getX(batch, i1);\n } else {\n x1 = x0;\n }\n\n if (x0 >= x1) {\n setOutputAtIndex(index, f32(i0));\n } else {\n setOutputAtIndex(index, f32(i1));\n }\n }\n }\n `;\n }\n};\nfunction nl(r, t8) {\n t8 !== null && r.disposeData(t8.dataId);\n}\nfunction OU(r) {\n let t8 = 1;\n for (; t8 < r; )\n t8 *= 2;\n return t8;\n}\nfunction Ice(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n } = t8, { k: s, sorted: a } = o, i = n.shape, p = i[i.length - 1];\n if (e.shouldExecuteOnCPU([n])) {\n let k = e.readSync(n.dataId), [_, E] = Mz(k, i, n.dtype, s, a);\n return [e.makeTensorInfo(_.shape, _.dtype, _.values), e.makeTensorInfo(E.shape, E.dtype, E.values)];\n }\n if (s === 0)\n return i[i.length - 1] = 0, [e.makeTensorInfo(i, n.dtype, []), e.makeTensorInfo(i, \"int32\", [])];\n if (p === 1)\n return [n, kt({ attrs: { shape: i, dtype: \"int32\", value: 0 }, backend: e })];\n let c = y.sizeFromShape(i) / p, l = pe({ inputs: { x: n }, attrs: { shape: [c, p] }, backend: e }), m = OU(s), d = OU(p), f = null, h = () => f === null ? [l, l] : [l, f], g = (k, _, E) => {\n let R = h(), D = new gy(E), O = [{ type: \"int32\", data: [p] }, { type: \"int32\", data: [f === null ? 1 : 0] }, { type: \"float32\", data: [Number.NEGATIVE_INFINITY] }, { type: \"int32\", data: [k] }, { type: \"int32\", data: [_] }], M = f;\n f = e.runWebGPUProgram(D, R, \"int32\", O), nl(e, M);\n };\n for (let k = 1; k < m; k *= 2) {\n let _ = k * 2;\n for (let E = k; E >= 1; E /= 2)\n g(_, E, [c, d]);\n }\n for (let k = d; k > m; k /= 2) {\n let _ = h(), E = new xy([c, k / 2]), D = [{ type: \"int32\", data: [p] }, { type: \"int32\", data: [f === null ? 1 : 0] }, { type: \"int32\", data: [m] }], P = f;\n f = e.runWebGPUProgram(E, _, \"int32\", D), nl(e, P);\n let O = m / 2, M = O * 2;\n for (let L = O; L >= 1; L /= 2)\n g(M, L, f.shape);\n }\n let x = f;\n f = Hs({ inputs: { x: f }, backend: e, attrs: { begin: 0, size: [c, s] } }), nl(e, x);\n let b = u0({ inputs: { x: l, indices: f }, backend: e, attrs: { axis: 1, batchDims: 1 } });\n nl(e, l);\n let C = i.slice(0, -1);\n C.push(s), x = f, f = pe({ inputs: { x: f }, attrs: { shape: C }, backend: e }), nl(e, x);\n let S = b;\n return b = pe({ inputs: { x: b }, attrs: { shape: C }, backend: e }), nl(e, S), [b, f];\n}\nvar MU = { kernelName: Rs, backendName: \"webgpu\", kernelFunc: Ice };\nvar yy = class {\n constructor(t8) {\n this.variableNames = [\"Image\", \"Transforms\"], this.uniforms = \"interpolationModeId : i32, fillModeId : i32, fillValue : f32,\", this.workgroupSize = [64, 1, 1], this.size = true, this.outputShape = t8, this.dispatchLayout = X(this.outputShape), this.dispatch = H(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = \"transform\";\n }\n getUserCode() {\n return `\n fn mapCoord(outCoord : f32, len : f32) -> f32{\n var inCoord = outCoord;\n if(uniforms.fillModeId == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n let sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * f32(i32(f32(-inCoord / sz2))) +\n inCoord;\n }\n if (inCoord < -len) {\n inCoord = inCoord + sz2;\n } else {\n inCoord = -inCoord - 1.0;\n }\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n let sz2 = 2.0 * len;\n inCoord = inCoord - sz2 * f32(i32(f32(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (uniforms.fillModeId == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n let sz = len - 1.0;\n inCoord = inCoord + len * (f32(i32(f32(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n let sz = len - 1.0;\n inCoord = inCoord - len * f32(i32(f32(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (uniforms.fillModeId == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n }\n return outCoord;\n }\n fn readWithFillValue(batch : i32, coordY : i32, coordX : i32,\n channel : i32) -> f32 {\n var outputValue : f32;\n if (0 <= coordY && coordY < uniforms.imageShape[1] && 0 <= coordX && coordX < uniforms.imageShape[2]) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = uniforms.fillValue;\n }\n return outputValue;\n }\n\n ${G(\"index\")} {\n if (index < uniforms.size) {\n let coords = getCoordsFromIndex(index);\n var outputValue : f32;\n let batch = coords[0];\n let x = coords[2];\n let y = coords[1];\n let channel = coords[3];\n let xf = f32(x);\n let yf = f32(y);\n let a1 = getTransforms(batch, 0);\n let a2 = getTransforms(batch, 1);\n let a3 = getTransforms(batch, 2);\n let b1 = getTransforms(batch, 3);\n let b2 = getTransforms(batch, 4);\n let b3 = getTransforms(batch, 5);\n let c1 = getTransforms(batch, 6);\n let c2 = getTransforms(batch, 7);\n let projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = uniforms.fillValue;\n } else {\n let inX = (a1 * xf + a2 * yf + a3) / projection;\n let inY = (b1 * xf + b2 * yf + b3) / projection;\n let mapX = mapCoord(inX, f32(uniforms.imageShape[2]));\n let mapY = mapCoord(inY, f32(uniforms.imageShape[1]));\n\n if (uniforms.interpolationModeId == 1) {\n let coordY = i32(round(mapY));\n let coordX = i32(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n let yFloor = floor(mapY);\n let xFloor = floor(mapX);\n let yCeil = yFloor + 1.0;\n let xCeil = xFloor + 1.0;\n let valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, i32(yFloor), i32(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, i32(yFloor), i32(xCeil), channel);\n let valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, i32(yCeil), i32(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, i32(yCeil), i32(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutputAtIndex(index, outputValue);\n }\n }\n `;\n }\n};\nfunction vce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { image: n, transforms: s } = t8, { interpolation: a, fillMode: i, fillValue: p, outputShape: u } = o, [c, l, m, d] = n.shape, [f, h] = u != null ? u : [l, m], g = [c, f, h, d], x = new yy(g), b = a === \"nearest\" ? 1 : 2, C;\n switch (i) {\n case \"constant\":\n C = 1;\n break;\n case \"reflect\":\n C = 2;\n break;\n case \"wrap\":\n C = 3;\n break;\n case \"nearest\":\n C = 4;\n break;\n default:\n C = 1;\n break;\n }\n let S = [{ type: \"int32\", data: [b] }, { type: \"int32\", data: [C] }, { type: \"float32\", data: [p] }];\n return e.runWebGPUProgram(x, [n, s], \"float32\", S);\n}\nvar LU = { kernelName: Ds, backendName: \"webgpu\", kernelFunc: vce };\nfunction kce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { value: n } = t8, { axis: s } = o;\n s < 0 && (s += n.shape.length);\n let a = n, i = a.shape.length, p = n.shape[s], u = new Array(i - 1), c = 0;\n for (let h = 0; h < i; h++)\n h !== s && (u[c++] = a.shape[h]);\n let l = [], m = new Array(i).fill(0), d = a.shape.slice();\n d[s] = 1;\n let f = new Array(p);\n for (let h = 0; h < f.length; h++) {\n m[s] = h;\n let g = Hs({ inputs: { x: a }, backend: e, attrs: { begin: m, size: d } }), x = pe({ inputs: { x: g }, backend: e, attrs: { shape: u } });\n f[h] = x, l.push(g);\n }\n return l.forEach((h) => e.disposeData(h.dataId)), f;\n}\nvar BU = { kernelName: wa, backendName: \"webgpu\", kernelFunc: kce };\nvar by = class {\n constructor(t8, e, o) {\n if (this.outputShape = [], this.variableNames = [\"x\", \"segmentIds\"], this.uniforms = \"numSegments : i32, xSize: i32,\", this.workgroupSize = [64, 1, 1], this.atomic = true, this.outputShape = e, this.dispatchLayout = X(t8), this.dispatch = H(this.dispatchLayout, t8, this.workgroupSize), o !== \"float32\" && o !== \"int32\")\n throw new Error(`UnsortedSegmentSum only supports float32 and int32\n types, does not support ${o} type.`);\n this.type = o, this.shaderKey = \"unsortedSegmentSum\";\n }\n getUserCode() {\n return `\n ${G(\"index\")} {\n if (index < uniforms.xSize) {\n let coords = getXCoordsFromIndex(index);\n let b = coords[0];\n let inCol = coords[1];\n\n let segmentId = i32(getSegmentIds(inCol));\n if (segmentId >= 0) {\n let flatIndex = b * uniforms.numSegments + segmentId % uniforms.numSegments;\n let value = getX(b, inCol);\n\n ${Qr(\"&result[flatIndex]\", \"value\", this.type)}\n }\n }\n }\n `;\n }\n};\nfunction Nce(r) {\n let { inputs: t8, backend: e, attrs: o } = r, { x: n, segmentIds: s } = t8, { numSegments: a } = o, i = n.shape.length, p = [], u = 0, c = w.getAxesPermutation([u], i), l = n;\n c != null && (l = yr({ inputs: { x: n }, backend: e, attrs: { perm: c } }), p.push(l), u = w.getInnerMostAxes(1, i)[0]);\n let m = w.segment_util.computeOutShape(l.shape, u, a), d = y.sizeFromShape([l.shape[u]]), f = pe({ inputs: { x: l }, backend: e, attrs: { shape: [-1, d] } });\n p.push(f);\n let h = n.dtype, g = [f.shape[0], a], x = kt({ backend: e, attrs: { shape: g, value: 0, dtype: h } }), b = new by(f.shape, g, h), C = [{ type: \"int32\", data: [a] }, { type: \"int32\", data: [y.sizeFromShape(f.shape)] }], S = e.runWebGPUProgram(b, [f, s], h, C, x), k = pe({ inputs: { x: S }, backend: e, attrs: { shape: m } });\n p.push(S);\n let _ = k;\n if (c != null) {\n p.push(k);\n let E = w.getUndoAxesPermutation(c);\n _ = yr({ inputs: { x: _ }, backend: e, attrs: { perm: E } });\n }\n return p.forEach((E) => e.disposeData(E.dataId)), _;\n}\nvar zU = { kernelName: Ji, backendName: \"webgpu\", kernelFunc: Nce };\nvar Tce = [rz, Bz, zz, Vz, Wz, Uz, Hz, Kz, qz, jz, Xz, Yz, Qz, Zz, Jz, rV, oV, nV, sV, aV, uV, pV, cV, fV, hV, gV, nz, yV, CV, wV, SV, IV, vV, kV, NV, TV, _V, $V, DV, AV, FV, PV, MV, LV, OV, BV, zV, VV, WV, UV, KV, qV, jV, XV, YV, QV, ZV, JV, eW, ez, tW, nW, rW, oW, sW, aW, iW, uW, pW, cW, lW, oz, mW, bV, dW, fW, hW, gW, xW, yW, bW, wW, CW, SW, IW, vW, NW, TW, eV, _W, $W, DW, EW, RW, AW, tV, FW, PW, OW, MW, BW, GV, zW, VW, WW, lV, UW, KW, qW, jW, XW, YW, QW, ZW, mV, JW, eU, tU, rU, tz, oU, nU, sU, aU, iU, uU, pU, cU, lU, mU, dU, fU, hU, gU, xU, yU, iV, $U, EU, RU, LW, bU, CU, wU, SU, vU, kU, NU, TU, _U, DU, HV, AU, FU, PU, IU, MU, LU, Gz, BU, zU, GW];\nfor (let r of Tce)\n ri(r);\nvar VU = \"4.11.0\";\nvar _ce = \"4.11.0\";\nvar $ce = \"4.11.0\";\nvar Ece = \"4.11.0\";\nvar Rce = \"4.11.0\";\nvar Dce = \"4.11.0\";\nvar Ace = { tfjs: VU, \"tfjs-core\": VU, \"tfjs-converter\": _ce, \"tfjs-backend-cpu\": $ce, \"tfjs-backend-webgl\": Ece, \"tfjs-backend-wasm\": Rce, \"tfjs-backend-webgpu\": Dce };\n\n// src/util/util.ts\nfunction log(...msg) {\n const dt2 = /* @__PURE__ */ new Date();\n const ts2 = `${dt2.getHours().toString().padStart(2, \"0\")}:${dt2.getMinutes().toString().padStart(2, \"0\")}:${dt2.getSeconds().toString().padStart(2, \"0\")}.${dt2.getMilliseconds().toString().padStart(3, \"0\")}`;\n if (msg)\n console.log(ts2, \"Human:\", ...msg);\n}\nfunction join(folder, file) {\n const separator = folder.endsWith(\"/\") ? \"\" : \"/\";\n const skipJoin = file.startsWith(\".\") || file.startsWith(\"/\") || file.startsWith(\"http:\") || file.startsWith(\"https:\") || file.startsWith(\"file:\");\n const path = skipJoin ? `${file}` : `${folder}${separator}${file}`;\n if (!path.toLocaleLowerCase().includes(\".json\"))\n throw new Error(`modelpath error: expecting json file: ${path}`);\n return path;\n}\nvar now = () => {\n if (typeof performance !== \"undefined\")\n return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1e3 / 1e3).toString());\n};\nfunction validate(defaults, config3, parent = \"config\", msgs = []) {\n for (const key of Object.keys(config3)) {\n if (typeof config3[key] === \"object\") {\n validate(defaults[key], config3[key], key, msgs);\n } else {\n const defined = defaults && typeof defaults[key] !== \"undefined\";\n if (!defined)\n msgs.push({ reason: \"unknown property\", where: `${parent}.${key} = ${config3[key]}` });\n const same = defaults && typeof defaults[key] === typeof config3[key];\n if (defined && !same)\n msgs.push({ reason: \"property type mismatch\", where: `${parent}.${key} = ${config3[key]}`, expected: typeof defaults[key] });\n }\n }\n if (config3.debug && parent === \"config\" && msgs.length > 0)\n log(\"invalid configuration\", msgs);\n return msgs;\n}\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === \"object\";\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal))\n prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal))\n prev[key] = mergeDeep(pVal, oVal);\n else\n prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\n// src/config.ts\nvar config = {\n backend: \"\",\n modelBasePath: \"\",\n cacheModels: true,\n validateModels: true,\n wasmPath: \"\",\n wasmPlatformFetch: false,\n debug: false,\n async: true,\n warmup: \"full\",\n cacheSensitivity: 0.7,\n skipAllowed: false,\n deallocate: false,\n flags: {},\n softwareKernels: false,\n filter: {\n enabled: true,\n equalization: false,\n width: 0,\n height: 0,\n flip: false,\n return: true,\n autoBrightness: true,\n brightness: 0,\n contrast: 0,\n sharpness: 0,\n blur: 0,\n saturation: 0,\n hue: 0,\n negative: false,\n sepia: false,\n vintage: false,\n kodachrome: false,\n technicolor: false,\n polaroid: false,\n pixelate: 0\n },\n gesture: {\n enabled: true\n },\n face: {\n enabled: true,\n detector: {\n modelPath: \"blazeface.json\",\n rotation: false,\n maxDetected: 1,\n skipFrames: 99,\n skipTime: 2500,\n minConfidence: 0.2,\n minSize: 0,\n iouThreshold: 0.1,\n mask: false,\n return: false\n },\n mesh: {\n enabled: true,\n modelPath: \"facemesh.json\",\n keepInvalid: false\n },\n attention: {\n enabled: false,\n modelPath: \"facemesh-attention.json\"\n },\n iris: {\n enabled: true,\n modelPath: \"iris.json\"\n },\n emotion: {\n enabled: true,\n minConfidence: 0.1,\n skipFrames: 99,\n skipTime: 1500,\n modelPath: \"emotion.json\"\n },\n description: {\n enabled: true,\n modelPath: \"faceres.json\",\n skipFrames: 99,\n skipTime: 3e3,\n minConfidence: 0.1\n },\n antispoof: {\n enabled: false,\n skipFrames: 99,\n skipTime: 4e3,\n modelPath: \"antispoof.json\"\n },\n liveness: {\n enabled: false,\n skipFrames: 99,\n skipTime: 4e3,\n modelPath: \"liveness.json\"\n }\n },\n body: {\n enabled: true,\n modelPath: \"movenet-lightning.json\",\n maxDetected: -1,\n minConfidence: 0.3,\n skipFrames: 1,\n skipTime: 200\n },\n hand: {\n enabled: true,\n rotation: true,\n skipFrames: 99,\n skipTime: 1e3,\n minConfidence: 0.5,\n iouThreshold: 0.2,\n maxDetected: -1,\n landmarks: true,\n detector: {\n modelPath: \"handtrack.json\"\n },\n skeleton: {\n modelPath: \"handlandmark-lite.json\"\n }\n },\n object: {\n enabled: false,\n modelPath: \"centernet.json\",\n minConfidence: 0.2,\n iouThreshold: 0.4,\n maxDetected: 10,\n skipFrames: 99,\n skipTime: 2e3\n },\n segmentation: {\n enabled: false,\n modelPath: \"rvm.json\",\n ratio: 0.5,\n mode: \"default\"\n }\n};\n\n// src/image/imagefxshaders.ts\nvar vertexIdentity = `\n precision highp float;\n attribute vec2 pos;\n attribute vec2 uv;\n varying vec2 vUv;\n uniform float flipY;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);\n }\n`;\nvar colorMatrixWithAlpha = `\n precision highp float;\n varying vec2 vUv;\n uniform sampler2D texture;\n uniform float m[20];\n void main(void) {\n vec4 c = texture2D(texture, vUv);\n gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];\n gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];\n gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];\n gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];\n }\n`;\nvar colorMatrixWithoutAlpha = `\n precision highp float;\n varying vec2 vUv;\n uniform sampler2D texture;\n uniform float m[20];\n void main(void) {\n vec4 c = texture2D(texture, vUv);\n gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];\n gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];\n gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];\n gl_FragColor.a = c.a;\n }\n`;\nvar pixelate = `\n precision highp float;\n varying vec2 vUv;\n uniform vec2 size;\n uniform sampler2D texture;\n vec2 pixelate(vec2 coord, vec2 size) {\n return floor( coord / size ) * size;\n }\n void main(void) {\n gl_FragColor = vec4(0.0);\n vec2 coord = pixelate(vUv, size);\n gl_FragColor += texture2D(texture, coord);\n }\n`;\nvar blur = `\n precision highp float;\n varying vec2 vUv;\n uniform sampler2D texture;\n uniform vec2 px;\n void main(void) {\n gl_FragColor = vec4(0.0);\n gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;\n gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;\n gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;\n gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;\n gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;\n gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;\n gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;\n gl_FragColor += texture2D(texture, vUv )*0.159576912161;\n gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;\n gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;\n gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;\n gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;\n gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;\n gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;\n gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;\n }\n`;\nvar convolution = `\n precision highp float;\n varying vec2 vUv;\n uniform sampler2D texture;\n uniform vec2 px;\n uniform float m[9];\n void main(void) {\n vec4 c11 = texture2D(texture, vUv - px); // top left\n vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y)); // top center\n vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y)); // top right\n vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) ); // mid left\n vec4 c22 = texture2D(texture, vUv); // mid center\n vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) ); // mid right\n vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) ); // bottom left\n vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) ); // bottom center\n vec4 c33 = texture2D(texture, vUv + px ); // bottom right\n gl_FragColor = \n c11 * m[0] + c12 * m[1] + c22 * m[2] +\n c21 * m[3] + c22 * m[4] + c23 * m[5] +\n c31 * m[6] + c32 * m[7] + c33 * m[8];\n gl_FragColor.a = c22.a;\n }\n`;\n\n// src/image/imagefx.ts\nvar collect = (source, prefix, collection) => {\n const r = new RegExp(\"\\\\b\" + prefix + \" \\\\w+ (\\\\w+)\", \"ig\");\n source.replace(r, (match2, name) => {\n collection[name] = 0;\n return match2;\n });\n};\nvar GLProgram = class {\n constructor(gl2, vertexSource, fragmentSource) {\n __publicField(this, \"uniform\", {});\n __publicField(this, \"attribute\", {});\n __publicField(this, \"gl\");\n __publicField(this, \"id\");\n __publicField(this, \"compile\", (source, type) => {\n const shader = this.gl.createShader(type);\n if (!shader) {\n log(\"filter: could not create shader\");\n return null;\n }\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {\n log(`filter: gl compile failed: ${this.gl.getShaderInfoLog(shader) || \"unknown\"}`);\n return null;\n }\n return shader;\n });\n this.gl = gl2;\n const vertexShader = this.compile(vertexSource, this.gl.VERTEX_SHADER);\n const fragmentShader = this.compile(fragmentSource, this.gl.FRAGMENT_SHADER);\n this.id = this.gl.createProgram();\n if (!vertexShader || !fragmentShader)\n return;\n if (!this.id) {\n log(\"filter: could not create webgl program\");\n return;\n }\n this.gl.attachShader(this.id, vertexShader);\n this.gl.attachShader(this.id, fragmentShader);\n this.gl.linkProgram(this.id);\n if (!this.gl.getProgramParameter(this.id, this.gl.LINK_STATUS)) {\n log(`filter: gl link failed: ${this.gl.getProgramInfoLog(this.id) || \"unknown\"}`);\n return;\n }\n this.gl.useProgram(this.id);\n collect(vertexSource, \"attribute\", this.attribute);\n for (const a in this.attribute)\n this.attribute[a] = this.gl.getAttribLocation(this.id, a);\n collect(vertexSource, \"uniform\", this.uniform);\n collect(fragmentSource, \"uniform\", this.uniform);\n for (const u in this.uniform)\n this.uniform[u] = this.gl.getUniformLocation(this.id, u);\n }\n};\nfunction GLImageFilter() {\n let drawCount = 0;\n let sourceTexture = null;\n let lastInChain = false;\n let currentFramebufferIndex = -1;\n let tempFramebuffers = [null, null];\n let filterChain = [];\n let vertexBuffer = null;\n let currentProgram = null;\n const fxcanvas = canvas(100, 100);\n const shaderProgramCache = {};\n const DRAW = { INTERMEDIATE: 1 };\n const gl2 = fxcanvas.getContext(\"webgl\");\n if (!gl2) {\n log(\"filter: cannot get webgl context\");\n return;\n }\n this.gl = gl2;\n function resize(width, height) {\n if (width === fxcanvas.width && height === fxcanvas.height)\n return;\n fxcanvas.width = width;\n fxcanvas.height = height;\n if (!vertexBuffer) {\n const vertices = new Float32Array([-1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0, -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0]);\n vertexBuffer = gl2.createBuffer();\n gl2.bindBuffer(gl2.ARRAY_BUFFER, vertexBuffer);\n gl2.bufferData(gl2.ARRAY_BUFFER, vertices, gl2.STATIC_DRAW);\n gl2.pixelStorei(gl2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl2.viewport(0, 0, fxcanvas.width, fxcanvas.height);\n tempFramebuffers = [null, null];\n }\n function createFramebufferTexture(width, height) {\n const fbo = gl2.createFramebuffer();\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, fbo);\n const renderbuffer = gl2.createRenderbuffer();\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, renderbuffer);\n const texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, texture);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, width, height, 0, gl2.RGBA, gl2.UNSIGNED_BYTE, null);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n gl2.framebufferTexture2D(gl2.FRAMEBUFFER, gl2.COLOR_ATTACHMENT0, gl2.TEXTURE_2D, texture, 0);\n gl2.bindTexture(gl2.TEXTURE_2D, null);\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n return { fbo, texture };\n }\n function getTempFramebuffer(index2) {\n tempFramebuffers[index2] = tempFramebuffers[index2] || createFramebufferTexture(fxcanvas.width, fxcanvas.height);\n return tempFramebuffers[index2];\n }\n function draw(flags = 0) {\n if (!currentProgram)\n return;\n let source = null;\n let target = null;\n let flipY = false;\n if (drawCount === 0)\n source = sourceTexture;\n else\n source = getTempFramebuffer(currentFramebufferIndex).texture || null;\n drawCount++;\n if (lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n target = null;\n flipY = drawCount % 2 === 0;\n } else {\n currentFramebufferIndex = (currentFramebufferIndex + 1) % 2;\n target = getTempFramebuffer(currentFramebufferIndex).fbo || null;\n }\n gl2.bindTexture(gl2.TEXTURE_2D, source);\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, target);\n gl2.uniform1f(currentProgram.uniform[\"flipY\"], flipY ? -1 : 1);\n gl2.drawArrays(gl2.TRIANGLES, 0, 6);\n }\n function compileShader(fragmentSource) {\n if (shaderProgramCache[fragmentSource]) {\n currentProgram = shaderProgramCache[fragmentSource];\n gl2.useProgram((currentProgram ? currentProgram.id : null) || null);\n return currentProgram;\n }\n currentProgram = new GLProgram(gl2, vertexIdentity, fragmentSource);\n if (!currentProgram) {\n log(\"filter: could not get webgl program\");\n return null;\n }\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl2.enableVertexAttribArray(currentProgram.attribute[\"pos\"]);\n gl2.vertexAttribPointer(currentProgram.attribute[\"pos\"], 2, gl2.FLOAT, false, vertSize, 0 * floatSize);\n gl2.enableVertexAttribArray(currentProgram.attribute[\"uv\"]);\n gl2.vertexAttribPointer(currentProgram.attribute[\"uv\"], 2, gl2.FLOAT, false, vertSize, 2 * floatSize);\n shaderProgramCache[fragmentSource] = currentProgram;\n return currentProgram;\n }\n const filter = {\n colorMatrix: (matrix) => {\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n const shader = m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0 ? colorMatrixWithoutAlpha : colorMatrixWithAlpha;\n const program = compileShader(shader);\n if (!program)\n return;\n gl2.uniform1fv(program.uniform[\"m\"], m);\n draw();\n },\n brightness: (brightness) => {\n const b = (brightness || 0) + 1;\n filter.colorMatrix([\n b,\n 0,\n 0,\n 0,\n 0,\n 0,\n b,\n 0,\n 0,\n 0,\n 0,\n 0,\n b,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n saturation: (amount) => {\n const x = (amount || 0) * 2 / 3 + 1;\n const y8 = (x - 1) * -0.5;\n filter.colorMatrix([\n x,\n y8,\n y8,\n 0,\n 0,\n y8,\n x,\n y8,\n 0,\n 0,\n y8,\n y8,\n x,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n desaturate: () => {\n filter.saturation(-1);\n },\n contrast: (amount) => {\n const v10 = (amount || 0) + 1;\n const o = -128 * (v10 - 1);\n filter.colorMatrix([\n v10,\n 0,\n 0,\n 0,\n o,\n 0,\n v10,\n 0,\n 0,\n o,\n 0,\n 0,\n v10,\n 0,\n o,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n negative: () => {\n filter.contrast(-2);\n },\n hue: (rotation) => {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * -lumR,\n lumG + cos * -lumG + sin * -lumG,\n lumB + cos * -lumB + sin * (1 - lumB),\n 0,\n 0,\n lumR + cos * -lumR + sin * 0.143,\n lumG + cos * (1 - lumG) + sin * 0.14,\n lumB + cos * -lumB + sin * -0.283,\n 0,\n 0,\n lumR + cos * -lumR + sin * -(1 - lumR),\n lumG + cos * -lumG + sin * lumG,\n lumB + cos * (1 - lumB) + sin * lumB,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n desaturateLuminance: () => {\n filter.colorMatrix([\n 0.2764723,\n 0.929708,\n 0.0938197,\n 0,\n -37.1,\n 0.2764723,\n 0.929708,\n 0.0938197,\n 0,\n -37.1,\n 0.2764723,\n 0.929708,\n 0.0938197,\n 0,\n -37.1,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n sepia: () => {\n filter.colorMatrix([\n 0.393,\n 0.7689999,\n 0.18899999,\n 0,\n 0,\n 0.349,\n 0.6859999,\n 0.16799999,\n 0,\n 0,\n 0.272,\n 0.5339999,\n 0.13099999,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n brownie: () => {\n filter.colorMatrix([\n 0.5997023498159715,\n 0.34553243048391263,\n -0.2708298674538042,\n 0,\n 47.43192855600873,\n -0.037703249837783157,\n 0.8609577587992641,\n 0.15059552388459913,\n 0,\n -36.96841498319127,\n 0.24113635128153335,\n -0.07441037908422492,\n 0.44972182064877153,\n 0,\n -7.562075277591283,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n vintagePinhole: () => {\n filter.colorMatrix([\n 0.6279345635605994,\n 0.3202183420819367,\n -0.03965408211312453,\n 0,\n 9.651285835294123,\n 0.02578397704808868,\n 0.6441188644374771,\n 0.03259127616149294,\n 0,\n 7.462829176470591,\n 0.0466055556782719,\n -0.0851232987247891,\n 0.5241648018700465,\n 0,\n 5.159190588235296,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n kodachrome: () => {\n filter.colorMatrix([\n 1.1285582396593525,\n -0.3967382283601348,\n -0.03992559172921793,\n 0,\n 63.72958762196502,\n -0.16404339962244616,\n 1.0835251566291304,\n -0.05498805115633132,\n 0,\n 24.732407896706203,\n -0.16786010706155763,\n -0.5603416277695248,\n 1.6014850761964943,\n 0,\n 35.62982807460946,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n technicolor: () => {\n filter.colorMatrix([\n 1.9125277891456083,\n -0.8545344976951645,\n -0.09155508482755585,\n 0,\n 11.793603434377337,\n -0.3087833385928097,\n 1.7658908555458428,\n -0.10601743074722245,\n 0,\n -70.35205161461398,\n -0.231103377548616,\n -0.7501899197440212,\n 1.847597816108189,\n 0,\n 30.950940869491138,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n polaroid: () => {\n filter.colorMatrix([\n 1.438,\n -0.062,\n -0.062,\n 0,\n 0,\n -0.122,\n 1.378,\n -0.122,\n 0,\n 0,\n -0.016,\n -0.016,\n 1.483,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n shiftToBGR: () => {\n filter.colorMatrix([\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0\n ]);\n },\n convolution: (matrix) => {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / fxcanvas.width;\n const pixelSizeY = 1 / fxcanvas.height;\n const program = compileShader(convolution);\n if (!program)\n return;\n gl2.uniform1fv(program.uniform[\"m\"], m);\n gl2.uniform2f(program.uniform[\"px\"], pixelSizeX, pixelSizeY);\n draw();\n },\n detectEdges: () => {\n filter.convolution.call(this, [\n 0,\n 1,\n 0,\n 1,\n -4,\n 1,\n 0,\n 1,\n 0\n ]);\n },\n sobelX: () => {\n filter.convolution.call(this, [\n -1,\n 0,\n 1,\n -2,\n 0,\n 2,\n -1,\n 0,\n 1\n ]);\n },\n sobelY: () => {\n filter.convolution.call(this, [\n -1,\n -2,\n -1,\n 0,\n 0,\n 0,\n 1,\n 2,\n 1\n ]);\n },\n sharpen: (amount) => {\n const a = amount || 1;\n filter.convolution.call(this, [\n 0,\n -1 * a,\n 0,\n -1 * a,\n 1 + 4 * a,\n -1 * a,\n 0,\n -1 * a,\n 0\n ]);\n },\n emboss: (size2) => {\n const s = size2 || 1;\n filter.convolution.call(this, [\n -2 * s,\n -1 * s,\n 0,\n -1 * s,\n 1,\n 1 * s,\n 0,\n 1 * s,\n 2 * s\n ]);\n },\n blur: (size2) => {\n const blurSizeX = size2 / 7 / fxcanvas.width;\n const blurSizeY = size2 / 7 / fxcanvas.height;\n const program = compileShader(blur);\n if (!program)\n return;\n gl2.uniform2f(program.uniform[\"px\"], 0, blurSizeY);\n draw(DRAW.INTERMEDIATE);\n gl2.uniform2f(program.uniform[\"px\"], blurSizeX, 0);\n draw();\n },\n pixelate: (size2) => {\n const blurSizeX = size2 / fxcanvas.width;\n const blurSizeY = size2 / fxcanvas.height;\n const program = compileShader(pixelate);\n if (!program)\n return;\n gl2.uniform2f(program.uniform[\"size\"], blurSizeX, blurSizeY);\n draw();\n }\n };\n this.add = function(name) {\n const args = Array.prototype.slice.call(arguments, 1);\n const func = filter[name];\n filterChain.push({ func, args });\n };\n this.reset = function() {\n filterChain = [];\n };\n this.get = function() {\n return filterChain;\n };\n this.apply = function(image) {\n resize(image.width, image.height);\n drawCount = 0;\n if (!sourceTexture)\n sourceTexture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, sourceTexture);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.NEAREST);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.NEAREST);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, gl2.RGBA, gl2.UNSIGNED_BYTE, image);\n for (let i = 0; i < filterChain.length; i++) {\n lastInChain = i === filterChain.length - 1;\n const f = filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return fxcanvas;\n };\n this.draw = function(image) {\n this.add(\"brightness\", 0);\n return this.apply(image);\n };\n}\n\n// src/image/enhance.ts\nasync function histogramEqualization(inputImage) {\n const squeeze = inputImage.shape.length === 4 ? gc(inputImage) : inputImage;\n const rgb3 = li(squeeze, 3, 2);\n const min = [Tl(rgb3[0]), Tl(rgb3[1]), Tl(rgb3[2])];\n const max = [Ra(rgb3[0]), Ra(rgb3[1]), Ra(rgb3[2])];\n const absMax = await Promise.all(max.map((channel) => channel.data()));\n const maxValue = Math.max(absMax[0][0], absMax[1][0], absMax[2][0]);\n const maxRange = maxValue > 1 ? 255 : 1;\n const factor = maxRange / maxValue;\n let final;\n if (factor > 1) {\n const sub = [Te(rgb3[0], min[0]), Te(rgb3[1], min[1]), Te(rgb3[2], min[2])];\n const range = [Te(max[0], min[0]), Te(max[1], min[1]), Te(max[2], min[2])];\n const enh = [se(sub[0], factor), se(sub[1], factor), se(sub[2], factor)];\n const stack = kr([enh[0], enh[1], enh[2]], 2);\n final = W(stack, [1, squeeze.shape[0] || 0, squeeze.shape[1] || 0, 3]);\n Mt([...sub, ...range, ...enh, stack]);\n } else {\n final = Ms(squeeze, 0);\n }\n Mt([...rgb3, ...min, ...max, rgb3, squeeze, inputImage]);\n return final;\n}\n\n// src/image/image.ts\nvar maxSize = 3840;\nvar inCanvas = null;\nvar outCanvas = null;\nvar tmpCanvas = null;\nvar fx2;\nvar last = {\n inputSum: 0,\n cacheDiff: 1,\n sumMethod: 0,\n inputTensor: void 0\n};\nfunction reset() {\n last.inputSum = 0;\n last.cacheDiff = 1;\n last.sumMethod = 0;\n last.inputTensor = void 0;\n}\nfunction canvas(width, height) {\n let c;\n if (env.browser) {\n if (env.worker) {\n if (typeof OffscreenCanvas === \"undefined\")\n throw new Error(\"canvas error: attempted to run in web worker but OffscreenCanvas is not supported\");\n c = new OffscreenCanvas(width, height);\n } else {\n if (typeof document !== \"undefined\") {\n c = document.createElement(\"canvas\");\n c.width = width;\n c.height = height;\n } else if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n if (typeof env.Canvas !== \"undefined\")\n c = new env.Canvas(width, height);\n else if (typeof globalThis.Canvas !== \"undefined\")\n c = new globalThis.Canvas(width, height);\n else\n throw new Error(\"canvas error: attempted to use canvas in react-native without canvas support installed\");\n } else {\n throw new Error(\"canvas error: attempted to run in browser but DOM is not defined\");\n }\n }\n } else {\n if (typeof env.Canvas !== \"undefined\")\n c = new env.Canvas(width, height);\n else if (typeof globalThis.Canvas !== \"undefined\")\n c = new globalThis.Canvas(width, height);\n }\n return c;\n}\nfunction copy(input, output) {\n const outputCanvas = output || canvas(input.width, input.height);\n const ctx = outputCanvas.getContext(\"2d\");\n ctx.drawImage(input, 0, 0);\n return outputCanvas;\n}\nasync function process2(input, config3, getTensor = true) {\n var _a, _b, _c2;\n if (!input) {\n if (config3.debug)\n log(\"input error: input is missing\");\n return { tensor: null, canvas: null };\n }\n if (!(input instanceof ut) && !(typeof Image !== \"undefined\" && input instanceof Image) && !(typeof globalThis.Canvas !== \"undefined\" && input instanceof globalThis.Canvas) && !(typeof ImageData !== \"undefined\" && input instanceof ImageData) && !(typeof ImageBitmap !== \"undefined\" && input instanceof ImageBitmap) && !(typeof HTMLImageElement !== \"undefined\" && input instanceof HTMLImageElement) && !(typeof HTMLMediaElement !== \"undefined\" && input instanceof HTMLMediaElement) && !(typeof HTMLVideoElement !== \"undefined\" && input instanceof HTMLVideoElement) && !(typeof HTMLCanvasElement !== \"undefined\" && input instanceof HTMLCanvasElement) && !(typeof OffscreenCanvas !== \"undefined\" && input instanceof OffscreenCanvas)) {\n throw new Error(\"input error: type not recognized\");\n }\n if (input instanceof ut) {\n let tensor2 = null;\n if (input[\"isDisposedInternal\"])\n throw new Error(\"input error: attempted to use tensor but it is disposed\");\n if (!input.shape)\n throw new Error(\"input error: attempted to use tensor without a shape\");\n if (input.shape.length === 3) {\n if (input.shape[2] === 3) {\n tensor2 = Ms(input, 0);\n } else if (input.shape[2] === 4) {\n const rgb3 = A1(input, [0, 0, 0], [-1, -1, 3]);\n tensor2 = Ms(rgb3, 0);\n Mt(rgb3);\n }\n } else if (input.shape.length === 4) {\n if (input.shape[3] === 3) {\n tensor2 = Ur(input);\n } else if (input.shape[3] === 4) {\n tensor2 = F1(input, [0, 0, 0, 0], [-1, -1, -1, 3]);\n }\n }\n if (tensor2 == null || tensor2.shape.length !== 4 || tensor2.shape[0] !== 1 || tensor2.shape[3] !== 3)\n throw new Error(`input error: attempted to use tensor with unrecognized shape: ${input.shape.toString()}`);\n if (tensor2.dtype === \"int32\") {\n const cast = We(tensor2, \"float32\");\n Mt(tensor2);\n tensor2 = cast;\n }\n return { tensor: tensor2, canvas: config3.filter.return ? outCanvas : null };\n }\n if (typeof input[\"readyState\"] !== \"undefined\" && input.readyState <= 2) {\n if (config3.debug)\n log(\"input stream is not ready\");\n return { tensor: null, canvas: inCanvas };\n }\n const originalWidth = input[\"naturalWidth\"] || input[\"videoWidth\"] || input[\"width\"] || input[\"shape\"] && input[\"shape\"][1] > 0;\n const originalHeight = input[\"naturalHeight\"] || input[\"videoHeight\"] || input[\"height\"] || input[\"shape\"] && input[\"shape\"][2] > 0;\n if (!originalWidth || !originalHeight) {\n if (config3.debug)\n log(\"cannot determine input dimensions\");\n return { tensor: null, canvas: inCanvas };\n }\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (targetWidth > maxSize) {\n targetWidth = maxSize;\n targetHeight = Math.trunc(targetWidth * originalHeight / originalWidth);\n }\n if (targetHeight > maxSize) {\n targetHeight = maxSize;\n targetWidth = Math.trunc(targetHeight * originalWidth / originalHeight);\n }\n if ((((_a = config3.filter) == null ? void 0 : _a.width) || 0) > 0)\n targetWidth = config3.filter.width;\n else if ((((_b = config3.filter) == null ? void 0 : _b.height) || 0) > 0)\n targetWidth = originalWidth * ((config3.filter.height || 0) / originalHeight);\n if ((config3.filter.height || 0) > 0)\n targetHeight = config3.filter.height;\n else if ((config3.filter.width || 0) > 0)\n targetHeight = originalHeight * ((config3.filter.width || 0) / originalWidth);\n if (!targetWidth || !targetHeight)\n throw new Error(\"input error: cannot determine dimension\");\n if (!inCanvas || inCanvas.width !== targetWidth || inCanvas.height !== targetHeight)\n inCanvas = canvas(targetWidth, targetHeight);\n const inCtx = inCanvas.getContext(\"2d\");\n if (typeof ImageData !== \"undefined\" && input instanceof ImageData) {\n inCtx.putImageData(input, 0, 0);\n } else {\n if (config3.filter.flip && typeof inCtx.translate !== \"undefined\") {\n inCtx.translate(originalWidth, 0);\n inCtx.scale(-1, 1);\n inCtx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n inCtx.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n inCtx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n }\n }\n if (!outCanvas || inCanvas.width !== outCanvas.width || inCanvas.height !== outCanvas.height)\n outCanvas = canvas(inCanvas.width, inCanvas.height);\n if (config3.filter.enabled && env.webgl.supported) {\n if (!fx2)\n fx2 = env.browser ? new GLImageFilter() : null;\n env.filter = !!fx2;\n if (!(fx2 == null ? void 0 : fx2.add)) {\n if (config3.debug)\n log(\"input process error: cannot initialize filters\");\n env.webgl.supported = false;\n config3.filter.enabled = false;\n copy(inCanvas, outCanvas);\n } else {\n fx2.reset();\n if (config3.filter.brightness !== 0)\n fx2.add(\"brightness\", config3.filter.brightness);\n if (config3.filter.contrast !== 0)\n fx2.add(\"contrast\", config3.filter.contrast);\n if (config3.filter.sharpness !== 0)\n fx2.add(\"sharpen\", config3.filter.sharpness);\n if (config3.filter.blur !== 0)\n fx2.add(\"blur\", config3.filter.blur);\n if (config3.filter.saturation !== 0)\n fx2.add(\"saturation\", config3.filter.saturation);\n if (config3.filter.hue !== 0)\n fx2.add(\"hue\", config3.filter.hue);\n if (config3.filter.negative)\n fx2.add(\"negative\");\n if (config3.filter.sepia)\n fx2.add(\"sepia\");\n if (config3.filter.vintage)\n fx2.add(\"brownie\");\n if (config3.filter.sepia)\n fx2.add(\"sepia\");\n if (config3.filter.kodachrome)\n fx2.add(\"kodachrome\");\n if (config3.filter.technicolor)\n fx2.add(\"technicolor\");\n if (config3.filter.polaroid)\n fx2.add(\"polaroid\");\n if (config3.filter.pixelate !== 0)\n fx2.add(\"pixelate\", config3.filter.pixelate);\n if (((_c2 = fx2.get()) == null ? void 0 : _c2.length) > 1)\n outCanvas = fx2.apply(inCanvas);\n else\n outCanvas = fx2.draw(inCanvas);\n }\n } else {\n copy(inCanvas, outCanvas);\n if (fx2)\n fx2 = null;\n env.filter = !!fx2;\n }\n if (!getTensor)\n return { tensor: null, canvas: outCanvas };\n if (!outCanvas)\n throw new Error(\"canvas error: cannot create output\");\n let pixels;\n let depth = 3;\n if (typeof ImageData !== \"undefined\" && input instanceof ImageData || input.data && input.width && input.height) {\n if (env.browser && oT) {\n pixels = oT ? oT.fromPixels(input) : null;\n } else {\n depth = input.data.length / input.height / input.width;\n const arr = new Uint8Array(input.data.buffer);\n pixels = ur(arr, [input.height, input.width, depth], \"int32\");\n }\n } else {\n if (!tmpCanvas || outCanvas.width !== tmpCanvas.width || outCanvas.height !== tmpCanvas.height)\n tmpCanvas = canvas(outCanvas.width, outCanvas.height);\n if (oT && env.browser) {\n if (config3.backend === \"webgl\" || config3.backend === \"humangl\" || config3.backend === \"webgpu\") {\n pixels = oT.fromPixels(outCanvas);\n } else {\n tmpCanvas = copy(outCanvas);\n pixels = oT.fromPixels(tmpCanvas);\n }\n } else {\n const tempCanvas = copy(outCanvas);\n const tempCtx = tempCanvas.getContext(\"2d\");\n const tempData = tempCtx.getImageData(0, 0, targetWidth, targetHeight);\n depth = tempData.data.length / targetWidth / targetHeight;\n const arr = new Uint8Array(tempData.data.buffer);\n pixels = ur(arr, [targetWidth, targetHeight, depth]);\n }\n }\n if (depth === 4) {\n const rgb3 = A1(pixels, [0, 0, 0], [-1, -1, 3]);\n Mt(pixels);\n pixels = rgb3;\n }\n if (!pixels)\n throw new Error(\"input error: cannot create tensor\");\n const casted = We(pixels, \"float32\");\n const tensor = config3.filter.equalization ? await histogramEqualization(casted) : Ms(casted, 0);\n Mt([pixels, casted]);\n if (config3.filter.autoBrightness) {\n const max = Ra(tensor);\n const maxVal = await max.data();\n config3.filter.brightness = maxVal[0] > 1 ? 1 - maxVal[0] / 255 : 1 - maxVal[0];\n Mt(max);\n }\n return { tensor, canvas: config3.filter.return ? outCanvas : null };\n}\nasync function skip(config3, input) {\n let skipFrame = false;\n if (config3.cacheSensitivity === 0 || !input.shape || input.shape.length !== 4 || input.shape[1] > 3840 || input.shape[2] > 2160)\n return skipFrame;\n if (!last.inputTensor) {\n last.inputTensor = Ur(input);\n } else if (last.inputTensor.shape[1] !== input.shape[1] || last.inputTensor.shape[2] !== input.shape[2]) {\n Mt(last.inputTensor);\n last.inputTensor = Ur(input);\n } else {\n const t8 = {};\n t8.diff = Te(input, last.inputTensor);\n t8.squared = se(t8.diff, t8.diff);\n t8.sum = ot(t8.squared);\n const diffSum = await t8.sum.data();\n const diffRelative = diffSum[0] / (input.shape[1] || 1) / (input.shape[2] || 1) / 255 / 3;\n Mt([last.inputTensor, t8.diff, t8.squared, t8.sum]);\n last.inputTensor = Ur(input);\n skipFrame = diffRelative <= (config3.cacheSensitivity || 0);\n }\n return skipFrame;\n}\nasync function compare(config3, input1, input2) {\n const t8 = {};\n if (!input1 || !input2 || input1.shape.length !== 4 || input1.shape.length !== input2.shape.length) {\n if (!config3.debug)\n log(\"invalid input tensor or tensor shapes do not match:\", input1.shape, input2.shape);\n return 0;\n }\n if (input1.shape[0] !== 1 || input2.shape[0] !== 1 || input1.shape[3] !== 3 || input2.shape[3] !== 3) {\n if (!config3.debug)\n log(\"input tensors must be of shape [1, height, width, 3]:\", input1.shape, input2.shape);\n return 0;\n }\n t8.input1 = Ur(input1);\n t8.input2 = input1.shape[1] !== input2.shape[1] || input1.shape[2] !== input2.shape[2] ? Kj.resizeBilinear(input2, [input1.shape[1], input1.shape[2]]) : Ur(input2);\n t8.diff = Te(t8.input1, t8.input2);\n t8.squared = se(t8.diff, t8.diff);\n t8.sum = ot(t8.squared);\n const diffSum = await t8.sum.data();\n const diffRelative = diffSum[0] / (input1.shape[1] || 1) / (input1.shape[2] || 1) / 255 / 3;\n Mt([t8.input1, t8.input2, t8.diff, t8.squared, t8.sum]);\n return diffRelative;\n}\n\n// src/util/env.ts\nvar _canvas, _image, _imageData;\nvar Env = class {\n constructor() {\n /** Running in Browser */\n __publicField(this, \"browser\");\n /** Running in NodeJS */\n __publicField(this, \"node\");\n /** Running in WebWorker thread */\n __publicField(this, \"worker\");\n /** Detected platform */\n __publicField(this, \"platform\", \"\");\n /** Detected agent */\n __publicField(this, \"agent\", \"\");\n /** List of supported backends */\n __publicField(this, \"backends\", []);\n /** Has any work been performed so far */\n __publicField(this, \"initial\");\n /** Are image filters supported? */\n __publicField(this, \"filter\");\n /** TFJS instance details */\n __publicField(this, \"tfjs\");\n /** Is offscreenCanvas supported? */\n __publicField(this, \"offscreen\");\n /** Are performance counter instant values or additive */\n __publicField(this, \"perfadd\", false);\n /** If using tfjs-node get version of underlying tensorflow shared library and if gpu acceleration is enabled */\n __publicField(this, \"tensorflow\", {\n version: void 0,\n gpu: void 0\n });\n /** WASM detected capabilities */\n __publicField(this, \"wasm\", {\n supported: void 0,\n backend: void 0,\n simd: void 0,\n multithread: void 0\n });\n /** WebGL detected capabilities */\n __publicField(this, \"webgl\", {\n supported: void 0,\n backend: void 0,\n version: void 0,\n renderer: void 0,\n shader: void 0,\n vendor: void 0\n });\n /** WebGPU detected capabilities */\n __publicField(this, \"webgpu\", {\n supported: void 0,\n backend: void 0,\n adapter: void 0\n });\n /** CPU info */\n __publicField(this, \"cpu\", {\n model: void 0,\n flags: []\n });\n /** List of supported kernels for current backend */\n __publicField(this, \"kernels\", []);\n /** MonkeyPatch for Canvas/Image/ImageData */\n __privateAdd(this, _canvas, void 0);\n __privateAdd(this, _image, void 0);\n __privateAdd(this, _imageData, void 0);\n this.browser = typeof navigator !== \"undefined\";\n this.node = typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\";\n this.tfjs = { version: Ace[\"tfjs-core\"] };\n this.offscreen = typeof OffscreenCanvas !== \"undefined\";\n this.initial = true;\n this.worker = this.browser && this.offscreen ? typeof WorkerGlobalScope !== \"undefined\" : void 0;\n if (typeof navigator !== \"undefined\" && typeof navigator.userAgent !== \"undefined\") {\n const agent = navigator.userAgent || \"\";\n const raw = agent.match(/\\(([^()]+)\\)/g);\n if (raw == null ? void 0 : raw[0]) {\n const platformMatch = raw[0].match(/\\(([^()]+)\\)/g);\n this.platform = (platformMatch == null ? void 0 : platformMatch[0]) ? platformMatch[0].replace(/\\(|\\)/g, \"\") : \"\";\n this.agent = agent.replace(raw[0], \"\");\n if (this.platform[1])\n this.agent = this.agent.replace(raw[1], \"\");\n this.agent = this.agent.replace(/ /g, \" \");\n }\n } else if (typeof process !== \"undefined\") {\n this.platform = `${process.platform} ${process.arch}`;\n this.agent = `NodeJS ${process.version}`;\n }\n }\n get Canvas() {\n return __privateGet(this, _canvas);\n }\n set Canvas(val) {\n __privateSet(this, _canvas, val);\n globalThis.Canvas = val;\n }\n get Image() {\n return __privateGet(this, _image);\n }\n // @ts-ignore monkey-patch;\n set Image(val) {\n __privateSet(this, _image, val);\n globalThis.Image = val;\n }\n get ImageData() {\n return __privateGet(this, _imageData);\n }\n // @ts-ignore monkey-patch;\n set ImageData(val) {\n __privateSet(this, _imageData, val);\n globalThis.ImageData = val;\n }\n /** update backend information */\n async updateBackend() {\n this.backends = Object.keys(pr().registryFactory);\n try {\n this.tensorflow = {\n version: vde()[\"binding\"] ? vde()[\"binding\"].TF_Version : void 0,\n gpu: vde()[\"binding\"] ? vde()[\"binding\"].isUsingGpuDevice() : void 0\n };\n } catch (e) {\n }\n this.wasm.supported = typeof WebAssembly !== \"undefined\";\n this.wasm.backend = this.backends.includes(\"wasm\");\n if (this.wasm.supported && this.wasm.backend) {\n this.wasm.simd = await A().getAsync(\"WASM_HAS_SIMD_SUPPORT\");\n this.wasm.multithread = await A().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\");\n }\n const c = canvas(100, 100);\n const gl2 = c ? c.getContext(\"webgl2\") : void 0;\n this.webgl.supported = typeof gl2 !== \"undefined\";\n this.webgl.backend = this.backends.includes(\"webgl\");\n if (this.webgl.supported && this.webgl.backend && gl2) {\n this.webgl.version = gl2.getParameter(gl2.VERSION);\n this.webgl.vendor = gl2.getParameter(gl2.VENDOR);\n this.webgl.renderer = gl2.getParameter(gl2.RENDERER);\n this.webgl.shader = gl2.getParameter(gl2.SHADING_LANGUAGE_VERSION);\n }\n this.webgpu.supported = this.browser && typeof navigator !== \"undefined\" && typeof navigator.gpu !== \"undefined\";\n this.webgpu.backend = this.backends.includes(\"webgpu\");\n try {\n if (this.webgpu.supported) {\n const adapter = await navigator.gpu.requestAdapter();\n this.webgpu.adapter = await (adapter == null ? void 0 : adapter.requestAdapterInfo());\n }\n } catch (e) {\n this.webgpu.supported = false;\n }\n try {\n this.kernels = Ym(Cde()).map((kernel) => kernel.kernelName.toLowerCase());\n } catch (e) {\n }\n }\n /** update cpu information */\n updateCPU() {\n const cpu = { model: \"\", flags: [] };\n if (this.node && this.platform.startsWith(\"linux\")) {\n }\n if (!this.cpu)\n Object.defineProperty(this, \"cpu\", { value: cpu });\n else\n this.cpu = cpu;\n }\n};\n_canvas = new WeakMap();\n_image = new WeakMap();\n_imageData = new WeakMap();\nvar env = new Env();\n\n// src/util/webcam.ts\nvar WebCam = class {\n constructor() {\n // eslint-disable-line @typescript-eslint/no-extraneous-class\n /** current webcam configuration */\n __publicField(this, \"config\");\n /** instance of dom element associated with webcam stream */\n __publicField(this, \"element\");\n /** active webcam stream */\n __publicField(this, \"stream\");\n /** enumerated video devices */\n __publicField(this, \"devices\", []);\n __publicField(this, \"enumerate\", async () => {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n this.devices = devices.filter((device) => device.kind === \"videoinput\");\n } catch (e) {\n this.devices = [];\n }\n return this.devices;\n });\n /** start method initializizes webcam stream and associates it with a dom video element */\n __publicField(this, \"start\", async (webcamConfig) => {\n var _a, _b;\n if (webcamConfig == null ? void 0 : webcamConfig.debug)\n this.config.debug = webcamConfig == null ? void 0 : webcamConfig.debug;\n if (webcamConfig == null ? void 0 : webcamConfig.crop)\n this.config.crop = webcamConfig == null ? void 0 : webcamConfig.crop;\n if (webcamConfig == null ? void 0 : webcamConfig.mode)\n this.config.mode = webcamConfig == null ? void 0 : webcamConfig.mode;\n if (webcamConfig == null ? void 0 : webcamConfig.width)\n this.config.width = webcamConfig == null ? void 0 : webcamConfig.width;\n if (webcamConfig == null ? void 0 : webcamConfig.height)\n this.config.height = webcamConfig == null ? void 0 : webcamConfig.height;\n if (webcamConfig == null ? void 0 : webcamConfig.id)\n this.config.id = webcamConfig == null ? void 0 : webcamConfig.id;\n if (webcamConfig == null ? void 0 : webcamConfig.element) {\n if (typeof webcamConfig.element === \"string\") {\n const el2 = document.getElementById(webcamConfig.element);\n if (el2 && el2 instanceof HTMLVideoElement) {\n this.element = el2;\n } else {\n if (this.config.debug)\n log(\"webcam\", \"cannot get dom element\", webcamConfig.element);\n return `webcam error: cannot get dom element: ${webcamConfig.element}`;\n }\n } else if (webcamConfig.element instanceof HTMLVideoElement) {\n this.element = webcamConfig.element;\n } else {\n if (this.config.debug)\n log(\"webcam\", \"unknown dom element\", webcamConfig.element);\n return `webcam error: unknown dom element: ${webcamConfig.element}`;\n }\n } else {\n this.element = document.createElement(\"video\");\n }\n const requestedConstraints = {\n audio: false,\n video: {\n facingMode: this.config.mode === \"front\" ? \"user\" : \"environment\",\n // @ts-ignore // resizeMode is still not defined in tslib\n resizeMode: this.config.crop ? \"crop-and-scale\" : \"none\"\n }\n };\n if (((_a = this.config) == null ? void 0 : _a.width) > 0)\n requestedConstraints.video.width = { ideal: this.config.width };\n if (((_b = this.config) == null ? void 0 : _b.height) > 0)\n requestedConstraints.video.height = { ideal: this.config.height };\n if (this.config.id)\n requestedConstraints.video.deviceId = this.config.id;\n this.element.addEventListener(\"play\", () => {\n if (this.config.debug)\n log(\"webcam\", \"play\");\n });\n this.element.addEventListener(\"pause\", () => {\n if (this.config.debug)\n log(\"webcam\", \"pause\");\n });\n this.element.addEventListener(\"click\", async () => {\n if (!this.element || !this.stream)\n return;\n if (this.element.paused)\n await this.element.play();\n else\n this.element.pause();\n });\n if (!(navigator == null ? void 0 : navigator.mediaDevices)) {\n if (this.config.debug)\n log(\"webcam error\", \"no devices\");\n return \"webcam error: no devices\";\n }\n try {\n this.stream = await navigator.mediaDevices.getUserMedia(requestedConstraints);\n } catch (err) {\n log(\"webcam\", err);\n return `webcam error: ${err}`;\n }\n if (!this.stream) {\n if (this.config.debug)\n log(\"webcam error\", \"no stream\");\n return \"webcam error no stream\";\n }\n this.element.srcObject = this.stream;\n const ready = new Promise((resolve) => {\n if (!this.element)\n resolve(false);\n else\n this.element.onloadeddata = () => resolve(true);\n });\n await ready;\n await this.element.play();\n if (this.config.debug) {\n log(\"webcam\", {\n width: this.width,\n height: this.height,\n label: this.label,\n stream: this.stream,\n track: this.track,\n settings: this.settings,\n constraints: this.constraints,\n capabilities: this.capabilities\n });\n }\n return `webcam: ${this.label}`;\n });\n /** pause webcam video method */\n __publicField(this, \"pause\", () => {\n if (this.element)\n this.element.pause();\n });\n /** play webcam video method */\n __publicField(this, \"play\", async () => {\n if (this.element)\n await this.element.play();\n });\n /** stop method stops active webcam stream track and disconnects webcam */\n __publicField(this, \"stop\", () => {\n if (this.config.debug)\n log(\"webcam\", \"stop\");\n if (this.track)\n this.track.stop();\n });\n this.config = {\n element: void 0,\n debug: true,\n mode: \"front\",\n crop: false,\n width: 0,\n height: 0\n };\n }\n /** get active webcam stream track */\n get track() {\n if (!this.stream)\n return void 0;\n return this.stream.getVideoTracks()[0];\n }\n /** get webcam capabilities */\n get capabilities() {\n if (!this.track)\n return void 0;\n return this.track.getCapabilities ? this.track.getCapabilities() : void 0;\n }\n /** get webcam constraints */\n get constraints() {\n if (!this.track)\n return void 0;\n return this.track.getConstraints ? this.track.getConstraints() : void 0;\n }\n /** get webcam settings */\n get settings() {\n if (!this.stream)\n return void 0;\n const track = this.stream.getVideoTracks()[0];\n return track.getSettings ? track.getSettings() : void 0;\n }\n /** get webcam label */\n get label() {\n if (!this.track)\n return \"\";\n return this.track.label;\n }\n /** is webcam paused */\n get paused() {\n var _a;\n return ((_a = this.element) == null ? void 0 : _a.paused) || false;\n }\n /** webcam current width */\n get width() {\n var _a;\n return ((_a = this.element) == null ? void 0 : _a.videoWidth) || 0;\n }\n /** webcam current height */\n get height() {\n var _a;\n return ((_a = this.element) == null ? void 0 : _a.videoHeight) || 0;\n }\n};\n\n// models/models.json\nvar models_exports = {};\n__export(models_exports, {\n \"affectnet-mobilenet\": () => affectnet_mobilenet,\n age: () => age,\n \"anti-spoofing\": () => anti_spoofing,\n antispoof: () => antispoof,\n blazeface: () => blazeface,\n \"blazeface-back\": () => blazeface_back,\n \"blazeface-front\": () => blazeface_front,\n \"blazepose-detector\": () => blazepose_detector,\n \"blazepose-full\": () => blazepose_full,\n \"blazepose-heavy\": () => blazepose_heavy,\n \"blazepose-lite\": () => blazepose_lite,\n centernet: () => centernet,\n default: () => models_default,\n efficientpose: () => efficientpose,\n \"efficientpose-i-lite\": () => efficientpose_i_lite,\n \"efficientpose-ii-lite\": () => efficientpose_ii_lite,\n \"efficientpose-iv\": () => efficientpose_iv,\n emotion: () => emotion,\n faceboxes: () => faceboxes,\n facemesh: () => facemesh,\n \"facemesh-attention\": () => facemesh_attention,\n \"facemesh-attention-pinto\": () => facemesh_attention_pinto,\n \"facemesh-detection-full\": () => facemesh_detection_full,\n \"facemesh-detection-short\": () => facemesh_detection_short,\n faceres: () => faceres,\n \"faceres-deep\": () => faceres_deep,\n gear: () => gear,\n \"gear-e1\": () => gear_e1,\n \"gear-e2\": () => gear_e2,\n gender: () => gender,\n \"gender-ssrnet-imdb\": () => gender_ssrnet_imdb,\n handdetect: () => handdetect,\n \"handlandmark-full\": () => handlandmark_full,\n \"handlandmark-lite\": () => handlandmark_lite,\n \"handlandmark-sparse\": () => handlandmark_sparse,\n handskeleton: () => handskeleton,\n handtrack: () => handtrack,\n \"insightface-efficientnet-b0\": () => insightface_efficientnet_b0,\n \"insightface-ghostnet-strides1\": () => insightface_ghostnet_strides1,\n \"insightface-ghostnet-strides2\": () => insightface_ghostnet_strides2,\n \"insightface-mobilenet-emore\": () => insightface_mobilenet_emore,\n \"insightface-mobilenet-swish\": () => insightface_mobilenet_swish,\n iris: () => iris,\n liveness: () => liveness,\n meet: () => meet,\n mobileface: () => mobileface,\n mobilefacenet: () => mobilefacenet,\n models: () => models,\n \"movenet-lightning\": () => movenet_lightning,\n \"movenet-multipose\": () => movenet_multipose,\n \"movenet-thunder\": () => movenet_thunder,\n nanodet: () => nanodet,\n \"nanodet-e\": () => nanodet_e,\n \"nanodet-g\": () => nanodet_g,\n \"nanodet-m\": () => nanodet_m,\n \"nanodet-t\": () => nanodet_t,\n posenet: () => posenet,\n rvm: () => rvm,\n selfie: () => selfie\n});\nvar antispoof = 853098;\nvar blazeface = 538928;\nvar centernet = 4030290;\nvar emotion = 820516;\nvar facemesh = 1477958;\nvar faceres = 6978814;\nvar handlandmark_lite = 2023432;\nvar handtrack = 2964837;\nvar iris = 2599092;\nvar liveness = 592976;\nvar models = 0;\nvar movenet_lightning = 4650216;\nvar affectnet_mobilenet = 6920630;\nvar age = 161240;\nvar blazeface_back = 538928;\nvar blazeface_front = 402048;\nvar blazepose_detector = 5928856;\nvar blazepose_full = 6339202;\nvar blazepose_heavy = 27502466;\nvar blazepose_lite = 2726402;\nvar efficientpose = 5651240;\nvar faceboxes = 2013002;\nvar facemesh_attention_pinto = 2387598;\nvar facemesh_attention = 2382414;\nvar facemesh_detection_full = 1026192;\nvar facemesh_detection_short = 201268;\nvar faceres_deep = 13957620;\nvar gear_e1 = 112438;\nvar gear_e2 = 112438;\nvar gear = 1498916;\nvar gender_ssrnet_imdb = 161236;\nvar gender = 201808;\nvar handdetect = 3515612;\nvar handlandmark_full = 5431368;\nvar handlandmark_sparse = 5286322;\nvar handskeleton = 5502280;\nvar meet = 372228;\nvar mobileface = 2183192;\nvar mobilefacenet = 5171976;\nvar movenet_multipose = 9448838;\nvar movenet_thunder = 12477112;\nvar nanodet = 7574558;\nvar posenet = 5032780;\nvar rvm = 3739355;\nvar selfie = 212886;\nvar anti_spoofing = 853098;\nvar efficientpose_i_lite = 2269064;\nvar efficientpose_ii_lite = 5651240;\nvar efficientpose_iv = 25643252;\nvar insightface_efficientnet_b0 = 13013224;\nvar insightface_ghostnet_strides1 = 8093408;\nvar insightface_ghostnet_strides2 = 8049584;\nvar insightface_mobilenet_emore = 6938536;\nvar insightface_mobilenet_swish = 12168584;\nvar nanodet_e = 12319156;\nvar nanodet_g = 7574558;\nvar nanodet_m = 1887474;\nvar nanodet_t = 5294216;\nvar models_default = {\n antispoof,\n blazeface,\n centernet,\n emotion,\n facemesh,\n faceres,\n \"handlandmark-lite\": handlandmark_lite,\n handtrack,\n iris,\n liveness,\n models,\n \"movenet-lightning\": movenet_lightning,\n \"affectnet-mobilenet\": affectnet_mobilenet,\n age,\n \"blazeface-back\": blazeface_back,\n \"blazeface-front\": blazeface_front,\n \"blazepose-detector\": blazepose_detector,\n \"blazepose-full\": blazepose_full,\n \"blazepose-heavy\": blazepose_heavy,\n \"blazepose-lite\": blazepose_lite,\n efficientpose,\n faceboxes,\n \"facemesh-attention-pinto\": facemesh_attention_pinto,\n \"facemesh-attention\": facemesh_attention,\n \"facemesh-detection-full\": facemesh_detection_full,\n \"facemesh-detection-short\": facemesh_detection_short,\n \"faceres-deep\": faceres_deep,\n \"gear-e1\": gear_e1,\n \"gear-e2\": gear_e2,\n gear,\n \"gender-ssrnet-imdb\": gender_ssrnet_imdb,\n gender,\n handdetect,\n \"handlandmark-full\": handlandmark_full,\n \"handlandmark-sparse\": handlandmark_sparse,\n handskeleton,\n meet,\n mobileface,\n mobilefacenet,\n \"movenet-multipose\": movenet_multipose,\n \"movenet-thunder\": movenet_thunder,\n nanodet,\n posenet,\n rvm,\n selfie,\n \"anti-spoofing\": anti_spoofing,\n \"efficientpose-i-lite\": efficientpose_i_lite,\n \"efficientpose-ii-lite\": efficientpose_ii_lite,\n \"efficientpose-iv\": efficientpose_iv,\n \"insightface-efficientnet-b0\": insightface_efficientnet_b0,\n \"insightface-ghostnet-strides1\": insightface_ghostnet_strides1,\n \"insightface-ghostnet-strides2\": insightface_ghostnet_strides2,\n \"insightface-mobilenet-emore\": insightface_mobilenet_emore,\n \"insightface-mobilenet-swish\": insightface_mobilenet_swish,\n \"nanodet-e\": nanodet_e,\n \"nanodet-g\": nanodet_g,\n \"nanodet-m\": nanodet_m,\n \"nanodet-t\": nanodet_t\n};\n\n// src/tfjs/load.ts\nvar options = {\n cacheModels: true,\n cacheSupported: true,\n verbose: true,\n debug: false,\n modelBasePath: \"\"\n};\nvar modelStats = {};\nasync function httpHandler(url, init4) {\n if (options.debug)\n log(\"load model fetch:\", url, init4);\n return fetch(url, init4);\n}\nfunction setModelLoadOptions(config3) {\n options.cacheModels = config3.cacheModels;\n options.verbose = config3.debug;\n options.modelBasePath = config3.modelBasePath;\n}\nasync function loadModel(modelPath) {\n var _a, _b, _c2, _d2;\n let modelUrl = join(options.modelBasePath, modelPath || \"\");\n if (!modelUrl.toLowerCase().endsWith(\".json\"))\n modelUrl += \".json\";\n const modelPathSegments = modelUrl.includes(\"/\") ? modelUrl.split(\"/\") : modelUrl.split(\"\\\\\");\n const shortModelName = modelPathSegments[modelPathSegments.length - 1].replace(\".json\", \"\");\n const cachedModelName = \"indexeddb://\" + shortModelName;\n modelStats[shortModelName] = {\n name: shortModelName,\n sizeFromManifest: 0,\n sizeLoadedWeights: 0,\n sizeDesired: models_exports[shortModelName],\n inCache: false,\n url: \"\"\n };\n options.cacheSupported = typeof indexedDB !== \"undefined\";\n let cachedModels = {};\n try {\n cachedModels = options.cacheSupported && options.cacheModels ? await fi.listModels() : {};\n } catch (e) {\n options.cacheSupported = false;\n }\n modelStats[shortModelName].inCache = options.cacheSupported && options.cacheModels && Object.keys(cachedModels).includes(cachedModelName);\n modelStats[shortModelName].url = modelStats[shortModelName].inCache ? cachedModelName : modelUrl;\n const tfLoadOptions = typeof fetch === \"undefined\" ? {} : { fetchFunc: (url, init4) => httpHandler(url, init4) };\n let model23 = new Bl(modelStats[shortModelName].url, tfLoadOptions);\n let loaded = false;\n try {\n model23.findIOHandler();\n if (options.debug)\n log(\"model load handler:\", model23[\"handler\"]);\n } catch (err) {\n log(\"error finding model i/o handler:\", modelUrl, err);\n }\n try {\n const artifacts = await ((_a = model23.handler) == null ? void 0 : _a.load()) || null;\n modelStats[shortModelName].sizeFromManifest = ((_b = artifacts == null ? void 0 : artifacts.weightData) == null ? void 0 : _b.byteLength) || 0;\n if (artifacts)\n model23.loadSync(artifacts);\n else\n model23 = await $8(modelStats[shortModelName].inCache ? cachedModelName : modelUrl, tfLoadOptions);\n modelStats[shortModelName].sizeLoadedWeights = ((_d2 = (_c2 = model23.artifacts) == null ? void 0 : _c2.weightData) == null ? void 0 : _d2.byteLength) || 0;\n if (options.verbose)\n log(\"load:\", { model: shortModelName, url: model23[\"modelUrl\"], bytes: modelStats[shortModelName].sizeLoadedWeights });\n loaded = true;\n } catch (err) {\n log(\"error loading model:\", modelUrl, err);\n }\n if (loaded && options.cacheModels && options.cacheSupported && !modelStats[shortModelName].inCache) {\n try {\n const saveResult = await model23.save(cachedModelName);\n if (options.debug)\n log(\"model saved:\", cachedModelName, saveResult);\n } catch (err) {\n log(\"error saving model:\", modelUrl, err);\n }\n }\n return model23;\n}\n\n// package.json\nvar version = \"3.1.2\";\n\n// src/tfjs/humangl.ts\nvar config2 = {\n name: \"humangl\",\n priority: 999,\n canvas: null,\n gl: null,\n extensions: [],\n webGLattr: {\n // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n // default=true\n desynchronized: true\n // default=undefined\n }\n};\nfunction extensions() {\n const gl2 = config2.gl;\n if (!gl2)\n return;\n config2.extensions = gl2.getSupportedExtensions();\n}\nfunction register(instance) {\n var _a;\n if (instance.config.backend !== \"humangl\")\n return;\n if (config2.name in pr().registry && !((_a = config2 == null ? void 0 : config2.gl) == null ? void 0 : _a.getParameter(config2.gl.VERSION))) {\n log(\"humangl error: backend invalid context\");\n instance.models.reset();\n }\n if (!Sde(config2.name)) {\n try {\n config2.canvas = canvas(100, 100);\n } catch (err) {\n log(\"humangl error: cannot create canvas:\", err);\n return;\n }\n try {\n config2.gl = config2.canvas.getContext(\"webgl2\", config2.webGLattr);\n if (!config2.gl) {\n log(\"humangl error: cannot get webgl context\");\n return;\n }\n const glv2 = config2.gl.getParameter(config2.gl.VERSION).includes(\"2.0\");\n if (!glv2) {\n log(\"backend override: using fallback webgl backend as webgl 2.0 is not detected\");\n instance.config.backend = \"webgl\";\n return;\n }\n if (config2.canvas) {\n config2.canvas.addEventListener(\"webglcontextlost\", (e) => {\n log(\"humangl error:\", e.type);\n log(\"possible browser memory leak using webgl or conflict with multiple backend registrations\");\n instance.emit(\"error\");\n throw new Error(\"backend error: webgl context lost\");\n });\n config2.canvas.addEventListener(\"webglcontextrestored\", (e) => {\n log(\"humangl error: context restored:\", e);\n });\n config2.canvas.addEventListener(\"webglcontextcreationerror\", (e) => {\n log(\"humangl error: context create:\", e);\n });\n }\n } catch (err) {\n log(\"humangl error: cannot get webgl context:\", err);\n return;\n }\n try {\n vI(2, config2.gl);\n } catch (err) {\n log(\"humangl error: cannot set webgl context:\", err);\n return;\n }\n try {\n const ctx = new kp(config2.gl);\n su(config2.name, () => new wu(ctx), config2.priority);\n } catch (err) {\n log(\"humangl error: cannot register webgl backend:\", err);\n return;\n }\n try {\n const kernels = Ym(\"webgl\");\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config2.name };\n ri(newKernelConfig);\n });\n } catch (err) {\n log(\"humangl error: cannot update webgl backend registration:\", err);\n return;\n }\n try {\n if (A().flagRegistry.WEBGL_VERSION)\n A().set(\"WEBGL_VERSION\", 2);\n } catch (err) {\n log(\"humangl error: cannot set WebGL backend flags:\", err);\n return;\n }\n extensions();\n const backend = vde();\n const current = typeof backend[\"gpgpu\"] !== \"undefined\" ? backend[\"getGPGPUContext\"]().gl : null;\n if (current) {\n if (instance.config.debug)\n log(\"humangl backend registered:\", { webgl: current.getParameter(current.VERSION), renderer: current.getParameter(current.RENDERER) });\n } else {\n log(\"humangl error: no current gl context:\", current, config2.gl);\n }\n }\n}\n\n// src/tfjs/constants.ts\nvar constants = {\n tf255: 255,\n tf1: 1,\n tf2: 2,\n tf05: 0.5,\n tf127: 127.5,\n rgb: [0.2989, 0.587, 0.114]\n};\nfunction init() {\n constants.tf255 = ke(255, \"float32\");\n constants.tf1 = ke(1, \"float32\");\n constants.tf2 = ke(2, \"float32\");\n constants.tf05 = ke(0.5, \"float32\");\n constants.tf127 = ke(127.5, \"float32\");\n constants.rgb = tr([0.2989, 0.587, 0.114], \"float32\");\n}\n\n// src/tfjs/backend.ts\nasync function getBestBackend() {\n var _a;\n await env.updateBackend();\n if ((_a = env.tensorflow) == null ? void 0 : _a.version)\n return \"tensorflow\";\n if (env.webgpu.supported && env.webgpu.backend)\n return \"webgpu\";\n if (env.webgl.supported && env.webgl.backend)\n return \"webgl\";\n if (env.wasm.supported && env.wasm.backend)\n return \"wasm\";\n return \"cpu\";\n}\nfunction registerCustomOps(config3) {\n const newKernels = [];\n if (!env.kernels.includes(\"mod\")) {\n const kernelMod = {\n kernelName: \"Mod\",\n backendName: Cde(),\n kernelFunc: (op2) => De(() => Te(op2.inputs.a, se(je(op2.inputs.a, op2.inputs.b), op2.inputs.b)))\n };\n ri(kernelMod);\n env.kernels.push(\"mod\");\n newKernels.push(\"mod\");\n }\n if (!env.kernels.includes(\"floormod\")) {\n const kernelFloorMod = {\n kernelName: \"FloorMod\",\n backendName: Cde(),\n kernelFunc: (op2) => De(() => Ce(se(dd(op2.inputs.a, op2.inputs.b), op2.inputs.b), F2(op2.inputs.a, op2.inputs.b)))\n };\n ri(kernelFloorMod);\n env.kernels.push(\"floormod\");\n newKernels.push(\"floormod\");\n }\n if (!env.kernels.includes(\"rotatewithoffset\") && config3.softwareKernels) {\n const kernelRotateWithOffset = {\n kernelName: \"RotateWithOffset\",\n backendName: Cde(),\n kernelFunc: (op2) => De(() => {\n const backend = Cde();\n yde(\"cpu\");\n const t8 = Kj.rotateWithOffset(op2.inputs.image, op2.attrs.radians, op2.attrs.fillValue, op2.attrs.center);\n yde(backend);\n return t8;\n })\n };\n ri(kernelRotateWithOffset);\n env.kernels.push(\"rotatewithoffset\");\n newKernels.push(\"rotatewithoffset\");\n }\n if (newKernels.length > 0 && config3.debug)\n log(\"registered kernels:\", newKernels);\n}\nvar defaultFlags = {};\nasync function check(instance, force = false) {\n var _a, _b;\n instance.state = \"backend\";\n if (((_a = instance.config.backend) == null ? void 0 : _a.length) === 0)\n instance.config.backend = await getBestBackend();\n if (force || env.initial || instance.config.backend && instance.config.backend.length > 0 && Cde() !== instance.config.backend) {\n const timeStamp = now();\n if (instance.config.backend && instance.config.backend.length > 0) {\n if (typeof window === \"undefined\" && typeof WorkerGlobalScope !== \"undefined\" && instance.config.debug) {\n if (instance.config.debug)\n log(\"running inside web worker\");\n }\n if (typeof navigator !== \"undefined\" && ((_b = navigator == null ? void 0 : navigator.userAgent) == null ? void 0 : _b.toLowerCase().includes(\"electron\"))) {\n if (instance.config.debug)\n log(\"running inside electron\");\n }\n let available = Object.keys(pr().registryFactory);\n if (instance.config.backend === \"humangl\" && !available.includes(\"humangl\")) {\n register(instance);\n available = Object.keys(pr().registryFactory);\n }\n if (instance.config.debug)\n log(\"available backends:\", available);\n if (env.browser && !env.node && instance.config.backend === \"tensorflow\" && available.includes(\"webgl\")) {\n if (instance.config.debug)\n log(\"override: backend set to tensorflow while running in browser\");\n instance.config.backend = \"webgl\";\n }\n if (env.node && !env.browser && (instance.config.backend === \"webgl\" || instance.config.backend === \"humangl\") && available.includes(\"tensorflow\")) {\n if (instance.config.debug)\n log(`override: backend set to ${instance.config.backend} while running in nodejs`);\n instance.config.backend = \"tensorflow\";\n }\n if (env.browser && instance.config.backend === \"webgpu\") {\n if (typeof navigator === \"undefined\" || typeof navigator.gpu === \"undefined\") {\n log(\"override: backend set to webgpu but browser does not support webgpu\");\n instance.config.backend = \"webgl\";\n } else {\n const adapter = await navigator.gpu.requestAdapter();\n if (instance.config.debug)\n log(\"enumerated webgpu adapter:\", adapter);\n if (!adapter) {\n log(\"override: backend set to webgpu but browser reports no available gpu\");\n instance.config.backend = \"webgl\";\n } else {\n const adapterInfo = \"requestAdapterInfo\" in adapter ? await adapter.requestAdapterInfo() : void 0;\n log(\"webgpu adapter info:\", adapterInfo);\n }\n }\n }\n if (!available.includes(instance.config.backend)) {\n log(`error: backend ${instance.config.backend} not found in registry`);\n instance.config.backend = env.node ? \"tensorflow\" : \"webgl\";\n if (instance.config.debug)\n log(`override: setting backend ${instance.config.backend}`);\n }\n if (instance.config.debug)\n log(\"setting backend:\", [instance.config.backend]);\n if (instance.config.backend === \"wasm\") {\n if (A().flagRegistry.CANVAS2D_WILL_READ_FREQUENTLY)\n A().set(\"CANVAS2D_WILL_READ_FREQUENTLY\", true);\n if (instance.config.debug)\n log(\"wasm path:\", instance.config.wasmPath);\n if (typeof Yse !== \"undefined\")\n Yse(instance.config.wasmPath, instance.config.wasmPlatformFetch);\n else\n throw new Error(\"backend error: attempting to use wasm backend but wasm path is not set\");\n let mt = false;\n let simd = false;\n try {\n mt = await A().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\");\n simd = await A().getAsync(\"WASM_HAS_SIMD_SUPPORT\");\n if (instance.config.debug)\n log(`wasm execution: ${simd ? \"simd\" : \"no simd\"} ${mt ? \"multithreaded\" : \"singlethreaded\"}`);\n if (instance.config.debug && !simd)\n log(\"warning: wasm simd support is not enabled\");\n } catch (e) {\n log(\"wasm detection failed\");\n }\n }\n try {\n await yde(instance.config.backend);\n await bde();\n } catch (err) {\n log(\"error: cannot set backend:\", instance.config.backend, err);\n return false;\n }\n if (instance.config.debug)\n defaultFlags = JSON.parse(JSON.stringify(A().flags));\n }\n if (Cde() === \"humangl\" || Cde() === \"webgl\") {\n if (A().flagRegistry.WEBGL_USE_SHAPES_UNIFORMS)\n A().set(\"WEBGL_USE_SHAPES_UNIFORMS\", true);\n if (A().flagRegistry.WEBGL_EXP_CONV)\n A().set(\"WEBGL_EXP_CONV\", true);\n if (instance.config.debug && typeof instance.config.deallocate !== \"undefined\" && instance.config.deallocate) {\n log(\"changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:\", true);\n A().set(\"WEBGL_DELETE_TEXTURE_THRESHOLD\", 0);\n }\n }\n if (Cde() === \"webgpu\") {\n }\n if (instance.config.debug) {\n const newFlags = A().flags;\n const updatedFlags = {};\n for (const key of Object.keys(newFlags)) {\n if (defaultFlags[key] === newFlags[key])\n continue;\n updatedFlags[key] = newFlags[key];\n }\n if (instance.config.debug && Object.keys(updatedFlags).length > 0)\n log(\"backend:\", Cde(), \"flags:\", updatedFlags);\n }\n if (instance.config.flags && Object.keys(instance.config.flags).length > 0) {\n if (instance.config.debug)\n log(\"flags:\", instance.config[\"flags\"]);\n for (const [key, val] of Object.entries(instance.config.flags)) {\n A().set(key, val);\n }\n }\n lde();\n init();\n instance.performance.initBackend = Math.trunc(now() - timeStamp);\n instance.config.backend = Cde();\n await env.updateBackend();\n registerCustomOps(instance.config);\n }\n return true;\n}\nfunction fakeOps(kernelNames, config3) {\n for (const kernelName of kernelNames) {\n const kernelConfig = {\n kernelName,\n backendName: config3.backend,\n kernelFunc: (param) => {\n var _a;\n if (config3.debug)\n log(\"kernelFunc\", kernelName, config3.backend, param);\n return (_a = param == null ? void 0 : param.inputs) == null ? void 0 : _a.info;\n }\n // setupFunc: () => { if (config.debug) log('kernelFunc', kernelName, config.backend); },\n // disposeFunc: () => { if (config.debug) log('kernelFunc', kernelName, config.backend); },\n };\n ri(kernelConfig);\n }\n env.kernels = Ym(Cde()).map((kernel) => kernel.kernelName.toLowerCase());\n}\n\n// src/draw/draw.ts\nvar draw_exports = {};\n__export(draw_exports, {\n all: () => all,\n body: () => body,\n canvas: () => canvas2,\n face: () => face,\n gesture: () => gesture,\n hand: () => hand,\n init: () => init2,\n object: () => object,\n options: () => options2,\n person: () => person\n});\n\n// src/draw/primitives.ts\nvar getCanvasContext = (input) => {\n if (!input)\n log(\"draw error: invalid canvas\");\n else if (!input.getContext)\n log(\"draw error: canvas context not defined\");\n else {\n const ctx = input.getContext(\"2d\", { willReadFrequently: true });\n if (!ctx)\n log(\"draw error: cannot get canvas context\");\n else\n return ctx;\n }\n return null;\n};\nvar rad2deg = (theta) => Math.round(theta * 180 / Math.PI);\nvar replace = (str, source, target) => str.replace(source, typeof target === \"number\" ? target.toFixed(1) : target);\nvar colorDepth = (z, opt) => {\n if (!opt.useDepth || typeof z === \"undefined\")\n return opt.color;\n const rgb3 = Uint8ClampedArray.from([127 + 2 * z, 127 - 2 * z, 255]);\n return `rgba(${rgb3[0]}, ${rgb3[1]}, ${rgb3[2]}, ${opt.alpha})`;\n};\nfunction labels(ctx, str, startX, startY, localOptions2) {\n const line = str.replace(/\\[.*\\]/g, \"\").split(\"\\n\").map((l) => l.trim());\n const x = Math.max(0, startX);\n for (let i = line.length - 1; i >= 0; i--) {\n const y8 = i * localOptions2.lineHeight + startY;\n if (localOptions2.shadowColor && localOptions2.shadowColor !== \"\") {\n ctx.fillStyle = localOptions2.shadowColor;\n ctx.fillText(line[i], x + 5, y8 + 16);\n }\n ctx.fillStyle = localOptions2.labelColor;\n ctx.fillText(line[i], x + 4, y8 + 15);\n }\n}\nfunction point(ctx, x, y8, z, localOptions2) {\n ctx.fillStyle = colorDepth(z, localOptions2);\n ctx.beginPath();\n ctx.arc(x, y8, localOptions2.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\nfunction rect(ctx, x, y8, width, height, localOptions2) {\n ctx.beginPath();\n ctx.lineWidth = localOptions2.lineWidth;\n if (localOptions2.useCurves) {\n const cx2 = (x + x + width) / 2;\n const cy2 = (y8 + y8 + height) / 2;\n ctx.ellipse(cx2, cy2, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.moveTo(x + localOptions2.roundRect, y8);\n ctx.lineTo(x + width - localOptions2.roundRect, y8);\n ctx.quadraticCurveTo(x + width, y8, x + width, y8 + localOptions2.roundRect);\n ctx.lineTo(x + width, y8 + height - localOptions2.roundRect);\n ctx.quadraticCurveTo(x + width, y8 + height, x + width - localOptions2.roundRect, y8 + height);\n ctx.lineTo(x + localOptions2.roundRect, y8 + height);\n ctx.quadraticCurveTo(x, y8 + height, x, y8 + height - localOptions2.roundRect);\n ctx.lineTo(x, y8 + localOptions2.roundRect);\n ctx.quadraticCurveTo(x, y8, x + localOptions2.roundRect, y8);\n ctx.closePath();\n }\n ctx.stroke();\n}\nfunction lines(ctx, points, localOptions2) {\n if (points.length < 2)\n return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt2 of points) {\n ctx.strokeStyle = colorDepth(pt2[2] || 0, localOptions2);\n ctx.lineTo(Math.trunc(pt2[0]), Math.trunc(pt2[1]));\n }\n ctx.stroke();\n if (localOptions2.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\nfunction curves(ctx, points, localOptions2) {\n if (points.length < 2)\n return;\n ctx.lineWidth = localOptions2.lineWidth;\n if (!localOptions2.useCurves || points.length <= 2) {\n lines(ctx, points, localOptions2);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc2 = (points[i][0] + points[i + 1][0]) / 2;\n const yc2 = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc2, yc2);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (localOptions2.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\nfunction arrow(ctx, from, to, radius = 5) {\n let angle;\n let x;\n let y8;\n ctx.beginPath();\n ctx.moveTo(from[0], from[1]);\n ctx.lineTo(to[0], to[1]);\n angle = Math.atan2(to[1] - from[1], to[0] - from[0]);\n x = radius * Math.cos(angle) + to[0];\n y8 = radius * Math.sin(angle) + to[1];\n ctx.moveTo(x, y8);\n angle += 1 / 3 * (2 * Math.PI);\n x = radius * Math.cos(angle) + to[0];\n y8 = radius * Math.sin(angle) + to[1];\n ctx.lineTo(x, y8);\n angle += 1 / 3 * (2 * Math.PI);\n x = radius * Math.cos(angle) + to[0];\n y8 = radius * Math.sin(angle) + to[1];\n ctx.lineTo(x, y8);\n ctx.closePath();\n ctx.stroke();\n ctx.fill();\n}\n\n// src/draw/options.ts\nvar options2 = {\n color: \"rgba(173, 216, 230, 0.6)\",\n // 'lightblue' with light alpha channel\n labelColor: \"rgba(173, 216, 230, 1)\",\n // 'lightblue' with dark alpha channel\n shadowColor: \"black\",\n alpha: 0.5,\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 18,\n lineWidth: 4,\n pointSize: 2,\n roundRect: 8,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawAttention: true,\n drawGestures: true,\n drawPolygons: true,\n drawGaze: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n faceLabels: \"\",\n bodyLabels: \"\",\n bodyPartLabels: \"\",\n objectLabels: \"\",\n handLabels: \"\",\n fingerLabels: \"\",\n gestureLabels: \"\"\n};\n\n// src/face/facemeshcoords.ts\nvar meshAnnotations = {\n silhouette: [\n 10,\n 338,\n 297,\n 332,\n 284,\n 251,\n 389,\n 356,\n 454,\n 323,\n 361,\n 288,\n 397,\n 365,\n 379,\n 378,\n 400,\n 377,\n 152,\n 148,\n 176,\n 149,\n 150,\n 136,\n 172,\n 58,\n 132,\n 93,\n 234,\n 127,\n 162,\n 21,\n 54,\n 103,\n 67,\n 109\n ],\n // lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291], // 11\n // lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291], // 10\n // lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308], // 11\n // lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308], // 11\n lipsUpperOuter: [185, 40, 39, 37, 0, 267, 269, 270, 409],\n lipsLowerOuter: [61, 146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [191, 80, 81, 82, 13, 312, 311, 310, 415],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n lipsLowerSemiOuter: [76, 77, 90, 180, 85, 16, 315, 404, 320, 307, 306],\n lipsUpperSemiOuter: [184, 74, 73, 72, 11, 302, 303, 304, 408],\n lipsLowerSemiInner: [62, 96, 89, 179, 86, 15, 316, 403, 319, 325, 292],\n lipsUpperSemiInner: [183, 42, 41, 38, 12, 268, 271, 272, 407],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n // 7\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n // 9\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n // 7\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n // 9\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n // 7\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n // 9\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n // 9\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n // 8\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n // 6\n rightEyeIris: [473, 474, 475, 476, 477],\n // 5\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425]\n};\nvar meshLandmarks = {\n count: 468,\n mouth: 13,\n symmetryLine: [13, meshAnnotations.midwayBetweenEyes[0]]\n};\nvar blazeFaceLandmarks = {\n leftEye: 0,\n rightEye: 1,\n nose: 2,\n mouth: 3,\n leftEar: 4,\n rightEar: 5,\n symmetryLine: [3, 2]\n};\nvar irisIndices = [\n // A mapping from facemesh model keypoints to iris model keypoints.\n { key: \"EyeUpper0\", indices: [9, 10, 11, 12, 13, 14, 15] },\n // 7 x 3d\n { key: \"EyeUpper1\", indices: [25, 26, 27, 28, 29, 30, 31] },\n // 7 x 3d\n { key: \"EyeUpper2\", indices: [41, 42, 43, 44, 45, 46, 47] },\n // 7 x 3d\n { key: \"EyeLower0\", indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n // 7 x 3d\n { key: \"EyeLower1\", indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n // 9 x 3d\n { key: \"EyeLower2\", indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n // 9 x 3d\n { key: \"EyeLower3\", indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // 9 x 3d\n { key: \"EyebrowUpper\", indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // 8 x 3d\n { key: \"EyebrowLower\", indices: [48, 49, 50, 51, 52, 53] }\n // 6 x 3d\n];\nvar UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309]\n];\nvar TRI468 = [\n 127,\n 34,\n 139,\n 11,\n 0,\n 37,\n 232,\n 231,\n 120,\n 72,\n 37,\n 39,\n 128,\n 121,\n 47,\n 232,\n 121,\n 128,\n 104,\n 69,\n 67,\n 175,\n 171,\n 148,\n 157,\n 154,\n 155,\n 118,\n 50,\n 101,\n 73,\n 39,\n 40,\n 9,\n 151,\n 108,\n 48,\n 115,\n 131,\n 194,\n 204,\n 211,\n 74,\n 40,\n 185,\n 80,\n 42,\n 183,\n 40,\n 92,\n 186,\n 230,\n 229,\n 118,\n 202,\n 212,\n 214,\n 83,\n 18,\n 17,\n 76,\n 61,\n 146,\n 160,\n 29,\n 30,\n 56,\n 157,\n 173,\n 106,\n 204,\n 194,\n 135,\n 214,\n 192,\n 203,\n 165,\n 98,\n 21,\n 71,\n 68,\n 51,\n 45,\n 4,\n 144,\n 24,\n 23,\n 77,\n 146,\n 91,\n 205,\n 50,\n 187,\n 201,\n 200,\n 18,\n 91,\n 106,\n 182,\n 90,\n 91,\n 181,\n 85,\n 84,\n 17,\n 206,\n 203,\n 36,\n 148,\n 171,\n 140,\n 92,\n 40,\n 39,\n 193,\n 189,\n 244,\n 159,\n 158,\n 28,\n 247,\n 246,\n 161,\n 236,\n 3,\n 196,\n 54,\n 68,\n 104,\n 193,\n 168,\n 8,\n 117,\n 228,\n 31,\n 189,\n 193,\n 55,\n 98,\n 97,\n 99,\n 126,\n 47,\n 100,\n 166,\n 79,\n 218,\n 155,\n 154,\n 26,\n 209,\n 49,\n 131,\n 135,\n 136,\n 150,\n 47,\n 126,\n 217,\n 223,\n 52,\n 53,\n 45,\n 51,\n 134,\n 211,\n 170,\n 140,\n 67,\n 69,\n 108,\n 43,\n 106,\n 91,\n 230,\n 119,\n 120,\n 226,\n 130,\n 247,\n 63,\n 53,\n 52,\n 238,\n 20,\n 242,\n 46,\n 70,\n 156,\n 78,\n 62,\n 96,\n 46,\n 53,\n 63,\n 143,\n 34,\n 227,\n 173,\n 155,\n 133,\n 123,\n 117,\n 111,\n 44,\n 125,\n 19,\n 236,\n 134,\n 51,\n 216,\n 206,\n 205,\n 154,\n 153,\n 22,\n 39,\n 37,\n 167,\n 200,\n 201,\n 208,\n 36,\n 142,\n 100,\n 57,\n 212,\n 202,\n 20,\n 60,\n 99,\n 28,\n 158,\n 157,\n 35,\n 226,\n 113,\n 160,\n 159,\n 27,\n 204,\n 202,\n 210,\n 113,\n 225,\n 46,\n 43,\n 202,\n 204,\n 62,\n 76,\n 77,\n 137,\n 123,\n 116,\n 41,\n 38,\n 72,\n 203,\n 129,\n 142,\n 64,\n 98,\n 240,\n 49,\n 102,\n 64,\n 41,\n 73,\n 74,\n 212,\n 216,\n 207,\n 42,\n 74,\n 184,\n 169,\n 170,\n 211,\n 170,\n 149,\n 176,\n 105,\n 66,\n 69,\n 122,\n 6,\n 168,\n 123,\n 147,\n 187,\n 96,\n 77,\n 90,\n 65,\n 55,\n 107,\n 89,\n 90,\n 180,\n 101,\n 100,\n 120,\n 63,\n 105,\n 104,\n 93,\n 137,\n 227,\n 15,\n 86,\n 85,\n 129,\n 102,\n 49,\n 14,\n 87,\n 86,\n 55,\n 8,\n 9,\n 100,\n 47,\n 121,\n 145,\n 23,\n 22,\n 88,\n 89,\n 179,\n 6,\n 122,\n 196,\n 88,\n 95,\n 96,\n 138,\n 172,\n 136,\n 215,\n 58,\n 172,\n 115,\n 48,\n 219,\n 42,\n 80,\n 81,\n 195,\n 3,\n 51,\n 43,\n 146,\n 61,\n 171,\n 175,\n 199,\n 81,\n 82,\n 38,\n 53,\n 46,\n 225,\n 144,\n 163,\n 110,\n 246,\n 33,\n 7,\n 52,\n 65,\n 66,\n 229,\n 228,\n 117,\n 34,\n 127,\n 234,\n 107,\n 108,\n 69,\n 109,\n 108,\n 151,\n 48,\n 64,\n 235,\n 62,\n 78,\n 191,\n 129,\n 209,\n 126,\n 111,\n 35,\n 143,\n 163,\n 161,\n 246,\n 117,\n 123,\n 50,\n 222,\n 65,\n 52,\n 19,\n 125,\n 141,\n 221,\n 55,\n 65,\n 3,\n 195,\n 197,\n 25,\n 7,\n 33,\n 220,\n 237,\n 44,\n 70,\n 71,\n 139,\n 122,\n 193,\n 245,\n 247,\n 130,\n 33,\n 71,\n 21,\n 162,\n 153,\n 158,\n 159,\n 170,\n 169,\n 150,\n 188,\n 174,\n 196,\n 216,\n 186,\n 92,\n 144,\n 160,\n 161,\n 2,\n 97,\n 167,\n 141,\n 125,\n 241,\n 164,\n 167,\n 37,\n 72,\n 38,\n 12,\n 145,\n 159,\n 160,\n 38,\n 82,\n 13,\n 63,\n 68,\n 71,\n 226,\n 35,\n 111,\n 158,\n 153,\n 154,\n 101,\n 50,\n 205,\n 206,\n 92,\n 165,\n 209,\n 198,\n 217,\n 165,\n 167,\n 97,\n 220,\n 115,\n 218,\n 133,\n 112,\n 243,\n 239,\n 238,\n 241,\n 214,\n 135,\n 169,\n 190,\n 173,\n 133,\n 171,\n 208,\n 32,\n 125,\n 44,\n 237,\n 86,\n 87,\n 178,\n 85,\n 86,\n 179,\n 84,\n 85,\n 180,\n 83,\n 84,\n 181,\n 201,\n 83,\n 182,\n 137,\n 93,\n 132,\n 76,\n 62,\n 183,\n 61,\n 76,\n 184,\n 57,\n 61,\n 185,\n 212,\n 57,\n 186,\n 214,\n 207,\n 187,\n 34,\n 143,\n 156,\n 79,\n 239,\n 237,\n 123,\n 137,\n 177,\n 44,\n 1,\n 4,\n 201,\n 194,\n 32,\n 64,\n 102,\n 129,\n 213,\n 215,\n 138,\n 59,\n 166,\n 219,\n 242,\n 99,\n 97,\n 2,\n 94,\n 141,\n 75,\n 59,\n 235,\n 24,\n 110,\n 228,\n 25,\n 130,\n 226,\n 23,\n 24,\n 229,\n 22,\n 23,\n 230,\n 26,\n 22,\n 231,\n 112,\n 26,\n 232,\n 189,\n 190,\n 243,\n 221,\n 56,\n 190,\n 28,\n 56,\n 221,\n 27,\n 28,\n 222,\n 29,\n 27,\n 223,\n 30,\n 29,\n 224,\n 247,\n 30,\n 225,\n 238,\n 79,\n 20,\n 166,\n 59,\n 75,\n 60,\n 75,\n 240,\n 147,\n 177,\n 215,\n 20,\n 79,\n 166,\n 187,\n 147,\n 213,\n 112,\n 233,\n 244,\n 233,\n 128,\n 245,\n 128,\n 114,\n 188,\n 114,\n 217,\n 174,\n 131,\n 115,\n 220,\n 217,\n 198,\n 236,\n 198,\n 131,\n 134,\n 177,\n 132,\n 58,\n 143,\n 35,\n 124,\n 110,\n 163,\n 7,\n 228,\n 110,\n 25,\n 356,\n 389,\n 368,\n 11,\n 302,\n 267,\n 452,\n 350,\n 349,\n 302,\n 303,\n 269,\n 357,\n 343,\n 277,\n 452,\n 453,\n 357,\n 333,\n 332,\n 297,\n 175,\n 152,\n 377,\n 384,\n 398,\n 382,\n 347,\n 348,\n 330,\n 303,\n 304,\n 270,\n 9,\n 336,\n 337,\n 278,\n 279,\n 360,\n 418,\n 262,\n 431,\n 304,\n 408,\n 409,\n 310,\n 415,\n 407,\n 270,\n 409,\n 410,\n 450,\n 348,\n 347,\n 422,\n 430,\n 434,\n 313,\n 314,\n 17,\n 306,\n 307,\n 375,\n 387,\n 388,\n 260,\n 286,\n 414,\n 398,\n 335,\n 406,\n 418,\n 364,\n 367,\n 416,\n 423,\n 358,\n 327,\n 251,\n 284,\n 298,\n 281,\n 5,\n 4,\n 373,\n 374,\n 253,\n 307,\n 320,\n 321,\n 425,\n 427,\n 411,\n 421,\n 313,\n 18,\n 321,\n 405,\n 406,\n 320,\n 404,\n 405,\n 315,\n 16,\n 17,\n 426,\n 425,\n 266,\n 377,\n 400,\n 369,\n 322,\n 391,\n 269,\n 417,\n 465,\n 464,\n 386,\n 257,\n 258,\n 466,\n 260,\n 388,\n 456,\n 399,\n 419,\n 284,\n 332,\n 333,\n 417,\n 285,\n 8,\n 346,\n 340,\n 261,\n 413,\n 441,\n 285,\n 327,\n 460,\n 328,\n 355,\n 371,\n 329,\n 392,\n 439,\n 438,\n 382,\n 341,\n 256,\n 429,\n 420,\n 360,\n 364,\n 394,\n 379,\n 277,\n 343,\n 437,\n 443,\n 444,\n 283,\n 275,\n 440,\n 363,\n 431,\n 262,\n 369,\n 297,\n 338,\n 337,\n 273,\n 375,\n 321,\n 450,\n 451,\n 349,\n 446,\n 342,\n 467,\n 293,\n 334,\n 282,\n 458,\n 461,\n 462,\n 276,\n 353,\n 383,\n 308,\n 324,\n 325,\n 276,\n 300,\n 293,\n 372,\n 345,\n 447,\n 382,\n 398,\n 362,\n 352,\n 345,\n 340,\n 274,\n 1,\n 19,\n 456,\n 248,\n 281,\n 436,\n 427,\n 425,\n 381,\n 256,\n 252,\n 269,\n 391,\n 393,\n 200,\n 199,\n 428,\n 266,\n 330,\n 329,\n 287,\n 273,\n 422,\n 250,\n 462,\n 328,\n 258,\n 286,\n 384,\n 265,\n 353,\n 342,\n 387,\n 259,\n 257,\n 424,\n 431,\n 430,\n 342,\n 353,\n 276,\n 273,\n 335,\n 424,\n 292,\n 325,\n 307,\n 366,\n 447,\n 345,\n 271,\n 303,\n 302,\n 423,\n 266,\n 371,\n 294,\n 455,\n 460,\n 279,\n 278,\n 294,\n 271,\n 272,\n 304,\n 432,\n 434,\n 427,\n 272,\n 407,\n 408,\n 394,\n 430,\n 431,\n 395,\n 369,\n 400,\n 334,\n 333,\n 299,\n 351,\n 417,\n 168,\n 352,\n 280,\n 411,\n 325,\n 319,\n 320,\n 295,\n 296,\n 336,\n 319,\n 403,\n 404,\n 330,\n 348,\n 349,\n 293,\n 298,\n 333,\n 323,\n 454,\n 447,\n 15,\n 16,\n 315,\n 358,\n 429,\n 279,\n 14,\n 15,\n 316,\n 285,\n 336,\n 9,\n 329,\n 349,\n 350,\n 374,\n 380,\n 252,\n 318,\n 402,\n 403,\n 6,\n 197,\n 419,\n 318,\n 319,\n 325,\n 367,\n 364,\n 365,\n 435,\n 367,\n 397,\n 344,\n 438,\n 439,\n 272,\n 271,\n 311,\n 195,\n 5,\n 281,\n 273,\n 287,\n 291,\n 396,\n 428,\n 199,\n 311,\n 271,\n 268,\n 283,\n 444,\n 445,\n 373,\n 254,\n 339,\n 263,\n 466,\n 249,\n 282,\n 334,\n 296,\n 449,\n 347,\n 346,\n 264,\n 447,\n 454,\n 336,\n 296,\n 299,\n 338,\n 10,\n 151,\n 278,\n 439,\n 455,\n 292,\n 407,\n 415,\n 358,\n 371,\n 355,\n 340,\n 345,\n 372,\n 390,\n 249,\n 466,\n 346,\n 347,\n 280,\n 442,\n 443,\n 282,\n 19,\n 94,\n 370,\n 441,\n 442,\n 295,\n 248,\n 419,\n 197,\n 263,\n 255,\n 359,\n 440,\n 275,\n 274,\n 300,\n 383,\n 368,\n 351,\n 412,\n 465,\n 263,\n 467,\n 466,\n 301,\n 368,\n 389,\n 380,\n 374,\n 386,\n 395,\n 378,\n 379,\n 412,\n 351,\n 419,\n 436,\n 426,\n 322,\n 373,\n 390,\n 388,\n 2,\n 164,\n 393,\n 370,\n 462,\n 461,\n 164,\n 0,\n 267,\n 302,\n 11,\n 12,\n 374,\n 373,\n 387,\n 268,\n 12,\n 13,\n 293,\n 300,\n 301,\n 446,\n 261,\n 340,\n 385,\n 384,\n 381,\n 330,\n 266,\n 425,\n 426,\n 423,\n 391,\n 429,\n 355,\n 437,\n 391,\n 327,\n 326,\n 440,\n 457,\n 438,\n 341,\n 382,\n 362,\n 459,\n 457,\n 461,\n 434,\n 430,\n 394,\n 414,\n 463,\n 362,\n 396,\n 369,\n 262,\n 354,\n 461,\n 457,\n 316,\n 403,\n 402,\n 315,\n 404,\n 403,\n 314,\n 405,\n 404,\n 313,\n 406,\n 405,\n 421,\n 418,\n 406,\n 366,\n 401,\n 361,\n 306,\n 408,\n 407,\n 291,\n 409,\n 408,\n 287,\n 410,\n 409,\n 432,\n 436,\n 410,\n 434,\n 416,\n 411,\n 264,\n 368,\n 383,\n 309,\n 438,\n 457,\n 352,\n 376,\n 401,\n 274,\n 275,\n 4,\n 421,\n 428,\n 262,\n 294,\n 327,\n 358,\n 433,\n 416,\n 367,\n 289,\n 455,\n 439,\n 462,\n 370,\n 326,\n 2,\n 326,\n 370,\n 305,\n 460,\n 455,\n 254,\n 449,\n 448,\n 255,\n 261,\n 446,\n 253,\n 450,\n 449,\n 252,\n 451,\n 450,\n 256,\n 452,\n 451,\n 341,\n 453,\n 452,\n 413,\n 464,\n 463,\n 441,\n 413,\n 414,\n 258,\n 442,\n 441,\n 257,\n 443,\n 442,\n 259,\n 444,\n 443,\n 260,\n 445,\n 444,\n 467,\n 342,\n 445,\n 459,\n 458,\n 250,\n 289,\n 392,\n 290,\n 290,\n 328,\n 460,\n 376,\n 433,\n 435,\n 250,\n 290,\n 392,\n 411,\n 416,\n 433,\n 341,\n 463,\n 464,\n 453,\n 464,\n 465,\n 357,\n 465,\n 412,\n 343,\n 412,\n 399,\n 360,\n 363,\n 440,\n 437,\n 399,\n 456,\n 420,\n 456,\n 363,\n 401,\n 435,\n 288,\n 372,\n 383,\n 353,\n 339,\n 255,\n 249,\n 448,\n 261,\n 255,\n 133,\n 243,\n 190,\n 133,\n 155,\n 112,\n 33,\n 246,\n 247,\n 33,\n 130,\n 25,\n 398,\n 384,\n 286,\n 362,\n 398,\n 414,\n 362,\n 463,\n 341,\n 263,\n 359,\n 467,\n 263,\n 249,\n 255,\n 466,\n 467,\n 260,\n 75,\n 60,\n 166,\n 238,\n 239,\n 79,\n 162,\n 127,\n 139,\n 72,\n 11,\n 37,\n 121,\n 232,\n 120,\n 73,\n 72,\n 39,\n 114,\n 128,\n 47,\n 233,\n 232,\n 128,\n 103,\n 104,\n 67,\n 152,\n 175,\n 148,\n 173,\n 157,\n 155,\n 119,\n 118,\n 101,\n 74,\n 73,\n 40,\n 107,\n 9,\n 108,\n 49,\n 48,\n 131,\n 32,\n 194,\n 211,\n 184,\n 74,\n 185,\n 191,\n 80,\n 183,\n 185,\n 40,\n 186,\n 119,\n 230,\n 118,\n 210,\n 202,\n 214,\n 84,\n 83,\n 17,\n 77,\n 76,\n 146,\n 161,\n 160,\n 30,\n 190,\n 56,\n 173,\n 182,\n 106,\n 194,\n 138,\n 135,\n 192,\n 129,\n 203,\n 98,\n 54,\n 21,\n 68,\n 5,\n 51,\n 4,\n 145,\n 144,\n 23,\n 90,\n 77,\n 91,\n 207,\n 205,\n 187,\n 83,\n 201,\n 18,\n 181,\n 91,\n 182,\n 180,\n 90,\n 181,\n 16,\n 85,\n 17,\n 205,\n 206,\n 36,\n 176,\n 148,\n 140,\n 165,\n 92,\n 39,\n 245,\n 193,\n 244,\n 27,\n 159,\n 28,\n 30,\n 247,\n 161,\n 174,\n 236,\n 196,\n 103,\n 54,\n 104,\n 55,\n 193,\n 8,\n 111,\n 117,\n 31,\n 221,\n 189,\n 55,\n 240,\n 98,\n 99,\n 142,\n 126,\n 100,\n 219,\n 166,\n 218,\n 112,\n 155,\n 26,\n 198,\n 209,\n 131,\n 169,\n 135,\n 150,\n 114,\n 47,\n 217,\n 224,\n 223,\n 53,\n 220,\n 45,\n 134,\n 32,\n 211,\n 140,\n 109,\n 67,\n 108,\n 146,\n 43,\n 91,\n 231,\n 230,\n 120,\n 113,\n 226,\n 247,\n 105,\n 63,\n 52,\n 241,\n 238,\n 242,\n 124,\n 46,\n 156,\n 95,\n 78,\n 96,\n 70,\n 46,\n 63,\n 116,\n 143,\n 227,\n 116,\n 123,\n 111,\n 1,\n 44,\n 19,\n 3,\n 236,\n 51,\n 207,\n 216,\n 205,\n 26,\n 154,\n 22,\n 165,\n 39,\n 167,\n 199,\n 200,\n 208,\n 101,\n 36,\n 100,\n 43,\n 57,\n 202,\n 242,\n 20,\n 99,\n 56,\n 28,\n 157,\n 124,\n 35,\n 113,\n 29,\n 160,\n 27,\n 211,\n 204,\n 210,\n 124,\n 113,\n 46,\n 106,\n 43,\n 204,\n 96,\n 62,\n 77,\n 227,\n 137,\n 116,\n 73,\n 41,\n 72,\n 36,\n 203,\n 142,\n 235,\n 64,\n 240,\n 48,\n 49,\n 64,\n 42,\n 41,\n 74,\n 214,\n 212,\n 207,\n 183,\n 42,\n 184,\n 210,\n 169,\n 211,\n 140,\n 170,\n 176,\n 104,\n 105,\n 69,\n 193,\n 122,\n 168,\n 50,\n 123,\n 187,\n 89,\n 96,\n 90,\n 66,\n 65,\n 107,\n 179,\n 89,\n 180,\n 119,\n 101,\n 120,\n 68,\n 63,\n 104,\n 234,\n 93,\n 227,\n 16,\n 15,\n 85,\n 209,\n 129,\n 49,\n 15,\n 14,\n 86,\n 107,\n 55,\n 9,\n 120,\n 100,\n 121,\n 153,\n 145,\n 22,\n 178,\n 88,\n 179,\n 197,\n 6,\n 196,\n 89,\n 88,\n 96,\n 135,\n 138,\n 136,\n 138,\n 215,\n 172,\n 218,\n 115,\n 219,\n 41,\n 42,\n 81,\n 5,\n 195,\n 51,\n 57,\n 43,\n 61,\n 208,\n 171,\n 199,\n 41,\n 81,\n 38,\n 224,\n 53,\n 225,\n 24,\n 144,\n 110,\n 105,\n 52,\n 66,\n 118,\n 229,\n 117,\n 227,\n 34,\n 234,\n 66,\n 107,\n 69,\n 10,\n 109,\n 151,\n 219,\n 48,\n 235,\n 183,\n 62,\n 191,\n 142,\n 129,\n 126,\n 116,\n 111,\n 143,\n 7,\n 163,\n 246,\n 118,\n 117,\n 50,\n 223,\n 222,\n 52,\n 94,\n 19,\n 141,\n 222,\n 221,\n 65,\n 196,\n 3,\n 197,\n 45,\n 220,\n 44,\n 156,\n 70,\n 139,\n 188,\n 122,\n 245,\n 139,\n 71,\n 162,\n 145,\n 153,\n 159,\n 149,\n 170,\n 150,\n 122,\n 188,\n 196,\n 206,\n 216,\n 92,\n 163,\n 144,\n 161,\n 164,\n 2,\n 167,\n 242,\n 141,\n 241,\n 0,\n 164,\n 37,\n 11,\n 72,\n 12,\n 144,\n 145,\n 160,\n 12,\n 38,\n 13,\n 70,\n 63,\n 71,\n 31,\n 226,\n 111,\n 157,\n 158,\n 154,\n 36,\n 101,\n 205,\n 203,\n 206,\n 165,\n 126,\n 209,\n 217,\n 98,\n 165,\n 97,\n 237,\n 220,\n 218,\n 237,\n 239,\n 241,\n 210,\n 214,\n 169,\n 140,\n 171,\n 32,\n 241,\n 125,\n 237,\n 179,\n 86,\n 178,\n 180,\n 85,\n 179,\n 181,\n 84,\n 180,\n 182,\n 83,\n 181,\n 194,\n 201,\n 182,\n 177,\n 137,\n 132,\n 184,\n 76,\n 183,\n 185,\n 61,\n 184,\n 186,\n 57,\n 185,\n 216,\n 212,\n 186,\n 192,\n 214,\n 187,\n 139,\n 34,\n 156,\n 218,\n 79,\n 237,\n 147,\n 123,\n 177,\n 45,\n 44,\n 4,\n 208,\n 201,\n 32,\n 98,\n 64,\n 129,\n 192,\n 213,\n 138,\n 235,\n 59,\n 219,\n 141,\n 242,\n 97,\n 97,\n 2,\n 141,\n 240,\n 75,\n 235,\n 229,\n 24,\n 228,\n 31,\n 25,\n 226,\n 230,\n 23,\n 229,\n 231,\n 22,\n 230,\n 232,\n 26,\n 231,\n 233,\n 112,\n 232,\n 244,\n 189,\n 243,\n 189,\n 221,\n 190,\n 222,\n 28,\n 221,\n 223,\n 27,\n 222,\n 224,\n 29,\n 223,\n 225,\n 30,\n 224,\n 113,\n 247,\n 225,\n 99,\n 60,\n 240,\n 213,\n 147,\n 215,\n 60,\n 20,\n 166,\n 192,\n 187,\n 213,\n 243,\n 112,\n 244,\n 244,\n 233,\n 245,\n 245,\n 128,\n 188,\n 188,\n 114,\n 174,\n 134,\n 131,\n 220,\n 174,\n 217,\n 236,\n 236,\n 198,\n 134,\n 215,\n 177,\n 58,\n 156,\n 143,\n 124,\n 25,\n 110,\n 7,\n 31,\n 228,\n 25,\n 264,\n 356,\n 368,\n 0,\n 11,\n 267,\n 451,\n 452,\n 349,\n 267,\n 302,\n 269,\n 350,\n 357,\n 277,\n 350,\n 452,\n 357,\n 299,\n 333,\n 297,\n 396,\n 175,\n 377,\n 381,\n 384,\n 382,\n 280,\n 347,\n 330,\n 269,\n 303,\n 270,\n 151,\n 9,\n 337,\n 344,\n 278,\n 360,\n 424,\n 418,\n 431,\n 270,\n 304,\n 409,\n 272,\n 310,\n 407,\n 322,\n 270,\n 410,\n 449,\n 450,\n 347,\n 432,\n 422,\n 434,\n 18,\n 313,\n 17,\n 291,\n 306,\n 375,\n 259,\n 387,\n 260,\n 424,\n 335,\n 418,\n 434,\n 364,\n 416,\n 391,\n 423,\n 327,\n 301,\n 251,\n 298,\n 275,\n 281,\n 4,\n 254,\n 373,\n 253,\n 375,\n 307,\n 321,\n 280,\n 425,\n 411,\n 200,\n 421,\n 18,\n 335,\n 321,\n 406,\n 321,\n 320,\n 405,\n 314,\n 315,\n 17,\n 423,\n 426,\n 266,\n 396,\n 377,\n 369,\n 270,\n 322,\n 269,\n 413,\n 417,\n 464,\n 385,\n 386,\n 258,\n 248,\n 456,\n 419,\n 298,\n 284,\n 333,\n 168,\n 417,\n 8,\n 448,\n 346,\n 261,\n 417,\n 413,\n 285,\n 326,\n 327,\n 328,\n 277,\n 355,\n 329,\n 309,\n 392,\n 438,\n 381,\n 382,\n 256,\n 279,\n 429,\n 360,\n 365,\n 364,\n 379,\n 355,\n 277,\n 437,\n 282,\n 443,\n 283,\n 281,\n 275,\n 363,\n 395,\n 431,\n 369,\n 299,\n 297,\n 337,\n 335,\n 273,\n 321,\n 348,\n 450,\n 349,\n 359,\n 446,\n 467,\n 283,\n 293,\n 282,\n 250,\n 458,\n 462,\n 300,\n 276,\n 383,\n 292,\n 308,\n 325,\n 283,\n 276,\n 293,\n 264,\n 372,\n 447,\n 346,\n 352,\n 340,\n 354,\n 274,\n 19,\n 363,\n 456,\n 281,\n 426,\n 436,\n 425,\n 380,\n 381,\n 252,\n 267,\n 269,\n 393,\n 421,\n 200,\n 428,\n 371,\n 266,\n 329,\n 432,\n 287,\n 422,\n 290,\n 250,\n 328,\n 385,\n 258,\n 384,\n 446,\n 265,\n 342,\n 386,\n 387,\n 257,\n 422,\n 424,\n 430,\n 445,\n 342,\n 276,\n 422,\n 273,\n 424,\n 306,\n 292,\n 307,\n 352,\n 366,\n 345,\n 268,\n 271,\n 302,\n 358,\n 423,\n 371,\n 327,\n 294,\n 460,\n 331,\n 279,\n 294,\n 303,\n 271,\n 304,\n 436,\n 432,\n 427,\n 304,\n 272,\n 408,\n 395,\n 394,\n 431,\n 378,\n 395,\n 400,\n 296,\n 334,\n 299,\n 6,\n 351,\n 168,\n 376,\n 352,\n 411,\n 307,\n 325,\n 320,\n 285,\n 295,\n 336,\n 320,\n 319,\n 404,\n 329,\n 330,\n 349,\n 334,\n 293,\n 333,\n 366,\n 323,\n 447,\n 316,\n 15,\n 315,\n 331,\n 358,\n 279,\n 317,\n 14,\n 316,\n 8,\n 285,\n 9,\n 277,\n 329,\n 350,\n 253,\n 374,\n 252,\n 319,\n 318,\n 403,\n 351,\n 6,\n 419,\n 324,\n 318,\n 325,\n 397,\n 367,\n 365,\n 288,\n 435,\n 397,\n 278,\n 344,\n 439,\n 310,\n 272,\n 311,\n 248,\n 195,\n 281,\n 375,\n 273,\n 291,\n 175,\n 396,\n 199,\n 312,\n 311,\n 268,\n 276,\n 283,\n 445,\n 390,\n 373,\n 339,\n 295,\n 282,\n 296,\n 448,\n 449,\n 346,\n 356,\n 264,\n 454,\n 337,\n 336,\n 299,\n 337,\n 338,\n 151,\n 294,\n 278,\n 455,\n 308,\n 292,\n 415,\n 429,\n 358,\n 355,\n 265,\n 340,\n 372,\n 388,\n 390,\n 466,\n 352,\n 346,\n 280,\n 295,\n 442,\n 282,\n 354,\n 19,\n 370,\n 285,\n 441,\n 295,\n 195,\n 248,\n 197,\n 457,\n 440,\n 274,\n 301,\n 300,\n 368,\n 417,\n 351,\n 465,\n 251,\n 301,\n 389,\n 385,\n 380,\n 386,\n 394,\n 395,\n 379,\n 399,\n 412,\n 419,\n 410,\n 436,\n 322,\n 387,\n 373,\n 388,\n 326,\n 2,\n 393,\n 354,\n 370,\n 461,\n 393,\n 164,\n 267,\n 268,\n 302,\n 12,\n 386,\n 374,\n 387,\n 312,\n 268,\n 13,\n 298,\n 293,\n 301,\n 265,\n 446,\n 340,\n 380,\n 385,\n 381,\n 280,\n 330,\n 425,\n 322,\n 426,\n 391,\n 420,\n 429,\n 437,\n 393,\n 391,\n 326,\n 344,\n 440,\n 438,\n 458,\n 459,\n 461,\n 364,\n 434,\n 394,\n 428,\n 396,\n 262,\n 274,\n 354,\n 457,\n 317,\n 316,\n 402,\n 316,\n 315,\n 403,\n 315,\n 314,\n 404,\n 314,\n 313,\n 405,\n 313,\n 421,\n 406,\n 323,\n 366,\n 361,\n 292,\n 306,\n 407,\n 306,\n 291,\n 408,\n 291,\n 287,\n 409,\n 287,\n 432,\n 410,\n 427,\n 434,\n 411,\n 372,\n 264,\n 383,\n 459,\n 309,\n 457,\n 366,\n 352,\n 401,\n 1,\n 274,\n 4,\n 418,\n 421,\n 262,\n 331,\n 294,\n 358,\n 435,\n 433,\n 367,\n 392,\n 289,\n 439,\n 328,\n 462,\n 326,\n 94,\n 2,\n 370,\n 289,\n 305,\n 455,\n 339,\n 254,\n 448,\n 359,\n 255,\n 446,\n 254,\n 253,\n 449,\n 253,\n 252,\n 450,\n 252,\n 256,\n 451,\n 256,\n 341,\n 452,\n 414,\n 413,\n 463,\n 286,\n 441,\n 414,\n 286,\n 258,\n 441,\n 258,\n 257,\n 442,\n 257,\n 259,\n 443,\n 259,\n 260,\n 444,\n 260,\n 467,\n 445,\n 309,\n 459,\n 250,\n 305,\n 289,\n 290,\n 305,\n 290,\n 460,\n 401,\n 376,\n 435,\n 309,\n 250,\n 392,\n 376,\n 411,\n 433,\n 453,\n 341,\n 464,\n 357,\n 453,\n 465,\n 343,\n 357,\n 412,\n 437,\n 343,\n 399,\n 344,\n 360,\n 440,\n 420,\n 437,\n 456,\n 360,\n 420,\n 363,\n 361,\n 401,\n 288,\n 265,\n 372,\n 353,\n 390,\n 339,\n 249,\n 339,\n 448,\n 255\n];\nvar VTX68 = [\n /* cont */\n 127,\n 234,\n 132,\n 58,\n 172,\n 150,\n 149,\n 148,\n 152,\n 377,\n 378,\n 379,\n 397,\n 288,\n 361,\n 454,\n 356,\n /* brows */\n 70,\n 63,\n 105,\n 66,\n 107,\n 336,\n 296,\n 334,\n 293,\n 300,\n /* nose */\n 168,\n 6,\n 195,\n 4,\n 98,\n 97,\n 2,\n 326,\n 327,\n /* eyes */\n 33,\n 160,\n 158,\n 133,\n 153,\n 144,\n 362,\n 385,\n 387,\n 263,\n 373,\n 380,\n /* lip */\n 57,\n 40,\n 37,\n 0,\n 267,\n 270,\n 287,\n 321,\n 314,\n 17,\n 84,\n 91,\n /* mouth */\n 78,\n 81,\n 13,\n 311,\n 308,\n 402,\n 14,\n 178\n];\nvar VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nvar VTX7 = [33, 133, 362, 263, 1, 78, 308];\nvar UV68 = VTX68.map((x) => UV468[x]);\nvar UV33 = VTX33.map((x) => UV468[x]);\nvar UV7 = VTX7.map((x) => UV468[x]);\nfunction connectionsToIndices(connections) {\n const indices = connections.map((connection) => connection[0]);\n indices.push(connections[connections.length - 1][1]);\n return indices;\n}\nvar pairsLips = [\n [61, 146],\n [146, 91],\n [91, 181],\n [181, 84],\n [84, 17],\n [17, 314],\n [314, 405],\n [405, 321],\n [321, 375],\n [375, 291],\n [61, 185],\n [185, 40],\n [40, 39],\n [39, 37],\n [37, 0],\n [0, 267],\n [267, 269],\n [269, 270],\n [270, 409],\n [409, 291],\n [78, 95],\n [95, 88],\n [88, 178],\n [178, 87],\n [87, 14],\n [14, 317],\n [317, 402],\n [402, 318],\n [318, 324],\n [324, 308],\n [78, 191],\n [191, 80],\n [80, 81],\n [81, 82],\n [82, 13],\n [13, 312],\n [312, 311],\n [311, 310],\n [310, 415],\n [415, 308]\n];\nvar pairsLeftEye = [[263, 249], [249, 390], [390, 373], [373, 374], [374, 380], [380, 381], [381, 382], [382, 362], [263, 466], [466, 388], [388, 387], [387, 386], [386, 385], [385, 384], [384, 398], [398, 362]];\nvar pairsLeftEyebrow = [[276, 283], [283, 282], [282, 295], [295, 285], [300, 293], [293, 334], [334, 296], [296, 336]];\nvar pairsLeftIris = [[474, 475], [475, 476], [476, 477], [477, 474]];\nvar pairsRightEye = [[33, 7], [7, 163], [163, 144], [144, 145], [145, 153], [153, 154], [154, 155], [155, 133], [33, 246], [246, 161], [161, 160], [160, 159], [159, 158], [158, 157], [157, 173], [173, 133]];\nvar pairsRightEyebrow = [[46, 53], [53, 52], [52, 65], [65, 55], [70, 63], [63, 105], [105, 66], [66, 107]];\nvar pairsRightIris = [[469, 470], [470, 471], [471, 472], [472, 469]];\nvar pairsFaceContour = [\n [10, 338],\n [338, 297],\n [297, 332],\n [332, 284],\n [284, 251],\n [251, 389],\n [389, 356],\n [356, 454],\n [454, 323],\n [323, 361],\n [361, 288],\n [288, 397],\n [397, 365],\n [365, 379],\n [379, 378],\n [378, 400],\n [400, 377],\n [377, 152],\n [152, 148],\n [148, 176],\n [176, 149],\n [149, 150],\n [150, 136],\n [136, 172],\n [172, 58],\n [58, 132],\n [132, 93],\n [93, 234],\n [234, 127],\n [127, 162],\n [162, 21],\n [21, 54],\n [54, 103],\n [103, 67],\n [67, 109],\n [109, 10]\n];\nvar contourKeypoints = {\n lips: connectionsToIndices(pairsLips),\n leftEye: connectionsToIndices(pairsLeftEye),\n leftEyebrow: connectionsToIndices(pairsLeftEyebrow),\n leftIris: connectionsToIndices(pairsLeftIris),\n rightEye: connectionsToIndices(pairsRightEye),\n rightEyebrow: connectionsToIndices(pairsRightEyebrow),\n rightIris: connectionsToIndices(pairsRightIris),\n faceOval: connectionsToIndices(pairsFaceContour)\n};\n\n// src/face/constants.ts\nvar LIPS_CONNECTIONS = [\n [61, 146],\n [146, 91],\n [91, 181],\n [181, 84],\n [84, 17],\n [17, 314],\n [314, 405],\n [405, 321],\n [321, 375],\n [375, 291],\n [61, 185],\n [185, 40],\n [40, 39],\n [39, 37],\n [37, 0],\n [0, 267],\n [267, 269],\n [269, 270],\n [270, 409],\n [409, 291],\n [78, 95],\n [95, 88],\n [88, 178],\n [178, 87],\n [87, 14],\n [14, 317],\n [317, 402],\n [402, 318],\n [318, 324],\n [324, 308],\n [78, 191],\n [191, 80],\n [80, 81],\n [81, 82],\n [82, 13],\n [13, 312],\n [312, 311],\n [311, 310],\n [310, 415],\n [415, 308]\n];\nvar LEFT_EYE_CONNECTIONS = [[263, 249], [249, 390], [390, 373], [373, 374], [374, 380], [380, 381], [381, 382], [382, 362], [263, 466], [466, 388], [388, 387], [387, 386], [386, 385], [385, 384], [384, 398], [398, 362]];\nvar LEFT_EYEBROW_CONNECTIONS = [[276, 283], [283, 282], [282, 295], [295, 285], [300, 293], [293, 334], [334, 296], [296, 336]];\nvar LEFT_IRIS_CONNECTIONS = [[474, 475], [475, 476], [476, 477], [477, 474]];\nvar RIGHT_EYE_CONNECTIONS = [[33, 7], [7, 163], [163, 144], [144, 145], [145, 153], [153, 154], [154, 155], [155, 133], [33, 246], [246, 161], [161, 160], [160, 159], [159, 158], [158, 157], [157, 173], [173, 133]];\nvar RIGHT_EYEBROW_CONNECTIONS = [[46, 53], [53, 52], [52, 65], [65, 55], [70, 63], [63, 105], [105, 66], [66, 107]];\nvar RIGHT_IRIS_CONNECTIONS = [[469, 470], [470, 471], [471, 472], [472, 469]];\nvar FACE_OVAL_CONNECTIONS = [\n [10, 338],\n [338, 297],\n [297, 332],\n [332, 284],\n [284, 251],\n [251, 389],\n [389, 356],\n [356, 454],\n [454, 323],\n [323, 361],\n [361, 288],\n [288, 397],\n [397, 365],\n [365, 379],\n [379, 378],\n [378, 400],\n [400, 377],\n [377, 152],\n [152, 148],\n [148, 176],\n [176, 149],\n [149, 150],\n [150, 136],\n [136, 172],\n [172, 58],\n [58, 132],\n [132, 93],\n [93, 234],\n [234, 127],\n [127, 162],\n [162, 21],\n [21, 54],\n [54, 103],\n [103, 67],\n [67, 109],\n [109, 10]\n];\nfunction connectionsToIndices2(connections) {\n const indices = connections.map((connection) => connection[0]);\n indices.push(connections[connections.length - 1][1]);\n return indices;\n}\nvar MEDIAPIPE_FACE_MESH_KEYPOINTS_BY_CONTOUR = {\n lips: connectionsToIndices2(LIPS_CONNECTIONS),\n leftEye: connectionsToIndices2(LEFT_EYE_CONNECTIONS),\n leftEyebrow: connectionsToIndices2(LEFT_EYEBROW_CONNECTIONS),\n leftIris: connectionsToIndices2(LEFT_IRIS_CONNECTIONS),\n rightEye: connectionsToIndices2(RIGHT_EYE_CONNECTIONS),\n rightEyebrow: connectionsToIndices2(RIGHT_EYEBROW_CONNECTIONS),\n rightIris: connectionsToIndices2(RIGHT_IRIS_CONNECTIONS),\n faceOval: connectionsToIndices2(FACE_OVAL_CONNECTIONS)\n};\nvar indexLabelPairs = Object.entries(MEDIAPIPE_FACE_MESH_KEYPOINTS_BY_CONTOUR).map(([label, indices]) => indices.map((index2) => [index2, label])).flat();\nvar MEDIAPIPE_FACE_MESH_KEYPOINTS = new Map(indexLabelPairs);\nvar LANDMARKS_REFINEMENT_LIPS_CONFIG = [\n 61,\n 146,\n 91,\n 181,\n 84,\n 17,\n 314,\n 405,\n 321,\n 375,\n 291,\n // Lower outer.\n 185,\n 40,\n 39,\n 37,\n 0,\n 267,\n 269,\n 270,\n 409,\n // Upper outer(excluding corners).\n 78,\n 95,\n 88,\n 178,\n 87,\n 14,\n 317,\n 402,\n 318,\n 324,\n 308,\n // Lower inner.\n 191,\n 80,\n 81,\n 82,\n 13,\n 312,\n 311,\n 310,\n 415,\n // Upper inner(excluding corners).\n 76,\n 77,\n 90,\n 180,\n 85,\n 16,\n 315,\n 404,\n 320,\n 307,\n 306,\n // Lower semi - outer.\n 184,\n 74,\n 73,\n 72,\n 11,\n 302,\n 303,\n 304,\n 408,\n // Upper semi - outer(excluding corners).\n 62,\n 96,\n 89,\n 179,\n 86,\n 15,\n 316,\n 403,\n 319,\n 325,\n 292,\n // Lower semi - inner.\n 183,\n 42,\n 41,\n 38,\n 12,\n 268,\n 271,\n 272,\n 407\n // Upper semi - inner(excluding corners).\n];\nvar LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG = [\n 33,\n 7,\n 163,\n 144,\n 145,\n 153,\n 154,\n 155,\n 133,\n // Lower contour.\n 246,\n 161,\n 160,\n 159,\n 158,\n 157,\n 173,\n // upper contour (excluding corners).\n 130,\n 25,\n 110,\n 24,\n 23,\n 22,\n 26,\n 112,\n 243,\n // Halo x2 lower contour.\n 247,\n 30,\n 29,\n 27,\n 28,\n 56,\n 190,\n // Halo x2 upper contour (excluding corners).\n 226,\n 31,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 244,\n // Halo x3 lower contour.\n 113,\n 225,\n 224,\n 223,\n 222,\n 221,\n 189,\n // Halo x3 upper contour (excluding corners).\n 35,\n 124,\n 46,\n 53,\n 52,\n 65,\n // Halo x4 upper contour (no lower because of mesh structure) or eyebrow inner contour.\n 143,\n 111,\n 117,\n 118,\n 119,\n 120,\n 121,\n 128,\n 245,\n // Halo x5 lower contour.\n 156,\n 70,\n 63,\n 105,\n 66,\n 107,\n 55,\n 193\n // Halo x5 upper contour (excluding corners) or eyebrow outer contour.\n];\nvar LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG = [\n 263,\n 249,\n 390,\n 373,\n 374,\n 380,\n 381,\n 382,\n 362,\n // Lower contour.\n 466,\n 388,\n 387,\n 386,\n 385,\n 384,\n 398,\n // Upper contour (excluding corners).\n 359,\n 255,\n 339,\n 254,\n 253,\n 252,\n 256,\n 341,\n 463,\n // Halo x2 lower contour.\n 467,\n 260,\n 259,\n 257,\n 258,\n 286,\n 414,\n // Halo x2 upper contour (excluding corners).\n 446,\n 261,\n 448,\n 449,\n 450,\n 451,\n 452,\n 453,\n 464,\n // Halo x3 lower contour.\n 342,\n 445,\n 444,\n 443,\n 442,\n 441,\n 413,\n // Halo x3 upper contour (excluding corners).\n 265,\n 353,\n 276,\n 283,\n 282,\n 295,\n // Halo x4 upper contour (no lower because of mesh structure) or/ eyebrow inner contour.\n 372,\n 340,\n 346,\n 347,\n 348,\n 349,\n 350,\n 357,\n 465,\n // Halo x5 lower contour.\n 383,\n 300,\n 293,\n 334,\n 296,\n 336,\n 285,\n 417\n // Halo x5 upper contour (excluding corners) or eyebrow outer contour.\n];\n\n// src/draw/face.ts\nvar localOptions;\nfunction drawLabels(f, ctx) {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i;\n if (!localOptions.drawLabels || ((_a = localOptions.faceLabels) == null ? void 0 : _a.length) === 0)\n return;\n let l = localOptions.faceLabels.slice();\n l = replace(l, \"[id]\", f.id.toFixed(0));\n if (f.score)\n l = replace(l, \"[score]\", 100 * f.score);\n if (f.gender)\n l = replace(l, \"[gender]\", f.gender);\n if (f.genderScore)\n l = replace(l, \"[genderScore]\", 100 * f.genderScore);\n if (f.age)\n l = replace(l, \"[age]\", f.age);\n if (f.distance)\n l = replace(l, \"[distance]\", 100 * f.distance);\n if (f.real)\n l = replace(l, \"[real]\", 100 * f.real);\n if (f.live)\n l = replace(l, \"[live]\", 100 * f.live);\n if (f.emotion && f.emotion.length > 0) {\n const emotion2 = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n if (emotion2.length > 3)\n emotion2.length = 3;\n l = replace(l, \"[emotions]\", emotion2.join(\" \"));\n }\n if ((_c2 = (_b = f.rotation) == null ? void 0 : _b.angle) == null ? void 0 : _c2.roll)\n l = replace(l, \"[roll]\", rad2deg(f.rotation.angle.roll));\n if ((_e = (_d2 = f.rotation) == null ? void 0 : _d2.angle) == null ? void 0 : _e.yaw)\n l = replace(l, \"[yaw]\", rad2deg(f.rotation.angle.yaw));\n if ((_g2 = (_f2 = f.rotation) == null ? void 0 : _f2.angle) == null ? void 0 : _g2.pitch)\n l = replace(l, \"[pitch]\", rad2deg(f.rotation.angle.pitch));\n if ((_i = (_h2 = f.rotation) == null ? void 0 : _h2.gaze) == null ? void 0 : _i.bearing)\n l = replace(l, \"[gaze]\", rad2deg(f.rotation.gaze.bearing));\n labels(ctx, l, f.box[0], f.box[1], localOptions);\n}\nfunction drawIrisElipse(f, ctx) {\n var _a, _b, _c2, _d2;\n if (((_a = f.annotations) == null ? void 0 : _a.leftEyeIris) && ((_b = f.annotations) == null ? void 0 : _b.leftEyeIris[0])) {\n ctx.strokeStyle = localOptions.useDepth ? \"rgba(255, 200, 255, 0.3)\" : localOptions.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (localOptions.fillPolygons) {\n ctx.fillStyle = localOptions.useDepth ? \"rgba(255, 255, 200, 0.3)\" : localOptions.color;\n ctx.fill();\n }\n }\n if (((_c2 = f.annotations) == null ? void 0 : _c2.rightEyeIris) && ((_d2 = f.annotations) == null ? void 0 : _d2.rightEyeIris[0])) {\n ctx.strokeStyle = localOptions.useDepth ? \"rgba(255, 200, 255, 0.3)\" : localOptions.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (localOptions.fillPolygons) {\n ctx.fillStyle = localOptions.useDepth ? \"rgba(255, 255, 200, 0.3)\" : localOptions.color;\n ctx.fill();\n }\n }\n}\nfunction drawGazeSpheres(f, ctx) {\n var _a;\n if (localOptions.drawGaze && ((_a = f.rotation) == null ? void 0 : _a.angle) && typeof Path2D !== \"undefined\") {\n ctx.strokeStyle = \"pink\";\n const valX = f.box[0] + f.box[2] / 2 - f.box[3] * rad2deg(f.rotation.angle.yaw) / 90;\n const valY = f.box[1] + f.box[3] / 2 + f.box[2] * rad2deg(f.rotation.angle.pitch) / 90;\n const pathV = new Path2D(`\n M ${f.box[0] + f.box[2] / 2} ${f.box[1]}\n C\n ${valX} ${f.box[1]},\n ${valX} ${f.box[1] + f.box[3]},\n ${f.box[0] + f.box[2] / 2} ${f.box[1] + f.box[3]}\n `);\n const pathH = new Path2D(`\n M ${f.box[0]} ${f.box[1] + f.box[3] / 2}\n C \n ${f.box[0]} ${valY},\n ${f.box[0] + f.box[2]} ${valY},\n ${f.box[0] + f.box[2]} ${f.box[1] + f.box[3] / 2}\n `);\n ctx.stroke(pathH);\n ctx.stroke(pathV);\n }\n}\nfunction drawGazeArrows(f, ctx) {\n var _a;\n if (localOptions.drawGaze && ((_a = f.rotation) == null ? void 0 : _a.gaze.strength) && f.rotation.gaze.bearing && f.annotations.leftEyeIris && f.annotations.rightEyeIris && f.annotations.leftEyeIris[0] && f.annotations.rightEyeIris[0]) {\n ctx.strokeStyle = \"pink\";\n ctx.fillStyle = \"pink\";\n const leftGaze = [\n f.annotations.leftEyeIris[0][0] + Math.sin(f.rotation.gaze.bearing) * f.rotation.gaze.strength * f.box[3],\n f.annotations.leftEyeIris[0][1] + Math.cos(f.rotation.gaze.bearing) * f.rotation.gaze.strength * f.box[2]\n ];\n arrow(ctx, [f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1]], [leftGaze[0], leftGaze[1]], 4);\n const rightGaze = [\n f.annotations.rightEyeIris[0][0] + Math.sin(f.rotation.gaze.bearing) * f.rotation.gaze.strength * f.box[3],\n f.annotations.rightEyeIris[0][1] + Math.cos(f.rotation.gaze.bearing) * f.rotation.gaze.strength * f.box[2]\n ];\n arrow(ctx, [f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1]], [rightGaze[0], rightGaze[1]], 4);\n }\n}\nfunction drawFacePolygons(f, ctx) {\n if (localOptions.drawPolygons && f.mesh.length >= 468) {\n ctx.lineWidth = 1;\n for (let i = 0; i < TRI468.length / 3; i++) {\n const points = [TRI468[i * 3 + 0], TRI468[i * 3 + 1], TRI468[i * 3 + 2]].map((index2) => f.mesh[index2]);\n lines(ctx, points, localOptions);\n }\n drawIrisElipse(f, ctx);\n }\n}\nfunction drawFacePoints(f, ctx) {\n if (localOptions.drawPoints) {\n if ((f == null ? void 0 : f.mesh.length) >= 468) {\n for (let i = 0; i < f.mesh.length; i++) {\n point(ctx, f.mesh[i][0], f.mesh[i][1], f.mesh[i][2], localOptions);\n if (localOptions.drawAttention) {\n if (LANDMARKS_REFINEMENT_LIPS_CONFIG.includes(i))\n point(ctx, f.mesh[i][0], f.mesh[i][1], f.mesh[i][2] + 127, localOptions);\n if (LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG.includes(i))\n point(ctx, f.mesh[i][0], f.mesh[i][1], f.mesh[i][2] - 127, localOptions);\n if (LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG.includes(i))\n point(ctx, f.mesh[i][0], f.mesh[i][1], f.mesh[i][2] - 127, localOptions);\n }\n }\n } else {\n for (const [k, v10] of Object.entries((f == null ? void 0 : f.annotations) || {})) {\n if (!(v10 == null ? void 0 : v10[0]))\n continue;\n const pt2 = v10[0];\n point(ctx, pt2[0], pt2[1], 0, localOptions);\n if (localOptions.drawLabels)\n labels(ctx, k, pt2[0], pt2[1], localOptions);\n }\n }\n }\n}\nfunction drawFaceBoxes(f, ctx) {\n if (localOptions.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3], localOptions);\n }\n}\nfunction face(inCanvas2, result, drawOptions) {\n localOptions = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.font = localOptions.font;\n ctx.strokeStyle = localOptions.color;\n ctx.fillStyle = localOptions.color;\n for (const f of result) {\n drawFaceBoxes(f, ctx);\n drawLabels(f, ctx);\n if (f.mesh && f.mesh.length > 0) {\n drawFacePoints(f, ctx);\n drawFacePolygons(f, ctx);\n drawGazeSpheres(f, ctx);\n drawGazeArrows(f, ctx);\n }\n }\n}\n\n// src/draw/body.ts\nfunction body(inCanvas2, result, drawOptions) {\n var _a, _b;\n const localOptions2 = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.lineJoin = \"round\";\n for (let i = 0; i < result.length; i++) {\n ctx.strokeStyle = localOptions2.color;\n ctx.fillStyle = localOptions2.color;\n ctx.lineWidth = localOptions2.lineWidth;\n ctx.font = localOptions2.font;\n if (localOptions2.drawBoxes && result[i].box && result[i].box.length === 4) {\n rect(ctx, result[i].box[0], result[i].box[1], result[i].box[2], result[i].box[3], localOptions2);\n if (localOptions2.drawLabels && ((_a = localOptions2.bodyLabels) == null ? void 0 : _a.length) > 0) {\n let l = localOptions2.bodyLabels.slice();\n l = replace(l, \"[id]\", result[i].id.toFixed(0));\n l = replace(l, \"[score]\", 100 * result[i].score);\n labels(ctx, l, result[i].box[0], result[i].box[1], localOptions2);\n }\n }\n if (localOptions2.drawPoints && result[i].keypoints) {\n for (let pt2 = 0; pt2 < result[i].keypoints.length; pt2++) {\n if (!result[i].keypoints[pt2].score || result[i].keypoints[pt2].score === 0)\n continue;\n ctx.fillStyle = colorDepth(result[i].keypoints[pt2].position[2], localOptions2);\n point(ctx, result[i].keypoints[pt2].position[0], result[i].keypoints[pt2].position[1], 0, localOptions2);\n }\n }\n if (localOptions2.drawLabels && ((_b = localOptions2.bodyPartLabels) == null ? void 0 : _b.length) > 0 && result[i].keypoints) {\n ctx.font = localOptions2.font;\n for (const pt2 of result[i].keypoints) {\n if (!pt2.score || pt2.score === 0)\n continue;\n let l = localOptions2.bodyPartLabels.slice();\n l = replace(l, \"[label]\", pt2.part);\n l = replace(l, \"[score]\", 100 * pt2.score);\n labels(ctx, l, pt2.position[0], pt2.position[1], localOptions2);\n }\n }\n if (localOptions2.drawPolygons && result[i].keypoints && result[i].annotations) {\n for (const part of Object.values(result[i].annotations)) {\n for (const connected4 of part)\n curves(ctx, connected4, localOptions2);\n }\n }\n }\n}\n\n// src/draw/hand.ts\nfunction hand(inCanvas2, result, drawOptions) {\n var _a, _b;\n const localOptions2 = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.lineJoin = \"round\";\n ctx.font = localOptions2.font;\n for (const h of result) {\n if (localOptions2.drawBoxes) {\n ctx.strokeStyle = localOptions2.color;\n ctx.fillStyle = localOptions2.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3], localOptions2);\n if (localOptions2.drawLabels && ((_a = localOptions2.handLabels) == null ? void 0 : _a.length) > 0) {\n let l = localOptions2.handLabels.slice();\n l = replace(l, \"[id]\", h.id.toFixed(0));\n l = replace(l, \"[label]\", h.label);\n l = replace(l, \"[score]\", 100 * h.score);\n labels(ctx, l, h.box[0], h.box[1], localOptions2);\n }\n ctx.stroke();\n }\n if (localOptions2.drawPoints) {\n if (h.keypoints && h.keypoints.length > 0) {\n for (const pt2 of h.keypoints) {\n ctx.fillStyle = colorDepth(pt2[2], localOptions2);\n point(ctx, pt2[0], pt2[1], 0, localOptions2);\n }\n }\n }\n if (localOptions2.drawLabels && h.annotations && ((_b = localOptions2.fingerLabels) == null ? void 0 : _b.length) > 0) {\n for (const [part, pt2] of Object.entries(h.annotations)) {\n let l = localOptions2.fingerLabels.slice();\n l = replace(l, \"[label]\", part);\n labels(ctx, l, pt2[pt2.length - 1][0], pt2[pt2.length - 1][1], localOptions2);\n }\n }\n if (localOptions2.drawPolygons && h.annotations) {\n const addHandLine = (part) => {\n if (!part || part.length === 0 || !part[0])\n return;\n for (let i = 0; i < part.length; i++) {\n ctx.beginPath();\n const z = part[i][2] || 0;\n ctx.strokeStyle = colorDepth(i * z, localOptions2);\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n ctx.lineWidth = localOptions2.lineWidth;\n addHandLine(h.annotations.index);\n addHandLine(h.annotations.middle);\n addHandLine(h.annotations.ring);\n addHandLine(h.annotations.pinky);\n addHandLine(h.annotations.thumb);\n }\n }\n}\n\n// src/draw/object.ts\nfunction object(inCanvas2, result, drawOptions) {\n var _a;\n const localOptions2 = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.lineJoin = \"round\";\n ctx.font = localOptions2.font;\n for (const h of result) {\n if (localOptions2.drawBoxes) {\n ctx.strokeStyle = localOptions2.color;\n ctx.fillStyle = localOptions2.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3], localOptions2);\n if (localOptions2.drawLabels && ((_a = localOptions2.objectLabels) == null ? void 0 : _a.length) > 0) {\n let l = localOptions2.objectLabels.slice();\n l = replace(l, \"[id]\", h.id.toFixed(0));\n l = replace(l, \"[label]\", h.label);\n l = replace(l, \"[score]\", 100 * h.score);\n labels(ctx, l, h.box[0], h.box[1], localOptions2);\n }\n ctx.stroke();\n }\n }\n}\n\n// src/draw/gesture.ts\nfunction gesture(inCanvas2, result, drawOptions) {\n var _a;\n const localOptions2 = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n if (localOptions2.drawGestures && ((_a = localOptions2.gestureLabels) == null ? void 0 : _a.length) > 0) {\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.font = localOptions2.font;\n ctx.fillStyle = localOptions2.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n const [where, what] = Object.entries(result[j]);\n if (what.length > 1 && what[1].length > 0) {\n const who = where[1] > 0 ? `#${where[1]}` : \"\";\n let l = localOptions2.gestureLabels.slice();\n l = replace(l, \"[where]\", where[0]);\n l = replace(l, \"[who]\", who);\n l = replace(l, \"[what]\", what[1]);\n labels(ctx, l, 8, 2 + i * localOptions2.lineHeight, localOptions2);\n i += 1;\n }\n }\n }\n}\n\n// src/draw/labels.ts\nvar defaultLabels = {\n face: `face\n confidence: [score]%\n [gender] [genderScore]%\n age: [age] years\n distance: [distance]cm\n real: [real]%\n live: [live]%\n [emotions]\n roll: [roll]\\xB0 yaw:[yaw]\\xB0 pitch:[pitch]\\xB0\n gaze: [gaze]\\xB0`,\n body: \"body [score]%\",\n bodyPart: \"[label] [score]%\",\n object: \"[label] [score]%\",\n hand: \"[label] [score]%\",\n finger: \"[label]\",\n gesture: \"[where] [who]: [what]\"\n};\n\n// src/draw/draw.ts\nvar drawTime = 0;\nfunction person(inCanvas2, result, drawOptions) {\n const localOptions2 = mergeDeep(options2, drawOptions);\n if (!result || !inCanvas2)\n return;\n const ctx = getCanvasContext(inCanvas2);\n if (!ctx)\n return;\n ctx.lineJoin = \"round\";\n ctx.font = localOptions2.font;\n for (let i = 0; i < result.length; i++) {\n if (localOptions2.drawBoxes) {\n ctx.strokeStyle = localOptions2.color;\n ctx.fillStyle = localOptions2.color;\n rect(ctx, result[i].box[0], result[i].box[1], result[i].box[2], result[i].box[3], localOptions2);\n if (localOptions2.drawLabels) {\n const label = `person #${i}`;\n if (localOptions2.shadowColor && localOptions2.shadowColor !== \"\") {\n ctx.fillStyle = localOptions2.shadowColor;\n ctx.fillText(label, result[i].box[0] + 3, 1 + result[i].box[1] + localOptions2.lineHeight, result[i].box[2]);\n }\n ctx.fillStyle = localOptions2.labelColor;\n ctx.fillText(label, result[i].box[0] + 2, 0 + result[i].box[1] + localOptions2.lineHeight, result[i].box[2]);\n }\n ctx.stroke();\n }\n }\n}\nfunction canvas2(input, output) {\n if (!input || !output)\n return;\n const ctx = getCanvasContext(output);\n if (!ctx)\n return;\n ctx.drawImage(input, 0, 0);\n}\nasync function all(inCanvas2, result, drawOptions) {\n if (!(result == null ? void 0 : result.performance) || !inCanvas2)\n return null;\n const timeStamp = now();\n const localOptions2 = mergeDeep(options2, drawOptions);\n const promise = Promise.all([\n face(inCanvas2, result.face, localOptions2),\n body(inCanvas2, result.body, localOptions2),\n hand(inCanvas2, result.hand, localOptions2),\n object(inCanvas2, result.object, localOptions2),\n gesture(inCanvas2, result.gesture, localOptions2)\n // gestures do not have buffering\n // person(inCanvas, result.persons, localOptions); // already included above\n ]);\n drawTime = env.perfadd ? drawTime + Math.round(now() - timeStamp) : Math.round(now() - timeStamp);\n result.performance.draw = drawTime;\n return promise;\n}\nfunction init2() {\n options2.faceLabels = defaultLabels.face;\n options2.bodyLabels = defaultLabels.body;\n options2.bodyPartLabels = defaultLabels.bodyPart;\n options2.handLabels = defaultLabels.hand;\n options2.fingerLabels = defaultLabels.finger;\n options2.objectLabels = defaultLabels.object;\n options2.gestureLabels = defaultLabels.gesture;\n}\n\n// src/body/blazeposecoords.ts\nvar blazeposecoords_exports = {};\n__export(blazeposecoords_exports, {\n connected: () => connected,\n kpt: () => kpt\n});\nvar kpt = [\n \"nose\",\n // 0\n \"leftEyeInside\",\n // 1\n \"leftEye\",\n // 2\n \"leftEyeOutside\",\n // 3\n \"rightEyeInside\",\n // 4\n \"rightEye\",\n // 5\n \"rightEyeOutside\",\n // 6\n \"leftEar\",\n // 7\n \"rightEar\",\n // 8\n \"leftMouth\",\n // 9\n \"rightMouth\",\n // 10\n \"leftShoulder\",\n // 11\n \"rightShoulder\",\n // 12\n \"leftElbow\",\n // 13\n \"rightElbow\",\n // 14\n \"leftWrist\",\n // 15\n \"rightWrist\",\n // 16\n \"leftPinky\",\n // 17\n \"rightPinky\",\n // 18\n \"leftIndex\",\n // 19\n \"rightIndex\",\n // 20\n \"leftThumb\",\n // 21\n \"rightThumb\",\n // 22\n \"leftHip\",\n // 23\n \"rightHip\",\n // 24\n \"leftKnee\",\n // 25\n \"rightKnee\",\n // 26\n \"leftAnkle\",\n // 27\n \"rightAnkle\",\n // 28\n \"leftHeel\",\n // 29\n \"rightHeel\",\n // 30\n \"leftFoot\",\n // 31\n \"rightFoot\",\n // 32\n \"bodyCenter\",\n // 33\n \"bodyTop\",\n // 34\n \"leftPalm\",\n // 35 // z-coord not ok\n \"leftHand\",\n // 36 // similar to wrist but z-coord not ok\n \"rightPalm\",\n // 37 // z-coord not ok\n \"rightHand\"\n // 38 // similar to wrist but z-coord not ok\n];\nvar connected = {\n shoulders: [\"leftShoulder\", \"rightShoulder\"],\n hips: [\"rightHip\", \"leftHip\"],\n mouth: [\"leftMouth\", \"rightMouth\"],\n leftLegUpper: [\"leftHip\", \"leftKnee\"],\n leftLegLower: [\"leftKnee\", \"leftAnkle\"],\n leftFoot: [\"leftAnkle\", \"leftHeel\", \"leftFoot\"],\n leftTorso: [\"leftShoulder\", \"leftHip\"],\n leftArmUpper: [\"leftShoulder\", \"leftElbow\"],\n leftArmLower: [\"leftElbow\", \"leftWrist\"],\n leftHand: [\"leftWrist\", \"leftPalm\"],\n leftHandPinky: [\"leftPalm\", \"leftPinky\"],\n leftHandIndex: [\"leftPalm\", \"leftIndex\"],\n leftHandThumb: [\"leftPalm\", \"leftThumb\"],\n leftEyeOutline: [\"leftEyeInside\", \"leftEyeOutside\"],\n rightLegUpper: [\"rightHip\", \"rightKnee\"],\n rightLegLower: [\"rightKnee\", \"rightAnkle\"],\n rightFoot: [\"rightAnkle\", \"rightHeel\", \"rightFoot\"],\n rightTorso: [\"rightShoulder\", \"rightHip\"],\n rightArmUpper: [\"rightShoulder\", \"rightElbow\"],\n rightArmLower: [\"rightElbow\", \"rightWrist\"],\n rightHand: [\"rightWrist\", \"rightPalm\"],\n rightHandPinky: [\"rightPalm\", \"rightPinky\"],\n rightHandIndex: [\"rightPalm\", \"rightIndex\"],\n rightHandThumb: [\"rightPalm\", \"rightThumb\"],\n rightEyeOutline: [\"rightEyeInside\", \"rightEyeOutside\"]\n};\n\n// src/body/blazeposedetector.ts\nvar model;\nvar inputSize = 224;\nvar anchorTensor;\nvar numLayers = 5;\nvar strides = [8, 16, 32, 32, 32];\nfunction createAnchors() {\n const anchors3 = [];\n let layerId = 0;\n while (layerId < numLayers) {\n let anchorCount = 0;\n let lastSameStrideLayer = layerId;\n while (lastSameStrideLayer < strides.length && strides[lastSameStrideLayer] === strides[layerId]) {\n anchorCount += 2;\n lastSameStrideLayer++;\n }\n const stride = strides[layerId];\n const featureMapHeight = Math.ceil(inputSize / stride);\n const featureMapWidth = Math.ceil(inputSize / stride);\n for (let y8 = 0; y8 < featureMapHeight; ++y8) {\n for (let x = 0; x < featureMapWidth; ++x) {\n for (let anchorId = 0; anchorId < anchorCount; ++anchorId) {\n anchors3.push({ x: (x + 0.5) / featureMapWidth, y: (y8 + 0.5) / featureMapHeight });\n }\n }\n }\n layerId = lastSameStrideLayer;\n }\n anchorTensor = { x: tr(anchors3.map((a) => a.x)), y: tr(anchors3.map((a) => a.y)) };\n}\nasync function loadDetector(config3) {\n if (env.initial)\n model = null;\n if (!model && config3.body[\"detector\"] && config3.body[\"detector\"].modelPath || \"\") {\n model = await loadModel(config3.body[\"detector\"].modelPath);\n const inputs = (model == null ? void 0 : model[\"executor\"]) ? Object.values(model.modelSignature[\"inputs\"]) : void 0;\n inputSize = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[1].size) : 0;\n } else if (config3.debug && model)\n log(\"cached model:\", model[\"modelUrl\"]);\n createAnchors();\n return model;\n}\nvar cropFactor = [5, 5];\nfunction decodeBoxes(boxesTensor, anchor) {\n return De(() => {\n const split = li(boxesTensor, 12, 1);\n let xCenter = gc(split[0]);\n let yCenter = gc(split[1]);\n let width = gc(split[2]);\n let height = gc(split[3]);\n xCenter = Ce(je(xCenter, inputSize), anchor.x);\n yCenter = Ce(je(yCenter, inputSize), anchor.y);\n width = se(je(width, inputSize), cropFactor[0]);\n height = se(je(height, inputSize), cropFactor[1]);\n const xMin = Te(xCenter, je(width, 2));\n const yMin = Te(yCenter, je(height, 2));\n const xMax = Ce(xMin, width);\n const yMax = Ce(yMin, height);\n const boxes = kr([xMin, yMin, xMax, yMax], 1);\n return boxes;\n });\n}\nasync function decodeResults(boxesTensor, logitsTensor, config3, outputSize2) {\n var _a, _b;\n const detectedBoxes = [];\n const t8 = {};\n t8.boxes = decodeBoxes(boxesTensor, anchorTensor);\n t8.scores = $a(logitsTensor);\n t8.nms = await Kj.nonMaxSuppressionAsync(t8.boxes, t8.scores, 1, ((_a = config3.body[\"detector\"]) == null ? void 0 : _a.minConfidence) || 0.1, ((_b = config3.body[\"detector\"]) == null ? void 0 : _b.iouThreshold) || 0.1);\n const nms = await t8.nms.data();\n const scores = await t8.scores.data();\n const boxes = await t8.boxes.array();\n for (const i of Array.from(nms)) {\n const score = scores[i];\n const boxRaw = boxes[i];\n const box = [Math.round(boxRaw[0] * outputSize2[0]), Math.round(boxRaw[1] * outputSize2[1]), Math.round(boxRaw[2] * outputSize2[0]), Math.round(boxRaw[3] * outputSize2[1])];\n const detectedBox = { score, boxRaw, box };\n detectedBoxes.push(detectedBox);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return detectedBoxes;\n}\nasync function detectBoxes(input, config3, outputSize2) {\n const t8 = {};\n t8.res = model == null ? void 0 : model.execute(input, [\"Identity\"]);\n t8.logitsRaw = Xe(t8.res, [0, 0, 0], [1, -1, 1]);\n t8.boxesRaw = Xe(t8.res, [0, 0, 1], [1, -1, -1]);\n t8.logits = gc(t8.logitsRaw);\n t8.boxes = gc(t8.boxesRaw);\n const boxes = await decodeResults(t8.boxes, t8.logits, config3, outputSize2);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return boxes;\n}\n\n// src/util/box.ts\nfunction calc(keypoints, outputSize2 = [1, 1]) {\n const coords = [keypoints.map((pt2) => pt2[0]), keypoints.map((pt2) => pt2[1])];\n const min = [Math.min(...coords[0]), Math.min(...coords[1])];\n const max = [Math.max(...coords[0]), Math.max(...coords[1])];\n const box = [min[0], min[1], max[0] - min[0], max[1] - min[1]];\n const boxRaw = [box[0] / outputSize2[0], box[1] / outputSize2[1], box[2] / outputSize2[0], box[3] / outputSize2[1]];\n return { box, boxRaw };\n}\nfunction square(keypoints, outputSize2 = [1, 1]) {\n const coords = [keypoints.map((pt2) => pt2[0]), keypoints.map((pt2) => pt2[1])];\n const min = [Math.min(...coords[0]), Math.min(...coords[1])];\n const max = [Math.max(...coords[0]), Math.max(...coords[1])];\n const center = [(min[0] + max[0]) / 2, (min[1] + max[1]) / 2];\n const dist = Math.max(center[0] - min[0], center[1] - min[1], -center[0] + max[0], -center[1] + max[1]);\n const box = [Math.trunc(center[0] - dist), Math.trunc(center[1] - dist), Math.trunc(2 * dist), Math.trunc(2 * dist)];\n const boxRaw = [box[0] / outputSize2[0], box[1] / outputSize2[1], box[2] / outputSize2[0], box[3] / outputSize2[1]];\n return { box, boxRaw };\n}\nfunction scale(box, scaleFact) {\n const dist = [box[2] * scaleFact, box[3] * scaleFact];\n const newBox = [\n box[0] - (dist[0] - box[2]) / 2,\n box[1] - (dist[1] - box[3]) / 2,\n dist[0],\n dist[1]\n ];\n return newBox;\n}\n\n// src/body/blazepose.ts\nvar model2;\nvar inputSize2 = 256;\nvar skipped = Number.MAX_SAFE_INTEGER;\nvar outputNodes = {\n landmarks: [\"ld_3d\", \"activation_segmentation\", \"activation_heatmap\", \"world_3d\", \"output_poseflag\"],\n detector: []\n};\nvar cache = [];\nvar padding = [[0, 0], [0, 0], [0, 0], [0, 0]];\nvar lastTime = 0;\nvar sigmoid = (x) => 1 - 1 / (1 + Math.exp(x));\nvar loadDetect = (config3) => loadDetector(config3);\nasync function loadPose(config3) {\n if (env.initial)\n model2 = null;\n if (!model2) {\n model2 = await loadModel(config3.body.modelPath);\n const inputs = (model2 == null ? void 0 : model2[\"executor\"]) ? Object.values(model2.modelSignature[\"inputs\"]) : void 0;\n inputSize2 = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[1].size) : 0;\n } else if (config3.debug)\n log(\"cached model:\", model2[\"modelUrl\"]);\n return model2;\n}\nfunction prepareImage(input, size2, cropBox) {\n var _a, _b;\n const t8 = {};\n if (!((_a = input == null ? void 0 : input.shape) == null ? void 0 : _a[1]) || !((_b = input == null ? void 0 : input.shape) == null ? void 0 : _b[2]))\n return input;\n let final;\n if (cropBox) {\n t8.cropped = Kj.cropAndResize(input, [cropBox], [0], [input.shape[1], input.shape[2]]);\n }\n if (input.shape[1] !== input.shape[2]) {\n const height = [\n input.shape[2] > input.shape[1] ? Math.trunc((input.shape[2] - input.shape[1]) / 2) : 0,\n input.shape[2] > input.shape[1] ? Math.trunc((input.shape[2] - input.shape[1]) / 2) : 0\n ];\n const width = [\n input.shape[1] > input.shape[2] ? Math.trunc((input.shape[1] - input.shape[2]) / 2) : 0,\n input.shape[1] > input.shape[2] ? Math.trunc((input.shape[1] - input.shape[2]) / 2) : 0\n ];\n padding = [\n [0, 0],\n // dont touch batch\n height,\n // height before&after\n width,\n // width before&after\n [0, 0]\n // dont touch rbg\n ];\n t8.pad = Aa(t8.cropped || input, padding);\n t8.resize = Kj.resizeBilinear(t8.pad, [size2, size2]);\n final = je(t8.resize, constants.tf255);\n } else if (input.shape[1] !== size2) {\n t8.resize = Kj.resizeBilinear(t8.cropped || input, [size2, size2]);\n final = je(t8.resize, constants.tf255);\n } else {\n final = je(t8.cropped || input, constants.tf255);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return final;\n}\nfunction rescaleKeypoints(keypoints, outputSize2, cropBox) {\n for (const kpt4 of keypoints) {\n kpt4.position = [\n Math.trunc(kpt4.position[0] * (outputSize2[0] + padding[2][0] + padding[2][1]) / outputSize2[0] - padding[2][0]),\n Math.trunc(kpt4.position[1] * (outputSize2[1] + padding[1][0] + padding[1][1]) / outputSize2[1] - padding[1][0]),\n kpt4.position[2]\n ];\n kpt4.positionRaw = [kpt4.position[0] / outputSize2[0], kpt4.position[1] / outputSize2[1], 2 * kpt4.position[2] / (outputSize2[0] + outputSize2[1])];\n }\n if (cropBox) {\n const width = cropBox[2] - cropBox[0];\n const height = cropBox[3] - cropBox[1];\n for (const kpt4 of keypoints) {\n kpt4.positionRaw = [\n kpt4.positionRaw[0] / height + cropBox[1],\n // correct offset due to crop\n kpt4.positionRaw[1] / width + cropBox[0],\n // correct offset due to crop\n kpt4.positionRaw[2]\n ];\n kpt4.position = [\n Math.trunc(kpt4.positionRaw[0] * outputSize2[0]),\n Math.trunc(kpt4.positionRaw[1] * outputSize2[1]),\n kpt4.positionRaw[2]\n ];\n }\n }\n return keypoints;\n}\nfunction fixKeypoints(keypoints) {\n const leftPalm = keypoints.find((k) => k.part === \"leftPalm\");\n const leftWrist = keypoints.find((k) => k.part === \"leftWrist\");\n const leftIndex = keypoints.find((k) => k.part === \"leftIndex\");\n leftPalm.position[2] = ((leftWrist.position[2] || 0) + (leftIndex.position[2] || 0)) / 2;\n const rightPalm = keypoints.find((k) => k.part === \"rightPalm\");\n const rightWrist = keypoints.find((k) => k.part === \"rightWrist\");\n const rightIndex = keypoints.find((k) => k.part === \"rightIndex\");\n rightPalm.position[2] = ((rightWrist.position[2] || 0) + (rightIndex.position[2] || 0)) / 2;\n}\nasync function detectLandmarks(input, config3, outputSize2) {\n if (!(model2 == null ? void 0 : model2[\"executor\"]))\n return null;\n const t8 = {};\n [\n t8.ld,\n t8.segmentation,\n t8.heatmap,\n t8.world,\n t8.poseflag\n /* 1,1 */\n ] = model2 == null ? void 0 : model2.execute(input, outputNodes.landmarks);\n const poseScore = (await t8.poseflag.data())[0];\n const points = await t8.ld.data();\n const distances = await t8.world.data();\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n const keypointsRelative = [];\n const depth = 5;\n for (let i = 0; i < points.length / depth; i++) {\n const score = sigmoid(points[depth * i + 3]);\n const presence = sigmoid(points[depth * i + 4]);\n const adjScore = Math.trunc(100 * score * presence * poseScore) / 100;\n const positionRaw = [points[depth * i + 0] / inputSize2, points[depth * i + 1] / inputSize2, points[depth * i + 2] + 0];\n const position = [Math.trunc(outputSize2[0] * positionRaw[0]), Math.trunc(outputSize2[1] * positionRaw[1]), positionRaw[2]];\n const distance2 = [distances[depth * i + 0], distances[depth * i + 1], distances[depth * i + 2] + 0];\n keypointsRelative.push({ part: kpt[i], positionRaw, position, distance: distance2, score: adjScore });\n }\n if (poseScore < (config3.body.minConfidence || 0))\n return null;\n fixKeypoints(keypointsRelative);\n const keypoints = rescaleKeypoints(keypointsRelative, outputSize2);\n const kpts = keypoints.map((k) => k.position);\n const boxes = calc(kpts, [outputSize2[0], outputSize2[1]]);\n const annotations2 = {};\n for (const [name, indexes] of Object.entries(connected)) {\n const pt2 = [];\n for (let i = 0; i < indexes.length - 1; i++) {\n const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);\n const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);\n if (pt0 && pt1)\n pt2.push([pt0.position, pt1.position]);\n }\n annotations2[name] = pt2;\n }\n const body4 = { id: 0, score: Math.trunc(100 * poseScore) / 100, box: boxes.box, boxRaw: boxes.boxRaw, keypoints, annotations: annotations2 };\n return body4;\n}\nasync function predict(input, config3) {\n var _a, _b, _c2;\n const outputSize2 = [input.shape[2] || 0, input.shape[1] || 0];\n const skipTime = (config3.body.skipTime || 0) > now() - lastTime;\n const skipFrame = skipped < (config3.body.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame && cache !== null) {\n skipped++;\n } else {\n let boxes = [];\n if ((_b = (_a = config3.body) == null ? void 0 : _a[\"detector\"]) == null ? void 0 : _b[\"enabled\"]) {\n const preparedImage = prepareImage(input, 224);\n boxes = await detectBoxes(preparedImage, config3, outputSize2);\n Mt(preparedImage);\n } else {\n boxes = [{ box: [0, 0, 0, 0], boxRaw: [0, 0, 1, 1], score: 0 }];\n }\n for (let i = 0; i < boxes.length; i++) {\n const preparedBox = prepareImage(input, 256, (_c2 = boxes[i]) == null ? void 0 : _c2.boxRaw);\n cache.length = 0;\n const bodyResult = await detectLandmarks(preparedBox, config3, outputSize2);\n Mt(preparedBox);\n if (!bodyResult)\n continue;\n bodyResult.id = i;\n cache.push(bodyResult);\n }\n lastTime = now();\n skipped = 0;\n }\n return cache;\n}\n\n// src/object/labels.ts\nvar labels2 = [\n { class: 1, label: \"person\" },\n { class: 2, label: \"bicycle\" },\n { class: 3, label: \"car\" },\n { class: 4, label: \"motorcycle\" },\n { class: 5, label: \"airplane\" },\n { class: 6, label: \"bus\" },\n { class: 7, label: \"train\" },\n { class: 8, label: \"truck\" },\n { class: 9, label: \"boat\" },\n { class: 10, label: \"traffic light\" },\n { class: 11, label: \"fire hydrant\" },\n { class: 12, label: \"stop sign\" },\n { class: 13, label: \"parking meter\" },\n { class: 14, label: \"bench\" },\n { class: 15, label: \"bird\" },\n { class: 16, label: \"cat\" },\n { class: 17, label: \"dog\" },\n { class: 18, label: \"horse\" },\n { class: 19, label: \"sheep\" },\n { class: 20, label: \"cow\" },\n { class: 21, label: \"elephant\" },\n { class: 22, label: \"bear\" },\n { class: 23, label: \"zebra\" },\n { class: 24, label: \"giraffe\" },\n { class: 25, label: \"backpack\" },\n { class: 26, label: \"umbrella\" },\n { class: 27, label: \"handbag\" },\n { class: 28, label: \"tie\" },\n { class: 29, label: \"suitcase\" },\n { class: 30, label: \"frisbee\" },\n { class: 31, label: \"skis\" },\n { class: 32, label: \"snowboard\" },\n { class: 33, label: \"sports ball\" },\n { class: 34, label: \"kite\" },\n { class: 35, label: \"baseball bat\" },\n { class: 36, label: \"baseball glove\" },\n { class: 37, label: \"skateboard\" },\n { class: 38, label: \"surfboard\" },\n { class: 39, label: \"tennis racket\" },\n { class: 40, label: \"bottle\" },\n { class: 41, label: \"wine glass\" },\n { class: 42, label: \"cup\" },\n { class: 43, label: \"fork\" },\n { class: 44, label: \"knife\" },\n { class: 45, label: \"spoon\" },\n { class: 46, label: \"bowl\" },\n { class: 47, label: \"banana\" },\n { class: 48, label: \"apple\" },\n { class: 49, label: \"sandwich\" },\n { class: 50, label: \"orange\" },\n { class: 51, label: \"broccoli\" },\n { class: 52, label: \"carrot\" },\n { class: 53, label: \"hot dog\" },\n { class: 54, label: \"pizza\" },\n { class: 55, label: \"donut\" },\n { class: 56, label: \"cake\" },\n { class: 57, label: \"chair\" },\n { class: 58, label: \"couch\" },\n { class: 59, label: \"potted plant\" },\n { class: 60, label: \"bed\" },\n { class: 61, label: \"dining table\" },\n { class: 62, label: \"toilet\" },\n { class: 63, label: \"tv\" },\n { class: 64, label: \"laptop\" },\n { class: 65, label: \"mouse\" },\n { class: 66, label: \"remote\" },\n { class: 67, label: \"keyboard\" },\n { class: 68, label: \"cell phone\" },\n { class: 69, label: \"microwave\" },\n { class: 70, label: \"oven\" },\n { class: 71, label: \"toaster\" },\n { class: 72, label: \"sink\" },\n { class: 73, label: \"refrigerator\" },\n { class: 74, label: \"book\" },\n { class: 75, label: \"clock\" },\n { class: 76, label: \"vase\" },\n { class: 77, label: \"scissors\" },\n { class: 78, label: \"teddy bear\" },\n { class: 79, label: \"hair drier\" },\n { class: 80, label: \"toothbrush\" }\n];\n\n// src/object/centernet.ts\nvar model3;\nvar inputSize3 = 0;\nvar last2 = [];\nvar lastTime2 = 0;\nvar skipped2 = Number.MAX_SAFE_INTEGER;\nasync function load(config3) {\n if (env.initial)\n model3 = null;\n if (!model3) {\n model3 = await loadModel(config3.object.modelPath);\n const inputs = (model3 == null ? void 0 : model3[\"executor\"]) ? Object.values(model3.modelSignature[\"inputs\"]) : void 0;\n inputSize3 = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[2].size) : 0;\n } else if (config3.debug)\n log(\"cached model:\", model3[\"modelUrl\"]);\n return model3;\n}\nasync function process3(res, outputShape, config3) {\n if (!res)\n return [];\n const t8 = {};\n const results = [];\n const detections = await res.array();\n t8.squeeze = gc(res);\n const arr = li(t8.squeeze, 6, 1);\n t8.stack = kr([arr[1], arr[0], arr[3], arr[2]], 1);\n t8.boxes = gc(t8.stack);\n t8.scores = gc(arr[4]);\n t8.classes = gc(arr[5]);\n Mt([res, ...arr]);\n t8.nms = await Kj.nonMaxSuppressionAsync(t8.boxes, t8.scores, config3.object.maxDetected || 0, config3.object.iouThreshold, config3.object.minConfidence || 0);\n const nms = await t8.nms.data();\n let i = 0;\n for (const id2 of Array.from(nms)) {\n const score = Math.trunc(100 * detections[0][id2][4]) / 100;\n const classVal = detections[0][id2][5];\n if (Number.isNaN(classVal))\n continue;\n const label = labels2[classVal].label;\n const [x, y8] = [\n detections[0][id2][0] / inputSize3,\n detections[0][id2][1] / inputSize3\n ];\n const boxRaw = [\n x,\n y8,\n detections[0][id2][2] / inputSize3 - x,\n detections[0][id2][3] / inputSize3 - y8\n ];\n const box = [\n Math.trunc(boxRaw[0] * outputShape[0]),\n Math.trunc(boxRaw[1] * outputShape[1]),\n Math.trunc(boxRaw[2] * outputShape[0]),\n Math.trunc(boxRaw[3] * outputShape[1])\n ];\n results.push({ id: i++, score, class: classVal, label, box, boxRaw });\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return results;\n}\nasync function predict2(input, config3) {\n if (!(model3 == null ? void 0 : model3[\"executor\"]))\n return [];\n const skipTime = (config3.object.skipTime || 0) > now() - lastTime2;\n const skipFrame = skipped2 < (config3.object.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame && last2.length > 0) {\n skipped2++;\n return last2;\n }\n skipped2 = 0;\n return new Promise(async (resolve) => {\n const outputSize2 = [input.shape[2] || 0, input.shape[1] || 0];\n const resize = Kj.resizeBilinear(input, [inputSize3, inputSize3]);\n const objectT = config3.object.enabled ? model3 == null ? void 0 : model3.execute(resize, [\"tower_0/detections\"]) : null;\n lastTime2 = now();\n Mt(resize);\n const obj = await process3(objectT, outputSize2, config3);\n last2 = obj;\n resolve(obj);\n });\n}\n\n// src/body/efficientposecoords.ts\nvar efficientposecoords_exports = {};\n__export(efficientposecoords_exports, {\n connected: () => connected2,\n kpt: () => kpt2\n});\nvar kpt2 = [\n \"head\",\n \"neck\",\n \"rightShoulder\",\n \"rightElbow\",\n \"rightWrist\",\n \"chest\",\n \"leftShoulder\",\n \"leftElbow\",\n \"leftWrist\",\n \"bodyCenter\",\n \"rightHip\",\n \"rightKnee\",\n \"rightAnkle\",\n \"leftHip\",\n \"leftKnee\",\n \"leftAnkle\"\n];\nvar connected2 = {\n leftLeg: [\"leftHip\", \"leftKnee\", \"leftAnkle\"],\n rightLeg: [\"rightHip\", \"rightKnee\", \"rightAnkle\"],\n torso: [\"leftShoulder\", \"rightShoulder\", \"rightHip\", \"leftHip\", \"leftShoulder\"],\n leftArm: [\"leftShoulder\", \"leftElbow\", \"leftWrist\"],\n rightArm: [\"rightShoulder\", \"rightElbow\", \"rightWrist\"],\n head: []\n};\n\n// src/body/efficientpose.ts\nvar model4;\nvar lastTime3 = 0;\nvar cache2 = { id: 0, keypoints: [], box: [0, 0, 0, 0], boxRaw: [0, 0, 0, 0], score: 0, annotations: {} };\nvar skipped3 = Number.MAX_SAFE_INTEGER;\nasync function load2(config3) {\n if (env.initial)\n model4 = null;\n if (!model4)\n model4 = await loadModel(config3.body.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model4[\"modelUrl\"]);\n return model4;\n}\nasync function max2d(inputs, minScore) {\n const [width, height] = inputs.shape;\n const reshaped = W(inputs, [height * width]);\n const max = Ra(reshaped, 0);\n const newScore = (await max.data())[0];\n if (newScore > minScore) {\n const coordinates = Ek(reshaped, 0);\n const mod = F2(coordinates, width);\n const x = (await mod.data())[0];\n const div = je(coordinates, width);\n const y8 = (await div.data())[0];\n Mt([reshaped, max, coordinates, mod, div]);\n return [x, y8, newScore];\n }\n Mt([reshaped, max]);\n return [0, 0, newScore];\n}\nasync function predict3(image, config3) {\n if (!(model4 == null ? void 0 : model4[\"executor\"]) || !(model4 == null ? void 0 : model4.inputs[0].shape))\n return [];\n const skipTime = (config3.body.skipTime || 0) > now() - lastTime3;\n const skipFrame = skipped3 < (config3.body.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame && Object.keys(cache2.keypoints).length > 0) {\n skipped3++;\n return [cache2];\n }\n skipped3 = 0;\n return new Promise(async (resolve) => {\n const tensor = De(() => {\n var _a, _b;\n const resize = Kj.resizeBilinear(image, [((_a = model4 == null ? void 0 : model4.inputs[0].shape) == null ? void 0 : _a[2]) || 0, ((_b = model4 == null ? void 0 : model4.inputs[0].shape) == null ? void 0 : _b[1]) || 0], false);\n const enhance2 = se(resize, constants.tf2);\n const norm = Te(enhance2, constants.tf1);\n return norm;\n });\n let resT;\n if (config3.body.enabled)\n resT = model4 == null ? void 0 : model4.execute(tensor);\n lastTime3 = now();\n Mt(tensor);\n if (resT) {\n cache2.keypoints.length = 0;\n const squeeze = gc(resT);\n Mt(resT);\n const stack = fo(squeeze, 2);\n Mt(squeeze);\n for (let id2 = 0; id2 < stack.length; id2++) {\n const [x8, y10, partScore] = await max2d(stack[id2], config3.body.minConfidence);\n if (partScore > (config3.body.minConfidence || 0)) {\n cache2.keypoints.push({\n score: Math.round(100 * partScore) / 100,\n part: kpt2[id2],\n positionRaw: [\n // normalized to 0..1\n // @ts-ignore model is not undefined here\n x8 / model4.inputs[0].shape[2],\n y10 / model4.inputs[0].shape[1]\n ],\n position: [\n // normalized to input image size\n // @ts-ignore model is not undefined here\n Math.round(image.shape[2] * x8 / model4.inputs[0].shape[2]),\n Math.round(image.shape[1] * y10 / model4.inputs[0].shape[1])\n ]\n });\n }\n }\n stack.forEach((s) => Mt(s));\n }\n cache2.score = cache2.keypoints.reduce((prev, curr) => curr.score > prev ? curr.score : prev, 0);\n const x = cache2.keypoints.map((a) => a.position[0]);\n const y8 = cache2.keypoints.map((a) => a.position[1]);\n cache2.box = [\n Math.min(...x),\n Math.min(...y8),\n Math.max(...x) - Math.min(...x),\n Math.max(...y8) - Math.min(...y8)\n ];\n const xRaw = cache2.keypoints.map((a) => a.positionRaw[0]);\n const yRaw = cache2.keypoints.map((a) => a.positionRaw[1]);\n cache2.boxRaw = [\n Math.min(...xRaw),\n Math.min(...yRaw),\n Math.max(...xRaw) - Math.min(...xRaw),\n Math.max(...yRaw) - Math.min(...yRaw)\n ];\n for (const [name, indexes] of Object.entries(connected2)) {\n const pt2 = [];\n for (let i = 0; i < indexes.length - 1; i++) {\n const pt0 = cache2.keypoints.find((kpt4) => kpt4.part === indexes[i]);\n const pt1 = cache2.keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);\n if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0))\n pt2.push([pt0.position, pt1.position]);\n }\n cache2.annotations[name] = pt2;\n }\n resolve([cache2]);\n });\n}\n\n// src/face/facemeshutil.ts\nvar getBoxSize = (box) => [Math.abs(box.endPoint[0] - box.startPoint[0]), Math.abs(box.endPoint[1] - box.startPoint[1])];\nvar getBoxCenter = (box) => [box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2, box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2, 1];\nvar clampBox = (box, input) => box ? [\n Math.trunc(Math.max(0, box.startPoint[0])),\n Math.trunc(Math.max(0, box.startPoint[1])),\n Math.trunc(Math.min(input.shape[2] || 0, box.endPoint[0]) - Math.max(0, box.startPoint[0])),\n Math.trunc(Math.min(input.shape[1] || 0, box.endPoint[1]) - Math.max(0, box.startPoint[1]))\n] : [0, 0, 0, 0];\nvar getRawBox = (box, input) => box ? [\n box.startPoint[0] / (input.shape[2] || 0),\n box.startPoint[1] / (input.shape[1] || 0),\n (box.endPoint[0] - box.startPoint[0]) / (input.shape[2] || 0),\n (box.endPoint[1] - box.startPoint[1]) / (input.shape[1] || 0)\n] : [0, 0, 0, 0];\nvar scaleBoxCoordinates = (box, factor, anchor) => {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const landmarks = box.landmarks.map((pt2) => [(pt2[0] + anchor[0]) * factor[0], (pt2[1] + anchor[1]) * factor[1]]);\n return { startPoint, endPoint, landmarks, confidence: box.confidence };\n};\nvar cutAndResize = (box, image, cropSize) => {\n const h = image.shape[1];\n const w10 = image.shape[2];\n const cutBox = [box.startPoint[1] / h, box.startPoint[0] / w10, box.endPoint[1] / h, box.endPoint[0] / w10];\n const crop = Kj.cropAndResize(image, [cutBox], [0], cropSize);\n const norm = je(crop, constants.tf255);\n Mt(crop);\n return norm;\n};\nvar enlargeBox = (box, factor) => {\n const center = getBoxCenter(box);\n const size2 = getBoxSize(box);\n const halfSize = [factor * size2[0] / 2, factor * size2[1] / 2];\n return {\n startPoint: [center[0] - halfSize[0], center[1] - halfSize[1]],\n endPoint: [center[0] + halfSize[0], center[1] + halfSize[1]],\n landmarks: box.landmarks,\n confidence: box.confidence,\n size: size2\n };\n};\nvar squarifyBox = (box) => {\n const centers = getBoxCenter(box);\n const size2 = getBoxSize(box);\n const halfSize = Math.max(...size2) / 2;\n return {\n startPoint: [Math.round(centers[0] - halfSize), Math.round(centers[1] - halfSize)],\n endPoint: [Math.round(centers[0] + halfSize), Math.round(centers[1] + halfSize)],\n landmarks: box.landmarks,\n confidence: box.confidence,\n size: [Math.round(size2[0]), Math.round(size2[1])]\n };\n};\nvar calculateLandmarksBoundingBox = (landmarks) => {\n const x = landmarks.map((d) => d[0]);\n const y8 = landmarks.map((d) => d[1]);\n return {\n startPoint: [Math.min(...x), Math.min(...y8)],\n endPoint: [Math.max(...x), Math.max(...y8)],\n landmarks\n };\n};\nvar fixedRotationMatrix = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\nvar normalizeRadians = (angle) => angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\nvar computeRotation = (point1, point2) => normalizeRadians(Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]));\nvar buildTranslationMatrix = (x, y8) => [[1, 0, x], [0, 1, y8], [0, 0, 1]];\nvar dot = (v12, v22) => {\n let product = 0;\n for (let i = 0; i < v12.length; i++)\n product += v12[i] * v22[i];\n return product;\n};\nvar getColumnFrom2DArr = (arr, columnIndex) => {\n const column = [];\n for (let i = 0; i < arr.length; i++)\n column.push(arr[i][columnIndex]);\n return column;\n};\nvar multiplyTransformMatrices = (mat1, mat2) => {\n const product = [];\n const size2 = mat1.length;\n for (let row = 0; row < size2; row++) {\n product.push([]);\n for (let col = 0; col < size2; col++)\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n return product;\n};\nvar buildRotationMatrix = (rotation, center) => {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n};\nvar invertTransformMatrix = (matrix) => {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [-dot(rotationComponent[0], translationComponent), -dot(rotationComponent[1], translationComponent)];\n return [rotationComponent[0].concat(invertedTranslation[0]), rotationComponent[1].concat(invertedTranslation[1]), [0, 0, 1]];\n};\nvar rotatePoint = (homogeneousCoordinate, rotationMatrix) => [dot(homogeneousCoordinate, rotationMatrix[0]), dot(homogeneousCoordinate, rotationMatrix[1])];\nfunction generateAnchors(inputSize10) {\n const spec = inputSize10 === 192 ? { strides: [4], anchors: [1] } : { strides: [inputSize10 / 16, inputSize10 / 8], anchors: [2, 6] };\n const anchors3 = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize10 + stride - 1) / stride);\n const gridCols = Math.floor((inputSize10 + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++)\n anchors3.push([anchorX, anchorY]);\n }\n }\n }\n return anchors3;\n}\nfunction transformRawCoords(coordsRaw, box, angle, rotationMatrix, inputSize10) {\n const boxSize = getBoxSize(box);\n const coordsScaled = coordsRaw.map((coord) => [\n // scaled around zero-point\n boxSize[0] / inputSize10 * (coord[0] - inputSize10 / 2),\n boxSize[1] / inputSize10 * (coord[1] - inputSize10 / 2),\n coord[2] || 0\n ]);\n const largeAngle = angle && angle !== 0 && Math.abs(angle) > 0.2;\n const coordsRotationMatrix = largeAngle ? buildRotationMatrix(angle, [0, 0]) : fixedRotationMatrix;\n const coordsRotated = largeAngle ? coordsScaled.map((coord) => [...rotatePoint(coord, coordsRotationMatrix), coord[2]]) : coordsScaled;\n const inverseRotationMatrix = largeAngle ? invertTransformMatrix(rotationMatrix) : fixedRotationMatrix;\n const boxCenter = getBoxCenter(box);\n const offsets = [dot(boxCenter, inverseRotationMatrix[0]), dot(boxCenter, inverseRotationMatrix[1])];\n return coordsRotated.map((coord) => [\n Math.trunc(coord[0] + offsets[0]),\n Math.trunc(coord[1] + offsets[1]),\n Math.trunc(coord[2] || 0)\n ]);\n}\nfunction correctFaceRotation(rotate, box, input, inputSize10) {\n const symmetryLine = box.landmarks.length >= meshLandmarks.count ? meshLandmarks.symmetryLine : blazeFaceLandmarks.symmetryLine;\n let angle = 0;\n let rotationMatrix = fixedRotationMatrix;\n let face4;\n if (rotate && env.kernels.includes(\"rotatewithoffset\")) {\n angle = computeRotation(box.landmarks[symmetryLine[0]], box.landmarks[symmetryLine[1]]);\n const largeAngle = angle && angle !== 0 && Math.abs(angle) > 0.2;\n if (largeAngle) {\n const center = getBoxCenter(box);\n const centerRaw = [center[0] / input.shape[2], center[1] / input.shape[1]];\n const rotated = Kj.rotateWithOffset(input, angle, 0, [centerRaw[0], centerRaw[1]]);\n rotationMatrix = buildRotationMatrix(-angle, center);\n face4 = cutAndResize(box, rotated, [inputSize10, inputSize10]);\n Mt(rotated);\n } else {\n face4 = cutAndResize(box, input, [inputSize10, inputSize10]);\n }\n } else {\n face4 = cutAndResize(box, input, [inputSize10, inputSize10]);\n }\n return [angle, rotationMatrix, face4];\n}\nvar findFaceCenter = (mesh) => {\n const x = mesh.map((m) => m[0]);\n const y8 = mesh.map((m) => m[1]);\n return [Math.min(...x) + (Math.max(...x) - Math.min(...x)) / 2, Math.min(...y8) + (Math.max(...y8) - Math.min(...y8)) / 2];\n};\nvar calculateFaceBox = (mesh, previousBox) => {\n const center = findFaceCenter(mesh);\n const boxSize = getBoxSize(previousBox);\n const calculatedBox = {\n startPoint: [center[0] - boxSize[0] / 2, center[1] - boxSize[1] / 2],\n endPoint: [center[0] + boxSize[0] / 2, center[1] + boxSize[1] / 2]\n };\n return calculatedBox;\n};\n\n// src/face/blazeface.ts\nvar keypointsCount = 6;\nvar faceBoxScaleFactor = 1.4;\nvar model5;\nvar anchors = null;\nvar inputSize4 = 0;\nvar inputSizeT = null;\nvar size = () => inputSize4;\nasync function load3(config3) {\n var _a;\n if (env.initial)\n model5 = null;\n if (!model5)\n model5 = await loadModel((_a = config3.face.detector) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model5[\"modelUrl\"]);\n inputSize4 = model5[\"executor\"] && model5.inputs[0].shape ? model5.inputs[0].shape[2] : 256;\n inputSizeT = ke(inputSize4, \"int32\");\n anchors = fu(generateAnchors(inputSize4));\n return model5;\n}\nfunction decodeBoxes2(boxOutputs) {\n if (!anchors || !inputSizeT)\n return Gr([0, 0]);\n const t8 = {};\n t8.boxStarts = Xe(boxOutputs, [0, 1], [-1, 2]);\n t8.centers = Ce(t8.boxStarts, anchors);\n t8.boxSizes = Xe(boxOutputs, [0, 3], [-1, 2]);\n t8.boxSizesNormalized = je(t8.boxSizes, inputSizeT);\n t8.centersNormalized = je(t8.centers, inputSizeT);\n t8.halfBoxSize = je(t8.boxSizesNormalized, constants.tf2);\n t8.starts = Te(t8.centersNormalized, t8.halfBoxSize);\n t8.ends = Ce(t8.centersNormalized, t8.halfBoxSize);\n t8.startNormalized = se(t8.starts, inputSizeT);\n t8.endNormalized = se(t8.ends, inputSizeT);\n const boxes = Yk([t8.startNormalized, t8.endNormalized], 1);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return boxes;\n}\nasync function getBoxes(inputImage, config3) {\n var _a, _b, _c2, _d2, _e, _f2;\n if (!inputImage || inputImage[\"isDisposedInternal\"] || inputImage.shape.length !== 4 || inputImage.shape[1] < 1 || inputImage.shape[2] < 1)\n return [];\n const t8 = {};\n t8.resized = Kj.resizeBilinear(inputImage, [inputSize4, inputSize4]);\n t8.div = je(t8.resized, constants.tf127);\n t8.normalized = Te(t8.div, constants.tf05);\n const res = model5 == null ? void 0 : model5.execute(t8.normalized);\n if (Array.isArray(res) && res.length > 2) {\n const sorted = res.sort((a, b) => a.size - b.size);\n t8.concat384 = bt([sorted[0], sorted[2]], 2);\n t8.concat512 = bt([sorted[1], sorted[3]], 2);\n t8.concat = bt([t8.concat512, t8.concat384], 1);\n t8.batch = gc(t8.concat, [0]);\n } else if (Array.isArray(res)) {\n t8.batch = gc(res[0]);\n } else {\n t8.batch = gc(res);\n }\n Mt(res);\n t8.boxes = decodeBoxes2(t8.batch);\n t8.logits = Xe(t8.batch, [0, 0], [-1, 1]);\n t8.sigmoid = $a(t8.logits);\n t8.scores = gc(t8.sigmoid);\n t8.nms = await Kj.nonMaxSuppressionAsync(t8.boxes, t8.scores, ((_a = config3.face.detector) == null ? void 0 : _a.maxDetected) || 0, ((_b = config3.face.detector) == null ? void 0 : _b.iouThreshold) || 0, ((_c2 = config3.face.detector) == null ? void 0 : _c2.minConfidence) || 0);\n const nms = await t8.nms.array();\n const boxes = [];\n const scores = await t8.scores.data();\n for (let i = 0; i < nms.length; i++) {\n const confidence = scores[nms[i]];\n if (confidence > (((_d2 = config3.face.detector) == null ? void 0 : _d2.minConfidence) || 0)) {\n const b = {};\n b.bbox = Xe(t8.boxes, [nms[i], 0], [1, -1]);\n b.slice = Xe(t8.batch, [nms[i], keypointsCount - 1], [1, -1]);\n b.squeeze = gc(b.slice);\n b.landmarks = W(b.squeeze, [keypointsCount, -1]);\n const points = await b.bbox.data();\n const rawBox = {\n startPoint: [points[0], points[1]],\n endPoint: [points[2], points[3]],\n landmarks: await b.landmarks.array(),\n confidence\n };\n b.anchor = Xe(anchors, [nms[i], 0], [1, 2]);\n const anchor = await b.anchor.data();\n const scaledBox = scaleBoxCoordinates(rawBox, [(inputImage.shape[2] || 0) / inputSize4, (inputImage.shape[1] || 0) / inputSize4], anchor);\n const enlargedBox = enlargeBox(scaledBox, config3.face[\"scale\"] || faceBoxScaleFactor);\n const squaredBox = squarifyBox(enlargedBox);\n if (squaredBox.size[0] > (((_e = config3.face.detector) == null ? void 0 : _e[\"minSize\"]) || 0) && squaredBox.size[1] > (((_f2 = config3.face.detector) == null ? void 0 : _f2[\"minSize\"]) || 0))\n boxes.push(squaredBox);\n Object.keys(b).forEach((tensor) => Mt(b[tensor]));\n }\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return boxes;\n}\n\n// src/face/iris.ts\nvar model6;\nvar inputSize5 = 0;\nvar irisEnlarge = 2.3;\nvar leftOutline = meshAnnotations.leftEyeLower0;\nvar rightOutline = meshAnnotations.rightEyeLower0;\nvar eyeLandmarks = {\n leftBounds: [leftOutline[0], leftOutline[leftOutline.length - 1]],\n rightBounds: [rightOutline[0], rightOutline[rightOutline.length - 1]]\n};\nvar irisLandmarks = {\n upperCenter: 3,\n lowerCenter: 4,\n index: 71,\n numCoordinates: 76\n};\nasync function load4(config3) {\n var _a, _b;\n if (env.initial)\n model6 = null;\n if (!model6)\n model6 = await loadModel((_a = config3.face.iris) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model6[\"modelUrl\"]);\n inputSize5 = (model6 == null ? void 0 : model6[\"executor\"]) && ((_b = model6.inputs) == null ? void 0 : _b[0].shape) ? model6.inputs[0].shape[2] : 0;\n if (inputSize5 === -1)\n inputSize5 = 64;\n return model6;\n}\nfunction replaceIrisCoords(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < irisIndices.length; i++) {\n const { key, indices } = irisIndices[i];\n const originalIndices = meshAnnotations[`${prefix}${key}`];\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index2 = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index2][0],\n newCoords[index2][1],\n (newCoords[index2][2] + rawCoords[originalIndices[j]][2]) / 2\n ];\n }\n }\n }\n}\nvar getLeftToRightEyeDepthDifference = (rawCoords) => {\n const leftEyeZ = rawCoords[eyeLandmarks.leftBounds[0]][2];\n const rightEyeZ = rawCoords[eyeLandmarks.rightBounds[0]][2];\n return leftEyeZ - rightEyeZ;\n};\nvar getEyeBox = (rawCoords, face4, eyeInnerCornerIndex, eyeOuterCornerIndex, meshSize, flip = false) => {\n const box = squarifyBox(enlargeBox(calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), irisEnlarge));\n const boxSize = getBoxSize(box);\n let crop = Kj.cropAndResize(face4, [[\n box.startPoint[1] / meshSize,\n box.startPoint[0] / meshSize,\n box.endPoint[1] / meshSize,\n box.endPoint[0] / meshSize\n ]], [0], [inputSize5, inputSize5]);\n if (flip && env.kernels.includes(\"flipleftright\")) {\n const flipped = Kj.flipLeftRight(crop);\n Mt(crop);\n crop = flipped;\n }\n return { box, boxSize, crop };\n};\nvar getEyeCoords = (eyeData, eyeBox, eyeBoxSize, flip = false) => {\n const eyeRawCoords = [];\n for (let i = 0; i < irisLandmarks.numCoordinates; i++) {\n const x = eyeData[i * 3];\n const y8 = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? 1 - x / inputSize5 : x / inputSize5) * eyeBoxSize[0] + eyeBox.startPoint[0],\n y8 / inputSize5 * eyeBoxSize[1] + eyeBox.startPoint[1],\n z\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(irisLandmarks.index) };\n};\nvar getAdjustedIrisCoords = (rawCoords, irisCoords, direction) => {\n const upperCenterZ = rawCoords[meshAnnotations[`${direction}EyeUpper0`][irisLandmarks.upperCenter]][2];\n const lowerCenterZ = rawCoords[meshAnnotations[`${direction}EyeLower0`][irisLandmarks.lowerCenter]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n};\nasync function augmentIris(rawCoords, face4, meshSize) {\n if (!(model6 == null ? void 0 : model6[\"executor\"]))\n return rawCoords;\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = getEyeBox(rawCoords, face4, eyeLandmarks.leftBounds[0], eyeLandmarks.leftBounds[1], meshSize, true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = getEyeBox(rawCoords, face4, eyeLandmarks.rightBounds[0], eyeLandmarks.rightBounds[1], meshSize, true);\n const combined = bt([leftEyeCrop, rightEyeCrop]);\n Mt(leftEyeCrop);\n Mt(rightEyeCrop);\n const eyePredictions = model6.execute(combined);\n Mt(combined);\n const eyePredictionsData = await eyePredictions.data();\n Mt(eyePredictions);\n const leftEyeData = eyePredictionsData.slice(0, irisLandmarks.numCoordinates * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(irisLandmarks.numCoordinates * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize, false);\n const leftToRightEyeDepthDifference = getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) {\n replaceIrisCoords(rawCoords, leftEyeRawCoords, \"left\", null);\n replaceIrisCoords(rawCoords, rightEyeRawCoords, \"right\", null);\n } else if (leftToRightEyeDepthDifference < 1) {\n replaceIrisCoords(rawCoords, leftEyeRawCoords, \"left\", [\"EyeUpper0\", \"EyeLower0\"]);\n } else {\n replaceIrisCoords(rawCoords, rightEyeRawCoords, \"right\", [\"EyeUpper0\", \"EyeLower0\"]);\n }\n const adjustedLeftIrisCoords = getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, \"left\");\n const adjustedRightIrisCoords = getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, \"right\");\n const newCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n return newCoords;\n}\n\n// src/face/attention.ts\nasync function augment(rawCoords, results) {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2;\n const t8 = {\n // all attention models produce 2d results so it needs to be later augmented with correct z-coords\n // mesh: results[0], // already have it in rawCoords // output_mesh_identity\n // flag: results[1], // already processed in parent // conv_faceflag\n lips: await ((_b = (_a = results.filter((r) => r.size === 160)) == null ? void 0 : _a[0]) == null ? void 0 : _b.data()),\n // 80 x 2d = 160 // output_lips\n irisL: await ((_d2 = (_c2 = results.filter((r) => r.size === 10)) == null ? void 0 : _c2[0]) == null ? void 0 : _d2.data()),\n // 5 x 2d = 10 // output_right_iris\n eyeL: await ((_f2 = (_e = results.filter((r) => r.size === 142)) == null ? void 0 : _e[0]) == null ? void 0 : _f2.data()),\n // 71 x 2d = 142 // output_right_eye\n irisR: await ((_h2 = (_g2 = results.filter((r) => r.size === 10)) == null ? void 0 : _g2[1]) == null ? void 0 : _h2.data()),\n // 5 x 2d = 10 // output_left_iris\n eyeR: await ((_j2 = (_i = results.filter((r) => r.size === 142)) == null ? void 0 : _i[1]) == null ? void 0 : _j2.data())\n // 71 x 2d = 142// output_left_eye\n };\n for (const val of Object.values(t8)) {\n if (!val)\n return rawCoords;\n }\n const irisLDepth = LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG.reduce((prev, curr) => prev += rawCoords[curr][2], 0) / LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG.length;\n for (let i = 0; i < t8.irisL.length / 2; i++)\n rawCoords.push([t8.irisL[2 * i + 0], t8.irisL[2 * i + 1], irisLDepth]);\n const irisRDepth = LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG.reduce((prev, curr) => prev += rawCoords[curr][2], 0) / LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG.length;\n for (let i = 0; i < t8.irisR.length / 2; i++)\n rawCoords.push([t8.irisR[2 * i + 0], t8.irisR[2 * i + 1], irisRDepth]);\n for (let i = 0; i < t8.eyeL.length / 2; i++)\n rawCoords[LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG[i]] = [t8.eyeL[2 * i + 0], t8.eyeL[2 * i + 1], rawCoords[LANDMARKS_REFINEMENT_LEFT_EYE_CONFIG[i]][2]];\n for (let i = 0; i < t8.eyeR.length / 2; i++)\n rawCoords[LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG[i]] = [t8.eyeR[2 * i + 0], t8.eyeR[2 * i + 1], rawCoords[LANDMARKS_REFINEMENT_RIGHT_EYE_CONFIG[i]][2]];\n for (let i = 0; i < t8.lips.length / 2; i++)\n rawCoords[LANDMARKS_REFINEMENT_LIPS_CONFIG[i]] = [t8.lips[2 * i + 0], t8.lips[2 * i + 1], rawCoords[LANDMARKS_REFINEMENT_LIPS_CONFIG[i]][2]];\n return rawCoords;\n}\n\n// src/face/facemesh.ts\nvar cache3 = {\n boxes: [],\n skipped: Number.MAX_SAFE_INTEGER,\n timestamp: 0\n};\nvar model7 = null;\nvar inputSize6 = 0;\nasync function predict4(input, config3) {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2;\n const skipTime = (((_a = config3.face.detector) == null ? void 0 : _a.skipTime) || 0) > now() - cache3.timestamp;\n const skipFrame = cache3.skipped < (((_b = config3.face.detector) == null ? void 0 : _b.skipFrames) || 0);\n if (!config3.skipAllowed || !skipTime || !skipFrame || cache3.boxes.length === 0) {\n cache3.boxes = await getBoxes(input, config3);\n cache3.timestamp = now();\n cache3.skipped = 0;\n } else {\n cache3.skipped++;\n }\n const faces = [];\n const newCache = [];\n let id2 = 0;\n const size2 = inputSize6;\n for (let i = 0; i < cache3.boxes.length; i++) {\n const box = cache3.boxes[i];\n let angle = 0;\n let rotationMatrix;\n const face4 = {\n // init face result\n id: id2++,\n mesh: [],\n meshRaw: [],\n box: [0, 0, 0, 0],\n boxRaw: [0, 0, 0, 0],\n score: 0,\n boxScore: 0,\n faceScore: 0,\n size: [0, 0],\n // contoursRaw: [],\n // contours: [],\n annotations: {}\n };\n [angle, rotationMatrix, face4.tensor] = correctFaceRotation((_c2 = config3.face.detector) == null ? void 0 : _c2.rotation, box, input, ((_d2 = config3.face.mesh) == null ? void 0 : _d2.enabled) ? inputSize6 : size());\n if (config3.filter.equalization) {\n const equilized = face4.tensor ? await histogramEqualization(face4.tensor) : void 0;\n Mt(face4.tensor);\n if (equilized)\n face4.tensor = equilized;\n }\n face4.boxScore = Math.round(100 * box.confidence) / 100;\n if (!((_e = config3.face.mesh) == null ? void 0 : _e.enabled) || !(model7 == null ? void 0 : model7[\"executor\"])) {\n face4.box = clampBox(box, input);\n face4.boxRaw = getRawBox(box, input);\n face4.score = face4.boxScore;\n face4.size = box.size;\n face4.mesh = box.landmarks;\n face4.meshRaw = face4.mesh.map((pt2) => [pt2[0] / (input.shape[2] || 0), pt2[1] / (input.shape[1] || 0), (pt2[2] || 0) / size2]);\n for (const key of Object.keys(blazeFaceLandmarks))\n face4.annotations[key] = [face4.mesh[blazeFaceLandmarks[key]]];\n } else if (!model7) {\n if (config3.debug)\n log(\"face mesh detection requested, but model is not loaded\");\n } else {\n if (((_f2 = config3.face.attention) == null ? void 0 : _f2.enabled) && !env.kernels.includes(\"atan2\")) {\n config3.face.attention.enabled = false;\n Mt(face4.tensor);\n return faces;\n }\n const results = model7.execute(face4.tensor);\n const confidenceT = results.find((t8) => t8.shape[t8.shape.length - 1] === 1);\n const faceConfidence = await confidenceT.data();\n face4.faceScore = Math.round(100 * faceConfidence[0]) / 100;\n if (face4.faceScore < (((_g2 = config3.face.detector) == null ? void 0 : _g2.minConfidence) || 1)) {\n box.confidence = face4.faceScore;\n if (config3.face.mesh[\"keepInvalid\"]) {\n face4.box = clampBox(box, input);\n face4.boxRaw = getRawBox(box, input);\n face4.size = box.size;\n face4.score = face4.boxScore;\n face4.mesh = box.landmarks;\n face4.meshRaw = face4.mesh.map((pt2) => [pt2[0] / (input.shape[2] || 1), pt2[1] / (input.shape[1] || 1), (pt2[2] || 0) / size2]);\n for (const key of Object.keys(blazeFaceLandmarks)) {\n face4.annotations[key] = [face4.mesh[blazeFaceLandmarks[key]]];\n }\n }\n } else {\n const meshT = results.find((t8) => t8.shape[t8.shape.length - 1] === 1404);\n const coordsReshaped = W(meshT, [-1, 3]);\n let rawCoords = await coordsReshaped.array();\n Mt(coordsReshaped);\n if ((_h2 = config3.face.attention) == null ? void 0 : _h2.enabled) {\n rawCoords = await augment(rawCoords, results);\n } else if ((_i = config3.face.iris) == null ? void 0 : _i.enabled) {\n rawCoords = await augmentIris(rawCoords, face4.tensor, inputSize6);\n }\n face4.mesh = transformRawCoords(rawCoords, box, angle, rotationMatrix, inputSize6);\n face4.meshRaw = face4.mesh.map((pt2) => [pt2[0] / (input.shape[2] || 0), pt2[1] / (input.shape[1] || 0), (pt2[2] || 0) / size2]);\n for (const key of Object.keys(meshAnnotations))\n face4.annotations[key] = meshAnnotations[key].map((index2) => face4.mesh[index2]);\n face4.score = face4.faceScore;\n const calculatedBox = {\n ...calculateFaceBox(face4.mesh, box),\n confidence: box.confidence,\n landmarks: box.landmarks,\n size: box.size\n };\n face4.box = clampBox(calculatedBox, input);\n face4.boxRaw = getRawBox(calculatedBox, input);\n face4.size = calculatedBox.size;\n newCache.push(calculatedBox);\n }\n Mt(results);\n }\n if (face4.score > (((_j2 = config3.face.detector) == null ? void 0 : _j2.minConfidence) || 1))\n faces.push(face4);\n else\n Mt(face4.tensor);\n }\n cache3.boxes = newCache;\n return faces;\n}\nasync function load5(config3) {\n var _a, _b, _c2, _d2, _e, _f2;\n if (env.initial)\n model7 = null;\n if (((_a = config3.face.attention) == null ? void 0 : _a.enabled) && (model7 == null ? void 0 : model7[\"signature\"])) {\n if (Object.keys(((_b = model7 == null ? void 0 : model7[\"signature\"]) == null ? void 0 : _b.outputs) || {}).length < 6)\n model7 = null;\n }\n if (!model7) {\n if ((_c2 = config3.face.attention) == null ? void 0 : _c2.enabled)\n model7 = await loadModel(config3.face.attention.modelPath);\n else\n model7 = await loadModel((_d2 = config3.face.mesh) == null ? void 0 : _d2.modelPath);\n } else if (config3.debug) {\n log(\"cached model:\", model7[\"modelUrl\"]);\n }\n inputSize6 = model7[\"executor\"] && ((_e = model7 == null ? void 0 : model7.inputs) == null ? void 0 : _e[0].shape) ? (_f2 = model7 == null ? void 0 : model7.inputs) == null ? void 0 : _f2[0].shape[2] : 256;\n return model7;\n}\nvar triangulation = TRI468;\nvar uvmap = UV468;\n\n// src/gear/emotion.ts\nvar annotations = [];\nvar model8;\nvar last3 = [];\nvar lastCount = 0;\nvar lastTime4 = 0;\nvar skipped4 = Number.MAX_SAFE_INTEGER;\nvar rgb = false;\nasync function load6(config3) {\n var _a, _b, _c2;\n if (env.initial)\n model8 = null;\n if (!model8) {\n model8 = await loadModel((_a = config3.face.emotion) == null ? void 0 : _a.modelPath);\n rgb = ((_c2 = (_b = model8 == null ? void 0 : model8.inputs) == null ? void 0 : _b[0].shape) == null ? void 0 : _c2[3]) === 3;\n if (!rgb)\n annotations = [\"angry\", \"disgust\", \"fear\", \"happy\", \"sad\", \"surprise\", \"neutral\"];\n else\n annotations = [\"angry\", \"disgust\", \"fear\", \"happy\", \"neutral\", \"sad\", \"surprise\"];\n } else if (config3.debug) {\n log(\"cached model:\", model8[\"modelUrl\"]);\n }\n return model8;\n}\nasync function predict5(image, config3, idx, count2) {\n var _a, _b;\n if (!model8)\n return [];\n const skipFrame = skipped4 < (((_a = config3.face.emotion) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face.emotion) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime4;\n if (config3.skipAllowed && skipTime && skipFrame && lastCount === count2 && last3[idx] && last3[idx].length > 0) {\n skipped4++;\n return last3[idx];\n }\n skipped4 = 0;\n return new Promise(async (resolve) => {\n var _a2, _b2, _c2;\n const obj = [];\n if ((_a2 = config3.face.emotion) == null ? void 0 : _a2.enabled) {\n const t8 = {};\n const inputSize10 = (model8 == null ? void 0 : model8.inputs[0].shape) ? model8.inputs[0].shape[2] : 0;\n if (((_b2 = config3.face.emotion) == null ? void 0 : _b2[\"crop\"]) > 0) {\n const crop = (_c2 = config3.face.emotion) == null ? void 0 : _c2[\"crop\"];\n const box = [[crop, crop, 1 - crop, 1 - crop]];\n t8.resize = Kj.cropAndResize(image, box, [0], [inputSize10, inputSize10]);\n } else {\n t8.resize = Kj.resizeBilinear(image, [inputSize10, inputSize10], false);\n }\n if (rgb) {\n t8.mul = se(t8.resize, 255);\n t8.normalize = Te(t8.mul, [103.939, 116.779, 123.68]);\n t8.emotion = model8 == null ? void 0 : model8.execute(t8.normalize);\n } else {\n t8.channels = se(t8.resize, constants.rgb);\n t8.grayscale = ot(t8.channels, 3, true);\n t8.grayscaleSub = Te(t8.grayscale, constants.tf05);\n t8.grayscaleMul = se(t8.grayscaleSub, constants.tf2);\n t8.emotion = model8 == null ? void 0 : model8.execute(t8.grayscaleMul);\n }\n lastTime4 = now();\n const data = await t8.emotion.data();\n for (let i = 0; i < data.length; i++) {\n if (data[i] > (config3.face.emotion.minConfidence || 0))\n obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n }\n last3[idx] = obj;\n lastCount = count2;\n resolve(obj);\n });\n}\n\n// src/face/faceres.ts\nvar model9;\nvar last4 = [];\nvar lastTime5 = 0;\nvar lastCount2 = 0;\nvar skipped5 = Number.MAX_SAFE_INTEGER;\nasync function load7(config3) {\n var _a;\n if (env.initial)\n model9 = null;\n if (!model9)\n model9 = await loadModel((_a = config3.face.description) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model9[\"modelUrl\"]);\n return model9;\n}\nfunction enhance(input, config3) {\n var _a, _b;\n const tensor = input.image || input.tensor || input;\n if (!(model9 == null ? void 0 : model9.inputs[0].shape))\n return tensor;\n let crop;\n if (((_a = config3.face.description) == null ? void 0 : _a[\"crop\"]) > 0) {\n const cropval = (_b = config3.face.description) == null ? void 0 : _b[\"crop\"];\n const box = [[cropval, cropval, 1 - cropval, 1 - cropval]];\n crop = Kj.cropAndResize(tensor, box, [0], [model9.inputs[0].shape[2], model9.inputs[0].shape[1]]);\n } else {\n crop = Kj.resizeBilinear(tensor, [model9.inputs[0].shape[2], model9.inputs[0].shape[1]], false);\n }\n const norm = se(crop, constants.tf255);\n Mt(crop);\n return norm;\n}\nasync function predict6(image, config3, idx, count2) {\n var _a, _b, _c2, _d2;\n const obj = {\n age: 0,\n gender: \"unknown\",\n genderScore: 0,\n descriptor: []\n };\n if (!(model9 == null ? void 0 : model9[\"executor\"]))\n return obj;\n const skipFrame = skipped5 < (((_a = config3.face.description) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face.description) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime5;\n if (config3.skipAllowed && skipFrame && skipTime && lastCount2 === count2 && ((_c2 = last4 == null ? void 0 : last4[idx]) == null ? void 0 : _c2.age) > 0 && ((_d2 = last4 == null ? void 0 : last4[idx]) == null ? void 0 : _d2.genderScore) > 0) {\n skipped5++;\n return last4[idx];\n }\n skipped5 = 0;\n return new Promise(async (resolve) => {\n var _a2;\n if ((_a2 = config3.face.description) == null ? void 0 : _a2.enabled) {\n const enhanced = enhance(image, config3);\n const resT = model9 == null ? void 0 : model9.execute(enhanced);\n lastTime5 = now();\n Mt(enhanced);\n const genderT = resT.find((t8) => t8.shape[1] === 1);\n const gender2 = await genderT.data();\n const confidence = Math.trunc(200 * Math.abs(gender2[0] - 0.5)) / 100;\n if (confidence > (config3.face.description.minConfidence || 0)) {\n obj.gender = gender2[0] <= 0.5 ? \"female\" : \"male\";\n obj.genderScore = Math.min(0.99, confidence);\n }\n const argmax = Ek(resT.find((t8) => t8.shape[1] === 100), 1);\n const ageIdx = (await argmax.data())[0];\n Mt(argmax);\n const ageT = resT.find((t8) => t8.shape[1] === 100);\n const all2 = await ageT.data();\n obj.age = Math.round(all2[ageIdx - 1] > all2[ageIdx + 1] ? 10 * ageIdx - 100 * all2[ageIdx - 1] : 10 * ageIdx + 100 * all2[ageIdx + 1]) / 10;\n if (Number.isNaN(gender2[0]) || Number.isNaN(all2[0]))\n log(\"faceres error:\", { model: model9, result: resT });\n const desc = resT.find((t8) => t8.shape[1] === 1024);\n const descriptor = desc ? await desc.data() : [];\n obj.descriptor = Array.from(descriptor);\n resT.forEach((t8) => Mt(t8));\n }\n last4[idx] = obj;\n lastCount2 = count2;\n resolve(obj);\n });\n}\n\n// src/face/mask.ts\nvar expandFact = 0.1;\nvar alpha = 0.5;\nfunction insidePoly(x, y8, polygon) {\n let inside = false;\n let j = polygon.length - 1;\n for (let i = 0; i < polygon.length; j = i++) {\n if (polygon[i].y > y8 !== polygon[j].y > y8 && x < (polygon[j].x - polygon[i].x) * (y8 - polygon[i].y) / (polygon[j].y - polygon[i].y) + polygon[i].x)\n inside = !inside;\n }\n return inside;\n}\nasync function mask(face4) {\n if (!face4.tensor)\n return face4.tensor;\n if (!face4.mesh || face4.mesh.length < 100)\n return face4.tensor;\n const width = face4.tensor.shape[2] || 0;\n const height = face4.tensor.shape[1] || 0;\n const buffer = await face4.tensor.buffer();\n let silhouette = [];\n for (const pt2 of meshAnnotations.silhouette)\n silhouette.push({ x: (face4.mesh[pt2][0] - face4.box[0]) / face4.box[2], y: (face4.mesh[pt2][1] - face4.box[1]) / face4.box[3] });\n if (expandFact && expandFact > 0)\n silhouette = silhouette.map((pt2) => ({ x: pt2.x > 0.5 ? pt2.x + expandFact : pt2.x - expandFact, y: pt2.y > 0.5 ? pt2.y + expandFact : pt2.y - expandFact }));\n for (let x = 0; x < width; x++) {\n for (let y8 = 0; y8 < height; y8++) {\n const inside = insidePoly(x / width, y8 / width, silhouette);\n if (!inside) {\n buffer.set(alpha * buffer.get(0, y8, x, 0), 0, y8, x, 0);\n buffer.set(alpha * buffer.get(0, y8, x, 1), 0, y8, x, 1);\n buffer.set(alpha * buffer.get(0, y8, x, 2), 0, y8, x, 2);\n }\n }\n }\n const output = buffer.toTensor();\n return output;\n}\n\n// src/face/antispoof.ts\nvar model10;\nvar cached = [];\nvar skipped6 = Number.MAX_SAFE_INTEGER;\nvar lastCount3 = 0;\nvar lastTime6 = 0;\nasync function load8(config3) {\n var _a;\n if (env.initial)\n model10 = null;\n if (!model10)\n model10 = await loadModel((_a = config3.face.antispoof) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model10[\"modelUrl\"]);\n return model10;\n}\nasync function predict7(image, config3, idx, count2) {\n var _a, _b;\n if (!(model10 == null ? void 0 : model10[\"executor\"]))\n return 0;\n const skipTime = (((_a = config3.face.antispoof) == null ? void 0 : _a.skipTime) || 0) > now() - lastTime6;\n const skipFrame = skipped6 < (((_b = config3.face.antispoof) == null ? void 0 : _b.skipFrames) || 0);\n if (config3.skipAllowed && skipTime && skipFrame && lastCount3 === count2 && cached[idx]) {\n skipped6++;\n return cached[idx];\n }\n skipped6 = 0;\n return new Promise(async (resolve) => {\n const resize = Kj.resizeBilinear(image, [(model10 == null ? void 0 : model10.inputs[0].shape) ? model10.inputs[0].shape[2] : 0, (model10 == null ? void 0 : model10.inputs[0].shape) ? model10.inputs[0].shape[1] : 0], false);\n const res = model10 == null ? void 0 : model10.execute(resize);\n const num = (await res.data())[0];\n cached[idx] = Math.round(100 * num) / 100;\n lastCount3 = count2;\n lastTime6 = now();\n Mt([resize, res]);\n resolve(cached[idx]);\n });\n}\n\n// src/face/liveness.ts\nvar model11;\nvar cached2 = [];\nvar skipped7 = Number.MAX_SAFE_INTEGER;\nvar lastCount4 = 0;\nvar lastTime7 = 0;\nasync function load9(config3) {\n var _a;\n if (env.initial)\n model11 = null;\n if (!model11)\n model11 = await loadModel((_a = config3.face.liveness) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model11[\"modelUrl\"]);\n return model11;\n}\nasync function predict8(image, config3, idx, count2) {\n var _a, _b;\n if (!(model11 == null ? void 0 : model11[\"executor\"]))\n return 0;\n const skipTime = (((_a = config3.face.liveness) == null ? void 0 : _a.skipTime) || 0) > now() - lastTime7;\n const skipFrame = skipped7 < (((_b = config3.face.liveness) == null ? void 0 : _b.skipFrames) || 0);\n if (config3.skipAllowed && skipTime && skipFrame && lastCount4 === count2 && cached2[idx]) {\n skipped7++;\n return cached2[idx];\n }\n skipped7 = 0;\n return new Promise(async (resolve) => {\n const resize = Kj.resizeBilinear(image, [(model11 == null ? void 0 : model11.inputs[0].shape) ? model11.inputs[0].shape[2] : 0, (model11 == null ? void 0 : model11.inputs[0].shape) ? model11.inputs[0].shape[1] : 0], false);\n const res = model11 == null ? void 0 : model11.execute(resize);\n const num = (await res.data())[0];\n cached2[idx] = Math.round(100 * num) / 100;\n lastCount4 = count2;\n lastTime7 = now();\n Mt([resize, res]);\n resolve(cached2[idx]);\n });\n}\n\n// src/gear/gear.ts\nvar model12;\nvar last5 = [];\nvar raceNames = [\"white\", \"black\", \"asian\", \"indian\", \"other\"];\nvar ageWeights = [15, 23, 28, 35.5, 45.5, 55.5, 65];\nvar lastCount5 = 0;\nvar lastTime8 = 0;\nvar skipped8 = Number.MAX_SAFE_INTEGER;\nasync function load10(config3) {\n var _a;\n if (env.initial)\n model12 = null;\n if (!model12)\n model12 = await loadModel((_a = config3.face.gear) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model12[\"modelUrl\"]);\n return model12;\n}\nasync function predict9(image, config3, idx, count2) {\n var _a, _b;\n if (!model12)\n return { age: 0, gender: \"unknown\", genderScore: 0, race: [] };\n const skipFrame = skipped8 < (((_a = config3.face.gear) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face.gear) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime8;\n if (config3.skipAllowed && skipTime && skipFrame && lastCount5 === count2 && last5[idx]) {\n skipped8++;\n return last5[idx];\n }\n skipped8 = 0;\n return new Promise(async (resolve) => {\n var _a2, _b2, _c2, _d2;\n if (!(model12 == null ? void 0 : model12.inputs[0].shape))\n return;\n const t8 = {};\n let box = [[0, 0.1, 0.9, 0.9]];\n if (((_a2 = config3.face.gear) == null ? void 0 : _a2[\"crop\"]) > 0) {\n const crop = (_b2 = config3.face.gear) == null ? void 0 : _b2[\"crop\"];\n box = [[crop, crop, 1 - crop, 1 - crop]];\n }\n t8.resize = Kj.cropAndResize(image, box, [0], [model12.inputs[0].shape[2], model12.inputs[0].shape[1]]);\n const obj = { age: 0, gender: \"unknown\", genderScore: 0, race: [] };\n if ((_c2 = config3.face.gear) == null ? void 0 : _c2.enabled)\n [t8.age, t8.gender, t8.race] = model12.execute(t8.resize, [\"age_output\", \"gender_output\", \"race_output\"]);\n const gender2 = await t8.gender.data();\n obj.gender = gender2[0] > gender2[1] ? \"male\" : \"female\";\n obj.genderScore = Math.round(100 * (gender2[0] > gender2[1] ? gender2[0] : gender2[1])) / 100;\n const race = await t8.race.data();\n for (let i = 0; i < race.length; i++) {\n if (race[i] > (((_d2 = config3.face.gear) == null ? void 0 : _d2.minConfidence) || 0.2))\n obj.race.push({ score: Math.round(100 * race[i]) / 100, race: raceNames[i] });\n }\n obj.race.sort((a, b) => b.score - a.score);\n const ageDistribution = Array.from(await t8.age.data());\n const ageSorted = ageDistribution.map((a, i) => [ageWeights[i], a]).sort((a, b) => b[1] - a[1]);\n let age2 = ageSorted[0][0];\n for (let i = 1; i < ageSorted.length; i++)\n age2 += ageSorted[i][1] * (ageSorted[i][0] - age2);\n obj.age = Math.round(10 * age2) / 10;\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n last5[idx] = obj;\n lastCount5 = count2;\n lastTime8 = now();\n resolve(obj);\n });\n}\n\n// src/gear/ssrnet-age.ts\nvar model13;\nvar last6 = [];\nvar lastCount6 = 0;\nvar lastTime9 = 0;\nvar skipped9 = Number.MAX_SAFE_INTEGER;\nasync function load11(config3) {\n if (env.initial)\n model13 = null;\n if (!model13)\n model13 = await loadModel(config3.face[\"ssrnet\"].modelPathAge);\n else if (config3.debug)\n log(\"cached model:\", model13[\"modelUrl\"]);\n return model13;\n}\nasync function predict10(image, config3, idx, count2) {\n var _a, _b, _c2, _d2;\n if (!model13)\n return { age: 0 };\n const skipFrame = skipped9 < (((_a = config3.face[\"ssrnet\"]) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face[\"ssrnet\"]) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime9;\n if (config3.skipAllowed && skipFrame && skipTime && lastCount6 === count2 && ((_c2 = last6[idx]) == null ? void 0 : _c2.age) && ((_d2 = last6[idx]) == null ? void 0 : _d2.age) > 0) {\n skipped9++;\n return last6[idx];\n }\n skipped9 = 0;\n return new Promise(async (resolve) => {\n var _a2, _b2, _c3;\n if (!(model13 == null ? void 0 : model13.inputs) || !model13.inputs[0] || !model13.inputs[0].shape)\n return;\n const t8 = {};\n if (((_a2 = config3.face[\"ssrnet\"]) == null ? void 0 : _a2[\"crop\"]) > 0) {\n const crop = (_b2 = config3.face[\"ssrnet\"]) == null ? void 0 : _b2[\"crop\"];\n const box = [[crop, crop, 1 - crop, 1 - crop]];\n t8.resize = Kj.cropAndResize(image, box, [0], [model13.inputs[0].shape[2], model13.inputs[0].shape[1]]);\n } else {\n t8.resize = Kj.resizeBilinear(image, [model13.inputs[0].shape[2], model13.inputs[0].shape[1]], false);\n }\n t8.enhance = se(t8.resize, constants.tf255);\n const obj = { age: 0 };\n if ((_c3 = config3.face[\"ssrnet\"]) == null ? void 0 : _c3.enabled)\n t8.age = model13.execute(t8.enhance);\n if (t8.age) {\n const data = await t8.age.data();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n last6[idx] = obj;\n lastCount6 = count2;\n lastTime9 = now();\n resolve(obj);\n });\n}\n\n// src/gear/ssrnet-gender.ts\nvar model14;\nvar last7 = [];\nvar lastCount7 = 0;\nvar lastTime10 = 0;\nvar skipped10 = Number.MAX_SAFE_INTEGER;\nvar rgb2 = [0.2989, 0.587, 0.114];\nasync function load12(config3) {\n var _a;\n if (env.initial)\n model14 = null;\n if (!model14)\n model14 = await loadModel((_a = config3.face[\"ssrnet\"]) == null ? void 0 : _a.modelPathGender);\n else if (config3.debug)\n log(\"cached model:\", model14[\"modelUrl\"]);\n return model14;\n}\nasync function predict11(image, config3, idx, count2) {\n var _a, _b, _c2, _d2;\n if (!model14)\n return { gender: \"unknown\", genderScore: 0 };\n const skipFrame = skipped10 < (((_a = config3.face[\"ssrnet\"]) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face[\"ssrnet\"]) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime10;\n if (config3.skipAllowed && skipFrame && skipTime && lastCount7 === count2 && ((_c2 = last7[idx]) == null ? void 0 : _c2.gender) && ((_d2 = last7[idx]) == null ? void 0 : _d2.genderScore) > 0) {\n skipped10++;\n return last7[idx];\n }\n skipped10 = 0;\n return new Promise(async (resolve) => {\n var _a2, _b2, _c3;\n if (!(model14 == null ? void 0 : model14.inputs[0].shape))\n return;\n const t8 = {};\n if (((_a2 = config3.face[\"ssrnet\"]) == null ? void 0 : _a2[\"crop\"]) > 0) {\n const crop = (_b2 = config3.face[\"ssrnet\"]) == null ? void 0 : _b2[\"crop\"];\n const box = [[crop, crop, 1 - crop, 1 - crop]];\n t8.resize = Kj.cropAndResize(image, box, [0], [model14.inputs[0].shape[2], model14.inputs[0].shape[1]]);\n } else {\n t8.resize = Kj.resizeBilinear(image, [model14.inputs[0].shape[2], model14.inputs[0].shape[1]], false);\n }\n t8.enhance = De(() => {\n var _a3, _b3;\n let normalize2;\n if (((_b3 = (_a3 = model14 == null ? void 0 : model14.inputs) == null ? void 0 : _a3[0].shape) == null ? void 0 : _b3[3]) === 1) {\n const [red, green, blue] = li(t8.resize, 3, 3);\n const redNorm = se(red, rgb2[0]);\n const greenNorm = se(green, rgb2[1]);\n const blueNorm = se(blue, rgb2[2]);\n const grayscale = Tk([redNorm, greenNorm, blueNorm]);\n normalize2 = se(Te(grayscale, constants.tf05), 2);\n } else {\n normalize2 = se(Te(t8.resize, constants.tf05), 2);\n }\n return normalize2;\n });\n const obj = { gender: \"unknown\", genderScore: 0 };\n if ((_c3 = config3.face[\"ssrnet\"]) == null ? void 0 : _c3.enabled)\n t8.gender = model14.execute(t8.enhance);\n const data = await t8.gender.data();\n obj.gender = data[0] > data[1] ? \"female\" : \"male\";\n obj.genderScore = data[0] > data[1] ? Math.trunc(100 * data[0]) / 100 : Math.trunc(100 * data[1]) / 100;\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n last7[idx] = obj;\n lastCount7 = count2;\n lastTime10 = now();\n resolve(obj);\n });\n}\n\n// src/face/mobilefacenet.ts\nvar model15;\nvar last8 = [];\nvar lastCount8 = 0;\nvar lastTime11 = 0;\nvar skipped11 = Number.MAX_SAFE_INTEGER;\nasync function load13(config3) {\n var _a;\n if (env.initial)\n model15 = null;\n if (!model15)\n model15 = await loadModel((_a = config3.face[\"mobilefacenet\"]) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model15[\"modelUrl\"]);\n return model15;\n}\nasync function predict12(input, config3, idx, count2) {\n var _a, _b;\n if (!(model15 == null ? void 0 : model15[\"executor\"]))\n return [];\n const skipFrame = skipped11 < (((_a = config3.face[\"mobilefacenet\"]) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face[\"mobilefacenet\"]) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime11;\n if (config3.skipAllowed && skipTime && skipFrame && lastCount8 === count2 && last8[idx]) {\n skipped11++;\n return last8[idx];\n }\n return new Promise(async (resolve) => {\n var _a2;\n let data = [];\n if (((_a2 = config3.face[\"mobilefacenet\"]) == null ? void 0 : _a2.enabled) && (model15 == null ? void 0 : model15.inputs[0].shape)) {\n const t8 = {};\n t8.crop = Kj.resizeBilinear(input, [model15.inputs[0].shape[2], model15.inputs[0].shape[1]], false);\n t8.data = model15.execute(t8.crop);\n const output = await t8.data.data();\n data = Array.from(output);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n }\n last8[idx] = data;\n lastCount8 = count2;\n lastTime11 = now();\n resolve(data);\n });\n}\n\n// src/face/insightface.ts\nvar model16;\nvar last9 = [];\nvar lastCount9 = 0;\nvar lastTime12 = 0;\nvar skipped12 = Number.MAX_SAFE_INTEGER;\nasync function load14(config3) {\n if (env.initial)\n model16 = null;\n if (!model16)\n model16 = await loadModel(config3.face[\"insightface\"].modelPath);\n else if (config3.debug)\n log(\"cached model:\", model16[\"modelUrl\"]);\n return model16;\n}\nasync function predict13(input, config3, idx, count2) {\n var _a, _b;\n if (!(model16 == null ? void 0 : model16[\"executor\"]))\n return [];\n const skipFrame = skipped12 < (((_a = config3.face[\"insightface\"]) == null ? void 0 : _a.skipFrames) || 0);\n const skipTime = (((_b = config3.face[\"insightface\"]) == null ? void 0 : _b.skipTime) || 0) > now() - lastTime12;\n if (config3.skipAllowed && skipTime && skipFrame && lastCount9 === count2 && last9[idx]) {\n skipped12++;\n return last9[idx];\n }\n return new Promise(async (resolve) => {\n var _a2;\n let data = [];\n if (((_a2 = config3.face[\"insightface\"]) == null ? void 0 : _a2.enabled) && (model16 == null ? void 0 : model16.inputs[0].shape)) {\n const t8 = {};\n t8.crop = Kj.resizeBilinear(input, [model16.inputs[0].shape[2], model16.inputs[0].shape[1]], false);\n t8.data = model16.execute(t8.crop);\n const output = await t8.data.data();\n data = Array.from(output);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n }\n last9[idx] = data;\n lastCount9 = count2;\n lastTime12 = now();\n resolve(data);\n });\n}\n\n// src/face/angles.ts\nvar calculateGaze = (face4) => {\n const radians = (pt1, pt2) => Math.atan2(pt1[1] - pt2[1], pt1[0] - pt2[0]);\n if (!face4.annotations.rightEyeIris || !face4.annotations.leftEyeIris)\n return { bearing: 0, strength: 0 };\n const offsetIris = [0, -0.1];\n const eyeRatio = 1;\n const left = (face4.mesh[33][2] || 0) > (face4.mesh[263][2] || 0);\n const irisCenter = left ? face4.mesh[473] : face4.mesh[468];\n const eyeCenter = left ? [(face4.mesh[133][0] + face4.mesh[33][0]) / 2, (face4.mesh[133][1] + face4.mesh[33][1]) / 2] : [(face4.mesh[263][0] + face4.mesh[362][0]) / 2, (face4.mesh[263][1] + face4.mesh[362][1]) / 2];\n const eyeSize = left ? [face4.mesh[133][0] - face4.mesh[33][0], face4.mesh[23][1] - face4.mesh[27][1]] : [face4.mesh[263][0] - face4.mesh[362][0], face4.mesh[253][1] - face4.mesh[257][1]];\n const eyeDiff = [\n // x distance between extreme point and center point normalized with eye size\n (eyeCenter[0] - irisCenter[0]) / eyeSize[0] - offsetIris[0],\n eyeRatio * (irisCenter[1] - eyeCenter[1]) / eyeSize[1] - offsetIris[1]\n ];\n let strength = Math.sqrt(eyeDiff[0] * eyeDiff[0] + eyeDiff[1] * eyeDiff[1]);\n strength = Math.min(strength, face4.boxRaw[2] / 2, face4.boxRaw[3] / 2);\n const bearing = (radians([0, 0], eyeDiff) + Math.PI / 2) % Math.PI;\n return { bearing, strength };\n};\nvar calculateFaceAngle = (face4, imageSize) => {\n const normalize2 = (v10) => {\n const length = Math.sqrt(v10[0] * v10[0] + v10[1] * v10[1] + v10[2] * v10[2]);\n v10[0] /= length;\n v10[1] /= length;\n v10[2] /= length;\n return v10;\n };\n const subVectors = (a, b) => {\n const x = a[0] - b[0];\n const y8 = a[1] - b[1];\n const z = a[2] - b[2];\n return [x, y8, z];\n };\n const crossVectors = (a, b) => {\n const x = a[1] * b[2] - a[2] * b[1];\n const y8 = a[2] * b[0] - a[0] * b[2];\n const z = a[0] * b[1] - a[1] * b[0];\n return [x, y8, z];\n };\n const rotationMatrixToEulerAngle = (r) => {\n const [r00, _r01, _r02, r10, r11, r12, r20, r21, r22] = r;\n let thetaX;\n let thetaY;\n let thetaZ;\n if (r10 < 1) {\n if (r10 > -1) {\n thetaZ = Math.asin(r10);\n thetaY = Math.atan2(-r20, r00);\n thetaX = Math.atan2(-r12, r11);\n } else {\n thetaZ = -Math.PI / 2;\n thetaY = -Math.atan2(r21, r22);\n thetaX = 0;\n }\n } else {\n thetaZ = Math.PI / 2;\n thetaY = Math.atan2(r21, r22);\n thetaX = 0;\n }\n if (Number.isNaN(thetaX))\n thetaX = 0;\n if (Number.isNaN(thetaY))\n thetaY = 0;\n if (Number.isNaN(thetaZ))\n thetaZ = 0;\n return { pitch: 2 * -thetaX, yaw: 2 * -thetaY, roll: 2 * -thetaZ };\n };\n const mesh = face4.meshRaw;\n if (!mesh || mesh.length < 300)\n return { angle: { pitch: 0, yaw: 0, roll: 0 }, matrix: [1, 0, 0, 0, 1, 0, 0, 0, 1], gaze: { bearing: 0, strength: 0 } };\n const size2 = Math.max(face4.boxRaw[2] * imageSize[0], face4.boxRaw[3] * imageSize[1]) / 1.5;\n const pts = [mesh[10], mesh[152], mesh[234], mesh[454]].map((pt2) => [pt2[0] * imageSize[0] / size2, pt2[1] * imageSize[1] / size2, pt2[2]]);\n const yAxis = normalize2(subVectors(pts[1], pts[0]));\n let xAxis = normalize2(subVectors(pts[3], pts[2]));\n const zAxis = normalize2(crossVectors(xAxis, yAxis));\n xAxis = crossVectors(yAxis, zAxis);\n const matrix = [\n xAxis[0],\n xAxis[1],\n xAxis[2],\n yAxis[0],\n yAxis[1],\n yAxis[2],\n zAxis[0],\n zAxis[1],\n zAxis[2]\n ];\n const angle = rotationMatrixToEulerAngle(matrix);\n const gaze = mesh.length === 478 ? calculateGaze(face4) : { bearing: 0, strength: 0 };\n return { angle, matrix, gaze };\n};\n\n// src/face/anthropometry.ts\nfunction calculateCameraDistance(face4, width) {\n const f = face4 == null ? void 0 : face4.annotations;\n if (!(f == null ? void 0 : f.leftEyeIris) || !(f == null ? void 0 : f.rightEyeIris))\n return 0;\n const irisSize = Math.max(Math.abs(f.leftEyeIris[3][0] - f.leftEyeIris[1][0]), Math.abs(f.rightEyeIris[3][0] - f.rightEyeIris[1][0])) / width;\n const cameraDistance = Math.round(1.17 / irisSize) / 100;\n return cameraDistance;\n}\n\n// src/face/face.ts\nvar detectFace = async (instance, input) => {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2, _k2, _l2, _m, _n2, _o, _p2, _q, _r2, _s2, _t, _u2, _v2, _w2;\n let timeStamp = now();\n let ageRes;\n let gearRes;\n let genderRes;\n let emotionRes;\n let mobilefacenetRes;\n let insightfaceRes;\n let antispoofRes;\n let livenessRes;\n let descRes;\n const faceRes = [];\n instance.state = \"run:face\";\n const faces = await predict4(input, instance.config);\n instance.performance.face = env.perfadd ? (instance.performance.face || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n if (!input.shape || input.shape.length !== 4)\n return [];\n if (!faces)\n return [];\n for (let i = 0; i < faces.length; i++) {\n instance.analyze(\"Get Face\");\n if (!faces[i].tensor || faces[i].tensor.isDisposedInternal) {\n log(\"Face object is disposed:\", faces[i].tensor);\n continue;\n }\n if ((_a = instance.config.face.detector) == null ? void 0 : _a.mask) {\n const masked = await mask(faces[i]);\n Mt(faces[i].tensor);\n if (masked)\n faces[i].tensor = masked;\n }\n const rotation = faces[i].mesh && faces[i].mesh.length > 200 ? calculateFaceAngle(faces[i], [input.shape[2], input.shape[1]]) : null;\n instance.analyze(\"Start Emotion:\");\n if (instance.config.async) {\n emotionRes = ((_b = instance.config.face.emotion) == null ? void 0 : _b.enabled) ? predict5(faces[i].tensor || ur([]), instance.config, i, faces.length) : [];\n } else {\n instance.state = \"run:emotion\";\n timeStamp = now();\n emotionRes = ((_c2 = instance.config.face.emotion) == null ? void 0 : _c2.enabled) ? await predict5(faces[i].tensor || ur([]), instance.config, i, faces.length) : [];\n instance.performance.emotion = env.perfadd ? (instance.performance.emotion || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End Emotion:\");\n instance.analyze(\"Start AntiSpoof:\");\n if (instance.config.async) {\n antispoofRes = ((_d2 = instance.config.face.antispoof) == null ? void 0 : _d2.enabled) ? predict7(faces[i].tensor || ur([]), instance.config, i, faces.length) : 0;\n } else {\n instance.state = \"run:antispoof\";\n timeStamp = now();\n antispoofRes = ((_e = instance.config.face.antispoof) == null ? void 0 : _e.enabled) ? await predict7(faces[i].tensor || ur([]), instance.config, i, faces.length) : 0;\n instance.performance.antispoof = env.perfadd ? (instance.performance.antispoof || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End AntiSpoof:\");\n instance.analyze(\"Start Liveness:\");\n if (instance.config.async) {\n livenessRes = ((_f2 = instance.config.face.liveness) == null ? void 0 : _f2.enabled) ? predict8(faces[i].tensor || ur([]), instance.config, i, faces.length) : 0;\n } else {\n instance.state = \"run:liveness\";\n timeStamp = now();\n livenessRes = ((_g2 = instance.config.face.liveness) == null ? void 0 : _g2.enabled) ? await predict8(faces[i].tensor || ur([]), instance.config, i, faces.length) : 0;\n instance.performance.liveness = env.perfadd ? (instance.performance.antispoof || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End Liveness:\");\n instance.analyze(\"Start GEAR:\");\n if (instance.config.async) {\n gearRes = ((_h2 = instance.config.face.gear) == null ? void 0 : _h2.enabled) ? predict9(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n } else {\n instance.state = \"run:gear\";\n timeStamp = now();\n gearRes = ((_i = instance.config.face.gear) == null ? void 0 : _i.enabled) ? await predict9(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n instance.performance.gear = Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End GEAR:\");\n instance.analyze(\"Start SSRNet:\");\n if (instance.config.async) {\n ageRes = ((_j2 = instance.config.face[\"ssrnet\"]) == null ? void 0 : _j2.enabled) ? predict10(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n genderRes = ((_k2 = instance.config.face[\"ssrnet\"]) == null ? void 0 : _k2.enabled) ? predict11(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n } else {\n instance.state = \"run:ssrnet\";\n timeStamp = now();\n ageRes = ((_l2 = instance.config.face[\"ssrnet\"]) == null ? void 0 : _l2.enabled) ? await predict10(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n genderRes = ((_m = instance.config.face[\"ssrnet\"]) == null ? void 0 : _m.enabled) ? await predict11(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n instance.performance.ssrnet = Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End SSRNet:\");\n instance.analyze(\"Start MobileFaceNet:\");\n if (instance.config.async) {\n mobilefacenetRes = ((_n2 = instance.config.face[\"mobilefacenet\"]) == null ? void 0 : _n2.enabled) ? predict12(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n } else {\n instance.state = \"run:mobilefacenet\";\n timeStamp = now();\n mobilefacenetRes = ((_o = instance.config.face[\"mobilefacenet\"]) == null ? void 0 : _o.enabled) ? await predict12(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n instance.performance.mobilefacenet = Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End MobileFaceNet:\");\n instance.analyze(\"Start InsightFace:\");\n if (instance.config.async) {\n insightfaceRes = ((_p2 = instance.config.face[\"insightface\"]) == null ? void 0 : _p2.enabled) ? predict13(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n } else {\n instance.state = \"run:mobilefacenet\";\n timeStamp = now();\n insightfaceRes = ((_q = instance.config.face[\"insightface\"]) == null ? void 0 : _q.enabled) ? await predict13(faces[i].tensor || ur([]), instance.config, i, faces.length) : null;\n instance.performance.mobilefacenet = Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End InsightFace:\");\n instance.analyze(\"Start Description:\");\n if (instance.config.async) {\n descRes = predict6(faces[i].tensor || ur([]), instance.config, i, faces.length);\n } else {\n instance.state = \"run:description\";\n timeStamp = now();\n descRes = await predict6(faces[i].tensor || ur([]), instance.config, i, faces.length);\n instance.performance.description = env.perfadd ? (instance.performance.description || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n instance.analyze(\"End Description:\");\n if (instance.config.async) {\n [ageRes, genderRes, emotionRes, mobilefacenetRes, insightfaceRes, descRes, gearRes, antispoofRes, livenessRes] = await Promise.all([ageRes, genderRes, emotionRes, mobilefacenetRes, insightfaceRes, descRes, gearRes, antispoofRes, livenessRes]);\n }\n instance.analyze(\"Finish Face:\");\n if (((_r2 = instance.config.face[\"ssrnet\"]) == null ? void 0 : _r2.enabled) && ageRes && genderRes) {\n descRes = {\n ...descRes,\n age: ageRes.age,\n gender: genderRes.gender,\n genderScore: genderRes.genderScore\n };\n }\n if (((_s2 = instance.config.face.gear) == null ? void 0 : _s2.enabled) && gearRes) {\n descRes = {\n ...descRes,\n age: gearRes.age,\n gender: gearRes.gender,\n genderScore: gearRes.genderScore,\n race: gearRes.race\n };\n }\n if (((_t = instance.config.face[\"mobilefacenet\"]) == null ? void 0 : _t.enabled) && mobilefacenetRes) {\n descRes.descriptor = mobilefacenetRes;\n }\n if (((_u2 = instance.config.face[\"insightface\"]) == null ? void 0 : _u2.enabled) && insightfaceRes) {\n descRes.descriptor = insightfaceRes;\n }\n const irisSize = ((_v2 = instance.config.face.iris) == null ? void 0 : _v2.enabled) ? calculateCameraDistance(faces[i], input.shape[2]) : 0;\n const tensor = ((_w2 = instance.config.face.detector) == null ? void 0 : _w2.return) ? gc(faces[i].tensor) : null;\n Mt(faces[i].tensor);\n if (faces[i].tensor)\n delete faces[i].tensor;\n const res = {\n ...faces[i],\n id: i\n };\n if (descRes.age)\n res.age = descRes.age;\n if (descRes.gender)\n res.gender = descRes.gender;\n if (descRes.genderScore)\n res.genderScore = descRes.genderScore;\n if (descRes.descriptor)\n res.embedding = descRes.descriptor;\n if (descRes.race)\n res.race = descRes.race;\n if (emotionRes)\n res.emotion = emotionRes;\n if (antispoofRes)\n res.real = antispoofRes;\n if (livenessRes)\n res.live = livenessRes;\n if (irisSize > 0)\n res.distance = irisSize;\n if (rotation)\n res.rotation = rotation;\n if (tensor)\n res.tensor = tensor;\n faceRes.push(res);\n instance.analyze(\"End Face\");\n }\n instance.analyze(\"End FaceMesh:\");\n if (instance.config.async) {\n if (instance.performance.face)\n delete instance.performance.face;\n if (instance.performance.age)\n delete instance.performance.age;\n if (instance.performance.gender)\n delete instance.performance.gender;\n if (instance.performance.emotion)\n delete instance.performance.emotion;\n }\n return faceRes;\n};\n\n// src/hand/fingerdef.ts\nvar Finger = {\n thumb: 0,\n index: 1,\n middle: 2,\n ring: 3,\n pinky: 4,\n all: [0, 1, 2, 3, 4],\n // just for convenience\n nameMapping: { 0: \"thumb\", 1: \"index\", 2: \"middle\", 3: \"ring\", 4: \"pinky\" },\n // Describes mapping of joints based on the 21 points returned by handpose.\n // [0] Palm\n // [1-4] Thumb\n // [5-8] Index\n // [9-12] Middle\n // [13-16] Ring\n // [17-20] Pinky\n pointsMapping: {\n 0: [[0, 1], [1, 2], [2, 3], [3, 4]],\n 1: [[0, 5], [5, 6], [6, 7], [7, 8]],\n 2: [[0, 9], [9, 10], [10, 11], [11, 12]],\n 3: [[0, 13], [13, 14], [14, 15], [15, 16]],\n 4: [[0, 17], [17, 18], [18, 19], [19, 20]]\n },\n getName: (value) => Finger.nameMapping[value],\n getPoints: (value) => Finger.pointsMapping[value]\n};\nvar FingerCurl = {\n none: 0,\n half: 1,\n full: 2,\n nameMapping: { 0: \"none\", 1: \"half\", 2: \"full\" },\n getName: (value) => FingerCurl.nameMapping[value]\n};\nvar FingerDirection = {\n verticalUp: 0,\n verticalDown: 1,\n horizontalLeft: 2,\n horizontalRight: 3,\n diagonalUpRight: 4,\n diagonalUpLeft: 5,\n diagonalDownRight: 6,\n diagonalDownLeft: 7,\n nameMapping: { 0: \"verticalUp\", 1: \"verticalDown\", 2: \"horizontalLeft\", 3: \"horizontalRight\", 4: \"diagonalUpRight\", 5: \"diagonalUpLeft\", 6: \"diagonalDownRight\", 7: \"diagonalDownLeft\" },\n getName: (value) => FingerDirection.nameMapping[value]\n};\nvar FingerGesture = class {\n constructor(name) {\n __publicField(this, \"name\");\n __publicField(this, \"curls\");\n __publicField(this, \"directions\");\n __publicField(this, \"weights\");\n __publicField(this, \"weightsRelative\");\n this.name = name;\n this.curls = {};\n this.directions = {};\n this.weights = [1, 1, 1, 1, 1];\n this.weightsRelative = [1, 1, 1, 1, 1];\n }\n curl(finger, curl, confidence) {\n if (typeof this.curls[finger] === \"undefined\")\n this.curls[finger] = [];\n this.curls[finger].push([curl, confidence]);\n }\n direction(finger, position, confidence) {\n if (!this.directions[finger])\n this.directions[finger] = [];\n this.directions[finger].push([position, confidence]);\n }\n weight(finger, weight) {\n this.weights[finger] = weight;\n const total = this.weights.reduce((a, b) => a + b, 0);\n this.weightsRelative = this.weights.map((el2) => el2 * 5 / total);\n }\n matchAgainst(detectedCurls, detectedDirections) {\n let confidence = 0;\n for (const fingerIdx in detectedCurls) {\n const detectedCurl = detectedCurls[fingerIdx];\n const expectedCurls = this.curls[fingerIdx];\n if (typeof expectedCurls === \"undefined\") {\n confidence += this.weightsRelative[fingerIdx];\n continue;\n }\n for (const [expectedCurl, score] of expectedCurls) {\n if (detectedCurl === expectedCurl) {\n confidence += score * this.weightsRelative[fingerIdx];\n break;\n }\n }\n }\n for (const fingerIdx in detectedDirections) {\n const detectedDirection = detectedDirections[fingerIdx];\n const expectedDirections = this.directions[fingerIdx];\n if (typeof expectedDirections === \"undefined\") {\n confidence += this.weightsRelative[fingerIdx];\n continue;\n }\n for (const [expectedDirection, score] of expectedDirections) {\n if (detectedDirection === expectedDirection) {\n confidence += score * this.weightsRelative[fingerIdx];\n break;\n }\n }\n }\n return confidence / 10;\n }\n};\n\n// src/hand/fingergesture.ts\nvar { thumb, index, middle, ring, pinky } = Finger;\nvar { none, half, full } = FingerCurl;\nvar { verticalUp, verticalDown, horizontalLeft, horizontalRight, diagonalUpRight, diagonalUpLeft, diagonalDownRight, diagonalDownLeft } = FingerDirection;\nvar ThumbsUp = new FingerGesture(\"thumbs up\");\nThumbsUp.curl(thumb, none, 1);\nThumbsUp.direction(thumb, verticalUp, 1);\nThumbsUp.direction(thumb, diagonalUpLeft, 0.25);\nThumbsUp.direction(thumb, diagonalUpRight, 0.25);\nfor (const finger of [Finger.index, Finger.middle, Finger.ring, Finger.pinky]) {\n ThumbsUp.curl(finger, full, 1);\n ThumbsUp.direction(finger, horizontalLeft, 1);\n ThumbsUp.direction(finger, horizontalRight, 1);\n}\nvar Victory = new FingerGesture(\"victory\");\nVictory.curl(thumb, half, 0.5);\nVictory.curl(thumb, none, 0.5);\nVictory.direction(thumb, verticalUp, 1);\nVictory.direction(thumb, diagonalUpLeft, 1);\nVictory.curl(index, none, 1);\nVictory.direction(index, verticalUp, 0.75);\nVictory.direction(index, diagonalUpLeft, 1);\nVictory.curl(middle, none, 1);\nVictory.direction(middle, verticalUp, 1);\nVictory.direction(middle, diagonalUpLeft, 0.75);\nVictory.curl(ring, full, 1);\nVictory.direction(ring, verticalUp, 0.2);\nVictory.direction(ring, diagonalUpLeft, 1);\nVictory.direction(ring, horizontalLeft, 0.2);\nVictory.curl(pinky, full, 1);\nVictory.direction(pinky, verticalUp, 0.2);\nVictory.direction(pinky, diagonalUpLeft, 1);\nVictory.direction(pinky, horizontalLeft, 0.2);\nVictory.weight(index, 2);\nVictory.weight(middle, 2);\nvar Point = new FingerGesture(\"point\");\nPoint.curl(thumb, full, 1);\nPoint.curl(index, none, 0.5);\nPoint.curl(middle, full, 0.5);\nPoint.curl(ring, full, 0.5);\nPoint.curl(pinky, full, 0.5);\nPoint.weight(index, 2);\nPoint.weight(middle, 2);\nvar MiddleFinger = new FingerGesture(\"middle finger\");\nMiddleFinger.curl(thumb, none, 1);\nMiddleFinger.curl(index, full, 0.5);\nMiddleFinger.curl(middle, full, 0.5);\nMiddleFinger.curl(ring, full, 0.5);\nMiddleFinger.curl(pinky, full, 0.5);\nMiddleFinger.weight(index, 2);\nMiddleFinger.weight(middle, 2);\nvar OpenPalm = new FingerGesture(\"open palm\");\nOpenPalm.curl(thumb, none, 0.75);\nOpenPalm.curl(index, none, 0.75);\nOpenPalm.curl(middle, none, 0.75);\nOpenPalm.curl(ring, none, 0.75);\nOpenPalm.curl(pinky, none, 0.75);\nvar fingergesture_default = [ThumbsUp, Victory, Point, MiddleFinger, OpenPalm];\n\n// src/hand/fingerpose.ts\nvar minConfidence = 0.7;\nvar options3 = {\n // curl estimation\n HALF_CURL_START_LIMIT: 60,\n NO_CURL_START_LIMIT: 130,\n // direction estimation\n DISTANCE_VOTE_POWER: 1.1,\n SINGLE_ANGLE_VOTE_POWER: 0.9,\n TOTAL_ANGLE_VOTE_POWER: 1.6\n};\nfunction calculateSlope(point1x, point1y, point2x, point2y) {\n const value = (point1y - point2y) / (point1x - point2x);\n let slope = Math.atan(value) * 180 / Math.PI;\n if (slope <= 0)\n slope = -slope;\n else if (slope > 0)\n slope = 180 - slope;\n return slope;\n}\nfunction getSlopes(point1, point2) {\n if (!point1 || !point2)\n return [0, 0];\n const slopeXY = calculateSlope(point1[0], point1[1], point2[0], point2[1]);\n if (point1.length === 2)\n return slopeXY;\n const slopeYZ = calculateSlope(point1[1], point1[2], point2[1], point2[2]);\n return [slopeXY, slopeYZ];\n}\nfunction angleOrientationAt(angle, weightageAt = 1) {\n let isVertical = 0;\n let isDiagonal = 0;\n let isHorizontal = 0;\n if (angle >= 75 && angle <= 105)\n isVertical = 1 * weightageAt;\n else if (angle >= 25 && angle <= 155)\n isDiagonal = 1 * weightageAt;\n else\n isHorizontal = 1 * weightageAt;\n return [isVertical, isDiagonal, isHorizontal];\n}\nfunction estimateFingerCurl(startPoint, midPoint, endPoint) {\n const start_mid_x_dist = startPoint[0] - midPoint[0];\n const start_end_x_dist = startPoint[0] - endPoint[0];\n const mid_end_x_dist = midPoint[0] - endPoint[0];\n const start_mid_y_dist = startPoint[1] - midPoint[1];\n const start_end_y_dist = startPoint[1] - endPoint[1];\n const mid_end_y_dist = midPoint[1] - endPoint[1];\n const start_mid_z_dist = startPoint[2] - midPoint[2];\n const start_end_z_dist = startPoint[2] - endPoint[2];\n const mid_end_z_dist = midPoint[2] - endPoint[2];\n const start_mid_dist = Math.sqrt(start_mid_x_dist * start_mid_x_dist + start_mid_y_dist * start_mid_y_dist + start_mid_z_dist * start_mid_z_dist);\n const start_end_dist = Math.sqrt(start_end_x_dist * start_end_x_dist + start_end_y_dist * start_end_y_dist + start_end_z_dist * start_end_z_dist);\n const mid_end_dist = Math.sqrt(mid_end_x_dist * mid_end_x_dist + mid_end_y_dist * mid_end_y_dist + mid_end_z_dist * mid_end_z_dist);\n let cos_in = (mid_end_dist * mid_end_dist + start_mid_dist * start_mid_dist - start_end_dist * start_end_dist) / (2 * mid_end_dist * start_mid_dist);\n if (cos_in > 1)\n cos_in = 1;\n else if (cos_in < -1)\n cos_in = -1;\n let angleOfCurve = Math.acos(cos_in);\n angleOfCurve = 57.2958 * angleOfCurve % 180;\n let fingerCurl;\n if (angleOfCurve > options3.NO_CURL_START_LIMIT)\n fingerCurl = FingerCurl.none;\n else if (angleOfCurve > options3.HALF_CURL_START_LIMIT)\n fingerCurl = FingerCurl.half;\n else\n fingerCurl = FingerCurl.full;\n return fingerCurl;\n}\nfunction estimateHorizontalDirection(start_end_x_dist, start_mid_x_dist, mid_end_x_dist, max_dist_x) {\n let estimatedDirection;\n if (max_dist_x === Math.abs(start_end_x_dist)) {\n if (start_end_x_dist > 0)\n estimatedDirection = FingerDirection.horizontalLeft;\n else\n estimatedDirection = FingerDirection.horizontalRight;\n } else if (max_dist_x === Math.abs(start_mid_x_dist)) {\n if (start_mid_x_dist > 0)\n estimatedDirection = FingerDirection.horizontalLeft;\n else\n estimatedDirection = FingerDirection.horizontalRight;\n } else {\n if (mid_end_x_dist > 0)\n estimatedDirection = FingerDirection.horizontalLeft;\n else\n estimatedDirection = FingerDirection.horizontalRight;\n }\n return estimatedDirection;\n}\nfunction estimateVerticalDirection(start_end_y_dist, start_mid_y_dist, mid_end_y_dist, max_dist_y) {\n let estimatedDirection;\n if (max_dist_y === Math.abs(start_end_y_dist)) {\n if (start_end_y_dist < 0)\n estimatedDirection = FingerDirection.verticalDown;\n else\n estimatedDirection = FingerDirection.verticalUp;\n } else if (max_dist_y === Math.abs(start_mid_y_dist)) {\n if (start_mid_y_dist < 0)\n estimatedDirection = FingerDirection.verticalDown;\n else\n estimatedDirection = FingerDirection.verticalUp;\n } else {\n if (mid_end_y_dist < 0)\n estimatedDirection = FingerDirection.verticalDown;\n else\n estimatedDirection = FingerDirection.verticalUp;\n }\n return estimatedDirection;\n}\nfunction estimateDiagonalDirection(start_end_y_dist, start_mid_y_dist, mid_end_y_dist, max_dist_y, start_end_x_dist, start_mid_x_dist, mid_end_x_dist, max_dist_x) {\n let estimatedDirection;\n const reqd_vertical_direction = estimateVerticalDirection(start_end_y_dist, start_mid_y_dist, mid_end_y_dist, max_dist_y);\n const reqd_horizontal_direction = estimateHorizontalDirection(start_end_x_dist, start_mid_x_dist, mid_end_x_dist, max_dist_x);\n if (reqd_vertical_direction === FingerDirection.verticalUp) {\n if (reqd_horizontal_direction === FingerDirection.horizontalLeft)\n estimatedDirection = FingerDirection.diagonalUpLeft;\n else\n estimatedDirection = FingerDirection.diagonalUpRight;\n } else {\n if (reqd_horizontal_direction === FingerDirection.horizontalLeft)\n estimatedDirection = FingerDirection.diagonalDownLeft;\n else\n estimatedDirection = FingerDirection.diagonalDownRight;\n }\n return estimatedDirection;\n}\nfunction calculateFingerDirection(startPoint, midPoint, endPoint, fingerSlopes) {\n const start_mid_x_dist = startPoint[0] - midPoint[0];\n const start_end_x_dist = startPoint[0] - endPoint[0];\n const mid_end_x_dist = midPoint[0] - endPoint[0];\n const start_mid_y_dist = startPoint[1] - midPoint[1];\n const start_end_y_dist = startPoint[1] - endPoint[1];\n const mid_end_y_dist = midPoint[1] - endPoint[1];\n const max_dist_x = Math.max(Math.abs(start_mid_x_dist), Math.abs(start_end_x_dist), Math.abs(mid_end_x_dist));\n const max_dist_y = Math.max(Math.abs(start_mid_y_dist), Math.abs(start_end_y_dist), Math.abs(mid_end_y_dist));\n let voteVertical = 0;\n let voteDiagonal = 0;\n let voteHorizontal = 0;\n const start_end_x_y_dist_ratio = max_dist_y / (max_dist_x + 1e-5);\n if (start_end_x_y_dist_ratio > 1.5)\n voteVertical += options3.DISTANCE_VOTE_POWER;\n else if (start_end_x_y_dist_ratio > 0.66)\n voteDiagonal += options3.DISTANCE_VOTE_POWER;\n else\n voteHorizontal += options3.DISTANCE_VOTE_POWER;\n const start_mid_dist = Math.sqrt(start_mid_x_dist * start_mid_x_dist + start_mid_y_dist * start_mid_y_dist);\n const start_end_dist = Math.sqrt(start_end_x_dist * start_end_x_dist + start_end_y_dist * start_end_y_dist);\n const mid_end_dist = Math.sqrt(mid_end_x_dist * mid_end_x_dist + mid_end_y_dist * mid_end_y_dist);\n const max_dist = Math.max(start_mid_dist, start_end_dist, mid_end_dist);\n let calc_start_point_x = startPoint[0];\n let calc_start_point_y = startPoint[1];\n let calc_end_point_x = endPoint[0];\n let calc_end_point_y = endPoint[1];\n if (max_dist === start_mid_dist) {\n calc_end_point_x = endPoint[0];\n calc_end_point_y = endPoint[1];\n } else if (max_dist === mid_end_dist) {\n calc_start_point_x = midPoint[0];\n calc_start_point_y = midPoint[1];\n }\n const calcStartPoint = [calc_start_point_x, calc_start_point_y];\n const calcEndPoint = [calc_end_point_x, calc_end_point_y];\n const totalAngle = getSlopes(calcStartPoint, calcEndPoint);\n const votes = angleOrientationAt(totalAngle, options3.TOTAL_ANGLE_VOTE_POWER);\n voteVertical += votes[0];\n voteDiagonal += votes[1];\n voteHorizontal += votes[2];\n for (const fingerSlope of fingerSlopes) {\n const fingerVotes = angleOrientationAt(fingerSlope, options3.SINGLE_ANGLE_VOTE_POWER);\n voteVertical += fingerVotes[0];\n voteDiagonal += fingerVotes[1];\n voteHorizontal += fingerVotes[2];\n }\n let estimatedDirection;\n if (voteVertical === Math.max(voteVertical, voteDiagonal, voteHorizontal)) {\n estimatedDirection = estimateVerticalDirection(start_end_y_dist, start_mid_y_dist, mid_end_y_dist, max_dist_y);\n } else if (voteHorizontal === Math.max(voteDiagonal, voteHorizontal)) {\n estimatedDirection = estimateHorizontalDirection(start_end_x_dist, start_mid_x_dist, mid_end_x_dist, max_dist_x);\n } else {\n estimatedDirection = estimateDiagonalDirection(start_end_y_dist, start_mid_y_dist, mid_end_y_dist, max_dist_y, start_end_x_dist, start_mid_x_dist, mid_end_x_dist, max_dist_x);\n }\n return estimatedDirection;\n}\nfunction estimate(landmarks) {\n const slopesXY = [];\n const slopesYZ = [];\n const fingerCurls = [];\n const fingerDirections = [];\n if (!landmarks)\n return { curls: fingerCurls, directions: fingerDirections };\n for (const finger of Finger.all) {\n const points = Finger.getPoints(finger);\n const slopeAtXY = [];\n const slopeAtYZ = [];\n for (const point2 of points) {\n const point1 = landmarks[point2[0]];\n const point22 = landmarks[point2[1]];\n const slopes = getSlopes(point1, point22);\n const slopeXY = slopes[0];\n const slopeYZ = slopes[1];\n slopeAtXY.push(slopeXY);\n slopeAtYZ.push(slopeYZ);\n }\n slopesXY.push(slopeAtXY);\n slopesYZ.push(slopeAtYZ);\n }\n for (const finger of Finger.all) {\n const pointIndexAt = finger === Finger.thumb ? 1 : 0;\n const fingerPointsAt = Finger.getPoints(finger);\n const startPoint = landmarks[fingerPointsAt[pointIndexAt][0]];\n const midPoint = landmarks[fingerPointsAt[pointIndexAt + 1][1]];\n const endPoint = landmarks[fingerPointsAt[3][1]];\n const fingerCurled = estimateFingerCurl(startPoint, midPoint, endPoint);\n const fingerPosition = calculateFingerDirection(startPoint, midPoint, endPoint, slopesXY[finger].slice(pointIndexAt));\n fingerCurls[finger] = fingerCurled;\n fingerDirections[finger] = fingerPosition;\n }\n return { curls: fingerCurls, directions: fingerDirections };\n}\nfunction analyze(keypoints) {\n if (!keypoints || keypoints.length === 0)\n return null;\n const estimatorRes = estimate(keypoints);\n const landmarks = {};\n for (const fingerIdx of Finger.all) {\n landmarks[Finger.getName(fingerIdx)] = {\n curl: FingerCurl.getName(estimatorRes.curls[fingerIdx]),\n direction: FingerDirection.getName(estimatorRes.directions[fingerIdx])\n };\n }\n return landmarks;\n}\nfunction match(keypoints) {\n const poses = [];\n if (!keypoints || keypoints.length === 0)\n return poses;\n const estimatorRes = estimate(keypoints);\n for (const gesture2 of fingergesture_default) {\n const confidence = gesture2.matchAgainst(estimatorRes.curls, estimatorRes.directions);\n if (confidence >= minConfidence)\n poses.push({ name: gesture2.name, confidence });\n }\n return poses;\n}\n\n// src/gesture/gesture.ts\nvar body2 = (res) => {\n if (!res)\n return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const leftWrist = res[i].keypoints.find((a) => a.part === \"leftWrist\");\n const rightWrist = res[i].keypoints.find((a) => a.part === \"rightWrist\");\n const nose = res[i].keypoints.find((a) => a.part === \"nose\");\n if (nose && leftWrist && rightWrist && leftWrist.position[1] < nose.position[1] && rightWrist.position[1] < nose.position[1])\n gestures.push({ body: i, gesture: \"i give up\" });\n else if (nose && leftWrist && leftWrist.position[1] < nose.position[1])\n gestures.push({ body: i, gesture: \"raise left hand\" });\n else if (nose && rightWrist && rightWrist.position[1] < nose.position[1])\n gestures.push({ body: i, gesture: \"raise right hand\" });\n const leftShoulder = res[i].keypoints.find((a) => a.part === \"leftShoulder\");\n const rightShoulder = res[i].keypoints.find((a) => a.part === \"rightShoulder\");\n if (leftShoulder && rightShoulder && Math.abs(leftShoulder.positionRaw[1] - rightShoulder.positionRaw[1]) > 0.1) {\n gestures.push({ body: i, gesture: `leaning ${leftShoulder.position[1] > rightShoulder.position[1] ? \"left\" : \"right\"}` });\n }\n }\n return gestures;\n};\nvar face2 = (res) => {\n if (!res)\n return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 450) {\n const zDiff = (res[i].mesh[33][2] || 0) - (res[i].mesh[263][2] || 0);\n const xDiff = res[i].mesh[33][0] - res[i].mesh[263][0];\n if (Math.abs(zDiff / xDiff) <= 0.15)\n gestures.push({ face: i, gesture: \"facing center\" });\n else\n gestures.push({ face: i, gesture: `facing ${zDiff < 0 ? \"left\" : \"right\"}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]);\n if (openLeft < 0.2)\n gestures.push({ face: i, gesture: \"blink left eye\" });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]);\n if (openRight < 0.2)\n gestures.push({ face: i, gesture: \"blink right eye\" });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10)\n gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2] || 0;\n if (Math.abs(chinDepth) > 10)\n gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? \"up\" : \"down\"}` });\n }\n }\n return gestures;\n};\nvar iris2 = (res) => {\n var _a, _b, _c2, _d2;\n if (!res)\n return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!((_b = (_a = res[i].annotations) == null ? void 0 : _a.leftEyeIris) == null ? void 0 : _b[0]) || !((_d2 = (_c2 = res[i].annotations) == null ? void 0 : _c2.rightEyeIris) == null ? void 0 : _d2[0]))\n continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n let center = false;\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) {\n center = true;\n gestures.push({ iris: i, gesture: \"facing center\" });\n }\n const leftIrisCenterX = Math.abs(res[i].mesh[263][0] - res[i].annotations.leftEyeIris[0][0]) / res[i].box[2];\n const rightIrisCenterX = Math.abs(res[i].mesh[33][0] - res[i].annotations.rightEyeIris[0][0]) / res[i].box[2];\n if (leftIrisCenterX > 0.06 || rightIrisCenterX > 0.06)\n center = false;\n if (leftIrisCenterX > rightIrisCenterX) {\n if (rightIrisCenterX > 0.04)\n gestures.push({ iris: i, gesture: \"looking right\" });\n } else {\n if (leftIrisCenterX > 0.04)\n gestures.push({ iris: i, gesture: \"looking left\" });\n }\n const rightIrisCenterY = Math.abs(res[i].mesh[145][1] - res[i].annotations.rightEyeIris[0][1]) / res[i].box[3];\n const leftIrisCenterY = Math.abs(res[i].mesh[374][1] - res[i].annotations.leftEyeIris[0][1]) / res[i].box[3];\n if (leftIrisCenterY < 0.01 || rightIrisCenterY < 0.01 || leftIrisCenterY > 0.022 || rightIrisCenterY > 0.022)\n center = false;\n if (leftIrisCenterY < 0.01 || rightIrisCenterY < 0.01)\n gestures.push({ iris: i, gesture: \"looking down\" });\n if (leftIrisCenterY > 0.022 || rightIrisCenterY > 0.022)\n gestures.push({ iris: i, gesture: \"looking up\" });\n if (center)\n gestures.push({ iris: i, gesture: \"looking center\" });\n }\n return gestures;\n};\nvar hand2 = (res) => {\n if (!res)\n return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n if (res[i].annotations) {\n for (const [finger, pos] of Object.entries(res[i].annotations)) {\n if (finger !== \"palmBase\" && Array.isArray(pos) && pos[0])\n fingers.push({ name: finger.toLowerCase(), position: pos[0] });\n }\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] || 0) < (a.position[2] || 0) ? best : a);\n gestures.push({ hand: i, gesture: `${closest.name} forward` });\n const highest = fingers.reduce((best, a) => best.position[1] < a.position[1] ? best : a);\n gestures.push({ hand: i, gesture: `${highest.name} up` });\n }\n if (res[i].keypoints) {\n const poses = match(res[i].keypoints);\n for (const pose of poses)\n gestures.push({ hand: i, gesture: pose.name });\n }\n }\n return gestures;\n};\n\n// src/hand/handposeutil.ts\nfunction getBoxSize2(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1])\n ];\n}\nfunction getBoxCenter2(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w10 = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w10,\n box.endPoint[1] / h,\n box.endPoint[0] / w10\n ]];\n return Kj.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates2(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox2(box, factor = 1.5) {\n const center = getBoxCenter2(box);\n const size2 = getBoxSize2(box);\n const newHalfSize = [factor * size2[0] / 2, factor * size2[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox2(box) {\n const centers = getBoxCenter2(box);\n const size2 = getBoxSize2(box);\n const maxEdge = Math.max(...size2);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction normalizeRadians2(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation2(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians2(radians);\n}\nvar buildTranslationMatrix2 = (x, y8) => [[1, 0, x], [0, 1, y8], [0, 0, 1]];\nfunction dot2(v12, v22) {\n let product = 0;\n for (let i = 0; i < v12.length; i++) {\n product += v12[i] * v22[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr2(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices2(mat1, mat2) {\n const product = [];\n const size2 = mat1.length;\n for (let row = 0; row < size2; row++) {\n product.push([]);\n for (let col = 0; col < size2; col++) {\n product[row].push(dot2(mat1[row], getColumnFrom2DArr2(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix2(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix2(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices2(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix2(-center[0], -center[1]);\n return multiplyTransformMatrices2(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix2(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot2(rotationComponent[0], translationComponent),\n -dot2(rotationComponent[1], translationComponent)\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1]\n ];\n}\nfunction rotatePoint2(homogeneousCoordinate, rotationMatrix) {\n return [\n dot2(homogeneousCoordinate, rotationMatrix[0]),\n dot2(homogeneousCoordinate, rotationMatrix[1])\n ];\n}\n\n// src/hand/handposeanchors.ts\nvar anchors2 = [\n { x: 0.015625, y: 0.015625 },\n { x: 0.015625, y: 0.015625 },\n { x: 0.046875, y: 0.015625 },\n { x: 0.046875, y: 0.015625 },\n { x: 0.078125, y: 0.015625 },\n { x: 0.078125, y: 0.015625 },\n { x: 0.109375, y: 0.015625 },\n { x: 0.109375, y: 0.015625 },\n { x: 0.140625, y: 0.015625 },\n { x: 0.140625, y: 0.015625 },\n { x: 0.171875, y: 0.015625 },\n { x: 0.171875, y: 0.015625 },\n { x: 0.203125, y: 0.015625 },\n { x: 0.203125, y: 0.015625 },\n { x: 0.234375, y: 0.015625 },\n { x: 0.234375, y: 0.015625 },\n { x: 0.265625, y: 0.015625 },\n { x: 0.265625, y: 0.015625 },\n { x: 0.296875, y: 0.015625 },\n { x: 0.296875, y: 0.015625 },\n { x: 0.328125, y: 0.015625 },\n { x: 0.328125, y: 0.015625 },\n { x: 0.359375, y: 0.015625 },\n { x: 0.359375, y: 0.015625 },\n { x: 0.390625, y: 0.015625 },\n { x: 0.390625, y: 0.015625 },\n { x: 0.421875, y: 0.015625 },\n { x: 0.421875, y: 0.015625 },\n { x: 0.453125, y: 0.015625 },\n { x: 0.453125, y: 0.015625 },\n { x: 0.484375, y: 0.015625 },\n { x: 0.484375, y: 0.015625 },\n { x: 0.515625, y: 0.015625 },\n { x: 0.515625, y: 0.015625 },\n { x: 0.546875, y: 0.015625 },\n { x: 0.546875, y: 0.015625 },\n { x: 0.578125, y: 0.015625 },\n { x: 0.578125, y: 0.015625 },\n { x: 0.609375, y: 0.015625 },\n { x: 0.609375, y: 0.015625 },\n { x: 0.640625, y: 0.015625 },\n { x: 0.640625, y: 0.015625 },\n { x: 0.671875, y: 0.015625 },\n { x: 0.671875, y: 0.015625 },\n { x: 0.703125, y: 0.015625 },\n { x: 0.703125, y: 0.015625 },\n { x: 0.734375, y: 0.015625 },\n { x: 0.734375, y: 0.015625 },\n { x: 0.765625, y: 0.015625 },\n { x: 0.765625, y: 0.015625 },\n { x: 0.796875, y: 0.015625 },\n { x: 0.796875, y: 0.015625 },\n { x: 0.828125, y: 0.015625 },\n { x: 0.828125, y: 0.015625 },\n { x: 0.859375, y: 0.015625 },\n { x: 0.859375, y: 0.015625 },\n { x: 0.890625, y: 0.015625 },\n { x: 0.890625, y: 0.015625 },\n { x: 0.921875, y: 0.015625 },\n { x: 0.921875, y: 0.015625 },\n { x: 0.953125, y: 0.015625 },\n { x: 0.953125, y: 0.015625 },\n { x: 0.984375, y: 0.015625 },\n { x: 0.984375, y: 0.015625 },\n { x: 0.015625, y: 0.046875 },\n { x: 0.015625, y: 0.046875 },\n { x: 0.046875, y: 0.046875 },\n { x: 0.046875, y: 0.046875 },\n { x: 0.078125, y: 0.046875 },\n { x: 0.078125, y: 0.046875 },\n { x: 0.109375, y: 0.046875 },\n { x: 0.109375, y: 0.046875 },\n { x: 0.140625, y: 0.046875 },\n { x: 0.140625, y: 0.046875 },\n { x: 0.171875, y: 0.046875 },\n { x: 0.171875, y: 0.046875 },\n { x: 0.203125, y: 0.046875 },\n { x: 0.203125, y: 0.046875 },\n { x: 0.234375, y: 0.046875 },\n { x: 0.234375, y: 0.046875 },\n { x: 0.265625, y: 0.046875 },\n { x: 0.265625, y: 0.046875 },\n { x: 0.296875, y: 0.046875 },\n { x: 0.296875, y: 0.046875 },\n { x: 0.328125, y: 0.046875 },\n { x: 0.328125, y: 0.046875 },\n { x: 0.359375, y: 0.046875 },\n { x: 0.359375, y: 0.046875 },\n { x: 0.390625, y: 0.046875 },\n { x: 0.390625, y: 0.046875 },\n { x: 0.421875, y: 0.046875 },\n { x: 0.421875, y: 0.046875 },\n { x: 0.453125, y: 0.046875 },\n { x: 0.453125, y: 0.046875 },\n { x: 0.484375, y: 0.046875 },\n { x: 0.484375, y: 0.046875 },\n { x: 0.515625, y: 0.046875 },\n { x: 0.515625, y: 0.046875 },\n { x: 0.546875, y: 0.046875 },\n { x: 0.546875, y: 0.046875 },\n { x: 0.578125, y: 0.046875 },\n { x: 0.578125, y: 0.046875 },\n { x: 0.609375, y: 0.046875 },\n { x: 0.609375, y: 0.046875 },\n { x: 0.640625, y: 0.046875 },\n { x: 0.640625, y: 0.046875 },\n { x: 0.671875, y: 0.046875 },\n { x: 0.671875, y: 0.046875 },\n { x: 0.703125, y: 0.046875 },\n { x: 0.703125, y: 0.046875 },\n { x: 0.734375, y: 0.046875 },\n { x: 0.734375, y: 0.046875 },\n { x: 0.765625, y: 0.046875 },\n { x: 0.765625, y: 0.046875 },\n { x: 0.796875, y: 0.046875 },\n { x: 0.796875, y: 0.046875 },\n { x: 0.828125, y: 0.046875 },\n { x: 0.828125, y: 0.046875 },\n { x: 0.859375, y: 0.046875 },\n { x: 0.859375, y: 0.046875 },\n { x: 0.890625, y: 0.046875 },\n { x: 0.890625, y: 0.046875 },\n { x: 0.921875, y: 0.046875 },\n { x: 0.921875, y: 0.046875 },\n { x: 0.953125, y: 0.046875 },\n { x: 0.953125, y: 0.046875 },\n { x: 0.984375, y: 0.046875 },\n { x: 0.984375, y: 0.046875 },\n { x: 0.015625, y: 0.078125 },\n { x: 0.015625, y: 0.078125 },\n { x: 0.046875, y: 0.078125 },\n { x: 0.046875, y: 0.078125 },\n { x: 0.078125, y: 0.078125 },\n { x: 0.078125, y: 0.078125 },\n { x: 0.109375, y: 0.078125 },\n { x: 0.109375, y: 0.078125 },\n { x: 0.140625, y: 0.078125 },\n { x: 0.140625, y: 0.078125 },\n { x: 0.171875, y: 0.078125 },\n { x: 0.171875, y: 0.078125 },\n { x: 0.203125, y: 0.078125 },\n { x: 0.203125, y: 0.078125 },\n { x: 0.234375, y: 0.078125 },\n { x: 0.234375, y: 0.078125 },\n { x: 0.265625, y: 0.078125 },\n { x: 0.265625, y: 0.078125 },\n { x: 0.296875, y: 0.078125 },\n { x: 0.296875, y: 0.078125 },\n { x: 0.328125, y: 0.078125 },\n { x: 0.328125, y: 0.078125 },\n { x: 0.359375, y: 0.078125 },\n { x: 0.359375, y: 0.078125 },\n { x: 0.390625, y: 0.078125 },\n { x: 0.390625, y: 0.078125 },\n { x: 0.421875, y: 0.078125 },\n { x: 0.421875, y: 0.078125 },\n { x: 0.453125, y: 0.078125 },\n { x: 0.453125, y: 0.078125 },\n { x: 0.484375, y: 0.078125 },\n { x: 0.484375, y: 0.078125 },\n { x: 0.515625, y: 0.078125 },\n { x: 0.515625, y: 0.078125 },\n { x: 0.546875, y: 0.078125 },\n { x: 0.546875, y: 0.078125 },\n { x: 0.578125, y: 0.078125 },\n { x: 0.578125, y: 0.078125 },\n { x: 0.609375, y: 0.078125 },\n { x: 0.609375, y: 0.078125 },\n { x: 0.640625, y: 0.078125 },\n { x: 0.640625, y: 0.078125 },\n { x: 0.671875, y: 0.078125 },\n { x: 0.671875, y: 0.078125 },\n { x: 0.703125, y: 0.078125 },\n { x: 0.703125, y: 0.078125 },\n { x: 0.734375, y: 0.078125 },\n { x: 0.734375, y: 0.078125 },\n { x: 0.765625, y: 0.078125 },\n { x: 0.765625, y: 0.078125 },\n { x: 0.796875, y: 0.078125 },\n { x: 0.796875, y: 0.078125 },\n { x: 0.828125, y: 0.078125 },\n { x: 0.828125, y: 0.078125 },\n { x: 0.859375, y: 0.078125 },\n { x: 0.859375, y: 0.078125 },\n { x: 0.890625, y: 0.078125 },\n { x: 0.890625, y: 0.078125 },\n { x: 0.921875, y: 0.078125 },\n { x: 0.921875, y: 0.078125 },\n { x: 0.953125, y: 0.078125 },\n { x: 0.953125, y: 0.078125 },\n { x: 0.984375, y: 0.078125 },\n { x: 0.984375, y: 0.078125 },\n { x: 0.015625, y: 0.109375 },\n { x: 0.015625, y: 0.109375 },\n { x: 0.046875, y: 0.109375 },\n { x: 0.046875, y: 0.109375 },\n { x: 0.078125, y: 0.109375 },\n { x: 0.078125, y: 0.109375 },\n { x: 0.109375, y: 0.109375 },\n { x: 0.109375, y: 0.109375 },\n { x: 0.140625, y: 0.109375 },\n { x: 0.140625, y: 0.109375 },\n { x: 0.171875, y: 0.109375 },\n { x: 0.171875, y: 0.109375 },\n { x: 0.203125, y: 0.109375 },\n { x: 0.203125, y: 0.109375 },\n { x: 0.234375, y: 0.109375 },\n { x: 0.234375, y: 0.109375 },\n { x: 0.265625, y: 0.109375 },\n { x: 0.265625, y: 0.109375 },\n { x: 0.296875, y: 0.109375 },\n { x: 0.296875, y: 0.109375 },\n { x: 0.328125, y: 0.109375 },\n { x: 0.328125, y: 0.109375 },\n { x: 0.359375, y: 0.109375 },\n { x: 0.359375, y: 0.109375 },\n { x: 0.390625, y: 0.109375 },\n { x: 0.390625, y: 0.109375 },\n { x: 0.421875, y: 0.109375 },\n { x: 0.421875, y: 0.109375 },\n { x: 0.453125, y: 0.109375 },\n { x: 0.453125, y: 0.109375 },\n { x: 0.484375, y: 0.109375 },\n { x: 0.484375, y: 0.109375 },\n { x: 0.515625, y: 0.109375 },\n { x: 0.515625, y: 0.109375 },\n { x: 0.546875, y: 0.109375 },\n { x: 0.546875, y: 0.109375 },\n { x: 0.578125, y: 0.109375 },\n { x: 0.578125, y: 0.109375 },\n { x: 0.609375, y: 0.109375 },\n { x: 0.609375, y: 0.109375 },\n { x: 0.640625, y: 0.109375 },\n { x: 0.640625, y: 0.109375 },\n { x: 0.671875, y: 0.109375 },\n { x: 0.671875, y: 0.109375 },\n { x: 0.703125, y: 0.109375 },\n { x: 0.703125, y: 0.109375 },\n { x: 0.734375, y: 0.109375 },\n { x: 0.734375, y: 0.109375 },\n { x: 0.765625, y: 0.109375 },\n { x: 0.765625, y: 0.109375 },\n { x: 0.796875, y: 0.109375 },\n { x: 0.796875, y: 0.109375 },\n { x: 0.828125, y: 0.109375 },\n { x: 0.828125, y: 0.109375 },\n { x: 0.859375, y: 0.109375 },\n { x: 0.859375, y: 0.109375 },\n { x: 0.890625, y: 0.109375 },\n { x: 0.890625, y: 0.109375 },\n { x: 0.921875, y: 0.109375 },\n { x: 0.921875, y: 0.109375 },\n { x: 0.953125, y: 0.109375 },\n { x: 0.953125, y: 0.109375 },\n { x: 0.984375, y: 0.109375 },\n { x: 0.984375, y: 0.109375 },\n { x: 0.015625, y: 0.140625 },\n { x: 0.015625, y: 0.140625 },\n { x: 0.046875, y: 0.140625 },\n { x: 0.046875, y: 0.140625 },\n { x: 0.078125, y: 0.140625 },\n { x: 0.078125, y: 0.140625 },\n { x: 0.109375, y: 0.140625 },\n { x: 0.109375, y: 0.140625 },\n { x: 0.140625, y: 0.140625 },\n { x: 0.140625, y: 0.140625 },\n { x: 0.171875, y: 0.140625 },\n { x: 0.171875, y: 0.140625 },\n { x: 0.203125, y: 0.140625 },\n { x: 0.203125, y: 0.140625 },\n { x: 0.234375, y: 0.140625 },\n { x: 0.234375, y: 0.140625 },\n { x: 0.265625, y: 0.140625 },\n { x: 0.265625, y: 0.140625 },\n { x: 0.296875, y: 0.140625 },\n { x: 0.296875, y: 0.140625 },\n { x: 0.328125, y: 0.140625 },\n { x: 0.328125, y: 0.140625 },\n { x: 0.359375, y: 0.140625 },\n { x: 0.359375, y: 0.140625 },\n { x: 0.390625, y: 0.140625 },\n { x: 0.390625, y: 0.140625 },\n { x: 0.421875, y: 0.140625 },\n { x: 0.421875, y: 0.140625 },\n { x: 0.453125, y: 0.140625 },\n { x: 0.453125, y: 0.140625 },\n { x: 0.484375, y: 0.140625 },\n { x: 0.484375, y: 0.140625 },\n { x: 0.515625, y: 0.140625 },\n { x: 0.515625, y: 0.140625 },\n { x: 0.546875, y: 0.140625 },\n { x: 0.546875, y: 0.140625 },\n { x: 0.578125, y: 0.140625 },\n { x: 0.578125, y: 0.140625 },\n { x: 0.609375, y: 0.140625 },\n { x: 0.609375, y: 0.140625 },\n { x: 0.640625, y: 0.140625 },\n { x: 0.640625, y: 0.140625 },\n { x: 0.671875, y: 0.140625 },\n { x: 0.671875, y: 0.140625 },\n { x: 0.703125, y: 0.140625 },\n { x: 0.703125, y: 0.140625 },\n { x: 0.734375, y: 0.140625 },\n { x: 0.734375, y: 0.140625 },\n { x: 0.765625, y: 0.140625 },\n { x: 0.765625, y: 0.140625 },\n { x: 0.796875, y: 0.140625 },\n { x: 0.796875, y: 0.140625 },\n { x: 0.828125, y: 0.140625 },\n { x: 0.828125, y: 0.140625 },\n { x: 0.859375, y: 0.140625 },\n { x: 0.859375, y: 0.140625 },\n { x: 0.890625, y: 0.140625 },\n { x: 0.890625, y: 0.140625 },\n { x: 0.921875, y: 0.140625 },\n { x: 0.921875, y: 0.140625 },\n { x: 0.953125, y: 0.140625 },\n { x: 0.953125, y: 0.140625 },\n { x: 0.984375, y: 0.140625 },\n { x: 0.984375, y: 0.140625 },\n { x: 0.015625, y: 0.171875 },\n { x: 0.015625, y: 0.171875 },\n { x: 0.046875, y: 0.171875 },\n { x: 0.046875, y: 0.171875 },\n { x: 0.078125, y: 0.171875 },\n { x: 0.078125, y: 0.171875 },\n { x: 0.109375, y: 0.171875 },\n { x: 0.109375, y: 0.171875 },\n { x: 0.140625, y: 0.171875 },\n { x: 0.140625, y: 0.171875 },\n { x: 0.171875, y: 0.171875 },\n { x: 0.171875, y: 0.171875 },\n { x: 0.203125, y: 0.171875 },\n { x: 0.203125, y: 0.171875 },\n { x: 0.234375, y: 0.171875 },\n { x: 0.234375, y: 0.171875 },\n { x: 0.265625, y: 0.171875 },\n { x: 0.265625, y: 0.171875 },\n { x: 0.296875, y: 0.171875 },\n { x: 0.296875, y: 0.171875 },\n { x: 0.328125, y: 0.171875 },\n { x: 0.328125, y: 0.171875 },\n { x: 0.359375, y: 0.171875 },\n { x: 0.359375, y: 0.171875 },\n { x: 0.390625, y: 0.171875 },\n { x: 0.390625, y: 0.171875 },\n { x: 0.421875, y: 0.171875 },\n { x: 0.421875, y: 0.171875 },\n { x: 0.453125, y: 0.171875 },\n { x: 0.453125, y: 0.171875 },\n { x: 0.484375, y: 0.171875 },\n { x: 0.484375, y: 0.171875 },\n { x: 0.515625, y: 0.171875 },\n { x: 0.515625, y: 0.171875 },\n { x: 0.546875, y: 0.171875 },\n { x: 0.546875, y: 0.171875 },\n { x: 0.578125, y: 0.171875 },\n { x: 0.578125, y: 0.171875 },\n { x: 0.609375, y: 0.171875 },\n { x: 0.609375, y: 0.171875 },\n { x: 0.640625, y: 0.171875 },\n { x: 0.640625, y: 0.171875 },\n { x: 0.671875, y: 0.171875 },\n { x: 0.671875, y: 0.171875 },\n { x: 0.703125, y: 0.171875 },\n { x: 0.703125, y: 0.171875 },\n { x: 0.734375, y: 0.171875 },\n { x: 0.734375, y: 0.171875 },\n { x: 0.765625, y: 0.171875 },\n { x: 0.765625, y: 0.171875 },\n { x: 0.796875, y: 0.171875 },\n { x: 0.796875, y: 0.171875 },\n { x: 0.828125, y: 0.171875 },\n { x: 0.828125, y: 0.171875 },\n { x: 0.859375, y: 0.171875 },\n { x: 0.859375, y: 0.171875 },\n { x: 0.890625, y: 0.171875 },\n { x: 0.890625, y: 0.171875 },\n { x: 0.921875, y: 0.171875 },\n { x: 0.921875, y: 0.171875 },\n { x: 0.953125, y: 0.171875 },\n { x: 0.953125, y: 0.171875 },\n { x: 0.984375, y: 0.171875 },\n { x: 0.984375, y: 0.171875 },\n { x: 0.015625, y: 0.203125 },\n { x: 0.015625, y: 0.203125 },\n { x: 0.046875, y: 0.203125 },\n { x: 0.046875, y: 0.203125 },\n { x: 0.078125, y: 0.203125 },\n { x: 0.078125, y: 0.203125 },\n { x: 0.109375, y: 0.203125 },\n { x: 0.109375, y: 0.203125 },\n { x: 0.140625, y: 0.203125 },\n { x: 0.140625, y: 0.203125 },\n { x: 0.171875, y: 0.203125 },\n { x: 0.171875, y: 0.203125 },\n { x: 0.203125, y: 0.203125 },\n { x: 0.203125, y: 0.203125 },\n { x: 0.234375, y: 0.203125 },\n { x: 0.234375, y: 0.203125 },\n { x: 0.265625, y: 0.203125 },\n { x: 0.265625, y: 0.203125 },\n { x: 0.296875, y: 0.203125 },\n { x: 0.296875, y: 0.203125 },\n { x: 0.328125, y: 0.203125 },\n { x: 0.328125, y: 0.203125 },\n { x: 0.359375, y: 0.203125 },\n { x: 0.359375, y: 0.203125 },\n { x: 0.390625, y: 0.203125 },\n { x: 0.390625, y: 0.203125 },\n { x: 0.421875, y: 0.203125 },\n { x: 0.421875, y: 0.203125 },\n { x: 0.453125, y: 0.203125 },\n { x: 0.453125, y: 0.203125 },\n { x: 0.484375, y: 0.203125 },\n { x: 0.484375, y: 0.203125 },\n { x: 0.515625, y: 0.203125 },\n { x: 0.515625, y: 0.203125 },\n { x: 0.546875, y: 0.203125 },\n { x: 0.546875, y: 0.203125 },\n { x: 0.578125, y: 0.203125 },\n { x: 0.578125, y: 0.203125 },\n { x: 0.609375, y: 0.203125 },\n { x: 0.609375, y: 0.203125 },\n { x: 0.640625, y: 0.203125 },\n { x: 0.640625, y: 0.203125 },\n { x: 0.671875, y: 0.203125 },\n { x: 0.671875, y: 0.203125 },\n { x: 0.703125, y: 0.203125 },\n { x: 0.703125, y: 0.203125 },\n { x: 0.734375, y: 0.203125 },\n { x: 0.734375, y: 0.203125 },\n { x: 0.765625, y: 0.203125 },\n { x: 0.765625, y: 0.203125 },\n { x: 0.796875, y: 0.203125 },\n { x: 0.796875, y: 0.203125 },\n { x: 0.828125, y: 0.203125 },\n { x: 0.828125, y: 0.203125 },\n { x: 0.859375, y: 0.203125 },\n { x: 0.859375, y: 0.203125 },\n { x: 0.890625, y: 0.203125 },\n { x: 0.890625, y: 0.203125 },\n { x: 0.921875, y: 0.203125 },\n { x: 0.921875, y: 0.203125 },\n { x: 0.953125, y: 0.203125 },\n { x: 0.953125, y: 0.203125 },\n { x: 0.984375, y: 0.203125 },\n { x: 0.984375, y: 0.203125 },\n { x: 0.015625, y: 0.234375 },\n { x: 0.015625, y: 0.234375 },\n { x: 0.046875, y: 0.234375 },\n { x: 0.046875, y: 0.234375 },\n { x: 0.078125, y: 0.234375 },\n { x: 0.078125, y: 0.234375 },\n { x: 0.109375, y: 0.234375 },\n { x: 0.109375, y: 0.234375 },\n { x: 0.140625, y: 0.234375 },\n { x: 0.140625, y: 0.234375 },\n { x: 0.171875, y: 0.234375 },\n { x: 0.171875, y: 0.234375 },\n { x: 0.203125, y: 0.234375 },\n { x: 0.203125, y: 0.234375 },\n { x: 0.234375, y: 0.234375 },\n { x: 0.234375, y: 0.234375 },\n { x: 0.265625, y: 0.234375 },\n { x: 0.265625, y: 0.234375 },\n { x: 0.296875, y: 0.234375 },\n { x: 0.296875, y: 0.234375 },\n { x: 0.328125, y: 0.234375 },\n { x: 0.328125, y: 0.234375 },\n { x: 0.359375, y: 0.234375 },\n { x: 0.359375, y: 0.234375 },\n { x: 0.390625, y: 0.234375 },\n { x: 0.390625, y: 0.234375 },\n { x: 0.421875, y: 0.234375 },\n { x: 0.421875, y: 0.234375 },\n { x: 0.453125, y: 0.234375 },\n { x: 0.453125, y: 0.234375 },\n { x: 0.484375, y: 0.234375 },\n { x: 0.484375, y: 0.234375 },\n { x: 0.515625, y: 0.234375 },\n { x: 0.515625, y: 0.234375 },\n { x: 0.546875, y: 0.234375 },\n { x: 0.546875, y: 0.234375 },\n { x: 0.578125, y: 0.234375 },\n { x: 0.578125, y: 0.234375 },\n { x: 0.609375, y: 0.234375 },\n { x: 0.609375, y: 0.234375 },\n { x: 0.640625, y: 0.234375 },\n { x: 0.640625, y: 0.234375 },\n { x: 0.671875, y: 0.234375 },\n { x: 0.671875, y: 0.234375 },\n { x: 0.703125, y: 0.234375 },\n { x: 0.703125, y: 0.234375 },\n { x: 0.734375, y: 0.234375 },\n { x: 0.734375, y: 0.234375 },\n { x: 0.765625, y: 0.234375 },\n { x: 0.765625, y: 0.234375 },\n { x: 0.796875, y: 0.234375 },\n { x: 0.796875, y: 0.234375 },\n { x: 0.828125, y: 0.234375 },\n { x: 0.828125, y: 0.234375 },\n { x: 0.859375, y: 0.234375 },\n { x: 0.859375, y: 0.234375 },\n { x: 0.890625, y: 0.234375 },\n { x: 0.890625, y: 0.234375 },\n { x: 0.921875, y: 0.234375 },\n { x: 0.921875, y: 0.234375 },\n { x: 0.953125, y: 0.234375 },\n { x: 0.953125, y: 0.234375 },\n { x: 0.984375, y: 0.234375 },\n { x: 0.984375, y: 0.234375 },\n { x: 0.015625, y: 0.265625 },\n { x: 0.015625, y: 0.265625 },\n { x: 0.046875, y: 0.265625 },\n { x: 0.046875, y: 0.265625 },\n { x: 0.078125, y: 0.265625 },\n { x: 0.078125, y: 0.265625 },\n { x: 0.109375, y: 0.265625 },\n { x: 0.109375, y: 0.265625 },\n { x: 0.140625, y: 0.265625 },\n { x: 0.140625, y: 0.265625 },\n { x: 0.171875, y: 0.265625 },\n { x: 0.171875, y: 0.265625 },\n { x: 0.203125, y: 0.265625 },\n { x: 0.203125, y: 0.265625 },\n { x: 0.234375, y: 0.265625 },\n { x: 0.234375, y: 0.265625 },\n { x: 0.265625, y: 0.265625 },\n { x: 0.265625, y: 0.265625 },\n { x: 0.296875, y: 0.265625 },\n { x: 0.296875, y: 0.265625 },\n { x: 0.328125, y: 0.265625 },\n { x: 0.328125, y: 0.265625 },\n { x: 0.359375, y: 0.265625 },\n { x: 0.359375, y: 0.265625 },\n { x: 0.390625, y: 0.265625 },\n { x: 0.390625, y: 0.265625 },\n { x: 0.421875, y: 0.265625 },\n { x: 0.421875, y: 0.265625 },\n { x: 0.453125, y: 0.265625 },\n { x: 0.453125, y: 0.265625 },\n { x: 0.484375, y: 0.265625 },\n { x: 0.484375, y: 0.265625 },\n { x: 0.515625, y: 0.265625 },\n { x: 0.515625, y: 0.265625 },\n { x: 0.546875, y: 0.265625 },\n { x: 0.546875, y: 0.265625 },\n { x: 0.578125, y: 0.265625 },\n { x: 0.578125, y: 0.265625 },\n { x: 0.609375, y: 0.265625 },\n { x: 0.609375, y: 0.265625 },\n { x: 0.640625, y: 0.265625 },\n { x: 0.640625, y: 0.265625 },\n { x: 0.671875, y: 0.265625 },\n { x: 0.671875, y: 0.265625 },\n { x: 0.703125, y: 0.265625 },\n { x: 0.703125, y: 0.265625 },\n { x: 0.734375, y: 0.265625 },\n { x: 0.734375, y: 0.265625 },\n { x: 0.765625, y: 0.265625 },\n { x: 0.765625, y: 0.265625 },\n { x: 0.796875, y: 0.265625 },\n { x: 0.796875, y: 0.265625 },\n { x: 0.828125, y: 0.265625 },\n { x: 0.828125, y: 0.265625 },\n { x: 0.859375, y: 0.265625 },\n { x: 0.859375, y: 0.265625 },\n { x: 0.890625, y: 0.265625 },\n { x: 0.890625, y: 0.265625 },\n { x: 0.921875, y: 0.265625 },\n { x: 0.921875, y: 0.265625 },\n { x: 0.953125, y: 0.265625 },\n { x: 0.953125, y: 0.265625 },\n { x: 0.984375, y: 0.265625 },\n { x: 0.984375, y: 0.265625 },\n { x: 0.015625, y: 0.296875 },\n { x: 0.015625, y: 0.296875 },\n { x: 0.046875, y: 0.296875 },\n { x: 0.046875, y: 0.296875 },\n { x: 0.078125, y: 0.296875 },\n { x: 0.078125, y: 0.296875 },\n { x: 0.109375, y: 0.296875 },\n { x: 0.109375, y: 0.296875 },\n { x: 0.140625, y: 0.296875 },\n { x: 0.140625, y: 0.296875 },\n { x: 0.171875, y: 0.296875 },\n { x: 0.171875, y: 0.296875 },\n { x: 0.203125, y: 0.296875 },\n { x: 0.203125, y: 0.296875 },\n { x: 0.234375, y: 0.296875 },\n { x: 0.234375, y: 0.296875 },\n { x: 0.265625, y: 0.296875 },\n { x: 0.265625, y: 0.296875 },\n { x: 0.296875, y: 0.296875 },\n { x: 0.296875, y: 0.296875 },\n { x: 0.328125, y: 0.296875 },\n { x: 0.328125, y: 0.296875 },\n { x: 0.359375, y: 0.296875 },\n { x: 0.359375, y: 0.296875 },\n { x: 0.390625, y: 0.296875 },\n { x: 0.390625, y: 0.296875 },\n { x: 0.421875, y: 0.296875 },\n { x: 0.421875, y: 0.296875 },\n { x: 0.453125, y: 0.296875 },\n { x: 0.453125, y: 0.296875 },\n { x: 0.484375, y: 0.296875 },\n { x: 0.484375, y: 0.296875 },\n { x: 0.515625, y: 0.296875 },\n { x: 0.515625, y: 0.296875 },\n { x: 0.546875, y: 0.296875 },\n { x: 0.546875, y: 0.296875 },\n { x: 0.578125, y: 0.296875 },\n { x: 0.578125, y: 0.296875 },\n { x: 0.609375, y: 0.296875 },\n { x: 0.609375, y: 0.296875 },\n { x: 0.640625, y: 0.296875 },\n { x: 0.640625, y: 0.296875 },\n { x: 0.671875, y: 0.296875 },\n { x: 0.671875, y: 0.296875 },\n { x: 0.703125, y: 0.296875 },\n { x: 0.703125, y: 0.296875 },\n { x: 0.734375, y: 0.296875 },\n { x: 0.734375, y: 0.296875 },\n { x: 0.765625, y: 0.296875 },\n { x: 0.765625, y: 0.296875 },\n { x: 0.796875, y: 0.296875 },\n { x: 0.796875, y: 0.296875 },\n { x: 0.828125, y: 0.296875 },\n { x: 0.828125, y: 0.296875 },\n { x: 0.859375, y: 0.296875 },\n { x: 0.859375, y: 0.296875 },\n { x: 0.890625, y: 0.296875 },\n { x: 0.890625, y: 0.296875 },\n { x: 0.921875, y: 0.296875 },\n { x: 0.921875, y: 0.296875 },\n { x: 0.953125, y: 0.296875 },\n { x: 0.953125, y: 0.296875 },\n { x: 0.984375, y: 0.296875 },\n { x: 0.984375, y: 0.296875 },\n { x: 0.015625, y: 0.328125 },\n { x: 0.015625, y: 0.328125 },\n { x: 0.046875, y: 0.328125 },\n { x: 0.046875, y: 0.328125 },\n { x: 0.078125, y: 0.328125 },\n { x: 0.078125, y: 0.328125 },\n { x: 0.109375, y: 0.328125 },\n { x: 0.109375, y: 0.328125 },\n { x: 0.140625, y: 0.328125 },\n { x: 0.140625, y: 0.328125 },\n { x: 0.171875, y: 0.328125 },\n { x: 0.171875, y: 0.328125 },\n { x: 0.203125, y: 0.328125 },\n { x: 0.203125, y: 0.328125 },\n { x: 0.234375, y: 0.328125 },\n { x: 0.234375, y: 0.328125 },\n { x: 0.265625, y: 0.328125 },\n { x: 0.265625, y: 0.328125 },\n { x: 0.296875, y: 0.328125 },\n { x: 0.296875, y: 0.328125 },\n { x: 0.328125, y: 0.328125 },\n { x: 0.328125, y: 0.328125 },\n { x: 0.359375, y: 0.328125 },\n { x: 0.359375, y: 0.328125 },\n { x: 0.390625, y: 0.328125 },\n { x: 0.390625, y: 0.328125 },\n { x: 0.421875, y: 0.328125 },\n { x: 0.421875, y: 0.328125 },\n { x: 0.453125, y: 0.328125 },\n { x: 0.453125, y: 0.328125 },\n { x: 0.484375, y: 0.328125 },\n { x: 0.484375, y: 0.328125 },\n { x: 0.515625, y: 0.328125 },\n { x: 0.515625, y: 0.328125 },\n { x: 0.546875, y: 0.328125 },\n { x: 0.546875, y: 0.328125 },\n { x: 0.578125, y: 0.328125 },\n { x: 0.578125, y: 0.328125 },\n { x: 0.609375, y: 0.328125 },\n { x: 0.609375, y: 0.328125 },\n { x: 0.640625, y: 0.328125 },\n { x: 0.640625, y: 0.328125 },\n { x: 0.671875, y: 0.328125 },\n { x: 0.671875, y: 0.328125 },\n { x: 0.703125, y: 0.328125 },\n { x: 0.703125, y: 0.328125 },\n { x: 0.734375, y: 0.328125 },\n { x: 0.734375, y: 0.328125 },\n { x: 0.765625, y: 0.328125 },\n { x: 0.765625, y: 0.328125 },\n { x: 0.796875, y: 0.328125 },\n { x: 0.796875, y: 0.328125 },\n { x: 0.828125, y: 0.328125 },\n { x: 0.828125, y: 0.328125 },\n { x: 0.859375, y: 0.328125 },\n { x: 0.859375, y: 0.328125 },\n { x: 0.890625, y: 0.328125 },\n { x: 0.890625, y: 0.328125 },\n { x: 0.921875, y: 0.328125 },\n { x: 0.921875, y: 0.328125 },\n { x: 0.953125, y: 0.328125 },\n { x: 0.953125, y: 0.328125 },\n { x: 0.984375, y: 0.328125 },\n { x: 0.984375, y: 0.328125 },\n { x: 0.015625, y: 0.359375 },\n { x: 0.015625, y: 0.359375 },\n { x: 0.046875, y: 0.359375 },\n { x: 0.046875, y: 0.359375 },\n { x: 0.078125, y: 0.359375 },\n { x: 0.078125, y: 0.359375 },\n { x: 0.109375, y: 0.359375 },\n { x: 0.109375, y: 0.359375 },\n { x: 0.140625, y: 0.359375 },\n { x: 0.140625, y: 0.359375 },\n { x: 0.171875, y: 0.359375 },\n { x: 0.171875, y: 0.359375 },\n { x: 0.203125, y: 0.359375 },\n { x: 0.203125, y: 0.359375 },\n { x: 0.234375, y: 0.359375 },\n { x: 0.234375, y: 0.359375 },\n { x: 0.265625, y: 0.359375 },\n { x: 0.265625, y: 0.359375 },\n { x: 0.296875, y: 0.359375 },\n { x: 0.296875, y: 0.359375 },\n { x: 0.328125, y: 0.359375 },\n { x: 0.328125, y: 0.359375 },\n { x: 0.359375, y: 0.359375 },\n { x: 0.359375, y: 0.359375 },\n { x: 0.390625, y: 0.359375 },\n { x: 0.390625, y: 0.359375 },\n { x: 0.421875, y: 0.359375 },\n { x: 0.421875, y: 0.359375 },\n { x: 0.453125, y: 0.359375 },\n { x: 0.453125, y: 0.359375 },\n { x: 0.484375, y: 0.359375 },\n { x: 0.484375, y: 0.359375 },\n { x: 0.515625, y: 0.359375 },\n { x: 0.515625, y: 0.359375 },\n { x: 0.546875, y: 0.359375 },\n { x: 0.546875, y: 0.359375 },\n { x: 0.578125, y: 0.359375 },\n { x: 0.578125, y: 0.359375 },\n { x: 0.609375, y: 0.359375 },\n { x: 0.609375, y: 0.359375 },\n { x: 0.640625, y: 0.359375 },\n { x: 0.640625, y: 0.359375 },\n { x: 0.671875, y: 0.359375 },\n { x: 0.671875, y: 0.359375 },\n { x: 0.703125, y: 0.359375 },\n { x: 0.703125, y: 0.359375 },\n { x: 0.734375, y: 0.359375 },\n { x: 0.734375, y: 0.359375 },\n { x: 0.765625, y: 0.359375 },\n { x: 0.765625, y: 0.359375 },\n { x: 0.796875, y: 0.359375 },\n { x: 0.796875, y: 0.359375 },\n { x: 0.828125, y: 0.359375 },\n { x: 0.828125, y: 0.359375 },\n { x: 0.859375, y: 0.359375 },\n { x: 0.859375, y: 0.359375 },\n { x: 0.890625, y: 0.359375 },\n { x: 0.890625, y: 0.359375 },\n { x: 0.921875, y: 0.359375 },\n { x: 0.921875, y: 0.359375 },\n { x: 0.953125, y: 0.359375 },\n { x: 0.953125, y: 0.359375 },\n { x: 0.984375, y: 0.359375 },\n { x: 0.984375, y: 0.359375 },\n { x: 0.015625, y: 0.390625 },\n { x: 0.015625, y: 0.390625 },\n { x: 0.046875, y: 0.390625 },\n { x: 0.046875, y: 0.390625 },\n { x: 0.078125, y: 0.390625 },\n { x: 0.078125, y: 0.390625 },\n { x: 0.109375, y: 0.390625 },\n { x: 0.109375, y: 0.390625 },\n { x: 0.140625, y: 0.390625 },\n { x: 0.140625, y: 0.390625 },\n { x: 0.171875, y: 0.390625 },\n { x: 0.171875, y: 0.390625 },\n { x: 0.203125, y: 0.390625 },\n { x: 0.203125, y: 0.390625 },\n { x: 0.234375, y: 0.390625 },\n { x: 0.234375, y: 0.390625 },\n { x: 0.265625, y: 0.390625 },\n { x: 0.265625, y: 0.390625 },\n { x: 0.296875, y: 0.390625 },\n { x: 0.296875, y: 0.390625 },\n { x: 0.328125, y: 0.390625 },\n { x: 0.328125, y: 0.390625 },\n { x: 0.359375, y: 0.390625 },\n { x: 0.359375, y: 0.390625 },\n { x: 0.390625, y: 0.390625 },\n { x: 0.390625, y: 0.390625 },\n { x: 0.421875, y: 0.390625 },\n { x: 0.421875, y: 0.390625 },\n { x: 0.453125, y: 0.390625 },\n { x: 0.453125, y: 0.390625 },\n { x: 0.484375, y: 0.390625 },\n { x: 0.484375, y: 0.390625 },\n { x: 0.515625, y: 0.390625 },\n { x: 0.515625, y: 0.390625 },\n { x: 0.546875, y: 0.390625 },\n { x: 0.546875, y: 0.390625 },\n { x: 0.578125, y: 0.390625 },\n { x: 0.578125, y: 0.390625 },\n { x: 0.609375, y: 0.390625 },\n { x: 0.609375, y: 0.390625 },\n { x: 0.640625, y: 0.390625 },\n { x: 0.640625, y: 0.390625 },\n { x: 0.671875, y: 0.390625 },\n { x: 0.671875, y: 0.390625 },\n { x: 0.703125, y: 0.390625 },\n { x: 0.703125, y: 0.390625 },\n { x: 0.734375, y: 0.390625 },\n { x: 0.734375, y: 0.390625 },\n { x: 0.765625, y: 0.390625 },\n { x: 0.765625, y: 0.390625 },\n { x: 0.796875, y: 0.390625 },\n { x: 0.796875, y: 0.390625 },\n { x: 0.828125, y: 0.390625 },\n { x: 0.828125, y: 0.390625 },\n { x: 0.859375, y: 0.390625 },\n { x: 0.859375, y: 0.390625 },\n { x: 0.890625, y: 0.390625 },\n { x: 0.890625, y: 0.390625 },\n { x: 0.921875, y: 0.390625 },\n { x: 0.921875, y: 0.390625 },\n { x: 0.953125, y: 0.390625 },\n { x: 0.953125, y: 0.390625 },\n { x: 0.984375, y: 0.390625 },\n { x: 0.984375, y: 0.390625 },\n { x: 0.015625, y: 0.421875 },\n { x: 0.015625, y: 0.421875 },\n { x: 0.046875, y: 0.421875 },\n { x: 0.046875, y: 0.421875 },\n { x: 0.078125, y: 0.421875 },\n { x: 0.078125, y: 0.421875 },\n { x: 0.109375, y: 0.421875 },\n { x: 0.109375, y: 0.421875 },\n { x: 0.140625, y: 0.421875 },\n { x: 0.140625, y: 0.421875 },\n { x: 0.171875, y: 0.421875 },\n { x: 0.171875, y: 0.421875 },\n { x: 0.203125, y: 0.421875 },\n { x: 0.203125, y: 0.421875 },\n { x: 0.234375, y: 0.421875 },\n { x: 0.234375, y: 0.421875 },\n { x: 0.265625, y: 0.421875 },\n { x: 0.265625, y: 0.421875 },\n { x: 0.296875, y: 0.421875 },\n { x: 0.296875, y: 0.421875 },\n { x: 0.328125, y: 0.421875 },\n { x: 0.328125, y: 0.421875 },\n { x: 0.359375, y: 0.421875 },\n { x: 0.359375, y: 0.421875 },\n { x: 0.390625, y: 0.421875 },\n { x: 0.390625, y: 0.421875 },\n { x: 0.421875, y: 0.421875 },\n { x: 0.421875, y: 0.421875 },\n { x: 0.453125, y: 0.421875 },\n { x: 0.453125, y: 0.421875 },\n { x: 0.484375, y: 0.421875 },\n { x: 0.484375, y: 0.421875 },\n { x: 0.515625, y: 0.421875 },\n { x: 0.515625, y: 0.421875 },\n { x: 0.546875, y: 0.421875 },\n { x: 0.546875, y: 0.421875 },\n { x: 0.578125, y: 0.421875 },\n { x: 0.578125, y: 0.421875 },\n { x: 0.609375, y: 0.421875 },\n { x: 0.609375, y: 0.421875 },\n { x: 0.640625, y: 0.421875 },\n { x: 0.640625, y: 0.421875 },\n { x: 0.671875, y: 0.421875 },\n { x: 0.671875, y: 0.421875 },\n { x: 0.703125, y: 0.421875 },\n { x: 0.703125, y: 0.421875 },\n { x: 0.734375, y: 0.421875 },\n { x: 0.734375, y: 0.421875 },\n { x: 0.765625, y: 0.421875 },\n { x: 0.765625, y: 0.421875 },\n { x: 0.796875, y: 0.421875 },\n { x: 0.796875, y: 0.421875 },\n { x: 0.828125, y: 0.421875 },\n { x: 0.828125, y: 0.421875 },\n { x: 0.859375, y: 0.421875 },\n { x: 0.859375, y: 0.421875 },\n { x: 0.890625, y: 0.421875 },\n { x: 0.890625, y: 0.421875 },\n { x: 0.921875, y: 0.421875 },\n { x: 0.921875, y: 0.421875 },\n { x: 0.953125, y: 0.421875 },\n { x: 0.953125, y: 0.421875 },\n { x: 0.984375, y: 0.421875 },\n { x: 0.984375, y: 0.421875 },\n { x: 0.015625, y: 0.453125 },\n { x: 0.015625, y: 0.453125 },\n { x: 0.046875, y: 0.453125 },\n { x: 0.046875, y: 0.453125 },\n { x: 0.078125, y: 0.453125 },\n { x: 0.078125, y: 0.453125 },\n { x: 0.109375, y: 0.453125 },\n { x: 0.109375, y: 0.453125 },\n { x: 0.140625, y: 0.453125 },\n { x: 0.140625, y: 0.453125 },\n { x: 0.171875, y: 0.453125 },\n { x: 0.171875, y: 0.453125 },\n { x: 0.203125, y: 0.453125 },\n { x: 0.203125, y: 0.453125 },\n { x: 0.234375, y: 0.453125 },\n { x: 0.234375, y: 0.453125 },\n { x: 0.265625, y: 0.453125 },\n { x: 0.265625, y: 0.453125 },\n { x: 0.296875, y: 0.453125 },\n { x: 0.296875, y: 0.453125 },\n { x: 0.328125, y: 0.453125 },\n { x: 0.328125, y: 0.453125 },\n { x: 0.359375, y: 0.453125 },\n { x: 0.359375, y: 0.453125 },\n { x: 0.390625, y: 0.453125 },\n { x: 0.390625, y: 0.453125 },\n { x: 0.421875, y: 0.453125 },\n { x: 0.421875, y: 0.453125 },\n { x: 0.453125, y: 0.453125 },\n { x: 0.453125, y: 0.453125 },\n { x: 0.484375, y: 0.453125 },\n { x: 0.484375, y: 0.453125 },\n { x: 0.515625, y: 0.453125 },\n { x: 0.515625, y: 0.453125 },\n { x: 0.546875, y: 0.453125 },\n { x: 0.546875, y: 0.453125 },\n { x: 0.578125, y: 0.453125 },\n { x: 0.578125, y: 0.453125 },\n { x: 0.609375, y: 0.453125 },\n { x: 0.609375, y: 0.453125 },\n { x: 0.640625, y: 0.453125 },\n { x: 0.640625, y: 0.453125 },\n { x: 0.671875, y: 0.453125 },\n { x: 0.671875, y: 0.453125 },\n { x: 0.703125, y: 0.453125 },\n { x: 0.703125, y: 0.453125 },\n { x: 0.734375, y: 0.453125 },\n { x: 0.734375, y: 0.453125 },\n { x: 0.765625, y: 0.453125 },\n { x: 0.765625, y: 0.453125 },\n { x: 0.796875, y: 0.453125 },\n { x: 0.796875, y: 0.453125 },\n { x: 0.828125, y: 0.453125 },\n { x: 0.828125, y: 0.453125 },\n { x: 0.859375, y: 0.453125 },\n { x: 0.859375, y: 0.453125 },\n { x: 0.890625, y: 0.453125 },\n { x: 0.890625, y: 0.453125 },\n { x: 0.921875, y: 0.453125 },\n { x: 0.921875, y: 0.453125 },\n { x: 0.953125, y: 0.453125 },\n { x: 0.953125, y: 0.453125 },\n { x: 0.984375, y: 0.453125 },\n { x: 0.984375, y: 0.453125 },\n { x: 0.015625, y: 0.484375 },\n { x: 0.015625, y: 0.484375 },\n { x: 0.046875, y: 0.484375 },\n { x: 0.046875, y: 0.484375 },\n { x: 0.078125, y: 0.484375 },\n { x: 0.078125, y: 0.484375 },\n { x: 0.109375, y: 0.484375 },\n { x: 0.109375, y: 0.484375 },\n { x: 0.140625, y: 0.484375 },\n { x: 0.140625, y: 0.484375 },\n { x: 0.171875, y: 0.484375 },\n { x: 0.171875, y: 0.484375 },\n { x: 0.203125, y: 0.484375 },\n { x: 0.203125, y: 0.484375 },\n { x: 0.234375, y: 0.484375 },\n { x: 0.234375, y: 0.484375 },\n { x: 0.265625, y: 0.484375 },\n { x: 0.265625, y: 0.484375 },\n { x: 0.296875, y: 0.484375 },\n { x: 0.296875, y: 0.484375 },\n { x: 0.328125, y: 0.484375 },\n { x: 0.328125, y: 0.484375 },\n { x: 0.359375, y: 0.484375 },\n { x: 0.359375, y: 0.484375 },\n { x: 0.390625, y: 0.484375 },\n { x: 0.390625, y: 0.484375 },\n { x: 0.421875, y: 0.484375 },\n { x: 0.421875, y: 0.484375 },\n { x: 0.453125, y: 0.484375 },\n { x: 0.453125, y: 0.484375 },\n { x: 0.484375, y: 0.484375 },\n { x: 0.484375, y: 0.484375 },\n { x: 0.515625, y: 0.484375 },\n { x: 0.515625, y: 0.484375 },\n { x: 0.546875, y: 0.484375 },\n { x: 0.546875, y: 0.484375 },\n { x: 0.578125, y: 0.484375 },\n { x: 0.578125, y: 0.484375 },\n { x: 0.609375, y: 0.484375 },\n { x: 0.609375, y: 0.484375 },\n { x: 0.640625, y: 0.484375 },\n { x: 0.640625, y: 0.484375 },\n { x: 0.671875, y: 0.484375 },\n { x: 0.671875, y: 0.484375 },\n { x: 0.703125, y: 0.484375 },\n { x: 0.703125, y: 0.484375 },\n { x: 0.734375, y: 0.484375 },\n { x: 0.734375, y: 0.484375 },\n { x: 0.765625, y: 0.484375 },\n { x: 0.765625, y: 0.484375 },\n { x: 0.796875, y: 0.484375 },\n { x: 0.796875, y: 0.484375 },\n { x: 0.828125, y: 0.484375 },\n { x: 0.828125, y: 0.484375 },\n { x: 0.859375, y: 0.484375 },\n { x: 0.859375, y: 0.484375 },\n { x: 0.890625, y: 0.484375 },\n { x: 0.890625, y: 0.484375 },\n { x: 0.921875, y: 0.484375 },\n { x: 0.921875, y: 0.484375 },\n { x: 0.953125, y: 0.484375 },\n { x: 0.953125, y: 0.484375 },\n { x: 0.984375, y: 0.484375 },\n { x: 0.984375, y: 0.484375 },\n { x: 0.015625, y: 0.515625 },\n { x: 0.015625, y: 0.515625 },\n { x: 0.046875, y: 0.515625 },\n { x: 0.046875, y: 0.515625 },\n { x: 0.078125, y: 0.515625 },\n { x: 0.078125, y: 0.515625 },\n { x: 0.109375, y: 0.515625 },\n { x: 0.109375, y: 0.515625 },\n { x: 0.140625, y: 0.515625 },\n { x: 0.140625, y: 0.515625 },\n { x: 0.171875, y: 0.515625 },\n { x: 0.171875, y: 0.515625 },\n { x: 0.203125, y: 0.515625 },\n { x: 0.203125, y: 0.515625 },\n { x: 0.234375, y: 0.515625 },\n { x: 0.234375, y: 0.515625 },\n { x: 0.265625, y: 0.515625 },\n { x: 0.265625, y: 0.515625 },\n { x: 0.296875, y: 0.515625 },\n { x: 0.296875, y: 0.515625 },\n { x: 0.328125, y: 0.515625 },\n { x: 0.328125, y: 0.515625 },\n { x: 0.359375, y: 0.515625 },\n { x: 0.359375, y: 0.515625 },\n { x: 0.390625, y: 0.515625 },\n { x: 0.390625, y: 0.515625 },\n { x: 0.421875, y: 0.515625 },\n { x: 0.421875, y: 0.515625 },\n { x: 0.453125, y: 0.515625 },\n { x: 0.453125, y: 0.515625 },\n { x: 0.484375, y: 0.515625 },\n { x: 0.484375, y: 0.515625 },\n { x: 0.515625, y: 0.515625 },\n { x: 0.515625, y: 0.515625 },\n { x: 0.546875, y: 0.515625 },\n { x: 0.546875, y: 0.515625 },\n { x: 0.578125, y: 0.515625 },\n { x: 0.578125, y: 0.515625 },\n { x: 0.609375, y: 0.515625 },\n { x: 0.609375, y: 0.515625 },\n { x: 0.640625, y: 0.515625 },\n { x: 0.640625, y: 0.515625 },\n { x: 0.671875, y: 0.515625 },\n { x: 0.671875, y: 0.515625 },\n { x: 0.703125, y: 0.515625 },\n { x: 0.703125, y: 0.515625 },\n { x: 0.734375, y: 0.515625 },\n { x: 0.734375, y: 0.515625 },\n { x: 0.765625, y: 0.515625 },\n { x: 0.765625, y: 0.515625 },\n { x: 0.796875, y: 0.515625 },\n { x: 0.796875, y: 0.515625 },\n { x: 0.828125, y: 0.515625 },\n { x: 0.828125, y: 0.515625 },\n { x: 0.859375, y: 0.515625 },\n { x: 0.859375, y: 0.515625 },\n { x: 0.890625, y: 0.515625 },\n { x: 0.890625, y: 0.515625 },\n { x: 0.921875, y: 0.515625 },\n { x: 0.921875, y: 0.515625 },\n { x: 0.953125, y: 0.515625 },\n { x: 0.953125, y: 0.515625 },\n { x: 0.984375, y: 0.515625 },\n { x: 0.984375, y: 0.515625 },\n { x: 0.015625, y: 0.546875 },\n { x: 0.015625, y: 0.546875 },\n { x: 0.046875, y: 0.546875 },\n { x: 0.046875, y: 0.546875 },\n { x: 0.078125, y: 0.546875 },\n { x: 0.078125, y: 0.546875 },\n { x: 0.109375, y: 0.546875 },\n { x: 0.109375, y: 0.546875 },\n { x: 0.140625, y: 0.546875 },\n { x: 0.140625, y: 0.546875 },\n { x: 0.171875, y: 0.546875 },\n { x: 0.171875, y: 0.546875 },\n { x: 0.203125, y: 0.546875 },\n { x: 0.203125, y: 0.546875 },\n { x: 0.234375, y: 0.546875 },\n { x: 0.234375, y: 0.546875 },\n { x: 0.265625, y: 0.546875 },\n { x: 0.265625, y: 0.546875 },\n { x: 0.296875, y: 0.546875 },\n { x: 0.296875, y: 0.546875 },\n { x: 0.328125, y: 0.546875 },\n { x: 0.328125, y: 0.546875 },\n { x: 0.359375, y: 0.546875 },\n { x: 0.359375, y: 0.546875 },\n { x: 0.390625, y: 0.546875 },\n { x: 0.390625, y: 0.546875 },\n { x: 0.421875, y: 0.546875 },\n { x: 0.421875, y: 0.546875 },\n { x: 0.453125, y: 0.546875 },\n { x: 0.453125, y: 0.546875 },\n { x: 0.484375, y: 0.546875 },\n { x: 0.484375, y: 0.546875 },\n { x: 0.515625, y: 0.546875 },\n { x: 0.515625, y: 0.546875 },\n { x: 0.546875, y: 0.546875 },\n { x: 0.546875, y: 0.546875 },\n { x: 0.578125, y: 0.546875 },\n { x: 0.578125, y: 0.546875 },\n { x: 0.609375, y: 0.546875 },\n { x: 0.609375, y: 0.546875 },\n { x: 0.640625, y: 0.546875 },\n { x: 0.640625, y: 0.546875 },\n { x: 0.671875, y: 0.546875 },\n { x: 0.671875, y: 0.546875 },\n { x: 0.703125, y: 0.546875 },\n { x: 0.703125, y: 0.546875 },\n { x: 0.734375, y: 0.546875 },\n { x: 0.734375, y: 0.546875 },\n { x: 0.765625, y: 0.546875 },\n { x: 0.765625, y: 0.546875 },\n { x: 0.796875, y: 0.546875 },\n { x: 0.796875, y: 0.546875 },\n { x: 0.828125, y: 0.546875 },\n { x: 0.828125, y: 0.546875 },\n { x: 0.859375, y: 0.546875 },\n { x: 0.859375, y: 0.546875 },\n { x: 0.890625, y: 0.546875 },\n { x: 0.890625, y: 0.546875 },\n { x: 0.921875, y: 0.546875 },\n { x: 0.921875, y: 0.546875 },\n { x: 0.953125, y: 0.546875 },\n { x: 0.953125, y: 0.546875 },\n { x: 0.984375, y: 0.546875 },\n { x: 0.984375, y: 0.546875 },\n { x: 0.015625, y: 0.578125 },\n { x: 0.015625, y: 0.578125 },\n { x: 0.046875, y: 0.578125 },\n { x: 0.046875, y: 0.578125 },\n { x: 0.078125, y: 0.578125 },\n { x: 0.078125, y: 0.578125 },\n { x: 0.109375, y: 0.578125 },\n { x: 0.109375, y: 0.578125 },\n { x: 0.140625, y: 0.578125 },\n { x: 0.140625, y: 0.578125 },\n { x: 0.171875, y: 0.578125 },\n { x: 0.171875, y: 0.578125 },\n { x: 0.203125, y: 0.578125 },\n { x: 0.203125, y: 0.578125 },\n { x: 0.234375, y: 0.578125 },\n { x: 0.234375, y: 0.578125 },\n { x: 0.265625, y: 0.578125 },\n { x: 0.265625, y: 0.578125 },\n { x: 0.296875, y: 0.578125 },\n { x: 0.296875, y: 0.578125 },\n { x: 0.328125, y: 0.578125 },\n { x: 0.328125, y: 0.578125 },\n { x: 0.359375, y: 0.578125 },\n { x: 0.359375, y: 0.578125 },\n { x: 0.390625, y: 0.578125 },\n { x: 0.390625, y: 0.578125 },\n { x: 0.421875, y: 0.578125 },\n { x: 0.421875, y: 0.578125 },\n { x: 0.453125, y: 0.578125 },\n { x: 0.453125, y: 0.578125 },\n { x: 0.484375, y: 0.578125 },\n { x: 0.484375, y: 0.578125 },\n { x: 0.515625, y: 0.578125 },\n { x: 0.515625, y: 0.578125 },\n { x: 0.546875, y: 0.578125 },\n { x: 0.546875, y: 0.578125 },\n { x: 0.578125, y: 0.578125 },\n { x: 0.578125, y: 0.578125 },\n { x: 0.609375, y: 0.578125 },\n { x: 0.609375, y: 0.578125 },\n { x: 0.640625, y: 0.578125 },\n { x: 0.640625, y: 0.578125 },\n { x: 0.671875, y: 0.578125 },\n { x: 0.671875, y: 0.578125 },\n { x: 0.703125, y: 0.578125 },\n { x: 0.703125, y: 0.578125 },\n { x: 0.734375, y: 0.578125 },\n { x: 0.734375, y: 0.578125 },\n { x: 0.765625, y: 0.578125 },\n { x: 0.765625, y: 0.578125 },\n { x: 0.796875, y: 0.578125 },\n { x: 0.796875, y: 0.578125 },\n { x: 0.828125, y: 0.578125 },\n { x: 0.828125, y: 0.578125 },\n { x: 0.859375, y: 0.578125 },\n { x: 0.859375, y: 0.578125 },\n { x: 0.890625, y: 0.578125 },\n { x: 0.890625, y: 0.578125 },\n { x: 0.921875, y: 0.578125 },\n { x: 0.921875, y: 0.578125 },\n { x: 0.953125, y: 0.578125 },\n { x: 0.953125, y: 0.578125 },\n { x: 0.984375, y: 0.578125 },\n { x: 0.984375, y: 0.578125 },\n { x: 0.015625, y: 0.609375 },\n { x: 0.015625, y: 0.609375 },\n { x: 0.046875, y: 0.609375 },\n { x: 0.046875, y: 0.609375 },\n { x: 0.078125, y: 0.609375 },\n { x: 0.078125, y: 0.609375 },\n { x: 0.109375, y: 0.609375 },\n { x: 0.109375, y: 0.609375 },\n { x: 0.140625, y: 0.609375 },\n { x: 0.140625, y: 0.609375 },\n { x: 0.171875, y: 0.609375 },\n { x: 0.171875, y: 0.609375 },\n { x: 0.203125, y: 0.609375 },\n { x: 0.203125, y: 0.609375 },\n { x: 0.234375, y: 0.609375 },\n { x: 0.234375, y: 0.609375 },\n { x: 0.265625, y: 0.609375 },\n { x: 0.265625, y: 0.609375 },\n { x: 0.296875, y: 0.609375 },\n { x: 0.296875, y: 0.609375 },\n { x: 0.328125, y: 0.609375 },\n { x: 0.328125, y: 0.609375 },\n { x: 0.359375, y: 0.609375 },\n { x: 0.359375, y: 0.609375 },\n { x: 0.390625, y: 0.609375 },\n { x: 0.390625, y: 0.609375 },\n { x: 0.421875, y: 0.609375 },\n { x: 0.421875, y: 0.609375 },\n { x: 0.453125, y: 0.609375 },\n { x: 0.453125, y: 0.609375 },\n { x: 0.484375, y: 0.609375 },\n { x: 0.484375, y: 0.609375 },\n { x: 0.515625, y: 0.609375 },\n { x: 0.515625, y: 0.609375 },\n { x: 0.546875, y: 0.609375 },\n { x: 0.546875, y: 0.609375 },\n { x: 0.578125, y: 0.609375 },\n { x: 0.578125, y: 0.609375 },\n { x: 0.609375, y: 0.609375 },\n { x: 0.609375, y: 0.609375 },\n { x: 0.640625, y: 0.609375 },\n { x: 0.640625, y: 0.609375 },\n { x: 0.671875, y: 0.609375 },\n { x: 0.671875, y: 0.609375 },\n { x: 0.703125, y: 0.609375 },\n { x: 0.703125, y: 0.609375 },\n { x: 0.734375, y: 0.609375 },\n { x: 0.734375, y: 0.609375 },\n { x: 0.765625, y: 0.609375 },\n { x: 0.765625, y: 0.609375 },\n { x: 0.796875, y: 0.609375 },\n { x: 0.796875, y: 0.609375 },\n { x: 0.828125, y: 0.609375 },\n { x: 0.828125, y: 0.609375 },\n { x: 0.859375, y: 0.609375 },\n { x: 0.859375, y: 0.609375 },\n { x: 0.890625, y: 0.609375 },\n { x: 0.890625, y: 0.609375 },\n { x: 0.921875, y: 0.609375 },\n { x: 0.921875, y: 0.609375 },\n { x: 0.953125, y: 0.609375 },\n { x: 0.953125, y: 0.609375 },\n { x: 0.984375, y: 0.609375 },\n { x: 0.984375, y: 0.609375 },\n { x: 0.015625, y: 0.640625 },\n { x: 0.015625, y: 0.640625 },\n { x: 0.046875, y: 0.640625 },\n { x: 0.046875, y: 0.640625 },\n { x: 0.078125, y: 0.640625 },\n { x: 0.078125, y: 0.640625 },\n { x: 0.109375, y: 0.640625 },\n { x: 0.109375, y: 0.640625 },\n { x: 0.140625, y: 0.640625 },\n { x: 0.140625, y: 0.640625 },\n { x: 0.171875, y: 0.640625 },\n { x: 0.171875, y: 0.640625 },\n { x: 0.203125, y: 0.640625 },\n { x: 0.203125, y: 0.640625 },\n { x: 0.234375, y: 0.640625 },\n { x: 0.234375, y: 0.640625 },\n { x: 0.265625, y: 0.640625 },\n { x: 0.265625, y: 0.640625 },\n { x: 0.296875, y: 0.640625 },\n { x: 0.296875, y: 0.640625 },\n { x: 0.328125, y: 0.640625 },\n { x: 0.328125, y: 0.640625 },\n { x: 0.359375, y: 0.640625 },\n { x: 0.359375, y: 0.640625 },\n { x: 0.390625, y: 0.640625 },\n { x: 0.390625, y: 0.640625 },\n { x: 0.421875, y: 0.640625 },\n { x: 0.421875, y: 0.640625 },\n { x: 0.453125, y: 0.640625 },\n { x: 0.453125, y: 0.640625 },\n { x: 0.484375, y: 0.640625 },\n { x: 0.484375, y: 0.640625 },\n { x: 0.515625, y: 0.640625 },\n { x: 0.515625, y: 0.640625 },\n { x: 0.546875, y: 0.640625 },\n { x: 0.546875, y: 0.640625 },\n { x: 0.578125, y: 0.640625 },\n { x: 0.578125, y: 0.640625 },\n { x: 0.609375, y: 0.640625 },\n { x: 0.609375, y: 0.640625 },\n { x: 0.640625, y: 0.640625 },\n { x: 0.640625, y: 0.640625 },\n { x: 0.671875, y: 0.640625 },\n { x: 0.671875, y: 0.640625 },\n { x: 0.703125, y: 0.640625 },\n { x: 0.703125, y: 0.640625 },\n { x: 0.734375, y: 0.640625 },\n { x: 0.734375, y: 0.640625 },\n { x: 0.765625, y: 0.640625 },\n { x: 0.765625, y: 0.640625 },\n { x: 0.796875, y: 0.640625 },\n { x: 0.796875, y: 0.640625 },\n { x: 0.828125, y: 0.640625 },\n { x: 0.828125, y: 0.640625 },\n { x: 0.859375, y: 0.640625 },\n { x: 0.859375, y: 0.640625 },\n { x: 0.890625, y: 0.640625 },\n { x: 0.890625, y: 0.640625 },\n { x: 0.921875, y: 0.640625 },\n { x: 0.921875, y: 0.640625 },\n { x: 0.953125, y: 0.640625 },\n { x: 0.953125, y: 0.640625 },\n { x: 0.984375, y: 0.640625 },\n { x: 0.984375, y: 0.640625 },\n { x: 0.015625, y: 0.671875 },\n { x: 0.015625, y: 0.671875 },\n { x: 0.046875, y: 0.671875 },\n { x: 0.046875, y: 0.671875 },\n { x: 0.078125, y: 0.671875 },\n { x: 0.078125, y: 0.671875 },\n { x: 0.109375, y: 0.671875 },\n { x: 0.109375, y: 0.671875 },\n { x: 0.140625, y: 0.671875 },\n { x: 0.140625, y: 0.671875 },\n { x: 0.171875, y: 0.671875 },\n { x: 0.171875, y: 0.671875 },\n { x: 0.203125, y: 0.671875 },\n { x: 0.203125, y: 0.671875 },\n { x: 0.234375, y: 0.671875 },\n { x: 0.234375, y: 0.671875 },\n { x: 0.265625, y: 0.671875 },\n { x: 0.265625, y: 0.671875 },\n { x: 0.296875, y: 0.671875 },\n { x: 0.296875, y: 0.671875 },\n { x: 0.328125, y: 0.671875 },\n { x: 0.328125, y: 0.671875 },\n { x: 0.359375, y: 0.671875 },\n { x: 0.359375, y: 0.671875 },\n { x: 0.390625, y: 0.671875 },\n { x: 0.390625, y: 0.671875 },\n { x: 0.421875, y: 0.671875 },\n { x: 0.421875, y: 0.671875 },\n { x: 0.453125, y: 0.671875 },\n { x: 0.453125, y: 0.671875 },\n { x: 0.484375, y: 0.671875 },\n { x: 0.484375, y: 0.671875 },\n { x: 0.515625, y: 0.671875 },\n { x: 0.515625, y: 0.671875 },\n { x: 0.546875, y: 0.671875 },\n { x: 0.546875, y: 0.671875 },\n { x: 0.578125, y: 0.671875 },\n { x: 0.578125, y: 0.671875 },\n { x: 0.609375, y: 0.671875 },\n { x: 0.609375, y: 0.671875 },\n { x: 0.640625, y: 0.671875 },\n { x: 0.640625, y: 0.671875 },\n { x: 0.671875, y: 0.671875 },\n { x: 0.671875, y: 0.671875 },\n { x: 0.703125, y: 0.671875 },\n { x: 0.703125, y: 0.671875 },\n { x: 0.734375, y: 0.671875 },\n { x: 0.734375, y: 0.671875 },\n { x: 0.765625, y: 0.671875 },\n { x: 0.765625, y: 0.671875 },\n { x: 0.796875, y: 0.671875 },\n { x: 0.796875, y: 0.671875 },\n { x: 0.828125, y: 0.671875 },\n { x: 0.828125, y: 0.671875 },\n { x: 0.859375, y: 0.671875 },\n { x: 0.859375, y: 0.671875 },\n { x: 0.890625, y: 0.671875 },\n { x: 0.890625, y: 0.671875 },\n { x: 0.921875, y: 0.671875 },\n { x: 0.921875, y: 0.671875 },\n { x: 0.953125, y: 0.671875 },\n { x: 0.953125, y: 0.671875 },\n { x: 0.984375, y: 0.671875 },\n { x: 0.984375, y: 0.671875 },\n { x: 0.015625, y: 0.703125 },\n { x: 0.015625, y: 0.703125 },\n { x: 0.046875, y: 0.703125 },\n { x: 0.046875, y: 0.703125 },\n { x: 0.078125, y: 0.703125 },\n { x: 0.078125, y: 0.703125 },\n { x: 0.109375, y: 0.703125 },\n { x: 0.109375, y: 0.703125 },\n { x: 0.140625, y: 0.703125 },\n { x: 0.140625, y: 0.703125 },\n { x: 0.171875, y: 0.703125 },\n { x: 0.171875, y: 0.703125 },\n { x: 0.203125, y: 0.703125 },\n { x: 0.203125, y: 0.703125 },\n { x: 0.234375, y: 0.703125 },\n { x: 0.234375, y: 0.703125 },\n { x: 0.265625, y: 0.703125 },\n { x: 0.265625, y: 0.703125 },\n { x: 0.296875, y: 0.703125 },\n { x: 0.296875, y: 0.703125 },\n { x: 0.328125, y: 0.703125 },\n { x: 0.328125, y: 0.703125 },\n { x: 0.359375, y: 0.703125 },\n { x: 0.359375, y: 0.703125 },\n { x: 0.390625, y: 0.703125 },\n { x: 0.390625, y: 0.703125 },\n { x: 0.421875, y: 0.703125 },\n { x: 0.421875, y: 0.703125 },\n { x: 0.453125, y: 0.703125 },\n { x: 0.453125, y: 0.703125 },\n { x: 0.484375, y: 0.703125 },\n { x: 0.484375, y: 0.703125 },\n { x: 0.515625, y: 0.703125 },\n { x: 0.515625, y: 0.703125 },\n { x: 0.546875, y: 0.703125 },\n { x: 0.546875, y: 0.703125 },\n { x: 0.578125, y: 0.703125 },\n { x: 0.578125, y: 0.703125 },\n { x: 0.609375, y: 0.703125 },\n { x: 0.609375, y: 0.703125 },\n { x: 0.640625, y: 0.703125 },\n { x: 0.640625, y: 0.703125 },\n { x: 0.671875, y: 0.703125 },\n { x: 0.671875, y: 0.703125 },\n { x: 0.703125, y: 0.703125 },\n { x: 0.703125, y: 0.703125 },\n { x: 0.734375, y: 0.703125 },\n { x: 0.734375, y: 0.703125 },\n { x: 0.765625, y: 0.703125 },\n { x: 0.765625, y: 0.703125 },\n { x: 0.796875, y: 0.703125 },\n { x: 0.796875, y: 0.703125 },\n { x: 0.828125, y: 0.703125 },\n { x: 0.828125, y: 0.703125 },\n { x: 0.859375, y: 0.703125 },\n { x: 0.859375, y: 0.703125 },\n { x: 0.890625, y: 0.703125 },\n { x: 0.890625, y: 0.703125 },\n { x: 0.921875, y: 0.703125 },\n { x: 0.921875, y: 0.703125 },\n { x: 0.953125, y: 0.703125 },\n { x: 0.953125, y: 0.703125 },\n { x: 0.984375, y: 0.703125 },\n { x: 0.984375, y: 0.703125 },\n { x: 0.015625, y: 0.734375 },\n { x: 0.015625, y: 0.734375 },\n { x: 0.046875, y: 0.734375 },\n { x: 0.046875, y: 0.734375 },\n { x: 0.078125, y: 0.734375 },\n { x: 0.078125, y: 0.734375 },\n { x: 0.109375, y: 0.734375 },\n { x: 0.109375, y: 0.734375 },\n { x: 0.140625, y: 0.734375 },\n { x: 0.140625, y: 0.734375 },\n { x: 0.171875, y: 0.734375 },\n { x: 0.171875, y: 0.734375 },\n { x: 0.203125, y: 0.734375 },\n { x: 0.203125, y: 0.734375 },\n { x: 0.234375, y: 0.734375 },\n { x: 0.234375, y: 0.734375 },\n { x: 0.265625, y: 0.734375 },\n { x: 0.265625, y: 0.734375 },\n { x: 0.296875, y: 0.734375 },\n { x: 0.296875, y: 0.734375 },\n { x: 0.328125, y: 0.734375 },\n { x: 0.328125, y: 0.734375 },\n { x: 0.359375, y: 0.734375 },\n { x: 0.359375, y: 0.734375 },\n { x: 0.390625, y: 0.734375 },\n { x: 0.390625, y: 0.734375 },\n { x: 0.421875, y: 0.734375 },\n { x: 0.421875, y: 0.734375 },\n { x: 0.453125, y: 0.734375 },\n { x: 0.453125, y: 0.734375 },\n { x: 0.484375, y: 0.734375 },\n { x: 0.484375, y: 0.734375 },\n { x: 0.515625, y: 0.734375 },\n { x: 0.515625, y: 0.734375 },\n { x: 0.546875, y: 0.734375 },\n { x: 0.546875, y: 0.734375 },\n { x: 0.578125, y: 0.734375 },\n { x: 0.578125, y: 0.734375 },\n { x: 0.609375, y: 0.734375 },\n { x: 0.609375, y: 0.734375 },\n { x: 0.640625, y: 0.734375 },\n { x: 0.640625, y: 0.734375 },\n { x: 0.671875, y: 0.734375 },\n { x: 0.671875, y: 0.734375 },\n { x: 0.703125, y: 0.734375 },\n { x: 0.703125, y: 0.734375 },\n { x: 0.734375, y: 0.734375 },\n { x: 0.734375, y: 0.734375 },\n { x: 0.765625, y: 0.734375 },\n { x: 0.765625, y: 0.734375 },\n { x: 0.796875, y: 0.734375 },\n { x: 0.796875, y: 0.734375 },\n { x: 0.828125, y: 0.734375 },\n { x: 0.828125, y: 0.734375 },\n { x: 0.859375, y: 0.734375 },\n { x: 0.859375, y: 0.734375 },\n { x: 0.890625, y: 0.734375 },\n { x: 0.890625, y: 0.734375 },\n { x: 0.921875, y: 0.734375 },\n { x: 0.921875, y: 0.734375 },\n { x: 0.953125, y: 0.734375 },\n { x: 0.953125, y: 0.734375 },\n { x: 0.984375, y: 0.734375 },\n { x: 0.984375, y: 0.734375 },\n { x: 0.015625, y: 0.765625 },\n { x: 0.015625, y: 0.765625 },\n { x: 0.046875, y: 0.765625 },\n { x: 0.046875, y: 0.765625 },\n { x: 0.078125, y: 0.765625 },\n { x: 0.078125, y: 0.765625 },\n { x: 0.109375, y: 0.765625 },\n { x: 0.109375, y: 0.765625 },\n { x: 0.140625, y: 0.765625 },\n { x: 0.140625, y: 0.765625 },\n { x: 0.171875, y: 0.765625 },\n { x: 0.171875, y: 0.765625 },\n { x: 0.203125, y: 0.765625 },\n { x: 0.203125, y: 0.765625 },\n { x: 0.234375, y: 0.765625 },\n { x: 0.234375, y: 0.765625 },\n { x: 0.265625, y: 0.765625 },\n { x: 0.265625, y: 0.765625 },\n { x: 0.296875, y: 0.765625 },\n { x: 0.296875, y: 0.765625 },\n { x: 0.328125, y: 0.765625 },\n { x: 0.328125, y: 0.765625 },\n { x: 0.359375, y: 0.765625 },\n { x: 0.359375, y: 0.765625 },\n { x: 0.390625, y: 0.765625 },\n { x: 0.390625, y: 0.765625 },\n { x: 0.421875, y: 0.765625 },\n { x: 0.421875, y: 0.765625 },\n { x: 0.453125, y: 0.765625 },\n { x: 0.453125, y: 0.765625 },\n { x: 0.484375, y: 0.765625 },\n { x: 0.484375, y: 0.765625 },\n { x: 0.515625, y: 0.765625 },\n { x: 0.515625, y: 0.765625 },\n { x: 0.546875, y: 0.765625 },\n { x: 0.546875, y: 0.765625 },\n { x: 0.578125, y: 0.765625 },\n { x: 0.578125, y: 0.765625 },\n { x: 0.609375, y: 0.765625 },\n { x: 0.609375, y: 0.765625 },\n { x: 0.640625, y: 0.765625 },\n { x: 0.640625, y: 0.765625 },\n { x: 0.671875, y: 0.765625 },\n { x: 0.671875, y: 0.765625 },\n { x: 0.703125, y: 0.765625 },\n { x: 0.703125, y: 0.765625 },\n { x: 0.734375, y: 0.765625 },\n { x: 0.734375, y: 0.765625 },\n { x: 0.765625, y: 0.765625 },\n { x: 0.765625, y: 0.765625 },\n { x: 0.796875, y: 0.765625 },\n { x: 0.796875, y: 0.765625 },\n { x: 0.828125, y: 0.765625 },\n { x: 0.828125, y: 0.765625 },\n { x: 0.859375, y: 0.765625 },\n { x: 0.859375, y: 0.765625 },\n { x: 0.890625, y: 0.765625 },\n { x: 0.890625, y: 0.765625 },\n { x: 0.921875, y: 0.765625 },\n { x: 0.921875, y: 0.765625 },\n { x: 0.953125, y: 0.765625 },\n { x: 0.953125, y: 0.765625 },\n { x: 0.984375, y: 0.765625 },\n { x: 0.984375, y: 0.765625 },\n { x: 0.015625, y: 0.796875 },\n { x: 0.015625, y: 0.796875 },\n { x: 0.046875, y: 0.796875 },\n { x: 0.046875, y: 0.796875 },\n { x: 0.078125, y: 0.796875 },\n { x: 0.078125, y: 0.796875 },\n { x: 0.109375, y: 0.796875 },\n { x: 0.109375, y: 0.796875 },\n { x: 0.140625, y: 0.796875 },\n { x: 0.140625, y: 0.796875 },\n { x: 0.171875, y: 0.796875 },\n { x: 0.171875, y: 0.796875 },\n { x: 0.203125, y: 0.796875 },\n { x: 0.203125, y: 0.796875 },\n { x: 0.234375, y: 0.796875 },\n { x: 0.234375, y: 0.796875 },\n { x: 0.265625, y: 0.796875 },\n { x: 0.265625, y: 0.796875 },\n { x: 0.296875, y: 0.796875 },\n { x: 0.296875, y: 0.796875 },\n { x: 0.328125, y: 0.796875 },\n { x: 0.328125, y: 0.796875 },\n { x: 0.359375, y: 0.796875 },\n { x: 0.359375, y: 0.796875 },\n { x: 0.390625, y: 0.796875 },\n { x: 0.390625, y: 0.796875 },\n { x: 0.421875, y: 0.796875 },\n { x: 0.421875, y: 0.796875 },\n { x: 0.453125, y: 0.796875 },\n { x: 0.453125, y: 0.796875 },\n { x: 0.484375, y: 0.796875 },\n { x: 0.484375, y: 0.796875 },\n { x: 0.515625, y: 0.796875 },\n { x: 0.515625, y: 0.796875 },\n { x: 0.546875, y: 0.796875 },\n { x: 0.546875, y: 0.796875 },\n { x: 0.578125, y: 0.796875 },\n { x: 0.578125, y: 0.796875 },\n { x: 0.609375, y: 0.796875 },\n { x: 0.609375, y: 0.796875 },\n { x: 0.640625, y: 0.796875 },\n { x: 0.640625, y: 0.796875 },\n { x: 0.671875, y: 0.796875 },\n { x: 0.671875, y: 0.796875 },\n { x: 0.703125, y: 0.796875 },\n { x: 0.703125, y: 0.796875 },\n { x: 0.734375, y: 0.796875 },\n { x: 0.734375, y: 0.796875 },\n { x: 0.765625, y: 0.796875 },\n { x: 0.765625, y: 0.796875 },\n { x: 0.796875, y: 0.796875 },\n { x: 0.796875, y: 0.796875 },\n { x: 0.828125, y: 0.796875 },\n { x: 0.828125, y: 0.796875 },\n { x: 0.859375, y: 0.796875 },\n { x: 0.859375, y: 0.796875 },\n { x: 0.890625, y: 0.796875 },\n { x: 0.890625, y: 0.796875 },\n { x: 0.921875, y: 0.796875 },\n { x: 0.921875, y: 0.796875 },\n { x: 0.953125, y: 0.796875 },\n { x: 0.953125, y: 0.796875 },\n { x: 0.984375, y: 0.796875 },\n { x: 0.984375, y: 0.796875 },\n { x: 0.015625, y: 0.828125 },\n { x: 0.015625, y: 0.828125 },\n { x: 0.046875, y: 0.828125 },\n { x: 0.046875, y: 0.828125 },\n { x: 0.078125, y: 0.828125 },\n { x: 0.078125, y: 0.828125 },\n { x: 0.109375, y: 0.828125 },\n { x: 0.109375, y: 0.828125 },\n { x: 0.140625, y: 0.828125 },\n { x: 0.140625, y: 0.828125 },\n { x: 0.171875, y: 0.828125 },\n { x: 0.171875, y: 0.828125 },\n { x: 0.203125, y: 0.828125 },\n { x: 0.203125, y: 0.828125 },\n { x: 0.234375, y: 0.828125 },\n { x: 0.234375, y: 0.828125 },\n { x: 0.265625, y: 0.828125 },\n { x: 0.265625, y: 0.828125 },\n { x: 0.296875, y: 0.828125 },\n { x: 0.296875, y: 0.828125 },\n { x: 0.328125, y: 0.828125 },\n { x: 0.328125, y: 0.828125 },\n { x: 0.359375, y: 0.828125 },\n { x: 0.359375, y: 0.828125 },\n { x: 0.390625, y: 0.828125 },\n { x: 0.390625, y: 0.828125 },\n { x: 0.421875, y: 0.828125 },\n { x: 0.421875, y: 0.828125 },\n { x: 0.453125, y: 0.828125 },\n { x: 0.453125, y: 0.828125 },\n { x: 0.484375, y: 0.828125 },\n { x: 0.484375, y: 0.828125 },\n { x: 0.515625, y: 0.828125 },\n { x: 0.515625, y: 0.828125 },\n { x: 0.546875, y: 0.828125 },\n { x: 0.546875, y: 0.828125 },\n { x: 0.578125, y: 0.828125 },\n { x: 0.578125, y: 0.828125 },\n { x: 0.609375, y: 0.828125 },\n { x: 0.609375, y: 0.828125 },\n { x: 0.640625, y: 0.828125 },\n { x: 0.640625, y: 0.828125 },\n { x: 0.671875, y: 0.828125 },\n { x: 0.671875, y: 0.828125 },\n { x: 0.703125, y: 0.828125 },\n { x: 0.703125, y: 0.828125 },\n { x: 0.734375, y: 0.828125 },\n { x: 0.734375, y: 0.828125 },\n { x: 0.765625, y: 0.828125 },\n { x: 0.765625, y: 0.828125 },\n { x: 0.796875, y: 0.828125 },\n { x: 0.796875, y: 0.828125 },\n { x: 0.828125, y: 0.828125 },\n { x: 0.828125, y: 0.828125 },\n { x: 0.859375, y: 0.828125 },\n { x: 0.859375, y: 0.828125 },\n { x: 0.890625, y: 0.828125 },\n { x: 0.890625, y: 0.828125 },\n { x: 0.921875, y: 0.828125 },\n { x: 0.921875, y: 0.828125 },\n { x: 0.953125, y: 0.828125 },\n { x: 0.953125, y: 0.828125 },\n { x: 0.984375, y: 0.828125 },\n { x: 0.984375, y: 0.828125 },\n { x: 0.015625, y: 0.859375 },\n { x: 0.015625, y: 0.859375 },\n { x: 0.046875, y: 0.859375 },\n { x: 0.046875, y: 0.859375 },\n { x: 0.078125, y: 0.859375 },\n { x: 0.078125, y: 0.859375 },\n { x: 0.109375, y: 0.859375 },\n { x: 0.109375, y: 0.859375 },\n { x: 0.140625, y: 0.859375 },\n { x: 0.140625, y: 0.859375 },\n { x: 0.171875, y: 0.859375 },\n { x: 0.171875, y: 0.859375 },\n { x: 0.203125, y: 0.859375 },\n { x: 0.203125, y: 0.859375 },\n { x: 0.234375, y: 0.859375 },\n { x: 0.234375, y: 0.859375 },\n { x: 0.265625, y: 0.859375 },\n { x: 0.265625, y: 0.859375 },\n { x: 0.296875, y: 0.859375 },\n { x: 0.296875, y: 0.859375 },\n { x: 0.328125, y: 0.859375 },\n { x: 0.328125, y: 0.859375 },\n { x: 0.359375, y: 0.859375 },\n { x: 0.359375, y: 0.859375 },\n { x: 0.390625, y: 0.859375 },\n { x: 0.390625, y: 0.859375 },\n { x: 0.421875, y: 0.859375 },\n { x: 0.421875, y: 0.859375 },\n { x: 0.453125, y: 0.859375 },\n { x: 0.453125, y: 0.859375 },\n { x: 0.484375, y: 0.859375 },\n { x: 0.484375, y: 0.859375 },\n { x: 0.515625, y: 0.859375 },\n { x: 0.515625, y: 0.859375 },\n { x: 0.546875, y: 0.859375 },\n { x: 0.546875, y: 0.859375 },\n { x: 0.578125, y: 0.859375 },\n { x: 0.578125, y: 0.859375 },\n { x: 0.609375, y: 0.859375 },\n { x: 0.609375, y: 0.859375 },\n { x: 0.640625, y: 0.859375 },\n { x: 0.640625, y: 0.859375 },\n { x: 0.671875, y: 0.859375 },\n { x: 0.671875, y: 0.859375 },\n { x: 0.703125, y: 0.859375 },\n { x: 0.703125, y: 0.859375 },\n { x: 0.734375, y: 0.859375 },\n { x: 0.734375, y: 0.859375 },\n { x: 0.765625, y: 0.859375 },\n { x: 0.765625, y: 0.859375 },\n { x: 0.796875, y: 0.859375 },\n { x: 0.796875, y: 0.859375 },\n { x: 0.828125, y: 0.859375 },\n { x: 0.828125, y: 0.859375 },\n { x: 0.859375, y: 0.859375 },\n { x: 0.859375, y: 0.859375 },\n { x: 0.890625, y: 0.859375 },\n { x: 0.890625, y: 0.859375 },\n { x: 0.921875, y: 0.859375 },\n { x: 0.921875, y: 0.859375 },\n { x: 0.953125, y: 0.859375 },\n { x: 0.953125, y: 0.859375 },\n { x: 0.984375, y: 0.859375 },\n { x: 0.984375, y: 0.859375 },\n { x: 0.015625, y: 0.890625 },\n { x: 0.015625, y: 0.890625 },\n { x: 0.046875, y: 0.890625 },\n { x: 0.046875, y: 0.890625 },\n { x: 0.078125, y: 0.890625 },\n { x: 0.078125, y: 0.890625 },\n { x: 0.109375, y: 0.890625 },\n { x: 0.109375, y: 0.890625 },\n { x: 0.140625, y: 0.890625 },\n { x: 0.140625, y: 0.890625 },\n { x: 0.171875, y: 0.890625 },\n { x: 0.171875, y: 0.890625 },\n { x: 0.203125, y: 0.890625 },\n { x: 0.203125, y: 0.890625 },\n { x: 0.234375, y: 0.890625 },\n { x: 0.234375, y: 0.890625 },\n { x: 0.265625, y: 0.890625 },\n { x: 0.265625, y: 0.890625 },\n { x: 0.296875, y: 0.890625 },\n { x: 0.296875, y: 0.890625 },\n { x: 0.328125, y: 0.890625 },\n { x: 0.328125, y: 0.890625 },\n { x: 0.359375, y: 0.890625 },\n { x: 0.359375, y: 0.890625 },\n { x: 0.390625, y: 0.890625 },\n { x: 0.390625, y: 0.890625 },\n { x: 0.421875, y: 0.890625 },\n { x: 0.421875, y: 0.890625 },\n { x: 0.453125, y: 0.890625 },\n { x: 0.453125, y: 0.890625 },\n { x: 0.484375, y: 0.890625 },\n { x: 0.484375, y: 0.890625 },\n { x: 0.515625, y: 0.890625 },\n { x: 0.515625, y: 0.890625 },\n { x: 0.546875, y: 0.890625 },\n { x: 0.546875, y: 0.890625 },\n { x: 0.578125, y: 0.890625 },\n { x: 0.578125, y: 0.890625 },\n { x: 0.609375, y: 0.890625 },\n { x: 0.609375, y: 0.890625 },\n { x: 0.640625, y: 0.890625 },\n { x: 0.640625, y: 0.890625 },\n { x: 0.671875, y: 0.890625 },\n { x: 0.671875, y: 0.890625 },\n { x: 0.703125, y: 0.890625 },\n { x: 0.703125, y: 0.890625 },\n { x: 0.734375, y: 0.890625 },\n { x: 0.734375, y: 0.890625 },\n { x: 0.765625, y: 0.890625 },\n { x: 0.765625, y: 0.890625 },\n { x: 0.796875, y: 0.890625 },\n { x: 0.796875, y: 0.890625 },\n { x: 0.828125, y: 0.890625 },\n { x: 0.828125, y: 0.890625 },\n { x: 0.859375, y: 0.890625 },\n { x: 0.859375, y: 0.890625 },\n { x: 0.890625, y: 0.890625 },\n { x: 0.890625, y: 0.890625 },\n { x: 0.921875, y: 0.890625 },\n { x: 0.921875, y: 0.890625 },\n { x: 0.953125, y: 0.890625 },\n { x: 0.953125, y: 0.890625 },\n { x: 0.984375, y: 0.890625 },\n { x: 0.984375, y: 0.890625 },\n { x: 0.015625, y: 0.921875 },\n { x: 0.015625, y: 0.921875 },\n { x: 0.046875, y: 0.921875 },\n { x: 0.046875, y: 0.921875 },\n { x: 0.078125, y: 0.921875 },\n { x: 0.078125, y: 0.921875 },\n { x: 0.109375, y: 0.921875 },\n { x: 0.109375, y: 0.921875 },\n { x: 0.140625, y: 0.921875 },\n { x: 0.140625, y: 0.921875 },\n { x: 0.171875, y: 0.921875 },\n { x: 0.171875, y: 0.921875 },\n { x: 0.203125, y: 0.921875 },\n { x: 0.203125, y: 0.921875 },\n { x: 0.234375, y: 0.921875 },\n { x: 0.234375, y: 0.921875 },\n { x: 0.265625, y: 0.921875 },\n { x: 0.265625, y: 0.921875 },\n { x: 0.296875, y: 0.921875 },\n { x: 0.296875, y: 0.921875 },\n { x: 0.328125, y: 0.921875 },\n { x: 0.328125, y: 0.921875 },\n { x: 0.359375, y: 0.921875 },\n { x: 0.359375, y: 0.921875 },\n { x: 0.390625, y: 0.921875 },\n { x: 0.390625, y: 0.921875 },\n { x: 0.421875, y: 0.921875 },\n { x: 0.421875, y: 0.921875 },\n { x: 0.453125, y: 0.921875 },\n { x: 0.453125, y: 0.921875 },\n { x: 0.484375, y: 0.921875 },\n { x: 0.484375, y: 0.921875 },\n { x: 0.515625, y: 0.921875 },\n { x: 0.515625, y: 0.921875 },\n { x: 0.546875, y: 0.921875 },\n { x: 0.546875, y: 0.921875 },\n { x: 0.578125, y: 0.921875 },\n { x: 0.578125, y: 0.921875 },\n { x: 0.609375, y: 0.921875 },\n { x: 0.609375, y: 0.921875 },\n { x: 0.640625, y: 0.921875 },\n { x: 0.640625, y: 0.921875 },\n { x: 0.671875, y: 0.921875 },\n { x: 0.671875, y: 0.921875 },\n { x: 0.703125, y: 0.921875 },\n { x: 0.703125, y: 0.921875 },\n { x: 0.734375, y: 0.921875 },\n { x: 0.734375, y: 0.921875 },\n { x: 0.765625, y: 0.921875 },\n { x: 0.765625, y: 0.921875 },\n { x: 0.796875, y: 0.921875 },\n { x: 0.796875, y: 0.921875 },\n { x: 0.828125, y: 0.921875 },\n { x: 0.828125, y: 0.921875 },\n { x: 0.859375, y: 0.921875 },\n { x: 0.859375, y: 0.921875 },\n { x: 0.890625, y: 0.921875 },\n { x: 0.890625, y: 0.921875 },\n { x: 0.921875, y: 0.921875 },\n { x: 0.921875, y: 0.921875 },\n { x: 0.953125, y: 0.921875 },\n { x: 0.953125, y: 0.921875 },\n { x: 0.984375, y: 0.921875 },\n { x: 0.984375, y: 0.921875 },\n { x: 0.015625, y: 0.953125 },\n { x: 0.015625, y: 0.953125 },\n { x: 0.046875, y: 0.953125 },\n { x: 0.046875, y: 0.953125 },\n { x: 0.078125, y: 0.953125 },\n { x: 0.078125, y: 0.953125 },\n { x: 0.109375, y: 0.953125 },\n { x: 0.109375, y: 0.953125 },\n { x: 0.140625, y: 0.953125 },\n { x: 0.140625, y: 0.953125 },\n { x: 0.171875, y: 0.953125 },\n { x: 0.171875, y: 0.953125 },\n { x: 0.203125, y: 0.953125 },\n { x: 0.203125, y: 0.953125 },\n { x: 0.234375, y: 0.953125 },\n { x: 0.234375, y: 0.953125 },\n { x: 0.265625, y: 0.953125 },\n { x: 0.265625, y: 0.953125 },\n { x: 0.296875, y: 0.953125 },\n { x: 0.296875, y: 0.953125 },\n { x: 0.328125, y: 0.953125 },\n { x: 0.328125, y: 0.953125 },\n { x: 0.359375, y: 0.953125 },\n { x: 0.359375, y: 0.953125 },\n { x: 0.390625, y: 0.953125 },\n { x: 0.390625, y: 0.953125 },\n { x: 0.421875, y: 0.953125 },\n { x: 0.421875, y: 0.953125 },\n { x: 0.453125, y: 0.953125 },\n { x: 0.453125, y: 0.953125 },\n { x: 0.484375, y: 0.953125 },\n { x: 0.484375, y: 0.953125 },\n { x: 0.515625, y: 0.953125 },\n { x: 0.515625, y: 0.953125 },\n { x: 0.546875, y: 0.953125 },\n { x: 0.546875, y: 0.953125 },\n { x: 0.578125, y: 0.953125 },\n { x: 0.578125, y: 0.953125 },\n { x: 0.609375, y: 0.953125 },\n { x: 0.609375, y: 0.953125 },\n { x: 0.640625, y: 0.953125 },\n { x: 0.640625, y: 0.953125 },\n { x: 0.671875, y: 0.953125 },\n { x: 0.671875, y: 0.953125 },\n { x: 0.703125, y: 0.953125 },\n { x: 0.703125, y: 0.953125 },\n { x: 0.734375, y: 0.953125 },\n { x: 0.734375, y: 0.953125 },\n { x: 0.765625, y: 0.953125 },\n { x: 0.765625, y: 0.953125 },\n { x: 0.796875, y: 0.953125 },\n { x: 0.796875, y: 0.953125 },\n { x: 0.828125, y: 0.953125 },\n { x: 0.828125, y: 0.953125 },\n { x: 0.859375, y: 0.953125 },\n { x: 0.859375, y: 0.953125 },\n { x: 0.890625, y: 0.953125 },\n { x: 0.890625, y: 0.953125 },\n { x: 0.921875, y: 0.953125 },\n { x: 0.921875, y: 0.953125 },\n { x: 0.953125, y: 0.953125 },\n { x: 0.953125, y: 0.953125 },\n { x: 0.984375, y: 0.953125 },\n { x: 0.984375, y: 0.953125 },\n { x: 0.015625, y: 0.984375 },\n { x: 0.015625, y: 0.984375 },\n { x: 0.046875, y: 0.984375 },\n { x: 0.046875, y: 0.984375 },\n { x: 0.078125, y: 0.984375 },\n { x: 0.078125, y: 0.984375 },\n { x: 0.109375, y: 0.984375 },\n { x: 0.109375, y: 0.984375 },\n { x: 0.140625, y: 0.984375 },\n { x: 0.140625, y: 0.984375 },\n { x: 0.171875, y: 0.984375 },\n { x: 0.171875, y: 0.984375 },\n { x: 0.203125, y: 0.984375 },\n { x: 0.203125, y: 0.984375 },\n { x: 0.234375, y: 0.984375 },\n { x: 0.234375, y: 0.984375 },\n { x: 0.265625, y: 0.984375 },\n { x: 0.265625, y: 0.984375 },\n { x: 0.296875, y: 0.984375 },\n { x: 0.296875, y: 0.984375 },\n { x: 0.328125, y: 0.984375 },\n { x: 0.328125, y: 0.984375 },\n { x: 0.359375, y: 0.984375 },\n { x: 0.359375, y: 0.984375 },\n { x: 0.390625, y: 0.984375 },\n { x: 0.390625, y: 0.984375 },\n { x: 0.421875, y: 0.984375 },\n { x: 0.421875, y: 0.984375 },\n { x: 0.453125, y: 0.984375 },\n { x: 0.453125, y: 0.984375 },\n { x: 0.484375, y: 0.984375 },\n { x: 0.484375, y: 0.984375 },\n { x: 0.515625, y: 0.984375 },\n { x: 0.515625, y: 0.984375 },\n { x: 0.546875, y: 0.984375 },\n { x: 0.546875, y: 0.984375 },\n { x: 0.578125, y: 0.984375 },\n { x: 0.578125, y: 0.984375 },\n { x: 0.609375, y: 0.984375 },\n { x: 0.609375, y: 0.984375 },\n { x: 0.640625, y: 0.984375 },\n { x: 0.640625, y: 0.984375 },\n { x: 0.671875, y: 0.984375 },\n { x: 0.671875, y: 0.984375 },\n { x: 0.703125, y: 0.984375 },\n { x: 0.703125, y: 0.984375 },\n { x: 0.734375, y: 0.984375 },\n { x: 0.734375, y: 0.984375 },\n { x: 0.765625, y: 0.984375 },\n { x: 0.765625, y: 0.984375 },\n { x: 0.796875, y: 0.984375 },\n { x: 0.796875, y: 0.984375 },\n { x: 0.828125, y: 0.984375 },\n { x: 0.828125, y: 0.984375 },\n { x: 0.859375, y: 0.984375 },\n { x: 0.859375, y: 0.984375 },\n { x: 0.890625, y: 0.984375 },\n { x: 0.890625, y: 0.984375 },\n { x: 0.921875, y: 0.984375 },\n { x: 0.921875, y: 0.984375 },\n { x: 0.953125, y: 0.984375 },\n { x: 0.953125, y: 0.984375 },\n { x: 0.984375, y: 0.984375 },\n { x: 0.984375, y: 0.984375 },\n { x: 0.03125, y: 0.03125 },\n { x: 0.03125, y: 0.03125 },\n { x: 0.09375, y: 0.03125 },\n { x: 0.09375, y: 0.03125 },\n { x: 0.15625, y: 0.03125 },\n { x: 0.15625, y: 0.03125 },\n { x: 0.21875, y: 0.03125 },\n { x: 0.21875, y: 0.03125 },\n { x: 0.28125, y: 0.03125 },\n { x: 0.28125, y: 0.03125 },\n { x: 0.34375, y: 0.03125 },\n { x: 0.34375, y: 0.03125 },\n { x: 0.40625, y: 0.03125 },\n { x: 0.40625, y: 0.03125 },\n { x: 0.46875, y: 0.03125 },\n { x: 0.46875, y: 0.03125 },\n { x: 0.53125, y: 0.03125 },\n { x: 0.53125, y: 0.03125 },\n { x: 0.59375, y: 0.03125 },\n { x: 0.59375, y: 0.03125 },\n { x: 0.65625, y: 0.03125 },\n { x: 0.65625, y: 0.03125 },\n { x: 0.71875, y: 0.03125 },\n { x: 0.71875, y: 0.03125 },\n { x: 0.78125, y: 0.03125 },\n { x: 0.78125, y: 0.03125 },\n { x: 0.84375, y: 0.03125 },\n { x: 0.84375, y: 0.03125 },\n { x: 0.90625, y: 0.03125 },\n { x: 0.90625, y: 0.03125 },\n { x: 0.96875, y: 0.03125 },\n { x: 0.96875, y: 0.03125 },\n { x: 0.03125, y: 0.09375 },\n { x: 0.03125, y: 0.09375 },\n { x: 0.09375, y: 0.09375 },\n { x: 0.09375, y: 0.09375 },\n { x: 0.15625, y: 0.09375 },\n { x: 0.15625, y: 0.09375 },\n { x: 0.21875, y: 0.09375 },\n { x: 0.21875, y: 0.09375 },\n { x: 0.28125, y: 0.09375 },\n { x: 0.28125, y: 0.09375 },\n { x: 0.34375, y: 0.09375 },\n { x: 0.34375, y: 0.09375 },\n { x: 0.40625, y: 0.09375 },\n { x: 0.40625, y: 0.09375 },\n { x: 0.46875, y: 0.09375 },\n { x: 0.46875, y: 0.09375 },\n { x: 0.53125, y: 0.09375 },\n { x: 0.53125, y: 0.09375 },\n { x: 0.59375, y: 0.09375 },\n { x: 0.59375, y: 0.09375 },\n { x: 0.65625, y: 0.09375 },\n { x: 0.65625, y: 0.09375 },\n { x: 0.71875, y: 0.09375 },\n { x: 0.71875, y: 0.09375 },\n { x: 0.78125, y: 0.09375 },\n { x: 0.78125, y: 0.09375 },\n { x: 0.84375, y: 0.09375 },\n { x: 0.84375, y: 0.09375 },\n { x: 0.90625, y: 0.09375 },\n { x: 0.90625, y: 0.09375 },\n { x: 0.96875, y: 0.09375 },\n { x: 0.96875, y: 0.09375 },\n { x: 0.03125, y: 0.15625 },\n { x: 0.03125, y: 0.15625 },\n { x: 0.09375, y: 0.15625 },\n { x: 0.09375, y: 0.15625 },\n { x: 0.15625, y: 0.15625 },\n { x: 0.15625, y: 0.15625 },\n { x: 0.21875, y: 0.15625 },\n { x: 0.21875, y: 0.15625 },\n { x: 0.28125, y: 0.15625 },\n { x: 0.28125, y: 0.15625 },\n { x: 0.34375, y: 0.15625 },\n { x: 0.34375, y: 0.15625 },\n { x: 0.40625, y: 0.15625 },\n { x: 0.40625, y: 0.15625 },\n { x: 0.46875, y: 0.15625 },\n { x: 0.46875, y: 0.15625 },\n { x: 0.53125, y: 0.15625 },\n { x: 0.53125, y: 0.15625 },\n { x: 0.59375, y: 0.15625 },\n { x: 0.59375, y: 0.15625 },\n { x: 0.65625, y: 0.15625 },\n { x: 0.65625, y: 0.15625 },\n { x: 0.71875, y: 0.15625 },\n { x: 0.71875, y: 0.15625 },\n { x: 0.78125, y: 0.15625 },\n { x: 0.78125, y: 0.15625 },\n { x: 0.84375, y: 0.15625 },\n { x: 0.84375, y: 0.15625 },\n { x: 0.90625, y: 0.15625 },\n { x: 0.90625, y: 0.15625 },\n { x: 0.96875, y: 0.15625 },\n { x: 0.96875, y: 0.15625 },\n { x: 0.03125, y: 0.21875 },\n { x: 0.03125, y: 0.21875 },\n { x: 0.09375, y: 0.21875 },\n { x: 0.09375, y: 0.21875 },\n { x: 0.15625, y: 0.21875 },\n { x: 0.15625, y: 0.21875 },\n { x: 0.21875, y: 0.21875 },\n { x: 0.21875, y: 0.21875 },\n { x: 0.28125, y: 0.21875 },\n { x: 0.28125, y: 0.21875 },\n { x: 0.34375, y: 0.21875 },\n { x: 0.34375, y: 0.21875 },\n { x: 0.40625, y: 0.21875 },\n { x: 0.40625, y: 0.21875 },\n { x: 0.46875, y: 0.21875 },\n { x: 0.46875, y: 0.21875 },\n { x: 0.53125, y: 0.21875 },\n { x: 0.53125, y: 0.21875 },\n { x: 0.59375, y: 0.21875 },\n { x: 0.59375, y: 0.21875 },\n { x: 0.65625, y: 0.21875 },\n { x: 0.65625, y: 0.21875 },\n { x: 0.71875, y: 0.21875 },\n { x: 0.71875, y: 0.21875 },\n { x: 0.78125, y: 0.21875 },\n { x: 0.78125, y: 0.21875 },\n { x: 0.84375, y: 0.21875 },\n { x: 0.84375, y: 0.21875 },\n { x: 0.90625, y: 0.21875 },\n { x: 0.90625, y: 0.21875 },\n { x: 0.96875, y: 0.21875 },\n { x: 0.96875, y: 0.21875 },\n { x: 0.03125, y: 0.28125 },\n { x: 0.03125, y: 0.28125 },\n { x: 0.09375, y: 0.28125 },\n { x: 0.09375, y: 0.28125 },\n { x: 0.15625, y: 0.28125 },\n { x: 0.15625, y: 0.28125 },\n { x: 0.21875, y: 0.28125 },\n { x: 0.21875, y: 0.28125 },\n { x: 0.28125, y: 0.28125 },\n { x: 0.28125, y: 0.28125 },\n { x: 0.34375, y: 0.28125 },\n { x: 0.34375, y: 0.28125 },\n { x: 0.40625, y: 0.28125 },\n { x: 0.40625, y: 0.28125 },\n { x: 0.46875, y: 0.28125 },\n { x: 0.46875, y: 0.28125 },\n { x: 0.53125, y: 0.28125 },\n { x: 0.53125, y: 0.28125 },\n { x: 0.59375, y: 0.28125 },\n { x: 0.59375, y: 0.28125 },\n { x: 0.65625, y: 0.28125 },\n { x: 0.65625, y: 0.28125 },\n { x: 0.71875, y: 0.28125 },\n { x: 0.71875, y: 0.28125 },\n { x: 0.78125, y: 0.28125 },\n { x: 0.78125, y: 0.28125 },\n { x: 0.84375, y: 0.28125 },\n { x: 0.84375, y: 0.28125 },\n { x: 0.90625, y: 0.28125 },\n { x: 0.90625, y: 0.28125 },\n { x: 0.96875, y: 0.28125 },\n { x: 0.96875, y: 0.28125 },\n { x: 0.03125, y: 0.34375 },\n { x: 0.03125, y: 0.34375 },\n { x: 0.09375, y: 0.34375 },\n { x: 0.09375, y: 0.34375 },\n { x: 0.15625, y: 0.34375 },\n { x: 0.15625, y: 0.34375 },\n { x: 0.21875, y: 0.34375 },\n { x: 0.21875, y: 0.34375 },\n { x: 0.28125, y: 0.34375 },\n { x: 0.28125, y: 0.34375 },\n { x: 0.34375, y: 0.34375 },\n { x: 0.34375, y: 0.34375 },\n { x: 0.40625, y: 0.34375 },\n { x: 0.40625, y: 0.34375 },\n { x: 0.46875, y: 0.34375 },\n { x: 0.46875, y: 0.34375 },\n { x: 0.53125, y: 0.34375 },\n { x: 0.53125, y: 0.34375 },\n { x: 0.59375, y: 0.34375 },\n { x: 0.59375, y: 0.34375 },\n { x: 0.65625, y: 0.34375 },\n { x: 0.65625, y: 0.34375 },\n { x: 0.71875, y: 0.34375 },\n { x: 0.71875, y: 0.34375 },\n { x: 0.78125, y: 0.34375 },\n { x: 0.78125, y: 0.34375 },\n { x: 0.84375, y: 0.34375 },\n { x: 0.84375, y: 0.34375 },\n { x: 0.90625, y: 0.34375 },\n { x: 0.90625, y: 0.34375 },\n { x: 0.96875, y: 0.34375 },\n { x: 0.96875, y: 0.34375 },\n { x: 0.03125, y: 0.40625 },\n { x: 0.03125, y: 0.40625 },\n { x: 0.09375, y: 0.40625 },\n { x: 0.09375, y: 0.40625 },\n { x: 0.15625, y: 0.40625 },\n { x: 0.15625, y: 0.40625 },\n { x: 0.21875, y: 0.40625 },\n { x: 0.21875, y: 0.40625 },\n { x: 0.28125, y: 0.40625 },\n { x: 0.28125, y: 0.40625 },\n { x: 0.34375, y: 0.40625 },\n { x: 0.34375, y: 0.40625 },\n { x: 0.40625, y: 0.40625 },\n { x: 0.40625, y: 0.40625 },\n { x: 0.46875, y: 0.40625 },\n { x: 0.46875, y: 0.40625 },\n { x: 0.53125, y: 0.40625 },\n { x: 0.53125, y: 0.40625 },\n { x: 0.59375, y: 0.40625 },\n { x: 0.59375, y: 0.40625 },\n { x: 0.65625, y: 0.40625 },\n { x: 0.65625, y: 0.40625 },\n { x: 0.71875, y: 0.40625 },\n { x: 0.71875, y: 0.40625 },\n { x: 0.78125, y: 0.40625 },\n { x: 0.78125, y: 0.40625 },\n { x: 0.84375, y: 0.40625 },\n { x: 0.84375, y: 0.40625 },\n { x: 0.90625, y: 0.40625 },\n { x: 0.90625, y: 0.40625 },\n { x: 0.96875, y: 0.40625 },\n { x: 0.96875, y: 0.40625 },\n { x: 0.03125, y: 0.46875 },\n { x: 0.03125, y: 0.46875 },\n { x: 0.09375, y: 0.46875 },\n { x: 0.09375, y: 0.46875 },\n { x: 0.15625, y: 0.46875 },\n { x: 0.15625, y: 0.46875 },\n { x: 0.21875, y: 0.46875 },\n { x: 0.21875, y: 0.46875 },\n { x: 0.28125, y: 0.46875 },\n { x: 0.28125, y: 0.46875 },\n { x: 0.34375, y: 0.46875 },\n { x: 0.34375, y: 0.46875 },\n { x: 0.40625, y: 0.46875 },\n { x: 0.40625, y: 0.46875 },\n { x: 0.46875, y: 0.46875 },\n { x: 0.46875, y: 0.46875 },\n { x: 0.53125, y: 0.46875 },\n { x: 0.53125, y: 0.46875 },\n { x: 0.59375, y: 0.46875 },\n { x: 0.59375, y: 0.46875 },\n { x: 0.65625, y: 0.46875 },\n { x: 0.65625, y: 0.46875 },\n { x: 0.71875, y: 0.46875 },\n { x: 0.71875, y: 0.46875 },\n { x: 0.78125, y: 0.46875 },\n { x: 0.78125, y: 0.46875 },\n { x: 0.84375, y: 0.46875 },\n { x: 0.84375, y: 0.46875 },\n { x: 0.90625, y: 0.46875 },\n { x: 0.90625, y: 0.46875 },\n { x: 0.96875, y: 0.46875 },\n { x: 0.96875, y: 0.46875 },\n { x: 0.03125, y: 0.53125 },\n { x: 0.03125, y: 0.53125 },\n { x: 0.09375, y: 0.53125 },\n { x: 0.09375, y: 0.53125 },\n { x: 0.15625, y: 0.53125 },\n { x: 0.15625, y: 0.53125 },\n { x: 0.21875, y: 0.53125 },\n { x: 0.21875, y: 0.53125 },\n { x: 0.28125, y: 0.53125 },\n { x: 0.28125, y: 0.53125 },\n { x: 0.34375, y: 0.53125 },\n { x: 0.34375, y: 0.53125 },\n { x: 0.40625, y: 0.53125 },\n { x: 0.40625, y: 0.53125 },\n { x: 0.46875, y: 0.53125 },\n { x: 0.46875, y: 0.53125 },\n { x: 0.53125, y: 0.53125 },\n { x: 0.53125, y: 0.53125 },\n { x: 0.59375, y: 0.53125 },\n { x: 0.59375, y: 0.53125 },\n { x: 0.65625, y: 0.53125 },\n { x: 0.65625, y: 0.53125 },\n { x: 0.71875, y: 0.53125 },\n { x: 0.71875, y: 0.53125 },\n { x: 0.78125, y: 0.53125 },\n { x: 0.78125, y: 0.53125 },\n { x: 0.84375, y: 0.53125 },\n { x: 0.84375, y: 0.53125 },\n { x: 0.90625, y: 0.53125 },\n { x: 0.90625, y: 0.53125 },\n { x: 0.96875, y: 0.53125 },\n { x: 0.96875, y: 0.53125 },\n { x: 0.03125, y: 0.59375 },\n { x: 0.03125, y: 0.59375 },\n { x: 0.09375, y: 0.59375 },\n { x: 0.09375, y: 0.59375 },\n { x: 0.15625, y: 0.59375 },\n { x: 0.15625, y: 0.59375 },\n { x: 0.21875, y: 0.59375 },\n { x: 0.21875, y: 0.59375 },\n { x: 0.28125, y: 0.59375 },\n { x: 0.28125, y: 0.59375 },\n { x: 0.34375, y: 0.59375 },\n { x: 0.34375, y: 0.59375 },\n { x: 0.40625, y: 0.59375 },\n { x: 0.40625, y: 0.59375 },\n { x: 0.46875, y: 0.59375 },\n { x: 0.46875, y: 0.59375 },\n { x: 0.53125, y: 0.59375 },\n { x: 0.53125, y: 0.59375 },\n { x: 0.59375, y: 0.59375 },\n { x: 0.59375, y: 0.59375 },\n { x: 0.65625, y: 0.59375 },\n { x: 0.65625, y: 0.59375 },\n { x: 0.71875, y: 0.59375 },\n { x: 0.71875, y: 0.59375 },\n { x: 0.78125, y: 0.59375 },\n { x: 0.78125, y: 0.59375 },\n { x: 0.84375, y: 0.59375 },\n { x: 0.84375, y: 0.59375 },\n { x: 0.90625, y: 0.59375 },\n { x: 0.90625, y: 0.59375 },\n { x: 0.96875, y: 0.59375 },\n { x: 0.96875, y: 0.59375 },\n { x: 0.03125, y: 0.65625 },\n { x: 0.03125, y: 0.65625 },\n { x: 0.09375, y: 0.65625 },\n { x: 0.09375, y: 0.65625 },\n { x: 0.15625, y: 0.65625 },\n { x: 0.15625, y: 0.65625 },\n { x: 0.21875, y: 0.65625 },\n { x: 0.21875, y: 0.65625 },\n { x: 0.28125, y: 0.65625 },\n { x: 0.28125, y: 0.65625 },\n { x: 0.34375, y: 0.65625 },\n { x: 0.34375, y: 0.65625 },\n { x: 0.40625, y: 0.65625 },\n { x: 0.40625, y: 0.65625 },\n { x: 0.46875, y: 0.65625 },\n { x: 0.46875, y: 0.65625 },\n { x: 0.53125, y: 0.65625 },\n { x: 0.53125, y: 0.65625 },\n { x: 0.59375, y: 0.65625 },\n { x: 0.59375, y: 0.65625 },\n { x: 0.65625, y: 0.65625 },\n { x: 0.65625, y: 0.65625 },\n { x: 0.71875, y: 0.65625 },\n { x: 0.71875, y: 0.65625 },\n { x: 0.78125, y: 0.65625 },\n { x: 0.78125, y: 0.65625 },\n { x: 0.84375, y: 0.65625 },\n { x: 0.84375, y: 0.65625 },\n { x: 0.90625, y: 0.65625 },\n { x: 0.90625, y: 0.65625 },\n { x: 0.96875, y: 0.65625 },\n { x: 0.96875, y: 0.65625 },\n { x: 0.03125, y: 0.71875 },\n { x: 0.03125, y: 0.71875 },\n { x: 0.09375, y: 0.71875 },\n { x: 0.09375, y: 0.71875 },\n { x: 0.15625, y: 0.71875 },\n { x: 0.15625, y: 0.71875 },\n { x: 0.21875, y: 0.71875 },\n { x: 0.21875, y: 0.71875 },\n { x: 0.28125, y: 0.71875 },\n { x: 0.28125, y: 0.71875 },\n { x: 0.34375, y: 0.71875 },\n { x: 0.34375, y: 0.71875 },\n { x: 0.40625, y: 0.71875 },\n { x: 0.40625, y: 0.71875 },\n { x: 0.46875, y: 0.71875 },\n { x: 0.46875, y: 0.71875 },\n { x: 0.53125, y: 0.71875 },\n { x: 0.53125, y: 0.71875 },\n { x: 0.59375, y: 0.71875 },\n { x: 0.59375, y: 0.71875 },\n { x: 0.65625, y: 0.71875 },\n { x: 0.65625, y: 0.71875 },\n { x: 0.71875, y: 0.71875 },\n { x: 0.71875, y: 0.71875 },\n { x: 0.78125, y: 0.71875 },\n { x: 0.78125, y: 0.71875 },\n { x: 0.84375, y: 0.71875 },\n { x: 0.84375, y: 0.71875 },\n { x: 0.90625, y: 0.71875 },\n { x: 0.90625, y: 0.71875 },\n { x: 0.96875, y: 0.71875 },\n { x: 0.96875, y: 0.71875 },\n { x: 0.03125, y: 0.78125 },\n { x: 0.03125, y: 0.78125 },\n { x: 0.09375, y: 0.78125 },\n { x: 0.09375, y: 0.78125 },\n { x: 0.15625, y: 0.78125 },\n { x: 0.15625, y: 0.78125 },\n { x: 0.21875, y: 0.78125 },\n { x: 0.21875, y: 0.78125 },\n { x: 0.28125, y: 0.78125 },\n { x: 0.28125, y: 0.78125 },\n { x: 0.34375, y: 0.78125 },\n { x: 0.34375, y: 0.78125 },\n { x: 0.40625, y: 0.78125 },\n { x: 0.40625, y: 0.78125 },\n { x: 0.46875, y: 0.78125 },\n { x: 0.46875, y: 0.78125 },\n { x: 0.53125, y: 0.78125 },\n { x: 0.53125, y: 0.78125 },\n { x: 0.59375, y: 0.78125 },\n { x: 0.59375, y: 0.78125 },\n { x: 0.65625, y: 0.78125 },\n { x: 0.65625, y: 0.78125 },\n { x: 0.71875, y: 0.78125 },\n { x: 0.71875, y: 0.78125 },\n { x: 0.78125, y: 0.78125 },\n { x: 0.78125, y: 0.78125 },\n { x: 0.84375, y: 0.78125 },\n { x: 0.84375, y: 0.78125 },\n { x: 0.90625, y: 0.78125 },\n { x: 0.90625, y: 0.78125 },\n { x: 0.96875, y: 0.78125 },\n { x: 0.96875, y: 0.78125 },\n { x: 0.03125, y: 0.84375 },\n { x: 0.03125, y: 0.84375 },\n { x: 0.09375, y: 0.84375 },\n { x: 0.09375, y: 0.84375 },\n { x: 0.15625, y: 0.84375 },\n { x: 0.15625, y: 0.84375 },\n { x: 0.21875, y: 0.84375 },\n { x: 0.21875, y: 0.84375 },\n { x: 0.28125, y: 0.84375 },\n { x: 0.28125, y: 0.84375 },\n { x: 0.34375, y: 0.84375 },\n { x: 0.34375, y: 0.84375 },\n { x: 0.40625, y: 0.84375 },\n { x: 0.40625, y: 0.84375 },\n { x: 0.46875, y: 0.84375 },\n { x: 0.46875, y: 0.84375 },\n { x: 0.53125, y: 0.84375 },\n { x: 0.53125, y: 0.84375 },\n { x: 0.59375, y: 0.84375 },\n { x: 0.59375, y: 0.84375 },\n { x: 0.65625, y: 0.84375 },\n { x: 0.65625, y: 0.84375 },\n { x: 0.71875, y: 0.84375 },\n { x: 0.71875, y: 0.84375 },\n { x: 0.78125, y: 0.84375 },\n { x: 0.78125, y: 0.84375 },\n { x: 0.84375, y: 0.84375 },\n { x: 0.84375, y: 0.84375 },\n { x: 0.90625, y: 0.84375 },\n { x: 0.90625, y: 0.84375 },\n { x: 0.96875, y: 0.84375 },\n { x: 0.96875, y: 0.84375 },\n { x: 0.03125, y: 0.90625 },\n { x: 0.03125, y: 0.90625 },\n { x: 0.09375, y: 0.90625 },\n { x: 0.09375, y: 0.90625 },\n { x: 0.15625, y: 0.90625 },\n { x: 0.15625, y: 0.90625 },\n { x: 0.21875, y: 0.90625 },\n { x: 0.21875, y: 0.90625 },\n { x: 0.28125, y: 0.90625 },\n { x: 0.28125, y: 0.90625 },\n { x: 0.34375, y: 0.90625 },\n { x: 0.34375, y: 0.90625 },\n { x: 0.40625, y: 0.90625 },\n { x: 0.40625, y: 0.90625 },\n { x: 0.46875, y: 0.90625 },\n { x: 0.46875, y: 0.90625 },\n { x: 0.53125, y: 0.90625 },\n { x: 0.53125, y: 0.90625 },\n { x: 0.59375, y: 0.90625 },\n { x: 0.59375, y: 0.90625 },\n { x: 0.65625, y: 0.90625 },\n { x: 0.65625, y: 0.90625 },\n { x: 0.71875, y: 0.90625 },\n { x: 0.71875, y: 0.90625 },\n { x: 0.78125, y: 0.90625 },\n { x: 0.78125, y: 0.90625 },\n { x: 0.84375, y: 0.90625 },\n { x: 0.84375, y: 0.90625 },\n { x: 0.90625, y: 0.90625 },\n { x: 0.90625, y: 0.90625 },\n { x: 0.96875, y: 0.90625 },\n { x: 0.96875, y: 0.90625 },\n { x: 0.03125, y: 0.96875 },\n { x: 0.03125, y: 0.96875 },\n { x: 0.09375, y: 0.96875 },\n { x: 0.09375, y: 0.96875 },\n { x: 0.15625, y: 0.96875 },\n { x: 0.15625, y: 0.96875 },\n { x: 0.21875, y: 0.96875 },\n { x: 0.21875, y: 0.96875 },\n { x: 0.28125, y: 0.96875 },\n { x: 0.28125, y: 0.96875 },\n { x: 0.34375, y: 0.96875 },\n { x: 0.34375, y: 0.96875 },\n { x: 0.40625, y: 0.96875 },\n { x: 0.40625, y: 0.96875 },\n { x: 0.46875, y: 0.96875 },\n { x: 0.46875, y: 0.96875 },\n { x: 0.53125, y: 0.96875 },\n { x: 0.53125, y: 0.96875 },\n { x: 0.59375, y: 0.96875 },\n { x: 0.59375, y: 0.96875 },\n { x: 0.65625, y: 0.96875 },\n { x: 0.65625, y: 0.96875 },\n { x: 0.71875, y: 0.96875 },\n { x: 0.71875, y: 0.96875 },\n { x: 0.78125, y: 0.96875 },\n { x: 0.78125, y: 0.96875 },\n { x: 0.84375, y: 0.96875 },\n { x: 0.84375, y: 0.96875 },\n { x: 0.90625, y: 0.96875 },\n { x: 0.90625, y: 0.96875 },\n { x: 0.96875, y: 0.96875 },\n { x: 0.96875, y: 0.96875 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.0625, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.1875, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.3125, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.4375, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.5625, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.6875, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.8125, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.9375, y: 0.0625 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.0625, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.1875, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.3125, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.4375, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.5625, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.6875, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.8125, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.9375, y: 0.1875 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.0625, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.1875, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.3125, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.4375, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.5625, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.6875, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.8125, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.9375, y: 0.3125 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.0625, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.1875, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.3125, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.4375, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.5625, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.6875, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.8125, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.9375, y: 0.4375 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.0625, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.1875, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.3125, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.4375, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.5625, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.6875, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.8125, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.9375, y: 0.5625 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.0625, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.1875, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.3125, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.4375, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.5625, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.6875, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.8125, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.9375, y: 0.6875 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.0625, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.1875, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.3125, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.4375, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.5625, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.6875, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.8125, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.9375, y: 0.8125 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.0625, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.1875, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.3125, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.4375, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.5625, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.6875, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.8125, y: 0.9375 },\n { x: 0.9375, y: 0.9375 },\n { x: 0.9375, y: 0.9375 },\n { x: 0.9375, y: 0.9375 },\n { x: 0.9375, y: 0.9375 },\n { x: 0.9375, y: 0.9375 },\n { x: 0.9375, y: 0.9375 }\n];\n\n// src/hand/handposedetector.ts\nvar HandDetector = class {\n constructor(model23) {\n __publicField(this, \"model\");\n __publicField(this, \"anchors\");\n __publicField(this, \"anchorsTensor\");\n __publicField(this, \"inputSize\");\n __publicField(this, \"inputSizeTensor\");\n __publicField(this, \"doubleInputSizeTensor\");\n var _a, _b, _c2, _d2;\n this.model = model23;\n this.anchors = anchors2.map((anchor) => [anchor.x, anchor.y]);\n this.anchorsTensor = fu(this.anchors);\n this.inputSize = ((_d2 = (_c2 = (_b = (_a = this == null ? void 0 : this.model) == null ? void 0 : _a.inputs) == null ? void 0 : _b[0]) == null ? void 0 : _c2.shape) == null ? void 0 : _d2[2]) || 0;\n this.inputSizeTensor = tr([this.inputSize, this.inputSize]);\n this.doubleInputSizeTensor = tr([this.inputSize * 2, this.inputSize * 2]);\n }\n normalizeBoxes(boxes) {\n const t8 = {};\n t8.boxOffsets = Xe(boxes, [0, 0], [-1, 2]);\n t8.boxSizes = Xe(boxes, [0, 2], [-1, 2]);\n t8.div = je(t8.boxOffsets, this.inputSizeTensor);\n t8.boxCenterPoints = Ce(t8.div, this.anchorsTensor);\n t8.halfBoxSizes = je(t8.boxSizes, this.doubleInputSizeTensor);\n t8.sub = Te(t8.boxCenterPoints, t8.halfBoxSizes);\n t8.startPoints = se(t8.sub, this.inputSizeTensor);\n t8.add = Ce(t8.boxCenterPoints, t8.halfBoxSizes);\n t8.endPoints = se(t8.add, this.inputSizeTensor);\n const res = Yk([t8.startPoints, t8.endPoints], 1);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return res;\n }\n normalizeLandmarks(rawPalmLandmarks, index2) {\n const t8 = {};\n t8.reshape = W(rawPalmLandmarks, [-1, 7, 2]);\n t8.div = je(t8.reshape, this.inputSizeTensor);\n t8.landmarks = Ce(t8.div, this.anchors[index2] ? this.anchors[index2] : 0);\n const res = se(t8.landmarks, this.inputSizeTensor);\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return res;\n }\n async predict(input, config3) {\n var _a;\n const t8 = {};\n t8.resize = Kj.resizeBilinear(input, [this.inputSize, this.inputSize]);\n t8.div = je(t8.resize, constants.tf127);\n t8.image = Te(t8.div, constants.tf1);\n t8.batched = this.model.execute(t8.image);\n t8.predictions = gc(t8.batched);\n t8.slice = Xe(t8.predictions, [0, 0], [-1, 1]);\n t8.sigmoid = $a(t8.slice);\n t8.scores = gc(t8.sigmoid);\n const scores = await t8.scores.data();\n t8.boxes = Xe(t8.predictions, [0, 1], [-1, 4]);\n t8.norm = this.normalizeBoxes(t8.boxes);\n t8.nms = await Kj.nonMaxSuppressionAsync(t8.norm, t8.scores, 3 * (((_a = config3.hand) == null ? void 0 : _a.maxDetected) || 1), config3.hand.iouThreshold, config3.hand.minConfidence);\n const nms = await t8.nms.array();\n const hands = [];\n for (const index2 of nms) {\n const p = {};\n p.box = Xe(t8.norm, [index2, 0], [1, -1]);\n p.slice = Xe(t8.predictions, [index2, 5], [1, 14]);\n p.norm = this.normalizeLandmarks(p.slice, index2);\n p.palmLandmarks = W(p.norm, [-1, 2]);\n const box = await p.box.data();\n const startPoint = box.slice(0, 2);\n const endPoint = box.slice(2, 4);\n const palmLandmarks = await p.palmLandmarks.array();\n const hand3 = { startPoint, endPoint, palmLandmarks, confidence: scores[index2] };\n const scaled = scaleBoxCoordinates2(hand3, [(input.shape[2] || 1) / this.inputSize, (input.shape[1] || 0) / this.inputSize]);\n hands.push(scaled);\n Object.keys(p).forEach((tensor) => Mt(p[tensor]));\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return hands;\n }\n};\n\n// src/hand/handposepipeline.ts\nvar palmBoxEnlargeFactor = 5;\nvar handBoxEnlargeFactor = 1.65;\nvar palmLandmarkIds = [0, 5, 9, 13, 17, 1, 2];\nvar palmLandmarksPalmBase = 0;\nvar palmLandmarksMiddleFingerBase = 2;\nvar lastTime13 = 0;\nvar HandPipeline = class {\n constructor(handDetector, handPoseModel2) {\n __publicField(this, \"handDetector\");\n __publicField(this, \"handPoseModel\");\n __publicField(this, \"inputSize\");\n __publicField(this, \"storedBoxes\");\n __publicField(this, \"skipped\");\n __publicField(this, \"detectedHands\");\n var _a, _b, _c2;\n this.handDetector = handDetector;\n this.handPoseModel = handPoseModel2;\n this.inputSize = ((_c2 = (_b = (_a = this.handPoseModel) == null ? void 0 : _a.inputs) == null ? void 0 : _b[0].shape) == null ? void 0 : _c2[2]) || 0;\n this.storedBoxes = [];\n this.skipped = Number.MAX_SAFE_INTEGER;\n this.detectedHands = 0;\n }\n calculateLandmarksBoundingBox(landmarks) {\n const xs2 = landmarks.map((d) => d[0]);\n const ys2 = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs2), Math.min(...ys2)];\n const endPoint = [Math.max(...xs2), Math.max(...ys2)];\n return { startPoint, endPoint };\n }\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => rotatePoint2([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n return enlargeBox2(squarifyBox2(boxAroundPalm), palmBoxEnlargeFactor);\n }\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n const boxAroundHand = enlargeBox2(squarifyBox2(boundingBox), handBoxEnlargeFactor);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < palmLandmarkIds.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[palmLandmarkIds[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = getBoxSize2(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2]\n ]);\n const coordsRotationMatrix = buildRotationMatrix2(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = rotatePoint2(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = invertTransformMatrix2(rotationMatrix);\n const boxCenter = [...getBoxCenter2(box2), 1];\n const originalBoxCenter = [\n dot2(boxCenter, inverseRotationMatrix[0]),\n dot2(boxCenter, inverseRotationMatrix[1])\n ];\n return coordsRotated.map((coord) => [\n Math.trunc(coord[0] + originalBoxCenter[0]),\n Math.trunc(coord[1] + originalBoxCenter[1]),\n Math.trunc(coord[2])\n ]);\n }\n async estimateHands(image, config3) {\n let useFreshBox = false;\n let boxes;\n const skipTime = (config3.hand.skipTime || 0) > now() - lastTime13;\n const skipFrame = this.skipped < (config3.hand.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame) {\n this.skipped++;\n } else {\n boxes = await this.handDetector.predict(image, config3);\n this.skipped = 0;\n }\n if (boxes && boxes.length > 0 && (boxes.length !== this.detectedHands && this.detectedHands !== config3.hand.maxDetected || !config3.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n if (this.storedBoxes.length > 0)\n useFreshBox = true;\n }\n const hands = [];\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox)\n continue;\n if (config3.hand.landmarks) {\n const angle = config3.hand.rotation ? computeRotation2(currentBox.palmLandmarks[palmLandmarksPalmBase], currentBox.palmLandmarks[palmLandmarksMiddleFingerBase]) : 0;\n const palmCenter = getBoxCenter2(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config3.hand.rotation && env.kernels.includes(\"rotatewithoffset\") ? Kj.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = buildRotationMatrix2(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = je(croppedInput, constants.tf255);\n Mt(croppedInput);\n Mt(rotatedImage);\n const [confidenceT, keypoints] = this.handPoseModel.execute(handImage);\n lastTime13 = now();\n Mt(handImage);\n const confidence = (await confidenceT.data())[0];\n Mt(confidenceT);\n if (confidence >= config3.hand.minConfidence / 4) {\n const keypointsReshaped = W(keypoints, [-1, 3]);\n const rawCoords = await keypointsReshaped.array();\n Mt(keypoints);\n Mt(keypointsReshaped);\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = { ...nextBoundingBox, confidence };\n const result = {\n landmarks: coords,\n confidence,\n boxConfidence: currentBox.confidence,\n fingerConfidence: confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint }\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n Mt(keypoints);\n } else {\n const enlarged = enlargeBox2(squarifyBox2(currentBox), handBoxEnlargeFactor);\n const result = {\n confidence: currentBox.confidence,\n boxConfidence: currentBox.confidence,\n fingerConfidence: 0,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n landmarks: []\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n if (hands.length > config3.hand.maxDetected)\n hands.length = config3.hand.maxDetected;\n return hands;\n }\n};\n\n// src/hand/handpose.ts\nvar meshAnnotations2 = {\n thumb: [1, 2, 3, 4],\n index: [5, 6, 7, 8],\n middle: [9, 10, 11, 12],\n ring: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palm: [0]\n};\nvar handDetectorModel;\nvar handPoseModel;\nvar handPipeline;\nfunction initPipeline() {\n const handDetector = handDetectorModel ? new HandDetector(handDetectorModel) : void 0;\n if (handDetector && handPoseModel)\n handPipeline = new HandPipeline(handDetector, handPoseModel);\n}\nasync function predict14(input, config3) {\n if (!handPipeline)\n initPipeline();\n const predictions = await handPipeline.estimateHands(input, config3);\n if (!predictions)\n return [];\n const hands = [];\n for (let i = 0; i < predictions.length; i++) {\n const annotations2 = {};\n if (predictions[i].landmarks) {\n for (const key of Object.keys(meshAnnotations2)) {\n annotations2[key] = meshAnnotations2[key].map((index2) => predictions[i].landmarks[index2]);\n }\n }\n const keypoints = predictions[i].landmarks;\n let box = [Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, 0, 0];\n let boxRaw = [0, 0, 0, 0];\n if (keypoints && keypoints.length > 0) {\n for (const pt2 of keypoints) {\n if (pt2[0] < box[0])\n box[0] = pt2[0];\n if (pt2[1] < box[1])\n box[1] = pt2[1];\n if (pt2[0] > box[2])\n box[2] = pt2[0];\n if (pt2[1] > box[3])\n box[3] = pt2[1];\n }\n box[2] -= box[0];\n box[3] -= box[1];\n boxRaw = [box[0] / (input.shape[2] || 0), box[1] / (input.shape[1] || 0), box[2] / (input.shape[2] || 0), box[3] / (input.shape[1] || 0)];\n } else {\n box = predictions[i].box ? [\n Math.trunc(Math.max(0, predictions[i].box.topLeft[0])),\n Math.trunc(Math.max(0, predictions[i].box.topLeft[1])),\n Math.trunc(Math.min(input.shape[2] || 0, predictions[i].box.bottomRight[0]) - Math.max(0, predictions[i].box.topLeft[0])),\n Math.trunc(Math.min(input.shape[1] || 0, predictions[i].box.bottomRight[1]) - Math.max(0, predictions[i].box.topLeft[1]))\n ] : [0, 0, 0, 0];\n boxRaw = [\n predictions[i].box.topLeft[0] / (input.shape[2] || 0),\n predictions[i].box.topLeft[1] / (input.shape[1] || 0),\n (predictions[i].box.bottomRight[0] - predictions[i].box.topLeft[0]) / (input.shape[2] || 0),\n (predictions[i].box.bottomRight[1] - predictions[i].box.topLeft[1]) / (input.shape[1] || 0)\n ];\n }\n const landmarks = analyze(keypoints);\n hands.push({\n id: i,\n score: Math.round(100 * predictions[i].confidence) / 100,\n boxScore: Math.round(100 * predictions[i].boxConfidence) / 100,\n fingerScore: Math.round(100 * predictions[i].fingerConfidence) / 100,\n label: \"hand\",\n box,\n boxRaw,\n keypoints,\n annotations: annotations2,\n landmarks\n });\n }\n return hands;\n}\nasync function loadDetect2(config3) {\n var _a;\n if (env.initial)\n handDetectorModel = null;\n if (!handDetectorModel)\n handDetectorModel = await loadModel((_a = config3.hand.detector) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", handDetectorModel[\"modelUrl\"]);\n return handDetectorModel;\n}\nasync function loadSkeleton(config3) {\n var _a;\n if (env.initial)\n handPoseModel = null;\n if (!handPoseModel)\n handPoseModel = await loadModel((_a = config3.hand.skeleton) == null ? void 0 : _a.modelPath);\n else if (config3.debug)\n log(\"cached model:\", handPoseModel[\"modelUrl\"]);\n return handPoseModel;\n}\n\n// src/hand/handtrack.ts\nvar models2 = [null, null];\nvar modelOutputNodes = [\"StatefulPartitionedCall/Postprocessor/Slice\", \"StatefulPartitionedCall/Postprocessor/ExpandDims_1\"];\nvar inputSize7 = [[0, 0], [0, 0]];\nvar classes = [\"hand\", \"fist\", \"pinch\", \"point\", \"face\", \"tip\", \"pinchtip\"];\nvar faceIndex = 4;\nvar boxExpandFact = 1.6;\nvar maxDetectorResolution = 512;\nvar detectorExpandFact = 1.4;\nvar skipped13 = Number.MAX_SAFE_INTEGER;\nvar lastTime14 = 0;\nvar outputSize = [0, 0];\nvar cache4 = {\n boxes: [],\n hands: []\n};\nvar fingerMap = {\n /*\n thumb: [0, 1, 2, 3, 4],\n index: [0, 5, 6, 7, 8],\n middle: [0, 9, 10, 11, 12],\n ring: [0, 13, 14, 15, 16],\n pinky: [0, 17, 18, 19, 20],\n palm: [0],\n */\n thumb: [1, 2, 3, 4],\n index: [5, 6, 7, 8],\n middle: [9, 10, 11, 12],\n ring: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n base: [0],\n palm: [0, 17, 13, 9, 5, 1, 0]\n};\nasync function loadDetect3(config3) {\n var _a;\n if (env.initial)\n models2[0] = null;\n if (!models2[0]) {\n fakeOps([\"tensorlistreserve\", \"enter\", \"tensorlistfromtensor\", \"merge\", \"loopcond\", \"switch\", \"exit\", \"tensorliststack\", \"nextiteration\", \"tensorlistsetitem\", \"tensorlistgetitem\", \"reciprocal\", \"shape\", \"split\", \"where\"], config3);\n models2[0] = await loadModel((_a = config3.hand.detector) == null ? void 0 : _a.modelPath);\n const inputs = models2[0][\"executor\"] ? Object.values(models2[0].modelSignature[\"inputs\"]) : void 0;\n inputSize7[0][0] = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[1].size) : 0;\n inputSize7[0][1] = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[2].size) : 0;\n } else if (config3.debug)\n log(\"cached model:\", models2[0][\"modelUrl\"]);\n return models2[0];\n}\nasync function loadSkeleton2(config3) {\n var _a;\n if (env.initial)\n models2[1] = null;\n if (!models2[1]) {\n models2[1] = await loadModel((_a = config3.hand.skeleton) == null ? void 0 : _a.modelPath);\n const inputs = models2[1][\"executor\"] ? Object.values(models2[1].modelSignature[\"inputs\"]) : void 0;\n inputSize7[1][0] = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[1].size) : 0;\n inputSize7[1][1] = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[2].size) : 0;\n } else if (config3.debug)\n log(\"cached model:\", models2[1][\"modelUrl\"]);\n return models2[1];\n}\nasync function detectHands(input, config3) {\n const hands = [];\n if (!input || !models2[0])\n return hands;\n const t8 = {};\n const ratio2 = (input.shape[2] || 1) / (input.shape[1] || 1);\n const height = Math.min(Math.round((input.shape[1] || 0) / 8) * 8, maxDetectorResolution);\n const width = Math.round(height * ratio2 / 8) * 8;\n t8.resize = Kj.resizeBilinear(input, [height, width]);\n t8.cast = We(t8.resize, \"int32\");\n [t8.rawScores, t8.rawBoxes] = await models2[0].executeAsync(t8.cast, modelOutputNodes);\n t8.boxes = gc(t8.rawBoxes, [0, 2]);\n t8.scores = gc(t8.rawScores, [0]);\n const classScores = fo(t8.scores, 1);\n Mt(classScores[faceIndex]);\n classScores.splice(faceIndex, 1);\n t8.filtered = kr(classScores, 1);\n Mt(classScores);\n t8.max = Ra(t8.filtered, 1);\n t8.argmax = Ek(t8.filtered, 1);\n let id2 = 0;\n t8.nms = await Kj.nonMaxSuppressionAsync(t8.boxes, t8.max, (config3.hand.maxDetected || 0) + 1, config3.hand.iouThreshold || 0, config3.hand.minConfidence || 1);\n const nms = await t8.nms.data();\n const scores = await t8.max.data();\n const classNum = await t8.argmax.data();\n for (const nmsIndex of Array.from(nms)) {\n const boxSlice = Xe(t8.boxes, nmsIndex, 1);\n const boxYX = await boxSlice.data();\n Mt(boxSlice);\n const boxData = [boxYX[1], boxYX[0], boxYX[3] - boxYX[1], boxYX[2] - boxYX[0]];\n const boxRaw = scale(boxData, detectorExpandFact);\n const boxFull = [Math.trunc(boxData[0] * outputSize[0]), Math.trunc(boxData[1] * outputSize[1]), Math.trunc(boxData[2] * outputSize[0]), Math.trunc(boxData[3] * outputSize[1])];\n const score = scores[nmsIndex];\n const label = classes[classNum[nmsIndex]];\n const hand3 = { id: id2++, score, box: boxFull, boxRaw, label };\n hands.push(hand3);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n hands.sort((a, b) => b.score - a.score);\n if (hands.length > (config3.hand.maxDetected || 1))\n hands.length = config3.hand.maxDetected || 1;\n return hands;\n}\nasync function detectFingers(input, h, config3) {\n const hand3 = {\n // initial values inherited from hand detect\n id: h.id,\n score: Math.round(100 * h.score) / 100,\n boxScore: Math.round(100 * h.score) / 100,\n fingerScore: 0,\n box: h.box,\n boxRaw: h.boxRaw,\n label: h.label,\n keypoints: [],\n landmarks: {},\n annotations: {}\n };\n if (input && models2[1] && config3.hand.landmarks && h.score > (config3.hand.minConfidence || 0)) {\n const t8 = {};\n const boxCrop = [h.boxRaw[1], h.boxRaw[0], h.boxRaw[3] + h.boxRaw[1], h.boxRaw[2] + h.boxRaw[0]];\n t8.crop = Kj.cropAndResize(input, [boxCrop], [0], [inputSize7[1][0], inputSize7[1][1]], \"bilinear\");\n t8.div = je(t8.crop, constants.tf255);\n [t8.score, t8.keypoints] = models2[1].execute(t8.div, [\"Identity_1\", \"Identity\"]);\n const rawScore = (await t8.score.data())[0];\n const score = (100 - Math.trunc(100 / (1 + Math.exp(rawScore)))) / 100;\n if (score >= (config3.hand.minConfidence || 0)) {\n hand3.fingerScore = score;\n t8.reshaped = W(t8.keypoints, [-1, 3]);\n const coordsData = await t8.reshaped.array();\n const coordsRaw = coordsData.map((kpt4) => [kpt4[0] / inputSize7[1][1], kpt4[1] / inputSize7[1][0], kpt4[2] || 0]);\n const coordsNorm = coordsRaw.map((kpt4) => [kpt4[0] * h.boxRaw[2], kpt4[1] * h.boxRaw[3], kpt4[2] || 0]);\n hand3.keypoints = coordsNorm.map((kpt4) => [outputSize[0] * (kpt4[0] + h.boxRaw[0]), outputSize[1] * (kpt4[1] + h.boxRaw[1]), kpt4[2] || 0]);\n hand3.landmarks = analyze(hand3.keypoints);\n for (const key of Object.keys(fingerMap)) {\n hand3.annotations[key] = fingerMap[key].map((index2) => hand3.landmarks && hand3.keypoints[index2] ? hand3.keypoints[index2] : null);\n }\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n }\n return hand3;\n}\nasync function predict15(input, config3) {\n var _a, _b;\n if (!((_a = models2[0]) == null ? void 0 : _a[\"executor\"]) || !((_b = models2[1]) == null ? void 0 : _b[\"executor\"]) || !models2[0].inputs[0].shape || !models2[1].inputs[0].shape)\n return [];\n outputSize = [input.shape[2] || 0, input.shape[1] || 0];\n skipped13++;\n const skipTime = (config3.hand.skipTime || 0) > now() - lastTime14;\n const skipFrame = skipped13 < (config3.hand.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame) {\n return cache4.hands;\n }\n return new Promise(async (resolve) => {\n const skipTimeExtended = 3 * (config3.hand.skipTime || 0) > now() - lastTime14;\n const skipFrameExtended = skipped13 < 3 * (config3.hand.skipFrames || 0);\n if (config3.skipAllowed && cache4.hands.length === config3.hand.maxDetected) {\n cache4.hands = await Promise.all(cache4.boxes.map((handBox) => detectFingers(input, handBox, config3)));\n } else if (config3.skipAllowed && skipTimeExtended && skipFrameExtended && cache4.hands.length > 0) {\n cache4.hands = await Promise.all(cache4.boxes.map((handBox) => detectFingers(input, handBox, config3)));\n } else {\n cache4.boxes = await detectHands(input, config3);\n lastTime14 = now();\n cache4.hands = await Promise.all(cache4.boxes.map((handBox) => detectFingers(input, handBox, config3)));\n skipped13 = 0;\n }\n const oldCache = [...cache4.boxes];\n cache4.boxes.length = 0;\n if (config3.cacheSensitivity > 0) {\n for (let i = 0; i < cache4.hands.length; i++) {\n const boxKpt = square(cache4.hands[i].keypoints, outputSize);\n if (boxKpt.box[2] / (input.shape[2] || 1) > 0.05 && boxKpt.box[3] / (input.shape[1] || 1) > 0.05 && cache4.hands[i].fingerScore && cache4.hands[i].fingerScore > (config3.hand.minConfidence || 0)) {\n const boxScale = scale(boxKpt.box, boxExpandFact);\n const boxScaleRaw = scale(boxKpt.boxRaw, boxExpandFact);\n cache4.boxes.push({ ...oldCache[i], box: boxScale, boxRaw: boxScaleRaw });\n }\n }\n }\n for (let i = 0; i < cache4.hands.length; i++) {\n const bbox = calc(cache4.hands[i].keypoints, outputSize);\n cache4.hands[i].box = bbox.box;\n cache4.hands[i].boxRaw = bbox.boxRaw;\n }\n resolve(cache4.hands);\n });\n}\n\n// src/result.ts\nvar empty = (error = null) => ({ face: [], body: [], hand: [], gesture: [], object: [], persons: [], performance: {}, timestamp: 0, width: 0, height: 0, error });\n\n// src/body/movenetcoords.ts\nvar movenetcoords_exports = {};\n__export(movenetcoords_exports, {\n connected: () => connected3,\n horizontal: () => horizontal,\n kpt: () => kpt3,\n relative: () => relative,\n vertical: () => vertical\n});\nvar kpt3 = [\n // used to create part labels\n \"nose\",\n \"leftEye\",\n \"rightEye\",\n \"leftEar\",\n \"rightEar\",\n \"leftShoulder\",\n \"rightShoulder\",\n \"leftElbow\",\n \"rightElbow\",\n \"leftWrist\",\n \"rightWrist\",\n \"leftHip\",\n \"rightHip\",\n \"leftKnee\",\n \"rightKnee\",\n \"leftAnkle\",\n \"rightAnkle\"\n];\nvar horizontal = [\n // used to fix left vs right\n [\"leftEye\", \"rightEye\"],\n [\"leftEar\", \"rightEar\"],\n [\"leftShoulder\", \"rightShoulder\"],\n [\"leftElbow\", \"rightElbow\"],\n [\"leftWrist\", \"rightWrist\"],\n [\"leftHip\", \"rightHip\"],\n [\"leftKnee\", \"rightKnee\"],\n [\"leftAnkle\", \"rightAnkle\"]\n];\nvar vertical = [\n // used to remove unlikely keypoint positions\n [\"leftKnee\", \"leftShoulder\"],\n [\"rightKnee\", \"rightShoulder\"],\n [\"leftAnkle\", \"leftKnee\"],\n [\"rightAnkle\", \"rightKnee\"]\n];\nvar relative = [\n // used to match relative body parts\n [[\"leftHip\", \"rightHip\"], [\"leftShoulder\", \"rightShoulder\"]],\n [[\"leftElbow\", \"rightElbow\"], [\"leftShoulder\", \"rightShoulder\"]]\n];\nvar connected3 = {\n // used to create body outline in annotations\n leftLeg: [\"leftHip\", \"leftKnee\", \"leftAnkle\"],\n rightLeg: [\"rightHip\", \"rightKnee\", \"rightAnkle\"],\n torso: [\"leftShoulder\", \"rightShoulder\", \"rightHip\", \"leftHip\", \"leftShoulder\"],\n leftArm: [\"leftShoulder\", \"leftElbow\", \"leftWrist\"],\n rightArm: [\"rightShoulder\", \"rightElbow\", \"rightWrist\"],\n head: []\n};\n\n// src/util/interpolate.ts\nvar bufferedResult = empty();\nvar interpolateTime = 0;\nfunction calc2(newResult, config3) {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2, _k2, _l2, _m, _n2, _o, _p2, _q, _r2, _s2, _t, _u2, _v2, _w2, _x2, _y, _z2;\n const t02 = now();\n if (!newResult)\n return empty();\n const elapsed = Date.now() - newResult.timestamp;\n const bufferedFactor = elapsed < 1e3 ? 8 - Math.log(elapsed + 1) : 1;\n if (newResult.canvas)\n bufferedResult.canvas = newResult.canvas;\n if (newResult.error)\n bufferedResult.error = newResult.error;\n if (!bufferedResult.body || newResult.body.length !== bufferedResult.body.length) {\n bufferedResult.body = JSON.parse(JSON.stringify(newResult.body));\n } else {\n for (let i = 0; i < newResult.body.length; i++) {\n const box = newResult.body[i].box.map((newBoxCoord, j) => ((bufferedFactor - 1) * bufferedResult.body[i].box[j] + newBoxCoord) / bufferedFactor);\n const boxRaw = newResult.body[i].boxRaw.map((newBoxCoord, j) => ((bufferedFactor - 1) * bufferedResult.body[i].boxRaw[j] + newBoxCoord) / bufferedFactor);\n const keypoints = newResult.body[i].keypoints.map((newKpt, j) => {\n var _a2, _b2, _c3, _d3, _e2, _f3, _g3, _h3, _i2;\n return {\n score: newKpt.score,\n part: newKpt.part,\n position: [\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].position[0] || 0) + (newKpt.position[0] || 0)) / bufferedFactor : newKpt.position[0],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].position[1] || 0) + (newKpt.position[1] || 0)) / bufferedFactor : newKpt.position[1],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].position[2] || 0) + (newKpt.position[2] || 0)) / bufferedFactor : newKpt.position[2]\n ],\n positionRaw: [\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].positionRaw[0] || 0) + (newKpt.positionRaw[0] || 0)) / bufferedFactor : newKpt.positionRaw[0],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].positionRaw[1] || 0) + (newKpt.positionRaw[1] || 0)) / bufferedFactor : newKpt.positionRaw[1],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (bufferedResult.body[i].keypoints[j].positionRaw[2] || 0) + (newKpt.positionRaw[2] || 0)) / bufferedFactor : newKpt.positionRaw[2]\n ],\n distance: [\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (((_a2 = bufferedResult.body[i].keypoints[j].distance) == null ? void 0 : _a2[0]) || 0) + (((_b2 = newKpt.distance) == null ? void 0 : _b2[0]) || 0)) / bufferedFactor : (_c3 = newKpt.distance) == null ? void 0 : _c3[0],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (((_d3 = bufferedResult.body[i].keypoints[j].distance) == null ? void 0 : _d3[1]) || 0) + (((_e2 = newKpt.distance) == null ? void 0 : _e2[1]) || 0)) / bufferedFactor : (_f3 = newKpt.distance) == null ? void 0 : _f3[1],\n bufferedResult.body[i].keypoints[j] ? ((bufferedFactor - 1) * (((_g3 = bufferedResult.body[i].keypoints[j].distance) == null ? void 0 : _g3[2]) || 0) + (((_h3 = newKpt.distance) == null ? void 0 : _h3[2]) || 0)) / bufferedFactor : (_i2 = newKpt.distance) == null ? void 0 : _i2[2]\n ]\n };\n });\n const annotations2 = {};\n let coords = { connected: {} };\n if ((_a = config3.body.modelPath) == null ? void 0 : _a.includes(\"efficientpose\"))\n coords = efficientposecoords_exports;\n else if ((_b = config3.body.modelPath) == null ? void 0 : _b.includes(\"blazepose\"))\n coords = blazeposecoords_exports;\n else if ((_c2 = config3.body.modelPath) == null ? void 0 : _c2.includes(\"movenet\"))\n coords = movenetcoords_exports;\n for (const [name, indexes] of Object.entries(coords.connected)) {\n const pt2 = [];\n for (let j = 0; j < indexes.length - 1; j++) {\n const pt0 = keypoints.find((kp2) => kp2.part === indexes[j]);\n const pt1 = keypoints.find((kp2) => kp2.part === indexes[j + 1]);\n if (pt0 && pt1)\n pt2.push([pt0.position, pt1.position]);\n }\n annotations2[name] = pt2;\n }\n bufferedResult.body[i] = { ...newResult.body[i], box, boxRaw, keypoints, annotations: annotations2 };\n }\n }\n if (!bufferedResult.hand || newResult.hand.length !== bufferedResult.hand.length) {\n bufferedResult.hand = JSON.parse(JSON.stringify(newResult.hand));\n } else {\n for (let i = 0; i < newResult.hand.length; i++) {\n const box = newResult.hand[i].box.map((b, j) => ((bufferedFactor - 1) * bufferedResult.hand[i].box[j] + b) / bufferedFactor);\n const boxRaw = newResult.hand[i].boxRaw.map((b, j) => ((bufferedFactor - 1) * bufferedResult.hand[i].boxRaw[j] + b) / bufferedFactor);\n if (bufferedResult.hand[i].keypoints.length !== newResult.hand[i].keypoints.length)\n bufferedResult.hand[i].keypoints = newResult.hand[i].keypoints;\n const keypoints = newResult.hand[i].keypoints && newResult.hand[i].keypoints.length > 0 ? newResult.hand[i].keypoints.map((landmark, j) => landmark.map((coord, k) => ((bufferedFactor - 1) * (bufferedResult.hand[i].keypoints[j][k] || 1) + (coord || 0)) / bufferedFactor)) : [];\n let annotations2 = {};\n if (Object.keys(bufferedResult.hand[i].annotations).length !== Object.keys(newResult.hand[i].annotations).length) {\n bufferedResult.hand[i].annotations = newResult.hand[i].annotations;\n annotations2 = bufferedResult.hand[i].annotations;\n } else if (newResult.hand[i].annotations) {\n for (const key of Object.keys(newResult.hand[i].annotations)) {\n annotations2[key] = ((_f2 = (_e = (_d2 = newResult.hand[i]) == null ? void 0 : _d2.annotations) == null ? void 0 : _e[key]) == null ? void 0 : _f2[0]) ? newResult.hand[i].annotations[key].map((val, j) => val.map((coord, k) => ((bufferedFactor - 1) * bufferedResult.hand[i].annotations[key][j][k] + coord) / bufferedFactor)) : null;\n }\n }\n bufferedResult.hand[i] = { ...newResult.hand[i], box, boxRaw, keypoints, annotations: annotations2 };\n }\n }\n if (!bufferedResult.face || newResult.face.length !== bufferedResult.face.length) {\n bufferedResult.face = JSON.parse(JSON.stringify(newResult.face));\n } else {\n for (let i = 0; i < newResult.face.length; i++) {\n const box = newResult.face[i].box.map((b, j) => ((bufferedFactor - 1) * bufferedResult.face[i].box[j] + b) / bufferedFactor);\n const boxRaw = newResult.face[i].boxRaw.map((b, j) => ((bufferedFactor - 1) * bufferedResult.face[i].boxRaw[j] + b) / bufferedFactor);\n let annotations2 = newResult.face[i].annotations;\n if (Object.keys(bufferedResult.face[i].annotations).length !== Object.keys(newResult.face[i].annotations).length) {\n bufferedResult.face[i].annotations = newResult.face[i].annotations;\n annotations2 = bufferedResult.face[i].annotations;\n } else if (newResult.face[i].annotations) {\n for (const key of Object.keys(newResult.face[i].annotations)) {\n annotations2[key] = ((_i = (_h2 = (_g2 = newResult.face[i]) == null ? void 0 : _g2.annotations) == null ? void 0 : _h2[key]) == null ? void 0 : _i[0]) ? newResult.face[i].annotations[key].map((val, j) => val.map((coord, k) => ((bufferedFactor - 1) * bufferedResult.face[i].annotations[key][j][k] + coord) / bufferedFactor)) : null;\n }\n }\n if (newResult.face[i].rotation) {\n const rotation = { matrix: [0, 0, 0, 0, 0, 0, 0, 0, 0], angle: { roll: 0, yaw: 0, pitch: 0 }, gaze: { bearing: 0, strength: 0 } };\n rotation.matrix = (_j2 = newResult.face[i].rotation) == null ? void 0 : _j2.matrix;\n rotation.angle = {\n roll: ((bufferedFactor - 1) * (((_l2 = (_k2 = bufferedResult.face[i].rotation) == null ? void 0 : _k2.angle) == null ? void 0 : _l2.roll) || 0) + (((_n2 = (_m = newResult.face[i].rotation) == null ? void 0 : _m.angle) == null ? void 0 : _n2.roll) || 0)) / bufferedFactor,\n yaw: ((bufferedFactor - 1) * (((_p2 = (_o = bufferedResult.face[i].rotation) == null ? void 0 : _o.angle) == null ? void 0 : _p2.yaw) || 0) + (((_r2 = (_q = newResult.face[i].rotation) == null ? void 0 : _q.angle) == null ? void 0 : _r2.yaw) || 0)) / bufferedFactor,\n pitch: ((bufferedFactor - 1) * (((_t = (_s2 = bufferedResult.face[i].rotation) == null ? void 0 : _s2.angle) == null ? void 0 : _t.pitch) || 0) + (((_v2 = (_u2 = newResult.face[i].rotation) == null ? void 0 : _u2.angle) == null ? void 0 : _v2.pitch) || 0)) / bufferedFactor\n };\n rotation.gaze = {\n // not fully correct due projection on circle, also causes wrap-around draw on jump from negative to positive\n bearing: ((bufferedFactor - 1) * (((_w2 = bufferedResult.face[i].rotation) == null ? void 0 : _w2.gaze.bearing) || 0) + (((_x2 = newResult.face[i].rotation) == null ? void 0 : _x2.gaze.bearing) || 0)) / bufferedFactor,\n strength: ((bufferedFactor - 1) * (((_y = bufferedResult.face[i].rotation) == null ? void 0 : _y.gaze.strength) || 0) + (((_z2 = newResult.face[i].rotation) == null ? void 0 : _z2.gaze.strength) || 0)) / bufferedFactor\n };\n bufferedResult.face[i] = { ...newResult.face[i], rotation, box, boxRaw, annotations: annotations2 };\n } else {\n bufferedResult.face[i] = { ...newResult.face[i], box, boxRaw, annotations: annotations2 };\n }\n }\n }\n if (!bufferedResult.object || newResult.object.length !== bufferedResult.object.length) {\n bufferedResult.object = JSON.parse(JSON.stringify(newResult.object));\n } else {\n for (let i = 0; i < newResult.object.length; i++) {\n const box = newResult.object[i].box.map((b, j) => ((bufferedFactor - 1) * bufferedResult.object[i].box[j] + b) / bufferedFactor);\n const boxRaw = newResult.object[i].boxRaw.map((b, j) => ((bufferedFactor - 1) * bufferedResult.object[i].boxRaw[j] + b) / bufferedFactor);\n bufferedResult.object[i] = { ...newResult.object[i], box, boxRaw };\n }\n }\n if (newResult.persons) {\n const newPersons = newResult.persons;\n if (!bufferedResult.persons || newPersons.length !== bufferedResult.persons.length) {\n bufferedResult.persons = JSON.parse(JSON.stringify(newPersons));\n } else {\n for (let i = 0; i < newPersons.length; i++) {\n bufferedResult.persons[i].box = newPersons[i].box.map((box, j) => ((bufferedFactor - 1) * bufferedResult.persons[i].box[j] + box) / bufferedFactor);\n }\n }\n }\n if (newResult.gesture)\n bufferedResult.gesture = newResult.gesture;\n bufferedResult.width = newResult.width;\n bufferedResult.height = newResult.height;\n const t12 = now();\n interpolateTime = env.perfadd ? interpolateTime + Math.round(t12 - t02) : Math.round(t12 - t02);\n if (newResult.performance)\n bufferedResult.performance = { ...newResult.performance, interpolate: interpolateTime };\n return bufferedResult;\n}\n\n// src/segmentation/meet.ts\nvar model17;\nasync function load15(config3) {\n if (!model17 || env.initial)\n model17 = await loadModel(config3.segmentation.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model17[\"modelUrl\"]);\n return model17;\n}\nasync function predict16(input, config3) {\n var _a;\n if (!model17)\n model17 = await load15(config3);\n if (!(model17 == null ? void 0 : model17[\"executor\"]) || !((_a = model17 == null ? void 0 : model17.inputs) == null ? void 0 : _a[0].shape))\n return null;\n const t8 = {};\n t8.resize = Kj.resizeBilinear(input, [model17.inputs[0].shape ? model17.inputs[0].shape[1] : 0, model17.inputs[0].shape ? model17.inputs[0].shape[2] : 0], false);\n t8.norm = je(t8.resize, constants.tf255);\n t8.res = model17.execute(t8.norm);\n t8.squeeze = gc(t8.res, [0]);\n [t8.bgRaw, t8.fgRaw] = fo(t8.squeeze, 2);\n t8.fg = P1(t8.fgRaw);\n t8.mul = se(t8.fg, constants.tf255);\n t8.expand = Ms(t8.mul, 2);\n t8.output = Kj.resizeBilinear(t8.expand, [input.shape[1] || 0, input.shape[2] || 0]);\n let rgba;\n switch (config3.segmentation.mode || \"default\") {\n case \"default\":\n t8.input = gc(input);\n t8.concat = bt([t8.input, t8.output], -1);\n rgba = We(t8.concat, \"int32\");\n break;\n case \"alpha\":\n rgba = We(t8.output, \"int32\");\n break;\n default:\n rgba = ur(0);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return rgba;\n}\n\n// src/face/match.ts\nvar match_exports = {};\n__export(match_exports, {\n distance: () => distance,\n find: () => find,\n similarity: () => similarity\n});\nfunction distance(descriptor1, descriptor2, options4 = { order: 2, multiplier: 25 }) {\n if (!descriptor1 || !descriptor1)\n return Number.MAX_SAFE_INTEGER;\n let sum = 0;\n for (let i = 0; i < descriptor1.length; i++) {\n const diff = !options4.order || options4.order === 2 ? descriptor1[i] - descriptor2[i] : Math.abs(descriptor1[i] - descriptor2[i]);\n sum += !options4.order || options4.order === 2 ? diff * diff : diff ** options4.order;\n }\n return (options4.multiplier || 20) * sum;\n}\nvar normalizeDistance = (dist, order, min, max) => {\n if (dist === 0)\n return 1;\n const root = order === 2 ? Math.sqrt(dist) : dist ** (1 / order);\n const norm = (1 - root / 100 - min) / (max - min);\n const clamp2 = Math.max(Math.min(norm, 1), 0);\n return clamp2;\n};\nfunction similarity(descriptor1, descriptor2, options4 = { order: 2, multiplier: 25, min: 0.2, max: 0.8 }) {\n const dist = distance(descriptor1, descriptor2, options4);\n return normalizeDistance(dist, options4.order || 2, options4.min || 0, options4.max || 1);\n}\nfunction find(descriptor, descriptors, options4 = { order: 2, multiplier: 25, threshold: 0, min: 0.2, max: 0.8 }) {\n if (!Array.isArray(descriptor) || !Array.isArray(descriptors) || descriptor.length < 64 || descriptors.length === 0) {\n return { index: -1, distance: Number.POSITIVE_INFINITY, similarity: 0 };\n }\n let lowestDistance = Number.MAX_SAFE_INTEGER;\n let index2 = -1;\n for (let i = 0; i < descriptors.length; i++) {\n const res = descriptors[i].length === descriptor.length ? distance(descriptor, descriptors[i], options4) : Number.MAX_SAFE_INTEGER;\n if (res < lowestDistance) {\n lowestDistance = res;\n index2 = i;\n }\n if (lowestDistance < (options4.threshold || 0))\n break;\n }\n const normalizedSimilarity = normalizeDistance(lowestDistance, options4.order || 2, options4.min || 0, options4.max || 1);\n return { index: index2, distance: lowestDistance, similarity: normalizedSimilarity };\n}\n\n// src/models.ts\nvar models_exports2 = {};\n__export(models_exports2, {\n Models: () => Models,\n validateModel: () => validateModel\n});\n\n// src/body/movenetfix.ts\nvar maxJitter = 5e-3;\nvar cache5 = {\n keypoints: [],\n padding: [[0, 0], [0, 0], [0, 0], [0, 0]]\n};\nfunction bodyParts(body4) {\n for (const pair of horizontal) {\n const left = body4.keypoints.findIndex((kp2) => kp2.part === pair[0]);\n const right = body4.keypoints.findIndex((kp2) => kp2.part === pair[1]);\n if (body4.keypoints[left] && body4.keypoints[right]) {\n if (body4.keypoints[left].position[0] < body4.keypoints[right].position[0]) {\n const tmp = body4.keypoints[left];\n body4.keypoints[left] = body4.keypoints[right];\n body4.keypoints[right] = tmp;\n }\n }\n }\n for (const pair of vertical) {\n const lower = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === pair[0]);\n const higher = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === pair[1]);\n if (body4.keypoints[lower] && body4.keypoints[higher]) {\n if (body4.keypoints[lower].position[1] < body4.keypoints[higher].position[1]) {\n body4.keypoints.splice(lower, 1);\n }\n }\n }\n for (const [pair, compare2] of relative) {\n const left = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === pair[0]);\n const right = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === pair[1]);\n const leftTo = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === compare2[0]);\n const rightTo = body4.keypoints.findIndex((kp2) => kp2 && kp2.part === compare2[1]);\n if (!body4.keypoints[leftTo] || !body4.keypoints[rightTo])\n continue;\n const distanceLeft = body4.keypoints[left] ? [\n Math.abs(body4.keypoints[leftTo].position[0] - body4.keypoints[left].position[0]),\n Math.abs(body4.keypoints[rightTo].position[0] - body4.keypoints[left].position[0])\n ] : [0, 0];\n const distanceRight = body4.keypoints[right] ? [\n Math.abs(body4.keypoints[rightTo].position[0] - body4.keypoints[right].position[0]),\n Math.abs(body4.keypoints[leftTo].position[0] - body4.keypoints[right].position[0])\n ] : [0, 0];\n if (distanceLeft[0] > distanceLeft[1] || distanceRight[0] > distanceRight[1]) {\n const tmp = body4.keypoints[left];\n body4.keypoints[left] = body4.keypoints[right];\n body4.keypoints[right] = tmp;\n }\n }\n}\nfunction jitter(keypoints) {\n for (let i = 0; i < keypoints.length; i++) {\n if (keypoints[i] && cache5.keypoints[i]) {\n const diff = [Math.abs(keypoints[i].positionRaw[0] - cache5.keypoints[i].positionRaw[0]), Math.abs(keypoints[i].positionRaw[1] - cache5.keypoints[i].positionRaw[1])];\n if (diff[0] < maxJitter && diff[1] < maxJitter) {\n keypoints[i] = cache5.keypoints[i];\n } else {\n cache5.keypoints[i] = keypoints[i];\n }\n } else {\n cache5.keypoints[i] = keypoints[i];\n }\n }\n return keypoints;\n}\nfunction padInput(input, inputSize10) {\n var _a, _b;\n const t8 = {};\n if (!((_a = input == null ? void 0 : input.shape) == null ? void 0 : _a[1]) || !((_b = input == null ? void 0 : input.shape) == null ? void 0 : _b[2]))\n return input;\n cache5.padding = [\n [0, 0],\n // dont touch batch\n [input.shape[2] > input.shape[1] ? Math.trunc((input.shape[2] - input.shape[1]) / 2) : 0, input.shape[2] > input.shape[1] ? Math.trunc((input.shape[2] - input.shape[1]) / 2) : 0],\n // height before&after\n [input.shape[1] > input.shape[2] ? Math.trunc((input.shape[1] - input.shape[2]) / 2) : 0, input.shape[1] > input.shape[2] ? Math.trunc((input.shape[1] - input.shape[2]) / 2) : 0],\n // width before&after\n [0, 0]\n // dont touch rbg\n ];\n t8.pad = Aa(input, cache5.padding);\n t8.resize = Kj.resizeBilinear(t8.pad, [inputSize10, inputSize10]);\n const final = We(t8.resize, \"int32\");\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return final;\n}\nfunction rescaleBody(body4, outputSize2) {\n body4.keypoints = body4.keypoints.filter((kpt4) => kpt4 == null ? void 0 : kpt4.position);\n for (const kpt4 of body4.keypoints) {\n kpt4.position = [\n kpt4.position[0] * (outputSize2[0] + cache5.padding[2][0] + cache5.padding[2][1]) / outputSize2[0] - cache5.padding[2][0],\n kpt4.position[1] * (outputSize2[1] + cache5.padding[1][0] + cache5.padding[1][1]) / outputSize2[1] - cache5.padding[1][0]\n ];\n kpt4.positionRaw = [\n kpt4.position[0] / outputSize2[0],\n kpt4.position[1] / outputSize2[1]\n ];\n }\n const rescaledBoxes = calc(body4.keypoints.map((pt2) => pt2.position), outputSize2);\n body4.box = rescaledBoxes.box;\n body4.boxRaw = rescaledBoxes.boxRaw;\n return body4;\n}\n\n// src/body/movenet.ts\nvar model18;\nvar inputSize8 = 0;\nvar skipped14 = Number.MAX_SAFE_INTEGER;\nvar cache6 = {\n boxes: [],\n bodies: [],\n last: 0\n};\nasync function load16(config3) {\n var _a;\n if (env.initial)\n model18 = null;\n if (!model18) {\n fakeOps([\"size\"], config3);\n model18 = await loadModel(config3.body.modelPath);\n } else if (config3.debug)\n log(\"cached model:\", model18[\"modelUrl\"]);\n inputSize8 = (model18 == null ? void 0 : model18[\"executor\"]) && ((_a = model18 == null ? void 0 : model18.inputs) == null ? void 0 : _a[0].shape) ? model18.inputs[0].shape[2] : 0;\n if (inputSize8 < 64)\n inputSize8 = 256;\n if (A().flagRegistry.WEBGL_USE_SHAPES_UNIFORMS)\n A().set(\"WEBGL_USE_SHAPES_UNIFORMS\", false);\n return model18;\n}\nfunction parseSinglePose(res, config3, image) {\n const kpt4 = res[0][0];\n const keypoints = [];\n let score = 0;\n for (let id2 = 0; id2 < kpt4.length; id2++) {\n score = kpt4[id2][2];\n if (score > config3.body.minConfidence) {\n const positionRaw = [kpt4[id2][1], kpt4[id2][0]];\n keypoints.push({\n score: Math.round(100 * score) / 100,\n part: kpt3[id2],\n positionRaw,\n position: [\n // normalized to input image size\n Math.round((image.shape[2] || 0) * positionRaw[0]),\n Math.round((image.shape[1] || 0) * positionRaw[1])\n ]\n });\n }\n }\n score = keypoints.reduce((prev, curr) => curr.score > prev ? curr.score : prev, 0);\n const bodies = [];\n const newBox = calc(keypoints.map((pt2) => pt2.position), [image.shape[2], image.shape[1]]);\n const annotations2 = {};\n for (const [name, indexes] of Object.entries(connected3)) {\n const pt2 = [];\n for (let i = 0; i < indexes.length - 1; i++) {\n const pt0 = keypoints.find((kp2) => kp2.part === indexes[i]);\n const pt1 = keypoints.find((kp2) => kp2.part === indexes[i + 1]);\n if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0))\n pt2.push([pt0.position, pt1.position]);\n }\n annotations2[name] = pt2;\n }\n const body4 = { id: 0, score, box: newBox.box, boxRaw: newBox.boxRaw, keypoints, annotations: annotations2 };\n bodyParts(body4);\n bodies.push(body4);\n return bodies;\n}\nfunction parseMultiPose(res, config3, image) {\n const bodies = [];\n for (let id2 = 0; id2 < res[0].length; id2++) {\n const kpt4 = res[0][id2];\n const boxScore = Math.round(100 * kpt4[51 + 4]) / 100;\n if (boxScore > config3.body.minConfidence) {\n const keypoints = [];\n for (let i = 0; i < 17; i++) {\n const score = kpt4[3 * i + 2];\n if (score > config3.body.minConfidence) {\n const positionRaw = [kpt4[3 * i + 1], kpt4[3 * i + 0]];\n keypoints.push({\n part: kpt3[i],\n score: Math.round(100 * score) / 100,\n positionRaw,\n position: [Math.round((image.shape[2] || 0) * positionRaw[0]), Math.round((image.shape[1] || 0) * positionRaw[1])]\n });\n }\n }\n const boxRaw = [kpt4[51 + 1], kpt4[51 + 0], kpt4[51 + 3] - kpt4[51 + 1], kpt4[51 + 2] - kpt4[51 + 0]];\n const boxNorm = [Math.trunc(boxRaw[0] * (image.shape[2] || 0)), Math.trunc(boxRaw[1] * (image.shape[1] || 0)), Math.trunc(boxRaw[2] * (image.shape[2] || 0)), Math.trunc(boxRaw[3] * (image.shape[1] || 0))];\n const annotations2 = {};\n for (const [name, indexes] of Object.entries(connected3)) {\n const pt2 = [];\n for (let i = 0; i < indexes.length - 1; i++) {\n const pt0 = keypoints.find((kp2) => kp2.part === indexes[i]);\n const pt1 = keypoints.find((kp2) => kp2.part === indexes[i + 1]);\n if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0))\n pt2.push([pt0.position, pt1.position]);\n }\n annotations2[name] = pt2;\n }\n const body4 = { id: id2, score: boxScore, box: boxNorm, boxRaw, keypoints: [...keypoints], annotations: annotations2 };\n bodyParts(body4);\n bodies.push(body4);\n }\n }\n bodies.sort((a, b) => b.score - a.score);\n if (bodies.length > config3.body.maxDetected)\n bodies.length = config3.body.maxDetected;\n return bodies;\n}\nasync function predict17(input, config3) {\n var _a;\n if (!(model18 == null ? void 0 : model18[\"executor\"]) || !((_a = model18 == null ? void 0 : model18.inputs) == null ? void 0 : _a[0].shape))\n return [];\n if (!config3.skipAllowed)\n cache6.boxes.length = 0;\n skipped14++;\n const skipTime = (config3.body.skipTime || 0) > now() - cache6.last;\n const skipFrame = skipped14 < (config3.body.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame) {\n return cache6.bodies;\n }\n return new Promise(async (resolve) => {\n const t8 = {};\n skipped14 = 0;\n t8.input = padInput(input, inputSize8);\n t8.res = model18 == null ? void 0 : model18.execute(t8.input);\n cache6.last = now();\n const res = await t8.res.array();\n cache6.bodies = t8.res.shape[2] === 17 ? parseSinglePose(res, config3, input) : parseMultiPose(res, config3, input);\n for (const body4 of cache6.bodies) {\n rescaleBody(body4, [input.shape[2] || 1, input.shape[1] || 1]);\n jitter(body4.keypoints);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n resolve(cache6.bodies);\n });\n}\n\n// src/object/nanodet.ts\nvar model19;\nvar last10 = [];\nvar lastTime15 = 0;\nvar skipped15 = Number.MAX_SAFE_INTEGER;\nvar inputSize9 = 0;\nvar scaleBox = 2.5;\nasync function load17(config3) {\n if (!model19 || env.initial) {\n model19 = await loadModel(config3.object.modelPath);\n const inputs = (model19 == null ? void 0 : model19[\"executor\"]) ? Object.values(model19.modelSignature[\"inputs\"]) : void 0;\n inputSize9 = Array.isArray(inputs) ? parseInt(inputs[0].tensorShape.dim[2].size) : 416;\n } else if (config3.debug)\n log(\"cached model:\", model19[\"modelUrl\"]);\n return model19;\n}\nasync function process4(res, outputShape, config3) {\n var _a, _b;\n let id2 = 0;\n let results = [];\n const size2 = inputSize9;\n for (const strideSize of [1, 2, 4]) {\n const baseSize = strideSize * 13;\n const scoresT = gc(res.find((a) => a.shape[1] === baseSize ** 2 && (a.shape[2] || 0) === labels2.length));\n const scores = await scoresT.array();\n const featuresT = gc(res.find((a) => a.shape[1] === baseSize ** 2 && (a.shape[2] || 0) < labels2.length));\n const boxesMaxT = W(featuresT, [-1, 4, (((_a = featuresT.shape) == null ? void 0 : _a[1]) || 0) / 4]);\n const boxIdxT = Ek(boxesMaxT, 2);\n const boxIdx = await boxIdxT.array();\n for (let i = 0; i < scoresT.shape[0]; i++) {\n for (let j = 0; j < (((_b = scoresT.shape) == null ? void 0 : _b[1]) || 0); j++) {\n const score = scores[i][j];\n if (score > (config3.object.minConfidence || 0) && j !== 61) {\n const cx2 = (0.5 + Math.trunc(i % baseSize)) / baseSize;\n const cy2 = (0.5 + Math.trunc(i / baseSize)) / baseSize;\n const boxOffset = boxIdx[i].map((a) => a * (baseSize / strideSize / size2));\n const [x, y8] = [\n cx2 - scaleBox / strideSize * boxOffset[0],\n cy2 - scaleBox / strideSize * boxOffset[1]\n ];\n const [w10, h] = [\n cx2 + scaleBox / strideSize * boxOffset[2] - x,\n cy2 + scaleBox / strideSize * boxOffset[3] - y8\n ];\n let boxRaw = [x, y8, w10, h];\n boxRaw = boxRaw.map((a) => Math.max(0, Math.min(a, 1)));\n const box = [\n // results normalized to input image pixels\n boxRaw[0] * outputShape[0],\n boxRaw[1] * outputShape[1],\n boxRaw[2] * outputShape[0],\n boxRaw[3] * outputShape[1]\n ];\n const result = {\n id: id2++,\n // strideSize,\n score: Math.round(100 * score) / 100,\n class: j + 1,\n label: labels2[j].label,\n // center: [Math.trunc(outputShape[0] * cx), Math.trunc(outputShape[1] * cy)],\n // centerRaw: [cx, cy],\n box: box.map((a) => Math.trunc(a)),\n boxRaw\n };\n results.push(result);\n }\n }\n }\n Mt([scoresT, featuresT, boxesMaxT, boxIdxT]);\n }\n const nmsBoxes = results.map((a) => [a.boxRaw[1], a.boxRaw[0], a.boxRaw[3], a.boxRaw[2]]);\n const nmsScores = results.map((a) => a.score);\n let nmsIdx = [];\n if (nmsBoxes && nmsBoxes.length > 0) {\n const nms = await Kj.nonMaxSuppressionAsync(nmsBoxes, nmsScores, config3.object.maxDetected || 0, config3.object.iouThreshold, config3.object.minConfidence);\n nmsIdx = Array.from(await nms.data());\n Mt(nms);\n }\n results = results.filter((_val, idx) => nmsIdx.includes(idx)).sort((a, b) => b.score - a.score);\n return results;\n}\nasync function predict18(image, config3) {\n if (!(model19 == null ? void 0 : model19[\"executor\"]))\n return [];\n const skipTime = (config3.object.skipTime || 0) > now() - lastTime15;\n const skipFrame = skipped15 < (config3.object.skipFrames || 0);\n if (config3.skipAllowed && skipTime && skipFrame && last10.length > 0) {\n skipped15++;\n return last10;\n }\n skipped15 = 0;\n if (!env.kernels.includes(\"mod\") || !env.kernels.includes(\"sparsetodense\"))\n return last10;\n return new Promise(async (resolve) => {\n const outputSize2 = [image.shape[2] || 0, image.shape[1] || 0];\n const resizeT = Kj.resizeBilinear(image, [inputSize9, inputSize9], false);\n const normT = je(resizeT, constants.tf255);\n const transposeT = yc(normT, [0, 3, 1, 2]);\n let objectT;\n if (config3.object.enabled)\n objectT = model19.execute(transposeT);\n lastTime15 = now();\n const obj = await process4(objectT, outputSize2, config3);\n last10 = obj;\n Mt([resizeT, normT, transposeT, ...objectT]);\n resolve(obj);\n });\n}\n\n// src/body/posenetutils.ts\nvar partNames = [\n \"nose\",\n \"leftEye\",\n \"rightEye\",\n \"leftEar\",\n \"rightEar\",\n \"leftShoulder\",\n \"rightShoulder\",\n \"leftElbow\",\n \"rightElbow\",\n \"leftWrist\",\n \"rightWrist\",\n \"leftHip\",\n \"rightHip\",\n \"leftKnee\",\n \"rightKnee\",\n \"leftAnkle\",\n \"rightAnkle\"\n];\nvar count = partNames.length;\nvar partIds = partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\nvar connectedPartNames = [\n [\"leftHip\", \"leftShoulder\"],\n [\"leftElbow\", \"leftShoulder\"],\n [\"leftElbow\", \"leftWrist\"],\n [\"leftHip\", \"leftKnee\"],\n [\"leftKnee\", \"leftAnkle\"],\n [\"rightHip\", \"rightShoulder\"],\n [\"rightElbow\", \"rightShoulder\"],\n [\"rightElbow\", \"rightWrist\"],\n [\"rightHip\", \"rightKnee\"],\n [\"rightKnee\", \"rightAnkle\"],\n [\"leftShoulder\", \"rightShoulder\"],\n [\"leftHip\", \"rightHip\"]\n];\nvar connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => [partIds[jointNameA], partIds[jointNameB]]);\nvar poseChain = [\n [\"nose\", \"leftEye\"],\n [\"leftEye\", \"leftEar\"],\n [\"nose\", \"rightEye\"],\n [\"rightEye\", \"rightEar\"],\n [\"nose\", \"leftShoulder\"],\n [\"leftShoulder\", \"leftElbow\"],\n [\"leftElbow\", \"leftWrist\"],\n [\"leftShoulder\", \"leftHip\"],\n [\"leftHip\", \"leftKnee\"],\n [\"leftKnee\", \"leftAnkle\"],\n [\"nose\", \"rightShoulder\"],\n [\"rightShoulder\", \"rightElbow\"],\n [\"rightElbow\", \"rightWrist\"],\n [\"rightShoulder\", \"rightHip\"],\n [\"rightHip\", \"rightKnee\"],\n [\"rightKnee\", \"rightAnkle\"]\n];\nfunction getBoundingBox(keypoints) {\n const coord = keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y: y8 } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y8),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y8)\n }), {\n maxX: Number.NEGATIVE_INFINITY,\n maxY: Number.NEGATIVE_INFINITY,\n minX: Number.POSITIVE_INFINITY,\n minY: Number.POSITIVE_INFINITY\n });\n return [coord.minX, coord.minY, coord.maxX - coord.minX, coord.maxY - coord.minY];\n}\nfunction scalePoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaleY = height / inputResolutionHeight;\n const scaleX = width / inputResolutionWidth;\n const scalePose = (pose, i) => ({\n id: i,\n score: pose.score,\n boxRaw: [pose.box[0] / inputResolutionWidth, pose.box[1] / inputResolutionHeight, pose.box[2] / inputResolutionWidth, pose.box[3] / inputResolutionHeight],\n box: [Math.trunc(pose.box[0] * scaleX), Math.trunc(pose.box[1] * scaleY), Math.trunc(pose.box[2] * scaleX), Math.trunc(pose.box[3] * scaleY)],\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: [Math.trunc(position.x * scaleX), Math.trunc(position.y * scaleY)],\n positionRaw: [position.x / inputResolutionHeight, position.y / inputResolutionHeight]\n })),\n annotations: {}\n });\n const scaledPoses = poses.map((pose, i) => scalePose(pose, i));\n return scaledPoses;\n}\nvar MaxHeap = class {\n // function call\n constructor(maxSize2, getElementValue) {\n __publicField(this, \"priorityQueue\");\n // don't touch\n __publicField(this, \"numberOfElements\");\n __publicField(this, \"getElementValue\");\n this.priorityQueue = new Array(maxSize2);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n empty() {\n return this.numberOfElements === -1;\n }\n size() {\n return this.numberOfElements + 1;\n }\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n max() {\n return this.priorityQueue[0];\n }\n swim(k) {\n while (k > 0 && this.less(Math.floor(k / 2), k)) {\n this.exchange(k, Math.floor(k / 2));\n k = Math.floor(k / 2);\n }\n }\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1))\n j++;\n if (!this.less(k, j))\n break;\n this.exchange(k, j);\n k = j;\n }\n }\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n exchange(i, j) {\n const t8 = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t8;\n }\n};\nfunction getOffsetPoint(y8, x, keypoint, offsets) {\n return {\n y: offsets.get(y8, x, keypoint),\n x: offsets.get(y8, x, keypoint + count)\n };\n}\nfunction getImageCoords(part, outputStride2, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y: y8, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride2 + x,\n y: part.heatmapY * outputStride2 + y8\n };\n}\nfunction clamp(a, min, max) {\n if (a < min)\n return min;\n if (a > max)\n return max;\n return a;\n}\nfunction squaredDistance(y12, x12, y22, x22) {\n const dy2 = y22 - y12;\n const dx2 = x22 - x12;\n return dy2 * dy2 + dx2 * dx2;\n}\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\n// src/body/posenet.ts\nvar model20;\nvar poseNetOutputs = [\n \"MobilenetV1/offset_2/BiasAdd\",\n \"MobilenetV1/heatmap_2/BiasAdd\",\n \"MobilenetV1/displacement_fwd_2/BiasAdd\",\n \"MobilenetV1/displacement_bwd_2/BiasAdd\"\n /* displacementBwd */\n];\nvar localMaximumRadius = 1;\nvar outputStride = 16;\nvar squaredNmsRadius = 50 ** 2;\nfunction traverse(edgeId, sourceKeypoint, targetId, scores, offsets, displacements, offsetRefineStep = 2) {\n const getDisplacement = (point2) => ({\n y: displacements.get(point2.y, point2.x, edgeId),\n x: displacements.get(point2.y, point2.x, displacements.shape[2] / 2 + edgeId)\n });\n const getStridedIndexNearPoint = (point2, height2, width2) => ({\n y: clamp(Math.round(point2.y / outputStride), 0, height2 - 1),\n x: clamp(Math.round(point2.x / outputStride), 0, width2 - 1)\n });\n const [height, width] = scores.shape;\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, height, width);\n const displacement = getDisplacement(sourceKeypointIndices);\n const displacedPoint = addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, height, width);\n const offsetPoint = getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetId, offsets);\n targetKeypoint = addVectors(\n { x: targetKeypointIndices.x * outputStride, y: targetKeypointIndices.y * outputStride },\n { x: offsetPoint.x, y: offsetPoint.y }\n );\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, height, width);\n const score = scores.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetId);\n return { position: targetKeypoint, part: partNames[targetId], score };\n}\nfunction decodePose(root, scores, offsets, displacementsFwd, displacementsBwd) {\n const tuples = poseChain.map(([parentJoinName, childJoinName]) => [partIds[parentJoinName], partIds[childJoinName]]);\n const edgesFwd = tuples.map(([, childJointId]) => childJointId);\n const edgesBwd = tuples.map(([parentJointId]) => parentJointId);\n const numParts = scores.shape[2];\n const numEdges = edgesFwd.length;\n const keypoints = new Array(numParts);\n const rootPoint = getImageCoords(root.part, outputStride, offsets);\n keypoints[root.part.id] = {\n score: root.score,\n part: partNames[root.part.id],\n position: rootPoint\n };\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceId = edgesFwd[edge];\n const targetId = edgesBwd[edge];\n if (keypoints[sourceId] && !keypoints[targetId]) {\n keypoints[targetId] = traverse(edge, keypoints[sourceId], targetId, scores, offsets, displacementsBwd);\n }\n }\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceId = edgesBwd[edge];\n const targetId = edgesFwd[edge];\n if (keypoints[sourceId] && !keypoints[targetId]) {\n keypoints[targetId] = traverse(edge, keypoints[sourceId], targetId, scores, offsets, displacementsFwd);\n }\n }\n return keypoints;\n}\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum)\n break;\n }\n return localMaximum;\n}\nfunction buildPartWithScoreQueue(minConfidence2, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n if (score < minConfidence2)\n continue;\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, scores))\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n return queue;\n}\nfunction withinRadius(poses, { x, y: y8 }, keypointId) {\n return poses.some(({ keypoints }) => {\n var _a;\n const correspondingKeypoint = (_a = keypoints[keypointId]) == null ? void 0 : _a.position;\n if (!correspondingKeypoint)\n return false;\n return squaredDistance(y8, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\nfunction getInstanceScore(existingPoses, keypoints) {\n const notOverlappedKeypointScores = keypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinRadius(existingPoses, position, keypointId))\n result += score;\n return result;\n }, 0);\n return notOverlappedKeypointScores / keypoints.length;\n}\nfunction decode(offsets, scores, displacementsFwd, displacementsBwd, maxDetected, minConfidence2) {\n const poses = [];\n const queue = buildPartWithScoreQueue(minConfidence2, scores);\n while (poses.length < maxDetected && !queue.empty()) {\n const root = queue.dequeue();\n const rootImageCoords = getImageCoords(root.part, outputStride, offsets);\n if (withinRadius(poses, rootImageCoords, root.part.id))\n continue;\n let keypoints = decodePose(root, scores, offsets, displacementsFwd, displacementsBwd);\n keypoints = keypoints.filter((a) => a.score > minConfidence2);\n const score = getInstanceScore(poses, keypoints);\n const box = getBoundingBox(keypoints);\n if (score > minConfidence2)\n poses.push({ keypoints, box, score: Math.round(100 * score) / 100 });\n }\n return poses;\n}\nasync function predict19(input, config3) {\n if (!(model20 == null ? void 0 : model20[\"executor\"]))\n return [];\n const res = De(() => {\n if (!model20.inputs[0].shape)\n return [];\n const resized = Kj.resizeBilinear(input, [model20.inputs[0].shape[2], model20.inputs[0].shape[1]]);\n const normalized = Te(je(We(resized, \"float32\"), 127.5), 1);\n const results = model20.execute(normalized, poseNetOutputs);\n const results3d = results.map((y8) => gc(y8, [0]));\n results3d[1] = $a(results3d[1]);\n return results3d;\n });\n const buffers = await Promise.all(res.map((tensor) => tensor.buffer()));\n for (const t8 of res)\n Mt(t8);\n const decoded = decode(buffers[0], buffers[1], buffers[2], buffers[3], config3.body.maxDetected, config3.body.minConfidence);\n if (!model20.inputs[0].shape)\n return [];\n const scaled = scalePoses(decoded, [input.shape[1], input.shape[2]], [model20.inputs[0].shape[2], model20.inputs[0].shape[1]]);\n return scaled;\n}\nasync function load18(config3) {\n if (!model20 || env.initial)\n model20 = await loadModel(config3.body.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model20[\"modelUrl\"]);\n return model20;\n}\n\n// src/segmentation/rvm.ts\nvar model21;\nvar outputNodes2 = [\"fgr\", \"pha\", \"r1o\", \"r2o\", \"r3o\", \"r4o\"];\nvar t = {};\nvar ratio = 0;\nfunction init3(config3) {\n Mt([t.r1i, t.r2i, t.r3i, t.r4i, t.downsample_ratio]);\n t.r1i = ur(0);\n t.r2i = ur(0);\n t.r3i = ur(0);\n t.r4i = ur(0);\n ratio = config3.segmentation.ratio || 0.5;\n t.downsample_ratio = ur(ratio);\n}\nasync function load19(config3) {\n if (!model21 || env.initial)\n model21 = await loadModel(config3.segmentation.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model21[\"modelUrl\"]);\n init3(config3);\n return model21;\n}\nvar normalize = (r) => De(() => {\n const squeeze = gc(r, [0]);\n const mul = se(squeeze, constants.tf255);\n const cast = We(mul, \"int32\");\n return cast;\n});\nfunction getRGBA(fgr, pha) {\n const rgb3 = fgr ? normalize(fgr) : Ea([pha.shape[1] || 0, pha.shape[2] || 0, 3], 255, \"int32\");\n const a = pha ? normalize(pha) : Ea([fgr.shape[1] || 0, fgr.shape[2] || 0, 1], 255, \"int32\");\n const rgba = bt([rgb3, a], -1);\n Mt([rgb3, a]);\n return rgba;\n}\nfunction getState(state) {\n return De(() => {\n const r = {};\n r.unstack = fo(state, -1);\n r.concat = bt(r.unstack, 1);\n r.split = li(r.concat, 4, 1);\n r.stack = bt(r.split, 2);\n r.squeeze = gc(r.stack, [0]);\n r.expand = Ms(r.squeeze, -1);\n r.add = Ce(r.expand, 1);\n r.mul = se(r.add, 127.5);\n r.cast = We(r.mul, \"int32\");\n r.tile = cu(r.cast, [1, 1, 3]);\n r.alpha = Ea([r.tile.shape[0] || 0, r.tile.shape[1] || 0, 1], 255, \"int32\");\n return bt([r.tile, r.alpha], -1);\n });\n}\nasync function predict20(input, config3) {\n if (!model21)\n model21 = await load19(config3);\n if (!(model21 == null ? void 0 : model21[\"executor\"]))\n return null;\n t.src = je(input, 255);\n if (ratio !== config3.segmentation.ratio)\n init3(config3);\n const [fgr, pha, r1o, r2o, r3o, r4o] = await model21.executeAsync(t, outputNodes2);\n let rgba;\n switch (config3.segmentation.mode || \"default\") {\n case \"default\":\n rgba = getRGBA(fgr, pha);\n break;\n case \"alpha\":\n rgba = getRGBA(null, pha);\n break;\n case \"foreground\":\n rgba = getRGBA(fgr, null);\n break;\n case \"state\":\n rgba = getState(r1o);\n break;\n default:\n rgba = ur(0);\n }\n Mt([t.src, fgr, pha, t.r1i, t.r2i, t.r3i, t.r4i]);\n [t.r1i, t.r2i, t.r3i, t.r4i] = [r1o, r2o, r3o, r4o];\n return rgba;\n}\n\n// src/segmentation/selfie.ts\nvar model22;\nasync function load20(config3) {\n if (!model22 || env.initial)\n model22 = await loadModel(config3.segmentation.modelPath);\n else if (config3.debug)\n log(\"cached model:\", model22[\"modelUrl\"]);\n return model22;\n}\nasync function predict21(input, config3) {\n var _a;\n if (!model22)\n model22 = await load20(config3);\n if (!(model22 == null ? void 0 : model22[\"executor\"]) || !((_a = model22 == null ? void 0 : model22.inputs) == null ? void 0 : _a[0].shape))\n return null;\n const t8 = {};\n t8.resize = Kj.resizeBilinear(input, [model22.inputs[0].shape ? model22.inputs[0].shape[1] : 0, model22.inputs[0].shape ? model22.inputs[0].shape[2] : 0], false);\n t8.norm = je(t8.resize, constants.tf255);\n t8.res = model22.execute(t8.norm);\n t8.squeeze = gc(t8.res, [0]);\n t8.alpha = Kj.resizeBilinear(t8.squeeze, [input.shape[1] || 0, input.shape[2] || 0]);\n t8.mul = se(t8.alpha, constants.tf255);\n let rgba;\n switch (config3.segmentation.mode || \"default\") {\n case \"default\":\n t8.input = gc(input);\n t8.concat = bt([t8.input, t8.mul], -1);\n rgba = We(t8.concat, \"int32\");\n break;\n case \"alpha\":\n rgba = We(t8.mul, \"int32\");\n break;\n default:\n rgba = ur(0);\n }\n Object.keys(t8).forEach((tensor) => Mt(t8[tensor]));\n return rgba;\n}\n\n// src/models.ts\nfunction validateModel(instance, model23, name) {\n var _a, _b;\n if (!model23)\n return null;\n if (!((_a = instance == null ? void 0 : instance.config) == null ? void 0 : _a.validateModels))\n return null;\n const simpleOps = [\"const\", \"placeholder\", \"noop\", \"pad\", \"squeeze\", \"add\", \"sub\", \"mul\", \"div\"];\n const ignoreOps = [\"biasadd\", \"fusedbatchnormv3\", \"matmul\", \"switch\", \"shape\", \"merge\", \"split\", \"broadcastto\"];\n const ops = [];\n const missing = [];\n const url = model23[\"modelUrl\"];\n const executor = model23[\"executor\"];\n if ((_b = executor == null ? void 0 : executor.graph) == null ? void 0 : _b.nodes) {\n for (const kernel of Object.values(executor.graph.nodes)) {\n const op2 = kernel.op.toLowerCase();\n if (!ops.includes(op2))\n ops.push(op2);\n }\n } else {\n if (!executor && instance.config.debug) {\n log(\"model not loaded\", name);\n }\n }\n for (const op2 of ops) {\n if (!simpleOps.includes(op2) && !ignoreOps.includes(op2) && !instance.env.kernels.includes(op2) && !instance.env.kernels.includes(op2.replace(\"_\", \"\")) && !instance.env.kernels.includes(op2.replace(\"native\", \"\")) && !instance.env.kernels.includes(op2.replace(\"v2\", \"\"))) {\n missing.push(op2);\n }\n }\n if (instance.config.debug && missing.length > 0)\n log(\"model validation failed:\", name, missing);\n return missing.length > 0 ? { name, missing, ops, url } : null;\n}\nvar Models = class {\n constructor(currentInstance) {\n __publicField(this, \"instance\");\n __publicField(this, \"models\", {});\n this.models = {};\n this.instance = currentInstance;\n }\n stats() {\n let totalSizeFromManifest = 0;\n let totalSizeWeights = 0;\n let totalSizeLoading = 0;\n for (const m of Object.values(modelStats)) {\n totalSizeFromManifest += m.sizeFromManifest;\n totalSizeWeights += m.sizeLoadedWeights;\n totalSizeLoading += m.sizeDesired;\n }\n const percentageLoaded = totalSizeLoading > 0 ? totalSizeWeights / totalSizeLoading : 0;\n return {\n numLoadedModels: Object.values(modelStats).length,\n numDefinedModels: Object.keys(this.models).length,\n percentageLoaded,\n totalSizeFromManifest,\n totalSizeWeights,\n totalSizeLoading,\n modelStats: Object.values(modelStats)\n };\n }\n reset() {\n for (const model23 of Object.keys(this.models))\n this.models[model23] = null;\n }\n async load(instance) {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2, _k2, _l2, _m, _n2, _o, _p2, _q, _r2, _s2, _t, _u2, _v2, _w2, _x2, _y, _z2, _A2;\n if (env.initial)\n this.reset();\n if (instance)\n this.instance = instance;\n const m = {};\n m.blazeface = this.instance.config.face.enabled && !this.models.blazeface ? load3(this.instance.config) : null;\n m.antispoof = this.instance.config.face.enabled && ((_a = this.instance.config.face.antispoof) == null ? void 0 : _a.enabled) && !this.models.antispoof ? load8(this.instance.config) : null;\n m.liveness = this.instance.config.face.enabled && ((_b = this.instance.config.face.liveness) == null ? void 0 : _b.enabled) && !this.models.liveness ? load9(this.instance.config) : null;\n m.faceres = this.instance.config.face.enabled && ((_c2 = this.instance.config.face.description) == null ? void 0 : _c2.enabled) && !this.models.faceres ? load7(this.instance.config) : null;\n m.emotion = this.instance.config.face.enabled && ((_d2 = this.instance.config.face.emotion) == null ? void 0 : _d2.enabled) && !this.models.emotion ? load6(this.instance.config) : null;\n m.iris = this.instance.config.face.enabled && ((_e = this.instance.config.face.iris) == null ? void 0 : _e.enabled) && !((_f2 = this.instance.config.face.attention) == null ? void 0 : _f2.enabled) && !this.models.iris ? load4(this.instance.config) : null;\n m.facemesh = this.instance.config.face.enabled && ((_g2 = this.instance.config.face.mesh) == null ? void 0 : _g2.enabled) && !this.models.facemesh ? load5(this.instance.config) : null;\n m.gear = this.instance.config.face.enabled && ((_h2 = this.instance.config.face[\"gear\"]) == null ? void 0 : _h2.enabled) && !this.models.gear ? load10(this.instance.config) : null;\n m.ssrnetage = this.instance.config.face.enabled && ((_i = this.instance.config.face[\"ssrnet\"]) == null ? void 0 : _i.enabled) && !this.models.ssrnetage ? load11(this.instance.config) : null;\n m.ssrnetgender = this.instance.config.face.enabled && ((_j2 = this.instance.config.face[\"ssrnet\"]) == null ? void 0 : _j2.enabled) && !this.models.ssrnetgender ? load12(this.instance.config) : null;\n m.mobilefacenet = this.instance.config.face.enabled && ((_k2 = this.instance.config.face[\"mobilefacenet\"]) == null ? void 0 : _k2.enabled) && !this.models.mobilefacenet ? load13(this.instance.config) : null;\n m.insightface = this.instance.config.face.enabled && ((_l2 = this.instance.config.face[\"insightface\"]) == null ? void 0 : _l2.enabled) && !this.models.insightface ? load14(this.instance.config) : null;\n m.blazepose = this.instance.config.body.enabled && !this.models.blazepose && ((_m = this.instance.config.body.modelPath) == null ? void 0 : _m.includes(\"blazepose\")) ? loadPose(this.instance.config) : null;\n m.blazeposedetect = this.instance.config.body.enabled && !this.models.blazeposedetect && this.instance.config.body[\"detector\"] && this.instance.config.body[\"detector\"].modelPath ? loadDetect(this.instance.config) : null;\n m.efficientpose = this.instance.config.body.enabled && !this.models.efficientpose && ((_n2 = this.instance.config.body.modelPath) == null ? void 0 : _n2.includes(\"efficientpose\")) ? load2(this.instance.config) : null;\n m.movenet = this.instance.config.body.enabled && !this.models.movenet && ((_o = this.instance.config.body.modelPath) == null ? void 0 : _o.includes(\"movenet\")) ? load16(this.instance.config) : null;\n m.posenet = this.instance.config.body.enabled && !this.models.posenet && ((_p2 = this.instance.config.body.modelPath) == null ? void 0 : _p2.includes(\"posenet\")) ? load18(this.instance.config) : null;\n m.handtrack = this.instance.config.hand.enabled && !this.models.handtrack && ((_r2 = (_q = this.instance.config.hand.detector) == null ? void 0 : _q.modelPath) == null ? void 0 : _r2.includes(\"handtrack\")) ? loadDetect3(this.instance.config) : null;\n m.handskeleton = this.instance.config.hand.enabled && this.instance.config.hand.landmarks && !this.models.handskeleton && ((_t = (_s2 = this.instance.config.hand.detector) == null ? void 0 : _s2.modelPath) == null ? void 0 : _t.includes(\"handtrack\")) ? loadSkeleton2(this.instance.config) : null;\n if (this.instance.config.hand.enabled && !this.models.handdetect && ((_v2 = (_u2 = this.instance.config.hand.detector) == null ? void 0 : _u2.modelPath) == null ? void 0 : _v2.includes(\"handdetect\"))) {\n m.handdetect = loadDetect2(this.instance.config);\n m.handskeleton = loadSkeleton(this.instance.config);\n }\n m.centernet = this.instance.config.object.enabled && !this.models.centernet && ((_w2 = this.instance.config.object.modelPath) == null ? void 0 : _w2.includes(\"centernet\")) ? load(this.instance.config) : null;\n m.nanodet = this.instance.config.object.enabled && !this.models.nanodet && ((_x2 = this.instance.config.object.modelPath) == null ? void 0 : _x2.includes(\"nanodet\")) ? load17(this.instance.config) : null;\n m.selfie = this.instance.config.segmentation.enabled && !this.models.selfie && ((_y = this.instance.config.segmentation.modelPath) == null ? void 0 : _y.includes(\"selfie\")) ? load20(this.instance.config) : null;\n m.meet = this.instance.config.segmentation.enabled && !this.models.meet && ((_z2 = this.instance.config.segmentation.modelPath) == null ? void 0 : _z2.includes(\"meet\")) ? load15(this.instance.config) : null;\n m.rvm = this.instance.config.segmentation.enabled && !this.models.rvm && ((_A2 = this.instance.config.segmentation.modelPath) == null ? void 0 : _A2.includes(\"rvm\")) ? load19(this.instance.config) : null;\n for (const [model23, promise] of Object.entries(m)) {\n if (promise == null ? void 0 : promise[\"then\"])\n promise[\"then\"]((val) => this.models[model23] = val);\n }\n await Promise.all(Object.values(m));\n }\n list() {\n const models3 = Object.keys(this.models).map((model23) => {\n var _a;\n return { name: model23, loaded: this.models[model23] !== null, size: 0, url: this.models[model23] ? (_a = this.models[model23]) == null ? void 0 : _a[\"modelUrl\"] : null };\n });\n for (const m of models3) {\n const stats = Object.keys(modelStats).find((s) => s.startsWith(m.name));\n if (!stats)\n continue;\n m.size = modelStats[stats].sizeLoadedWeights;\n m.url = modelStats[stats].url;\n }\n return models3;\n }\n loaded() {\n const list = this.list();\n const loaded = list.filter((model23) => model23.loaded).map((model23) => model23.name);\n return loaded;\n }\n validate() {\n const missing = [];\n for (const defined of Object.keys(this.models)) {\n const model23 = this.models[defined];\n if (!model23)\n continue;\n const res = validateModel(this.instance, model23, defined);\n if (res)\n missing.push(res);\n }\n return missing;\n }\n};\n\n// src/util/persons.ts\nfunction join2(faces, bodies, hands, gestures, shape) {\n var _a, _b, _c2, _d2, _e, _f2;\n let id2 = 0;\n const persons = [];\n for (const face4 of faces) {\n const person2 = { id: id2++, face: face4, body: null, hands: { left: null, right: null }, gestures: [], box: [0, 0, 0, 0] };\n for (const body4 of bodies) {\n if (face4.box[0] > body4.box[0] && face4.box[0] < body4.box[0] + body4.box[2] && face4.box[1] + face4.box[3] > body4.box[1] && face4.box[1] + face4.box[3] < body4.box[1] + body4.box[3]) {\n person2.body = body4;\n }\n }\n if (person2.body) {\n for (const hand3 of hands) {\n if (hand3.box[0] + hand3.box[2] > person2.body.box[0] && hand3.box[0] + hand3.box[2] < person2.body.box[0] + person2.body.box[2] && hand3.box[1] + hand3.box[3] > person2.body.box[1] && hand3.box[1] + hand3.box[3] < person2.body.box[1] + person2.body.box[3]) {\n if (person2.hands)\n person2.hands.left = hand3;\n }\n if (hand3.box[0] < person2.body.box[0] + person2.body.box[2] && hand3.box[0] > person2.body.box[0] && hand3.box[1] + hand3.box[3] > person2.body.box[1] && hand3.box[1] + hand3.box[3] < person2.body.box[1] + person2.body.box[3]) {\n if (person2.hands)\n person2.hands.right = hand3;\n }\n }\n }\n for (const gesture2 of gestures) {\n if (gesture2[\"face\"] !== void 0 && gesture2[\"face\"] === face4.id)\n person2.gestures.push(gesture2);\n else if (gesture2[\"iris\"] !== void 0 && gesture2[\"iris\"] === face4.id)\n person2.gestures.push(gesture2);\n else if (gesture2[\"body\"] !== void 0 && gesture2[\"body\"] === ((_a = person2.body) == null ? void 0 : _a.id))\n person2.gestures.push(gesture2);\n else if (gesture2[\"hand\"] !== void 0 && gesture2[\"hand\"] === ((_b = person2.hands.left) == null ? void 0 : _b.id))\n person2.gestures.push(gesture2);\n else if (gesture2[\"hand\"] !== void 0 && gesture2[\"hand\"] === ((_c2 = person2.hands.right) == null ? void 0 : _c2.id))\n person2.gestures.push(gesture2);\n }\n const x = [];\n const y8 = [];\n const extractXY = (box) => {\n if (box && box.length === 4) {\n x.push(box[0], box[0] + box[2]);\n y8.push(box[1], box[1] + box[3]);\n }\n };\n extractXY(person2.face.box);\n extractXY((_d2 = person2.body) == null ? void 0 : _d2.box);\n extractXY((_e = person2.hands.left) == null ? void 0 : _e.box);\n extractXY((_f2 = person2.hands.right) == null ? void 0 : _f2.box);\n const minX = Math.min(...x);\n const minY = Math.min(...y8);\n person2.box = [minX, minY, Math.max(...x) - minX, Math.max(...y8) - minY];\n if ((shape == null ? void 0 : shape[1]) && (shape == null ? void 0 : shape[2]))\n person2.boxRaw = [person2.box[0] / shape[2], person2.box[1] / shape[1], person2.box[2] / shape[2], person2.box[3] / shape[1]];\n persons.push(person2);\n }\n return persons;\n}\n\n// src/sample.ts\nvar face3 = `\n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`;\nvar body3 = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\nCvLhho3rN9RWs9Z23n5y6O21YhrVYbdGOCfrrLPJRpv863zVS6FS09SvZj3lVZZRdPSqmnSWdrIE\nebOkK4ldTsgW1WKqd1oMZhEVZyRAImOjGI6rJ7IiATNd46qL02bHkiaxaoNGY2n4ImPgtyV2n0Vo\nGvlx7x2beiyTk08RPevSVUxux00+Fn2n7N+n5rRFb4AAAAAAAAAAAAAAACLVres1tETWekxKQHlu\nL8InR2nPp43wz3j8P/s5dLveWrFqzW0bxPeJeV4xwmdFec+CJnDM9Y/CrY1xv8qvTZ+WYdbDk5oh\n5zHk283U0eo3jaZZ2N5XYjrCnLSJhOK+8d1kxvCqzSwZvousrb7k9LfJ3nB1OLeJdLhufx9LEWn3\n6e7LXN9Ofy5/W4AuxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAETaKxMzO0Qi9646Ta07RDmZ9VbPbaOlI7Qi3i+c3TPUaqcu9adKfy0722ZXvFa9\nXO1OrjrESxt66ZJmcjPUanlidmhkzTZVfLN5VWvsC2b7R3U3yqrZZtO1esz2h2+F+zWTUcuXXTNM\nfeKR3n5+iZLVbqRzNJo9TxHLyaekz62ntD1fDOA6fQbZL7Zc/wCKY6R8odLBgxabFGPDSKUjyiFj\nSZkYa3aALKAAAAAAAAAAAAAADQ4pl2pTFH3p3n5Q33E12Tn1eSfKscsLZ+orS00eJqbW+Lfnu1tF\nXaJnZsz3WpCfsyp00fWSvmPdVYOmSUDd8kR3InoQosy7JmUX7MdwZ17ro7KKT1XRPRAsrO0rYndr\n79V1ZBaQiJ6JgCSIJASwrO07MpV2nqBlrv1a1o2bf2qtfLXaQUTO0sb05o3jv3ZXhjS20xEphW5h\nyeJjjf7UdJWNKLziyRePsz0lux1SgAQAAAAAAAAAAAAAADG9K5KTS8Rato2mJZAPIcU4ZbQZuekT\nOC3afT4NXFkmlntc2GmoxWx5K71tG0vHa/RX0GpmlutJ61t6wrY2xr8dXS5uesN+tt4ef0eaa223\n2dnHk3juyreM81OaFGiy/RtZET9jJ7s/2bdutd2jqKeic3iNTsd8a2h1H0jTVtP2o6W+bZbOO+gA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABje9cdJt\nadohGTLXFTmvO0fy52bJfU23t0pHaqLeL5xdK9Rnvqb+cUjtCi94xxvK3JetKuHrdZvaa1ljb10y\ncnIs1Wt3naJc++TmVWvMz1YWybfMGdsm3eWek0mo4jm8PT0mfW3lDf4V7P5tdMZdRviwfvZ6/TaX\nDpMMYsFIpWPTzXmf+steT8jn8L4Dp+HxF77Zc/4pjpHydYGjC3oAAAAAAAAAAAAAAAAADG9opS1p\n7RG7zszN6WtPe0zLua+3Joss/wBOzhzG2OsL5+IrY09dsSyYRijbHEMvOChb7KjF0yS2LQ169Mso\nS24noyrPVXWejNVKbTuw3T3REdQWU6LYlVvsyiUDPfqupPRr79VuOQX1lZEqoZxIMksd0gT2VT0l\nbPZVbuCaW8i8bwr32WxbcGnkjaZa9p2ndv5qbw5+aNugLItF6TEtvTX5sMb969HMpfazc0d9stqe\nvVZDdAQAAAAAAAAAAAAAAAADV1+iprtPOO/2u9bektoB4TJTJpNRbHkja1Z6uto8viVht+0HDvpG\nH6Tjj6zHHvbecONw7Ltfkmeqmo6Ma69DXbbZTkr1mGWO3RneOaGbZRoM30fVzSelMnT83aef1FZ7\nx3h1tBqfpGnjmn369LNc3sc3kzy9bQCzIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAa+q1dNNXr7157VhGp1Xh70x+9f9ocy283m1p5rz3mVbrjXHjt91lz\n5c9+fJ1nyjyhdM8lZlOOIiqrUXikd+kMreunnI5XEdX4dZiZcG+XmtNl/F83PeeWWHDOGanieSKY\nq+5H2rz2hMzWd1Iqx1yajJXHhrNrW6REeb1nCPZumn2z62Ivl7xTyr/6uhwzhGn4Zj2xxzZJ+1kn\nvLoNJnjHW7TbbsAszAAAAAAAAAAAAAAAAAAAAaPFrbaSK/itEOXt0rDf4xb/ACa/GZacRvaF58Q2\nIjasQnzPIhCU92tMbZGzHmotG10C6nZkwpPRmipIllEbMIZIE7solgmJBnCyk9VMM6z1BtVllEqK\nz0WRILYlluriWcSDJVbusV27gwInaSWM9ECyZ3hqamnSWxFmOSOaqRx725bNnSZNs9J+OynVY+WZ\nYYr7TE+nVaIr0Ais81Yn1hKAAAAAAAAAAAAAAAAAABExvG09peU4nov9n66L0j6q/WPg9Y1OJaON\nZpL0+9HWs/EWzeVz9PbmrEtnyc3h9reHy26TWdnSr2YX6657ijLXpLX0+onSamL/AHJ6W+Tbv2aW\nekTv16JzeI1Ox6KJiYiY7Slz+E6jxdN4dp3vj6fl5Og2clnKACAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ2jeQRMxEbzO0Q08uqtkma4ulfO3r8lefUePMxWf\ncjy9WvlzVxV6T1Z61/x0Y8f7Wc7Ur1lqVy+LqOWJ2hp6rXddon5rOF1tfmz5OkT0qzb8dWbxjp1c\nbiuuilJ5Z6r+IcQrixzEy8zl1E6rNt1tMztFY81sztU1eRucN4ffi2p5esRM72n0h7rS6XFo8FcO\nCkVpX082nwXh3+z9FWLxHi36328vg6TZyW9ABAAAAAAAAAAAAAAAAAAAAAADj8Unm1tK/hqppHvw\ny1k8/EMk+m0GOPeafiFpCZYwolnXspvHvLa9mF46gmnZmwozRUiUCBKYYsoBLOFbKAX0llEqqyzi\nQXRLOJVRLOOwLIljZMEgrlhKyYYTAK5nZPN0RZjugUanHzVlz6xtLq361c+9eXItPpXX0dubTU+E\nbL2lw2++O1fSW6m/VYAISAAAAAAAAAAAAAAAAAp1GbwcfTreelYEydcuMcRrM/L9nnlsV6wqpi2r\ntv133mfWVkRyRtEdGFva7MzkYZNoamWN4bV4mYa9qztKIujhVppxGI8r1mJegeZpknBqKZY+7L0t\nLRekWrO8TG8Ns/HJ5ZypAWZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAADS12fp4VJ6z9qVuq1HgUiI+3bpDl589cOKZmevqprXPTbx477rDJlrhr1nq4+s182tMRP\nRqaziXiZJrWekNG17ZbxWJ336M5LXRbI3dLTJrs07RMY6fan1dHLrowY+X7MVjt6N3R6Kul0EbWm\ns7bz8Z+LnabQX43r7Y53php/mXj+Dnv0f1JO1x/8ZxbUzj02O15mfLtD13AvZqnDds+pmMmo26el\nXX0Wh0/D8EYtNjilY7+s/NstpOOTW7QBKgAAAAAAAAAAAAAAAAAAAAAADG88tLW9I3BwJtz6nNf1\nvK/DHVqYJ3pzT5y3MPZeojOWMQylEKpTVjZnDCwkqzYQyRRICATCITAJZQxhMAshnEq4ZQC2srKq\nqrIBZCWNZZgwswmFloVyCu0dFcx1WyrtCBhv5NTPHXds2U5o3hIz4ffbPt+KHUcTSW5c9Jme0u2v\nVYAKpAAAAAAAAAAAAAAAAYZctcVOa35R6tLrltN795/YvknNqrfhpPLH92V5isd9mWq6fHjk6rn0\nZxG8KK5Jm/wbVZiYZtqrmkqL023bkxvCiY3lJHNyRG81mHS4Rn5sNsNp64+3yaWaNrzOzHBl+i6q\nmT7s9J+S+ay8mex6EIneN47SNXKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAImYiJme0JafEs3h6fkidrZOn5eaLeJk7eOdm1Hi2vmtPTry/CHmOJcUvmvOPF1n09Pm\n6HF9ZGm01qxO3R5vSY7XwzmzTy47zzTEd7en5Mfvt2/PURWdo3tvPrPlKymbktFqTtMTvHzbOLDG\nf63JXbFX7FdnoODcDprZpq9TjiMMTvSn4vj8l5fxnrk91saPSa7i2hpOfbTVt5x1m0fLydzR6PDo\ndPGHBXasd585n1lsRERG0dIF5OOe6tAEqgAAAAAAAAAAAAAAAAAAAAAAADX11+TRZrf0y2Gjxe22\ngtH4piP3TPpXKwxtjhuYo9xq442iIblI2pC1RET2ILd9kxCqRjZmwlCSEohIJAQAAJZISDKGUd2M\nMoBnVbVVCyAWVWeSuqyOwIlXZZKue4MJV2WWYT2QKbKL9YlfdRdIo35b7/Hd3KTzUrPrDh27uxpb\nc2mpPwX/ABX9XAKpAAAAAAAAAAAAAACekTIp1eTwtJmv+GkyJn1oafeazbfpMzLR4jq/o8b823zX\n6XNF8ERCvTcNpxLV5LauvPhx9Irv3lhztdtv8TtaWLicXrt03jzjzb2k1nid56ty3s/w+a7Uwzjn\n1raejlarhmbhl/FpbxMO/fzj5p/ixSeXOvTtRfeI280ZI26tfDm3pWe63LaZx7qtGvniJ6tPLvOK\nfOa9WzbJvTbza02jl3n5SSljscK1MajSxWZ96nSW88xw/VfQ9XMT9nfa3yemid43jtLeXsce88qQ\nEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADia3UTm1l4j7OP3Y/u\n7Vp2rM+kPJW1PhYcmS0+9MzKm/jbwz31weMzbV8UppazPL9q0/BF4rk1GLDSNqxPWPhCnHmnNrtT\nqPKteWPm6U6OdHaZvO+SaRNvhv12Ub/q3FhtrNVj0uKOt56z6R5y9zix1w4qY6RtWsREOJ7L6OKa\nS2rvX6zNM7T6Vh3mmZyOfya7eACzIAAAAAAAAAAAAAAAAAAAAAAAAAAczjVvqMVfW/8AZ03I41bf\nLp6/OVs/UVrY47NyOzUxd4bUJpEbb3Z7IiOrKIVSjZhMLJYyhKIgmGUQSDESIEbJEgQmCITEAmGU\nIiGUAyhZVhDOoM4Wx2VQtqBKuyyWEgqlhKyyuyBVaGtkbNmvk7A15l1eH2300R6TMORPSXT4ZO+O\n8fFefEX63gEAAAAAAAAAAAAAAAq1WPxdLlp+Kkx+y1Fvsz8gjhaDauGK8sx07y3OE3m1tT6RaP4c\nvU6yMNKUx73zT0ilY3l2eF6a+m0kRl/zbzz3+Ez5M8z26fJruW6wzYq5sV8d43raNpZjRzPPaTmx\n5b6bJ9rHO3zb2WJ8GWPEscY9bgzxH2t62n19GWW0eHOzHU5XbjXZ1x8WTnz2iZ7S2M1IjH2+LX0V\nKTqs8zO9ot0j8nUthi1J3UaOFMTfLFo6xMbS9BwHWTqdHOO8+/hnln5eTjYMFo1WTH5VnePzXcIm\n2k4zlpPSmXy/hfF5eMfJns69OA2cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAADG/2LfJ874rW845mubliY7bPoto5qzHrDz0+yePNF41OotaJ7RWNtpV1OtfHqZ715fhu\nj8adNpcVfeyzE2/vLuanhOu1nEctIxTTFa/+ZPbZ3eHcF0vDbTfFE2yzG03t32+DokynXl9+leDB\nTTYKYccbUpWIhYCzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXjE/4zDH9M/wAu04XF5/3jj/0f3Wz9\nRUYmzDWxS2I7FSyjuzY1ZKpRKEygEwiWUIkGIk2QJNhKQhMIhkCYZQxhlAMoZwwZwgWQshVCyATL\nCWc9ldpBhZXLOVdpQK7NfJPRdaWvknoDVvPvOnwuel4+TlXn3nS4VPvXj4QtEV0wAAAAAAAAAAAA\nAAAAAVV02CmTxK4qRf8AFFeq0AAAanEsfPpZmO9Ji0NDLfkwdOsulrumiyzHlVzJrz4Ovoy26vB8\ncTBa9NffLtMY77Rv8Yegx5ImkKdJoY1HC81Y+3OSbVn0mGGkmbY45u6tnrrTOu2xGO0RxCd+nNVj\nqKxTV1vH2pjaGtnyzXXYdo96ZmGXEMk15b7/AGZiVerWPTYckZcNbx5wzc7hGbnxXxzPWk7x8pdF\n0S9jh1OXgAlUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAcPjEf4/FP9H93ccXjMf4vDP9Mx+62fqKrx+S+GvibEFSsqyYwlVK\nZYsmIMoRKYJQIPIEiQ2ATCUQygCGUIhMAyhnDCGUIFkLIV1ZxIMpVWWSrsCuyqyyyq09ECq8tfJK\n66jJ2Bp5J6upwn7dv9Lk5J951uE/av8AJaIrqAAAAAAAAAAAAAAAAAAAAAAq1Mc2myxPnWf4cmtu\nXT9fR0tffk0WSe28bfq5Wbamm3326MtunwfK6PCv/AxPraZ/dz9PO97/AOqf5dHhdZrw7Dv3mOb9\nXOxRFM+avpe38mvkPHf/AFWlrKba7Tzt99ZxKkfR7euyNXMTrtPHfa0z+zPiM/UR8Zj+Wbdu8HpN\nM2bfzrV13M4dO2pyR61dNvj44/J/oAWZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj8bj63BPzdhyeNx0wz8ZWz9RWri7Nmv\nVrYu0NmqaRZHZlDGGSiwxZSgCEkCBCQSCQBMJRCYgEsoYx3Z17AlMIhlCBnDOGEM4AlhZZKq4KrK\n7LLKrIFN2vdfZReAaObu6/CO9vk5OePR1uEd7fJeIrqAIAAAAAAAAAAAAAAAAAAAAGtxCk5NFliI\n3mI32+XVyNTyZOHTee946PQKPoeDffw4777eW/yVs60xv+ZxOnr4Okx1t05KRv8Ao41Z5q3yed5m\nXY1szXRZ5jvFJ/hxItP0aOSN9q7yrtr4f2tHFM5+KT16Yq/vK/iGSbXw4vO14UcPx5MGfNbPG18m\n1oj4THRsTw7VanPXVYpi3gzMcnrvCnG11JOupwuN8+a3pEQ6jT4divjxWnJExa09pbjbM5HHu90A\nJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAHM41H1GOf6nTc/jEf4Ws+lls/UX45uGekNujTwdm5RNIthKIZKLDFlsiQIShIC\nEgCUJ7AmGTGO7IDzZQhMSDJMMYZQgZwzhhDOATuqssmVdgVWVWWyqtCBTeVF19lF+wNLNG7q8I+9\n8nLyupwnt+S8RXUAQAAAAAAAAAAAAAAAAAAAAAAItWL1mto3iY2lyrcLyUxzix2ia2nvPeK+jrCL\nOrTVnxpanhuPPemSs8l6RtE7dJj0ldpNP9GwRSZ3neZmV4cR/Vs4AJQAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHi1d9H\nM+kt5ra+vPoskfDdOfqK4mn7Q3aNHBPZu0W0RdDOGFWcKLCJZeTGQQlCQSgASBsCYZQxhlAJTAmA\nTsmAgGcM4YQyjsgRLC3VnaVcgwsrt3Z2V2QK7tbJ1bN5a9waeWO7p8Knt8nNyebpcK8vkvlFdQBA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK9RXmwZI+ErEWjesx6wQeZwejeo0cccuW8\nelpblJaaRGxVnCuss4ZrMvJEgCAASISCQIBlCYYpieoM0wx8k7gzIRueYM4Z79FcSy3QEsLJmWFp\nBjaVVpZWlXMoGNmvkXXlr3kGtknu6XCf7OXkl1OEdl8orqgIAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAHmskcmtzV/rls0U62OXiWX4zErcc9GmkRfWVkSqqziWayxCPIANwBIhIJSxS\nCRG6dwZwlhEs4BluMdzfqgZxLLdXuy3AmVdpZTKuZBjaVVpWWV2QlhZRdfZRcGpl7urwfrzfJy8r\nrcH61vPyWitdMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHA4nHLxKZ9awnH2ZcY\njbW459aq8fZpfiI2IZwrqzhmsz3Ebm4JN0AMhCQSIASndiAziWUSriWcAyRujc80DM3RCfIETLCW\nUsZEsJYSslXZAwlTddPZTkBp5e7r8Gj6rJPxhx8k9Xa4PG2C8/FaK10QAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAcfjcbZMFvnDWx9m5x2PqcNvS+zSxT7sNPxH62YZQwqzhRZO6UCB\nKUAJTux3SDIRuAncQAmJZRLBMSgZ7iIAZRKd2DICUSlAljLCYWMLIFVukNfI2bNbIDTyT7zu8Ijb\nSz/qcG/2nf4T/wCE/wD2WnxWt4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHL9oL\n+Hw2cm28VvEuPptfgyVj6yIn0no7/FtJfW8NzYMe3PaPd39d3iMug1WktNc2C9dvPbeP1aZ9xF+v\nT471tHu2iflK2HkqWmvaZj5Surqc9Ps5bx+alTHqYHm68S1Vf/NmfnC2vGNTXvyT84Ql6A3cSvHM\nsfaxVn5Ssrxyv3sM/lKB1xza8bwT3pePyWV4tpZ+/MfOEjfGrXiGlt2zV/PotrqcN/s5aT/+wLRj\nFontMSlAlKEgndO6IAZQljDIEgeQljLCzOVdkCu/SGrkbF56NPNeKxMzMRHxENe0+89DwuNtHHzl\n5PJr8NcnLW3Pbf7r1nCZm2gpae8zMrz4i/W6AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAETETG0xukB4HVaeMHEtRi26RedvkyjBSfX9W77QYvC4xz7dMlYlrU7M929dWJLFc6aPK0q\n7YLxPS0S22FlP6q38Zac0yR92s/KVc3tHfFf8tpbcsLRvB/dR/8ALLVnU0r9uL1+dZI1mnmdvGpv\n6TOy6ym+Oto2tWJ+cJ/tW+KLK5KW+zes/KU7tG+h01p64qx8Y6NXNo6Y+uPJlp8rLf0rfG7MXtHa\n0x8pZxqs9e2a8f8A7Oj7HaTHn0+f6RWM23LETfr6vRW4PoL99NT8ui7F4+vEdXXtnt+fVbXjGsr/\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n\n// src/warmup.ts\nasync function warmupBitmap(instance) {\n const b64toBlob = (base64, type = \"application/octet-stream\") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());\n let blob;\n let res;\n switch (instance.config.warmup) {\n case \"face\":\n blob = await b64toBlob(face3);\n break;\n case \"body\":\n case \"full\":\n blob = await b64toBlob(body3);\n break;\n default:\n blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await instance.detect(bitmap, instance.config);\n bitmap.close();\n }\n return res;\n}\nasync function warmupCanvas(instance) {\n return new Promise((resolve) => {\n let src;\n switch (instance.config.warmup) {\n case \"face\":\n src = \"data:image/jpeg;base64,\" + face3;\n break;\n case \"full\":\n case \"body\":\n src = \"data:image/jpeg;base64,\" + body3;\n break;\n default:\n src = \"\";\n }\n let img;\n if (typeof Image !== \"undefined\")\n img = new Image();\n else if (env.Image)\n img = new env.Image();\n else {\n resolve(void 0);\n return;\n }\n img.onload = async () => {\n const canvas3 = canvas(img.naturalWidth, img.naturalHeight);\n if (!canvas3) {\n log(\"Warmup: Canvas not found\");\n resolve(void 0);\n } else {\n const ctx = canvas3.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(img, 0, 0);\n const tensor = await instance.image(canvas3, true);\n const res = tensor.tensor ? await instance.detect(tensor.tensor, instance.config) : void 0;\n resolve(res);\n }\n };\n if (src)\n img.src = src;\n else\n resolve(void 0);\n });\n}\nasync function warmupNode(instance) {\n const atob2 = (str) => Buffer.from(str, \"base64\");\n let img;\n if (instance.config.warmup === \"face\")\n img = atob2(face3);\n else\n img = atob2(body3);\n let res;\n if (\"node\" in tfjs_esm_exports && Cde() === \"tensorflow\") {\n const data = (void 0).decodeJpeg(img);\n const expanded = Ms(data, 0);\n instance.tf.dispose(data);\n res = await instance.detect(expanded, instance.config);\n instance.tf.dispose(expanded);\n } else {\n if (instance.config.debug)\n log(\"Warmup tfjs-node not loaded\");\n }\n return res;\n}\nasync function runInference(instance) {\n let res;\n if (typeof createImageBitmap === \"function\")\n res = await warmupBitmap(instance);\n else if (typeof Image !== \"undefined\" || env.Canvas !== void 0)\n res = await warmupCanvas(instance);\n else\n res = await warmupNode(instance);\n return res;\n}\nasync function runCompile(instance) {\n var _a, _b, _c2, _d2;\n if (!A().flagRegistry.ENGINE_COMPILE_ONLY)\n return;\n const backendType = Cde();\n const webGLBackend = vde();\n if (backendType !== \"webgl\" && backendType !== \"humangl\" || !(webGLBackend == null ? void 0 : webGLBackend[\"checkCompileCompletion\"])) {\n return;\n }\n A().set(\"ENGINE_COMPILE_ONLY\", true);\n const numTensorsStart = pr().state.numTensors;\n const compiledModels = [];\n for (const [modelName, model23] of Object.entries(instance.models.models)) {\n if (!model23)\n continue;\n const shape = (model23 == null ? void 0 : model23.modelSignature) && ((_b = (_a = model23 == null ? void 0 : model23.inputs) == null ? void 0 : _a[0]) == null ? void 0 : _b.shape) ? [...model23.inputs[0].shape] : [1, 64, 64, 3];\n const dtype = (model23 == null ? void 0 : model23.modelSignature) && ((_d2 = (_c2 = model23 == null ? void 0 : model23.inputs) == null ? void 0 : _c2[0]) == null ? void 0 : _d2.dtype) ? model23.inputs[0].dtype : \"float32\";\n for (let dim = 0; dim < shape.length; dim++) {\n if (shape[dim] === -1)\n shape[dim] = dim === 0 ? 1 : 64;\n }\n const tensor = Gr(shape, dtype);\n try {\n const res = model23.execute(tensor);\n compiledModels.push(modelName);\n if (Array.isArray(res))\n res.forEach((t8) => Mt(t8));\n else\n Mt(res);\n } catch (e) {\n if (instance.config.debug)\n log(\"compile fail model:\", modelName);\n }\n Mt(tensor);\n }\n const kernels = await webGLBackend[\"checkCompileCompletionAsync\"]();\n webGLBackend[\"getUniformLocations\"]();\n if (instance.config.debug)\n log(\"compile pass:\", { models: compiledModels, kernels: kernels.length });\n A().set(\"ENGINE_COMPILE_ONLY\", false);\n const numTensorsEnd = pr().state.numTensors;\n if (numTensorsEnd - numTensorsStart > 0)\n log(\"tensor leak:\", numTensorsEnd - numTensorsStart);\n}\nasync function warmup(instance, userConfig) {\n await check(instance, false);\n const t02 = now();\n instance.state = \"warmup\";\n if (userConfig)\n instance.config = mergeDeep(instance.config, userConfig);\n if (!instance.config.warmup || instance.config.warmup.length === 0 || instance.config.warmup === \"none\") {\n return empty();\n }\n return new Promise(async (resolve) => {\n await instance.models.load();\n await runCompile(instance);\n const res = await runInference(instance);\n const t12 = now();\n if (instance.config.debug)\n log(\"warmup\", instance.config.warmup, Math.round(t12 - t02), \"ms\");\n instance.emit(\"warmup\");\n resolve(res);\n });\n}\n\n// src/human.ts\nvar _numTensors, _analyzeMemoryLeaks, _checkSanity, _sanity, _loops;\nvar Human = class {\n // definition end\n /** Constructor for **Human** library that is futher used for all operations\n * @param userConfig - user configuration object {@link Config}\n */\n constructor(userConfig) {\n /** Current version of Human library in *semver* format */\n __publicField(this, \"version\");\n /** Current configuration\n * - Defaults: [config](https://github.com/vladmandic/human/blob/main/src/config.ts#L262)\n */\n __publicField(this, \"config\");\n /** Last known result of detect run\n * - Can be accessed anytime after initial detection\n */\n __publicField(this, \"result\");\n /** Current state of Human library\n * - Can be polled to determine operations that are currently executed\n * - Progresses through: 'config', 'check', 'backend', 'load', 'run:', 'idle'\n */\n __publicField(this, \"state\");\n /** currenty processed image tensor and canvas */\n __publicField(this, \"process\");\n /** Instance of TensorFlow/JS used by Human\n * - Can be embedded or externally provided\n * [TFJS API](https://js.tensorflow.org/api/latest/)\n */\n __publicField(this, \"tf\");\n /** Object containing environment information used for diagnostics */\n __publicField(this, \"env\", env);\n /** Draw helper classes that can draw detected objects on canvas using specified draw\n * - canvas: draws input to canvas\n * - options: are global settings for all draw operations, can be overriden for each draw method {@link DrawOptions}\n * - face, body, hand, gesture, object, person: draws detected results as overlays on canvas\n */\n // draw: { canvas: typeof draw.canvas, face: typeof draw.face, body: typeof draw.body, hand: typeof draw.hand, gesture: typeof draw.gesture, object: typeof draw.object, person: typeof draw.person, all: typeof draw.all, options: DrawOptions };\n __publicField(this, \"draw\", draw_exports);\n /** Face Matching\n * - similarity: compare two face descriptors and return similarity index\n * - distance: compare two face descriptors and return raw calculated differences\n * - find: compare face descriptor to array of face descriptors and return best match\n */\n __publicField(this, \"match\", match_exports);\n /** Currently loaded models\n * @internal\n * {@link models#Models}\n */\n __publicField(this, \"models\");\n /** Container for events dispatched by Human\n * Possible events:\n * - `create`: triggered when Human object is instantiated\n * - `load`: triggered when models are loaded (explicitly or on-demand)\n * - `image`: triggered when input image is processed\n * - `result`: triggered when detection is complete\n * - `warmup`: triggered when warmup is complete\n * - `error`: triggered on some errors\n */\n __publicField(this, \"events\");\n /** Reference face triangualtion array of 468 points, used for triangle references between points */\n __publicField(this, \"faceTriangulation\");\n /** Refernce UV map of 468 values, used for 3D mapping of the face mesh */\n __publicField(this, \"faceUVMap\");\n /** Performance object that contains values for all recently performed operations */\n __publicField(this, \"performance\");\n // perf members are dynamically defined as needed\n __privateAdd(this, _numTensors, void 0);\n __privateAdd(this, _analyzeMemoryLeaks, void 0);\n __privateAdd(this, _checkSanity, void 0);\n /** internal function to measure tensor leaks */\n __publicField(this, \"analyze\", (...msg) => {\n if (!__privateGet(this, _analyzeMemoryLeaks))\n return;\n const currentTensors = this.tf.engine().state.numTensors;\n const previousTensors = __privateGet(this, _numTensors);\n __privateSet(this, _numTensors, currentTensors);\n const leaked = currentTensors - previousTensors;\n if (leaked !== 0)\n log(...msg, leaked);\n });\n /** internal function for quick sanity check on inputs @hidden */\n __privateAdd(this, _sanity, (input) => {\n if (!__privateGet(this, _checkSanity))\n return null;\n if (!input)\n return \"input is not defined\";\n if (this.env.node && !(input instanceof ut))\n return \"input must be a tensor\";\n try {\n this.tf.getBackend();\n } catch (e) {\n return \"backend not loaded\";\n }\n return null;\n });\n /** WebCam helper methods\n *\n */\n __publicField(this, \"webcam\", new WebCam());\n /** emit event */\n __publicField(this, \"emit\", (event) => {\n var _a;\n if ((_a = this.events) == null ? void 0 : _a.dispatchEvent)\n this.events.dispatchEvent(new Event(event));\n });\n /** internal structure that keeps track of processed videos @hidden */\n __privateAdd(this, _loops, {});\n const tfVersion = (Ace.tfjs || _X).replace(/-(.*)/, \"\");\n config.wasmPath = `https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@${tfVersion}/dist/`;\n config.modelBasePath = env.browser ? \"../models/\" : \"file://models/\";\n this.version = version;\n Object.defineProperty(this, \"version\", { value: version });\n this.config = JSON.parse(JSON.stringify(config));\n Object.seal(this.config);\n this.config.cacheModels = typeof indexedDB !== \"undefined\";\n if (userConfig)\n this.config = mergeDeep(this.config, userConfig);\n setModelLoadOptions(this.config);\n this.tf = tfjs_esm_exports;\n this.state = \"idle\";\n __privateSet(this, _numTensors, 0);\n __privateSet(this, _analyzeMemoryLeaks, false);\n __privateSet(this, _checkSanity, false);\n this.performance = {};\n this.events = typeof EventTarget !== \"undefined\" ? new EventTarget() : void 0;\n this.models = new Models(this);\n init2();\n this.result = empty();\n this.process = { tensor: null, canvas: null };\n this.faceTriangulation = triangulation;\n this.faceUVMap = uvmap;\n validateModel(this, null, \"\");\n this.emit(\"create\");\n if (this.config.debug || this.env.browser)\n log(`version: ${this.version}`);\n if (this.config.debug)\n log(`tfjs version: ${this.tf.version[\"tfjs-core\"]}`);\n const envTemp = JSON.parse(JSON.stringify(this.env));\n delete envTemp.kernels;\n delete envTemp.initial;\n delete envTemp.perfadd;\n if (this.config.debug)\n log(\"environment:\", envTemp);\n }\n /** Reset configuration to default values */\n reset() {\n const currentBackend = this.config.backend;\n this.config = JSON.parse(JSON.stringify(config));\n this.config.backend = currentBackend;\n reset();\n env.initial = true;\n }\n /** Validate current configuration schema */\n validate(userConfig) {\n const msgs = validate(config, userConfig || this.config);\n if (msgs.length === 0)\n this.config = mergeDeep(this.config, userConfig);\n return msgs;\n }\n /** Utility wrapper for performance.now() */\n now() {\n return now();\n }\n /** Process input as return canvas and tensor\n *\n * @param input - any input {@link Input}\n * @param getTensor - should image processing also return tensor or just canvas\n * Returns object with `tensor` and `canvas`\n */\n image(input, getTensor = false) {\n return process2(input, this.config, getTensor);\n }\n /** Segmentation method takes any input and returns RGBA tensor\n * Note: Segmentation is not triggered as part of detect process\n *\n * @param input - {@link Input}\n * Returns tensor which contains image data in RGBA format\n */\n async segmentation(input, userConfig) {\n var _a, _b, _c2;\n if (userConfig)\n this.config = mergeDeep(this.config, userConfig);\n if (!this.config.segmentation.enabled)\n return null;\n const processed = await process2(input, this.config);\n if (!processed.tensor)\n return null;\n let tensor = null;\n if ((_a = this.config.segmentation.modelPath) == null ? void 0 : _a.includes(\"rvm\"))\n tensor = await predict20(processed.tensor, this.config);\n if ((_b = this.config.segmentation.modelPath) == null ? void 0 : _b.includes(\"meet\"))\n tensor = await predict16(processed.tensor, this.config);\n if ((_c2 = this.config.segmentation.modelPath) == null ? void 0 : _c2.includes(\"selfie\"))\n tensor = await predict21(processed.tensor, this.config);\n Mt(processed.tensor);\n return tensor;\n }\n /** Compare two input tensors for pixel similarity\n * - use `human.image` to process any valid input and get a tensor that can be used for compare\n * - when passing manually generated tensors:\n * - both input tensors must be in format [1, height, width, 3]\n * - if resolution of tensors does not match, second tensor will be resized to match resolution of the first tensor\n * - return value is pixel similarity score normalized by input resolution and rgb channels\n */\n compare(firstImageTensor, secondImageTensor) {\n return compare(this.config, firstImageTensor, secondImageTensor);\n }\n /** Explicit backend initialization\n * - Normally done implicitly during initial load phase\n * - Call to explictly register and initialize TFJS backend without any other operations\n * - Use when changing backend during runtime\n */\n async init() {\n await check(this, true);\n await this.tf.ready();\n reset();\n }\n /** Load method preloads all configured models on-demand\n * - Not explicitly required as any required model is load implicitly on it's first run\n *\n * @param userConfig - {@link Config}\n */\n async load(userConfig) {\n this.state = \"load\";\n const timeStamp = now();\n const count2 = Object.values(this.models.models).filter((model23) => model23).length;\n if (userConfig)\n this.config = mergeDeep(this.config, userConfig);\n if (this.env.initial) {\n if (!await check(this, false))\n log(\"error: backend check failed\");\n await bde();\n if (this.env.browser) {\n if (this.config.debug)\n log(\"configuration:\", this.config);\n if (this.config.debug)\n log(\"tf flags:\", this.tf.ENV.flags);\n }\n }\n await this.models.load(this);\n if (this.env.initial && this.config.debug)\n log(\"tf engine state:\", this.tf.engine().state.numBytes, \"bytes\", this.tf.engine().state.numTensors, \"tensors\");\n this.env.initial = false;\n const loaded = Object.values(this.models.models).filter((model23) => model23).length;\n if (loaded !== count2) {\n this.models.validate();\n this.emit(\"load\");\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.performance.loadModels || 0))\n this.performance.loadModels = this.env.perfadd ? (this.performance.loadModels || 0) + current : current;\n }\n /** Runs interpolation using last known result and returns smoothened result\n * Interpolation is based on time since last known result so can be called independently\n *\n * @param result - {@link Result} optional use specific result set to run interpolation on\n * @returns result - {@link Result}\n */\n next(result = this.result) {\n return calc2(result, this.config);\n }\n /** Warmup method pre-initializes all configured models for faster inference\n * - can take significant time on startup\n * - only used for `webgl` and `humangl` backends\n * @param userConfig - {@link Config}\n * @returns result - {@link Result}\n */\n async warmup(userConfig) {\n const t02 = now();\n const res = await warmup(this, userConfig);\n const t12 = now();\n this.performance.warmup = Math.trunc(t12 - t02);\n return res;\n }\n /** Run detect with tensorflow profiling\n * - result object will contain total exeuction time information for top-20 kernels\n * - actual detection object can be accessed via `human.result`\n */\n async profile(input, userConfig) {\n const profile = await this.tf.profile(() => this.detect(input, userConfig));\n const kernels = {};\n let total = 0;\n for (const kernel of profile.kernels) {\n const ms2 = Number(kernel.kernelTimeMs) || 0;\n if (kernels[kernel.name])\n kernels[kernel.name] += ms2;\n else\n kernels[kernel.name] = ms2;\n total += ms2;\n }\n const kernelArr = [];\n Object.entries(kernels).forEach((key) => kernelArr.push({ kernel: key[0], time: key[1], perc: 0 }));\n for (const kernel of kernelArr) {\n kernel.perc = Math.round(1e3 * kernel.time / total) / 1e3;\n kernel.time = Math.round(1e3 * kernel.time) / 1e3;\n }\n kernelArr.sort((a, b) => b.time - a.time);\n kernelArr.length = 20;\n return kernelArr;\n }\n /** Main detection method\n * - Analyze configuration: {@link Config}\n * - Pre-process input: {@link Input}\n * - Run inference for all configured models\n * - Process and return result: {@link Result}\n *\n * @param input - {@link Input}\n * @param userConfig - {@link Config}\n * @returns result - {@link Result}\n */\n async detect(input, userConfig) {\n this.state = \"detect\";\n return new Promise(async (resolve) => {\n var _a, _b, _c2, _d2, _e, _f2, _g2, _h2, _i, _j2, _k2, _l2, _m, _n2, _o, _p2, _q, _r2, _s2, _t, _u2;\n this.state = \"config\";\n let timeStamp;\n this.config = mergeDeep(this.config, userConfig);\n this.state = \"check\";\n const error = __privateGet(this, _sanity).call(this, input);\n if (error) {\n log(error, input);\n this.emit(\"error\");\n resolve(empty(error));\n }\n const timeStart = now();\n await this.load();\n timeStamp = now();\n this.state = \"image\";\n const img = await process2(input, this.config);\n this.process = img;\n this.performance.inputProcess = this.env.perfadd ? (this.performance.inputProcess || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n this.analyze(\"Get Image:\");\n if (!img.tensor) {\n if (this.config.debug)\n log(\"could not convert input to tensor\");\n this.emit(\"error\");\n resolve(empty(\"could not convert input to tensor\"));\n return;\n }\n this.emit(\"image\");\n timeStamp = now();\n this.config.skipAllowed = await skip(this.config, img.tensor);\n this.config.filter.autoBrightness = (this.config.filter.autoBrightness || false) && this.config.skipAllowed;\n if (!this.performance.totalFrames)\n this.performance.totalFrames = 0;\n if (!this.performance.cachedFrames)\n this.performance.cachedFrames = 0;\n this.performance.totalFrames++;\n if (this.config.skipAllowed)\n this.performance.cachedFrames++;\n this.performance.cacheCheck = this.env.perfadd ? (this.performance.cacheCheck || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n this.analyze(\"Check Changed:\");\n let faceRes = [];\n let bodyRes = [];\n let handRes = [];\n let objectRes = [];\n this.state = \"detect:face\";\n if (this.config.async) {\n faceRes = this.config.face.enabled ? detectFace(this, img.tensor) : [];\n if (this.performance.face)\n delete this.performance.face;\n } else {\n timeStamp = now();\n faceRes = this.config.face.enabled ? await detectFace(this, img.tensor) : [];\n this.performance.face = this.env.perfadd ? (this.performance.face || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n if (this.config.async && (this.config.body.maxDetected === -1 || this.config.hand.maxDetected === -1))\n faceRes = await faceRes;\n this.analyze(\"Start Body:\");\n this.state = \"detect:body\";\n const bodyConfig = this.config.body.maxDetected === -1 ? mergeDeep(this.config, { body: { maxDetected: this.config.face.enabled ? 1 * faceRes.length : 1 } }) : this.config;\n if (this.config.async) {\n if ((_a = this.config.body.modelPath) == null ? void 0 : _a.includes(\"posenet\"))\n bodyRes = this.config.body.enabled ? predict19(img.tensor, bodyConfig) : [];\n else if ((_b = this.config.body.modelPath) == null ? void 0 : _b.includes(\"blazepose\"))\n bodyRes = this.config.body.enabled ? predict(img.tensor, bodyConfig) : [];\n else if ((_c2 = this.config.body.modelPath) == null ? void 0 : _c2.includes(\"efficientpose\"))\n bodyRes = this.config.body.enabled ? predict3(img.tensor, bodyConfig) : [];\n else if ((_d2 = this.config.body.modelPath) == null ? void 0 : _d2.includes(\"movenet\"))\n bodyRes = this.config.body.enabled ? predict17(img.tensor, bodyConfig) : [];\n if (this.performance.body)\n delete this.performance.body;\n } else {\n timeStamp = now();\n if ((_e = this.config.body.modelPath) == null ? void 0 : _e.includes(\"posenet\"))\n bodyRes = this.config.body.enabled ? await predict19(img.tensor, bodyConfig) : [];\n else if ((_f2 = this.config.body.modelPath) == null ? void 0 : _f2.includes(\"blazepose\"))\n bodyRes = this.config.body.enabled ? await predict(img.tensor, bodyConfig) : [];\n else if ((_g2 = this.config.body.modelPath) == null ? void 0 : _g2.includes(\"efficientpose\"))\n bodyRes = this.config.body.enabled ? await predict3(img.tensor, bodyConfig) : [];\n else if ((_h2 = this.config.body.modelPath) == null ? void 0 : _h2.includes(\"movenet\"))\n bodyRes = this.config.body.enabled ? await predict17(img.tensor, bodyConfig) : [];\n this.performance.body = this.env.perfadd ? (this.performance.body || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n this.analyze(\"End Body:\");\n this.analyze(\"Start Hand:\");\n this.state = \"detect:hand\";\n const handConfig = this.config.hand.maxDetected === -1 ? mergeDeep(this.config, { hand: { maxDetected: this.config.face.enabled ? 2 * faceRes.length : 1 } }) : this.config;\n if (this.config.async) {\n if ((_j2 = (_i = this.config.hand.detector) == null ? void 0 : _i.modelPath) == null ? void 0 : _j2.includes(\"handdetect\"))\n handRes = this.config.hand.enabled ? predict14(img.tensor, handConfig) : [];\n else if ((_l2 = (_k2 = this.config.hand.detector) == null ? void 0 : _k2.modelPath) == null ? void 0 : _l2.includes(\"handtrack\"))\n handRes = this.config.hand.enabled ? predict15(img.tensor, handConfig) : [];\n if (this.performance.hand)\n delete this.performance.hand;\n } else {\n timeStamp = now();\n if ((_n2 = (_m = this.config.hand.detector) == null ? void 0 : _m.modelPath) == null ? void 0 : _n2.includes(\"handdetect\"))\n handRes = this.config.hand.enabled ? await predict14(img.tensor, handConfig) : [];\n else if ((_p2 = (_o = this.config.hand.detector) == null ? void 0 : _o.modelPath) == null ? void 0 : _p2.includes(\"handtrack\"))\n handRes = this.config.hand.enabled ? await predict15(img.tensor, handConfig) : [];\n this.performance.hand = this.env.perfadd ? (this.performance.hand || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n this.analyze(\"End Hand:\");\n this.analyze(\"Start Object:\");\n this.state = \"detect:object\";\n if (this.config.async) {\n if ((_q = this.config.object.modelPath) == null ? void 0 : _q.includes(\"nanodet\"))\n objectRes = this.config.object.enabled ? predict18(img.tensor, this.config) : [];\n else if ((_r2 = this.config.object.modelPath) == null ? void 0 : _r2.includes(\"centernet\"))\n objectRes = this.config.object.enabled ? predict2(img.tensor, this.config) : [];\n if (this.performance.object)\n delete this.performance.object;\n } else {\n timeStamp = now();\n if ((_s2 = this.config.object.modelPath) == null ? void 0 : _s2.includes(\"nanodet\"))\n objectRes = this.config.object.enabled ? await predict18(img.tensor, this.config) : [];\n else if ((_t = this.config.object.modelPath) == null ? void 0 : _t.includes(\"centernet\"))\n objectRes = this.config.object.enabled ? await predict2(img.tensor, this.config) : [];\n this.performance.object = this.env.perfadd ? (this.performance.object || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n }\n this.analyze(\"End Object:\");\n this.state = \"detect:await\";\n if (this.config.async)\n [faceRes, bodyRes, handRes, objectRes] = await Promise.all([faceRes, bodyRes, handRes, objectRes]);\n this.state = \"detect:gesture\";\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...face2(faceRes), ...body2(bodyRes), ...hand2(handRes), ...iris2(faceRes)];\n if (!this.config.async)\n this.performance.gesture = this.env.perfadd ? (this.performance.gesture || 0) + Math.trunc(now() - timeStamp) : Math.trunc(now() - timeStamp);\n else if (this.performance.gesture)\n delete this.performance.gesture;\n }\n this.performance.total = this.env.perfadd ? (this.performance.total || 0) + Math.trunc(now() - timeStart) : Math.trunc(now() - timeStart);\n const shape = ((_u2 = this.process.tensor) == null ? void 0 : _u2.shape) || [0, 0, 0, 0];\n this.result = {\n face: faceRes,\n body: bodyRes,\n hand: handRes,\n gesture: gestureRes,\n object: objectRes,\n performance: this.performance,\n canvas: this.process.canvas,\n timestamp: Date.now(),\n error: null,\n width: shape[2],\n height: shape[1],\n get persons() {\n return join2(faceRes, bodyRes, handRes, gestureRes, shape);\n }\n };\n Mt(img.tensor);\n this.emit(\"detect\");\n this.state = \"idle\";\n resolve(this.result);\n });\n }\n /** Helper function\n * @param ms - sleep time in miliseconds\n */\n async sleep(ms2) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms2);\n });\n }\n /** Continously detect video frames\n * @param element - HTMLVideoElement input\n * @param run - boolean run continously or stop if already running, default true\n * @param delay - number delay detection between frames for number of miliseconds, default 0\n */\n async video(element, run = true, delay = 0) {\n if (run) {\n if (!__privateGet(this, _loops)[element.id]) {\n if (this.config.debug)\n log(\"video start\", element.id);\n __privateGet(this, _loops)[element.id] = true;\n }\n if (!element.paused && __privateGet(this, _loops)[element.id] && element.readyState >= 2)\n await this.detect(element);\n if (delay > 0)\n await this.sleep(delay);\n if (__privateGet(this, _loops)[element.id])\n requestAnimationFrame(() => this.video(element, run, delay));\n } else {\n if (this.config.debug)\n log(\"video stop\", element.id);\n __privateGet(this, _loops)[element.id] = false;\n }\n }\n};\n_numTensors = new WeakMap();\n_analyzeMemoryLeaks = new WeakMap();\n_checkSanity = new WeakMap();\n_sanity = new WeakMap();\n_loops = new WeakMap();\nexport {\n Env,\n Human,\n Human as default,\n config as defaults,\n draw_exports as draw,\n empty,\n env,\n match_exports as match,\n models_exports2 as models\n};\n//# sourceMappingURL=human.esm.js.map\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","module.exports = __webpack_public_path__ + \"img/mobile-option.d34b592e.png\";","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewDoc.vue?vue&type=style&index=0&id=0e48ca55&scoped=true&lang=css&\"","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","// Función para hablar el mensaje proporcionado utilizando la API de síntesis de voz del navegador\r\nasync function speakMessage(message, Speak) {\r\n if (Speak) { // Verificar si se puede hablar\r\n const synthesis = window && (window).speechSynthesis;\r\n \r\n // Obtener las voces disponibles\r\n const getVoices = () => {\r\n return new Promise(resolve => {\r\n const voices = synthesis.getVoices();\r\n if (voices.length) {\r\n resolve(voices);\r\n } else {\r\n synthesis.onvoiceschanged = () => {\r\n const updatedVoices = synthesis.getVoices();\r\n resolve(updatedVoices);\r\n };\r\n }\r\n });\r\n };\r\n \r\n // Reproducir el audio\r\n const playAudio = async () => {\r\n const voices = await getVoices();\r\n let voice = voices.find(voice => voice.lang === 'es-ES');\r\n \r\n if (!voice) {\r\n voice = voices.find(voice => voice.lang === 'en-US');\r\n }\r\n\r\n if (voice) {\r\n const utterance = new SpeechSynthesisUtterance(message);\r\n utterance.voice = voice;\r\n try {\r\n synthesis.speak(utterance);\r\n } catch (error) {\r\n console.log('Speaking...');\r\n }\r\n } else {\r\n console.error('Voz no encontrada.');\r\n }\r\n };\r\n \r\n await playAudio();\r\n }\r\n }\r\n \r\n // Función para detener la síntesis de voz en curso\r\n function stopSpeaking() {\r\n if ('speechSynthesis' in window && window.speechSynthesis.speaking) {\r\n window.speechSynthesis.cancel();\r\n }\r\n }\r\n \r\n // Función para habilitar o deshabilitar la síntesis de voz\r\n function toggleSpeaking(bool) {\r\n if ('speechSynthesis' in window) {\r\n if (bool) {\r\n stopSpeaking();\r\n return false; // Deshabilitar la síntesis de voz\r\n } else {\r\n return true; // Habilitar la síntesis de voz\r\n }\r\n }\r\n }\r\n \r\n export { speakMessage, stopSpeaking, toggleSpeaking };","module.exports = __webpack_public_path__ + \"img/otp-option.b20ad32e.png\";","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('section',{staticClass:\"container-fluid\"},[_c('h1',{staticClass:\"titles\"},[_vm._v(\"Documento\")]),(_vm.pdf_name)?_c('h3',{staticClass:\"subtitles\"},[_vm._v(_vm._s(_vm.pdf_name)+\".pdf\")]):_vm._e()]),_c('section',{staticClass:\"container-fluid\"},[_c('b-overlay',{attrs:{\"show\":_vm.finishLoading,\"rounded\":\"sm\",\"opacity\":0.5},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('b-icon',{staticClass:\"mt-4 text-cid-primary\",attrs:{\"icon\":\"arrow-clockwise\",\"animation\":\"spin\",\"font-scale\":\"3\"}}),_c('p',{attrs:{\"id\":\"cancel-label\"}},[_vm._v(\"Por favor espere...\")])],1)]},proxy:true}])},[_c('b-row',[_c('b-col',{attrs:{\"xl\":\"9\"}},[_c('div',{staticClass:\"pg_number\"},[_vm._v(\" \"+_vm._s(_vm.page)+\"/\"+_vm._s(_vm.numPages)+\" \")]),_c('div',{ref:\"pdfComponent\",staticClass:\"viewer\"},[_c('div',{staticClass:\"arrow left\"},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-circle\",\"font-scale\":\"2\",\"aria-hidden\":\"true\"},on:{\"click\":function($event){_vm.page > 1 ? _vm.page-- : 1}}})],1),_c('div',{staticClass:\"arrow right\"},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle\",\"font-scale\":\"2\",\"aria-hidden\":\"true\"},on:{\"click\":function($event){_vm.page < _vm.numPages ? _vm.page++ : 1}}})],1),_vm._l((_vm.page > 0 ? _vm.pagesSignatures[_vm.page - 1].signaturesForShow : []),function(item){return _c('vue-draggable-resizable',{key:item.id,attrs:{\"w\":item.imageWidth,\"h\":item.imageHeight,\"x\":item.xPosition,\"y\":item.yPosition,\"parent\":true,\"resizable\":item.resize,\"draggable\":item.draggable,\"z\":999},on:{\"dragging\":function (x, y) { return item.onDrag(x, y); },\"resizing\":function (x, y, width, height) { return item.onResize(x, y, width, height); }}},[(item.img)?_c('img',{ref:\"draggy\",refInFor:true,style:(_vm.signatureStyleObject),attrs:{\"src\":item.img,\"width\":item.imageWidth,\"height\":item.imageHeight}}):_vm._e()])}),_c('pdf',{staticClass:\"pdf-self\",attrs:{\"src\":_vm.src,\"page\":_vm.page},on:{\"num-pages\":function($event){_vm.numPages = $event},\"page-loaded\":function($event){_vm.page = $event},\"loaded\":_vm.pdfLoaded,\"progress\":function($event){_vm.loadedRatio = $event},\"error\":_vm.error}}),_c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"opacity\":\"0.5\",\"blur\":\"none\",\"no-wrap\":\"\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('b-icon',{staticClass:\"mt-4 text-cid-primary\",attrs:{\"icon\":\"arrow-clockwise\",\"animation\":\"spin\",\"font-scale\":\"3\"}})],1)]},proxy:true}])})],2)]),_c('b-col',{staticClass:\"d-none d-xl-block p-0\",attrs:{\"xl\":\"3\"}},[_c('b-container',{staticClass:\"details-col px-2 py-4\"},[(_vm.sign_button && !_vm.isLoading)?_c('h6',{class:{ titleUnderline: true }},[_vm._v(\"Acciones\")]):_vm._e(),(_vm.showManualSignatureEditableItems())?_c('div',{staticClass:\"border p-3\",class:{ 'mb-3': _vm.getTotalSignaturesCount() > 0 }},_vm._l((_vm.pagesSignatures),function(pageObject,pageIndex){return _c('div',{key:pageIndex},_vm._l((pageObject.signatures),function(signature,signatureIndex){return _c('div',{key:signature.id},[_c('cid-button',{staticClass:\"px-4 w-100\",class:{ 'mt-3': pageIndex > 0 || signatureIndex > 0 },attrs:{\"block\":\"\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.removeSignature(pageIndex, signatureIndex)}}},[_vm._v(\" Firma \"),_c('b',[_vm._v(_vm._s(signatureIndex + 1))]),_vm._v(\" en página: \"),_c('b',[_vm._v(_vm._s(pageObject.pageNumber))]),_c('b-icon-trash-fill',{attrs:{\"aria-hidden\":\"true\"}})],1)],1)}),0)}),0):_vm._e(),(_vm.sign_button && !_vm.isLoading)?_c('div',{staticClass:\"mb-3 signButtonGrid\"},[_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],staticClass:\"px-4 \",attrs:{\"title\":_vm.signText,\"disabled\":!_vm.allowSignatures,\"size\":\"sm\"},on:{\"click\":_vm.onFirmarBtnClick}},[(!_vm.allowSignatures)?_c('b-spinner'):_vm._e(),(_vm.allowSignatures)?_c('b-icon-pen',{attrs:{\"aria-hidden\":\"true\",\"scale\":\"2\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.getFirmarBtnText())+\" \")],1),_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],attrs:{\"type\":\"border\",\"title\":_vm.rejectText},on:{\"click\":function($event){return _vm.$bvModal.show('reject-document-modal');}}},[_c('b-icon-file-break',{attrs:{\"aria-hidden\":\"true\",\"scale\":\"2\"}}),_vm._v(\" Rechazar \")],1),(_vm.show_sign)?_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],staticClass:\"px-4 \",attrs:{\"title\":_vm.saveText,\"size\":\"sm\"},on:{\"click\":_vm.saveLocation}},[_c('b-icon-check2-circle',{staticClass:\"iconBtn\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Confirmar \")],1):_vm._e()],1):_vm._e(),_c('h6',{class:{ marginButton: _vm.sign_button, titleUnderline: true }},[_vm._v(\"Detalles del documento \")]),_c('div',{staticClass:\"mt-3 mb-2\"},[_c('b-icon-file-earmark-text',{attrs:{\"font-scale\":\"1.3\",\"variant\":\"secondary\"}}),(_vm.pdf_name)?_c('span',{staticClass:\"ml-2 details-subtitle\"},[_vm._v(_vm._s(_vm.pdf_name)+\".pdf\")]):_vm._e()],1),_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Creado el:\")]),(_vm.pdf_created)?_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm._f(\"date\")(new Date(_vm.pdf_created),'dd/MM/yyyy'))+\" \")]):_vm._e()]),_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Estado:\")]),(_vm.pdf_created)?_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm.state)+\" \")]):_vm._e()]),(_vm.show_hash)?_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Hash:\")]),_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm.hash))])]):_vm._e(),_c('hr',{staticClass:\"my-1\"}),_c('b-container',[_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{staticClass:\"text-center mt-2\",attrs:{\"xl\":\"8\"}},[_c('div',{staticStyle:{\"font-size\":\"2rem\"}},[_c('b-icon-arrow-left',{staticClass:\"action-details-btn\",attrs:{\"id\":\"back\",\"aria-hidden\":\"true\",\"scale\":\"0.6\"},on:{\"click\":_vm.backToList}})],1)])],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"signatureOptions\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\",\"size\":\"lg\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('h4',[_vm._v(\"Firmar documento\")])]},proxy:true}])},[_c('b-row',[_c('b-col',{staticClass:\"text-left text-lg-center mb-4\"},[_c('p',{staticClass:\"custom-subtitle h6\"},[_vm._v(\" Escoja un método de firma: \")])])],1),_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{staticClass:\"text-center border-right\",attrs:{\"lg\":\"4\"}},[_c('div',{staticClass:\"text-left text-lg-center\"},[_c('b-img',{staticClass:\"sign-image\",attrs:{\"src\":require('../../assets/mobile-option.png')}})],1),_c('div',{staticClass:\"d-lg-none text-left\"},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{attrs:{\"cols\":\"9\"}},[_c('h6',[_vm._v(\"Dispositivo móvil\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1\"},[_vm._v(\" Puedes utilizar tu dispositivo móvil o computadora, mientras firmas en la pantalla táctil o usando mouse se capturará tu rostro como evidencia. \")])]),_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"3\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.showModalSignatureBio}})],1)])],1),_c('hr',{staticClass:\"my-1\"})],1)]),(!_vm.disabledOption2S)?_c('b-col',{staticClass:\"text-center border-right\",attrs:{\"lg\":\"4\"}},[_c('div',{staticClass:\"text-left text-lg-center mt-2 mt-xl-0\"},[_c('b-img',{staticClass:\"sign-image\",attrs:{\"src\":require('../../assets/sign-option.png')}})],1),_c('div',{staticClass:\"d-lg-none text-left\"},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{attrs:{\"cols\":\"9\"}},[_c('h6',[_vm._v(\"Firma electrónica certificada\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1\"},[_vm._v(\" Si dispone de certificado electrónico calificado puede usar esta opción. \")])]),_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"3\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.openDigitalCertificate}})],1)])],1),_c('hr',{staticClass:\"my-1\"})],1)]):_vm._e(),_c('b-col',{staticClass:\"text-center\",attrs:{\"lg\":\"4\"}},[_c('div',{staticClass:\"text-left text-lg-center mt-2 mt-xl-0\"},[_c('b-img',{staticClass:\"sign-image\",attrs:{\"src\":require('../../assets/otp-option.png')}})],1),_c('div',{staticClass:\"d-lg-none text-left\"},[_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{attrs:{\"cols\":\"9\"}},[_c('h6',[_vm._v(\"Código OTP\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1\"},[_vm._v(\" Recibirá un sms a su número de teléfono móvil con un código de verificación. \")])]),_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"3\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.showModalOTP}})],1)])],1)],1)])],1),_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{staticClass:\"text-center border-right d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('h6',[_vm._v(\"Dispositivo móvil\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1 px-2\"},[_vm._v(\" Utilizará su dispositivo móvil,haciendo una captura de su rostro mientras firma en la pantalla táctil. \")])]),(!_vm.disabledOption2S)?_c('b-col',{staticClass:\"text-center border-right d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('h6',[_vm._v(\"Firma electrónica certificada\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1 px-4\"},[_vm._v(\" Si dispone de certificado electrónico calificado puede usar esta opción. \")])]):_vm._e(),_c('b-col',{staticClass:\"text-center d-none d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('h6',[_vm._v(\"Código OTP\")]),_c('p',{staticClass:\"custom-subtitle pt-0 mb-1 px-4\"},[_vm._v(\" Recibirá un sms a su número de teléfono móvil con un código de verificación. \")])])],1),_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{staticClass:\"text-center border-right d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.showModalSignatureBio}})],1)]),(!_vm.disabledOption2S)?_c('b-col',{staticClass:\"text-center border-right d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.openDigitalCertificate}})],1)]):_vm._e(),_c('b-col',{staticClass:\"text-center d-none d-lg-block\",attrs:{\"md\":\"4\"}},[_c('div',{staticStyle:{\"font-size\":\"1.8rem\"}},[_c('b-icon-arrow-right-short',{staticClass:\"sign-option-btn\",attrs:{\"aria-hidden\":\"true\",\"scale\":\"1\"},on:{\"click\":_vm.showModalOTP}})],1)])],1),_c('b-tooltip',{attrs:{\"target\":\"bio_signbtn\",\"variant\":\"info\"}},[_vm._v(\" Firma de manera automática en tu dispositivo y capturará tu reconocimiento facial como seguridad de autenticidad \")]),_c('b-tooltip',{attrs:{\"target\":\"dig_signbtn\",\"variant\":\"info\"}},[_vm._v(\" Firma otorgada a través del Registro Público. Si deseas obtenerla ingresa en https://www.firmaelectronica.gob.pa. \")]),_c('b-tooltip',{attrs:{\"target\":\"otp_signbtn\",\"variant\":\"info\"}},[_vm._v(\" Si no cuenta con acceso a cámara en tu dispositivo obtendrás un código en tu Whatsapp para validar tu identidad. \")])],1),_c('b-modal',{attrs:{\"id\":\"signatureOTP\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('h4',[_vm._v(\"Firmar documento con código OTP\")])]},proxy:true}])},[_c('b-row',{staticClass:\"px-4\"},[_c('b-col',[_c('p',{staticClass:\"custom-subtitle\"},[_vm._v(\" Haga click en el botón de \\\"Obtener Código\\\", y a continuación recibirá un SMS con el código de verificación al número de teléfono que tiene registrado en el sistema. \")])])],1),_c('b-row',{staticClass:\"px-4 mt-2\"},[_c('b-col',{staticClass:\"d-flex\"},[_c('div',[_c('cid-button',{staticClass:\"px-4 \",attrs:{\"size\":\"sm\"},on:{\"click\":_vm.sendOTP}},[_vm._v(\" Obtener código \")])],1),_c('div',{staticClass:\"flex-fill\"},[_c('b-form-input',{staticClass:\"w-100 input-rounded\",attrs:{\"placeholder\":\"Introducir código\",\"size\":\"sm\"},model:{value:(_vm.codeOTP),callback:function ($$v) {_vm.codeOTP=$$v},expression:\"codeOTP\"}})],1)])],1),_c('b-row',{staticClass:\"mt-4 pr-3\"},[_c('b-col',{staticClass:\"text-right\"},[_c('cid-button',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.verifyOTP}},[_vm._v(\" Aceptar \")])],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"signatureBio\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\"},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('h4',[_vm._v(\"Nueva firma\")]),_c('b-btn-close',{attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.onCanceleSignatureBio()}}})]},proxy:true}])},[(_vm.VerifySignerOption)?_c('b-row',{staticClass:\"px-md-4\"},[_c('b-col',[_c('b-alert',{attrs:{\"show\":\"\",\"fade\":\"\",\"variant\":\"info\"}},[_c('h5',{staticClass:\"alert-heading text-center mb-0\"},[_vm._v(\" \"+_vm._s(_vm.action)+\" \"),(!_vm.smile_step)?_c('b-icon',{attrs:{\"icon\":\"emoji-smile\"}}):_vm._e(),(_vm.smile_step && !_vm.neutral_step)?_c('b-icon',{attrs:{\"icon\":\"emoji-neutral\"}}):_vm._e(),(_vm.neutral_step && _vm.smile_step)?_c('b-icon',{attrs:{\"icon\":\"person-check\"}}):_vm._e()],1)])],1)],1):_vm._e(),_c('b-overlay',{attrs:{\"show\":_vm.ValidateTELoading,\"rounded\":\"sm\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-icon',{attrs:{\"icon\":\"stopwatch\",\"font-scale\":\"3\",\"animation\":\"cylon\"}}),_c('p',{attrs:{\"id\":\"cancel-label\"}},[_vm._v(\"Validando Identidad...\")])],1)]},proxy:true}])},[_c('b-row',{staticClass:\"px-md-4 mt-2\"},[_c('b-col',[_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPhotoTaken),expression:\"isPhotoTaken\"}],ref:\"canvas\",staticStyle:{\"display\":\"none\"},attrs:{\"width\":\"320\",\"height\":\"240\",\"id\":\"photoTaken\"}}),_c('div',{staticClass:\"webcam-container\"},[_c('video',{ref:\"camera\",staticClass:\"topinfo\",attrs:{\"id\":\"video\",\"autoplay\":\"\",\"playsinline\":\"\"},on:{\"play\":_vm.onPlay}}),_c('br'),(!_vm.isValidFace)?_c('canvas',{attrs:{\"id\":\"canv\"}}):_vm._e()])])],1)],1),(_vm.isValidFace)?_c('div',[_c('b-row',{staticClass:\"px-md-4\"},[_c('b-col',[_c('VueSignaturePad',{ref:\"signaturePad\",attrs:{\"options\":{ onBegin: _vm.onBegin, minWidth: 2 },\"id\":\"signaturePad\",\"width\":\"inherit\",\"height\":\"220px\"}})],1)],1),_c('b-row',{staticClass:\"mt-4 mb-3 justify-content-around\"},[_c('cid-button',{staticClass:\"text-center sign-btn bg-white-btn py-2 px-4\",on:{\"click\":_vm.undoSign}},[_vm._v(\" Repetir \")]),_c('cid-button',{staticClass:\" text-center py-2 px-4\",attrs:{\"disabled\":!this.isValidFace},on:{\"click\":_vm.saveSign}},[_vm._v(\" Aceptar \")])],1)],1):_vm._e()],1)],1)],1),_c('b-row',{staticClass:\"d-xl-none ml-xl-2 mx-0 mt-2 justify-content-center bg-white\"},[(_vm.showManualSignatureEditableItems())?_c('div',{staticClass:\"pt-3 pb-3\"},_vm._l((_vm.pagesSignatures),function(pageObject,pageIndex){return _c('div',{key:pageIndex},_vm._l((pageObject.signatures),function(signature,signatureIndex){return _c('div',{key:signature.id},[_c('cid-button',{staticClass:\"px-4 w-100\",class:{ 'mt-3': pageIndex > 0 || signatureIndex > 0 },attrs:{\"block\":\"\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.removeSignature(pageIndex, signatureIndex)}}},[_vm._v(\" Firma \"),_c('b',[_vm._v(_vm._s(signatureIndex + 1))]),_vm._v(\" en página: \"),_c('b',[_vm._v(_vm._s(pageObject.pageNumber))]),_c('b-icon-trash-fill',{attrs:{\"aria-hidden\":\"true\"}})],1)],1)}),0)}),0):_vm._e()]),(_vm.sign_button)?_c('b-overlay',{attrs:{\"show\":_vm.docDetailsLoading,\"rounded\":\"sm\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('b-icon',{staticClass:\"mt-4 text-cid-primary\",attrs:{\"icon\":\"arrow-clockwise\",\"animation\":\"spin\",\"font-scale\":\"3\"}})],1)]},proxy:true}],null,false,3170072081)},[_c('b-row',{staticClass:\"d-xl-none ml-xl-2 mx-0 my-2\"},[_c('b-col',{staticClass:\"bg-white pt-4 pb-2 d-flex justify-content-around\",attrs:{\"cols\":\"12\"}},[_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],staticClass:\"px-4 \",attrs:{\"title\":_vm.signText,\"size\":\"lg\",\"disabled\":!_vm.allowSignatures},on:{\"click\":_vm.onFirmarBtnClick}},[(!_vm.allowSignatures)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e(),(_vm.allowSignatures)?_c('b-icon-pen',{attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.getFirmarBtnText())+\" \")],1),_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],attrs:{\"type\":\"border\",\"title\":_vm.rejectText},on:{\"click\":function($event){return _vm.$bvModal.show('reject-document-modal');}}},[_c('b-icon-file-break',{attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Rechazar \")],1)],1),_c('b-col',{staticClass:\"bg-white pb-2\",attrs:{\"cols\":\"12\"}},[(_vm.show_sign)?_c('div',[_c('cid-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-info\",modifiers:{\"hover\":true,\"v-info\":true}}],staticClass:\"px-4 \",attrs:{\"title\":_vm.saveText,\"size\":\"lg\",\"block\":\"\"},on:{\"click\":_vm.saveLocation}},[_c('b-icon-check2-circle',{attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Confirmar \")],1)],1):_vm._e()])],1)],1):_vm._e()],1)],1),_c('b-sidebar',{staticClass:\"d-xl-none\",attrs:{\"id\":\"sidebar-details\",\"title\":\"\",\"right\":\"\",\"bg-variant\":\"white\",\"backdrop\":\"\",\"shadow\":\"\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('hr',{staticClass:\"my-1 mx-3\"}),_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{staticClass:\"text-center mt-2 pb-3\",attrs:{\"xl\":\"8\"}},[_c('div',{staticStyle:{\"font-size\":\"2rem\"}},[_c('b-icon-arrow-left',{staticClass:\"action-details-btn\",attrs:{\"id\":\"back\",\"aria-hidden\":\"true\",\"scale\":\"0.6\"},on:{\"click\":_vm.backToList}})],1)])],1)]},proxy:true}])},[_c('div',{staticClass:\"px-3 mb-4\"},[_c('h6',{class:{ marginButton: _vm.sign_button, titleUnderline: true }},[_vm._v(\"Detalles del documento\")]),_c('div',{staticClass:\"mt-3 mb-2\"},[_c('b-icon-file-earmark-text',{attrs:{\"font-scale\":\"1.3\",\"variant\":\"secondary\"}}),(_vm.pdf_name)?_c('span',{staticClass:\"ml-2 details-subtitle\"},[_vm._v(_vm._s(_vm.pdf_name)+\".pdf\")]):_vm._e()],1),_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Creado el:\")]),(_vm.pdf_created)?_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm._f(\"date\")(new Date(_vm.pdf_created),'dd/MM/yyyy'))+\" \")]):_vm._e()]),_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Estado:\")]),(_vm.pdf_created)?_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm.state)+\" \")]):_vm._e()]),(_vm.show_hash)?_c('div',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"info-t\"},[_vm._v(\"Hash:\")]),_c('div',{staticClass:\"info-d\"},[_vm._v(\" \"+_vm._s(_vm.hash))])]):_vm._e()])]),_c('b-modal',{attrs:{\"id\":\"document-pending-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\",\"hide-header-close\":\"\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('h4',[_vm._v(\"Documento pendiente de firmar\")])]},proxy:true}])},[_c('b-row',{staticClass:\"px-4\"},[_c('b-col',[_c('h6',[_vm._v(\"¡Saludos!\")]),_c('p',{staticClass:\"custom-subtitle\"},[_vm._v(\" Le han enviado un documento para ser firmado de manera digital. Estaremos capturando las evidencias que confirman que eres el firmante, al mismo tiempo está dando su consentimiento para ello. Utilizaremos su cámara para este fin, la cual capturará diferentes fotos mientras firmas digitalmente únicamente. \")]),_c('p',{staticClass:\"custom-subtitle\"},[_vm._v(\" Esta información sólo podrá ser utilizada por las partes que firman, o por la persona que le ha enviado este documento, de conformidad a las Leyes locales. \")]),_c('p',{staticClass:\"custom-subtitle\"},[_vm._v(\" Ahora, puede usted iniciar la firma haciendo click en “Firmar”, podrás realizarlo con el mouse o con la pantalla táctil de tu dispositivo. \")])])],1),_c('b-row',{staticClass:\"mt-4 mb-2 pr-4\"},[_c('b-col',{staticClass:\"text-right\"},[_c('cid-button',{on:{\"click\":_vm.askData}},[_vm._v(\"Aceptar\")])],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"data-pending-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('h4',[_vm._v(\"Introduzca los datos solicitados\")])]},proxy:true}])},[_c('b-row',{staticClass:\"px-2\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',[_c('label',{staticClass:\"receiver-subtitle\"},[_vm._v(\"Nombre\")]),_c('b-form-input',{staticClass:\"input-rounded\",attrs:{\"size\":\"sm\"},model:{value:(_vm.askedUserData.name),callback:function ($$v) {_vm.$set(_vm.askedUserData, \"name\", $$v)},expression:\"askedUserData.name\"}}),(errors.length > 0)?_c('span',{staticClass:\"subtitle-error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()],1)]}}])})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',[_c('label',{staticClass:\"receiver-subtitle\"},[_vm._v(\"Apellidos\")]),_c('b-form-input',{staticClass:\"input-rounded\",attrs:{\"size\":\"sm\"},model:{value:(_vm.askedUserData.lastName),callback:function ($$v) {_vm.$set(_vm.askedUserData, \"lastName\", $$v)},expression:\"askedUserData.lastName\"}}),(errors.length > 0)?_c('span',{staticClass:\"subtitle-error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()],1)]}}])})],1),_c('b-col',{staticClass:\"pr-md-0\",attrs:{\"md\":\"12\"}},[_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',[_c('label',{staticClass:\"receiver-subtitle\"},[_vm._v(\"Identificación\")]),_c('b-form-input',{staticClass:\"input-rounded\",attrs:{\"size\":\"sm\"},model:{value:(_vm.askedUserData.documentId),callback:function ($$v) {_vm.$set(_vm.askedUserData, \"documentId\", $$v)},expression:\"askedUserData.documentId\"}}),(errors.length > 0)?_c('span',{staticClass:\"subtitle-error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()],1)]}}])})],1)],1),_c('div',{staticClass:\"text-right pt-3 pb-2 px-3\"},[_c('cid-button',{staticClass:\" px-5\",attrs:{\"disabled\":this.askedUserData.documentId == null || this.askedUserData.lastName == null || this.askedUserData.name == null,\"size\":\"sm\"},on:{\"click\":function($event){return _vm.saveAskedData()}}},[_vm._v(\" Aceptar \")])],1)],1),_c('b-modal',{attrs:{\"id\":\"reject-document-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('h4',[_vm._v(\"Rechazar documento\")])]},proxy:true}])},[_c('b-row',{staticClass:\"px-4\"},[_c('b-col',[_c('p',{staticClass:\"mb-0 custom-subtitle\"},[_vm._v(\" Introduzca en no más de 100 caracteres el motivo de rechazo \")])])],1),_c('b-row',{staticClass:\"mt-2 px-4\"},[_c('b-col',[_c('ValidationProvider',{attrs:{\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',{staticClass:\"mb-0\"},[_c('b-form-textarea',{attrs:{\"state\":_vm.rejectDocumentDetails.length <= 100,\"rows\":\"3\"},model:{value:(_vm.rejectDocumentDetails),callback:function ($$v) {_vm.rejectDocumentDetails=$$v},expression:\"rejectDocumentDetails\"}}),_c('span',{staticClass:\"subtitle-error\"},[_vm._v(_vm._s(errors[0]))])],1)]}}])})],1)],1),_c('div',{staticClass:\"row mb-3 px-4\"},[_c('div',{staticClass:\"col text-right\"},[_c('cid-button',{staticClass:\"px-5 \",attrs:{\"size\":\"sm\",\"disabled\":this.rejectDocumentDetails == '' || this.rejectDocumentDetails.length > 100},on:{\"click\":_vm.saveRejectDocument}},[_vm._v(\" Aceptar \")])],1)])],1),_c('b-modal',{attrs:{\"id\":\"generated-signature-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\",\"hide-header\":\"\"}},[_c('b-row',{staticClass:\"mt-3 text-center\"},[_c('b-col',[_c('b-icon-check-circle',{staticClass:\"check-icon\"}),_c('h4',{staticClass:\"mt-2\"},[_vm._v(\"Firma agregada correctamente\")]),_c('h6',{staticClass:\"doc-info-subtitle\"},[_vm._v(\" Gracias por firmar con ConfidenceID\")])],1)],1),_c('b-row',{staticClass:\"text-center mt-2\"},[_c('b-col',[(this.fillSignaturePositionsWithServerValues)?_c('p',{staticClass:\"doc-info-subtitle mt-2\"},[_vm._v(\" Verifique que la firma aparezca en el documeto y posteriormente, hacer click en “\"),_c('b',{attrs:{\"font-scale\":\"2\"}},[_vm._v(\"Confirmar\")]),_vm._v(\"” para finalizar el firmado del documento. \")]):_vm._e(),(!this.fillSignaturePositionsWithServerValues)?_c('p',{staticClass:\"doc-info-subtitle mt-2\"},[_vm._v(\" Ahora puedes \"),_c('b',[_vm._v(\"mover la firma\")]),_vm._v(\" al lugar que desees del mismo, y posteriormente, hacer click en “\"),_c('b',{attrs:{\"font-scale\":\"2\"}},[_vm._v(\"Confirmar\")]),_vm._v(\"” para finalizar el firmado del documento.. \")]):_vm._e()])],1),_c('div',{staticClass:\"row text-center mb-2\"},[_c('div',{staticClass:\"col-sm mt-1\"},[_c('cid-button',{staticClass:\"px-5 \",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$bvModal.hide('generated-signature-modal')}}},[_vm._v(\" Aceptar \")])],1)])],1),_c('b-modal',{attrs:{\"id\":\"save-signature-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\",\"hide-header\":\"\"}},[_c('b-row',{staticClass:\"mt-3 text-center\"},[_c('b-col',[_c('b-icon-check-circle',{staticClass:\"check-icon\"}),_c('h4',{staticClass:\"mt-2\"},[_vm._v(\"Documento firmado correctamente\")]),_c('h6',{staticClass:\"doc-info-subtitle\"},[_vm._v(\" Gracias por firmar con ConfidenceID\")])],1)],1),_c('b-row',{staticClass:\"px-1 px-md-5\"},[_c('b-col',{staticClass:\"text-center\"},[_c('p',{staticClass:\"custom-subtitle\"},[_vm._v(\" Puede realizar una descarga o imprimir el documento en este momento, o más tarde recibirá una copia en su dirección de correo electrónico, cuando hayan completado todos los firmantes. \")])])],1),_c('div',{staticClass:\"row text-center mb-5 d-block d-sm-none\"},[_c('div',{staticClass:\"col-sm mt-1\"},[_c('cid-button',{staticClass:\"px-4 sign-btn bg-white-btn\",attrs:{\"size\":\"sm\"},on:{\"click\":_vm.downloadPdf}},[_c('b-icon-file-earmark-arrow-down',{attrs:{\"aria-hidden\":\"true\",\"variant\":\"danger\"}}),_c('span',[_vm._v(\"Descargar\")])],1)],1)]),_c('div',{staticClass:\"row text-center mb-3\"},[_c('div',{staticClass:\"col-sm mt-1\"},[_c('cid-button',{staticClass:\"px-5 \",attrs:{\"size\":\"sm\"},on:{\"click\":_vm.onSaveSignature}},[_vm._v(\" Aceptar \")])],1)])],1),_c('b-modal',{attrs:{\"id\":\"sendOTP-success-modal\",\"centered\":\"\",\"no-close-on-backdrop\":\"\",\"hide-footer\":\"\",\"hide-header\":\"\"}},[_c('b-row',{staticClass:\"mt-3 text-center\"},[_c('b-col',[_c('b-icon-check-circle',{staticClass:\"check-icon\"}),_c('h4',{staticClass:\"mt-2\"},[_vm._v(\"Código OTP enviado correctamente\")])],1)],1),_c('div',{staticClass:\"row text-center mb-3\"},[_c('div',{staticClass:\"col-sm mt-1\"},[_c('cid-button',{staticClass:\"px-5 \",attrs:{\"name\":\"sendOtpCode\",\"size\":\"sm\"},on:{\"click\":_vm.onSendOtpCode}},[_vm._v(\" Aceptar \")])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewDoc.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewDoc.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViewDoc.vue?vue&type=template&id=0e48ca55&scoped=true&\"\nimport script from \"./ViewDoc.vue?vue&type=script&lang=js&\"\nexport * from \"./ViewDoc.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ViewDoc.vue?vue&type=style&index=0&id=0e48ca55&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e48ca55\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/sign-option.33f51278.png\";"],"sourceRoot":""}