{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-property-decorator/lib/vue-property-decorator.js","webpack:///./node_modules/ag-grid-vue/lib/VueComponentFactory.js","webpack:///./node_modules/ag-grid-vue/lib/VueFrameworkComponentWrapper.js","webpack:///./node_modules/ag-grid-vue/lib/Utils.js","webpack:///./node_modules/ag-grid-vue/lib/AgGridColumn.js","webpack:///./node_modules/ag-grid-vue/lib/AgGridVue.js","webpack:///./node_modules/file-saver/dist/FileSaver.min.js","webpack:///./node_modules/xlsx/xlsx.mjs","webpack:///./src/views/components/ag-grid/AgGrid.vue?5a01","webpack:///./src/views/components/ag-grid/frenshAgGrid.js","webpack:///src/views/components/ag-grid/AgGrid.vue","webpack:///./src/views/components/ag-grid/AgGrid.vue?a7ae","webpack:///./src/views/components/ag-grid/AgGrid.vue","webpack:///./node_modules/ag-grid-vue/main.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/ag-grid-community/dist/ag-grid-community.cjs.js","webpack:///./src/views/components/ag-grid/AgGrid.vue?ae03"],"names":["$","$values","values","target","stat","O","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","i","arr2","length","iter","toString","call","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","createDecorator","factory","index","Ctor","__decorators__","undefined","push","options","isPrimitive","type","collectDataFromConstructor","vm","Component","originalInit","_init","_this","this","keys","$options","props","hasOwnProperty","get","set","data","plainData","$internalHooks","componentFactory","arguments","name","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","fn","superProto","getPrototypeOf","Super","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply","reflectMetadataIsSupported","getMetadata","applyMetadata","Prop","componentOptions","k","VueComponentFactory","getComponentType","parent","component","componentInstance","searchForComponentInstance","console","error","createAndMountComponent","params","componentType","details","freeze","componentDependencies","dependency","$mount","maxDepth","currentParent","$parent","depth","components","__extends","extendStatics","d","b","setPrototypeOf","p","__","create","__decorate","desc","c","r","decorate","_super","VueFrameworkComponentWrapper","createWrapper","that","DynamicComponent","init","hasMethod","wrapper","getFrameworkComponentInstance","callMethod","args","frameworkComponentInstance","addMethod","callback","overrideProcessing","methodName","autoParamsRefresh","processMethod","createComponent","VueComponent","createMethodProxy","mandatory","warn","destroy","getGui","$el","$destroy","getAgGridProperties","gridOptions","default","rowDataModel","watch","currentValue","previousValue","processChanges","ALL_PROPERTIES","propertyName","model","prop","event","AgGridColumn","hasChildColumns","slots","mapChildColumnDefs","map","column","toColDef","colDef","createColDefFromGridColumn","children","getChildColDefs","columnChildren","assign","attrs","BOOLEAN_PROPERTIES","property","colDefAsAny","reduce","o","AgGridVue","gridCreated","isDestroyed","gridReadyFired","emitRowModel","AgGridVue_1","kebabProperty","replace","toLowerCase","render","h","globalEventListener","eventType","updateModelIfUsed","kebabName","$listeners","$emit","skipChange","changes","processOnChange","api","columnApi","mounted","debounce","getRowData","frameworkComponentWrapper","copyAttributesToGridOptions","checkForBindingConflicts","rowData","getRowDataBasedOnBindings","$slots","columnDefs","gridParams","bind","providedBeanInstances","modules","destroyed","thisAsAny","forEachNode","rowNode","ROW_DATA_EVENTS","currentRowData","previousRowData","func","delay","timeout","later","window","clearTimeout","setTimeout","Boolean","a","autoBom","test","Blob","XMLHttpRequest","open","responseType","onload","g","response","onerror","send","status","e","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","f","self","global","navigator","userAgent","saveAs","HTMLAnchorElement","URL","webkitURL","j","createElement","download","rel","href","origin","location","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","title","body","innerText","HTMLElement","safari","FileReader","onloadend","result","readAsDataURL","l","m","module","exports","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","cp","reset_ansi","set_cp","reset_cp","utf16beread","String","fromCharCode","charCodeAt","join","$cptable","_getchar","x","_getansi","DENSE","DIF_XL","Base64_map","Base64_encode","input","c1","c2","c3","e1","e2","e3","e4","isNaN","charAt","Base64_decode","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","buf","enc","new_raw_buf","len","alloc","Uint8Array","new_unsafe_buf","allocUnsafe","s2a","s","split","s2ab","ArrayBuffer","view","a2s","a2u","Error","bconcat","bufs","concat","isBuffer","maxlen","slice","utf8decode","content","out","widx","L","ridx","chr0","chr1","_strrev","pad0","v","t","fill","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","SSF_isgeneral","days","months","SSF_init_table","table_fmt","3","4","9","10","11","12","13","14","15","16","17","18","19","20","21","22","37","38","39","40","45","46","47","48","49","56","SSF_default_map","5","6","7","8","23","24","25","26","27","28","29","30","31","50","51","52","53","54","55","57","58","59","60","61","62","67","68","70","71","72","73","74","75","76","78","79","80","81","82","SSF_default_str","63","64","65","66","41","42","43","44","SSF_frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","SSF_parse_date_code","opts","b2","date","time","dow","dout","T","u","y","H","M","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","getTime","SSFbase1904","datenum_local","epoch","getTimezoneOffset","SSF_strip_decimal","SSF_normalize_exp","SSF_small_exp","w","toFixed","toPrecision","toExponential","SSF_large_exp","SSF_general_num","V","log","LOG10E","substr","toUpperCase","SSF_general","SSF_format","SSF_write_date","fmt","val","ss0","ss","tt","outl","outstr","commaify","pct1","write_num_pct","sfmt","mul","write_num","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","lastIndexOf","SSF_split_fmt","in_str","SSF_abstime","fmt_is_date","eval_fmt","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","table","SSF_load","SSF_load_table","tbl","make_ssf","SSF","format","load","_table","load_table","parse_date_code","is_date","get_table","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","n","datestr","timestr","CRC32","signed_crc_table","Int32Array","version","T0","slice_by_16_tables","subarray","TT","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","crc32_bstr","bstr","seed","C","crc32_buf","crc32_str","CFB","fs","namecmp","R","Z","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","blob","prep_blob","flags","sz","tgt","mtime","atime","ctime","mt","get_fs","parse","file","parse_zip","parse_mad","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","header","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","start","size","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","seen","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","now","fullPaths","HEADER_CLSID","sort","elt","_write","_opts","fileType","write_mad","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","copy","path","UCFullPaths","UCPaths","UCPath","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","message","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","write_stored","boff","write_huff_fixed","addrs","hash","mlen","len_eb","dst_eb","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","h1","h2","inflate","outbuf","woff","OL","max_len_1","max_len_2","bits","code","dst","warn_or_throw","wrn","msg","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","cfb_add","unsafe","cdirs","method","compression","fp","fi","crcs","sz_cd","namebuf","ContentTypeMap","get_content_type","ctype","ext","write_base64_76","write_quoted_printable","text","encoded","si","end","tmp","parse_quoted_printable","di","line","oi","parse_mime","fdata","fname","cte","trim","row","mboundary","boundary","start_di","ca","cstr","dispcnt","csl","qp","cfb_new","fpath","utils","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","_fs","blobify","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","msSaveBlob","url","chrome","downloads","appendChild","click","removeChild","File","Folder","encoding","close","ks","o2","evert_key","K","evert","evert_num","evert_arr","basedate","datenum","dnthresh","refdate","refoffset","numdate","setTime","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","decode","dup","JSON","stringify","fuzzynum","Number","isFinite","NaN","wt","lower_months","fuzzydate","getYear","lower","zip_add_file","zip","res","zip_new","XML_HEADER","encodings","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_unfixstr","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","htmldecode","entities","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlsx","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","XMLNS_main","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","LN2","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","hexstr","fld","pos","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","next","_bufs","write_record","ba","XLSBRecordEnum","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","unfix_row","decode_col","colstr","unfix_col","col","split_cell","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","z","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","parse_Int32LE","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","parse_BrtColor","xColorType","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","VT_I2","VT_I4","VT_BOOL","VT_UI4","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR_VARIANT","VT_VECTOR_LPSTR","VT_STRING","DocSummaryPIDDSI","SummaryPIDSI","rgbify","_XLSIcv","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","styles","new_ct","rels","threadedcomments","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","people","TODO","xmlns","write_ct","type2ct","xsd","xsi","f1","bookType","f2","f3","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","PEOPLE","VBA","get_rels_path","write_rels","rid","add_rels","rId","relobj","targetmode","Id","Type","Target","TargetMode","write_manifest","manifest","write_rdf_type","tag","write_rdf_has","write_rdf","rdf","write_meta_ods","cp_doit","write_core_props","dc","dcterms","dcmitype","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","W","Application","vt","Worksheets","baseType","write_cust_props","pid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","write_FILETIME","write_TypedPropertyValue","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","PIDSI","hdr","piao","pr","pio","unshift","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","writezeroes","parsebool","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","write_XLUnicodeRichExtendedString","xlstr","nfmts","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hl","hashidx","F","Pretarget","write_XLSCell","ixfe","parse_XTI","iSupBook","itabFirst","itabLast","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","write_Ref8U","write_BOF","wb","write_WriteAccess","b8","write_BoundSheet8","hs","write_SST","sst","Count","Unique","parts","write_Window1","write_Window2","RTL","write_Font","b5","write_LabelSst","os","write_Label","write_Format","write_Dimensions","write_XF","ixfeP","style","write_Guts","guts","write_BoolErr","write_Number","parse_ExternSheet","parse_BIFF5ExternSheet","write_MergeCells","merges","write_HLink","ref","write_HLinkTooltip","Tooltip","write_Country","parse_ColInfo","cellStyles","coldx","level","write_ColInfo","width","hidden","write_RRTabId","write_BIFF2NUM","write_BIFF2Cell","write_BIFF2INT","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_aoa","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_sheet","wch","dbf_to_workbook","_RLEN","sheet_to_dbf","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","_n","_s","to_workbook","to_sheet","from_sheet","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","RT","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sep","meta","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","outer","prn_to_sheet_str","prn_to_sheet","bytes","firstbyte","prn_to_workbook","sheet_to_prn","WK_","lotushopper","cb","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","write_INTEGER","write_NUMBER","write_LABEL","book_to_wk3","write_BOF_WK3","write_XFORMAT_SHEETNAME","wsidx","write_NUMBER_17","write_LABEL_16","wscnt","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","wk1_fmla_to_csf","wk1_parse_rc","FuncTab","BinOpTab","argc","argL","argR","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","log2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_SHEETNAMECS","parse_SHEETNAMELP","parse_SHEETINFOQP","id","parse_XFORMAT","straywsregex","write_sst_xml","bookSST","count","uniqueCount","sitag","parse_BrtBeginSst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordByte","Intermediate1","Intermediate2","Intermediate3","Verifier","PasswordDecoded","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","exec","lastIndex","rtf_to_workbook","sheet_to_rtf","DEF_MDW","MDW","px","char2width","chr","coll","customWidth","DEF_PPI","PPI","pt","write_numFmts","NF","formatCode","write_cellXfs","cellXfs","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bold","vertAlign","underline","family","bCharSet","charset","scheme","write_BrtFont","sss","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","border","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","write_theme","Themes","themeXLSX","parse_BrtMdtinfo","write_BrtMdtinfo","parse_BrtMdb","write_BrtMdb","mdb","write_BrtBeginEsfmd","parse_BrtBeginEsmdb","write_BrtBeginEsmdb","cm","write_xlmeta_bin","write_xlmeta_xml","parse_BrtCalcChainItem$","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","write_comments_xml","iauthor","ID","lastauthor","ts","write_tcmnt_xml","carr","rootid","tcopts","tcid","parentId","personId","write_people_xml","person","displayName","userId","providerId","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","write_comments_bin","comment","fill_vba_xls","newpath","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","delta","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","area","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","rt","coltype","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","rgce","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","Name","get_ixti","ixtiraw","stringify_formula","stack","nameidx","last_sp","sp","fflen","lbl","names","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","write_FormulaValue","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","rgcb","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","32","34","35","36","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","124","125","126","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","150","151","152","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","354","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","420","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","33","123","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","351","353","357","358","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","65535","csf_to_ods_formula","csf_to_ods_3D","browser_has_Map","Map","get_sst_id","has","revarr","col_obj_w","outlineLevel","default_margins","margins","mode","defs","left","right","top","bottom","footer","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","write_ws_xml_merges","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","password","write_ws_xml_margins","margin","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","write_ws_xml_sheetviews","sview","workbookViewId","Views","rightToLeft","write_ws_xml_cell","oldt","oldv","Strings","revStrings","write_ws_xml_data","height","_cell","ht","customHeight","write_ws_xml","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","tooltip","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","miyRw","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtShortBlank","write_BrtShortBlank","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtShortBool","write_BrtShortBool","parse_BrtCellError","bError","write_BrtCellError","parse_BrtShortError","write_BrtShortError","parse_BrtCellIsst","isst","write_BrtCellIsst","parse_BrtShortIsst","write_BrtShortIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtShortReal","write_BrtShortReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtShortRk","write_BrtShortRk","parse_BrtCellRString","parse_BrtCellSt","write_BrtCellSt","parse_BrtShortSt","write_BrtShortSt","parse_BrtFmlaBool","cellFormula","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","write_ws_bin_cell","last_seen","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_BrtCsProp","WBPropsDef","safe1904","WBProps","badchars","check_ws_name","safe","_good","check_wb_names","N","codes","cn","check_wb","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtName","Ptg","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","write_wb","write_ws","write_sty","write_sst","write_cmnt","write_xlmeta","write_props_xlml","write_wb_xlml","write_sty_xlml","xf","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","attr","marr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","skip","write_ws_xlml","write_xlml","html","PSCLSID","SI","DSI","UDI","write_xls_props","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xlscfb","wbpath","write_biff_buf","write_biff_continue","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_cols_biff8","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","make_html_row","rowspan","colspan","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","getElementsByTagName","midx","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","_t","Aelts","Aelti","parse_dom_table","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","write_styles_ods","master_styles","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","write_automatic_styles_ods","cidx","colobj","fods","write_ods","u8_to_dataview","array","DataView","buffer","byteOffset","byteLength","stru8","u8contains","search","u8concat","u8a","acc","u8","writeDecimal128LE","exp","mantissa","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","num","write_shallow","item","parse_iwa_file","_a","ai","messages","fl","merge","write_iwa_file","ias","ia","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","write_new_storage","dv","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","pb","write_tile_row","tri","_b","_c","_d","wide_offsets","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","write_numbers_iwa","numbers","trunc","dependents","indices","old_content","raw1","x2","packet2","deps","y2","indices_varint","filter","ivi","some","mess","docroot","xi","packet","sheetrootref","cruidsref","oldbucket","_x","cruids","uuid","store","row_headers","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","sy","raw32","tile","tl","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","ty","raw3","fix_opts_func","defaults","write_zip_xlsxb","write_zip_xlsx","wbrels","foo","wbext","vbafmt","_sn","_i","wsrels","_type","need_vml","cf","rId1","needtc","write_cfb_ctr","write_zip_type","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","sheet_to_txt","sheet_to_csv","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","txt","forceQuotes","endregex","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","json_to_sheet","RC","wb_sheet_idx","sh","book_new","book_append_sheet","roll","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","dynamic","rng","rngstr","table_to_sheet","sheet_to_row_object_array","sheet_get_cell","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","_vm","_h","$createElement","_self","pageTitle","staticClass","updateSearchQuery","exportToExcel","printList","refresh","$event","toggleCollapse","collapseIcon","filterComponent","directives","rawName","expression","filterComponentData","filterClicked","_e","class","isDark","staticStyle","defaultColDef","agGrid","overlayLoadingTemplate","onGridReady","staticRenderFns","localeText","page","more","of","previous","loadingOoo","selectAll","searchOoo","blanks","filterOoo","applyFilter","equals","notEqual","lessThan","greaterThan","lessThanOrEqual","greaterThanOrEqual","inRange","contains","notContains","startsWith","endsWith","andCondition","orCondition","group","columns","filters","rowGroupColumns","rowGroupColumnsEmptyMessage","valueColumns","pivotMode","groups","pivots","valueColumnsEmptyMessage","pivotColumnsEmptyMessage","toolPanelButton","noRowsToShow","pinColumn","valueAggregation","autosizeThiscolumn","autosizeAllColumns","groupBy","ungroupBy","resetColumns","expandAll","collapseAll","toolPanel","export","csvExport","excelExport","excelXmlExport","pinLeft","pinRight","noPin","sum","none","average","filteredRows","selectedRows","totalRows","totalAndFilteredRows","copyWithHeaders","ctrlC","paste","ctrlV","required","withFilters","add","showHeader","disabledBtn","autoSizeColumns","setup","_useAppConfig","useAppConfig","skin","frenshVersion","rowSelection","suppressCellSelection","enableCellTextSelection","onCellDoubleClicked","handleCellDoubleClick","onCellClicked","onCellValueChanged","sortable","resizable","suppressToolPanel","cellStyle","gridApi","collapseVisible","onFirstDataRendered","hideOverlay","excludedColumns","filteredData","filteredObj","includes","worksheet","workbook","excelData","FileSaver","showLoadingOverlay","sizeColumnsToFit","setQuickFilter","__export","DESCRIPTORS","objectKeys","toIndexedObject","propertyIsEnumerable","createMethod","TO_ENTRIES","it","makeNull","exists","allowEmptyString","missing","missingOrEmpty","toStringOrNull","attrToNumber","valueParsed","attrToBoolean","attrToString","referenceCompare","jsonEquals","val1","val2","val1Json","val2Json","defaultComparator","valueA","valueB","accentedCompare","valueAMissing","valueBMissing","toNumber","doQuickCompare","localeCompare","collection","predicate","objToArray","collectionAsArray","firstMatchingItem","object","Set","arr_1","GenericUtils","ColumnKeyCreator","existingKeys","addExistingKeys","getUniqueKey","colId","colField","idToTry","firstExistingValue","anyExists","existsAndNotEmpty","areEqual","comparator","every","compareArrays","array1","array2","shallowCompare","arr1","sortNumerically","removeRepeatsFromArray","thisOneMatches","nextOneMatches","removeFromArray","removeAllFromArray","toRemove","insertIntoArray","toIndex","insertArrayIntoArray","dest","src","moveInArray","objectsToMove","reverse","flatten","arrayOfArrays","pushAll","source","toStrings","findIndex","list","action","forEachReverse","mapped","filtered","step","initial","forEachSnapshotFirst","arrayCopy","ArrayUtils","iterateObject","cloneObject","deepCloneObject","deepCloneDefinition","keysToSkip","sourceIsSimpleObject","isNonNullObject","getProperty","setProperty","copyPropertiesIfPresent","properties","copyPropertyIfPresent","transform","getAllKeysInObjects","allValues","getAllValuesInObject","anyObject","ret","mergeDeep","copyUndefined","makeCopyOfSimpleObjects","sourceValue","destValue","objectIsDueToBeCopied","dontCopy","sources","missingOrEmptyObject","defaultValue","objectToRead","objectToUpdate","deepFreeze","getValueUsingField","fieldContainsDots","currentObject","removeAllReferences","objectName","defineProperties","ObjectUtils","FUNCTION_STRIP_COMMENTS","FUNCTION_ARGUMENT_NAMES","doOnceFlags","doOnce","getFunctionName","funcConstructor","matches","getFunctionParameters","fnStr","isFunction","executeInAWhile","funcs","executeAfter","executeNextVMTurnFuncs","executeNextVMTurnPending","executeNextVMTurn","funcsCopy","milliseconds","wait","immediate","context","callNow","waitUntil","condition","timeoutMessage","timeStamp","interval","executed","internalCallback","reachedTimeout","clearInterval","setInterval","compose","fns","arg","composed","callIfPresent","FunctionUtils","Context","logger","beanWrappers","beanClasses","contextParams","createBeans","beanInstances","getBeanInstances","wireBeans","beanEntry","beanInstance","createBean","bean","afterPreCreateCallback","autoWireBeans","methodWireBeans","callLifeCycleMethods","createBeanWrapper","constructorParamsMeta","__agBeanMetaData","autowireMethods","agConstructor","constructorParams","getBeansForParameters","newInstance","applyToConstructor","createdBeanNames","BeanClass","metaData","beanName","forEachMetaDataInHierarchy","attributes","agClassAttributes","attribute","otherBean","lookupBeanInstance","optional","attributeName","wireParams","initParams","getBeanName","constructorString","substring","parameters","beansList","paramIndex","otherBeanName","wiringBean","lifeCycleMethod","callLifeCycleMethodsOnBean","methodToIgnore","allMethods","allMethodsList","getBean","destroyBeans","destroyBean","beans","beanAny","argArray","factoryFunction","PreConstruct","getOrCreateProps","preConstructMethods","PostConstruct","postConstructMethods","PreDestroy","preDestroyMethods","Bean","classConstructor","Autowired","autowiredFunc","Optional","classPrototype","methodOrAttributeName","Qualifier","__param","decorator","EventService","allSyncListeners","allAsyncListeners","globalSyncListeners","globalAsyncListeners","asyncFunctionsQueue","scheduled","firedEvents","setBeans","loggerFactory","gridOptionsWrapper","frameworkOverrides","async","useAsyncEvents","addGlobalListener","getListeners","autoCreateListenerCollection","listenerMap","listeners","noRegisteredListenersExist","addEventListener","listener","removeEventListener","delete","removeGlobalListener","dispatchToListeners","dispatchEventOnce","processEventListeners","dispatchAsync","globalListeners","flushAsyncQueue","queueCopy","Constants","ROW_BUFFER_SIZE","LAYOUT_INTERVAL","BATCH_WAIT_MILLIS","EXPORT_TYPE_DRAG_COPY","EXPORT_TYPE_CLIPBOARD","EXPORT_TYPE_EXCEL","EXPORT_TYPE_CSV","ROW_MODEL_TYPE_INFINITE","ROW_MODEL_TYPE_VIEWPORT","ROW_MODEL_TYPE_CLIENT_SIDE","ROW_MODEL_TYPE_SERVER_SIDE","ALWAYS","ONLY_WHEN_GROUPING","PINNED_TOP","PINNED_BOTTOM","DOM_LAYOUT_NORMAL","DOM_LAYOUT_PRINT","DOM_LAYOUT_AUTO_HEIGHT","GROUP_AUTO_COLUMN_ID","SOURCE_PASTE","PINNED_RIGHT","PINNED_LEFT","SORT_ASC","SORT_DESC","INPUT_SELECTOR","FOCUSABLE_SELECTOR","FOCUSABLE_EXCLUDE","ModuleNames","ModuleRegistry","register","moduleBased","modulesMap","moduleName","registerModules","assertRegistered","reason","isRegistered","warningKey","warningMessage","getRegisteredModules","isPackageBased","__decorate$1","Column","userProvidedColDef","primary","moving","menuVisible","filterActive","eventService","rowGroupActive","pivotActive","aggregationActive","setState","initialSort","sortIndex","initialSortIndex","hide","initialHide","visible","pinned","setPinned","initialPinned","flex","initialFlex","setColDef","initMinAndMaxWidths","initDotNotation","getUserProvidedColDef","setParent","getParent","setOriginalParent","originalParent","getOriginalParent","initialise","resetActualWidth","validate","suppressDotNotation","isSuppressFieldDotNotation","tooltipFieldContainsDots","tooltipField","minColWidth","getMinColWidth","maxColWidth","getMaxColWidth","minWidth","maxWidth","initialWidth","columnUtils","calculateColInitialWidth","setActualWidth","isEmptyGroup","isRowGroupDisplayed","showRowGroup","showingAllGroups","showingThisGroup","getUniqueId","getId","isPrimary","isFilterAllowed","filterDefined","filterFramework","isFieldContainsDots","isTooltipFieldContainsDots","colDefAny","warnOnce","usingCSRM","isRowModelDefault","RowGroupingModule","rowGroupingItems","RichSelectModule","cellEditor","DateTimeCellEditorModule","isTreeData","itemsNotAllowedWithTreeData","createColumnFunctionCallbackParams","getContext","getApi","getColumnApi","isSuppressNavigable","suppressNavigable","userFunc","isCellEditable","isEnableGroupEdit","isColumnFunc","isRowDrag","rowDrag","isDndSource","dndSource","isCellCheckboxSelection","checkboxSelection","isSuppressPaste","suppressPaste","isResizable","editableFunc","setMoving","createColumnEvent","EVENT_MOVING_CHANGED","isMoving","getSort","setSort","EVENT_SORT_CHANGED","setMenuVisible","EVENT_MENU_VISIBLE_CHANGED","isMenuVisible","isSortAscending","isSortDescending","isSortNone","isSorting","getSortIndex","setSortIndex","sortOrder","setAggFunc","aggFunc","getAggFunc","getLeft","getOldLeft","oldLeft","getRight","actualWidth","setLeft","EVENT_LEFT_CHANGED","isFilterActive","setFilterActive","active","additionalEventAttributes","EVENT_FILTER_ACTIVE_CHANGED","filterChangedEvent","EVENT_FILTER_CHANGED","setFirstRightPinned","firstRightPinned","EVENT_FIRST_RIGHT_PINNED_CHANGED","setLastLeftPinned","lastLeftPinned","EVENT_LAST_LEFT_PINNED_CHANGED","isFirstRightPinned","isLastLeftPinned","isPinned","isPinnedLeft","isPinnedRight","getPinned","setVisible","newValue","EVENT_VISIBLE_CHANGED","isVisible","getColDef","getColumnGroupShow","columnGroupShow","getColId","getDefinition","getActualWidth","createBaseColDefParams","getColSpan","colSpan","getRowSpan","rowSpan","silent","fireColumnWidthChangedEvent","EVENT_WIDTH_CHANGED","isGreaterThanMax","getMinWidth","getMaxWidth","getFlex","setFlex","setMinimum","setRowGroupActive","rowGroup","EVENT_ROW_GROUP_CHANGED","isRowGroupActive","setPivotActive","pivot","EVENT_PIVOT_CHANGED","isPivotActive","isAnyFunctionActive","isValueActive","isAnyFunctionAllowed","isAllowPivot","isAllowRowGroup","isAllowValue","setValueActive","EVENT_VALUE_CHANGED","enablePivot","enableValue","enableRowGroup","getMenuTabs","defaultValues","menuTabs","isLockPosition","lockPosition","isLockVisible","lockVisible","isLockPinned","lockPinned","__decorate$2","ColumnGroup","originalColumnGroup","groupId","instanceId","displayedChildren","localEventService","createUniqueId","reset","allLeafColumns","getOriginalColumnGroup","getLeafColumns","checkLeft","child","isEnableRtl","lastChild","lastChildLeft","firstChildLeft","createAgEvent","getGroupId","getInstanceId","isChildInThisGroupDeepSearch","wantedChild","foundChild","groupActualWidth","groupChild","addChild","getDisplayedChildren","addLeafColumns","getDisplayedLeafColumns","addDisplayedLeafColumns","getColGroupDef","isPadding","isExpandable","isExpanded","setExpanded","expanded","leafColumns","getChildren","getPaddingLevel","calculateDisplayedColumns","parentWithExpansion","EVENT_DISPLAYED_CHILDREN_CHANGED","emptyGroup","headerGroupShow","HEADER_GROUP_SHOW_OPEN","HEADER_GROUP_SHOW_CLOSED","OriginalColumnGroup","colGroupDef","padding","expandable","openByDefault","getLevel","EVENT_EXPANDED_CHANGED","setChildren","setupExpandable","setExpandable","onColumnVisibilityChanged","atLeastOneShowingWhenOpen","atLeastOneShowingWhenClosed","atLeastOneChangeable","findChildrenRemovingPadding","abstractColumn","event_1","EVENT_EXPANDABLE_CHANGED","items","skipBecausePadding","DefaultColumnTypes","numericColumn","headerClass","cellClass","rightAligned","AG_GRID_STOP_PROPAGATION","PASSIVE_EVENTS","supports","stopPropagationForAgGrid","isStopPropagationForAgGrid","isEventSupported","tags","select","change","submit","abort","eventChecker","eventName","el","isSupported","setAttribute","getComponentForEvent","sourceElement","getTarget","renderedComp","getDomData","parentElement","addChangeListener","eventNoType","srcElement","isElementInEventPath","getEventPath","createEventPath","pointer","addAgGridEventPath","__agGridEventPath","deepPath","composedPath","addSafePassiveEventListener","eElement","isPassive","passive","EventUtils","__decorate$3","BeanStub","destroyFunctions","__v_skip","isAlive","getFrameworkOverrides","EVENT_DESTROYED","dispatchEventAsync","addManagedListener","destroyFunc","addDestroyFunc","createManagedBean","__decorate$4","__param$1","ColumnFactory","createColumnTree","primaryColumns","existingTree","columnKeyCreator","extractExistingTreeData","existingCols","existingGroups","existingColKeys","unbalancedTree","recursivelyCreateColumns","treeDept","findMaxDept","columnTree","balanceColumnTree","deptFirstCallback","depthFirstOriginalTreeSearch","createForAutoGroups","autoGroupCols","gridBalancedTree","autoColBalancedTree","fakeTreeItem","createAutoGroupTreeItem","balancedColumnTree","dept","findDepth","nextChild","autoGroup","currentDept","columnDept","originalGroup","newChildren","firstPaddedGroup","currentPaddedGroup","newColId","colGroupDefMerged","createMergedColGroupDef","paddedGroup","hasGroups","leaf","treeChildren","maxDeptThisLevel","newDept","existingColsCopy","def","newGroupOrColumn","isColumnGroup","createColumnGroup","createColumn","existingColumns","existingGroup","findExistingGroup","getDefaultColGroupDef","checkForDeprecatedItems","colDefMerged","mergeColDefs","findExistingColumn","applyColumnState","noFlexThisCol","widthBeforeUpdate","newColDef","existingCol","existingColDef","newHasId","newHasField","newGroupDef","existingDef","getDefaultColDef","columnType","assignColumnTypes","typeKeys","invalidArray","allColumnTypes","userTypes","getColumnTypes","typeColDef","colDefNoType","headerGroup","suppressRowGroup","suppressAggregation","headerName","abstractColDef","Events","EVENT_COLUMN_EVERYTHING_CHANGED","EVENT_NEW_COLUMNS_LOADED","EVENT_COLUMN_PIVOT_MODE_CHANGED","EVENT_COLUMN_ROW_GROUP_CHANGED","EVENT_EXPAND_COLLAPSE_ALL","EVENT_COLUMN_PIVOT_CHANGED","EVENT_GRID_COLUMNS_CHANGED","EVENT_COLUMN_VALUE_CHANGED","EVENT_COLUMN_MOVED","EVENT_COLUMN_VISIBLE","EVENT_COLUMN_PINNED","EVENT_COLUMN_GROUP_OPENED","EVENT_COLUMN_RESIZED","EVENT_DISPLAYED_COLUMNS_CHANGED","EVENT_VIRTUAL_COLUMNS_CHANGED","EVENT_ASYNC_TRANSACTIONS_FLUSHED","EVENT_ROW_GROUP_OPENED","EVENT_ROW_DATA_CHANGED","EVENT_ROW_DATA_UPDATED","EVENT_PINNED_ROW_DATA_CHANGED","EVENT_RANGE_SELECTION_CHANGED","EVENT_CHART_CREATED","EVENT_CHART_RANGE_SELECTION_CHANGED","EVENT_CHART_OPTIONS_CHANGED","EVENT_CHART_DESTROYED","EVENT_TOOL_PANEL_VISIBLE_CHANGED","EVENT_MODEL_UPDATED","EVENT_PASTE_START","EVENT_PASTE_END","EVENT_FILL_START","EVENT_FILL_END","EVENT_CELL_CLICKED","EVENT_CELL_DOUBLE_CLICKED","EVENT_CELL_MOUSE_DOWN","EVENT_CELL_CONTEXT_MENU","EVENT_CELL_VALUE_CHANGED","EVENT_ROW_VALUE_CHANGED","EVENT_CELL_FOCUSED","EVENT_ROW_SELECTED","EVENT_SELECTION_CHANGED","EVENT_CELL_KEY_DOWN","EVENT_CELL_KEY_PRESS","EVENT_CELL_MOUSE_OVER","EVENT_CELL_MOUSE_OUT","EVENT_FILTER_MODIFIED","EVENT_FILTER_OPENED","EVENT_VIRTUAL_ROW_REMOVED","EVENT_ROW_CLICKED","EVENT_ROW_DOUBLE_CLICKED","EVENT_GRID_READY","EVENT_GRID_SIZE_CHANGED","EVENT_VIEWPORT_CHANGED","EVENT_SCROLLBAR_WIDTH_CHANGED","EVENT_FIRST_DATA_RENDERED","EVENT_DRAG_STARTED","EVENT_DRAG_STOPPED","EVENT_CHECKBOX_CHANGED","EVENT_ROW_EDITING_STARTED","EVENT_ROW_EDITING_STOPPED","EVENT_CELL_EDITING_STARTED","EVENT_CELL_EDITING_STOPPED","EVENT_BODY_SCROLL","EVENT_ANIMATION_QUEUE_EMPTY","EVENT_HEIGHT_SCALE_CHANGED","EVENT_PAGINATION_CHANGED","EVENT_COMPONENT_STATE_CHANGED","EVENT_BODY_HEIGHT_CHANGED","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","EVENT_SCROLL_VISIBILITY_CHANGED","EVENT_COLUMN_HOVER_CHANGED","EVENT_FLASH_CELLS","EVENT_PAGINATION_PIXEL_OFFSET_CHANGED","EVENT_DISPLAYED_ROWS_CHANGED","EVENT_LEFT_PINNED_WIDTH_CHANGED","EVENT_RIGHT_PINNED_WIDTH_CHANGED","EVENT_ROW_CONTAINER_HEIGHT_CHANGED","EVENT_ROW_DRAG_ENTER","EVENT_ROW_DRAG_MOVE","EVENT_ROW_DRAG_LEAVE","EVENT_ROW_DRAG_END","EVENT_POPUP_TO_FRONT","EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST","EVENT_COLUMN_PIVOT_CHANGE_REQUEST","EVENT_COLUMN_VALUE_CHANGE_REQUEST","EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST","EVENT_KEYBOARD_FOCUS","EVENT_MOUSE_FOCUS","EVENT_STORE_UPDATED","GroupInstanceIdCreator","existingIds","getInstanceIdForKey","lastResult","reUnescapedHtml","HTML_ESCAPES","utf8_encode","stringFromCharCode","ucs2decode","string","output","extra","checkScalarValue","point","createByte","encodeCodePoint","padStart","symbol","codePoint","codePoints","byteString","stringRepeat","maxCount","totalLength","padStr","camelCaseToHyphen","hyphenToCamelCase","capitalise","escapeString","toEscape","camelCaseToHumanText","camelCase","rex","words","word","matchStart","StringUtils","convertToMap","pair","MapUtils","__extends$1","__decorate$5","__param$2","ColumnController","primaryHeaderRowCount","secondaryHeaderRowCount","secondaryColumnsPresent","gridHeaderRowCount","displayedColumnsLeft","displayedColumnsRight","displayedColumnsCenter","displayedColumns","displayedColumnsAndGroupsMap","viewportColumns","viewportColumnsCenter","pivotColumns","ready","autoGroupsNeedBuilding","forceRecreateAutoGroups","bodyWidth","leftWidth","rightWidth","bodyWidthDirty","colDefVersion","flexColsCalculatedAtLestOnce","suppressColumnVirtualisation","isSuppressColumnVirtualisation","isPivotMode","isPivotSettingAllowed","usingTreeData","onAutoGroupColumnDefChanged","updateGridColumns","updateDisplayedColumns","getColDefVersion","setColumnDefs","colsPreviouslyExisted","raiseEventsFunc","compareColumnStatesAndRaiseEvents","valueCache","expire","oldPrimaryColumns","oldPrimaryTree","primaryColumnTree","balancedTreeResult","columnFactory","getColumnsFromTree","primaryColumnsMap","extractRowGroupColumns","extractPivotColumns","extractValueColumns","gridColsArePrimary","isApplyColumnDefOrder","orderGridColumnsLikePrimary","checkViewportColumns","dispatchEverythingChanged","dispatchNewColumnsLoaded","newColumnsLoadedEvent","eventEverythingChanged","gridColumns","colA","colB","primaryIndexA","primaryIndexB","indexAPresent","indexBPresent","gridIndexA","gridIndexB","isAutoRowHeightActive","autoRowHeightColumns","getAllAutoRowHeightCols","setViewport","viewportLeft","scrollPosition","scrollWidth","viewportRight","getDisplayedColumnsStartingAt","currentColumn","getDisplayedColAfter","hashBefore","extractViewport","hashAfter","setViewportPosition","setPivotMode","getSecondaryPivotColumn","pivotKeys","valueColKey","secondaryColumns","valueColumnToFind","getPrimaryColumn","foundColumn","thisPivotKeys","pivotValueColumn","pivotKeyMatches","pivotValueMatches","setFirstRightAndLastLeftPinned","lastLeft","firstRight","animationFrameService","flushAllFrames","columnsAutosized","changesThisTimeAround","isSkipHeaderOnAutoSize","actionOnGridColumns","preferredWidth","autoWidthCalculator","getPreferredWidthForColumn","newWidth","normaliseColumnWidth","fireColumnResizedEvent","finished","flexColumns","event_2","autoSizeColumn","autoSizeAllColumns","allDisplayedColumns","getAllDisplayedColumns","rootColumns","recursiveFindColumns","childColumns","getAllDisplayedTrees","displayedTreeLeft","displayedTreeRight","displayedTreeCentre","getPrimaryColumnTree","getHeaderRowCount","getDisplayedTreeLeft","getDisplayedTreeRight","getDisplayedTreeCentre","isColumnDisplayed","getViewportColumns","getDisplayedLeftColumnsForRow","colSpanActive","getDisplayedColumnsForRow","getDisplayedRightColumnsForRow","filterCallback","emptySpaceBeforeColumn","out_i_1","lastConsideredCol","_loop_1","filterPasses","maxAllowedColSpan","columnsToCheckFilter","colsToRemove","colForFilter","gapBeforeColumn","getViewportCenterColumnsForRow","isColumnInViewport","getAriaColumnIndex","getAllGridColumns","columnLeft","columnRight","leftBounds","rightBounds","columnToMuchLeft","columnToMuchRight","getDisplayedColumnsLeftWidth","getWidthOfColsInList","getDisplayedColumnsRightWidth","updatePrimaryColumnList","masterList","actionIsAdd","columnCallback","atLeastOne","columnToAdd","setRowGroupColumns","colKeys","setPrimaryColumnList","isSuppressMakeColumnVisibleAfterUnGroup","addRowGroupColumn","addRowGroupColumns","removeRowGroupColumns","removeRowGroupColumn","addPivotColumns","setPivotColumns","added","addPivotColumn","removePivotColumns","removePivotColumn","fireColumnEvent","setValueColumns","initialAggFunc","aggFuncService","getDefaultAggFunc","addValueColumns","addValueColumn","colKey","removeValueColumn","removeValueColumns","getPrimaryOrGridColumn","getGridColumn","setColumnWidths","columnWidths","shiftKey","sets","columnWidth","ratios","defaultIsShift","getColResizeDefault","otherCol","widthDiff","otherColWidth","resizeColumnSets","checkMinAndMaxWidthsForSet","columnResizeSet","minWidthAccumulated","maxWidthAccumulated","maxWidthActive","minWidthPasses","maxWidthPasses","resizeSets","passMinMaxCheck","changedCols","allResizedCols","newWidths","finishedCols","finishedColsGrew","loopCount","_loop_2","subsetCols","subsetRatioTotal","pixelsToDistribute","thisColFinished","ratioThisCol","ratioScale","colNewWidth","lastCol","state_1","atLeastOneColChanged","flexedCols","refreshFlexedColumns","resizingCols","skipSetLeft","setLeftValues","updateBodyWidths","colsForEvent","setColumnAggFunc","moveRowGroupColumn","fromIndex","moveColumns","columnsToMoveKeys","columnAnimationService","columnsToMove","getGridColumns","failedRules","doesMovePassRules","finish","proposedColumnOrder","doesMovePassMarryChildren","doesMovePassLockedPositions","sortColumnsLikeGridColumns","notAllColsInGridColumns","indexA","indexB","foundNonLocked","rulePassed","allColumnsCopy","columnGroup","marryChildren","newIndexes","newColIndex","maxIndex","minIndex","spread","maxSpread","moveColumn","moveColumnByIndex","getColumnDefs","lastPrimaryOrder","columnDefFactory","buildColumnDefs","getBodyContainerWidth","getContainerWidth","newBodyWidth","newLeftWidth","newRightWidth","atLeastOneChanged","event_3","getValueColumns","getPivotColumns","getRowGroupColumns","getDisplayedCenterColumns","getDisplayedLeftColumns","getDisplayedRightColumns","getDisplayedColumns","getAllPrimaryColumns","getSecondaryColumns","getAllColumnsForQuickFilter","columnsForQuickFilter","isEmpty","isRowGroupEmpty","setColumnVisible","setColumnsVisible","setColumnPinned","setColumnsPinned","actualPinned","getDomLayout","updatedColumns","resultOfAction","event_4","getDisplayedColBefore","oldIndex","getDisplayedGroupAfter","getDisplayedGroupAtDirection","getDisplayedGroupBefore","direction","requiredLevel","colGroupLeafColumns","getDisplayColMethod","groupPointer","getColumnGroupAtLevel","originalGroupLevel","groupPointerLevel","groupPointerOriginalColumnGroup","isPinningLeft","isPinningRight","getPrimaryAndSecondaryAndAutoColumns","groupAutoColumns","createStateItemFromColumn","rowGroupIndex","pivotIndex","getColumnState","primaryColumnState","groupAutoColumnState","columnStateList","orderColumnStateList","gridColumnIdMap","itemA","itemB","posA","posB","resetColumnState","columnStates","letRowGroupIndex","letPivotIndex","colsToProcess","stateItem","applyOrder","columnsWithNoState","success","rowGroupIndexes","pivotIndexes","autoGroupColumnStates","previousRowGroupCols","previousPivotCols","groupAutoColumnId","isAutoGroupColumn","syncColumnWithStateItem","defaultState","applyDefaultsFunc","indexes","oldList","aHasIndex","bHasIndex","oldIndexA","oldIndexB","aHasOldIndex","bHasOldIndex","autoGroupColsCopy","autoCol","getAutoColumn","applyOrderAfterApplyState","newOrder","processedColIds","gridColumnsMap","putFixedColumnsFirst","startState","columnStateBefore","columnStateBeforeMap","isSuppressColumnStateEvents","raiseWhenListsDifferent","colsBefore","colsAfter","idMapper","beforeList","afterList","unchanged","getChangedColumns","changedPredicate","changedColumns","colStateBefore","columnIdMapper","valueChangePredicate","oldActive","activeChanged","aggFuncChanged","changedValues","resizeChangePredicate","pinnedChangePredicate","raiseColumnPinnedEvent","visibilityChangePredicate","raiseColumnVisibleEvent","sortChangePredicate","sortController","dispatchSortChangedEvents","raiseColumnMovedEvent","getCommonValue","valueGetter","firstValue","colStateAfter","colStateAfterMapped","colsIntersectIds","beforeFiltered","afterFiltered","movedColumns","csAfter","csBefore","gridCol","getValue","key1","key2","stateAny","defaultAny","value1","value2","calculated","getColumns","columnLookupCallback","foundColumns","getColumnWithValidation","getColumn","columnList","columnMap","columnsMatch","groupCol","columnMatches","colDefMatches","idMatches","getDisplayNameForColumn","includeAggFunc","getHeaderName","wrapHeaderNameWithAggFunc","getDisplayNameForOriginalColumnGroup","getDisplayNameForColumnGroup","headerValueGetter","expressionService","evaluate","isSuppressAggFuncInHeader","aggFuncFound","pivotActiveOnThisColumn","measureActive","aggregationPresent","aggFuncString","localeTextFunc","getLocaleTextFunc","aggFuncStringTranslated","getColumnGroup","allColumnGroups","checkInstanceId","depthFirstAllColumnTreeSearch","matched","isReady","extractColumns","flag","initialRowGroupIndex","initialRowGroup","previousCols","setFlagFunc","getIndexFunc","getInitialIndexFunc","getValueFunc","getInitialValueFunc","colsWithIndex","colsWithValue","include","colIsNew","initialValue","initialIndex","valuePresent","useIndex","getIndexForCol","defaultIndex","initialPivotIndex","initialPivot","resetColumnGroupState","stateItems","groupState","setColumnGroupState","getColumnGroupState","columnGroupState","impactedGroups","groupKey","updateGroupsAndDisplayedColumns","setColumnGroupOpened","keyAsString","calculateColumnsForDisplay","columnsForDisplay","isAutoGroupCol","isValueCol","checkColSpanActiveInCols","calculateColumnsForGroupDisplay","groupDisplayColumns","checkFunc","getGroupDisplayColumns","buildDisplayedTrees","isSecondaryColumnsPresent","setSecondaryColumns","colDefs","newColsPresent","processSecondaryColumnDefinitions","secondaryBalancedTree","getProcessSecondaryColDefFunc","groupCallback","getProcessSecondaryColGroupDefFunc","searchForColDefs","colDefs2","isGroup","orderGridColsLikeLastPrimary","addAutoGroupToGridColumns","autoHeight","setupQuickFilterColumns","clearDisplayedAndViewportColumns","lastPrimaryOrderMapped","noColsFound","gridColsMap","oldColsOrdered","oldColsMap","newColsOrdered","newGridColumns","newCol","siblings","leafCols","leafCol","presentInNewGriColumns","noYetInSiblings","isPrimaryColumnGroupsPresent","locked","unlocked","createGroupAutoColumnsIfNeeded","viewportRowLeft","viewportRowRight","viewportRowCenter","updateOpenClosedVisibilityInColumnGroups","deriveDisplayedColumns","derivedDisplayedColumnsFromDisplayedTree","joinDisplayedColumns","setLeftValuesOfColumns","setLeftValuesOfGroups","allColumns","doingRtl","left_1","left_2","tree","depthFirstDisplayedColumnTreeSearch","extractViewportColumns","filterOutColumnsWithinViewport","getVirtualHeaderGroupRow","extractViewportRows","virtualColIds","testGroup","returnValue","addThisItem","viewportWidth","flexViewportWidth","flexAfterDisplayIndex","indexOfCol","isColFlex","afterResizingCols","knownWidthColumns","flexingColumns","spaceForFlexingColumns","flexingColumnSizes","totalFlex","widthByFlexRule","constrainedWidth","remainingSpace","fireResizedEvent","rowModel","resetRowHeights","gridWidth","colsToSpread","colsToNotSpread","suppressSizeToFit","colsToFireEventFor","finishedResizing","moveToNotSpread","availablePixels","scale","pixelsForLastCol","visibleColumns","leftVisibleColumns","rightVisibleColumns","centerVisibleColumns","groupInstanceIdCreator","displayedGroupCreator","createDisplayedGroups","updateDisplayedMap","isDisplayed","fromMap","getGroupAutoColumns","groupFullWidthRow","isGroupUseEntireRow","suppressAutoColumn","isPivotSuppressAutoColumn","isGroupSuppressAutoColumn","groupingActive","needAutoColumns","newAutoGroupCols","autoGroupColService","createAutoGroupColumns","autoColsDifferent","autoColsEqual","colsA","colsB","getGridBalancedTree","hasFloatingFilters","floatingFilter","getFirstDisplayedColumn","isRtl","queryOrder","container","padStartWidthZeros","totalStringSize","createArrayOfNumbers","isNumeric","getMaxSafeInteger","MAX_SAFE_INTEGER","cleanNumber","decToHex","number","hex","formatNumberTwoDecimalPlacesAndCommas","formatNumberCommas","total","isSafari","isIE","isEdge","isChrome","isFirefox","isIOS","invisibleScrollbar","browserScrollbarWidth","NumberUtils","__extends$2","__decorate$6","ColumnUtils","optionsWrapper","colDefWidth","colDefInitialWidth","getColWidth","getOriginalPathForColumn","originalBalancedTree","found","recursePath","nextNode","__extends$3","__decorate$7","DisplayedGroupCreator","sortedVisibleColumns","oldDisplayedGroups","previousRealPath","previousOriginalPath","oldColumnsMapped","mapOldGroupsById","currentOriginalPath","currentRealPath","firstColumn","newGroup","noColumnGroups","leafGroup","setupParentsIntoColumns","uniqueId","displayedGroups","recursive","columnsOrGroups","columnOrGroup","columnsOrGroup","__extends$4","__decorate$8","HeadlessService","HeadlessService_1","getHeaderRows","headerRows","getRows","getCenterRowContainer","centerRowContainer","postConstruct","createHeaderRows","onPageLoaded","headerRowCount","columnController","groupLevel","createHeaderRow","EVENT_HEADERS_UPDATED","firstRow","paginationProxy","getPageFirstRow","lastRow","getPageLastRow","rowIndex","this_1","getRow","cells","rowVo","rowHeight","rowTop","valueService","EVENT_ROWS_UPDATED","getCurrentPageHeight","EVENT_ROW_CONTAINER_UPDATED","mapColumn","isCol","headerRowIndex","isBrowserIE","documentMode","isBrowserEdge","StyleMedia","isBrowserSafari","isBrowserChrome","win","webstore","runtime","vendor","isBrowserFirefox","InstallTrigger","isIOSUserAgent","platform","maxTouchPoints","MSStream","getTabIndex","numberTabIndex","tabIndex","button","iframe","img","isindex","textarea","nodeName","getMaxDivHeight","testUpTo","div","clientHeight","getScrollbarWidth","initScrollbarWidthAndVisibility","opacity","overflow","msOverflowStyle","position","offsetWidth","clientWidth","parentNode","isInvisibleScrollbar","hasOverflowScrolling","prefixes","prefix","computedStyle","overflowScrolling","prefixes_1","getBodyWidth","innerHeight","innerWidth","documentElement","getBodyHeight","rtlNegativeScroll","BrowserUtils","addCssClass","className","classList","cssClasses","removeCssClass","remove","newClassName","addOrRemoveCssClass","addOrRemove","radioCssClass","elementClass","otherElementClass","sibling","firstChild","nextSibling","containsClass","onlyClass","startsWithClass","endsWithClass","isFocusableFormField","Element","msMatchesSelector","isFocusable","isNotFocusable","isElementVisible","focusable","setDisplayed","displayed","setDisabled","disabled","addOrRemoveDisabledAttribute","removeAttribute","nodeListForEach","querySelectorAll","isElementChildOfClass","cls","maxNest","getElementSize","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","boxSizing","getInnerHeight","getInnerWidth","getAbsoluteHeight","offsetHeight","getAbsoluteWidth","marginWidth","isRtlNegativeScroll","template","dir","scrollLeft","getScrollLeft","rtl","setScrollLeft","clearElement","removeElement","cssSelector","removeFromParent","querySelector","offsetParent","loadTemplate","tempDiv","appendHtml","eContainer","htmlTemplate","insertAdjacentHTML","getElementAttribute","ensureDomOrder","eChild","eChildBefore","insertBefore","insertAdjacentElement","setDomChildOrder","orderedChildren","correctCellAtIndex","actualCellAtIndex","insertWithDomOrder","eToInsert","prependDC","documentFragment","addStylesToElement","keyCamelCase","isHorizontalScrollShowing","isVerticalScrollShowing","scrollHeight","setElementWidth","removeProperty","setFixedWidth","formatSize","setElementHeight","setFixedHeight","maxHeight","minHeight","isNode","Node","nodeType","isElement","isNodeOrElement","copyNodeList","nodeList","iterateNamedNodeMap","setCheckboxState","eCheckbox","checked","indeterminate","addOrRemoveAttribute","DomUtils","TestHeadless","doSomething","eDiv","headlessService","eTable","headerRow","eTr","eTh","eTd","append","__spreadArrays","il","jl","PropertyKeys","STRING_PROPERTIES","OBJECT_PROPERTIES","ARRAY_PROPERTIES","NUMBER_PROPERTIES","FUNCTION_PROPERTIES","FRAMEWORK_PROPERTIES","__assign","__spreadArrays$1","ComponentUtil","getEventCallbacks","EVENT_CALLBACKS","EVENTS","getCallbackForEvent","skipEventDeprecationCheck","pGridOptions","keyExists","toBoolean","changesToApply","setEnableCellTextSelection","quickFilterText","autoGroupColumnDef","setAutoGroupColumnDef","paginationPageSize","paginationSetPageSize","groupRemoveSingleChildren","setGroupRemoveSingleChildren","suppressRowDrag","setSuppressRowDrag","suppressMoveWhenRowDragging","setSuppressMoveWhenRowDragging","suppressRowClickSelection","setSuppressRowClickSelection","suppressClipboardPaste","setSuppressClipboardPaste","headerHeight","setHeaderHeight","dynamicApi","setterName","__spreadArrays$2","ColDefUtil","Color","fromString","fromHexString","nameToHex","fromRgbaString","hexRe","shortHexRe","rgbRe","rgbaRe","fromArray","fromHSB","alpha","HSBtoRGB","padHex","toHexString","toRgbaString","fractionDigits","toHSB","RGBtoHSB","rc","bc","derive","hueShift","saturationFactor","brightnessFactor","opacityFactor","hsb","rgba","brighter","darker","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","stringToArray","strData","delimiter","isNewline","char","insideQuotedField","out_row_1","out_column_1","out_position_1","previousChar","currentChar","nextChar","ensureDataExists","CsvUtils","getNameOfClass","theClass","funcNameRegex","funcAsString","results","findLineByLeastSquares","maxDecimals","sum_x","sum_y","sum_xy","sum_xx","cssStyleObjectToMarkup","stylesToUse","resParts","styleKey","styleValue","styleKeyDashed","eMessage","eBox","bindCellRendererToHtmlElement","cellRendererPromise","eTarget","then","cellRenderer","gui","GeneralUtils","setAriaAttribute","ariaAttributeName","removeAriaAttribute","getAriaSortState","getAriaLevel","getAriaPosInSet","getAriaDescribedBy","setAriaLabel","label","setAriaLabelledBy","labelledBy","setAriaDescribedBy","describedby","setAriaLevel","setAriaDisabled","setAriaExpanded","removeAriaExpanded","setAriaSetSize","setsize","setAriaPosInSet","setAriaMultiSelectable","multiSelectable","setAriaRowCount","rowCount","setAriaRowIndex","setAriaColCount","colCount","setAriaColIndex","colIndex","setAriaColSpan","setAriaSort","removeAriaSort","setAriaSelected","selected","setAriaChecked","AriaUtils","serialiseDate","includeTime","separator","serialised","part","parseDateTimeFromString","dateStr","timeStr","year","month","day","hours","minutes","seconds","DateUtils","fuzzyCheckStrings","inputValues","validValues","allSuggestions","fuzzyMatches","invalidInputs","inputValue","validValue","invalidInput","fuzzySuggestions","hideIrrelevant","weighted","string_weighted_distances","string_distances","thisSuggestions","relevance","toLocaleLowerCase","suggestion","get_bigrams","str1","str2","pairs1","pairs2","union","hit_count","len1","weight","FuzzyMatchUtils","iconNameClassMap","columnGroupOpened","columnGroupClosed","columnSelectClosed","columnSelectOpen","columnSelectIndeterminate","columnMovePin","columnMoveHide","columnMoveMove","columnMoveLeft","columnMoveRight","columnMoveGroup","columnMoveValue","columnMovePivot","dropNotAllowed","groupContracted","groupExpanded","chart","cancel","check","linked","unlinked","colorPicker","groupLoading","menu","maximize","minimize","menuPin","menuValue","menuAddRowGroup","menuRemoveRowGroup","clipboardCopy","clipboardPaste","pivotPanel","rowGroupPanel","valuePanel","columnDrag","save","smallDown","smallLeft","smallRight","smallUp","sortAscending","sortDescending","sortUnSort","createIcon","iconName","iconContents","createIconNoSpan","eResult","forceCreate","userProvidedIcon","icons","optionsIcons","getIcons","span","cssClass","rendererResult","IconUtils","NUMPAD_DEL_NUMLOCK_ON_KEY","NUMPAD_DEL_NUMLOCK_ON_CHARCODE","isKeyPressed","keyToCheck","which","keyCode","isEventFromPrintableCharacter","altKey","ctrlKey","printableCharacter","numpadDelWithNumlockOnForEdgeOrIe","isNumpadDelWithNumlockOnForEdgeOrIe","isUserSuppressingKeyboardEvent","keyboardEvent","editing","gridOptionsFunc","getSuppressKeyboardEventFunc","colDefFunc","suppressKeyboardEvent","colDefFuncResult","isUserSuppressingHeaderKeyboardEvent","suppressHeaderKeyboardEvent","charCode","KeyboardUtils","normalizeWheel","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","isLeftClick","mouseEvent","buttons","areEventsNear","pixelCount","diffX","clientX","diffY","clientY","MouseUtils","sortRowNodesByOrder","rowNodes","rowNodeOrder","rowNodeA","rowNodeB","nodeA","nodeB","positionA","positionB","bothNodesAreUserNodes","bothNodesAreFillerNodes","__objectId","atLeastOneOutOfOrder","traverseNodesWithKey","keyParts","recursiveSearchNodes","currentNodes","hasChildren","childrenAfterGroup","RowNodeUtils","convertToSet","SetUtils","__assign$1","NumberSequence","initValue","nextValue","valToReturn","peek","AgPromiseStatus","TooltipStates","AgPromise","IN_PROGRESS","resolution","waiters","onDone","onReject","all","promises","resolve","remainingToResolve","combinedValues","promise","RESOLVED","resolveNow","ifNotResolvedValue","ifResolved","waiter","Timer","timestamp","print","duration","info","__extends$5","__assign$2","__decorate$9","elementGettingCreated","TooltipFeature","parentComp","DEFAULT_HIDE_TOOLTIP_TIMEOUT","SHOW_QUICK_TOOLTIP_DIFF","FADE_OUT_TOOLTIP_TIMEOUT","NOTHING","tooltipInstanceCount","tooltipMouseTrack","tooltipShowDelay","getTooltipShowDelay","isTooltipMouseTrack","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","setToDoNothing","isLastTooltipHiddenRecently","showTooltipTimeoutId","showTooltip","lastMouseEvent","WAITING_TO_SHOW","SHOWING","hideTooltip","clearTimeouts","tooltipComp","positionTooltipUnderLastMouseEvent","destroyTooltipComp","lastTooltipHideTime","tooltipPopupDestroyFunc","getTooltipParams","newTooltipComponentCallback","userComponentFactory","newTooltipComponent","tooltipInstanceCopy","compNoLongerNeeded","eGui","addPopupRes","popupService","addPopup","hideFunc","hideTooltipTimeoutId","positionPopupUnderMouseEvent","ePopup","nudgeY","__extends$6","__decorate$a","compIdSequence","annotatedGuiListeners","compId","cssClassStates","setTemplate","preConstructOnComponent","usingBrowserTooltips","isEnableBrowserTooltips","getCompId","tooltipText","setTooltip","newTooltipText","removeTooltip","tooltipFeature","addTooltip","createChildComponentsFromTags","paramsMap","childNodeList","childNodes","childNode","childComp","createComponentFromElement","comp","copyAttributesFromNode","addItems","swapComponentForNode","componentParams","ComponentClass","agStackComponentsRegistry","getComponentClass","newComponent","setParentComponent","eComponent","replaceChild","createComment","swapInComponentForQuerySelectors","thisNoType","iterateOverQuerySelectors","thisPrototype","__agComponentMetaData","currentProtoName","querySelectors","setTemplateFromElement","__agComponent","addAnnotatedGuiEventListeners","wireQuerySelectors","createChildComponentsPreConstruct","setResult","topLevelRefMatch","refSelector","resultOfQuery","removeAnnotatedGuiEventListeners","listenerMethods","getAgComponentMetaData","getRefElement","addAnnotatedGridEventListeners","listenerMetas","thisProto","getFocusableElement","parentComponent","getParentComponent","setGui","queryForHtmlElement","queryForHtmlInputElement","newChild","childComponent","EVENT_DISPLAYED_CHANGED","addGuiEventListener","updateNeeded","refName","__extends$7","PopupComponent","isPopup","hasParent","QuerySelector","selector","querySelectorFunc","RefSelector","addToObjectProps","GridListener","gridListenerFunc","GuiListener","guiListenerFunc","getOrCreateProps$1","instanceName","ConditionPosition","KeyCode","BACKSPACE","TAB","ENTER","SHIFT","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","DELETE","F2","PAGE_UP","PAGE_DOWN","PAGE_HOME","PAGE_END","__extends$8","__decorate$b","TextCellEditor","TEMPLATE","startValue","eInput","cellStartedEdit","focusAfterAttached","keyPress","charPress","getStartValue","highlightAllOnFocus","setValue","preventDefault","afterGuiAttached","translate","setInputAriaLabel","focus","inputEl","getInputElement","setSelectionRange","focusIn","focusEl","focusOut","parseValue","formatValue","useFormatter","refData","DateCompWrapper","dateComponentParams","eParent","alive","newDateComponent","dateComp","tempValue","setInputPlaceholder","placeholder","OptionsFactory","customFilterOptions","defaultOptions","filterOptions","mapCustomOptions","selectDefaultItem","getFilterOptions","filterOption","requiredProperties","displayKey","defaultOption","firstFilterOption","getDefaultOption","getCustomOption","DEFAULT_FILTER_LOCALE_TEXT","clearFilter","resetFilter","cancelFilter","textFilter","numberFilter","dateFilter","setFilter","empty","inRangeStart","inRangeEnd","dateFormatOoo","__extends$9","__decorate$c","ManagedFocusComponent","isFocusableContainer","skipTabGuardFocus","focusableElement","FOCUS_MANAGED_CLASS","topTabGuard","createTabGuard","bottomTabGuard","addTabGuards","activateTabGuards","forEachTabGuard","guard","onFocus","addKeyDownListeners","onFocusIn","onFocusOut","focusInnerElement","fromBottom","focusController","findFocusableElements","tabGuardsAreActive","onTabKeyDown","defaultPrevented","deactivateTabGuards","nextRoot","findNextFocusableElement","relatedTarget","forceFocusOutOfContainer","up","tabGuardToFocus","side","tabGuard","focusableEl","shouldStopEventPropagation","handleKeyDown","getGridTabIndex","clearGui","__extends$a","__decorate$d","ProvidedFilter","filterNameKey","applyActive","hidePopup","appliedModel","getFilterTitle","onFilterChanged","providedFilterParams","filterChangedCallback","resetTemplate","templateString","getCssIdentifier","createBodyTemplate","setParams","resetUiToDefaults","updateUiVisibility","setupOnBtApplyDebounce","checkForDeprecatedParams","newRowsAction","newRowsActionKeep","modelsForKeep","getType","isUseApplyButton","createButtonPanel","eButtonsPanel","addButton","clickListener","onBtApply","onBtClear","onBtReset","onBtCancel","applyButton","resetButton","clearButton","getDefaultDebounceMs","debounceMs","getDebounceMs","onBtApplyDebounce","getModel","setModel","setModelIntoUi","applyModel","currentModel","afterAppliedFunc","onUiChanged","closeOnApply","newModel","getModelFromUi","isModelValid","previousModel","areModelsEqual","afterFloatingFilter","afterDataChange","onNewRowsLoaded","isNewRowsActionKeep","fromFloatingFilter","filterModifiedCallback","isValid","debounceDefault","__extends$b","__decorate$e","ComponentSource","SimpleFilter","showValueFrom","doesFilterHaveHiddenInput","EMPTY","showValueTo","IN_RANGE","onFloatingFilterChanged","setTypeFromFloatingFilter","setValueFromFloatingFilter","eType1","eType2","optionsFactory","isDefaultOperator","eJoinOperatorAnd","eJoinOperatorOr","isConditionUiComplete","One","isAllowTwoConditions","Two","filterType","getFilterType","operator","getJoinOperator","condition1","createCondition","condition2","getCondition1Type","getCondition2Type","aIsSimple","bIsSimple","oneSimpleOneCombined","aSimple","bSimple","areSimpleModelsEqual","aCombined","bCombined","isCombined","combinedModel","orChecked","setConditionIntoUi","simpleModel","doesFilterPass","models","combineFunction","individualConditionPasses","getDefaultFilterOptions","allowTwoConditions","suppressAndOrCondition","alwaysShowBothConditions","defaultJoinOperator","getDefaultJoinOperator","putOptionsIntoDropdown","addChangedListeners","option","customOption","createOption","addOption","readOnly","createValueTemplate","isCondition2Enabled","eCondition2Body","eJoinOperatorPanel","filteringLabel","uniqueGroupId","setName","setLabel","onValueChange","customFilterOption","hideFilterInput","EQUALS","NOT_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","CONTAINS","NOT_CONTAINS","STARTS_WITH","ENDS_WITH","__extends$c","ScalarFilter","scalarFilterParams","checkDeprecatedParams","nullComparator","includeBlanksInEquals","includeBlanksInLessThan","includeBlanksInGreaterThan","filterModel","cellValue","mapRangeFromModel","filterValue","filterValueTo","includeBlanksInRange","compareResult","compareToResult","inRangeInclusive","__extends$d","__decorate$f","DateFilter","dateCondition1FromComp","dateFrom","dateTo","dateCondition1ToComp","dateCondition2FromComp","dateCondition2ToComp","getFromToComponents","compFrom","compTo","dateFilterParams","filterDate","cellAsDate","createDateComponents","createDateCompWrapper","onDateChanged","filterParams","eCondition1PanelFrom","eCondition1PanelTo","eCondition2PanelFrom","eCondition2PanelTo","DEFAULT_FILTER_OPTIONS","positionOne","minValidYear","isValidDate","getUTCFullYear","resetPlaceholder","globalTranslate","ariaLabel","condition1Type","condition2Type","TouchListener","preventMouseClick","destroyFuncs","touching","startListener","onTouchStart","moveListener","onTouchMove","endListener","onTouchEnd","getActiveTouch","touchList","identifier","touchStart","touchEvent","touches","moved","touchStartCopy","touchesMatch","EVENT_LONG_TAP","touch","eventIsFarAway","EVENT_TAP","checkForDoubleTap","lastTapTime","DOUBLE_TAP_MILLIS","EVENT_DOUBLE_TAP","__extends$e","__decorate$g","HeaderComp","lastMovingChanged","workOutTemplate","currentTemplate","workOutShowMenu","currentShowMenu","workOutSort","currentSort","setDisplayName","setupTap","setupIcons","setMenu","setupSort","setupFilterIcon","currentDisplayName","displayNameSanitised","eText","addInIcon","eSortAsc","eSortDesc","eSortNone","eMenu","eFilter","eIcon","isSuppressTouch","touchListener","suppressMenuHide","isSuppressMenuHide","tapMenuButton","menuTouchListener","enableMenu","showMenuFn","showColumnMenuAfterMouseClick","enableSorting","tapListener","progressSort","menuHides","onIpadAndMenuHides","showMenu","eventSource","menuFactory","showMenuAfterButtonClick","removeSortIcons","eSortOrder","sortUsingCtrl","isMultiSortKeyCtrl","eLabel","nowTime","movedRecently","columnMoving","multiSort","onSortChanged","setMultiSortOrder","alwaysHideNoSort","unSortIcon","isUnSortIcon","allColumnsWithSorting","getColumnsWithSortingOrdered","indexThisCol","moreThanOneColSorting","showIndex","filterPresent","__extends$f","__decorate$h","HeaderGroupComp","checkWarnings","setupLabel","addGroupExpandIcon","setupExpandIcons","paramsAny","message_1","expandAction","newExpandedValue","addTouchAndClickListeners","eCloseIcon","eOpenIcon","stopPropagationAction","updateIconVisibility","__decorate$i","RowNode","childrenMapped","oldRowTop","selectable","OBJECT_ID_SEQUENCE","alreadyRendered","highlighted","setData","setDataCommon","updateData","update","oldData","onDataChanged","updateDataOnDetailNode","checkRowSelectable","createDataChangedEvent","dispatchLocalEvent","detailNode","newData","EVENT_DATA_CHANGED","createLocalRowEvent","getRowIndexString","rowPinned","createDaemonNode","oldNode","daemon","setDataAndId","setId","selectionController","syncInRowNode","isRowSelectableFunc","getIsRowSelectableFunc","setRowSelectable","newVal","EVENT_SELECTABLE_CHANGED","getRowNodeId","getRowNodeIdFunc","ID_PREFIX_ROW_GROUP","isPixelInRange","pixel","setFirstChild","EVENT_FIRST_CHILD_CHANGED","setLastChild","EVENT_LAST_CHILD_CHANGED","setChildIndex","childIndex","EVENT_CHILD_INDEX_CHANGED","setRowTop","EVENT_TOP_CHANGED","clearRowTopAndRowIndex","setRowIndex","setDragging","dragging","EVENT_DRAGGING_CHANGED","setHighlighted","EVENT_HIGHLIGHT_CHANGED","setAllChildrenCount","allChildrenCount","EVENT_ALL_CHILDREN_COUNT_CHANGED","setMaster","master","EVENT_MASTER_CHANGED","setRowHeight","estimated","rowHeightEstimated","EVENT_HEIGHT_CHANGED","EVENT_ROW_INDEX_CHANGED","setUiLevel","uiLevel","EVENT_UI_LEVEL_CHANGED","createGlobalRowEvent","mainEventService","isGroupIncludeFooter","rowRenderer","refreshCells","setDataValue","oldValue","dispatchCellChangedEvent","setGroupValue","groupData","columnId","setAggData","newAggData","colIds","aggData","oldAggData","updateHasChildren","__hasChildren","EVENT_HAS_CHILDREN_CHANGED","isEmptyRowGroupNode","cellChangedEvent","EVENT_CELL_CHANGED","resetQuickFilterAggregateText","quickFilterAggregateText","isSelected","depthFirstSearch","calculateSelectedFromChildren","newSelectedValue","atLeastOneSelected","atLeastOneDeSelected","atLeastOneMixed","childState","selectThisNode","setSelectedInitialValue","setSelected","clearSelection","suppressFinishActions","setSelectedParams","rangeSelect","isRowPinned","groupSelectsChildren","isGroupSelectsChildren","groupSelectsFiltered","getLastSelectedNode","newRowClicked","allowMultiSelect","isRowSelectionMulti","nodesChanged","doRowRangeSelection","setLastSelectedNode","updatedCount","skipThisNode","thisNodeWasSelected","selectChildNodes","clearOtherNodes","updateGroupsFromChildrenSelections","groupsSelectChildren","lastSelectedNode","nodesToSelect","getNodesInRangeForSelection","nodeWasSelected","isParentOfNode","potentialParent","selectionNotAllowed","selectionNotChanged","childrenAfterFilter","EVENT_MOUSE_ENTER","EVENT_MOUSE_LEAVE","getFirstChildOfFirstChild","rowGroupColumn","currentRowNode","isCandidate","foundFirstChildPath","nodeToSwapIn","parentRowNode","isFullWidthCell","isFullWidthCellFunc","getIsFullWidthCellFunc","getRoute","ID_PREFIX_TOP_PINNED","ID_PREFIX_BOTTOM_PINNED","__extends$g","__decorate$j","CheckboxSelectionComponent","setPassive","getCheckboxId","onSelectionChanged","onSelectableChanged","showOrHideSelect","stateName","onCheckedClicked","isGroupSelectsFiltered","onUncheckedClicked","getPreviousValue","checkboxVisibleIsDynamic","checkboxCallbackExists","showOrHideSelectListener","DateComponent","isCellRenderer","HeaderComponent","HeaderGroupComponent","CellRendererComponent","PinnedRowCellRendererComponent","CellEditorComponent","InnerRendererComponent","LoadingOverlayComponent","NoRowsOverlayComponent","TooltipComponent","FilterComponent","FloatingFilterComponent","ToolPanelComponent","StatusPanelComponent","__extends$h","__decorate$k","UserComponentFactory","createAndInitUserComponent","newHeaderComponent","newHeaderGroupComponent","newFullWidthGroupRowInnerCellRenderer","groupRowRendererParams","newFullWidthCellRenderer","cellRendererType","cellRendererName","newCellRenderer","newCellEditor","newInnerCellRenderer","newLoadingOverlayComponent","newNoRowsOverlayComponent","newFilterComponent","defaultFilter","newSetFilterCellRenderer","newFloatingFilterComponent","defaultFloatingFilter","newToolPanelComponent","toolPanelDef","newStatusPanelComponent","definitionObject","paramsFromGrid","defaultComponentName","componentAndParams","createComponentInstance","createFinalParams","paramsFromSelector","addReactHacks","deferredInit","initComponent","agGridReact","createUserComponentFromConcreteClass","clazz","agGridParams","internalComponent","lookupComponentClassDef","hardcodedNameComponent","HardcodedJsComponent","hardcodedJsFunction","HardcodedFwComponent","componentSelectorFunc","componentPropertyValue","usingDefaultComponent","agComponentUtils","doesImplementIComponent","componentFromFramework","HARDCODED","adaptFunction","componentNameToUse","selectorResult","registeredCompClassDef","lookupFromRegisteredComponents","componentNameOpt","componentName","registeredComponent","userComponentRegistry","retrieve","REGISTERED_BY_NAME","RegisteredComponentSource","REGISTERED","DEFAULT","userParams","userParamsFromFunc","holder","paramsForSelector","componentToUse","overrideName","nameToReport","FrameworkComponentRaw","thisComponentConfig","componentMetadataProvider","wrap","mandatoryMethodList","optionalMethodList","__extends$i","__decorate$l","DragSourceType","VerticalDirection","HorizontalDirection","DragAndDropService","dragSourceAndParamsList","dropTargets","DragAndDropService_1","ePinnedIcon","eHideIcon","eMoveIcon","eLeftIcon","eRightIcon","eGroupIcon","eAggregateIcon","ePivotIcon","eDropNotAllowedIcon","addDragSource","dragSource","allowTouch","dragStartPixels","onDragStart","onDragStop","onDragging","dragService","removeDragSource","sourceAndParams","clearDragSourceParamsList","nudge","eventLastTime","dragItem","getDragItem","lastDropTarget","dragSourceDropTarget","onDragStarted","createGhost","onDragStopped","draggingEvent","createDropTargetEvent","removeGhost","fromNudge","hDirection","getHorizontalDirection","vDirection","getVerticalDirection","positionGhost","validDropTargets","isMouseOnDropTarget","dropTarget","prevTarget","currTarget","prevContainer","getContainer","currContainer","leaveLastTargetIfExists","enterDragTargetIfExists","onDragEnter","dragEnterEvent","setGhostIcon","getIconName","onDragLeave","dragLeaveEvent","getAllContainersFromDropTarget","containers","secondaryContainers","getSecondaryContainers","mouseOverTarget","rect","getBoundingClientRect","horizontalFit","verticalFit","isInterestedIn","addDropTarget","removeDropTarget","hasExternalDropZones","zones","external","findExternalZone","externalTargets","zone","eClientX","Left","Right","eClientY","Up","Down","dropZoneTarget","ghost","eGhost","ghostRect","ghostHeight","browserWidth","browserHeight","pageY","pageX","usrDocument","getDocument","windowScrollY","pageYOffset","scrollTop","windowScrollX","pageXOffset","eGhostParent","GHOST_TEMPLATE","environment","getTheme","eGhostIcon","dragItemName","targetEl","fullscreenElement","shake","defaultIconName","ICON_NOT_ALLOWED","ICON_PINNED","ICON_MOVE","ICON_LEFT","ICON_RIGHT","ICON_GROUP","ICON_AGGREGATE","ICON_PIVOT","ICON_HIDE","isSuppressDragLeaveHidesColumns","__extends$j","__decorate$m","RowDragComp","cellValueFn","customGui","isCustomGui","setDragElement","strategy","isRowDragManaged","ManagedVisibilityStrategy","NonManagedVisibilityStrategy","dragElement","getSelectedCount","multiRowEnabled","isEnableMultiRowDragging","selection","getSelectedNodes","managed","treeData","defaultTextValue","rowDragText","RowDrag","dragItemCount","dragSourceDomDataKey","getDomDataKey","dragAndDropService","VisibilityStrategy","setDisplayedOrVisible","neverDisplayed","shown","isShownSometimes","onSuppressRowDrag","workOutVisibility","isSuppressRowDrag","gridBodyCon","controllersService","getGridBodyController","rowDragFeature","getRowDragFeature","shouldPreventRowMove","__extends$k","__decorate$n","GroupCellRenderer","isTopLevelFooter","isGroupIncludeTotalFooter","doingFullWidth","rowGroupCols","firstRowGroupCol","topLevelFooter","embeddedRowMismatch","isEmbeddedRowMismatch","nullValue","skipCell","isGroupHideOpenParents","rowGroupColumnId","cellIsBlank","setupDragOpenParents","addFullWidthRowDraggerIfNeeded","addExpandAndContract","addCheckboxIfNeeded","addValueElement","setupIndent","fullWidth","isEmbedFullWidthRows","pinnedLeftCell","pinnedRightCell","bodyCell","setIndent","fullWithRow","manyDimensionThisColumn","paddingCount","userProvidedPaddingPixelsTheDeprecatedWay","setPaddingDeprecatedWay","indentClass","paddingPx","paddingSide","suppressPadding","displayedGroup","addFooterValue","addGroupValue","addChildCount","footerValue","footerValueGetter","paramsClone","eValue","rendererPromise","columnToUse","groupName","valueFormatted","valueFormatterService","scope","useFullWidth","useInnerRenderer","cellRendererParams","innerCellRenderer","groupCellRendererParams","groupedColumnDef","groupInnerRendererClass","groupColumnRendererClass","rendererToUse","rowDragComp","suppressCount","updateChildCount","showingGroupForThisNode","isShowRowGroupForThisRow","showCount","countString","eChildCount","isUserWantsSelected","paramsCheckbox","checkbox","checkboxNeeded","cbSelectionComponent_1","eGroupCell","eGridCell","eExpandedIcon","eContractedIcon","eExpanded","eContracted","onExpandClicked","showExpandAndContractIcons","expandableChangedListener","onRowNodeIsExpandableChanged","suppressDoubleClickExpand","onCellDblClicked","enterKeyPressed","suppressEnterExpand","cellEditable","onExpandOrContract","draggedFromHideOpenParents","targetIsExpandIcon","nextExpandState","thisColumnIsInterested","reducedLeafNode","expandableGroup","displayingForOneColumnOnly","showing","pivotModeAndLeafGroup","addExpandableCss","isTotalFooterNode","__extends$l","__decorate$o","ARROW_UP","ARROW_DOWN","AnimateShowChangeCellRenderer","refreshCount","eDelta","showDelta","absDelta","valueToUse","deltaUp","setTimerToRemoveDelta","refreshCountCopy","hideDeltaValue","lastValue","filterManager","isSuppressFlashingCellsBecauseFiltering","__extends$m","__decorate$p","AnimateSlideCellRenderer","eCurrent","addSlideAnimation","ePrevious","__extends$n","__decorate$q","LoadingCellRenderer","failedLoad","setupFailed","setupLoading","eLoadingText","eLoadingIcon","__extends$o","__decorate$r","SelectCellEditor","startedByEnter","hasValue","valueFormattedExits","eSelect","isFullRowEdit","stopEditing","showPicker","__extends$p","PopupTextCellEditor","__extends$q","PopupSelectCellEditor","__extends$r","__decorate$s","LargeTextCellEditor","eTextArea","setMaxLength","maxLength","setCols","setRows","stopPropagation","__extends$s","__decorate$t","NumberFilter","filterTo","eValueFrom1","eValueFrom2","eValueTo1","eValueTo2","eValueFrom","eValueTo","numberFilterParams","allowedCharPattern","getAllowedCharPattern","config","addValueChangedListeners","isRange1","isRange2","suppressFocus","agElementTag","stringToFloat","filterText","numberParser","valueTo","__extends$t","LoadingOverlayComponent$1","getOverlayLoadingTemplate","DEFAULT_LOADING_OVERLAY_TEMPLATE","localisedTemplate","__extends$u","NoRowsOverlayComponent$1","getOverlayNoRowsTemplate","DEFAULT_NO_ROWS_TEMPLATE","__extends$v","TooltipComponent$1","__extends$w","__decorate$u","DefaultDateComponent","inputElement","eDateInput","shouldUseBrowserDatePicker","activeElement","browserDatePicker","__extends$x","SimpleFloatingFilter","getTextFromModel","con1Str","conditionToString","con2Str","isEventFromFloatingFilter","getLastType","lastType","setLastTypeFromModel","canWeEditAfterModelFromParentFilter","isTypeEditable","setEditable","__extends$y","__decorate$v","DateFloatingFilter","createDateComponent","eReadOnlyText","eDateWrapper","onParentModelChanged","allowEditing","dateModel","filterValueDate","filterValueText","parentFilterInstance","filterInstance","simpleFilter","__extends$z","__decorate$w","TextFilter","trimInput","trimmedInput","getCleanValue","inputField","textFilterParams","eValue1","eValue2","textCustomComparator","DEFAULT_COMPARATOR","formatter","textFormatter","caseSensitive","DEFAULT_FORMATTER","DEFAULT_LOWERCASE_FORMATTER","forEachInput","eCondition1Body","cellValueFormatted","filterTextFormatted","__extends$A","__decorate$x","TextInputFloatingFilter","eFloatingFilterInput","toDebounce","syncUpWithParentFilter","filterGui","columnDef","__extends$B","NumberFloatingFilter","isRange","__extends$C","TextFloatingFilter","__extends$D","__decorate$y","UserComponentRegistry","agGridDefaults","agDateInput","agColumnHeader","agColumnGroupHeader","agTextColumnFloatingFilter","agNumberColumnFloatingFilter","agDateColumnFloatingFilter","agAnimateShowChangeCellRenderer","agAnimateSlideCellRenderer","agGroupCellRenderer","agGroupRowRenderer","agLoadingCellRenderer","agCellEditor","agTextCellEditor","agSelectCellEditor","agPopupTextCellEditor","agPopupSelectCellEditor","agLargeTextCellEditor","agTextColumnFilter","agNumberColumnFilter","agDateColumnFilter","agLoadingOverlay","agNoRowsOverlay","agTooltipComponent","agDeprecatedNames","newComponentName","propertyHolder","animateShowChange","animateSlide","largeText","popupSelect","popupText","richSelect","headerComponent","jsComponents","frameworkComponents","registerComponent","registerFwComponent","registerDefaultComponent","translateIfDeprecated","frameworkComponent","jsComponent","defaultComponent","deprecatedInfo","SideBarDefParser","toParse","toolPanels","DEFAULT_COLUMN_COMP","DEFAULT_FILTER_COMP","defaultToolPanel","comps_1","lookupResult","DEFAULT_BY_KEY","parseComponents","hiddenByDefault","toAdd","labelDefault","labelKey","iconKey","__decorate$z","__param$3","__spreadArrays$3","DEFAULT_ROW_HEIGHT","DEFAULT_DETAIL_ROW_HEIGHT","DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE","DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE","DEFAULT_KEEP_DETAIL_ROW_COUNT","isTrue","zeroOrGreater","oneOrGreater","valueNumber","RowType","GridOptionsWrapper","propertyEventService","domDataKey","random","GridOptionsWrapper_1","agWire","checkForDeprecated","checkForViolations","PROP_DOM_LAYOUT","updateLayoutClassesListener","suppressPropertyNamesCheck","checkGridOptionsProperties","checkColumnDefProperties","sideBar","globalEventHandler","isSuppressParentsInRowNodes","isRowModelServerSide","isGroupRemoveSingleChildren","groupDefaultExpanded","isEnableRangeSelection","RangeSelectionModule","isEnableRangeHandle","isEnableFillHandle","warnOfDeprecaredIcon","userProperties","validProperties","checkProperties","validPropertiesAndExceptions","containerName","docsUrl","invalidProperties","domData","setDomData","isRowSelection","isSuppressRowDeselection","suppressRowDeselection","isRowMultiSelectWithClick","rowMultiSelectWithClick","isSuppressExpandablePivotGroups","suppressExpandablePivotGroups","getPivotColumnGroupTotals","pivotColumnGroupTotals","getPivotRowTotals","pivotRowTotals","isRowModelInfinite","rowModelType","isRowModelViewport","editType","isSuppressFocusAfterRefresh","suppressFocusAfterRefresh","isSuppressBrowserResizeObserver","suppressBrowserResizeObserver","isSuppressMaintainUnsortedOrder","suppressMaintainUnsortedOrder","isSuppressClearOnFillReduction","suppressClearOnFillReduction","isShowToolPanel","getSideBar","suppressTouch","applyColumnDefOrder","isSuppressRowTransform","suppressRowTransform","suppressColumnStateEvents","isAllowDragFromColumnsToolPanel","allowDragFromColumnsToolPanel","suppressAsyncEvents","isEnableCellChangeFlash","enableCellChangeFlash","getCellFlashDelay","cellFlashDelay","getCellFadeDelay","cellFadeDelay","isSuppressRowHoverHighlight","suppressRowHoverHighlight","groupHideOpenParents","isGroupMultiAutoColumn","groupMultiAutoColumn","isGroupRemoveLowestSingleChildren","groupRemoveLowestSingleChildren","groupIncludeFooter","groupIncludeTotalFooter","isGroupSuppressBlankHeader","groupSuppressBlankHeader","isSuppressRowClickSelection","isSuppressCellSelection","isSuppressMultiSort","suppressMultiSort","multiSortKey","groupSuppressAutoColumn","pivotSuppressAutoColumn","suppressDragLeaveHidesColumns","isSuppressScrollOnNewData","suppressScrollOnNewData","rowDragManaged","isSuppressMoveWhenRowDragging","enableMultiRowDragging","domLayout","validLayouts","isSuppressHorizontalScroll","suppressHorizontalScroll","isSuppressMaxRenderedRowRestriction","suppressMaxRenderedRowRestriction","isExcludeChildrenWhenTreeDataFiltering","excludeChildrenWhenTreeDataFiltering","isAlwaysShowHorizontalScroll","alwaysShowHorizontalScroll","isAlwaysShowVerticalScroll","alwaysShowVerticalScroll","isDebounceVerticalScrollbar","debounceVerticalScrollbar","isSuppressLoadingOverlay","suppressLoadingOverlay","isSuppressNoRowsOverlay","suppressNoRowsOverlay","suppressFieldDotNotation","getPinnedTopRowData","pinnedTopRowData","getPinnedBottomRowData","pinnedBottomRowData","isFunctionsPassive","functionsPassive","isSuppressChangeDetection","suppressChangeDetection","isSuppressAnimationFrame","suppressAnimationFrame","getQuickFilterText","isCacheQuickFilter","cacheQuickFilter","isEnterMovesDownAfterEdit","enterMovesDownAfterEdit","isEnterMovesDown","enterMovesDown","isUndoRedoCellEditing","undoRedoCellEditing","getUndoRedoCellEditingLimit","undoRedoCellEditingLimit","getRowStyle","rowStyle","getRowClass","rowClass","getRowStyleFunc","getRowClassFunc","rowClassRules","getServerSideStoreType","serverSideStoreType","getServerSideStoreParamsFunc","getServerSideStoreParams","getCreateChartContainerFunc","createChartContainer","getPopupParent","popupParent","getBlockLoadDebounceMillis","blockLoadDebounceMillis","getPostProcessPopupFunc","postProcessPopup","getPaginationNumberFormatterFunc","paginationNumberFormatter","getChildCountFunc","getChildCount","getIsApplyServerSideTransactionFunc","isApplyServerSideTransaction","getDefaultGroupSortComparator","defaultGroupSortComparator","getFullWidthCellRendererParams","fullWidthCellRendererParams","embedFullWidthRows","deprecatedEmbedFullWidthRows","isDetailRowAutoHeight","detailRowAutoHeight","getBusinessKeyForNodeFunc","getBusinessKeyForNode","isImmutableData","immutableData","isEnsureDomOrder","isEnableCharts","enableCharts","GridChartsModule","colResizeDefault","isSingleClickEdit","singleClickEdit","isSuppressClickEdit","suppressClickEdit","isStopEditingWhenCellsLoseFocus","stopEditingWhenCellsLoseFocus","getGroupDefaultExpanded","getMaxConcurrentDatasourceRequests","maxConcurrentDatasourceRequests","getMaxBlocksInCache","maxBlocksInCache","getCacheOverflowSize","cacheOverflowSize","getPaginationPageSize","isPaginateChildRows","shouldPaginate","paginateChildRows","getCacheBlockSize","cacheBlockSize","getInfiniteInitialRowCount","infiniteInitialRowCount","isPurgeClosedRowNodes","purgeClosedRowNodes","isSuppressPaginationPanel","suppressPaginationPanel","groupUseEntireRow","enableRtl","getAutoGroupColumnDef","getRowGroupPanelShow","rowGroupPanelShow","getPivotPanelShow","pivotPanelShow","isAngularCompileRows","angularCompileRows","isAngularCompileFilters","angularCompileFilters","isDebug","debug","columnTypes","getDatasource","datasource","getViewportDatasource","viewportDatasource","getServerSideDatasource","serverSideDatasource","isAccentedSort","accentedSort","enableBrowserTooltips","isEnableCellExpressions","enableCellExpressions","enableGroupEdit","isSuppressMiddleClickScrolls","suppressMiddleClickScrolls","isPreventDefaultOnContextMenu","preventDefaultOnContextMenu","isSuppressPreventDefaultOnMouseWheel","suppressPreventDefaultOnMouseWheel","isSuppressContextMenu","suppressContextMenu","isAllowContextMenuWithControlKey","allowContextMenuWithControlKey","isSuppressCopyRowsToClipboard","suppressCopyRowsToClipboard","isCopyHeadersToClipboard","copyHeadersToClipboard","isSuppressClipboardPaste","isSuppressLastEmptyLineOnPaste","suppressLastEmptyLineOnPaste","isPagination","pagination","isSuppressEnterpriseResetOnNewColumns","suppressEnterpriseResetOnNewColumns","getProcessDataFromClipboardFunc","processDataFromClipboard","getAsyncTransactionWaitMillis","asyncTransactionWaitMillis","isSuppressMovableColumns","suppressMovableColumns","isAnimateRows","animateRows","isSuppressColumnMoveAnimation","suppressColumnMoveAnimation","suppressAggFuncInHeader","isSuppressAggAtRootLevel","suppressAggAtRootLevel","isSuppressAggFilteredOnly","suppressAggFilteredOnly","isShowOpenedGroup","showOpenedGroup","enableRangeSelection","enableRangeHandle","enableFillHandle","getFillHandleDirection","fillHandleDirection","getFillOperation","fillOperation","isSuppressMultiRangeSelection","suppressMultiRangeSelection","isPaginationAutoPageSize","paginationAutoPageSize","isRememberGroupStateWhenNewData","rememberGroupStateWhenNewData","getAggFuncs","aggFuncs","getSortingOrder","sortingOrder","getAlignedGrids","alignedGrids","isMasterDetail","masterDetail","MasterDetailModule","isKeepDetailRows","keepDetailRows","getKeepDetailRowsCount","keepDetailRowsCount","getIsRowMasterFunc","isRowMaster","isRowSelectable","getGroupRowRendererParams","overlayNoRowsTemplate","isSuppressAutoSize","suppressAutoSize","isEnableCellTextSelection","suppressParentsInRowNodes","isSuppressClipboardApi","suppressClipboardApi","isFunctionsReadOnly","functionsReadOnly","isFloatingFilter","isEnableCellTextSelect","isEnableOldSetFilterModel","enableOldSetFilterModel","defaultColGroupDef","getDefaultExportParams","defaultExportParams","defaultCsvExportParams","defaultExcelExportParams","isSuppressCsvExport","suppressCsvExport","isAllowShowChangeAfterFilter","allowShowChangeAfterFilter","isSuppressExcelExport","suppressExcelExport","suppressMakeColumnVisibleAfterUnGroup","getDataPathFunc","getDataPath","getIsServerSideGroupFunc","isServerSideGroup","getIsServerSideGroupOpenByDefaultFunc","isServerSideGroupOpenByDefault","getIsGroupOpenByDefaultFunc","isGroupOpenByDefault","getServerSideGroupKeyFunc","getServerSideGroupKey","getGroupRowAggNodesFunc","groupRowAggNodes","getContextMenuItemsFunc","getContextMenuItems","getMainMenuItemsFunc","getMainMenuItems","getNavigateToNextHeaderFunc","navigateToNextHeader","getTabToNextHeaderFunc","tabToNextHeader","getNavigateToNextCellFunc","navigateToNextCell","getTabToNextCellFunc","tabToNextCell","isValueCache","isValueCacheNeverExpires","valueCacheNeverExpires","isDeltaSort","deltaSort","isAggregateOnlyChangedColumns","aggregateOnlyChangedColumns","processSecondaryColDef","processSecondaryColGroupDef","getSendToClipboardFunc","sendToClipboard","getProcessRowPostCreateFunc","processRowPostCreate","getProcessCellForClipboardFunc","processCellForClipboard","getProcessHeaderForClipboardFunc","processHeaderForClipboard","getProcessCellFromClipboardFunc","processCellFromClipboard","getViewportRowModelPageSize","viewportRowModelPageSize","getViewportRowModelBufferSize","viewportRowModelBufferSize","isServerSideSortingAlwaysResets","serverSideSortingAlwaysResets","isServerSideFilteringAlwaysResets","serverSideFilteringAlwaysResets","getPostSortFunc","postSort","getChartToolbarItemsFunc","getChartToolbarItems","getChartThemeOverrides","chartThemeOverrides","getCustomChartThemes","customChartThemes","getChartThemes","chartThemes","getProcessChartOptionsFunc","processChartOptions","getClipboardDeliminator","clipboardDeliminator","force","gridOptionsNoType","skipHeaderOnAutoSize","getAutoSizePadding","autoSizePadding","getHeaderHeight","getFromTheme","getFloatingFiltersHeight","floatingFiltersHeight","getGroupHeaderHeight","groupHeaderHeight","getPivotHeaderHeight","pivotHeaderHeight","getPivotGroupHeaderHeight","pivotGroupHeaderHeight","isExternalFilterPresent","doesExternalFilterPass","isSuppressModelUpdateAfterUpdateTransaction","suppressModelUpdateAfterUpdateTransaction","MIN_COL_WIDTH","measuredMin","colWidth","getRowBuffer","rowBuffer","getRowBufferInPixels","rowsToBuffer","getRowHeightAsNumber","scrollbarWidth","useGridOptions","rowDeselection","checkRenamedProperty","oldProp","newProp","immutableColumns","deltaColumnMode","groupRowInnerRenderer","groupRowInnerRendererParams","groupRowInnerRendererFramework","innerRenderer","innerRendererParams","innerRendererFramework","detailCellRendererParams","stopEditingWhenGridLosesFocus","treeDataViolations","callbackMethodName","getDefaultRowHeight","getRowHeightForNode","allowEstimate","getRowHeight","detailRowHeight","minRowHeight","autoHeightCalculator","getPreferredHeightForRow","isDynamicRowHeight","getListItemHeight","chartMenuPanelWidth","sassVariableName","getSassVariable","PROP_HEADER_HEIGHT","PROP_GROUP_REMOVE_SINGLE_CHILDREN","PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN","PROP_PIVOT_HEADER_HEIGHT","PROP_SUPPRESS_CLIPBOARD_PASTE","PROP_GROUP_HEADER_HEIGHT","PROP_PIVOT_GROUP_HEADER_HEIGHT","PROP_NAVIGATE_TO_NEXT_CELL","PROP_TAB_TO_NEXT_CELL","PROP_NAVIGATE_TO_NEXT_HEADER","PROP_TAB_TO_NEXT_HEADER","PROP_IS_EXTERNAL_FILTER_PRESENT","PROP_DOES_EXTERNAL_FILTER_PASS","PROP_FLOATING_FILTERS_HEIGHT","PROP_SUPPRESS_ROW_CLICK_SELECTION","PROP_SUPPRESS_ROW_DRAG","PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG","PROP_GET_ROW_CLASS","PROP_GET_ROW_STYLE","PROP_GET_ROW_HEIGHT","PROP_POPUP_PARENT","PROP_FILL_HANDLE_DIRECTION","PROP_GROUP_ROW_AGG_NODES","PROP_GET_BUSINESS_KEY_FOR_NODE","PROP_GET_CHILD_COUNT","PROP_PROCESS_ROW_POST_CREATE","PROP_GET_ROW_NODE_ID","PROP_IS_FULL_WIDTH_CELL","PROP_IS_ROW_SELECTABLE","PROP_IS_ROW_MASTER","PROP_POST_SORT","PROP_GET_DOCUMENT","PROP_POST_PROCESS_POPUP","PROP_DEFAULT_GROUP_SORT_COMPARATOR","PROP_PAGINATION_NUMBER_FORMATTER","PROP_GET_CONTEXT_MENU_ITEMS","PROP_GET_MAIN_MENU_ITEMS","PROP_PROCESS_CELL_FOR_CLIPBOARD","PROP_PROCESS_CELL_FROM_CLIPBOARD","PROP_SEND_TO_CLIPBOARD","PROP_PROCESS_TO_SECONDARY_COLDEF","PROP_PROCESS_SECONDARY_COL_GROUP_DEF","PROP_PROCESS_CHART_OPTIONS","PROP_GET_CHART_TOOLBAR_ITEMS","PROP_GET_SERVER_SIDE_STORE_PARAMS","PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT","PROP_IS_APPLY_SERVER_SIDE_TRANSACTION","PROP_IS_SERVER_SIDE_GROUP","PROP_GET_SERVER_SIDE_GROUP_KEY","ChangedPath","keepingColumns","rootNode","nodeIdsToColumns","mapToItems","pathRoot","setInactive","isActive","depthFirstSearchChangedPath","pathItem","depthFirstSearchEverything","traverseEverything","forEachChangedNodeDepthFirst","traverseLeafNodes","executeFromRootNode","createPathItems","newEntryCount","newEntry","populateColumnsMap","linkPathItems","thisItem","parentItem","addParentNode","canSkip","getValueColumnsForNode","colsForThisNode","getNotValueColumnsForNode","__extends$E","__decorate$A","__param$4","SelectionController","onRowSelected","selectedNodes","getSelectedRows","removeGroupsFromSelection","changedPath","clientSideRowModel","getRootNode","getNodeForIdIfSelected","rowNodeToKeepSelected","groupsToRefresh","otherRowNode","syncInOldRowNode","syncInNewRowNode","oldNodeHasDifferentId","oldNodeSelected","getBestCostNodeSelection","topLevelNodes","getTopLevelNodes","traverse","setRowModel","nodeId","deselectAllRowNodes","justFiltered","rowModelClientSide","forEachNodeAfterFilter","selectAllRowNodes","selectNode","tryMulti","deselectIndex","deselectNode","selectIndex","__decorate$B","ColumnApi","isPinning","getAllColumns","getAllDisplayedVirtualColumns","setColumnWidth","getLeftDisplayedColumnGroups","getCenterDisplayedColumnGroups","getRightDisplayedColumnGroups","getAllDisplayedColumnGroups","getPrimaryColumns","cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid","hideColumns","hideColumn","columnState","setColumnState","getState","resetState","getAggregationColumns","removeAggregationColumn","removeAggregationColumns","addAggregationColumn","addAggregationColumns","setColumnAggFunction","getDisplayNameForCol","__assign$3","AngularRowUtils","createChildScopeOrNull","parentScope","newChildScope","$new","scopeDestroyFunc","__extends$F","FullWidthRenderers","FullWidthLoading","FullWidthGroup","FullWidthDetail","FullWidthKeys","FullWidth","instanceIdSequence","RowController","animateIn","useAnimationFrameForCreate","printLayout","allRowComps","centerCols","leftCols","rightCols","lastMouseDownOnDragger","updateColumnListsPending","rowIsEven","paginationPage","getCurrentPage","setAnimateFlags","rowFocused","isRowFocused","setupAngular1Scope","rowLevel","rowCssClassCalculator","calculateRowLevel","setRowType","updateColumnLists","addListeners","slideRowIn","onTopChanged","fadeRowIn","rowComp","setLeftRowComp","leftRowComp","setRightRowComp","rightRowComp","setCenterRowComp","centerRowComp","setFullWidthRowComp","fullWidthRowComp","getColsForRowComp","getScope","isPrintLayout","scopeResult","getCellForCol","cellComp","getRenderedCellForColumn","executeProcessRowPostCreateFunc","eRow","ePinnedLeftRow","ePinnedRightRow","addRenderedRowListener","isStub","stub","isDetailCell","doingMasterDetail","isGroupRow","isFullWidthGroup","rowType","Normal","isFullWidth","noAnimation","updateColumnListsImpl","taskQueue","createTask","onColumnChanged","oldRowTopExists","isEditing","editingRow","stopRowEditing","getRowType","refreshFullWidth","tryRefresh","getFullWidthRowComp","createFullWidthParams","refreshSucceeded","normalSuccess","bodySuccess","leftSuccess","rightSuccess","allFullWidthRowsRefreshed","onRowHeightChanged","onRowIndexChanged","updateExpandedCss","onRowNodeDataChanged","onRowNodeCellChanged","onRowNodeHighlightChanged","onRowNodeDraggingChanged","onUiLevelChanged","onPaginationPixelOffsetChanged","onDisplayedColumnsChanged","onVirtualColumnsChanged","onCellFocusChanged","onPaginationChanged","onModelUpdated","onColumnMoved","addListenersForCellComps","forEachCellComp","onCellChanged","refreshCell","suppressFlash","postProcessCss","postProcessStylesFromGridOptions","postProcessClassesFromGridOptions","postProcessRowClassRules","postProcessRowDragging","getRowPosition","onKeyboardNavigate","currentFullWidthComp","currentFullWidthContainer","isFullWidthContainerFocused","lastFocusedCell","getFocusedCell","cellPosition","nextEl","onFullWidthRowFocused","isFocused","preventScroll","destroyCells","onMouseEvent","onRowDblClick","onRowClick","onRowMouseDown","createRowEvent","domEvent","createRowEventWithSource","agEvent","setFocusedCell","stop","multiSelectKeyPressed","shiftKeyPressed","multiSelectOnClick","rowDeselectionWithCtrl","setupDetailRowAutoHeight","eDetailGui","checkRowSizeFunc","updateRowHeightFunc","serverSideRowModel","resizeObserverDestroyFunc","resizeObserverService","observeResize","$scope","$compile","eParentOfValue","registerRowDragger","rowDraggerElement","addFullWidthRowDragging","newLevel","classToAdd_1","classToRemove_1","isFirstRowOnPage","isLastRowOnPage","newFirst","newLast","firstRowOnPage","lastRowOnPage","renderedCell","setEditingRow","startRowEditing","sourceRenderedCell","startEditingIfEnabled","processClassesFromGridOptions","classStr","processRowClassRules","rowStyles","processStylesFromGridOptions","getInitialRowTopStyle","pixels","roundRowTopToBounds","afterPaginationPixels","applyPaginationOffset","afterScalingPixels","rowContainerHeightService","getRealPixelPosition","getRowBusinessKey","businessKeyForNodeFunc","getInitialRowClasses","fullWidthRow","preProcessStylesFromGridOptions","rowStyleFuncResult","rowStyleFunc","refreshAriaLabel","isUseAnimationFrameForCreate","addHoverFunctionality","getScrollFeature","getVScrollPosition","minPixel","maxPixel","heightPx_1","destroyFirstPass","setupRemoveAnimation","rowStillVisibleJustNotInViewport","destroySecondPass","currentPage","topPx","pixelOffset","getPixelOffset","multiplier","topPx_1","suppressRowTransform_1","getRowNode","cellComps","getCellComp","spannedCellComps","getCellCompSpanned","updateRowIndexes","rowIndexStr","rowIsEvenChanged","headerNavigationService","getPinnedLeftRowElement","getPinnedRightRowElement","getBodyRowElement","getFullWidthRowElement","DOM_DATA_KEY_RENDERED_ROW","SelectionHandleType","CellRangeType","HeaderRowType","__extends$G","PopupEditorWrapper","getGuiCalledOnChild","DOM_KEY_POPUP_EDITOR_WRAPPER","isCancelBeforeStart","isCancelAfterEnd","getPopupPosition","__extends$H","__decorate$C","DndSourceComp","eCell","checkVisibility","dragEvent","providedOnRowDrag","dndSourceOnRowDrag","dataTransfer","setDragImage","defaultOnRowDrag","jsonData","__extends$I","__assign$4","CSS_CELL","CSS_CELL_VALUE","CSS_AUTO_HEIGHT","CSS_RANGE_TOP","CSS_RANGE_RIGHT","CSS_RANGE_BOTTOM","CSS_RANGE_LEFT","CSS_CELL_FOCUS","CSS_FIRST_RIGHT_PINNED","CSS_LAST_LEFT_PINNED","CSS_NOT_INLINE_EDITING","CSS_INLINE_EDITING","CSS_POPUP_EDITING","CSS_RANGE_SELECTED","CSS_COLUMN_HOVER","CSS_CELL_WRAP_TEXT","CSS_RANGE_CHART","CSS_RANGE_SINGLE_CELL","CSS_RANGE_CHART_CATEGORY","CSS_RANGE_HANDLE","CellComp","autoHeightCell","hasChartRange","editingCell","suppressRefreshCell","tooltipFeatureEnabled","cellEditorVersion","cellRendererVersion","createGridCellVo","rangeSelectionEnabled","rangeController","cellFocused","isCellFocused","rangeCount","getCellRangeCount","getHasChartRange","getValueAndFormat","setUsingWrapper","chooseCellRenderer","setupColSpan","getCreateTemplate","afterAttached","unselectable","templateParts","getCellWidth","modifyLeftForPrintLayout","getCellLeft","valueToRender","getInitialValueToRender","valueSanitised","getToolTip","tooltipSanitised","colIdSanitised","stylesFromColDef","preProcessStylesFromColDef","getInitialCssClasses","stylesForRowSpanning","getStylesForRowSpanning","colIdxSanitised","usingWrapper","getCellWrapperString","singleRowHeight","totalRowHeight","addDomData","populateTemplate","createCellRendererInstance","angular1Compile","refreshHandle","createTooltipFeatureIfNeeded","onColumnHover","isHovered","columnHoverService","eventImpactsThisCell","mostLeftCol","colsSpanning","onFlashCells","cellId","cellPositionUtils","createId","shouldFlash","animateCell","getComponentHolder","onDisplayColumnsChanged","onWidthChanged","getColSpanningList","onLeftChanged","refreshAriaIndex","colIdx","doingFocusCss","preProcessClassesFromColDef","preProcessCellClassRules","getInitialRangeClasses","wrapText","usingCellRenderer","cellRendererGui","templateUrl","templateService","getTemplate","getValueToUse","getRenderedRow","getCellRenderer","getCellEditor","onNewColumnsLoaded","postProcessWrapText","postProcessCellClassRules","suppressCellFlash","noValueProvided","forceRefresh","valuesDifferent","valuesAreEqual","dataNeedsUpdating","cellRendererRefreshed","attemptCellRendererRefresh","replaceContentsAfterRefresh","processingFilterChange","flashCell","postProcessStylesFromColDef","postProcessClassesFromColDef","updateAngular1ScopeAndCompile","refreshToolTip","delays","flashDelay","fadeDelay","cssName","fullName","animationFullName","transition","eCellValue","putDataIntoCellAfterRefresh","childElementCount","compiledElement_1","processStylesFromColDef","cssToUse","cellStyleParams","cellStyleFunc","processClassesFromColDef","onApplicableClass","cellClassParams","stylingService","processStaticCellClasses","createCellRendererParams","finalParams","newTooltip","hasNewTooltip","equalsMethod","tooltipValueGetter","getTooltipText","escape","processCellClassRules","onNotApplicableClass","processClassRules","cellClassRules","includeSelectionComponent","includeRowDraggingComponent","includeDndSourceComponent","cbSelectionIsFunc","rowDraggableIsFunc","dndSourceIsFunc","enableTextSelection","CELL_RENDERER_TYPE_PINNED","CELL_RENDERER_TYPE_NORMAL","useTaskService","afterCellRendererCreated","cellRendererTypeNormal","createCellRendererFunc","componentPromise","cellRendererNotRequired","addRowDragging","addRowCompListener","lockedClosedGroup","isOpenGroup","groupFootersEnabled","groupAlwaysShowAggData","ignoreAggData","onMouseOut","onMouseOver","dispatchCellContextMenuEvent","cellContextMenuEvent","onCellContextMenu","cellMouseOutEvent","clearMouseOver","cellMouseOverEvent","setMouseOver","cellDoubleClickedEvent","editOnDoubleClick","startRowOrCellEdit","afterCellEditorCreated","createCellEditorParams","createCellEditor","cellEditorAsync","focusCell","cellEditorPromise","cellEditorComp","popupEditorWrapper","versionMismatch","cellEditorNotNeeded","editingCancelledByUserComp","cellEditorInPopup","setInlineEditingClass","addPopupCellEditor","addInCellEditor","clearCellElement","ePopupGui","useModelPopup","keepWithinBounds","positionCallback","positionPopupUnderComponent","positionPopupOverComponent","modal","closeOnEsc","closedCallback","onPopupEditorClosed","anchorToElement","hideEditorPopup","stopRowOrCellEdit","editingInline","popupEditorShowing","stopEditingAndFocus","suppressNavigateAfterEdit","navigateAfterEdit","valueParser","forceBrowserFocus","setFocusInOnEditor","onEnterKeyDown","onF2KeyDown","onEscapeKeyDown","onBackspaceOrDeleteKeyPressed","onNavigationKeyPressed","setFocusOutOnEditor","onShiftRangeSelect","endCell","extendLatestRangeInDirection","ensureCellVisible","fullRowEdit","onKeyPress","eventTarget","eventOnChildComponent","pressedChar","onSpaceKeyPressed","currentSelection","newSelection","isRightClickInExistingRange","getCellRanges","containsWidget","thisCell","extendLatestRangeToCell","ctrlKeyPressed","setRangeToCell","cellInRange","isCellInAnyRange","getCellPosition","isDoubleClickOnIPad","nowMillis","lastIPadMouseClickEvent","cellClickedEvent","editOnSingleClick","getParentRow","setParentRow","eParentRow","detach","cancelTask","selectionHandle","leftPosition","getRangeBorders","leftCol","rightCol","thisCol","ranges","isCellInSpecificRange","startRow","getRangeStartRow","endRow","getRangeEndRow","rowPositionUtils","sameRow","classes","isSingleCell","borders","onCellFocused","onRangeSelectionChanged","newRangeCount","updateRangeBorders","cellRanges","DIMENSION","VALUE","shouldHaveSelectionHandle","rangesLen","cellRange","fillHandleIsAvailable","hasCategoryRange","isCategoryCell","isContiguousRange","isBottomRightCell","addSelectionHandle","cellRangeType","selectionHandleFill","FILL","RANGE","selectionHandleFactory","createSelectionHandle","updateRangeBordersIfRangeCount","rangeBorders","isTop","isRight","isBottom","isLeft","onFirstRightPinnedChanged","onLastLeftPinnedChanged","refreshShouldDestroy","isUsingWrapper","isIncludingRowDragging","isIncludingDndSource","isIncludingSelection","eCellWrapper","describedByIds","addDndSource","addSelectionCheckbox","customElement","clientSideRowModelActive","rowDraggingComp","dndSourceComp","cbSelectionComponent","visibleFunc","DOM_DATA_KEY_CELL_COMP","isMoreThanOneCell","newValueExists","userWantsToCancel","editingStoppedEvent","__extends$J","__assign$5","__decorate$D","__param$5","__spreadArrays$4","RowRenderer","destroyFuncsForColumnListeners","rowConsByRowIndex","zombieRowCons","allRowCons","topRowCons","bottomRowCons","refreshInProgress","whenReady","onPinnedRowDataChanged","redrawAfterScroll","onDomLayoutChanged","registerCellEventListeners","redrawAfterModelUpdate","getRowCons","updateAllRowCons","forEachRowComp","refreshListenersToColumnsForCellComps","removeGridColumnListeners","forEachCellWithThisCol","leftChangedListener","widthChangedListener","firstRightPinnedChangedListener","lastLeftPinnedChangedListener","destroyRows","datasourceChanged","firstRenderedRow","lastRenderedRow","rowIndexesToRemove","removeRowComps","recycleRows","keepRenderedRows","animate","newPage","onlyBody","getAllCellsForColumn","eCells","refreshFloatingRowComps","refreshFloatingRows","pinnedRowModel","getTopRowCons","getBottomRowCons","rowComps","rowCon","getRenderedIndexesForRowNodes","renderedRow","redrawRows","partialRefresh","indexesToRemove","getCellToRestoreFocusToAfterRefresh","focusedCell","suppressKeepFocus","getFocusCellToUseAfterRefresh","elementIsNotACellDev","getLockOnRefresh","updateContainerHeights","scrollToTopIfNewData","rowsToRecycle","removeAllRowComps","isFocusedCellGettingRecycled","rowIndexEqual","pinnedEqual","focusedCellRecycled","redraw","dispatchDisplayedRowsChanged","restoreFocusedCell","releaseLockOnRefresh","scrollToTop","suppressScrollToTop","setModelHeight","containerHeight","flashCells","forEachCellCompFiltered","refreshCellParams","getCellRendererInstances","getCellEditorInstances","getEditingCells","rowIdsMap","colIdsMap","normal","processRow","floating","excludeColFromRefresh","stubNodeIndexes","stubNode","nodesByIdMap","rowsToRemove","indexToRemove","removeRowCompsNotToDraw","indexesToDraw","indexesToDrawMap","existingIndexes","indexesNotToDraw","calculateIndexesToDraw","checkRowToDraw","indexStr","doNotUnVirtualiseRow","afterScroll","updateOffset","workOutFirstAndLastRowsToRender","createOrUpdateRowCon","useAnimationFrame","addDestroyTask","destroyRowCons","checkAngularCompile","updateRowCount","pinningLeft","pinningRight","redrawFullWidthEmbeddedRows","refreshFullWidthRows","rowNodesToRefresh","selectivelyRefreshing","idsToRefresh","fullWidthRowsRefreshed","creatingNewRowCon","createRowCon","rowConsMap","executeInAWhileFuncs","$apply","isRowsToRender","bufferPixels","rowHeightsChanged","firstPixel","lastPixel","paginationOffset","getCurrentPagePixelRange","pageFirstPixel","pageLastPixel","divStretchOffset","getDivStretchOffset","bodyVRange","bodyTopPixel","bodyBottomPixel","ensureAllRowsInRangeHaveHeightsCalculated","firstRowIndex","getRowIndexAtPixel","lastRowIndex","pageFirstRow","pageLastRow","rowLayoutNormal","suppressRowCountRestriction","rowBufferMaxSize","firstDiffers","lastDiffers","topPixel","bottomPixel","ensureRowHeightsValid","getFirstVirtualRenderedRow","getLastVirtualRenderedRow","REMOVE_ROW","KEEP_ROW","rowHasFocus","isRowNodeFocused","rowIsEditing","rowIsDetail","mightWantToKeepRow","rowNodePresent","isRowPresent","getRenderedNodes","renderedRows","currentCell","allowUserOverride","nextCell","hitEdgeOfGrid","isValidNavigateCell","getLastCellOfColSpan","cellNavigationService","getNextCellToFocus","previousCellPosition","nextCellPosition","userCell","headerLen","focusHeaderPosition","normalisedPosition","getNormalisedPosition","focusPosition","tryToFocusFullWidthRow","getComponentForCell","backwards","getRowConByPosition","colSpanningList","gridCell","ensureIndexVisible","ensureColumnVisible","horizontallyScrollHeaderCenterAndFloatingCenter","startEditingCell","rowPosition","rowComponent","cellComponent","gridRow","previousRenderedCell","movedToNextCell","tabToNextCellCommon","focusNextGridCoreContainer","cellOrRowComp","previousCellOrRow","moveToNextEditingRow","moveToNextEditingCell","moveToNextCellNotEditing","getFocusedHeader","nextRenderedCell","findNextCellToFocusOn","foundCell","previousCellComp","cellPos","nextCellComp","previousPos","nextPos","previousEditable","nextEditable","rowsMatch","pRow","nRow","startEditing","getNextTabbedCell","cellIsEditable","lookupRowNodeForCell","getPinnedTopRow","getPinnedBottomRow","isRangeInRenderedViewport","startIndex","endIndex","parentClosed","blockAfterViewport","blockBeforeViewport","blockInsideViewport","CssClassApplier","addHeaderClassesFromColDef","eHeaderCell","addColumnClassesFromCollDef","addToolPanelClassesFromColDef","toolPanelClass","classesOrFunc","classToUse","headerClassFunc","cssClassItem","__extends$K","__decorate$E","HoverFeature","addMouseHoverListeners","__extends$L","__decorate$F","SetLeftFeature","ariaEl","setColsSpanning","getColumnOrGroup","setLeftFirstTime","suppressMoveAnimation","oldLeftExists","animateColumnMove","animateInLeft","colOrGroup","oldActualLeft","actualLeft","indexColumn","__extends$M","__decorate$G","AgAbstractLabel","labelSeparator","labelAlignment","labelWidth","setLabelSeparator","setLabelWidth","setLabelAlignment","refreshLabel","getLabelId","getLabel","alignment","__extends$N","AgAbstractField","callbackFn","EVENT_CHANGED","getWidth","setWidth","isDisabled","__extends$O","__decorate$H","AgAbstractInputField","inputType","displayFieldTag","setInputType","eWrapper","addInputListeners","setInputWidth","setInputName","__extends$P","AgCheckbox","onCheckboxClick","toggle","getNextValue","isReadOnly","setReadOnly","dispatchChange","refreshSelectedClass","checkboxChangedEvent","__extends$Q","__decorate$I","SelectAllFeature","cbSelectAll","cbSelectAllVisible","processingEventFromCheckbox","filteredOnly","headerCheckboxSelectionFilteredOnly","showOrHideSelectAll","onModelChanged","onCbSelectAll","refreshSelectAllLabel","isCheckboxSelection","checkRightRowModelType","updateStateOfCheckbox","refreshHeaderAriaDescribedBy","isSelectAllVisible","parentHeader","parentHeaderGui","cbSelectAllId","describedByIdsHasSelectAllFeature","getNextCheckboxState","selectionCount","notSelected","getSelectionCount","allSelected","ariaStatus","selectedCount","notSelectedCount","rowModelMatches","headerCheckboxSelection","__extends$R","AbstractHeaderWrapper","__extends$S","__decorate$J","HeaderWrapperComp","headerCompVersion","refreshFunctions","updateState","setupWidth","setupMovingCss","setupTooltip","setupResize","setupMenuClass","setupSortableClass","addColumnHoverListener","addActiveHeaderMouseListeners","addAttributes","onColumnValueChanged","onColumnRowGroupChanged","onColumnPivotChanged","appendHeaderComp","checkDisplayName","calculateDisplayName","draggable","workOutDraggable","colDefVersionNow","refreshHeaderComp","headerComp","newHeaderCompConfigured","colDefHeaderComponent","colDefHeaderComponentFramework","headerComponentFramework","headerCompRefreshed","attemptHeaderCompRefresh","dragSourceIsMissing","moveDragSource","dragSourceNeedsRemoving","attachDraggingToHeaderComp","destroyHeaderComp","headerCompGui","removeMoveDragSource","createParams","setActiveHeader","setFocusedHeader","getRowIndex","menuEnabled","updateSortableCssClass","updateAriaSort","afterHeaderCompCreated","isMenuEnabled","suppressMenu","showColumnMenu","showColumnMenuAfterButtonClick","setSortForColumn","eGridHeader","onColumnMovingChanged","colCanMove","suppressMovable","HeaderCell","createDragItem","visibleState","canResize","canAutosize","destroyResizeFuncs","addResize","eResize","finishedWithResizeFunc","horizontalResizeService","addResizeBar","eResizeBar","onResizeStart","onResizing","onResizeEnd","skipHeaderOnAutoSize_1","autoSizeColListener_1","touchListener_1","removeResize","resize","autoSize","propertyChange","resizeAmount","resizeAmountNormalised","normaliseResizeAmount","resizeStartWidth","resizeWithShiftKey","headerTooltip","onColumnWidthChanged","onMenuVisible","dragChange","__extends$T","__decorate$K","HeaderGroupWrapperComp","removeChildListenersFuncs","appendHeaderGroupComp","addClasses","activeEl","wrapperHasFocus","refreshExpanded","headerGroupComp","setupMove","eHeaderGroup","isSuppressMoving","getDragItemForGroup","allColumnsOriginalOrder","allColumnsCurrentOrder","childSuppressesMoving","addListenersToChildrenColumns","onDisplayedChildrenChanged","removeListenersOnChildrenColumns","eHeaderCellResize","resizeCols","resizeRatios","takeFromGroup","takeFromLeafCols","resizeTakeFromCols","resizeTakeFromStartWidth","resizeTakeFromRatios","normaliseDragChange","__extends$U","__decorate$L","ReadOnlyFloatingFilter","eFloatingFilterText","parentModel","getModelAsString","modelAsString","FloatingFilterMapper","getFloatingFilterType","filterToFloatingFilterMapping","agSetColumnFilter","multi","agMultiColumnFilter","__extends$V","__decorate$M","FloatingFilterWrapper","setupFloatingFilter","setupLeftPositioning","setupColumnHover","eButtonShowMainFilter","showParentFilter","nextFocusableEl","focusInto","floatingFilterCompPromise","getFloatingFilterInstance","compInstance","setupWithFloatingFilter","setupSyncWithFilter","setLeftFeature","syncWithFilter","currentParentModel","suppressFilterButton","eFloatingFilterBody","floatingFilterComp","disposeFunc","floatingFilterCompUi","eButtonWrapper","getFilterComponent","createIfDoesNotExist","getDefaultFloatingFilterType","defaultFloatingFilterType","setFilterModuleLoaded","SetFilterModule","createFilterParams","finalFilterParams","floatingFilterComponentParams","__extends$W","__decorate$N","DropType","HeaderRowComp","headerComps","niceClassName","forEachHeaderElement","destroyAllChildComponents","idsOfAllChildren","destroyChildComponents","idsToDestroy","childHeaderWrapper","groupHeight","sizes","numberOfFloating","numberOfNonGroups","numberOfGroups","onColumnResized","getWidthForRow","centerRow","getColumnsInViewport","getColumnsInViewportPrintLayout","getColumnsInViewportNormalLayout","actualDepth","getActualDepth","FLOATING_FILTER","compIdsToRemove","compIdsWanted","idOfChild","eParentContainer","previousComp","previousCompForOldColumn","createHeaderComp","isFocusedAndDisplayed","isHeaderWrapperFocused","focusedAndDisplayedComps","correctChildOrder","columnGroupChild","COLUMN_GROUP","getHeaderComps","__decorate$O","MoveColumnController","needToMoveLeft","needToMoveRight","centerContainer","dragCameFromToolPanel","ToolPanel","visibleState_1","hideColumnOnExit","ensureIntervalCleared","allowedCols","normaliseX","getCenterRowContainerCon","getCenterViewportScrollLeft","checkCenterForScrolling","xAdjustedForScroll","firstVisiblePixel","lastVisiblePixel","getCenterWidth","ensureIntervalStarted","fromEnter","lastDraggingEvent","mouseXNormalised","hDirectionNormalised","normaliseDirection","dragSourceType","attemptMoveColumns","calculateOldIndex","movingCols","gridCols","firstIndex","gapsExist","allMovingColumns","mouseX","draggingLeft","draggingRight","allMovingColumnsOrdered","validMoves","calculateValidMoves","firstValidMove","constrainDirection","move","isMoveBlocked","allDisplayedCols","allGridCols","movingDisplayedCols","otherDisplayedCols","otherGridCols","displayIndex","availableWidth","widthOfMovingDisplayedCols_1","leftColumn","numberComparator","displacedCol","isColumnHidden","firstDisplayIndex","movingIntervalId","intervalCount","failedMoveAttempts","moveInterval","pixelsToMove","pixelsMoved","scrollFeature","scrollHorizontally","columnsThatCanPin","pinType","__decorate$P","BodyDropPivotTarget","columnsToAggregate","columnsToGroup","columnsToPivot","clearColumnsList","dragColumns","totalColumns","__extends$X","__decorate$Q","BodyDropTarget","dropListeners","leftRowContainerCon","bottomLeftRowContainerCon","topLeftRowContainerCon","rightRowContainerCon","bottomRightRowContainerCon","topRightRowContainerCon","centerRowContainerCon","bottomCenterRowContainerCon","topCenterRowContainerCon","eSecondaryContainers","getContainerElement","moveColumnController","bodyDropPivotTarget","ColumnMove","Pivot","currentDropListener","getDropType","dropType","__extends$Y","__decorate$R","HeaderContainer","eViewport","groupsRowComps","columnsRowComp","filtersRowComp","onGridColumnsChanged","onScrollVisibilityChanged","onScrollbarWidthChanged","setupDragAndDrop","setWidthOfPinnedContainer","controller","addPaddingForScrollbar","scrollVisibleService","getRowComps","keepColumns","refreshRowComps","dropContainer","bodyDropTarget","destroyRowComps","destroyRowComp","sequence","refreshColumnGroups","groupRowCount","refreshColumns","rowIndexMismatch","COLUMN","refreshFilters","includeFloatingFilter","destroyPreviousComp","__extends$Z","__decorate$S","HeaderNavigationDirection","HeaderNavigationService","registerHeaderRoot","headerRoot","headerContainers","getHeaderContainers","getHeaderContainer","getHeaderRowType","navigateVertically","fromHeader","rowLen","isUp","nextRow","nextFocusColumn","skipColumn","currentRowType","navigateHorizontally","fromTab","nextHeader","normalisedDirection","focusedHeader","headerPositionUtils","findHeader","focusNextHeaderRow","nextRowIndex","currentIndex","nextPosition","findColAtEdgeForHeaderRow","scrollToColumn","columnToScrollTo","KeyName","NUM_PAD_DELETE","__extends$_","__decorate$T","CenterWidthFeature","centerWidth","totalWidth","__extends$$","__decorate$U","HeaderRootComp","registerHeaderRootComp","registerHeaderContainer","eHeaderContainer","eHeaderViewport","ePinnedLeftHeader","ePinnedRightHeader","onPivotModeChanged","onPinnedLeftWidthChanged","onPinnedRightWidthChanged","addPreventHeaderScroll","refreshHeader","setupHeaderHeight","headerContainer","clearFocusedHeader","setHorizontalScroll","childContainer","totalHeaderHeight","pinnedWidthService","getPinnedLeftWidth","getPinnedRightWidth","__extends$10","__assign$6","__decorate$V","FilterManager","allAdvancedFilters","activeAdvancedFilters","quickFilter","quickFilterParts","FilterManager_1","parseQuickFilter","setQuickFilterParts","setFilterModel","allPromises","modelKeys_1","filterWrapper","setModelOnFilterWrapper","filterPromise","getOrCreateFilterWrapper","getFilterModel","promiseFilter","isAdvancedFilterPresent","updateActiveFilters","resolvedPromise","updateFilterFlagInColumns","isAnyFilterPresent","isQuickFilterPresent","doAdvancedFiltersPass","filterToSkip","newFilter","parsedFilter","onAnyFilterChanged","doesRowPassOtherFilters","doesRowPassFilter","filterInstanceToSkip","doesRowPassQuickFilterNoCache","filterPart","getQuickFilterTextForColumn","doesRowPassQuickFilterCache","aggregateRowForQuickFilter","doesRowPassQuickFilter","usingCache","stringParts","QUICK_FILTER_SEPARATOR","createValueGetter","cachedFilter","putIntoGui","createFilterWrapper","createFilterInstance","doesRowPassOtherFilter","compiledElement","guiPromise","eFilterGui","guiFromFilter","atLeastOneFilterGone","oldColumn","disposeFilterWrapper","destroyFilter","__extends$11","__decorate$W","ValueService","initialised","cellExpressions","forFilter","groupDataExists","aggDataExists","filterValueGetter","executeFilterValueGetter","executeValueGetter","cellValueGetter","openedGroup","getOpenedGroup","newValueHandler","valueSetter","valueWasDifferent","setValueUsingField","valuesAreSame","fieldPieces","fieldPiece","getValueCallback","valueFromCache","otherColumn","getKeyForNode","keyCreator","__extends$12","__decorate$X","LayoutCssClasses","RowAnimationCssClasses","LayoutFeature","updateLayoutClasses","__extends$13","__decorate$Y","GridBodyScrollFeature","eBodyViewport","nextScrollTop","resetLastHorizontalScrollElementDebounced","resetLastHorizontalScrollElement","onDisplayedColumnsWidthChanged","addScrollListener","fakeHScroll","getFakeHScrollCon","getViewportElement","onCenterViewportScroll","getViewport","onFakeHorizontalScroll","onVerticalScroll","topCenterContainer","getTopCenterRowContainerCon","bottomCenterContainer","getBottomCenterRowContainerCon","headerRootComp","getHeaderRootComp","setContainerTranslateX","partner","lastHorizontalScrollElement","isControllingScroll","fakeHScrollViewport","onBodyHorizontalScroll","centerContainerViewport","eSource","shouldBlockScrollUpdate","doHorizontalScroll","setScrollTop","redrawRowsAfterScroll","schedule","onHorizontalViewportChanged","scrollTo","touchOnly","checkScrollLeft","executeAnimationFrameScroll","frameNeeded","setHorizontalScrollPosition","hScrollPosition","minScrollLeft","maxScrollLeft","setVerticalScrollPosition","vScrollPosition","getHScrollPosition","oldScrollPosition","ensureNodeVisible","getRowCount","comparatorIsAFunction","indexToSelect","isPaging","paginationPanelEnabled","goToPageWithIndex","rowGotShiftedDuringOperation","startingRowTop","startingRowHeight","rowTopPixel","rowBottomPixel","heightOffset","heightScaler","vScrollTop","vScrollBottom","viewportHeight","pxTop","getScrollPositionForPixel","pxBottom","pxMiddle","rowBelowViewport","rowAboveViewport","newScrollPosition","viewportLeftPixel","viewportRightPixel","colLeftPixel","colRightPixel","viewportScrolledPastCol","viewportScrolledBeforeCol","colToSmallForViewport","alignColToLeft","alignColToRight","setCenterViewportScrollLeft","__extends$14","__assign$7","__decorate$Z","__spreadArrays$5","RowDragFeature","isMultiRowDrag","isGridSorted","isGridFiltered","onRowGroupChanged","isSortActive","rowGroups","managedDrag","getRowNodes","isFromThisGrid","currentNode","dispatchGridEvent","onEnterOrDragging","isDropZoneWithinThisGrid","gridGui","mouseEventService","doManagedDrag","getRowIndexNumber","highlightRowAtPixel","moveRows","moveRowAndClearHighlight","lastHighlightedRowNode","getLastHighlightedRowNode","isBelow","increment","getRowNodeId_1","addIndex","getHighlightPosition","updateRowData","clearRowHighlight","rowWasMoved","ensureRowsAtPixel","clearFocusedCell","removeAllCellRanges","pixelRange","needToMoveUp","needToMoveDown","scrollVertically","addRowDropZone","processedParams","fromGrid","draggingToRowDragEvent","getRowDropZone","events","vDirectionString","yNormalised","mouseIsPastLastRow","overIndex","overNode","stopDragging","__extends$15","__decorate$_","RowContainerNames","CSS_CLASS_CELL_SELECTABLE","CSS_CLASS_FORCE_VERTICAL_SCROLL","CSS_CLASS_COLUMN_MOVING","GridBodyController","bodyScrollFeature","getBodyViewportElement","setView","eGridBody","eTop","eBottom","setCellTextSelection","addRowDragListener","setupRowAnimationCssClass","registerGridBodyController","addEventListeners","addBodyViewportListener","setFloatingHeights","disableBrowserDragging","addStopEditingWhenGridLosesFocus","setColumnMovingCss","setCellSelectableCss","show","setVerticalScrollPaddingVisible","setColumnCount","HTMLImageElement","focusOutListener","elementWithFocus","clickInsideGrid","viewports","viewport","isElementInThisGrid","getActivePopups","popup","isElementWithinCustomPopup","headerCount","modelType","setRowCount","registerBodyViewportResizeListener","setAlwaysVerticalScrollClass","isStretching","setRowAnimationCssOnBodyViewport","getGridBodyElement","contextMenuFactory","onContextMenu","getBodyClientRect","floatingTopHeight","getPinnedTopTotalHeight","floatingBottomHeight","getPinnedBottomTotalHeight","setTopHeight","setBottomHeight","setTopDisplay","setBottomDisplay","nextTimeout","removeScrollWidth","scrollWidthToRemove","bodyViewportWidth","__extends$16","__decorate$$","RowContainerEventsFeature","addMouseListeners","mockContextMenuForIPad","addKeyboardEvents","eventNames","processKeyboardEvent","processMouseEvent","isEventFromThisGrid","getRowForEvent","getRenderedCellForEvent","handleContextMenuMouseEvent","longTapListener","processCellKeyboardEvent","processFullWidthRowKeyboardEvent","gridProcessingAllowed","wasScrollKey","navigationService","handlePageScrollingKey","doGridOperations","cellKeyDownEvent","cellKeyPressEvent","onCtrlAndA","onCtrlAndC","onCtrlAndV","onCtrlAndD","undoRedoService","redo","undo","isEmptyPinnedTop","isEmptyPinnedBottom","floatingStart","floatingEnd","rowEnd","setCellRange","rowStartIndex","rowStartPinned","rowEndIndex","rowEndPinned","columnStart","columnEnd","clipboardService","copyToClipboard","ClipboardModule","pasteFromClipboard","copyRangeDown","__extends$17","__decorate$10","ViewportSizeFeature","centerContainerCon","listenForResize","onCenterViewportResized","registerViewportResizeListener","checkViewportAndScrolls","isViewportVisible","bodyHeight","updateScrollVisibleService","checkBodyHeight","updateScrollVisibleServiceImpl","horizontalScrollShowing","verticalScrollShowing","setScrollsVisible","isViewportHScrollShowing","getViewportScrollLeft","__extends$18","__decorate$11","SetPinnedLeftWidthFeature","__extends$19","__decorate$12","SetPinnedRightWidthFeature","__extends$1a","__decorate$13","SetHeightFeature","onHeightChanged","maxDivHeightScaler","getUiContainerHeight","heightString","__extends$1b","__decorate$14","DragListenerFeature","__extends$1c","__decorate$15","__spreadArrays$6","ContainerCssClasses","CENTER","FULL_WIDTH","TOP_CENTER","TOP_LEFT","TOP_RIGHT","TOP_FULL_WITH","BOTTOM_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_FULL_WITH","ViewportCssClasses","WrapperCssClasses","RowContainerController","forContainers","viewportSizeFeature","registerWithControllersService","registerCenterRowContainerCon","registerLeftRowContainerCon","registerRightRowContainerCon","registerTopCenterRowContainerCon","registerTopLeftRowContainerCon","registerTopRightRowContainerCon","registerBottomCenterRowContainerCon","registerBottomLeftRowContainerCon","registerBottomRightRowContainerCon","getViewportSizeFeature","addPreventScrollWhileDragging","allTopNoFW","allBottomNoFW","allMiddleNoFW","allNoFW","allMiddle","allCenter","allLeft","allRight","setViewportHeight","isDragging","cancelable","unsubscribeFromResize","amount","__extends$1d","__decorate$16","GRID_BODY_TEMPLATE","GridBodyComp","setHeight","AUTO_HEIGHT","NORMAL","PRINT","scroller","overflowY","addAngularApplyCheck","registerGridComp","ANIMATION_ON","ANIMATION_OFF","applyTriggered","getFloatingTopBottom","addScrollEventListener","removeScrollEventListener","ExcelFactoryMode","ClientSideRowModelSteps","LoadingType","__decorate$17","GridApi","detailGridInfoMap","destroyCalled","gridBodyComp","registerOverlayWrapperComp","overlayWrapperComp","registerGridCompController","gridCompController","registerSideBarComp","sideBarComp","infiniteRowModel","__getAlignedGridService","alignedGridsService","addDetailGridInfo","gridInfo","removeDetailGridInfo","getDetailGridInfo","forEachDetailGridInfo","getDataAsCsv","CsvExportModule","csvCreator","exportDataAsCsv","getDataAsExcel","ExcelExportModule","exportMode","excelCreator","getFactoryMode","MULTI_SHEET","exportDataAsExcel","getSheetDataForExcel","setFactoryMode","getMultipleSheetsAsExcel","exportMultipleSheetsAsExcel","setEnterpriseDatasource","setServerSideDatasource","setGridAriaProperty","eGrid","ariaProperty","setDatasource","setViewportDatasource","setRowData","transactionAndMap","immutableService","createTransactionForRowData","transaction","orderIdMap","nodeTransaction","setFloatingTopRowData","setPinnedTopRowData","setFloatingBottomRowData","setPinnedBottomRowData","getFloatingTopRowCount","getPinnedTopRowCount","getFloatingBottomRowCount","getPinnedBottomRowCount","getFloatingTopRow","getFloatingBottomRow","expireValueCache","getVerticalPixelRange","getHorizontalPixelRange","setAlwaysShowHorizontalScroll","setAlwaysShowVerticalScroll","refreshToolPanel","refreshView","refreshRows","rowDataChanged","softRefreshView","refreshGroupRows","setFunctionsReadOnly","isColumnFilterPresent","setRowNodeExpanded","onGroupExpandedOrCollapsed","deprecated_refreshFromIndex","refreshModel","MAP","refreshInMemoryRowModel","refreshClientSideRowModel","paramsStep","EVERYTHING","stepsMapped","FILTER","aggregate","AGGREGATE","SORT","PIVOT","modelParams","keepEditingRows","isAnimationFrameQueueEmpty","isQueueEmpty","getSizesForCurrentTheme","expandOrCollapseAll","getToolPanelInstance","addVirtualRowListener","suppressEvents","deselectAll","selectAllFiltered","deselectAllFiltered","recomputeAggregates","showNoRowsOverlay","isNodeSelected","getSelectedNodesById","ensureColIndexVisible","forEachLeafNode","forEachNodeAfterFilterAndSort","getFilterApiForColDef","getFilterInstance","filterComp","getFilterApi","getStatusPanel","statusBarService","getColumnDef","setSortModel","sortModel","getSortModel","filteredStates","removeRowDropZone","activeDropTarget","getRowDropZoneParams","setDomLayout","setFillHandleDirection","setGroupHeaderHeight","setFloatingFiltersHeight","setPivotGroupHeaderHeight","setIsExternalFilterPresent","isExternalFilterPresentFunc","setDoesExternalFilterPass","doesExternalFilterPassFunc","setNavigateToNextCell","navigateToNextCellFunc","setTabToNextCell","tabToNextCellFunc","setTabToNextHeader","tabToNextHeaderFunc","setNavigateToNextHeader","navigateToNextHeaderFunc","setGroupRowAggNodes","groupRowAggNodesFunc","setGetBusinessKeyForNode","setGetChildCount","setProcessRowPostCreate","processRowPostCreateFunc","setGetRowNodeId","setGetRowClass","rowClassFunc","setIsFullWidthCell","setIsRowSelectable","setIsRowMaster","isRowMasterFunc","setPostSort","postSortFunc","setGetDocument","getDocumentFunc","setGetContextMenuItems","setGetMainMenuItems","setProcessCellForClipboard","processCellForClipboardFunc","setSendToClipboard","sendToClipboardFunc","setProcessCellFromClipboard","processCellFromClipboardFunc","setProcessSecondaryColDef","processSecondaryColDefFunc","setProcessSecondaryColGroupDef","processSecondaryColGroupDefFunc","setPostProcessPopup","postProcessPopupFunc","setDefaultGroupSortComparator","defaultGroupSortComparatorFunc","setProcessChartOptions","processChartOptionsFunc","setGetChartToolbarItems","setPaginationNumberFormatter","paginationNumberFormatterFunc","setGetServerSideStoreParams","setIsServerSideGroupOpenByDefault","isServerSideGroupOpenByDefaultFunc","setIsApplyServerSideTransaction","isApplyServerSideTransactionFunc","setIsServerSideGroup","isServerSideGroupFunc","setGetServerSideGroupKey","setGetRowStyle","setGetRowHeight","rowHeightFunc","setPivotHeaderHeight","isSideBarVisible","setSideBarVisible","setSideBarPosition","openToolPanel","closeToolPanel","getOpenedToolPanel","openedItem","setSideBar","isToolPanelShowing","doLayout","setGroupRemoveLowestSingleChildren","destroyGridUi","warnIfDestroyed","resetQuickFilter","getRangeSelections","camelCaseToHumanReadable","addRangeSelection","deprecatedNoLongerUsed","addCellRange","clearRangeSelection","undoCellEditing","redoCellEditing","getCurrentUndoSize","getCurrentUndoStackSize","getCurrentRedoSize","getCurrentRedoStackSize","getChartModels","chartService","createRangeChart","createCrossFilterChart","restoreChart","chartModel","chartContainer","createPivotChart","copySelectedRowsToClipboard","includeHeader","columnKeys","copySelectedRangeToClipboard","copySelectedRangeDown","buttonElement","showMenuAfterMouseEvent","hidePopupMenu","hideActiveMenu","setPopupParent","ePopupParent","tabToPreviousCell","notPinned","addAggFunc","addAggFuncs","clearAggFuncs","clear","applyServerSideTransaction","serverSideTransactionManager","applyTransaction","applyServerSideTransactionAsync","applyTransactionAsync","retryServerSideLoads","retryLoads","flushServerSideAsyncTransactions","flushAsyncTransactions","rowDataTransaction","batchUpdateRowData","insertItemsAtIndex","skipRefresh","removeItems","dataToRemove","refreshVirtualPageCache","refreshInfiniteCache","refreshInfinitePageCache","refreshCache","purgeVirtualPageCache","purgeInfinitePageCache","purgeInfiniteCache","purgeCache","purgeEnterpriseCache","route","purgeServerSideCache","refreshServerSideStore","purge","refreshStore","getServerSideStoreState","getStoreState","getVirtualRowCount","getInfiniteRowCount","isMaxRowFound","isLastRowIndexKnown","setVirtualRowCount","maxRowFound","setInfiniteRowCount","getVirtualPageState","getCacheBlockState","getInfinitePageState","rowNodeBlockLoader","getBlockState","checkGridSize","getFirstRenderedRow","getFirstDisplayedRow","getLastRenderedRow","getLastDisplayedRow","getDisplayedRowAtIndex","getDisplayedRowCount","paginationIsLastPageFound","isLastPageFound","paginationGetPageSize","getPageSize","paginationGetCurrentPage","paginationGetTotalPages","getTotalPages","paginationGetRowCount","getMasterRowCount","paginationGoToNextPage","goToNextPage","paginationGoToPreviousPage","goToPreviousPage","paginationGoToFirstPage","goToFirstPage","paginationGoToLastPage","goToLastPage","paginationGoToPage","goToPage","__extends$1e","__decorate$18","__param$6","ExpressionService","expressionToFunctionCache","expressionOrFunc","evaluateExpression","javaScriptFunction","createExpressionFunction","functionBody","createFunctionBody","theFunction","Function","__extends$1f","__decorate$19","TemplateService","templateCache","waitingCallbacks","templateFromCache","callbackList","client","handleHttpResult","httpResult","responseText","callbacks","that_1","__extends$1g","__decorate$1a","__spreadArrays$7","FocusController","FocusController_1","addKeyboardModeEvents","doc","docControllers","instancesMonitored","toggleKeyboardMode","removeKeyboardModeEvents","newControllers","currentGridCore","isKeyboardActive","keyboardModeActive","isKeyboardEvent","controllersForDoc","clearFocusedCellListener","onColumnEverythingChanged","unregisterGridCompController","focusedCellPosition","colFromColumnController","isKeyboardMode","getGridCellForDomElement","eBrowserCell","ePointer","gridColumn","headerWrapper","focusedHeaderPosition","focusedColumn","focusedHeaderRowIndex","headerPosition","currentPosition","previousHeaderPosition","nextHeaderPosition","focusGridView","nextRowComp","isAnyCellFocused","exclude","onlyUnmanaged","focusableString","excludeString","excludeNodes","diff","focusableElements","toFocus","onlyManaged","nextIndex","isFocusUnderManagedComponent","managedContainers","findTabbableParent","limit","getLastRow","getFirstRow","focusNextInnerContainer","AG_KEYBOARD_FOCUS","__extends$1h","__decorate$1b","PopupService","popupList","positionPopupForMenu","sourceRect","parentRect","getParentRect","keepYWithinBounds","widthOfParent","maxX","xRightPosition","xLeftPosition","calculatePointerAlign","nudgeX","positionPopup","callPostProcessPopup","alignSide","keepXWithinBounds","eDocument","bounds","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","docElement","documentRect","isBody","heightOfParent","maxY","keepPopupPositionedRelativeTo","initialDiffTop","initialDiffLeft","lastDiffTop","lastDiffLeft","leftPx","intervalId","pRect","sRect","elementNotInDom","currentDiffTop","newTop","currentDiffLeft","newLeft","alwaysOnTop","stopAnchoringFunc","setAlwaysOnTop","bringPopupToFront","destroyPositionTracker","popupHidden","hidePopupOnKeyboardEvent","hidePopupOnMouseEvent","hidePopupOnTouchEvent","popupParams","isEventFromCurrentPopup","isEventSameChainAsOriginalEvent","originalMouseEvent","indexOfThisChild","mouseEventOrTouch","screenX_1","screenX","screenY_1","screenY","xMatch","yMatch","getWrapper","popupLen","alwaysOnTopList","onTopLength","isPopupAlwaysOnTop","__extends$1i","__decorate$1c","__param$7","LoggerFactory","logging","Logger","isLogging","isLoggingFunc","__extends$1j","__decorate$1d","AutoWidthCalculator","getHeaderCellForColumn","eDummyContainer","eBodyContainer","putRowCellsIntoDummyContainer","cloneItemIntoDummy","dummyContainerWidth","headerElement","headerWrapperComp","eCellClone","cloneNode","eCloneParent","__extends$1k","__decorate$1e","HorizontalResizeService","dragStartX","setResizeIcons","oldBodyCursor","eGridDiv","cursor","oldUserSelect","userSelect","oldWebkitUserSelect","webkitUserSelect","resetIcons","__extends$1l","__decorate$1f","GridCompController","service","eGridHostDiv","stampTopLevelGridCompWithGridInstance","addRtlSupport","addOrRemoveKeyboardFocusClass","onGridSizeChanged","showDropZones","showSideBar","SideBarModule","showStatusBar","StatusBarModule","showWatermark","EnterpriseCoreModule","setRtlClass","focusableContainers","getFocusableContainers","idxWithFocus","nextIdx","focusGridHeader","__extends$1m","__decorate$1g","GridComp","con","createTemplate","insertGridIntoDom","eRootWrapperBody","dropZones","statusBar","watermark","lastColumn","__extends$1n","__decorate$1h","StandardMenuFactory","showPopup","tabListener","trapFocusWithin","KeyboardEvent","__extends$1o","__decorate$1i","DragService","dragEndFunctions","dragSources","removeAllListeners","removeListener","dragSourceAndListener","mouseDownListener","touchEnabled","touchStartListener","setNoSelectToBody","noSelect","eBody","includeTouch","mouseListener","currentDragParams","touchLastTime","touchMoveEvent","touchEndEvent","onTouchUp","documentTouchMove","addTemporaryEvents","onCommonMove","skipMouseEvent","_alreadyProcessedByDragService","mouseStartEvent","mouseMoveEvent","mouseUpEvent","onMouseUp","contextEvent","currentEvent","isEventNearStartEvent","startEvent","requiredPixelDiff","getFirstActiveTouch","changedTouches","onUpCommon","eventOrTouch","__extends$1p","__decorate$1j","SortController","SortController_1","nextDirection","getNextSortDirection","doingMultiSort","clearSortBarThisColumn","updateSortIndex","lastColToChange","allSortedCols","allCols","sortedCols","columnToSkip","columnToClear","DEFAULT_SORTING_ORDER","notInArray","lastItemInArray","allColumnsIncludingAuto","columnsWithSorting","allColsIndexes","iA","iB","getSortOptions","__extends$1q","__decorate$1k","MouseEventService","gridInstanceId","MouseEventService_1","gridInstanceSequence","GRID_DOM_KEY","eventFromThisGrid","getCellPositionForEvent","gridPanelHasScrolls","vRange","hRange","__extends$1r","__decorate$1l","CellNavigationService","lastCellToFocus","getCellAbove","getCellBelow","getCellToLeft","getCellToRight","isCellGoodToFocusOn","lastCell","colToLeft","colToRight","getRowBelow","isLastRowInContainer","rowBelow","lastTopIndex","lastBottomIndex","lastBodyIndex","getRowAbove","isFirstRow","getLastBodyCell","getLastFloatingTopRow","rowAbove","lastBodyRow","lastFloatingRow","getNextTabbedCellBackwards","getNextTabbedCellForwards","newRowIndex","newFloating","newColumn","isRowInPage","__extends$1s","__decorate$1m","ValueFormatterService","suppliedFormatter","useFormatterFromColumn","pinnedRowValueFormatter","valueFormatter","__extends$1t","AgRadioButton","onChange","OUTSIDE_ANGULAR_EVENTS","VanillaFrameworkOverrides","isOutsideAngular","useCapture","__extends$1u","__decorate$1n","ScrollVisibleService","updateImpl","atLeastOneDifferent","__extends$1v","__decorate$1o","StylingService","processAllCellClasses","classRules","classNames","rule","resultOfRule","classOrClasses","cellClassFunc","__extends$1w","__decorate$1p","ColumnHoverService","selectedColumns","__extends$1x","__decorate$1q","ColumnAnimationService","executeNextFuncs","executeLaterFuncs","animationThreadCount","ensureAnimationCssClassPresent","flush","executeLaterVMTurn","animationThreadCountCopy","nowFuncs","waitFuncs","__extends$1y","__decorate$1r","AutoGroupColService","AutoGroupColService_1","doingTreeData","doingMultiAutoColumn","rowGroupCol","createOneAutoGroupColumn","defaultAutoColDef","generateDefaultColDef","GROUP_AUTO_COLUMN_BUNDLE_ID","userAutoColDef","noFieldOrValueGetter","userDef","userHasProvidedGroupCellRenderer","cellRendererFramework","cellRendererSelector","__extends$1z","__decorate$1s","PaginationProxy","topDisplayedRowIndex","bottomDisplayedRowIndex","masterRowCount","onPaginationPageSizeChanged","startPixel","endPixel","startLimitIndex","endLimitIndex","calculatePages","modelUpdatedEvent","paginationChangedEvent","topRowBounds","bottomRowBounds","nodeIsInPage","firstInRange","lastInRange","getRowBounds","getPageForIndex","pageSize","pageNumber","rowPage","lastPage","totalPages","setPageSize","calculatePagesAllRows","calculatePagesMasterRowsOnly","calculatedPagesNotActive","setPixelOffset","setZeroRows","getTopLevelRowCount","masterLastRowIndex","masterPageStartIndex","masterPageEndIndex","getTopLevelRowDisplayedIndex","firstIndexNotToShow","maxRowIndex","__extends$1A","__decorate$1t","PaginationAutoPageSizeService","onBodyHeightChanged","checkPageSize","notActive","newPageSize","__extends$1B","__decorate$1u","ValueCache","cacheVersion","neverExpires","__cacheVersion","__cacheData","__extends$1C","__decorate$1v","ChangeDetectionService","doChangeDetection","onlyChangedColumns","doAggregate","__extends$1D","__decorate$1w","__param$8","AlignedGridsService","consuming","fireScrollEvent","fireEvent","otherGrids","otherGridOptions","alignedGridService","onEvent","onColumnEvent","onScrollEvent","getMasterColumns","getColumnIds","colEvent","processColumnEvent","groupOpenedEvent","processGroupOpenedEvent","masterColumnGroup","otherColumnGroup","masterColumn","masterColumns","movedEvent","srcColState","destColState","visibleEvent","pinnedEvent","resizedEvent_1","grid","__extends$1E","__decorate$1x","AgComponentUtils","functionAdapter","adaptCellRendererFunction","Adapter","callbackResult","candidate","__extends$1F","__decorate$1y","ComponentMetadataProvider","componentMetaData","dateComponent","detailCellRenderer","headerGroupComponent","loadingCellRenderer","loadingOverlayComponent","noRowsOverlayComponent","floatingFilterComponent","floatingFilterWrapperComponent","fullWidthCellRenderer","pinnedRowCellRenderer","groupRowRenderer","statusPanel","tooltipComponent","__decorate$1z","Beans","__extends$1G","__decorate$1A","MAT_GRID_SIZE","BASE_GRID_SIZE","BALHAM_GRID_SIZE","ALPINE_GRID_SIZE","HARD_CODED_SIZES","headerCellMinWidth","listItemHeight","SASS_PROPERTY_BUILDER","CALCULATED_SIZES","Environment","useTheme","calculatedValue","prevEl","currentClass","currentDiv","sizeName","isThemeDark","themeFamily","reg","themeMatch","usingOldTheme","newTheme_1","__extends$1H","__decorate$1B","AnimationFrameService","createTasksP1","sorted","createTasksP2","destroyTasks","ticking","scrollGoingDown","lastScrollTop","taskCount","cancelledTasks","verifyAnimationFrameOn","task","taskItem","createOrder","addTaskToList","taskList","sortTaskList","sortDirection","executeFrame","millis","p1TaskList","p1Tasks","p2TaskList","p2Tasks","frameStart","noMaxMillis","gridBodyDidSomething","requestFrame","stopTicking","requestAnimationFrame","webkitRequestAnimationFrame","__extends$1I","__decorate$1C","NavigationService","timeLastPageEventProcessed","alt","ctrl","processed","onHomeOrEndKey","onCtrlLeftOrRight","onCtrlUpOrDown","onPageDown","onPageUp","isTimeSinceLastPageEventToRecent","setTimeLastPageEventProcessed","navigateTo","navigateParams","scrollIndex","scrollType","scrollColumn","focusIndex","focusColumn","pixelsInOnePage","pagingPixelOffset","currentPageBottomPixel","currentPageBottomRow","currentCellPixel","nextCellPixel","currentPageTopPixel","currentPageTopRow","getIndexToFocus","indexToScrollTo","isDown","indexToFocus","upKey","rowIndexToScrollTo","leftKey","columnToSelect","homeKey","__extends$1J","__decorate$1D","__param$9","RowContainerHeightService","scrollY","uiBodyHeight","maxDivHeight","stretching","newScrollY","newBodyHeight","getUiBodyHeight","calculateOffset","setUiContainerHeight","pixelsToShave","modelHeight","uiContainerHeight","maxScrollY","scrollPercent","setDivStretchOffset","clearOffset","newOffset","newOffsetFloor","modelPixel","modelMaxScroll","scrollPixel","__extends$1K","__decorate$1E","SelectableService","updateSelectableAfterGrouping","nextChildrenFunc","recurseDown","updateSelectableAfterFiltering","rowSelectable","firstSelectable","__extends$1L","__decorate$1F","AutoHeightCalculator","addInRowCssClasses","autoRowHeightCols","displayedCols","visibleAutoRowHeightCols","maxCellHeight","__extends$1M","__decorate$1G","PaginationComp","previousAndFirstButtonsDisabled","nextButtonDisabled","lastButtonDisabled","btFirst","btPrevious","btNext","btLast","onBtFirst","onBtPrevious","onBtNext","onBtLast","enableOrDisableButtons","updateRowLabels","setCurrentPageLabel","setTotalLabels","pagesExist","toDisplay","lbCurrent","formatNumber","strPage","strTo","strOf","strFirst","strPrevious","strNext","strLast","summaryDescribedBy","descriptionDescribedBy","zeroPagesToDisplay","isZeroPagesToDisplay","onLastPage","lbFirstRowOnPage","isLoading","lbLastRowOnPage","lastPageFound","lbTotal","lbRecordCount","moreText","__extends$1N","__decorate$1H","ResizeObserverService","debounceDelay","frameworkFactory","debouncedCallback","useBrowserResizeObserver","resizeObserver","ResizeObserver","observe","disconnect","usePolyfill","widthLastTime","heightLastTime","running","periodicallyCheckWidthAndHeight","newHeight","changed","suppressResize","resizeObserverExists","__extends$1O","__decorate$1I","OverlayWrapperComponent","inProgress","destroyRequested","eOverlayWrapper","onRowDataChanged","setWrapperTypeClass","loadingType","Loading","NoRows","workItem","showOverlay","destroyActiveOverlay","activeOverlay","showOrHideOverlay","__extends$1P","__decorate$1J","AgGroupComponent","suppressEnabledCheckbox","suppressOpenCloseIcons","enabled","cssIdentifier","alignItems","initialItems","cbGroupEnabled","setTitle","setEnabled","setAlignItems","hideEnabledCheckbox","hideOpenCloseIcons","setupExpandContract","refreshChildDisplay","eGroupClosedIcon","eGroupOpenedIcon","eTitleBar","toggleGroupExpand","showIcon","eToolbar","newCls","EVENT_EXPANDED","EVENT_COLLAPSED","addItem","hideItem","itemToHide","eTitle","addCssClassToTitleBar","skipToggle","refreshDisabledStyles","isEnabled","onEnableChange","__extends$1Q","__decorate$1K","AgPanel","closable","positioned","dragStartPosition","hideTitleBar","centered","setBodyComponent","setClosable","eTitleBarButtons","eContentWrapper","renderComponent","refreshSize","center","offsetElement","updateDragStartPosition","calculateMouseMovement","anywhereWithin","topBuffer","movementX","movementY","getHeight","skipX","skipY","isPercent","closeButtonComp","CLOSE_BTN_TEMPLATE","addTitleBarButton","onBtClose","bodyComponent","__extends$1R","__decorate$1L","AgDialog","RESIZE_TEMPLATE","movable","isMaximizable","isMaximized","maximizeListeners","resizeListenerDestroy","isResizing","lastPosition","maximizable","moveElement","setMovable","setMaximizable","addResizers","setResizable","parser","DOMParser","resizers","parseFromString","createMap","resizerMap","topLeft","topRight","bottomRight","bottomLeft","getResizerElement","onResize","isHorizontal","isVertical","offsetLeft","offsetTop","oldWidth","skipWidth","oldHeight","skipHeight","onMoveStart","onMove","onMoveEnd","toggleMaximize","refreshMaximizeIcon","maximizeIcon","minimizeIcon","clearMaximizebleListeners","destroyListener","maximizeButtonComp","pointerEvents","moveElementDragListener","__extends$1S","AgInputTextField","preventDisallowedCharacters","pattern","clipboardData","getData","__extends$1T","AgInputTextArea","__extends$1U","__decorate$1M","AgSlider","eSlider","eventChanged","textValue","sliderValue","setSliderWidth","setTextFieldWidth","setMinValue","minValue","setMin","setMaxValue","maxValue","setMax","setStep","__extends$1V","__decorate$1N","AgColorPanel","isSpectrumDragging","isSpectrumHueDragging","isSpectrumAlphaDragging","colorChanged","picker","initRecentColors","spectrumVal","onSpectrumDraggerDown","onSpectrumDraggerMove","spectrumHue","onSpectrumHueDown","onSpectrumHueMove","spectrumAlpha","onSpectrumAlphaDown","onSpectrumAlphaMove","recentColors","onRecentColorClick","refreshSpectrumRect","spectrumValRect","refreshHueRect","spectrumHueRect","refreshAlphaRect","spectrumAlphaRect","moveDragger","moveHueSlider","moveAlphaSlider","valRect","setSpectrumValue","hueRect","slider","spectrumHueSlider","sliderRect","alphaRect","spectrumAlphaSlider","spectrumColor","rgbaColor","existingColor","backgroundColor","spectrumDragger","saturation","brightness","dragger","draggerRect","innerHtml","addRecentColor","currentColor","maxRecentColors","__extends$1W","__decorate$1O","AgPickerField","pickerIcon","popupRole","isPickerDisplayed","isDestroyingPicker","skipClick","displayId","eDisplayField","clickHandler","pickerComponent","icon","__extends$1X","AgColorPicker","eGuiRect","colorDialog","colorPanel","__extends$1Y","AgInputNumberField","floatedValue","normalizeValue","precision","adjustPrecision","floatString","setPrecision","normalizedValue","__extends$1Z","AgInputRange","__extends$1_","__decorate$1P","AgList","itemEls","highlightedEl","setValueByIndex","itemToHighlight","currentIdx","highlightItem","addOptions","listOptions","listOption","sanitisedText","renderOption","itemEl","clearHighlighted","fireItemSelected","displayValue","fireChangeEvent","getDisplayValue","refreshHighlighted","ACTIVE_CLASS","EVENT_ITEM_SELECTED","__extends$1$","__decorate$1Q","AgSelect","listComponent","hideList","listGui","destroyMouseWheelFunc","destroyFocusOutFunc","fromPicker","__extends$20","__decorate$1R","AgAngleSelect","radius","offsetX","offsetY","dragListener","eParentCircle","parentCircleRect","calculateAngleDrag","eAngleValue","degrees","floatValue","updateNumberInput","normalizeNegativeValue","positionChildCircle","radians","eChildCircle","centerX","centerY","cos","sin","calculatePolar","atan2","toDegrees","sqrt","calculateCartesian","toRadians","getRadius","setOffsetX","setOffsetY","dx","dy","PI","normalizeAngle180","setRadius","radiansValue","__extends$21","AgToggleButton","__extends$22","__decorate$1S","DetailRowCompCache","cacheItems","maxCacheSize","addOrDestroy","doNotUseCache","destroyFullWidthRow","getCacheItem","lastAccessedTime","autoCreate","stampCacheItem","__extends$23","__decorate$1T","RowPositionUtils","pinnedBottomCount","pinnedTopCount","rowA","rowB","before","__extends$24","__decorate$1U","CellPositionUtils","createIdFromValues","cellA","cellB","colsMatch","floatingMatch","indexMatch","__extends$25","__decorate$1V","PinnedRowModel","pinnedTopRows","pinnedBottomRows","getRowAtPixel","createNodesFromData","allData","nextRowTop_1","dataItem","idPrefix","getTotalHeight","forEachPinnedTopRow","forEachPinnedBottomRow","lastNode","__extends$26","UndoRedoAction","cellValueChanges","FillUndoRedoAction","initialRange","finalRange","UndoRedoStack","maxStackSize","actionStack","DEFAULT_STACK_SIZE","shouldAddActions","getCurrentStackSize","__extends$27","__decorate$1W","UndoRedoService","isCellEditing","isRowEditing","isPasting","isFilling","shouldCaptureAction","cellValueChange","clearStacks","undoStack","redoStack","undoRedoLimit","addRowEditingListeners","addCellEditingListeners","addPasteListeners","addFillListeners","undoAction","processAction","processRangeAndCellFocus","redoAction","valueExtractor","currentRow","startColumn","setLastFocusedCell","cellRangeParams","pushActionsToUndoStack","shouldPushAction","__extends$28","__decorate$1X","AgStackComponentsRegistry","componentsMappedByName","setupComponents","componentMeta","addComponent","classEscaped","classUpperCase","componentClass","htmlTag","__extends$29","__decorate$1Y","HeaderPositionUtils","nextColumn","getGroupMethod","getColMethod","headerRowComp","__decorate$1Z","ColumnDefFactory","colGroupDefs","createDefFromColumn","addToResult","childDef","parentDef","existingParentDef","createDefFromGroup","defCloned","colDefCloned","__decorate$1_","RowCssClassCalculator","extraCssClass","preProcessRowClassRules","rowCls","rowClassFuncResult","rowClassParams","__extends$2a","RowNodeBlock","STATE_WAITING_TO_LOAD","STATE_LOADING","loadFromDatasource","getVersion","setStateWaitingToLoad","pageLoadFailed","requestMostRecentAndLive","isRequestMostRecentAndLive","STATE_FAILED","processServerFail","dispatchLoadCompleted","successCommon","pageLoaded","thisIsMostRecentRequest","weAreNotDestroyed","STATE_LOADED","processServerResult","EVENT_LOAD_COMPLETE","block","__extends$2b","__decorate$1$","__param$a","RowNodeBlockLoader","activeBlockLoadsCount","blocks","RowNodeBlockLoader_1","maxConcurrentRequests","checkBlockToLoadDebounce","performCheckBlocksToLoad","addBlock","loadComplete","checkBlockToLoad","removeBlock","BLOCK_LOADER_FINISHED_EVENT","printCacheStatus","blockToLoad","getBlockStateJson","__decorate$20","RowNodeSorter","doFullSort","sortOptions","mapper","currentPos","sortedRowNodes","compareRowNodes","sortedNodeA","sortedNodeB","sortOption","isInverted","comparatorResult","providedComparator","__extends$2c","__decorate$21","ControllersService","readyCallbacks","checkReady","gridCompCon","fakeHScrollCon","p_1","createReadyParams","registerFakeHScrollCon","getGridCompController","__extends$2d","__decorate$22","FakeHorizontalScrollController","spacerWidthsListener","setFakeHScrollSpacerWidths","setScrollVisible","vScrollShowing","rightSpacing","scrollOnRight","setRightSpacerFixedWidth","includeRightSpacerScrollerCss","leftSpacing","scrollOnLeft","setLeftSpacerFixedWidth","includeLeftSpacerScrollerCss","hScrollShowing","scrollbarInvisible","adjustedScrollbarWidth","scrollContainerSize","addIEPadding","setInvisibleStyles","setContainerHeight","__extends$2e","__decorate$23","FakeHorizontalScrollComp","eRightSpacer","eLeftSpacer","isInvisible","__extends$2f","__decorate$24","PinnedWidthService","checkContainerWidths","__extends$2g","RowComp","afterRowAttached","createFullWidthRowCell","cachedDetailComp","detailRowCompCache","masterDetailModuleLoaded","cellsToRemove","existingCellComp","newCellComp","cellCompsToRemove","isCellEligibleToBeRemoved","elementsInOrder","REMOVE_CELL","KEEP_CELL","focused","mightWantToKeepCell","column_1","cellStillDisplayed","spanList","cmp","destroyAllCells","cellsToDestroy","fullWidthRowComponent","rowClasses","rowIdSanitised","userRowStyles","businessKey","businessKeySanitised","rowTopStyle","rowIdx","gow","__extends$2h","__assign$8","__decorate$25","templateFactory","containerClass","viewportClass","wrapperClass","RowContainerComp","listenOnDomOrder","stopHScrollOnPinnedRows","onDisplayedRowsChanged","resetScrollLeft","domOrder","clearLastPlacedElement","lastPlacedElement","appendRow","removeRow","fullWithContainer","oldRows","existingRowComp","newRowComp","doesRowMatch","fullWidthController","embedFW","rowConsToRender","Grid","GridCoreCreator","gridComp","uiCallback","registeredModules","createBeansList","createProvidedBeans","contextLogger","registerModuleUserComponents","registerStackComponents","setColumnsAndData","dispatchGridReadyEvent","isEnterprise","agStackComponents","createAgStackComponentsList","passedViaConstructor","registered","allModules","mapNames","addModule","mod","addIndividualModule","currentModule","dependantModules","moduleUserComps","extractModuleEntity","userComponents","compMeta","moduleAgStackComps","rowModelClass","getRowModelClass","moduleBeans","beansNoDuplicates","moduleEntities","extractor","readyEvent","rowModelClasses","rowModels","InfiniteRowModelModule","ViewportRowModelModule","ServerSideRowModelModule","ClientSideRowModelModule","initialiseAgGridWithAngular1","angular","angularModule","directive","restrict","AngularDirectiveController","$element","$attrs","keyOfGridInScope","$eval","quickFilterOnScope","quickFilterUnregisterFn","$watch","$on","initialiseAgGridWithWebComponents","registerElement","AgileGridProto","__agGridSetProperty","__agGridGetProperty","agGridProtoNoType","__attributes","changeObject","_initialised","_gridOptions","setGridOptions","_agGrid","createdCallback","setPropertyFromAttribute","toCamelCase","nodeValue","attachedCallback","detachedCallback","attributeChangedCallback","eventLowerCase","browserEvent","Event","browserEventNoType","agGridDetails","callbackMethod","myString","__extends$2i","__decorate$26","TabbedLayout","eHeader","activeItem","nextItem","showItemWrapper","eHeaderButton","setAfterAttachedParams","afterAttachedParams","getMinDimensions","eDummyBody","itemWrapper","eClone","tabbedItem","bodyPromise","showFirstItem","titleLabel","showItem","onItemClicked","afterAttachedCallback","onActiveItemClicked","simpleHttpRequest","httpRequest","onreadystatechange","readyState","ServerSideTransactionResultStatus","__extends$2j","__decorate$27","VirtualList","ariaRole","getItemHeight","addResizeObserver","drawVirtualRows","destroyObserver","focusRow","lastFocusedRowIndex","navigate","getLastFocusedRow","rowNumber","getComponentAt","viewportTopPixel","viewportBottomPixel","viewportScrolledPastRow","viewportScrolledBeforeRow","setComponentCreator","componentCreator","getScrollTop","clearVirtualRows","ensureRowsRendered","insertRow","isRowSelected","defaultGroupComparator","nodeAIsGroup","nodeBIsGroup","bothAreGroups","bothAreNormal","ServerSideStoreType","BaseComponentWrapper","OriginalConstructor","ChartType","LegendPosition","globalObj","HTMLButtonElement","HTMLSelectElement","HTMLInputElement","RecursionType","__spreadArrays$8","ClientSideNodeManager","nextId","allNodesMap","ROOT_NODE_ID","allLeafChildren","childrenAfterSort","getCopyOfNodesMap","recursiveFunction","TOP_LEVEL","rowDataTran","rowNodeTransaction","nodesToUnselect","executeRemove","executeUpdate","executeAdd","updateSelection","selectionChanged","newNodes","createNode","existingLeafChildren","nodesBeforeIndex","nodesAfterIndex","rowIdsRemoved","lookupRowNode","setMasterForRow","rowNodeIdFunc","numRowGroupColumns","masterRowLevel","expandByDefault","__extends$2k","__decorate$28","ClientSideRowModel","onRowGroupOpenedPending","refreshEverythingFunc","refreshEverythingAfterColsChangedFunc","afterColumnsChanged","onValueChanged","onRowGroupOpened","refreshMapListener","nodeManager","atLeastOneChange","rowAtStartPixel","rowAtEndPixel","setRowTops","nextRowTop","rowsToDisplay","resetRowTops","displayedRowsMapped","clearIfNotDisplayed","recurse","isRootNode","skipChildren","indexAtPixelNow","rowNodeAtPixelNow","highlight","lastHighlightedRow","showingRootNode","topLevelIndex","createChangePath","rowNodeTransactions","noTransactions","transWithAddsOrDeletes","transactionsContainUpdatesOnly","doRowGrouping","doFilter","doPivot","doSort","doRowsToDisplay","rowsMissing","firstRowHit","lastRowHit","lookingForLastRow","skipThisGroupNode","childOfLastRow","pixelToMatch","bottomPointer","topPointer","midPointer","isRowInPixel","pixelInRow","recursivelyWalkNodesAndCallback","AfterFilter","AfterFilterAndSort","forEachPivotNode","PivotNodes","recursionType","nodeChildren","aggregationStage","execute","expand","recursiveExpandOrCollapse","shouldExpandOrCollapse","sortStage","groupStage","restoreGroupState","filterStage","pivotStage","getGroupState","idIsGroup","res_1","rowDataChangedEvent","applyAsyncTransactionsTimeout","rowDataTransactionBatch","waitMillis","executeBatchUpdateRowData","callbackFuncsBound","rowNodeTrans","forceRowNodeOrder","tranItem","rowNodeTran","commonUpdateRowData","createRowNodeOrder","suppressSortOrder","orderMap","flattenStage","__extends$2l","__decorate$29","FilterStage","filterService","selectableService","__extends$2m","__decorate$2a","SortStage","sortActive","dirtyLeafNodes","calculateDirtyNodes","noAggregations","sortService","dirtyNodes","addNodesFunc","tran","__extends$2n","__decorate$2b","FlattenStage","skipLeafNodes","showRootNode","topList","recursivelyAddToRowsToDisplay","atLeastOneRowPresent","includeGroupTotalFooter","ensureFooterNodeExists","addRowNodeToRowsToDisplay","rowsToFlatten","hideOpenParents","isParent","isSkippedLeafNode","isRemovedSingleChildrenGroup","isRemovedLowestSingleChildrenGroup","neverAllowToExpand","isHiddenOpenParent","thisRowShouldBeRendered","excludedParent","uiLevelForChildren","createDetailNode","groupNode","footerNode","masterNode","__extends$2o","__decorate$2c","SortService","pullDownGroupDataForHideOpenParents","doDeltaSort","rowNodeSorter","updateChildIndexes","updateGroupDataForHiddenOpenParents","mapNodeToSortedNode","cleanNodes","passesDirtyNodesCheck","passesChangedPathCheck","cleanNodesMapped","sortedRowNode","changedNodes","mergeSortedArrays","listToSort","clearOperation","childRowNode","groupDisplayCols","groupDisplayCol","displayingGroupKey","thisRowNodeMatches","parentToStealFrom","__extends$2p","__decorate$2d","FilterService","filterNodes","includeChildNodes","passBecauseChildren","passBecauseDataPasses","doingTreeDataFiltering","treeDataDepthFirstFilter_1","alreadyFoundInParent","foundInParent","treeDataFilterCallback","defaultFilterCallback","setAllChildrenCountTreeData","setAllChildrenCountGridGrouping","__extends$2q","__decorate$2e","ImmutableService","existingNodesMap","existingNode","dataHasChanged","clientSide","__extends$2r","__decorate$2f","InfiniteBlock","parentCache","blockSize","createRowNodes","blockNumber","getStartRow","getEndRow","pageStatus","createLoadParams","successCallback","failCallback","getLastAccessed","lastAccessed","dontTouchLastAccessed","lastAccessedSequence","localIndex","finalRowCount","destroyRowNodes","__extends$2s","__decorate$2g","__param$b","InfiniteCache","lastRowIndexKnown","blockCount","initialRowCount","dontCreatePage","blockId","createBlock","newBlock","purgeBlocksIfNeeded","nothingToRefresh","getBlocksInOrder","destroyAllBlocks","destroyBlock","checkRowCount","onCacheUpdated","blockToExclude","blocksForPurging","lastAccessedComparator","maxBlocksProvided","blocksToKeep","emptyBlocksToKeep","MAX_EMPTY_BLOCKS_TO_KEEP","purgeBecauseBlockEmpty","purgeBecauseCacheFull","isBlockCurrentlyDisplayed","isBlockFocused","removeBlockFromCache","blockIndexStart","blockIndexEnd","hasFocus","blockToRemove","lastRowIndexPlusOverflow","overflowSize","forEachNodeDeep","blockComparator","destroyAllBlocksPastVirtualRowCount","blocksToDestroy","getRowNodesInRange","lastBlockId","inActiveRange","numberSequence","foundGapInSelection","hitFirstOrLast","invalidRange","__extends$2t","__decorate$2h","InfiniteRowModel","destroyCache","verifyProps","destroyDatasource","onColumnEverything","resetRequired","cacheParams","isSortModelDifferent","infiniteCache","userGeneratingIds","resetCache","createModelUpdatedEvent","defaultIfInvalid","rowIndexForPixel","foundRowNode","infinite","BaseCreator","getFileName","fileName","extension","getDefaultFileExtension","getDefaultFileName","getMergedParamsAndData","mergedParams","mergeDefaultParams","gridSerializer","serialize","createSerializingSession","baseParams","BaseGridSerializingSession","groupColumns","processCellCallback","processHeaderCallback","processGroupHeaderCallback","processRowGroupCallback","prepare","columnsToExport","extractHeaderValue","extractRowCellValue","accumulatedRowIndex","valueForCell","groupIndex","renderGroupSummaryCell","createValueForGroupNode","processCell","Downloader","url_1","bubbles","__extends$2u","LINE_SEPARATOR","CsvSerializingSession","isFirstLine","suppressQuotes","columnSeparator","addCustomContent","beginNewLine","putInQuotes","mergeAcross","appendEmptyCells","onNewHeaderGroupingRow","onColumn","onNewHeaderGroupingRowColumn","onNewHeaderRow","onNewHeaderRowColumn","onNewBodyRow","onNewBodyRowColumn","stringValue","valueEscaped","__extends$2v","__decorate$2i","CsvCreator","isExportSuppressed","packagedFile","getMimeType","__extends$2w","__decorate$2j","GridSerializer","gridSerializingSession","getColumnsToExport","serializeChain","prepareSession","prependContent","exportColumnGroups","exportHeaders","processPinnedTopRows","processRows","processPinnedBottomRows","appendContent","rowSkipper","shouldRowBeSkipped","skipSingleChildrenGroup","skipLowestSingleChildrenGroup","isLeafNode","skipRowGroups","skipGroups","shouldSkipLowestGroup","shouldSkipCurrentGroup","onlySelected","skipPinnedTop","skipPinnedBottom","nodeIsRootNode","rowAccumulator","getCustomContentBelowRow","customFooter","customHeader","skipColumnGroupHeaders","columnGroups","recursivelyAddHeaderGroups","skipColumnHeaders","gridRowIterator_1","usingCsrm","usingSsrm","onlySelectedNonStandardModel","onlySelectedAllPages","directChildrenHeaderGroups","doAddHeaderHeader","gridRowIterator","columnIndex","LINE_SEPARATOR$1","XmlFactory","createHeader","headerStart","headerEnd","standalone","att","createXml","xmlElement","booleanTransformer","prefixedAttributes","prefixedSet","returnAttributeIfPopulated","rawMap","textNode","xmlValue","crcTable","Uint32Array","ZipContainer","addFolders","paths","addFolder","folders","created","isBase64","addFile","getContent","mimeType","textOutput","buildFileStream","uInt8Output","buildUint8Array","clearStream","fData","totalFiles","foData","lL","cL","totalFiles_1","currentFile","getHeader","fileHeader","folderHeader","foEnd","buildFolderEnd","utfPath","isUTF8","convertTime","convertDate","extraFields","uExtraFieldPath","getFromCrc32Table","getConvertedContent","convertedContent","atob","tLen","cLen","lLen","uint8","iterable","crc"],"mappings":"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,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEPypJ,GAA4B,WAC5B,SAASA,KA4JT,OA1JAA,EAAWvC,kBAAoB,CAC3B,aACA,kBACA,cACA,iBACA,oBACA,YACA,UACA,QACA,OACA,cACA,QACA,OACA,mBACA,eACA,gBACA,YACA,eACA,WACA,cACA,SACA,iBACA,UACA,eACA,aACA,SACA,gBACA,iBAEJuC,EAAWtC,kBAAoB,CAC3B,uBACA,gCACA,6BACA,YACA,qBACA,sBACA,mBACA,iCACA,8BACA,kBACA,eACA,mBACA,kBACA,2BACA,wBACA,0BACA,gCACA,mCACA,mBACA,yBACA,4BACA,UACA,qBAEJsC,EAAWrC,iBAAmB,CAC1B,WACA,eACA,kBACA,WACA,sBACA,iBACA,SAEJqC,EAAWpC,kBAAoB,CAC3B,WACA,YACA,mBACA,OACA,cACA,QACA,eACA,WACA,WACA,gBACA,uBACA,aACA,qBAEJoC,EAAWjmJ,mBAAqB,CAC5B,oBACA,2BACA,2BACA,gBACA,gBACA,OACA,cACA,WACA,kBACA,QACA,eACA,oBACA,0BACA,sCACA,eACA,kBACA,eACA,cACA,aACA,aACA,oBACA,mBACA,iBACA,cACA,cACA,WACA,gBACA,oBACA,wBACA,UACA,YACA,aACA,WACA,WACA,YACA,kBACA,kBAEJimJ,EAAWnC,oBAAsB,CAC7B,qBACA,cACA,cACA,oBACA,aACA,eACA,wBACA,wBACA,iBACA,0BACA,cACA,aACA,SACA,kBACA,wBACA,8BACA,UACA,UACA,qBACA,kBACA,qBACA,gBACA,sBACA,oBACA,cACA,qBACA,mBACA,4BACA,uBACA,sBAEJmC,EAAWpnJ,eAAiBmnJ,GAAiBC,EAAWrC,iBAAkBqC,EAAWtC,kBAAmBsC,EAAWvC,kBAAmBuC,EAAWpC,kBAAmBoC,EAAWnC,oBAAqBmC,EAAWjmJ,oBAG/MimJ,EAAWlC,qBAAuB,CAAC,SAAU,WAAY,eAAgB,yBAA0B,kBAC/F,WAAY,8BACTkC,EA7JoB,GAsK3BC,GAAuB,WAavB,SAASA,EAAM1pJ,EAAGwH,EAAGhI,EAAGwH,QACV,IAANA,IAAgBA,EAAI,GAExB3L,KAAK2E,EAAIuQ,KAAKsM,IAAI,EAAGtM,KAAKuM,IAAI,EAAG9c,GAAK,IACtC3E,KAAKmM,EAAI+I,KAAKsM,IAAI,EAAGtM,KAAKuM,IAAI,EAAGtV,GAAK,IACtCnM,KAAKmE,EAAI+Q,KAAKsM,IAAI,EAAGtM,KAAKuM,IAAI,EAAGtd,GAAK,IACtCnE,KAAK2L,EAAIuJ,KAAKsM,IAAI,EAAGtM,KAAKuM,IAAI,EAAG9V,GAAK,IAmY1C,OAxXA0iJ,EAAMC,WAAa,SAAU3tI,GAEzB,GAAIA,EAAI5f,QAAQ,MAAQ,EACpB,OAAOstJ,EAAME,cAAc5tI,GAG/B,IAAI46H,EAAM8S,EAAMG,UAAU7tI,GAC1B,GAAI46H,EACA,OAAO8S,EAAME,cAAchT,GAG/B,GAAI56H,EAAI5f,QAAQ,QAAU,EACtB,OAAOstJ,EAAMI,eAAe9tI,GAEhC,MAAM,IAAIhN,MAAM,0BAA4BgN,EAAM,MAItD0tI,EAAME,cAAgB,SAAU5tI,GAC5B,IAAI7kB,EAAS6kB,EAAIvB,MAAMivI,EAAMK,OAC7B,GAAI5yJ,EAAQ,CACR,IAAI6I,EAAIsb,SAASnkB,EAAO,GAAI,IACxBqQ,EAAI8T,SAASnkB,EAAO,GAAI,IACxBqI,EAAI8b,SAASnkB,EAAO,GAAI,IACxB6P,OAAkBtM,IAAdvD,EAAO,GAAmBmkB,SAASnkB,EAAO,GAAI,IAAM,IAC5D,OAAO,IAAIuyJ,EAAM1pJ,EAAI,IAAKwH,EAAI,IAAKhI,EAAI,IAAKwH,EAAI,KAGpD,GADA7P,EAAS6kB,EAAIvB,MAAMivI,EAAMM,YACrB7yJ,EAAQ,CACJ6I,EAAIsb,SAASnkB,EAAO,GAAI,IACxBqQ,EAAI8T,SAASnkB,EAAO,GAAI,IACxBqI,EAAI8b,SAASnkB,EAAO,GAAI,IACxB6P,OAAkBtM,IAAdvD,EAAO,GAAmBmkB,SAASnkB,EAAO,GAAI,IAAM,GAK5D,OAJA6I,GAAS,GAAJA,EACLwH,GAAS,GAAJA,EACLhI,GAAS,GAAJA,EACLwH,GAAS,GAAJA,EACE,IAAI0iJ,EAAM1pJ,EAAI,IAAKwH,EAAI,IAAKhI,EAAI,IAAKwH,EAAI,KAEpD,MAAM,IAAIgI,MAAM,wCAA0CgN,EAAM,MAEpE0tI,EAAMI,eAAiB,SAAU9tI,GAC7B,IAAI7kB,EAAS6kB,EAAIvB,MAAMivI,EAAMO,OAC7B,GAAI9yJ,EACA,OAAO,IAAIuyJ,GAAOvyJ,EAAO,GAAK,KAAMA,EAAO,GAAK,KAAMA,EAAO,GAAK,KAGtE,GADAA,EAAS6kB,EAAIvB,MAAMivI,EAAMQ,QACrB/yJ,EACA,OAAO,IAAIuyJ,GAAOvyJ,EAAO,GAAK,KAAMA,EAAO,GAAK,KAAMA,EAAO,GAAK,KAAMA,EAAO,IAEnF,MAAM,IAAI6X,MAAM,qCAAuCgN,EAAM,MAEjE0tI,EAAMS,UAAY,SAAU7xJ,GACxB,GAAmB,IAAfA,EAAIQ,OACJ,OAAO,IAAI4wJ,EAAMpxJ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAEjD,GAAmB,IAAfA,EAAIQ,OACJ,OAAO,IAAI4wJ,EAAMpxJ,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAEzC,MAAM,IAAI0W,MAAM,sEASpB06I,EAAMU,QAAU,SAAU7lJ,EAAGkK,EAAGjP,EAAG6qJ,QACjB,IAAVA,IAAoBA,EAAQ,GAChC,IAAIllH,EAAMukH,EAAMY,SAAS/lJ,EAAGkK,EAAGjP,GAC/B,OAAO,IAAIkqJ,EAAMvkH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIklH,IAE7CX,EAAMa,OAAS,SAAUvuI,GAErB,OAAsB,IAAfA,EAAIljB,OAAe,IAAMkjB,EAAMA,GAE1C0tI,EAAM9xJ,UAAU4yJ,YAAc,WAC1B,IAAI5T,EAAM,IACJ8S,EAAMa,OAAOh6I,KAAKC,MAAe,IAATnV,KAAK2E,GAAShH,SAAS,KAC/C0wJ,EAAMa,OAAOh6I,KAAKC,MAAe,IAATnV,KAAKmM,GAASxO,SAAS,KAC/C0wJ,EAAMa,OAAOh6I,KAAKC,MAAe,IAATnV,KAAKmE,GAASxG,SAAS,KAIrD,OAHIqC,KAAK2L,EAAI,IACT4vI,GAAO8S,EAAMa,OAAOh6I,KAAKC,MAAe,IAATnV,KAAK2L,GAAShO,SAAS,MAEnD49I,GAEX8S,EAAM9xJ,UAAU6yJ,aAAe,SAAUC,QACd,IAAnBA,IAA6BA,EAAiB,GAClD,IAAItrJ,EAAa,CACbmR,KAAKC,MAAe,IAATnV,KAAK2E,GAChBuQ,KAAKC,MAAe,IAATnV,KAAKmM,GAChB+I,KAAKC,MAAe,IAATnV,KAAKmE,IAEhBzB,EAAIwS,KAAKI,IAAI,GAAI+5I,GACrB,OAAe,IAAXrvJ,KAAK2L,GACL5H,EAAWzE,KAAK4V,KAAKC,MAAMnV,KAAK2L,EAAIjJ,GAAKA,GAClC,QAAUqB,EAAWiN,KAAK,MAAQ,KAEtC,OAASjN,EAAWiN,KAAK,MAAQ,KAE5Cq9I,EAAM9xJ,UAAUoB,SAAW,WACvB,OAAe,IAAXqC,KAAK2L,EACE3L,KAAKmvJ,cAETnvJ,KAAKovJ,gBAEhBf,EAAM9xJ,UAAU+yJ,MAAQ,WACpB,OAAOjB,EAAMkB,SAASvvJ,KAAK2E,EAAG3E,KAAKmM,EAAGnM,KAAKmE,IAM/CkqJ,EAAMkB,SAAW,SAAU5qJ,EAAGwH,EAAGhI,GAC7B,IAAIqd,EAAMtM,KAAKsM,IAAI7c,EAAGwH,EAAGhI,GACrBsd,EAAMvM,KAAKuM,IAAI9c,EAAGwH,EAAGhI,GACrB+X,EAAY,IAARuF,GAAaA,EAAMD,GAAOC,EAAM,EACpCzF,EAAI8gB,IAGR,GAAItb,IAAQC,EAAK,CACb,IAAIyxC,EAAQzxC,EAAMD,EACdguI,GAAM/tI,EAAM9c,GAAKuuD,EACjBjlC,GAAMxM,EAAMtV,GAAK+mD,EACjBu8F,GAAMhuI,EAAMtd,GAAK+uD,EAEjBl3C,EADArX,IAAM8c,EACFguI,EAAKxhI,EAEJ9hB,IAAMsV,EACP,EAAM+tI,EAAKC,EAGX,EAAMxhI,EAAKuhI,EAEnBxzI,GAAK,EACDA,EAAI,IACJA,GAAQ,GAGhB,MAAO,CAAK,IAAJA,EAASE,EAAGuF,IAKxB4sI,EAAMY,SAAW,SAAUjzI,EAAGE,EAAGtB,GACzB3I,MAAM+J,KACNA,EAAI,GAERA,GAAOA,EAAI,IAAO,KAAO,IAAO,IAChC,IAAIrX,EAAI,EACJwH,EAAI,EACJhI,EAAI,EACR,GAAU,IAAN+X,EACAvX,EAAIwH,EAAIhI,EAAIyW,MAEX,CACD,IAAI1R,EAA0B,GAArB8S,EAAI9G,KAAKkG,MAAMY,IACpBlP,EAAI5D,EAAIgM,KAAKkG,MAAMlS,GACnB7E,EAAIuW,GAAK,EAAIsB,GACbb,EAAIT,GAAK,EAAIsB,EAAIpP,GACjB+H,EAAI+F,GAAK,EAAKsB,GAAK,EAAIpP,IAC3B,OAAQ5D,GAAK,GACT,KAAK,EACDvE,EAAIiW,EACJzO,EAAI0I,EACJ1Q,EAAIE,EACJ,MACJ,KAAK,EACDM,EAAI0W,EACJlP,EAAIyO,EACJzW,EAAIE,EACJ,MACJ,KAAK,EACDM,EAAIN,EACJ8H,EAAIyO,EACJzW,EAAI0Q,EACJ,MACJ,KAAK,EACDlQ,EAAIN,EACJ8H,EAAIkP,EACJlX,EAAIyW,EACJ,MACJ,KAAK,EACDjW,EAAIkQ,EACJ1I,EAAI9H,EACJF,EAAIyW,EACJ,MACJ,KAAK,EACDjW,EAAIiW,EACJzO,EAAI9H,EACJF,EAAIkX,EACJ,OAGZ,MAAO,CAAC1W,EAAGwH,EAAGhI,IAElBkqJ,EAAM9xJ,UAAUmzJ,OAAS,SAAUC,EAAUC,EAAkBC,EAAkBC,GAC7E,IAAIC,EAAM1B,EAAMkB,SAASvvJ,KAAK2E,EAAG3E,KAAKmM,EAAGnM,KAAKmE,GAC1CA,EAAI4rJ,EAAI,GACH,GAAL5rJ,GAAU0rJ,EAAmB,IAC7B1rJ,EAAI,KAER,IAAI+E,IAAO6mJ,EAAI,GAAKJ,GAAY,IAAO,KAAO,IAC1Cv8I,EAAI8B,KAAKuM,IAAIvM,KAAKsM,IAAIuuI,EAAI,GAAKH,EAAkB,GAAM,GAC3DzrJ,EAAI+Q,KAAKuM,IAAIvM,KAAKsM,IAAIrd,EAAI0rJ,EAAkB,GAAM,GAClD,IAAIlkJ,EAAIuJ,KAAKuM,IAAIvM,KAAKsM,IAAIxhB,KAAK2L,EAAImkJ,EAAe,GAAM,GACpDE,EAAO3B,EAAMY,SAAS/lJ,EAAGkK,EAAGjP,GAEhC,OADA6rJ,EAAK1wJ,KAAKqM,GACH0iJ,EAAMS,UAAUkB,IAE3B3B,EAAM9xJ,UAAU0zJ,SAAW,WACvB,OAAOjwJ,KAAK0vJ,OAAO,EAAG,EAAK,EAAM,GAAK,IAE1CrB,EAAM9xJ,UAAU2zJ,OAAS,WACrB,OAAOlwJ,KAAK0vJ,OAAO,EAAG,EAAK,GAAK,IAGpCrB,EAAMK,MAAQ,4EACdL,EAAMM,WAAa,gEACnBN,EAAMO,MAAQ,uCACdP,EAAMQ,OAAS,oDAKfR,EAAMG,UAAY7xJ,OAAO4G,OAAO,CAC5B4sJ,UAAW,UACXC,aAAc,UACdC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,MAAO,UACPC,eAAgB,UAChBC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,MAAO,UACPC,eAAgB,UAChBC,SAAU,UACVC,QAAS,UACTC,KAAM,UACNC,SAAU,UACVC,SAAU,UACVC,cAAe,UACfC,SAAU,UACVC,UAAW,UACXC,SAAU,UACVC,UAAW,UACXC,YAAa,UACbC,eAAgB,UAChBC,WAAY,UACZC,WAAY,UACZC,QAAS,UACTC,WAAY,UACZC,aAAc,UACdC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,SAAU,UACVC,YAAa,UACbC,QAAS,UACTC,QAAS,UACTC,WAAY,UACZC,UAAW,UACXC,YAAa,UACbC,YAAa,UACbC,QAAS,UACTC,UAAW,UACXC,WAAY,UACZC,KAAM,UACNC,UAAW,UACXC,KAAM,UACNC,MAAO,UACPC,YAAa,UACbC,KAAM,UACNC,SAAU,UACVC,QAAS,UACTC,UAAW,UACXC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPC,SAAU,UACVC,cAAe,UACfC,UAAW,UACXC,aAAc,UACdC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,qBAAsB,UACtBC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,cAAe,UACfC,aAAc,UACdC,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,UAChBC,YAAa,UACbC,KAAM,UACNC,UAAW,UACXC,MAAO,UACPC,QAAS,UACTC,OAAQ,UACRC,iBAAkB,UAClBC,WAAY,UACZC,aAAc,UACdC,aAAc,UACdC,eAAgB,UAChBC,gBAAiB,UACjBC,kBAAmB,UACnBC,gBAAiB,UACjBC,gBAAiB,UACjBC,aAAc,UACdC,UAAW,UACXC,UAAW,UACXC,SAAU,UACVC,YAAa,UACbC,KAAM,UACNC,QAAS,UACTC,MAAO,UACPC,UAAW,UACXC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRC,cAAe,UACfC,UAAW,UACXC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,UAAW,UACXC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,WAAY,UACZC,OAAQ,UACRC,cAAe,UACfC,IAAK,UACLC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,OAAQ,UACRC,WAAY,UACZC,SAAU,UACVC,SAAU,UACVC,OAAQ,UACRC,OAAQ,UACRC,QAAS,UACTC,UAAW,UACXC,UAAW,UACXC,UAAW,UACXC,KAAM,UACNC,YAAa,UACbC,UAAW,UACXC,IAAK,UACLC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPC,WAAY,UACZC,OAAQ,UACRC,YAAa,YAEVjL,EAtZe;;;;;;;AAia1B,SAASkL,GAAcC,EAASC,QACV,IAAdA,IAAwBA,EAAY,KACxC,IAAIl5J,EAAO,GACPm5J,EAAY,SAAUC,GAAQ,MAAgB,OAATA,GAA0B,OAATA,GACtDC,GAAoB,EACxB,GAAgB,KAAZJ,EACA,MAAO,CAAC,CAAC,KA+Db,IA7DA,IA2DIK,EAAWC,EAAcC,EA3DzBz8B,EAAU,SAAU9kG,EAAK9wB,EAAQk7I,GACjC,IAAIoX,EAAeR,EAAQ5W,EAAW,GAClCqX,EAAcT,EAAQ5W,GACtBsX,EAAWV,EAAQ5W,EAAW,GAC9BuX,EAAmB,WACd55J,EAAKi4B,KAENj4B,EAAKi4B,GAAO,IAEXj4B,EAAKi4B,GAAK9wB,KAEXnH,EAAKi4B,GAAK9wB,GAAU,KAI5B,GADAyyJ,IACoB,MAAhBF,EAAqB,CACrB,GAAIL,EAUA,MATiB,MAAbM,GAEA35J,EAAKi4B,GAAK9wB,IAAW,IACrBk7I,KAIAgX,GAAoB,EAEjBC,EAAYrhI,EAAKshI,EAAepyJ,EAAQqyJ,EAAiBnX,EAAU,WAEzE,QAAqBvjJ,IAAjB26J,GAA8BA,IAAiBP,GAAaC,EAAUM,GAG3E,OADAJ,GAAoB,EACbC,EAAYrhI,EAAKshI,EAAepyJ,EAAQqyJ,EAAiBnX,EAAU,WAGlF,IAAKgX,EAAmB,CACpB,GAAIK,IAAgBR,EAIhB,OAFA/xJ,IACAyyJ,IACON,EAAYrhI,EAAKshI,EAAepyJ,EAAQqyJ,EAAiBnX,EAAU,WAEzE,GAAI8W,EAAUO,GASf,OAPAvyJ,EAAS,EACT8wB,IACA2hI,IACoB,OAAhBF,GAAqC,OAAbC,GAExBtX,IAEGiX,EAAYrhI,EAAKshI,EAAepyJ,EAAQqyJ,EAAiBnX,EAAU,WAIlFriJ,EAAKi4B,GAAK9wB,IAAWuyJ,EACrBJ,EAAYrhI,EACZshI,EAAepyJ,EACfqyJ,EAAiBnX,GAIZpqH,EAAM,EAAG9wB,EAAS,EAAGk7I,EAAW,EAAGA,EAAW4W,EAAQ/7J,OAAQmlJ,IACnEtlB,EAAQ9kG,EAAK9wB,EAAQk7I,GACrBpqH,EAAMqhI,EACNnyJ,EAASoyJ,EACTlX,EAAWmX,EAEf,OAAOx5J,EAGX,IAAI65J,GAAwBz9J,OAAO4G,OAAO,CACtCzE,UAAW,KACXy6J,cAAeA;;;;;;GAUnB,SAASc,GAAeC,GACpB,IAAIC,EAAgB,qBAChBC,EAAeF,EAAS38J,WACxB88J,EAAUF,EAAc3vG,KAAK4vG,GACjC,OAAOC,GAAWA,EAAQh9J,OAAS,EAAIg9J,EAAQ,GAAK,GAExD,SAASC,GAAuB5+J,GAC5B,IAAIgX,EAAMhX,EAAO2B,OACbk9J,EAAc,EAClB,GAAI7nJ,GAAO,EACP,OAAOhX,EAEX,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAO2B,OAAQF,IAAK,CACpC,IAAIb,EAAQZ,EAAOyB,GACf2X,KAAKkG,MAAM1e,KAAWA,IAG1Bi+J,EAAczlJ,KAAKuM,IAAIk5I,EAAaj+J,EAAMiB,WAAW0V,MAAM,KAAK,GAAG5V,SAOvE,IALA,IAAIm9J,EAAQ,EACRC,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTh/I,EAAI,EACC5K,EAAI,EAAGA,EAAI2B,EAAK3B,IACrB4K,EAAIjgB,EAAOqV,GACXypJ,GAASzpJ,EACT0pJ,GAAS9+I,EACTg/I,GAAU5pJ,EAAIA,EACd2pJ,GAAU3pJ,EAAI4K,EAElB,IAAIpN,GAAKmE,EAAMgoJ,EAASF,EAAQC,IAAU/nJ,EAAMioJ,EAASH,EAAQA,GAC7Dz2J,EAAK02J,EAAQ/nJ,EAAQnE,EAAIisJ,EAAS9nJ,EAClCtE,EAAS,GACb,IAAS2C,EAAI,EAAGA,GAAK2B,EAAK3B,IACtB3C,EAAOlP,KAAKikB,YAAYpS,EAAIxC,EAAIxK,GAAGoZ,QAAQo9I,KAE/C,OAAOnsJ,EAOX,SAASwsJ,GAAuBC,GAC5B,IAAKA,EACD,MAAO,GAEX,IAAIC,EAAW,GAKf,OAJAv1D,EAAcs1D,GAAa,SAAUE,EAAUC,GAC3C,IAAIC,EAAiBxnC,GAAkBsnC,GACvCD,EAAS57J,KAAK+7J,EAAiB,KAAOD,EAAa,QAEhDF,EAASlqJ,KAAK,KASzB,SAASigB,GAAQ4E,GACb,IAAIylI,EAAW3uJ,SAASa,cAAc,OAClC+tJ,EAAO5uJ,SAASm7I,cAAc,kBAElC,GADAwT,EAASzxE,UAAYh0D,GAChB0lI,EAAM,CACP,IAAInU,EAAW,uOACfmU,EAAOvT,GAAaZ,GAChBz6I,SAASuB,MACTvB,SAASuB,KAAKwsB,YAAY6gI,GAGlCA,EAAK7S,aAAa4S,EAAUC,EAAKzzJ,SAAS,IAQ9C,SAAS0zJ,GAA8BC,EAAqBC,GACxDD,EAAoBE,MAAK,SAAUC,GAC/B,IAAIC,EAAMD,EAAav1J,SACZ,MAAPw1J,IACmB,kBAARA,EACPH,EAAQhhI,YAAYmhI,GAGpBH,EAAQ7xE,UAAYgyE,MAMpC,IAAIC,GAA4Bn/J,OAAO4G,OAAO,CAC1CzE,UAAW,KACXu7J,eAAgBA,GAChBK,uBAAwBA,GACxBM,uBAAwBA,GACxB/pI,QAASA,GACTuqI,8BAA+BA;;;;;;GAUnC,SAASO,GAAiB5xE,EAASqiB,EAAW9vG,GAC1CytF,EAAQi7B,aAAa42C,GAAkBxvD,GAAY9vG,EAAMiB,YAE7D,SAASs+J,GAAoB9xE,EAASqiB,GAClCriB,EAAQ07D,gBAAgBmW,GAAkBxvD,IAE9C,SAASwvD,GAAkBxvD,GACvB,MAAO,QAAUA,EAErB,SAAS0vD,GAAiBx0J,GACtB,IAAI6mB,EAUJ,OARIA,EADA7mB,EAAO2yG,kBACA,YAEF3yG,EAAO4yG,mBACL,aAGA,OAEJ/rF,EAGX,SAAS4tI,GAAahyE,GAClB,OAAOlqE,SAASkqE,EAAQP,aAAa,cAAe,IAExD,SAASwyE,GAAgBjyE,GACrB,OAAOlqE,SAASkqE,EAAQP,aAAa,iBAAkB,IAE3D,SAASyyE,GAAmBlyE,GACxB,OAAOA,EAAQP,aAAa,qBAAuB,GAGvD,SAAS0yE,GAAanyE,EAASoyE,GAC3BR,GAAiB5xE,EAAS,QAASoyE,GAEvC,SAASC,GAAkBryE,EAASsyE,GAChCV,GAAiB5xE,EAAS,aAAcsyE,GAE5C,SAASC,GAAmBvyE,EAASwyE,GACjCZ,GAAiB5xE,EAAS,cAAewyE,GAE7C,SAASC,GAAazyE,EAAS/wC,GAC3B2iH,GAAiB5xE,EAAS,QAAS/wC,GAEvC,SAASyjH,GAAgB1yE,EAASw7D,GAC9BoW,GAAiB5xE,EAAS,WAAYw7D,GAE1C,SAASmX,GAAgB3yE,EAAS83B,GAC9B85C,GAAiB5xE,EAAS,WAAY83B,GAE1C,SAAS86C,GAAmB5yE,GACxB8xE,GAAoB9xE,EAAS,YAEjC,SAAS6yE,GAAe7yE,EAAS8yE,GAC7BlB,GAAiB5xE,EAAS,UAAW8yE,GAEzC,SAASC,GAAgB/yE,EAASy4D,GAC9BmZ,GAAiB5xE,EAAS,WAAYy4D,GAE1C,SAASua,GAAuBhzE,EAASizE,GACrCrB,GAAiB5xE,EAAS,kBAAmBizE,GAEjD,SAASC,GAAgBlzE,EAASmzE,GAC9BvB,GAAiB5xE,EAAS,WAAYmzE,GAE1C,SAASC,GAAgBpzE,EAASy1D,GAC9Bmc,GAAiB5xE,EAAS,WAAYy1D,GAE1C,SAAS4d,GAAgBrzE,EAASszE,GAC9B1B,GAAiB5xE,EAAS,WAAYszE,GAE1C,SAASC,GAAgBvzE,EAASwzE,GAC9B5B,GAAiB5xE,EAAS,WAAYwzE,GAE1C,SAASC,GAAezzE,EAASkzB,GAC7B0+C,GAAiB5xE,EAAS,UAAWkzB,GAEzC,SAASwgD,GAAY1zE,EAAS57D,GAC1BwtI,GAAiB5xE,EAAS,OAAQ57D,GAEtC,SAASuvI,GAAe3zE,GACpB8xE,GAAoB9xE,EAAS,QAEjC,SAAS4zE,GAAgB5zE,EAAS6zE,GAC9B,IAAIpxD,EAAgB,WAChBoxD,EACAjC,GAAiB5xE,EAASyiB,EAAeoxD,GAGzC/B,GAAoB9xE,EAASyiB,GAGrC,SAASqxD,GAAe9zE,EAASwgE,GAC7BoR,GAAiB5xE,EAAS,eAAuB9qF,IAAZsrJ,EAAwB,QAAUA,GAG3E,IAAIuT,GAAyBvhK,OAAO4G,OAAO,CACvCzE,UAAW,KACXo9J,iBAAkBA,GAClBC,aAAcA,GACdC,gBAAiBA,GACjBC,mBAAoBA,GACpBC,aAAcA,GACdE,kBAAmBA,GACnBE,mBAAoBA,GACpBE,aAAcA,GACdC,gBAAiBA,GACjBC,gBAAiBA,GACjBC,mBAAoBA,GACpBC,eAAgBA,GAChBE,gBAAiBA,GACjBC,uBAAwBA,GACxBE,gBAAiBA,GACjBE,gBAAiBA,GACjBC,gBAAiBA,GACjBE,gBAAiBA,GACjBE,eAAgBA,GAChBC,YAAaA,GACbC,eAAgBA,GAChBC,gBAAiBA,GACjBE,eAAgBA;;;;;;GAgBpB,SAASE,GAAc1iJ,EAAM2iJ,EAAaC,GAGtC,QAFoB,IAAhBD,IAA0BA,GAAc,QAC1B,IAAdC,IAAwBA,EAAY,MACnC5iJ,EACD,OAAO,KAEX,IAAI6iJ,EAAa,CAAC7iJ,EAAKe,cAAef,EAAKgB,WAAa,EAAGhB,EAAKc,WAAW9U,KAAI,SAAU82J,GAAQ,OAAOzjB,GAAmByjB,EAAM,MAAOvtJ,KAAKqtJ,GAI7I,OAHID,IACAE,GAAc,IAAM,CAAC7iJ,EAAK+L,WAAY/L,EAAKgM,aAAchM,EAAKiM,cAAcjgB,KAAI,SAAU82J,GAAQ,OAAOzjB,GAAmByjB,EAAM,MAAOvtJ,KAAK,MAE3IstJ,EAKX,SAASE,GAAwB9hK,GAC7B,IAAKA,EACD,OAAO,KAEX,IAAI4wF,EAAK5wF,EAAM2W,MAAM,KAAMorJ,EAAUnxE,EAAG,GAAIoxE,EAAUpxE,EAAG,GACzD,IAAKmxE,EACD,OAAO,KAEX,IAAIhkH,EAASgkH,EAAQprJ,MAAM,KAAK5L,KAAI,SAAUqF,GAAK,OAAOmT,SAASnT,EAAG,OACtE,GAAiE,IAA7D2tC,EAAO81C,QAAO,SAAUzjF,GAAK,OAAQmF,MAAMnF,MAAOrP,OAClD,OAAO,KAEX,IAAIkhK,EAAOlkH,EAAO,GAAImkH,EAAQnkH,EAAO,GAAIokH,EAAMpkH,EAAO,GAClDh/B,EAAO,IAAIY,KAAKsiJ,EAAMC,EAAQ,EAAGC,GACrC,GAAIpjJ,EAAKe,gBAAkBmiJ,GACvBljJ,EAAKgB,aAAemiJ,EAAQ,GAC5BnjJ,EAAKc,YAAcsiJ,EAEnB,OAAO,KAEX,IAAKH,GAAuB,aAAZA,EACZ,OAAOjjJ,EAEX,IAAIszE,EAAK2vE,EAAQrrJ,MAAM,KAAK5L,KAAI,SAAU82J,GAAQ,OAAOt+I,SAASs+I,EAAM,OAASO,EAAQ/vE,EAAG,GAAIgwE,EAAUhwE,EAAG,GAAIiwE,EAAUjwE,EAAG,GAU9H,OATI+vE,GAAS,GAAKA,EAAQ,IACtBrjJ,EAAKyM,SAAS42I,GAEdC,GAAW,GAAKA,EAAU,IAC1BtjJ,EAAK0M,WAAW42I,GAEhBC,GAAW,GAAKA,EAAU,IAC1BvjJ,EAAK2M,WAAW42I,GAEbvjJ,EAGX,IAAIwjJ,GAAyBtiK,OAAO4G,OAAO,CACvCzE,UAAW,KACXq/J,cAAeA,GACfK,wBAAyBA;;;;;;GAS7B,SAASU,GAAkBC,EAAaC,EAAaC,GACjD,IAAIC,EAAe,GACfC,EAAgBJ,EAAY5uE,QAAO,SAAUivE,GAC7C,OAAQJ,EAAY3uE,MAAK,SAAUgvE,GAAc,OAAOA,IAAeD,QAO3E,OALID,EAAc9hK,OAAS,GACvB8hK,EAAchhK,SAAQ,SAAUmhK,GAC5B,OAAOJ,EAAaI,GAAgBC,GAAiBD,EAAcL,MAGpEC,EAUX,SAASK,GAAiBH,EAAYH,EAAgBO,EAAgBC,GAClE,IAAI1zE,EAAS0zE,EAAWC,GAA4BC,GAChDC,EAAkBX,EAAe53J,KAAI,SAAUiwB,GAAQ,MAAO,CAC9Dh7B,MAAOg7B,EACPuoI,UAAW9zE,EAAOqzE,EAAWx2J,cAAe0uB,EAAKwoI,yBAMrD,OAJAF,EAAgBzxI,MAAK,SAAU5iB,EAAGxH,GAAK,OAAOA,EAAE87J,UAAYt0J,EAAEs0J,aAC1DL,IACAI,EAAkBA,EAAgBzvE,QAAO,SAAU4vE,GAAc,OAAgC,IAAzBA,EAAWF,cAEhFD,EAAgBv4J,KAAI,SAAU04J,GAAc,OAAOA,EAAWzjK,SAQzE,SAAS0jK,GAAYviK,GACjB,IAEIN,EACAgQ,EACAsrC,EAJAzlC,EAAIvV,EAAKmL,cACT4L,EAAI,IAAIvX,MAAM+V,EAAE3V,OAAS,GAI7B,IAAKF,EAAIgQ,EAAI,EAAGsrC,EAAMjkC,EAAEnX,OAAQ8P,GAAKsrC,EAAKt7C,EAAIgQ,GAAK,EAC/CqH,EAAErX,GAAK6V,EAAEa,MAAM1W,EAAGA,EAAI,GAE1B,OAAOqX,EAEX,SAASmrJ,GAAiBM,EAAMC,GAC5B,GAAoB,IAAhBD,EAAK5iK,QAAgC,IAAhB6iK,EAAK7iK,OAC1B,OAAO,EAEX,IAII8P,EACAuF,EALAytJ,EAASH,GAAYC,GACrBG,EAASJ,GAAYE,GACrBG,EAAQF,EAAO9iK,OAAS+iK,EAAO/iK,OAC/BijK,EAAY,EAGhB,IAAKnzJ,EAAI,EAAGuF,EAAMytJ,EAAO9iK,OAAQ8P,EAAIuF,EAAKvF,IAAK,CAC3C,IAAI4D,EAAIovJ,EAAOhzJ,GACX7K,OAAI,EACJi+J,OAAO,EACX,IAAKj+J,EAAI,EAAGi+J,EAAOH,EAAO/iK,OAAQiF,EAAIi+J,EAAMj+J,IAAK,CAC7C,IAAIqZ,EAAIykJ,EAAO99J,GACXyO,IAAM4K,GACN2kJ,KAIZ,OAAOA,EAAY,EAAK,EAAIA,EAAaD,EAAQ,EAErD,SAASX,GAA0BO,EAAMC,GAKrC,IAJA,IAAI30J,EAAI00J,EAAKt3J,QAAQ,MAAO,IACxB5E,EAAIm8J,EAAKv3J,QAAQ,MAAO,IACxB63J,EAAS,EACT/1G,EAAY,EACPttD,EAAI,EAAGA,EAAIoO,EAAElO,OAAQF,IAAK,CAC/B,IAAI2hB,EAAM/a,EAAEpD,QAAQ4K,EAAEpO,GAAIstD,IACb,IAAT3rC,IAGJ2rC,EAAY3rC,EACZ0hJ,GAAW,IAAmB,IAAZ/1G,EAAkB,IAAS,KAEjD,OAAO+1G,EAGX,IAAIC,GAA+BlkK,OAAO4G,OAAO,CAC7CzE,UAAW,KACXogK,kBAAmBA,GACnBS,iBAAkBA,GAClBS,YAAaA,GACbL,iBAAkBA,GAClBD,0BAA2BA,KAc3BgB,GAAmB,CAEnBC,kBAAmB,WAEnBC,kBAAmB,aAEnBC,mBAAoB,cAEpBC,iBAAkB,YAGlBC,0BAA2B,qBAE3BC,cAAe,MAEfC,eAAgB,YAEhBC,eAAgB,SAEhBC,eAAgB,OAEhBC,gBAAiB,QAEjBC,gBAAiB,QAEjBC,gBAAiB,cAEjBC,gBAAiB,QAGjBC,eAAgB,cAEhBC,gBAAiB,cAEjBC,cAAe,YAEfC,MAAO,QAEP/mI,MAAO,QAEPgnI,OAAQ,SAERC,MAAO,OAEP/lF,MAAO,QAEP4d,SAAU,WAEV72D,KAAM,OAENk5C,KAAM,OAEN+lF,OAAQ,SAERC,SAAU,WAEVC,YAAa,eAEbC,aAAc,UAEdC,KAAM,OAEN/xE,OAAQ,SAER4K,QAAS,UAETonE,SAAU,WAEVC,SAAU,WAEVC,QAAS,MAETC,UAAW,cAEXC,gBAAiB,QAEjBC,mBAAoB,QAEpBC,cAAe,OAEfC,eAAgB,QAEhBC,WAAY,QAEZC,cAAe,QAEfC,WAAY,cAEZC,WAAY,OAEZhqD,QAAS,OAETiqD,KAAM,OAENzmE,UAAW,MAEXC,YAAa,QAEbymE,UAAW,aAEXC,UAAW,aAEXC,WAAY,cACZC,QAAS,WAETC,cAAe,MAEfC,eAAgB,OAEhBC,WAAY;;;;;;GAUhB,SAASC,GAAWC,EAAU9zD,EAAoBpoG,GAC9C,IAAIm8J,EAAeC,GAAiBF,EAAU9zD,EAAoBpoG,GAClE,GAAIm8J,GAAgBA,EAAa9f,UAAUhjJ,QAAQ,YAAc,EAC7D,OAAO8iK,EAEX,IAAIE,EAAUp3J,SAASa,cAAc,QAErC,OADAu2J,EAAQrpI,YAAYmpI,GACbE,EAEX,SAASD,GAAiBF,EAAU9zD,EAAoBpoG,EAAQs8J,GAC5D,IAAIC,EAAmB,KAEnBC,EAAQx8J,GAAUA,EAAOm1G,YAAYqnD,MAKzC,GAJIA,IACAD,EAAmBC,EAAMN,IAGzB9zD,IAAuBm0D,EAAkB,CACzC,IAAIE,EAAer0D,EAAmBs0D,WAClCD,IACAF,EAAmBE,EAAaP,IAIxC,IAAIK,EAmBC,CACD,IAAII,EAAO13J,SAASa,cAAc,QAC9B82J,EAAWxD,GAAiB8C,GAahC,OAZKU,IACIN,EAKDM,EAAWV,GAJX3gK,QAAQkD,KAAK,8BAAgCy9J,GAC7CU,EAAW,KAMnBD,EAAKj/C,aAAa,QAAS,mBAAqBk/C,GAChDD,EAAKj/C,aAAa,eAAgB,MAClCi/C,EAAKj/C,aAAa,OAAQ,gBACnBi/C,EAjCP,IAAIE,OAAiB,EACrB,GAAgC,oBAArBN,EACPM,EAAiBN,QAEhB,IAAgC,kBAArBA,EAIZ,MAAM,IAAItwJ,MAAM,6DAHhB4wJ,EAAiBN,EAKrB,MAA8B,kBAAnBM,EACAvc,GAAauc,GAEpBla,GAAgBka,GACTA,OAEXthK,QAAQkD,KAAK,qEAqBrB,IAAIq+J,GAAyB7nK,OAAO4G,OAAO,CACvCzE,UAAW,KACXgiK,iBAAkBA,GAClB6C,WAAYA,GACZG,iBAAkBA,KASlBW,GAA4B,MAC5BC,GAAiC;;;;;;GACrC,SAASC,GAAav9J,EAAOw9J,GACzB,OAAQx9J,EAAMy9J,OAASz9J,EAAM09J,WAAaF,EAE9C,SAASG,GAA8B39J,GAEnC,GAAIA,EAAM49J,QAAU59J,EAAM69J,SAAW79J,EAAM1I,QACvC,OAAO,EAIX,IAAIwmK,EAA0C,IAArB99J,EAAM3K,IAAIgB,OAG/B0nK,EAAoCC,GAAoCh+J,GAC5E,OAAO89J,GAAsBC,EAWjC,SAASE,GAA+Bv1D,EAAoBw1D,EAAev6J,EAASrD,EAAQ69J,GACxF,IAAIC,EAAkB11D,EAAmB21D,+BACrCC,EAAah+J,EAASA,EAAOm1G,YAAY8oD,2BAAwBtmK,EAErE,IAAKmmK,IAAoBE,EACrB,OAAO,EAEX,IAAItiK,EAAS,CACTgE,MAAOk+J,EACPC,QAASA,EACT79J,OAAQA,EACRkC,IAAKkmG,EAAmB2I,SACxBjmG,KAAMzH,EACNxK,KAAMwK,EAAQxK,KACdqH,OAAQF,EAAOm1G,YACfxT,QAASyG,EAAmB0I,aAC5B3uG,UAAWimG,EAAmB4I,gBAGlC,GAAIgtD,EAAY,CACZ,IAAIE,EAAmBF,EAAWtiK,GAElC,GAAIwiK,EACA,OAAO,EAGf,QAAIJ,GAEOA,EAAgBpiK,GAK/B,SAASyiK,GAAqC/1D,EAAoBw1D,EAAe7kB,EAAgB/4I,GAC7F,IAAIE,EAASF,EAAOu1G,gBAChByoD,EAAa99J,GAAUA,EAAOk+J,4BAClC,IAAKrlE,EAAOilE,GACR,OAAO,EAEX,IAAItiK,EAAS,CACTwG,IAAKkmG,EAAmB2I,SACxB5uG,UAAWimG,EAAmB4I,eAC9BrP,QAASyG,EAAmB0I,aAC5B5wG,OAAQA,EACRF,OAAQA,EACR+4I,eAAgBA,EAChBr5I,MAAOk+J,GAEX,QAASI,EAAWtiK,GAExB,SAASgiK,GAAoCh+J,GACzC,OAAQw5I,MAAmBF,OACvBt5I,EAAM3K,MAAQgoK,IACdr9J,EAAM2+J,WAAarB,GAG3B,IAAIsB,GAA6BrpK,OAAO4G,OAAO,CAC3CzE,UAAW,KACX6lK,aAAcA,GACdI,8BAA+BA,GAC/BM,+BAAgCA,GAChCQ,qCAAsCA;;;;;;GAiH1C,SAASI,GAAe7+J,GACpB,IAAI8+J,EAAa,GACbC,EAAc,GACdC,EAAc,IAEdC,EAAK,EACLC,EAAK,EAELC,EAAK,EACLC,EAAK,EA4CT,MA1CI,WAAYp/J,IACZk/J,EAAKl/J,EAAMq/J,QAEX,eAAgBr/J,IAChBk/J,GAAMl/J,EAAMs/J,WAAa,KAEzB,gBAAiBt/J,IACjBk/J,GAAMl/J,EAAMu/J,YAAc,KAE1B,gBAAiBv/J,IACjBi/J,GAAMj/J,EAAMw/J,YAAc,KAG1B,SAAUx/J,GAASA,EAAMy/J,OAASz/J,EAAM0/J,kBACxCT,EAAKC,EACLA,EAAK,GAETC,EAAKF,EAAKH,EACVM,EAAKF,EAAKJ,EACN,WAAY9+J,IACZo/J,EAAKp/J,EAAM2/J,QAEX,WAAY3/J,IACZm/J,EAAKn/J,EAAM4/J,SAEVT,GAAMC,IAAOp/J,EAAM6/J,YACG,GAAnB7/J,EAAM6/J,WACNV,GAAMJ,EACNK,GAAML,IAGNI,GAAMH,EACNI,GAAMJ,IAIVG,IAAOF,IACPA,EAAME,EAAK,GAAM,EAAI,GAErBC,IAAOF,IACPA,EAAME,EAAK,GAAM,EAAI,GAElB,CACHU,MAAOb,EACPc,MAAOb,EACPc,OAAQb,EACRc,OAAQb,GAUhB,SAASc,GAAYC,GACjB,GAAI,YAAaA,EACb,OAA6B,GAAtBA,EAAWC,QAEtB,IAAI3lB,EAAS0lB,EAAW1C,OAAS0C,EAAW1lB,OAC5C,OAAiB,GAAVA,EAUX,SAAS4lB,GAAc51J,EAAIC,EAAI41J,GAE3B,GAAmB,IAAfA,EACA,OAAO,EAEX,IAAIC,EAAQzyJ,KAAKiH,IAAItK,EAAG+1J,QAAU91J,EAAG81J,SACjCC,EAAQ3yJ,KAAKiH,IAAItK,EAAGi2J,QAAUh2J,EAAGg2J,SACrC,OAAO5yJ,KAAKuM,IAAIkmJ,EAAOE,IAAUH,EAGrC,IAAIK,GAA0BprK,OAAO4G,OAAO,CACxCzE,UAAW,KACXmnK,eAAgBA,GAChBqB,YAAaA,GACbG,cAAeA;;;;;;GAiBnB,SAASO,GAAoBC,EAAUC,GACnC,GAAKD,EAAL,CAoCA,IAjCA,IA8BIE,EACAC,EA/BA/kE,EAAa,SAAUglE,EAAOC,GAC9B,IAAIC,EAAYL,EAAaG,EAAMr/G,IAC/Bw/G,EAAYN,EAAaI,EAAMt/G,IAC/B2hF,OAA0BtrI,IAAdkpK,EACZ39B,OAA0BvrI,IAAdmpK,EACZC,EAAwB99B,GAAaC,EACrC89B,GAA2B/9B,IAAcC,EAC7C,OAAI69B,EAGOF,EAAYC,EAEnBE,EAUOL,EAAMM,WAAaL,EAAMK,WAEhCh+B,EACO,GAEH,GAKRi+B,GAAuB,EAClBrrK,EAAI,EAAGA,EAAI0qK,EAASxqK,OAAS,EAAGF,IAGrC,GAFA4qK,EAAWF,EAAS1qK,GACpB6qK,EAAWH,EAAS1qK,EAAI,GACpB8lG,EAAW8kE,EAAUC,GAAY,EAAG,CACpCQ,GAAuB,EACvB,MAGJA,GACAX,EAAS15I,KAAK80E,IAGtB,SAASwlE,GAAqBt8I,EAAO7mB,GACjC,IAAIojK,EAAW,GAEf,SAASC,EAAqBC,GACrBA,GAGLA,EAAazqK,SAAQ,SAAUiU,GAE3B,GAAIA,EAAK0oF,OAAS1oF,EAAKy2J,cAAe,CAClCH,EAASxpK,KAAKkT,EAAK/V,KACnB,IAAIA,EAAMqsK,EAAS93J,KAAK,KACxBtL,EAAS8M,EAAM/V,GACfssK,EAAqBv2J,EAAK02J,oBAC1BJ,EAAS36I,UAZrB46I,EAAqBx8I,GAkBzB,IAAI48I,GAA4BxsK,OAAO4G,OAAO,CAC1CzE,UAAW,KACXkpK,oBAAqBA,GACrBa,qBAAsBA;;;;;;GAS1B,SAASO,GAAankE,GAClB,IAAI3kG,EAAM,IAAIiiG,IAEd,OADA0C,EAAK1mG,SAAQ,SAAU4S,GAAK,OAAO7Q,EAAIu9F,IAAI1sF,MACpC7Q,EAGX,IAAI+oK,GAAwB1sK,OAAO4G,OAAO,CACtCzE,UAAW,KACXsqK,aAAcA,KASdE,GAAkD,WASlD,OARAA,GAAa3sK,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJy0J,GAAWlnK,MAAMpC,KAAMW,YAE9Bw4B,GAAQmwI,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAWA,GAAW,GAAIxN,IAAeoC,IAAYx4D,GAAam+C,IAAeuW,IAAW6E,IAAYnU,IAAWpkC,IAAapc,IAAgBu2D,IAAkBp+D,GAAe+hE,IAAYwB,IAAgBrxC,IAAWozC,IAAa5rB,IAAcn0C,IAAcmhE,IAAeE,IAAW70C,IACze50E,GAAIzmB,GAQJowI,GAAgC,WAChC,SAASA,EAAeC,EAAWlkE,QACb,IAAdkkE,IAAwBA,EAAY,QAC3B,IAATlkE,IAAmBA,EAAO,GAC9BtlG,KAAKypK,UAAYD,EACjBxpK,KAAKslG,KAAOA,EAahB,OAXAikE,EAAehtK,UAAU0mC,KAAO,WAC5B,IAAIymI,EAAc1pK,KAAKypK,UAEvB,OADAzpK,KAAKypK,WAAazpK,KAAKslG,KAChBokE,GAEXH,EAAehtK,UAAUotK,KAAO,WAC5B,OAAO3pK,KAAKypK,WAEhBF,EAAehtK,UAAU0pF,KAAO,SAAU58B,GACtCrpD,KAAKypK,WAAapgH,GAEfkgH,EAlBwB;;;;;;;;;;;;;CA2BnC,SAAWK,GACPA,EAAgBA,EAAgB,eAAiB,GAAK,cACtDA,EAAgBA,EAAgB,YAAc,GAAK,YAFvD,CAGG/6J,EAAQ+6J,kBAAoB/6J,EAAQ+6J,gBAAkB,KACzD,IA6GIC,GA7GAC,GAA2B,WAC3B,SAASA,EAAUpkK,GACf,IAAI3F,EAAQC,KACZA,KAAKuM,OAASsC,EAAQ+6J,gBAAgBG,YACtC/pK,KAAKgqK,WAAa,KAClBhqK,KAAKiqK,QAAU,GACfvkK,GAAS,SAAUhJ,GAAS,OAAOqD,EAAMmqK,OAAOxtK,MAAW,SAAU0G,GAAU,OAAOrD,EAAMoqK,SAAS/mK,MA2CzG,OAzCA0mK,EAAUM,IAAM,SAAUC,GACtB,OAAO,IAAIP,GAAU,SAAUQ,GAC3B,IAAIC,EAAqBF,EAAS5sK,OAC9B+sK,EAAiB,IAAIntK,MAAMktK,GAC/BhsK,EAAQ8rK,GAAU,SAAUI,EAASvrK,GACjCurK,EAAQ9O,MAAK,SAAUj/J,GACnB8tK,EAAetrK,GAASxC,EACxB6tK,IAC2B,IAAvBA,GACAD,EAAQE,aAM5BV,EAAUQ,QAAU,SAAU5tK,GAE1B,YADc,IAAVA,IAAoBA,EAAQ,MACzB,IAAIotK,GAAU,SAAUQ,GAAW,OAAOA,EAAQ5tK,OAE7DotK,EAAUvtK,UAAUo/J,KAAO,SAAUxwJ,GACjC,IAAIpL,EAAQC,KACZ,OAAO,IAAI8pK,GAAU,SAAUQ,GACvBvqK,EAAMwM,SAAWsC,EAAQ+6J,gBAAgBc,SACzCJ,EAAQn/J,EAAKpL,EAAMiqK,aAGnBjqK,EAAMkqK,QAAQ3qK,MAAK,SAAU5C,GAAS,OAAO4tK,EAAQn/J,EAAKzO,WAItEotK,EAAUvtK,UAAUouK,WAAa,SAAUC,EAAoBC,GAC3D,OAAO7qK,KAAKuM,SAAWsC,EAAQ+6J,gBAAgBc,SAAWG,EAAW7qK,KAAKgqK,YAAcY,GAE5Fd,EAAUvtK,UAAU2tK,OAAS,SAAUxtK,GACnCsD,KAAKuM,OAASsC,EAAQ+6J,gBAAgBc,SACtC1qK,KAAKgqK,WAAattK,EAClB6B,EAAQyB,KAAKiqK,SAAS,SAAUa,GAAU,OAAOA,EAAOpuK,OAE5DotK,EAAUvtK,UAAU4tK,SAAW,SAAU/mK,GACrCH,QAAQkD,KAAK,QAEV2jK,EAjDmB,GA6D1BiB,GAAuB,WACvB,SAASA,IACL/qK,KAAKgrK,WAAY,IAAI3uJ,MAAOS,UAOhC,OALAiuJ,EAAMxuK,UAAU0uK,MAAQ,SAAUp1I,GAC9B,IAAIq1I,GAAY,IAAI7uJ,MAAOS,UAAa9c,KAAKgrK,UAC7C/nK,QAAQkoK,KAAKt1I,EAAM,MAAQq1I,GAC3BlrK,KAAKgrK,WAAY,IAAI3uJ,MAAOS,WAEzBiuJ,EATe,GAkBtBK,GAAoD,WACpD,IAAInnK,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+mK,GAAkD,WASlD,OARAA,GAAa1uK,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJw2J,GAAWjpK,MAAMpC,KAAMW,YAE9B2qK,GAAsD,SAAUjqK,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAWklK,GACPA,EAAcA,EAAc,WAAa,GAAK,UAC9CA,EAAcA,EAAc,mBAAqB,GAAK,kBACtDA,EAAcA,EAAc,WAAa,GAAK,WAHlD,CAIGA,KAAkBA,GAAgB,KACrC,IAwMI0B,GAxMAC,GAAgC,SAAU3mK,GAE1C,SAAS2mK,EAAeC,GACpB,IAAI1rK,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAWjC,OAVAD,EAAM2rK,6BAA+B,IACrC3rK,EAAM4rK,wBAA0B,IAChC5rK,EAAM6rK,yBAA2B,IACjC7rK,EAAMitB,MAAQ68I,GAAcgC,QAI5B9rK,EAAM+rK,qBAAuB,EAC7B/rK,EAAMgsK,mBAAoB,EAC1BhsK,EAAM0rK,WAAaA,EACZ1rK,EA6JX,OA1KAqrK,GAAYI,EAAgB3mK,GAe5B2mK,EAAejvK,UAAUwiJ,cAAgB,WACrC/+I,KAAKgsK,iBAAmBhsK,KAAK8vG,mBAAmBm8D,uBAAyB,IACzEjsK,KAAK+rK,kBAAoB/rK,KAAK8vG,mBAAmBo8D,sBACjD,IAAIhnD,EAAKllH,KAAKyrK,WAAWplK,SACzBrG,KAAKmnH,mBAAmBjC,EAAI,aAAcllH,KAAKmsK,aAAa1hK,KAAKzK,OACjEA,KAAKmnH,mBAAmBjC,EAAI,aAAcllH,KAAKosK,aAAa3hK,KAAKzK,OACjEA,KAAKmnH,mBAAmBjC,EAAI,YAAallH,KAAKqsK,YAAY5hK,KAAKzK,OAC/DA,KAAKmnH,mBAAmBjC,EAAI,YAAallH,KAAKssK,YAAY7hK,KAAKzK,OAC/DA,KAAKmnH,mBAAmBjC,EAAI,UAAWllH,KAAKusK,UAAU9hK,KAAKzK,QAE/DwrK,EAAejvK,UAAU6J,QAAU,WAG/BpG,KAAKwsK,iBACL3nK,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCwrK,EAAejvK,UAAU4vK,aAAe,SAAU3/J,GAK9C,GAAIxM,KAAKgtB,OAAS68I,GAAcgC,QAAhC,CAIA,IAAIzgK,EAAQpL,KAAKysK,8BAAgC,IAAMzsK,KAAKgsK,iBAC5DhsK,KAAK0sK,qBAAuBnhK,OAAOE,WAAWzL,KAAK2sK,YAAYliK,KAAKzK,MAAOoL,GAC3EpL,KAAK4sK,eAAiBpgK,EACtBxM,KAAKgtB,MAAQ68I,GAAcgD,kBAE/BrB,EAAejvK,UAAU6vK,aAAe,WACpCpsK,KAAKwsK,kBAEThB,EAAejvK,UAAUgwK,UAAY,WACjCvsK,KAAKwsK,kBAEThB,EAAejvK,UAAUiwK,eAAiB,WAClCxsK,KAAKgtB,QAAU68I,GAAciD,SAC7B9sK,KAAK+sK,cAET/sK,KAAKgtK,gBACLhtK,KAAKgtB,MAAQ68I,GAAcgC,SAE/BL,EAAejvK,UAAU8vK,YAAc,SAAU7/J,GAI7CxM,KAAK4sK,eAAiBpgK,EAClBxM,KAAK+rK,mBACL/rK,KAAKgtB,QAAU68I,GAAciD,SAC7B9sK,KAAKitK,aACLjtK,KAAKktK,sCAGb1B,EAAejvK,UAAU+vK,YAAc,WACnCtsK,KAAKwsK,kBAEThB,EAAejvK,UAAUwwK,YAAc,WAG/B/sK,KAAKitK,cACLjtK,KAAKmtK,qBACL3B,EAAe4B,qBAAsB,IAAI/wJ,MAAOS,WAEpD9c,KAAKgtB,MAAQ68I,GAAcgC,SAE/BL,EAAejvK,UAAU4wK,mBAAqB,WAC1C,IAAIptK,EAAQC,KAEZ8jJ,GAAY9jJ,KAAKitK,YAAY5mK,SAAU,qBAGvC,IAAIgnK,EAA0BrtK,KAAKqtK,wBAC/BJ,EAAcjtK,KAAKitK,YACvB1hK,OAAOE,YAAW,WACd4hK,IACAttK,EAAMy4G,aAAa1K,YAAYm/D,KAChCjtK,KAAK4rK,0BACR5rK,KAAKqtK,6BAA0BhuK,EAC/BW,KAAKitK,iBAAc5tK,GAEvBmsK,EAAejvK,UAAUkwK,4BAA8B,WAEnD,IAAIr+I,GAAM,IAAI/R,MAAOS,UACjB6+I,EAAO6P,EAAe4B,oBAC1B,OAAQh/I,EAAMutI,EAAQ37J,KAAK2rK,yBAE/BH,EAAejvK,UAAUowK,YAAc,WACnC,IAAIvpK,EAASioK,GAAW,CAAEzhK,IAAK5J,KAAKi/F,QAASp1F,UAAW7J,KAAK6J,UAAWw/F,QAASrpG,KAAK8vG,mBAAmB0I,cAAgBx4G,KAAKyrK,WAAW6B,oBACzI,GAAK7sE,EAAOr9F,EAAO1G,OAAnB,CAIAsD,KAAKgtB,MAAQ68I,GAAciD,QAC3B9sK,KAAK8rK,uBAIL,IAAIpmK,EAAW1F,KAAKutK,4BAA4B9iK,KAAKzK,KAAMA,KAAK8rK,sBAChE9rK,KAAKwtK,qBAAqBC,oBAAoBrqK,GAAQu4J,KAAKj2J,QATvD1F,KAAKwsK,kBAWbhB,EAAejvK,UAAUgxK,4BAA8B,SAAUG,EAAqBT,GAClF,IAAIU,EAAqB3tK,KAAKgtB,QAAU68I,GAAciD,SAAW9sK,KAAK8rK,uBAAyB4B,EAC/F,GAAIC,EACA3tK,KAAKw4G,aAAa1K,YAAYm/D,OADlC,CAIA,IAAIW,EAAOX,EAAY5mK,SACvBrG,KAAKitK,YAAcA,EACdpoB,GAAc+oB,EAAM,eACrB9pB,GAAY8pB,EAAM,qBAEtB,IAAIC,EAAc7tK,KAAK8tK,aAAaC,SAAS,CACzCvlB,OAAQolB,IAERC,IACA7tK,KAAKqtK,wBAA0BQ,EAAYG,UAG/ChuK,KAAKktK,qCACLltK,KAAKiuK,qBAAuB1iK,OAAOE,WAAWzL,KAAK+sK,YAAYtiK,KAAKzK,MAAOA,KAAK0rK,gCAEpFF,EAAejvK,UAAU2wK,mCAAqC,WAC1DltK,KAAK8tK,aAAaI,6BAA6B,CAC3CzuK,KAAM,UACN8nK,WAAYvnK,KAAK4sK,eACjBuB,OAAQnuK,KAAKitK,YAAY5mK,SACzB+nK,OAAQ,MAGhB5C,EAAejvK,UAAUywK,cAAgB,WACjChtK,KAAK0sK,uBACLnhK,OAAOC,aAAaxL,KAAK0sK,sBACzB1sK,KAAK0sK,0BAAuBrtK,GAE5BW,KAAKiuK,uBACL1iK,OAAOC,aAAaxL,KAAKiuK,sBACzBjuK,KAAKiuK,0BAAuB5uK,IAGpCisK,GAAa,CACT18D,GAAU,iBACX48D,EAAejvK,UAAW,oBAAgB,GAC7C+uK,GAAa,CACT18D,GAAU,yBACX48D,EAAejvK,UAAW,4BAAwB,GACrD+uK,GAAa,CACT18D,GAAU,cACX48D,EAAejvK,UAAW,iBAAa,GAC1C+uK,GAAa,CACT18D,GAAU,YACX48D,EAAejvK,UAAW,eAAW,GACxC+uK,GAAa,CACTh9D,IACDk9D,EAAejvK,UAAW,gBAAiB,MACvCivK,EA3KwB,CA4KjC5kD,IAQEynD,GAAoD,WACpD,IAAIpqK,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDgqK,GAAsD,SAAUjtK,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D4pK,GAAiB,IAAIhF,GAErB3pK,GAA2B,SAAUiF,GAErC,SAASjF,EAAUwnJ,GACf,IAAIrnJ,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAgBjC,OAfAD,EAAMyuK,sBAAwB,GAE9BzuK,EAAM0lJ,WAAY,EAElB1lJ,EAAMg1G,SAAU,EAIhBh1G,EAAM0uK,OAASF,GAAetrI,OAG9BljC,EAAM2uK,eAAiB,GACnBtnB,GACArnJ,EAAM4uK,YAAYvnB,GAEfrnJ,EA0UX,OA5VAsuK,GAAYzuK,EAAWiF,GAoBvBjF,EAAUrD,UAAUqyK,wBAA0B,WAC1C5uK,KAAK6uK,qBAAuB7uK,KAAK8vG,mBAAmBg/D,2BAExDlvK,EAAUrD,UAAUwyK,UAAY,WAC5B,OAAO/uK,KAAKyuK,QAEhB7uK,EAAUrD,UAAU+wK,iBAAmB,WACnC,MAAO,CACH5wK,MAAOsD,KAAKgvK,YACZnhK,SAAU,YAGlBjO,EAAUrD,UAAU0yK,WAAa,SAAUC,GACvC,IAAInvK,EAAQC,KACRmvK,EAAgB,WACZpvK,EAAM8uK,qBACN9uK,EAAMsG,SAASw/I,gBAAgB,SAG/B9lJ,EAAMqvK,eAAiBrvK,EAAM+tG,YAAY/tG,EAAMqvK,iBAGnDC,EAAa,WACTtvK,EAAM8uK,qBACN9uK,EAAMsG,SAAS++G,aAAa,QAASrlH,EAAMivK,aAG3CjvK,EAAMqvK,eAAiBrvK,EAAMmrG,WAAW,IAAIsgE,GAAezrK,KAG/DC,KAAKgvK,aAAeE,IAChBlvK,KAAKgvK,aACLG,IAEkB,MAAlBD,IACAlvK,KAAKgvK,YAAcE,EACflvK,KAAKgvK,aACLK,OAMhBzvK,EAAUrD,UAAU+yK,8BAAgC,SAAUvsB,EAAYwsB,GACtE,IAAIxvK,EAAQC,KAGRwvK,EAAgBllB,GAAavH,EAAW0sB,YAC5ClxK,EAAQixK,GAAe,SAAUE,GAC7B,GAAMA,aAAqBthK,YAA3B,CAGA,IAAIuhK,EAAY5vK,EAAM6vK,2BAA2BF,GAAW,SAAUG,GAGlE9vK,EAAM+vK,uBAAuBJ,EAAWG,EAAKxpK,YAC9CkpK,GACH,GAAII,EAAW,CACX,GAAIA,EAAUI,UAAYL,EAAU5nK,SAASrK,OAAQ,CACjDsC,EAAMuvK,8BAA8BI,EAAWH,GAE/C,IAAIzrD,EAAQzmH,MAAMd,UAAU0X,MAAMrW,KAAK8xK,EAAU5nK,UACjD6nK,EAAUI,SAASjsD,GAGvB/jH,EAAMiwK,qBAAqBL,EAAW5sB,EAAY2sB,QAE7CA,EAAUD,YACf1vK,EAAMuvK,8BAA8BI,EAAWH,QAI3D3vK,EAAUrD,UAAUqzK,2BAA6B,SAAUzlF,EAASihB,EAAwBmkE,GACxF,IAAI9yK,EAAM0tF,EAAQ+3D,SACd+tB,EAAkBV,EAAYA,EAAUplF,EAAQP,aAAa,aAAUvqF,EACvE6wK,EAAiBlwK,KAAKmwK,0BAA0BC,kBAAkB3zK,GACtE,GAAIyzK,EAAgB,CAChB3E,GAAwBphF,EACxB,IAAIkmF,EAAe,IAAIH,EAAeD,GAGtC,OAFAI,EAAaC,mBAAmBtwK,MAChCA,KAAKkrG,WAAWmlE,EAAc,KAAMjlE,GAC7BilE,EAEX,OAAO,MAEXzwK,EAAUrD,UAAUuzK,uBAAyB,SAAUhrE,EAAQR,GAC3DkmD,GAAoB1lD,EAAOwH,YAAY,SAAU1rG,EAAMlE,GAAS,OAAO4nG,EAAK8gB,aAAaxkH,EAAMlE,OAEnGkD,EAAUrD,UAAUyzK,qBAAuB,SAAUK,EAActtB,EAAY2sB,GAC3E,IAAIa,EAAaF,EAAahqK,SAC9B08I,EAAWytB,aAAaD,EAAYb,GACpC3sB,EAAW2F,aAAa/7I,SAAS8jK,cAAcf,EAAUxtB,UAAWquB,GACpEvwK,KAAKqnH,eAAernH,KAAK8tG,YAAYrjG,KAAKzK,KAAMqwK,IAChDrwK,KAAK0wK,iCAAiCL,EAAcX,IAExD9vK,EAAUrD,UAAUm0K,iCAAmC,SAAUL,EAAcX,GAC3E,IAAIiB,EAAa3wK,KACjBA,KAAK4wK,2BAA0B,SAAU9oB,GACjC6oB,EAAW7oB,EAAcl7C,iBAAmB8iE,IAC5CiB,EAAW7oB,EAAcl7C,eAAiByjE,OAItDzwK,EAAUrD,UAAUq0K,0BAA4B,SAAU1rE,GACtD,IAAI2rE,EAAgBl0K,OAAO6E,eAAexB,MAC1C,MAAwB,MAAjB6wK,EAAuB,CAC1B,IAAI1kE,EAAW0kE,EAAcC,sBACzBC,EAAmB1oE,GAAgBwoE,EAAcv0K,aACjD6vG,GAAYA,EAAS4kE,IAAqB5kE,EAAS4kE,GAAkBC,gBACrEzyK,EAAQ4tG,EAAS4kE,GAAkBC,gBAAgB,SAAUlpB,GAAiB,OAAO5iD,EAAO4iD,MAEhG+oB,EAAgBl0K,OAAO6E,eAAeqvK,KAG9CjxK,EAAUrD,UAAUoyK,YAAc,SAAUvnB,EAAUmoB,GAClD,IAAI3B,EAAO5lB,GAAaZ,GACxBpnJ,KAAKixK,uBAAuBrD,EAAM2B,IAEtC3vK,EAAUrD,UAAU00K,uBAAyB,SAAU9mF,EAASolF,GAC5DvvK,KAAK4tK,KAAOzjF,EACZnqF,KAAK4tK,KAAKsD,cAAgBlxK,KAC1BA,KAAKmxK,gCACLnxK,KAAKoxK,qBAECpxK,KAAKw4G,cACPx4G,KAAKsvK,8BAA8BtvK,KAAKqG,SAAUkpK,IAG1D3vK,EAAUrD,UAAU80K,kCAAoC,WAG9CrxK,KAAKqG,UACPrG,KAAKsvK,8BAA8BtvK,KAAKqG,WAGhDzG,EAAUrD,UAAU60K,mBAAqB,WACrC,IAAIrxK,EAAQC,KACZ,GAAKA,KAAK4tK,KAAV,CAGA,IAAI+C,EAAa3wK,KACjBA,KAAK4wK,2BAA0B,SAAU9oB,GACrC,IAAIwpB,EAAY,SAAU9iK,GAAU,OAAOmiK,EAAW7oB,EAAcl7C,eAAiBp+F,GAIjF+iK,EAAmBzpB,EAAc0pB,aAC9BzxK,EAAM6tK,KAAKhkF,aAAa,SAAWk+D,EAAc0pB,YACxD,GAAID,EACAD,EAAUvxK,EAAM6tK,UAEf,CAED,IAAI6D,EAAgB1xK,EAAM6tK,KAAK9lB,cAAcA,EAAcA,eACvD2pB,GACAH,EAAUG,EAAcP,eAAiBO,SAKzD7xK,EAAUrD,UAAU40K,8BAAgC,WAChD,IAAIpxK,EAAQC,KAEZ,GADAA,KAAK0xK,mCACA1xK,KAAK4tK,KAAV,CAGA,IAAI+D,EAAkB3xK,KAAK4xK,uBAAuB,sBAC7CD,IAGA3xK,KAAKwuK,wBACNxuK,KAAKwuK,sBAAwB,IAEjCmD,EAAgBpzK,SAAQ,SAAUklD,GAC9B,IAAI0mC,EAAUpqF,EAAM8xK,cAAcpuH,EAAK5K,KACvC,GAAKsxC,EAAL,CAGA,IAAIsmB,EAAW1wG,EAAM0jD,EAAK79C,YAAY6E,KAAK1K,GAC3CoqF,EAAQqmB,iBAAiB/sD,EAAKwhE,UAAWxU,GACzC1wG,EAAMyuK,sBAAsBlvK,KAAK,CAAE2lH,UAAWxhE,EAAKwhE,UAAWxU,SAAUA,EAAUtmB,QAASA,WAGnGvqF,EAAUrD,UAAUu1K,+BAAiC,WACjD,IAAI/xK,EAAQC,KACR+xK,EAAgB/xK,KAAK4xK,uBAAuB,uBAC3CG,GAGLA,EAAcxzK,SAAQ,SAAUklD,GAC5B,IAAIgtD,EAAW1wG,EAAM0jD,EAAK79C,YAAY6E,KAAK1K,GAC3CA,EAAMonH,mBAAmBpnH,EAAMs0G,aAAc5wD,EAAKwhE,UAAWxU,OAGrE7wG,EAAUrD,UAAUq1K,uBAAyB,SAAUn1K,GACnD,IAAI6gC,EAAM,GACN00I,EAAYr1K,OAAO6E,eAAexB,MACtC,MAAoB,MAAbgyK,EAAmB,CACtB,IAAI7lE,EAAW6lE,EAAUlB,sBACrBC,EAAmB1oE,GAAgB2pE,EAAU11K,aAC7C6vG,GAAYA,EAAS4kE,IAAqB5kE,EAAS4kE,GAAkBt0K,KACrE6gC,EAAMA,EAAIxpB,OAAOq4F,EAAS4kE,GAAkBt0K,KAEhDu1K,EAAYr1K,OAAO6E,eAAewwK,GAEtC,OAAO10I,GAEX19B,EAAUrD,UAAUm1K,iCAAmC,WAC9C1xK,KAAKwuK,wBAGVjwK,EAAQyB,KAAKwuK,uBAAuB,SAAUhiK,GAC1CA,EAAE29E,QAAQumB,oBAAoBlkG,EAAEy4G,UAAWz4G,EAAEikG,aAEjDzwG,KAAKwuK,sBAAwB,KAEjC5uK,EAAUrD,UAAU8J,OAAS,WACzB,OAAOrG,KAAK4tK,MAEhBhuK,EAAUrD,UAAU01K,oBAAsB,WACtC,OAAOjyK,KAAK4tK,MAEhBhuK,EAAUrD,UAAU+zK,mBAAqB,SAAUxtK,GAC/C9C,KAAKkyK,gBAAkBpvK,GAE3BlD,EAAUrD,UAAU41K,mBAAqB,WACrC,OAAOnyK,KAAKkyK,iBAIhBtyK,EAAUrD,UAAU61K,OAAS,SAAUxE,GACnC5tK,KAAK4tK,KAAOA,GAEhBhuK,EAAUrD,UAAU81K,oBAAsB,SAAUzqB,GAChD,OAAO5nJ,KAAK4tK,KAAK9lB,cAAcF,IAEnChoJ,EAAUrD,UAAU+1K,yBAA2B,SAAU1qB,GACrD,OAAO5nJ,KAAK4tK,KAAK9lB,cAAcF,IAEnChoJ,EAAUrD,UAAUm+B,YAAc,SAAU63I,EAAU13B,GAIlD,GAHKA,IACDA,EAAY76I,KAAK4tK,MAEL,MAAZ2E,EAGJ,GAAIloB,GAAgBkoB,GAChB13B,EAAUngH,YAAY63I,OAErB,CACD,IAAIC,EAAiBD,EACrB13B,EAAUngH,YAAY83I,EAAensK,UACrCrG,KAAKqnH,eAAernH,KAAK8tG,YAAYrjG,KAAKzK,KAAMwyK,MAGxD5yK,EAAUrD,UAAU+8I,YAAc,WAC9B,OAAOt5I,KAAKylJ,WAEhB7lJ,EAAUrD,UAAUkgH,WAAa,SAAU1H,GACnCA,IAAY/0G,KAAK+0G,UACjB/0G,KAAK+0G,QAAUA,EACf0H,GAAWz8G,KAAK4tK,KAAM74D,KAG9Bn1G,EAAUrD,UAAUipJ,aAAe,SAAUC,GACzC,GAAIA,IAAczlJ,KAAKylJ,UAAW,CAC9BzlJ,KAAKylJ,UAAYA,EACjBD,GAAaxlJ,KAAK4tK,KAAMnoB,GACxB,IAAI7hC,EAAU,CACVnkH,KAAMG,EAAU6yK,wBAChB19D,QAAS/0G,KAAKylJ,WAElBzlJ,KAAKyM,cAAcm3G,KAG3BhkH,EAAUrD,UAAU6J,QAAU,WAC1BpG,KAAK0xK,mCACD1xK,KAAKovK,iBACLpvK,KAAKovK,eAAiBpvK,KAAK8tG,YAAY9tG,KAAKovK,iBAEhDvqK,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCJ,EAAUrD,UAAUm2K,oBAAsB,SAAUtrK,EAAOqpG,GACvD,IAAI1wG,EAAQC,KACZA,KAAK4tK,KAAKp9D,iBAAiBppG,EAAOqpG,GAClCzwG,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM6tK,KAAKl9D,oBAAoBtpG,EAAOqpG,OAEnF7wG,EAAUrD,UAAUunJ,YAAc,SAAUC,GACxC,IAAI4uB,GAAkD,IAAnC3yK,KAAK0uK,eAAe3qB,GACnC4uB,IACA7uB,GAAY9jJ,KAAK4tK,KAAM7pB,GACvB/jJ,KAAK0uK,eAAe3qB,IAAa,IAGzCnkJ,EAAUrD,UAAU2nJ,eAAiB,SAAUH,GAC3C,IAAI4uB,GAAkD,IAAnC3yK,KAAK0uK,eAAe3qB,GACnC4uB,IACAzuB,GAAelkJ,KAAK4tK,KAAM7pB,GAC1B/jJ,KAAK0uK,eAAe3qB,IAAa,IAGzCnkJ,EAAUrD,UAAU8nJ,oBAAsB,SAAUN,EAAWO,GAC3D,IAAIquB,EAAe3yK,KAAK0uK,eAAe3qB,KAAeO,EAClDquB,IACAtuB,GAAoBrkJ,KAAK4tK,KAAM7pB,EAAWO,GAC1CtkJ,KAAK0uK,eAAe3qB,GAAaO,IAGzC1kJ,EAAUrD,UAAUqtF,aAAe,SAAUntF,GACzC,IAAImxK,EAAO5tK,KAAK4tK,KAChB,OAAOA,EAAOA,EAAKhkF,aAAantF,GAAO,MAE3CmD,EAAUrD,UAAUs1K,cAAgB,SAAUe,GAC1C,OAAO5yK,KAAKqyK,oBAAoB,SAAYO,EAAU,OAE1DhzK,EAAU6yK,wBAA0B,mBACpCnE,GAAa,CACT1/D,GAAU,8BACXhvG,EAAUrD,UAAW,iCAA6B,GACrD+xK,GAAa,CACTngE,IACDvuG,EAAUrD,UAAW,0BAA2B,MACnD+xK,GAAa,CACTngE,IACDvuG,EAAUrD,UAAW,oCAAqC,MAC7D+xK,GAAa,CACThgE,IACD1uG,EAAUrD,UAAW,iCAAkC,MACnDqD,EA7VmB,CA8V5BgnH,IAQEisD,GAAoD,WACpD,IAAI5uK,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDwuK,GAAgC,SAAUjuK,GAE1C,SAASiuK,IACL,OAAkB,OAAXjuK,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAiB/D,OAnBA6yK,GAAYC,EAAgBjuK,GAI5BiuK,EAAev2K,UAAUw2K,QAAU,WAC/B,OAAO,GAEXD,EAAev2K,UAAU+zK,mBAAqB,SAAUz1B,GACpDiJ,GAAYjJ,EAAUx0I,SAAU,gBAChCxB,EAAOtI,UAAU+zK,mBAAmB1yK,KAAKoC,KAAM66I,IAEnDi4B,EAAev2K,UAAU6J,QAAU,WAC/B,IAAIqlK,EAAazrK,KAAKkyK,gBAClBc,EAAYvH,GAAcA,EAAW1kD,UACrCisD,GACA9uB,GAAeunB,EAAWplK,SAAU,gBAExCxB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAE3B8yK,EApBwB,CAqBjClzK;;;;;;;;;;;;;AAQF,SAASqzK,GAAcC,GACnB,OAAOC,GAAkB1oK,KAAKzK,KAAMkzK,OAAU7zK,GAElD,SAAS+zK,GAAYv6H,GACjB,OAAOs6H,GAAkB1oK,KAAKzK,KAAM,QAAU64C,EAAM,IAAKA,GAE7D,SAASs6H,GAAkBD,EAAU1B,EAAaziE,EAAgBC,EAAuB9vG,GACpE,OAAbg0K,EAIiB,kBAAVh0K,EAIXm0K,GAAiBtkE,EAAgB,iBAAkB,CAC/CnC,cAAeoC,EACf84C,cAAeorB,EACf1B,YAAaA,IANbvuK,QAAQC,MAAM,oDAJdD,QAAQC,MAAM,sDActB,SAASowK,GAAaruD,GAClB,OAAOsuD,GAAiB9oK,KAAKzK,KAAMilH,GAEvC,SAASsuD,GAAiBtuD,EAAWlpH,EAAQ6J,GACxB,MAAbq/G,EAIJouD,GAAiBt3K,EAAQ,sBAAuB,CAC5C6J,WAAYA,EACZq/G,UAAWA,IALXhiH,QAAQC,MAAM,8CAStB,SAASswK,GAAY36H,EAAKosE,GACtB,OAAOwuD,GAAgBhpK,KAAKzK,KAAM64C,EAAKosE,GAE3C,SAASwuD,GAAgB56H,EAAKosE,EAAWlpH,EAAQ6J,GAC5B,MAAbq/G,EAIJouD,GAAiBt3K,EAAQ,qBAAsB,CAC3C6J,WAAYA,EACZq/G,UAAWA,EACXpsE,IAAKA,IANL51C,QAAQC,MAAM,6CAyBtB,SAASmwK,GAAiBt3K,EAAQU,EAAKC,GAEnC,IAAIyD,EAAQuzK,GAAmB33K,EAAQssG,GAAgBtsG,EAAOO,cACzD6D,EAAM1D,KACP0D,EAAM1D,GAAO,IAEjB0D,EAAM1D,GAAK6C,KAAK5C,GAEpB,SAASg3K,GAAmB33K,EAAQ43K,GAOhC,OANK53K,EAAO+0K,wBACR/0K,EAAO+0K,sBAAwB,IAE9B/0K,EAAO+0K,sBAAsB6C,KAC9B53K,EAAO+0K,sBAAsB6C,GAAgB,IAE1C53K,EAAO+0K,sBAAsB6C;;;;;;GASxC,IAq3BIC,GAr3BAC,GAAyB,WACzB,SAASA,KAwBT,OAtBAA,EAAQC,UAAY,EACpBD,EAAQE,IAAM,EACdF,EAAQG,MAAQ,GAChBH,EAAQI,MAAQ,GAChBJ,EAAQK,OAAS,GACjBL,EAAQM,MAAQ,GAChBN,EAAQO,KAAO,GACfP,EAAQQ,GAAK,GACbR,EAAQS,MAAQ,GAChBT,EAAQU,KAAO,GACfV,EAAQW,OAAS,GACjBX,EAAQ14J,EAAI,GACZ04J,EAAQjtJ,EAAI,GACZitJ,EAAQj2J,EAAI,GACZi2J,EAAQp5J,EAAI,GACZo5J,EAAQ1sJ,EAAI,GACZ0sJ,EAAQ/uJ,EAAI,GACZ+uJ,EAAQY,GAAK,IACbZ,EAAQa,QAAU,GAClBb,EAAQc,UAAY,GACpBd,EAAQe,UAAY,GACpBf,EAAQgB,SAAW,GACZhB,EAzBiB,GAkCxBiB,GAAoD,WACpD,IAAI7wK,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDywK,GAAsD,SAAU1zK,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DqwK,GAAgC,SAAUnwK,GAE1C,SAASmwK,IACL,OAAOnwK,EAAOjH,KAAKoC,KAAMg1K,EAAeC,WAAaj1K,KA8FzD,OAhGA80K,GAAYE,EAAgBnwK,GAI5BmwK,EAAez4K,UAAU2I,KAAO,SAAU9B,GACtCpD,KAAKoD,OAASA,EACd,IACI8xK,EADAC,EAASn1K,KAAKm1K,OAGd/xK,EAAOgyK,iBACPp1K,KAAKq1K,oBAAqB,EACtBjyK,EAAOkyK,WAAazB,GAAQC,WAAa1wK,EAAOkyK,WAAazB,GAAQW,OACrEU,EAAa,GAER9xK,EAAOmyK,UACZL,EAAa9xK,EAAOmyK,WAGpBL,EAAal1K,KAAKw1K,cAAcpyK,GAC5BA,EAAOkyK,WAAazB,GAAQY,KAC5Bz0K,KAAKy1K,qBAAsB,MAKnCz1K,KAAKq1K,oBAAqB,EAC1BH,EAAal1K,KAAKw1K,cAAcpyK,IAElB,MAAd8xK,GACAC,EAAOO,SAASR,GAAY,GAEhCl1K,KAAKmnH,mBAAmBguD,EAAO9uK,SAAU,WAAW,SAAUe,GAC1D,IAAI09J,EAAU19J,EAAM09J,QAChBA,IAAY+O,GAAQa,SAAW5P,IAAY+O,GAAQc,WACnDvtK,EAAMuuK,qBAIlBX,EAAez4K,UAAUq5K,iBAAmB,WACxC,IAAIC,EAAY71K,KAAK8vG,mBAAmBygC,oBACpC4kC,EAASn1K,KAAKm1K,OAElB,GADAA,EAAOW,kBAAkBD,EAAU,kBAAmB,iBACjD71K,KAAKq1K,mBAAV,CAMKv0B,MACDq0B,EAAOlD,sBAAsB8D,QAEjC,IAAIC,EAAUb,EAAOc,kBACrB,GAAIj2K,KAAKy1K,oBACLO,EAAQpxD,aAEP,CAKD,IAAIloH,EAAQy4K,EAAOhnC,WACfr7H,EAAO2tF,EAAO/jG,IAAUA,EAAMe,QAAW,EACzCqV,GACAkjK,EAAQE,kBAAkBpjK,EAAKA,MAK3CkiK,EAAez4K,UAAU45K,QAAU,WAC/B,IAAIhB,EAASn1K,KAAKm1K,OACdiB,EAAUjB,EAAOlD,sBACjB+D,EAAUb,EAAOc,kBACrBG,EAAQL,QACRC,EAAQpxD,UAEZowD,EAAez4K,UAAU85K,SAAW,WAChC,IAAIL,EAAUh2K,KAAKm1K,OAAOc,kBACtBv1B,MACAs1B,EAAQE,kBAAkB,EAAG,IAGrClB,EAAez4K,UAAU4xI,SAAW,WAChC,IAAIgnC,EAASn1K,KAAKm1K,OAClB,OAAOn1K,KAAKoD,OAAOkzK,WAAWnB,EAAOhnC,aAEzC6mC,EAAez4K,UAAUi5K,cAAgB,SAAUpyK,GAC/C,IAAImzK,EAAcnzK,EAAOozK,cAAgBpzK,EAAOsE,OAAOm1G,YAAY45D,QACnE,OAAOF,EAAcnzK,EAAOmzK,YAAYnzK,EAAO1G,OAAS0G,EAAO1G,OAEnEs4K,EAAez4K,UAAUw2K,QAAU,WAC/B,OAAO,GAEXiC,EAAeC,SAAW,0HAC1BF,GAAa,CACT3B,GAAY,WACb4B,EAAez4K,UAAW,cAAU,GAChCy4K,EAjGwB,CAkGjClC,IAUE4D,GAAiC,WACjC,SAASA,EAAgBrtE,EAASmkE,EAAsBmJ,EAAqBC,GACzE,IAAI72K,EAAQC,KACZA,KAAK62K,OAAQ,EACb72K,KAAKqpG,QAAUA,EACfmkE,EAAqBsJ,iBAAiBH,GAAqBhb,MAAK,SAAUob,GAEjEh3K,EAAM82K,OAIX92K,EAAMg3K,SAAWA,EACZA,IAGLH,EAAQl8I,YAAYq8I,EAAS1wK,UACzB0wK,EAASnB,kBACTmB,EAASnB,mBAET71K,EAAMi3K,WACND,EAASz6J,QAAQvc,EAAMi3K,aAZvB3tE,EAAQyE,YAAYipE,MA8ChC,OA9BAL,EAAgBn6K,UAAU6J,QAAU,WAChCpG,KAAK62K,OAAQ,EACb72K,KAAK+2K,SAAW/2K,KAAKqpG,QAAQyE,YAAY9tG,KAAK+2K,WAElDL,EAAgBn6K,UAAUggB,QAAU,WAChC,OAAOvc,KAAK+2K,SAAW/2K,KAAK+2K,SAASx6J,UAAYvc,KAAKg3K,WAE1DN,EAAgBn6K,UAAU+f,QAAU,SAAU5f,GACtCsD,KAAK+2K,SACL/2K,KAAK+2K,SAASz6J,QAAQ5f,GAGtBsD,KAAKg3K,UAAYt6K,GAGzBg6K,EAAgBn6K,UAAU06K,oBAAsB,SAAUC,GAClDl3K,KAAK+2K,UAAY/2K,KAAK+2K,SAASE,qBAC/Bj3K,KAAK+2K,SAASE,oBAAoBC,IAG1CR,EAAgBn6K,UAAUu5K,kBAAoB,SAAUvZ,GAChDv8J,KAAK+2K,UAAY/2K,KAAK+2K,SAASjB,mBAC/B91K,KAAK+2K,SAASjB,kBAAkBvZ,IAGxCma,EAAgBn6K,UAAUq5K,iBAAmB,SAAUxyK,GAC/CpD,KAAK+2K,UAAsD,oBAAnC/2K,KAAK+2K,SAASnB,kBACtC51K,KAAK+2K,SAASnB,iBAAiBxyK,IAGhCszK,EAtDyB,GAgEhCS,GAAgC,WAChC,SAASA,IACLn3K,KAAKo3K,oBAAsB,GAyD/B,OAvDAD,EAAe56K,UAAU2I,KAAO,SAAU9B,EAAQi0K,GAC9Cr3K,KAAKs3K,cAAgBl0K,EAAOk0K,eAAiBD,EAC7Cr3K,KAAKu3K,mBACLv3K,KAAKw3K,kBAAkBp0K,IAE3B+zK,EAAe56K,UAAUk7K,iBAAmB,WACxC,OAAOz3K,KAAKs3K,eAEhBH,EAAe56K,UAAUg7K,iBAAmB,WACxC,IAAIx3K,EAAQC,KACPA,KAAKs3K,eAGVt3K,KAAKs3K,cAAc/4K,SAAQ,SAAUm5K,GACjC,GAA4B,kBAAjBA,EAAX,CAGA,IAAIC,EAAqB,CAAC,aAAc,cAAe,QACnDr0E,EAAMq0E,GAAoB,SAAUl7K,GACpC,QAAKi7K,EAAaj7K,KACdwG,QAAQkD,KAAK,8DAAgE1J,EAAM,MAC5E,QAIXsD,EAAMq3K,oBAAoBM,EAAaE,YAAcF,QAIjEP,EAAe56K,UAAUi7K,kBAAoB,SAAUp0K,GACnD,GAAIA,EAAOy0K,cACP73K,KAAK63K,cAAgBz0K,EAAOy0K,mBAE3B,GAAI73K,KAAKs3K,cAAc75K,QAAU,EAAG,CACrC,IAAIq6K,EAAoB93K,KAAKs3K,cAAc,GACV,kBAAtBQ,EACP93K,KAAK63K,cAAgBC,EAEhBA,EAAkBF,WACvB53K,KAAK63K,cAAgBC,EAAkBF,WAGvC30K,QAAQkD,KAAK,uFAIjBlD,QAAQkD,KAAK,0CAGrBgxK,EAAe56K,UAAUw7K,iBAAmB,WACxC,OAAO/3K,KAAK63K,eAEhBV,EAAe56K,UAAUy7K,gBAAkB,SAAUp3K,GACjD,OAAOZ,KAAKo3K,oBAAoBx2K,IAE7Bu2K,EA3DwB,GAoE/Bc,GAA6B,CAC7B79E,YAAa,QACb89E,YAAa,QACbC,YAAa,QACbC,aAAc,SACdC,WAAY,cACZC,aAAc,gBACdC,WAAY,cACZC,UAAW,aACXr+E,UAAW,YACXs+E,MAAO,aACPp+E,OAAQ,SACRC,SAAU,YACVC,SAAU,YACVC,YAAa,eACbG,QAAS,WACT+9E,aAAc,OACdC,WAAY,KACZl+E,gBAAiB,sBACjBC,mBAAoB,yBACpBE,SAAU,WACVC,YAAa,eACbC,WAAY,cACZC,SAAU,YACVC,aAAc,MACdC,YAAa,KACb29E,cAAe,cASfC,GAAoD,WACpD,IAAI50K,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDw0K,GAAsD,SAAUz3K,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAY5Do0K,GAAuC,SAAUl0K,GAOjD,SAASk0K,EAAsB3xB,EAAU4xB,QACR,IAAzBA,IAAmCA,GAAuB,GAC9D,IAAIj5K,EAAQ8E,EAAOjH,KAAKoC,KAAMonJ,IAAapnJ,KAG3C,OAFAD,EAAMi5K,qBAAuBA,EAC7Bj5K,EAAMk5K,mBAAoB,EACnBl5K,EA8KX,OAzLA84K,GAAYE,EAAuBl0K,GAanCk0K,EAAsBx8K,UAAUwiJ,cAAgB,WAC5C,IAAIh/I,EAAQC,KACRk5K,EAAmBl5K,KAAKiyK,sBACvBiH,IAGLp1B,GAAYo1B,EAAkBH,EAAsBI,qBAChDn5K,KAAKg5K,uBACLh5K,KAAKo5K,YAAcp5K,KAAKq5K,eAAe,OACvCr5K,KAAKs5K,eAAiBt5K,KAAKq5K,eAAe,UAC1Cr5K,KAAKu5K,eACLv5K,KAAKw5K,oBACLx5K,KAAKy5K,iBAAgB,SAAUC,GAAS,OAAO35K,EAAMonH,mBAAmBuyD,EAAO,QAAS35K,EAAM45K,QAAQlvK,KAAK1K,QAE/GC,KAAK45K,oBAAoBV,GACzBl5K,KAAKmnH,mBAAmB+xD,EAAkB,UAAWl5K,KAAK65K,UAAUpvK,KAAKzK,OACzEA,KAAKmnH,mBAAmB+xD,EAAkB,WAAYl5K,KAAK85K,WAAWrvK,KAAKzK,SAK/E+4K,EAAsBx8K,UAAUw9K,kBAAoB,SAAUC,QACvC,IAAfA,IAAyBA,GAAa,GAC1C,IAAIz0B,EAAYvlJ,KAAKi6K,gBAAgBC,sBAAsBl6K,KAAKiyK,uBAC5DjyK,KAAKg5K,sBAAwBh5K,KAAKm6K,uBAElC50B,EAAUjsH,OAAO,EAAG,GACpBisH,EAAUjsH,OAAOisH,EAAU9nJ,OAAS,EAAG,IAEtC8nJ,EAAU9nJ,QAGf8nJ,EAAUy0B,EAAaz0B,EAAU9nJ,OAAS,EAAI,GAAGs4K,SAKrDgD,EAAsBx8K,UAAU69K,aAAe,SAAU5tK,GACrD,IAAIzM,EAAQC,KACZ,IAAIwM,EAAE6tK,iBAAN,CAGA,IAAIF,EAAqBn6K,KAAKm6K,qBAC1Bn6K,KAAKg5K,sBAAwBmB,GAC7Bn6K,KAAKs6K,sBAET,IAAIC,EAAWv6K,KAAKi6K,gBAAgBO,yBAAyBx6K,KAAKiyK,uBAAuB,EAAOzlK,EAAEo0H,UAC9F5gI,KAAKg5K,sBAAwBmB,GAG7B1uK,YAAW,WAAc,OAAO1L,EAAMy5K,sBAAwB,GAE7De,IAGLA,EAASxE,QACTvpK,EAAEmpK,oBAENoD,EAAsBx8K,UAAUs9K,UAAY,SAAUrtK,GAC9CxM,KAAKg5K,sBACLh5K,KAAKs6K,uBAGbvB,EAAsBx8K,UAAUu9K,WAAa,SAAUttK,GAC/CxM,KAAKg5K,uBAAyBh5K,KAAKiyK,sBAAsBr3E,SAASpuF,EAAEiuK,gBACpEz6K,KAAKw5K,qBAGbT,EAAsBx8K,UAAUm+K,yBAA2B,SAAUC,GAEjE,QADW,IAAPA,IAAiBA,GAAK,GACrB36K,KAAKg5K,qBAAV,CAGAh5K,KAAKw5K,oBACLx5K,KAAKi5K,mBAAoB,EACzB,IAAI2B,EAAkBD,EAAK36K,KAAKo5K,YAAcp5K,KAAKs5K,eAC/CsB,GACAA,EAAgB7E,UAGxBgD,EAAsBx8K,UAAUm+B,YAAc,SAAU63I,EAAU13B,GAC9D,GAAI76I,KAAKg5K,qBAAsB,CACtB3uB,GAAgBkoB,KACjBA,EAAWA,EAASlsK,UAExB,IAAIizK,EAAiBt5K,KAAKs5K,eACtBA,EACAA,EAAe3wB,sBAAsB,cAAe4pB,GAGpD1tK,EAAOtI,UAAUm+B,YAAY98B,KAAKoC,KAAMuyK,EAAU13B,QAItDh2I,EAAOtI,UAAUm+B,YAAY98B,KAAKoC,KAAMuyK,EAAU13B,IAG1Dk+B,EAAsBx8K,UAAU88K,eAAiB,SAAUwB,GACvD,IAAIC,EAAWnuK,SAASa,cAAc,OAItC,OAHAstK,EAAS92B,UAAUnmD,IAAI,gBACvBi9E,EAAS92B,UAAUnmD,IAAI,gBAAkBg9E,GACzCC,EAAS11D,aAAa,OAAQ,gBACvB01D,GAEX/B,EAAsBx8K,UAAUg9K,aAAe,WAC3C,IAAIwB,EAAc/6K,KAAKiyK,sBACvB8I,EAAYpyB,sBAAsB,aAAc3oJ,KAAKo5K,aACrD2B,EAAYpyB,sBAAsB,YAAa3oJ,KAAKs5K,iBAExDP,EAAsBx8K,UAAUk9K,gBAAkB,SAAU/zK,GACpD1F,KAAKo5K,aACL1zK,EAAS1F,KAAKo5K,aAEdp5K,KAAKs5K,gBACL5zK,EAAS1F,KAAKs5K,iBAGtBP,EAAsBx8K,UAAUq9K,oBAAsB,SAAUhM,GAC5D,IAAI7tK,EAAQC,KACZA,KAAKmnH,mBAAmBymD,EAAM,WAAW,SAAUphK,GAC3CA,EAAE6tK,kBAAoB51D,GAA2Bj4G,KAGjDzM,EAAMi7K,2BAA2BxuK,GACjCg4G,GAAyBh4G,GAGzBA,EAAEs4J,UAAY+O,GAAQE,IACtBh0K,EAAMq6K,aAAa5tK,GAEdzM,EAAMk7K,eACXl7K,EAAMk7K,cAAczuK,QAIhCusK,EAAsBx8K,UAAUy+K,2BAA6B,SAAUxuK,GACnE,OAAO,GAEXusK,EAAsBx8K,UAAUo9K,QAAU,SAAUntK,GAC5CxM,KAAKi5K,kBACLj5K,KAAKi5K,mBAAoB,EAG7Bj5K,KAAK+5K,kBAAkBvtK,EAAEzQ,SAAWiE,KAAKs5K,iBAE7CP,EAAsBx8K,UAAUi9K,kBAAoB,WAChD,IAAIz5K,EAAQC,KACZA,KAAKy5K,iBAAgB,SAAUC,GAAS,OAAOA,EAAMt0D,aAAa,WAAYrlH,EAAM+vG,mBAAmBorE,uBAE3GnC,EAAsBx8K,UAAU+9K,oBAAsB,WAClDt6K,KAAKy5K,iBAAgB,SAAUC,GAAS,OAAOA,EAAM7zB,gBAAgB,gBAEzEkzB,EAAsBx8K,UAAU49K,mBAAqB,WACjD,QAASn6K,KAAKo5K,aAAep5K,KAAKo5K,YAAYzvF,aAAa,aAE/DovF,EAAsBx8K,UAAU4+K,SAAW,WACvC,IAAIhB,EAAqBn6K,KAAKm6K,qBAC9BzyB,GAAa1nJ,KAAKiyK,uBACdjyK,KAAKg5K,uBACLh5K,KAAKu5K,eACDY,GACAn6K,KAAKw5K,sBAIjBT,EAAsBI,oBAAsB,mBAC5CL,GAAa,CACTlqE,GAAU,oBACXmqE,EAAsBx8K,UAAW,uBAAmB,GACvDu8K,GAAa,CACTxqE,IACDyqE,EAAsBx8K,UAAW,gBAAiB,MAC9Cw8K,EA1L+B,CA2LxCn5K,IAQEw7K,GAAoD,WACpD,IAAIn3K,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+2K,GAAsD,SAAUh6K,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAO5D22K,GAAgC,SAAUz2K,GAE1C,SAASy2K,EAAeC,GACpB,IAAIx7K,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAWjC,OAVAD,EAAMw7K,cAAgBA,EACtBx7K,EAAMy7K,aAAc,EACpBz7K,EAAM07K,UAAY,KAOlB17K,EAAM27K,aAAe,KACd37K,EA2QX,OAxRAq7K,GAAYE,EAAgBz2K,GAe5By2K,EAAe/+K,UAAUo/K,eAAiB,WACtC,OAAO37K,KAAK61K,UAAU71K,KAAKu7K,gBAG/BD,EAAe/+K,UAAUq/K,gBAAkB,WACvC34K,QAAQkD,KAAK,4SACbnG,KAAK67K,qBAAqBC,yBAE9BR,EAAe/+K,UAAU++G,eAAiB,WAEtC,QAASt7G,KAAK07K,cAElBJ,EAAe/+K,UAAUwiJ,cAAgB,WACrC/+I,KAAK+7K,gBACLl3K,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,OAExCs7K,EAAe/+K,UAAUw/K,cAAgB,SAAUxM,GAC/C,IAAIyM,EAA4B,wGAA6Gh8K,KAAKi8K,mBAAqB,wCAA2Cj8K,KAAKk8K,qBAAuB,+CAC9Ol8K,KAAK2uK,YAAYqN,EAAgBzM,IAErC+L,EAAe/+K,UAAU2I,KAAO,SAAU9B,GACtC,IAAIrD,EAAQC,KACZA,KAAKm8K,UAAU/4K,GACfpD,KAAKo8K,mBAAkB,GAAMzgB,MAAK,WAC9B57J,EAAMs8K,qBACNt8K,EAAMu8K,6BAGdhB,EAAe/+K,UAAU4/K,UAAY,SAAU/4K,GAG3C,GAFAk4K,EAAeiB,yBAAyBn5K,GACxCpD,KAAK67K,qBAAuBz4K,EACC,SAAzBA,EAAOo5K,cACPx8K,KAAKy8K,mBAAoB,OAExB,GAA6B,UAAzBr5K,EAAOo5K,cACZx8K,KAAKy8K,mBAAoB,MAExB,CAED,IAAIC,EAAgB,CAACtrE,GAAUW,2BAA4BX,GAAUQ,yBACrE5xG,KAAKy8K,kBAAoBC,EAAc37K,QAAQf,KAAKk4I,SAASykC,YAAc,EAE/E38K,KAAKw7K,YAAcF,EAAesB,iBAAiBx5K,GACnDpD,KAAK68K,qBAETvB,EAAe/+K,UAAUsgL,kBAAoB,WACzC,IAAI98K,EAAQC,KACRwnK,EAAUxnK,KAAK67K,qBAAqBrU,QACxC,GAAKA,KAAWA,EAAQ/pK,OAAS,GAAjC,CAGA,IAAIq/K,EAAgBnwK,SAASa,cAAc,OAC3Cs2I,GAAYg5B,EAAe,yBAC3B,IAAIC,EAAY,SAAUt9K,GACtB,IAAIi4B,EACAslJ,EACJ,OAAQv9K,GACJ,IAAK,QACDi4B,EAAO33B,EAAM81K,UAAU,eACvBmH,EAAgB,SAAUxwK,GAAK,OAAOzM,EAAMk9K,WAAU,GAAO,EAAOzwK,IACpE,MACJ,IAAK,QACDkrB,EAAO33B,EAAM81K,UAAU,eACvBmH,EAAgB,WAAc,OAAOj9K,EAAMm9K,aAC3C,MACJ,IAAK,QACDxlJ,EAAO33B,EAAM81K,UAAU,eACvBmH,EAAgB,WAAc,OAAOj9K,EAAMo9K,aAC3C,MACJ,IAAK,SACDzlJ,EAAO33B,EAAM81K,UAAU,gBACvBmH,EAAgB,SAAUxwK,GAAKzM,EAAMq9K,WAAW5wK,IAChD,MACJ,QAEI,YADAvJ,QAAQkD,KAAK,iCAGrB,IAAI07I,EAASmG,GAEb,wEAA6EvoJ,EAAO,gHAAqHi4B,EAAO,+BAChNolJ,EAAcpiJ,YAAYmnH,GAC1B9hJ,EAAMonH,mBAAmB06B,EAAQ,QAASm7B,IAE9C5T,GAAa5B,GAASjpK,SAAQ,SAAUkB,GAAQ,OAAOs9K,EAAUt9K,MACjEO,KAAKqG,SAASq0B,YAAYoiJ,KAE9BxB,EAAeiB,yBAA2B,SAAUn5K,GAChD,IAAIokK,EAAUpkK,EAAOokK,SAAW,GAChC,KAAIA,EAAQ/pK,OAAS,GAArB,CAGA,IAAI4/K,EAAcj6K,EAAOi6K,YAAaC,EAAcl6K,EAAOk6K,YAAaC,EAAcn6K,EAAOm6K,YACzFA,IACAt6K,QAAQkD,KAAK,iHACbqhK,EAAQloK,KAAK,UAEbg+K,IACAr6K,QAAQkD,KAAK,iHACbqhK,EAAQloK,KAAK,UAEb+9K,IACAp6K,QAAQkD,KAAK,iHACbqhK,EAAQloK,KAAK,UAEb8D,EAAOhB,QACPa,QAAQkD,KAAK,yGACbqhK,EAAQloK,KAAK,UAEjB8D,EAAOokK,QAAUA,IAGrB8T,EAAe/+K,UAAUihL,qBAAuB,WAC5C,OAAO,GAEXlC,EAAe/+K,UAAU+/K,uBAAyB,WAC9C,IAAImB,EAAanC,EAAeoC,cAAc19K,KAAK67K,qBAAsB77K,KAAKw9K,wBAC9Ex9K,KAAK29K,kBAAoB5zK,GAAS/J,KAAKi9K,UAAUxyK,KAAKzK,MAAOy9K,IAEjEnC,EAAe/+K,UAAUqhL,SAAW,WAChC,OAAO59K,KAAK07K,cAEhBJ,EAAe/+K,UAAUshL,SAAW,SAAU32K,GAC1C,IAAInH,EAAQC,KACRyqK,EAAUvjK,EAAQlH,KAAK89K,eAAe52K,GAASlH,KAAKo8K,oBACxD,OAAO3R,EAAQ9O,MAAK,WAChB57J,EAAMs8K,qBAINt8K,EAAMg+K,iBAGdzC,EAAe/+K,UAAU6gL,WAAa,SAAU5wK,GAC5C,IAAIzM,EAAQC,KACRg+K,EAAeh+K,KAAK49K,WACpBK,EAAmB,WACnBl+K,EAAMm+K,aAAY,EAAO,WACrBn+K,EAAM87K,qBAAqBsC,cAC3Bp+K,EAAMi7B,MAAMxuB,IAGA,MAAhBwxK,EACAh+K,KAAK89K,eAAeE,GAAcriB,KAAKsiB,GAGvCj+K,KAAKo8K,oBAAoBzgB,KAAKsiB,IAGtC3C,EAAe/+K,UAAU2gL,UAAY,WACjC,IAAIn9K,EAAQC,KACZA,KAAKo8K,oBAAoBzgB,MAAK,WAAc,OAAO57J,EAAMm+K,kBAE7D5C,EAAe/+K,UAAU4gL,UAAY,WACjCn9K,KAAKk9K,YACLl9K,KAAKi9K,aAKT3B,EAAe/+K,UAAUwhL,WAAa,WAClC,IAAIK,EAAWp+K,KAAKq+K,iBACpB,IAAKr+K,KAAKs+K,aAAaF,GACnB,OAAO,EAEX,IAAIG,EAAgBv+K,KAAK07K,aAIzB,OAHA17K,KAAK07K,aAAe0C,GAGZp+K,KAAKw+K,eAAeD,EAAeH,IAE/C9C,EAAe/+K,UAAU+hL,aAAe,SAAUp3K,GAC9C,OAAO,GAEXo0K,EAAe/+K,UAAU0gL,UAAY,SAAUwB,EAAqBC,EAAiBlyK,QACrD,IAAxBiyK,IAAkCA,GAAsB,QACpC,IAApBC,IAA8BA,GAAkB,GAChD1+K,KAAK+9K,cAGL/9K,KAAK67K,qBAAqBC,sBAAsB,CAAE2C,oBAAqBA,EAAqBC,gBAAiBA,IAEjH,IAAIP,EAAen+K,KAAK67K,qBAAqBsC,aAEzCA,GAAgBn+K,KAAKw7K,cAAgBiD,IAAwBC,GAC7D1+K,KAAKg7B,MAAMxuB,IAGnB8uK,EAAe/+K,UAAUoiL,gBAAkB,WACvC,IAAI5+K,EAAQC,KACPA,KAAKy8K,mBACNz8K,KAAKo8K,oBAAoBzgB,MAAK,WAAc,OAAO57J,EAAM27K,aAAe,SAGhFJ,EAAe/+K,UAAUy+B,MAAQ,SAAUxuB,GACvC,GAAKxM,KAAKy7K,UAAV,CAGA,IAEIr4K,EAFAkiK,EAAgB94J,EAChB/P,EAAM6oK,GAAiBA,EAAc7oK,IAE7B,UAARA,GAA2B,UAARA,IACnB2G,EAAS,CAAEkiK,cAAeA,IAE9BtlK,KAAKy7K,UAAUr4K,GACfpD,KAAKy7K,UAAY,OAGrBH,EAAe/+K,UAAUqiL,oBAAsB,WAC3C,OAAO5+K,KAAKy8K,mBAOhBnB,EAAe/+K,UAAU2hL,YAAc,SAAUW,EAAoBz8K,GAIjE,QAH2B,IAAvBy8K,IAAiCA,GAAqB,GAC1D7+K,KAAKq8K,qBACLr8K,KAAK67K,qBAAqBiD,yBACtB9+K,KAAKw7K,YAAa,CAClB,IAAIuD,EAAU/+K,KAAKs+K,aAAat+K,KAAKq+K,kBACrC34B,GAAY1lJ,KAAK6xK,cAAc,sBAAuBkN,GAErDF,IAAuBz8K,GAAoB,gBAAVA,EAClCpC,KAAKi9K,UAAU4B,IAER7+K,KAAKw7K,aAAgBp5K,IAAoB,aAAVA,GACtCpC,KAAK29K,qBAGbrC,EAAe/+K,UAAUq5K,iBAAmB,SAAUxyK,GACpC,MAAVA,IAGJpD,KAAKy7K,UAAYr4K,EAAOq4K,YAG5BH,EAAeoC,cAAgB,SAAUt6K,EAAQ47K,GAC7C,OAAI1D,EAAesB,iBAAiBx5K,IACP,MAArBA,EAAOq6K,YACPx6K,QAAQkD,KAAK,+DAEV,GAEiB,MAArB/C,EAAOq6K,WAAqBr6K,EAAOq6K,WAAauB,GAG3D1D,EAAesB,iBAAmB,SAAUx5K,GAExC,OADAk4K,EAAeiB,yBAAyBn5K,KAC/BA,EAAOokK,SAAWpkK,EAAOokK,QAAQzmK,QAAQ,UAAY,GAElEu6K,EAAe/+K,UAAU6J,QAAU,WAC/BpG,KAAKy7K,UAAY,KACjB52K,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCs7K,EAAe/+K,UAAUs5K,UAAY,SAAUp5K,GAC3C,IAAIo5K,EAAY71K,KAAK8vG,mBAAmBygC,oBACxC,OAAOslC,EAAUp5K,EAAKw7K,GAA2Bx7K,KAErD4+K,GAAa,CACTzsE,GAAU,aACX0sE,EAAe/+K,UAAW,gBAAY,GACzC8+K,GAAa,CACT/sE,IACDgtE,EAAe/+K,UAAW,gBAAiB,MACvC++K,EAzRwB,CA0RjCvC,IAQEkG,GAAoD,WACpD,IAAIh7K,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD46K,GAAsD,SAAU79K,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAWivK,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,OAAS,GAAK,OAFtD,CAGGA,KAAsBA,GAAoB,KAI7C,IAkgEIuL,GAlgEAC,GAA8B,SAAUv6K,GAExC,SAASu6K,IACL,OAAkB,OAAXv6K,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAsP/D,OAxPAi/K,GAAYG,EAAcv6K,GAK1Bu6K,EAAa7iL,UAAU8iL,cAAgB,SAAU5/K,GAC7C,OAAQO,KAAKs/K,0BAA0B7/K,IAASA,IAAS2/K,EAAaG,OAG1EH,EAAa7iL,UAAUijL,YAAc,SAAU//K,GAC3C,OAAOA,IAAS2/K,EAAaK,UAGjCL,EAAa7iL,UAAUmjL,wBAA0B,SAAUjgL,EAAM/C,GAC7DsD,KAAK2/K,0BAA0BlgL,GAC/BO,KAAK4/K,2BAA2BljL,GAChCsD,KAAKk+K,aAAY,IAErBkB,EAAa7iL,UAAUojL,0BAA4B,SAAUlgL,GACzDO,KAAK6/K,OAAOnK,SAASj2K,GACrBO,KAAK8/K,OAAOpK,SAAS11K,KAAK+/K,eAAehI,qBACxC/3K,KAAKggL,kBAAkB,OAAShgL,KAAKigL,iBAAmBjgL,KAAKkgL,iBAAiBxK,UAAS,IAE5F0J,EAAa7iL,UAAU8hL,eAAiB,WACpC,OAAKr+K,KAAKmgL,sBAAsBvM,GAAkBwM,KAG9CpgL,KAAKqgL,wBAA0BrgL,KAAKmgL,sBAAsBvM,GAAkB0M,KACrE,CACHC,WAAYvgL,KAAKwgL,gBACjBC,SAAUzgL,KAAK0gL,kBACfC,WAAY3gL,KAAK4gL,gBAAgBhN,GAAkBwM,KACnDS,WAAY7gL,KAAK4gL,gBAAgBhN,GAAkB0M,MAGpDtgL,KAAK4gL,gBAAgBhN,GAAkBwM,KAVnC,MAYfhB,EAAa7iL,UAAUukL,kBAAoB,WACvC,OAAO9gL,KAAK6/K,OAAO1xC,YAEvBixC,EAAa7iL,UAAUwkL,kBAAoB,WACvC,OAAO/gL,KAAK8/K,OAAO3xC,YAEvBixC,EAAa7iL,UAAUmkL,gBAAkB,WACrC,OAA2C,IAApC1gL,KAAKkgL,gBAAgB/xC,WAAsB,KAAO,OAE7DixC,EAAa7iL,UAAUiiL,eAAiB,SAAU7yK,EAAGxH,GAEjD,IAAKwH,IAAMxH,EACP,OAAO,EAGX,IAAMwH,GAAKxH,GAAOwH,IAAMxH,EACpB,OAAO,EAGX,IAMIm5B,EANA0jJ,GAAar1K,EAAE80K,SACfQ,GAAa98K,EAAEs8K,SACfS,GAAyBF,GAAaC,GAAeD,IAAcC,EACvE,GAAIC,EACA,OAAO,EAIX,GAAIF,EAAW,CACX,IAAIG,EAAUx1K,EACVy1K,EAAUj9K,EACdm5B,EAAMt9B,KAAKqhL,qBAAqBF,EAASC,OAExC,CACD,IAAIE,EAAY31K,EACZ41K,EAAYp9K,EAChBm5B,EAAMgkJ,EAAUb,WAAac,EAAUd,UAChCzgL,KAAKqhL,qBAAqBC,EAAUX,WAAYY,EAAUZ,aAC1D3gL,KAAKqhL,qBAAqBC,EAAUT,WAAYU,EAAUV,YAErE,OAAOvjJ,GAEX8hJ,EAAa7iL,UAAUuhL,eAAiB,SAAU52K,GAC9C,IAAIs6K,EAAat6K,EAAMu5K,SACvB,GAAIe,EAAY,CACZ,IAAIC,EAAgBv6K,EAChBw6K,EAAuC,OAA3BD,EAAchB,SAC9BzgL,KAAKigL,iBAAiBvK,UAAUgM,GAChC1hL,KAAKkgL,gBAAgBxK,SAASgM,GAC9B1hL,KAAK6/K,OAAOnK,SAAS+L,EAAcd,WAAWlhL,MAC9CO,KAAK8/K,OAAOpK,SAAS+L,EAAcZ,WAAWphL,MAC9CO,KAAK2hL,mBAAmBF,EAAcd,WAAY/M,GAAkBwM,KACpEpgL,KAAK2hL,mBAAmBF,EAAcZ,WAAYjN,GAAkB0M,SAEnE,CACD,IAAIsB,EAAc16K,EAClBlH,KAAKigL,iBAAiBvK,SAAS11K,KAAKggL,kBAAkB,QACtDhgL,KAAKkgL,gBAAgBxK,SAAS11K,KAAKggL,kBAAkB,OACrDhgL,KAAK6/K,OAAOnK,SAASkM,EAAYniL,MACjCO,KAAK8/K,OAAOpK,SAAS11K,KAAK+/K,eAAehI,oBACzC/3K,KAAK2hL,mBAAmBC,EAAahO,GAAkBwM,KACvDpgL,KAAK2hL,mBAAmB,KAAM/N,GAAkB0M,KAEpD,OAAOxW,GAAUQ,WAErB8U,EAAa7iL,UAAUslL,eAAiB,SAAUz+K,GAC9C,IAAIrD,EAAQC,KACRkH,EAAQlH,KAAK49K,WACjB,GAAa,MAAT12K,EACA,OAAO,EAEX,IAAIu5K,EAAWv5K,EAAMu5K,SACjBqB,EAAS,GACb,GAAIrB,EAAU,CACV,IAAIgB,EAAgBv6K,EACpB46K,EAAOxiL,KAAKmiL,EAAcd,WAAYc,EAAcZ,iBAGpDiB,EAAOxiL,KAAK4H,GAEhB,IAAI66K,EAAkBtB,GAAyB,OAAbA,EAAoBhwF,EAAO6S,EAC7D,OAAOy+E,EAAgBD,GAAQ,SAAUnzK,GAAK,OAAO5O,EAAMiiL,0BAA0B5+K,EAAQuL,OAEjGywK,EAAa7iL,UAAU4/K,UAAY,SAAU/4K,GACzCyB,EAAOtI,UAAU4/K,UAAUv+K,KAAKoC,KAAMoD,GACtCpD,KAAK+/K,eAAiB,IAAI5I,GAC1Bn3K,KAAK+/K,eAAe76K,KAAK9B,EAAQpD,KAAKiiL,2BACtCjiL,KAAKkiL,oBAAsB9+K,EAAO++K,uBAClCniL,KAAKoiL,2BAA6Bh/K,EAAOg/K,yBACzCpiL,KAAKqiL,oBAAsBriL,KAAKsiL,uBAAuBl/K,EAAOi/K,qBAC9DriL,KAAKuiL,yBACLviL,KAAKwiL,uBAETpD,EAAa7iL,UAAU+lL,uBAAyB,SAAUD,GACtD,OAAO7iF,EAAS,CAAC,MAAO,MAAO6iF,GAAuBA,EAAsB,OAEhFjD,EAAa7iL,UAAUgmL,uBAAyB,WAC5C,IAAIxiL,EAAQC,KACRs3K,EAAgBt3K,KAAK+/K,eAAetI,mBACxCl5K,EAAQ+4K,GAAe,SAAUmL,GAC7B,IAAI/lL,EACAg7B,EACJ,GAAsB,kBAAX+qJ,EACP/lL,EAAQ+lL,EACR/qJ,EAAO33B,EAAM81K,UAAUn5K,OAEtB,CACDA,EAAQ+lL,EAAO7K,WACf,IAAI8K,EAAe3iL,EAAMggL,eAAe/H,gBAAgBt7K,GACxDg7B,EAAOgrJ,EACH3iL,EAAM+vG,mBAAmBygC,mBAAzBxwI,CAA6C2iL,EAAa9K,WAAY8K,EAAa7wH,aACnF9xD,EAAM81K,UAAUn5K,GAExB,IAAIimL,EAAe,WAAc,MAAO,CAAGjmL,MAAOA,EAAOg7B,KAAMA,IAC/D33B,EAAM8/K,OAAO+C,UAAUD,KACvB5iL,EAAM+/K,OAAO8C,UAAUD,QAE3B,IAAIE,EAAWvL,EAAc75K,QAAU,EACvCuC,KAAK6/K,OAAOn6B,YAAYm9B,GACxB7iL,KAAK8/K,OAAOp6B,YAAYm9B,IAE5BzD,EAAa7iL,UAAU8jL,qBAAuB,WAC1C,OAAOrgL,KAAKkiL,oBAEhB9C,EAAa7iL,UAAU2/K,mBAAqB,WACxC,MAAkB,+FAAqGl8K,KAAK8iL,oBAAoBlP,GAAkBwM,KAAO,2dAA6epgL,KAAK8iL,oBAAoBlP,GAAkB0M,MAErsBlB,EAAa7iL,UAAU0/K,iBAAmB,WACtC,MAAO,iBAEXmD,EAAa7iL,UAAU8/K,mBAAqB,WACxC,IAAI0G,EAAsB/iL,KAAK+iL,sBAC3B/iL,KAAKoiL,0BACLpiL,KAAKigL,iBAAiBv6B,aAAaq9B,GACnC/iL,KAAKkgL,gBAAgBx6B,aAAaq9B,GAClC/iL,KAAK8/K,OAAOp6B,aAAaq9B,GACzBr9B,GAAY1lJ,KAAKgjL,iBAAkBD,KAGnCv9B,GAAaxlJ,KAAKijL,mBAAoBF,GACtCv9B,GAAaxlJ,KAAK8/K,OAAOz5K,SAAU08K,GACnCv9B,GAAaxlJ,KAAKgjL,gBAAiBD,KAG3C3D,EAAa7iL,UAAUwmL,oBAAsB,WACzC,OAAO/iL,KAAKkiL,oBAAsBliL,KAAKmgL,sBAAsBvM,GAAkBwM,MAEnFhB,EAAa7iL,UAAU6/K,kBAAoB,SAAU5+D,GACjD,IAAIq4D,EAAY71K,KAAK8vG,mBAAmBygC,oBACpC2yC,EAAiBrN,EAAU,wBAAyB,sBACpDsN,EAAgB,2BAA6BnjL,KAAK+uK,YAClD8I,EAAgB73K,KAAK+/K,eAAehI,mBAWxC,OAVA/3K,KAAK6/K,OAAOnK,SAASmC,EAAer6D,GAAQ8+C,aAAa4mB,GACzDljL,KAAK8/K,OAAOpK,SAASmC,EAAer6D,GAAQ8+C,aAAa4mB,GACzDljL,KAAKigL,iBACAvK,SAAS11K,KAAKggL,kBAAkB,OAAQxiE,GACxC4lE,QAAQD,GACRE,SAASrjL,KAAK61K,UAAU,iBAC7B71K,KAAKkgL,gBACAxK,SAAS11K,KAAKggL,kBAAkB,MAAOxiE,GACvC4lE,QAAQD,GACRE,SAASrjL,KAAK61K,UAAU,gBACtB/L,GAAUQ,WAErB8U,EAAa7iL,UAAUyjL,kBAAoB,SAAUS,GACjD,OAAOA,IAAazgL,KAAKqiL,qBAE7BjD,EAAa7iL,UAAUimL,oBAAsB,WACzC,IAAIziL,EAAQC,KACRywG,EAAW,WAAc,OAAO1wG,EAAMm+K,eAC1Cl+K,KAAK6/K,OAAOyD,cAAc7yE,GAC1BzwG,KAAK8/K,OAAOwD,cAAc7yE,GAC1BzwG,KAAKkgL,gBAAgBoD,cAAc7yE,GACnCzwG,KAAKigL,iBAAiBqD,cAAc7yE,IAExC2uE,EAAa7iL,UAAU+iL,0BAA4B,SAAUiB,GACzD,IAAIgD,EAAqBvjL,KAAK+/K,eAAe/H,gBAAgBuI,GAC7D,OAAOgD,GAAsBA,EAAmBC,iBAEpDpE,EAAaG,MAAQ,QACrBH,EAAaqE,OAAS,SACtBrE,EAAasE,UAAY,WACzBtE,EAAauE,UAAY,WACzBvE,EAAawE,mBAAqB,kBAClCxE,EAAayE,aAAe,cAC5BzE,EAAa0E,sBAAwB,qBACrC1E,EAAaK,SAAW,UACxBL,EAAa2E,SAAW,WACxB3E,EAAa4E,aAAe,cAC5B5E,EAAa6E,YAAc,aAC3B7E,EAAa8E,UAAY,WACzBhF,GAAa,CACT9L,GAAY,cACbgM,EAAa7iL,UAAW,cAAU,GACrC2iL,GAAa,CACT9L,GAAY,cACbgM,EAAa7iL,UAAW,cAAU,GACrC2iL,GAAa,CACT9L,GAAY,uBACbgM,EAAa7iL,UAAW,0BAAsB,GACjD2iL,GAAa,CACT9L,GAAY,qBACbgM,EAAa7iL,UAAW,wBAAoB,GAC/C2iL,GAAa,CACT9L,GAAY,oBACbgM,EAAa7iL,UAAW,uBAAmB,GAC9C2iL,GAAa,CACT9L,GAAY,oBACbgM,EAAa7iL,UAAW,uBAAmB,GAC9C2iL,GAAa,CACT9L,GAAY,oBACbgM,EAAa7iL,UAAW,uBAAmB,GACvC6iL,EAzPsB,CA0P/B9D,IAQE6I,GAAoD,WACpD,IAAIlgL,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD8/K,GAA8B,SAAUv/K,GAExC,SAASu/K,IACL,OAAkB,OAAXv/K,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoF/D,OAtFAmkL,GAAYC,EAAcv/K,GAI1Bu/K,EAAa7nL,UAAU4/K,UAAY,SAAU/4K,GACzCyB,EAAOtI,UAAU4/K,UAAUv+K,KAAKoC,KAAMoD,GACtCpD,KAAKqkL,mBAAqBjhL,EAC1BpD,KAAKskL,yBAETF,EAAa7nL,UAAU+nL,sBAAwB,WACvCtkL,KAAKqkL,mBAAmBE,iBACxBthL,QAAQkD,KAAK,0NAGbnG,KAAKqkL,mBAAmBG,sBAAwBxkL,KAAKqkL,mBAAmBE,eAAelqF,OACvFr6F,KAAKqkL,mBAAmBI,wBAA0BzkL,KAAKqkL,mBAAmBE,eAAehqF,SACzFv6F,KAAKqkL,mBAAmBK,2BAA6B1kL,KAAKqkL,mBAAmBE,eAAe/pF,cAGpG4pF,EAAa7nL,UAAUylL,0BAA4B,SAAU5+K,EAAQuhL,GACjE,IAAIC,EAAY5kL,KAAKqkL,mBAAmB72C,YAAYpqI,EAAOoP,MACvDoxB,EAAQ5jC,KAAK6kL,kBAAkBF,GAC/BG,EAAclhJ,EAAM/lC,KACpBknL,EAAgBnhJ,EAAMxlC,GACtBmiL,EAAaoE,EAAYllL,KACzB8jL,EAAqBvjL,KAAK+/K,eAAe/H,gBAAgBuI,GAC7D,GAAIgD,IAEmB,MAAfuB,GAAuBvB,EAAmBC,iBAC1C,OAAOD,EAAmB13K,KAAKi5K,EAAaF,GAGpD,GAAiB,MAAbA,EAAmB,CACnB,OAAQrE,GACJ,KAAK6D,EAAaX,OAClB,KAAKW,EAAaV,UACd,GAAI1jL,KAAKqkL,mBAAmBG,sBACxB,OAAO,EAEX,MACJ,KAAKJ,EAAaP,aAClB,KAAKO,EAAaN,sBACd,GAAI9jL,KAAKqkL,mBAAmBK,2BACxB,OAAO,EAEX,MACJ,KAAKN,EAAaT,UAClB,KAAKS,EAAaR,mBACd,GAAI5jL,KAAKqkL,mBAAmBI,wBACxB,OAAO,EAEX,MACJ,KAAKL,EAAa3E,SACd,GAAIz/K,KAAKqkL,mBAAmBW,qBACxB,OAAO,EAEX,MAER,OAAO,EAEX,IAAI3hF,EAAarjG,KAAKqjG,aAClB4hF,EAAgB5hF,EAAWyhF,EAAaF,GAC5C,OAAQrE,GACJ,KAAK6D,EAAaX,OACd,OAAyB,IAAlBwB,EACX,KAAKb,EAAaV,UACd,OAAyB,IAAlBuB,EACX,KAAKb,EAAaP,aACd,OAAOoB,EAAgB,EAC3B,KAAKb,EAAaN,sBACd,OAAOmB,GAAiB,EAC5B,KAAKb,EAAaT,UACd,OAAOsB,EAAgB,EAC3B,KAAKb,EAAaR,mBACd,OAAOqB,GAAiB,EAC5B,KAAKb,EAAa3E,SACd,IAAIyF,EAAkB7hF,EAAW0hF,EAAeH,GAChD,OAAO5kL,KAAKqkL,mBAAmBc,iBAC3BF,GAAiB,GAAKC,GAAmB,EACzCD,EAAgB,GAAKC,EAAkB,EAE/C,QAEI,OADAjiL,QAAQkD,KAAK,uCAAyCo6K,EAAa,6EAC5D,IAGZ6D,EAvFsB,CAwF/BhF,IAQEgG,GAAoD,WACpD,IAAInhL,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+gL,GAAsD,SAAUhkL,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D2gL,GAA4B,SAAUzgL,GAEtC,SAASygL,IACL,OAAOzgL,EAAOjH,KAAKoC,KAAM,eAAiBA,KA2K9C,OA7KAolL,GAAYE,EAAYzgL,GAIxBygL,EAAW/oL,UAAUq5K,iBAAmB,SAAUxyK,GAC9CyB,EAAOtI,UAAUq5K,iBAAiBh4K,KAAKoC,KAAMoD,GAC7CpD,KAAKulL,uBAAuB3P,iBAAiBxyK,IAEjDkiL,EAAW/oL,UAAUsoL,kBAAoB,SAAUF,GAS/C,MAAO,CACH9mL,KAAM2gK,GAAwBmmB,EAAYa,UAC1CpnL,GAAIogK,GAAwBmmB,EAAYc,UAGhDH,EAAW/oL,UAAUqjL,2BAA6B,SAAUljL,GACxDsD,KAAKulL,uBAAuBjpK,QAAiB,MAAT5f,EAAgB,KAAO8hK,GAAwB9hK,IACnFsD,KAAK0lL,qBAAqBppK,QAAQ,MAClCtc,KAAK2lL,uBAAuBrpK,QAAQ,MACpCtc,KAAK4lL,qBAAqBtpK,QAAQ,OAEtCgpK,EAAW/oL,UAAUolL,mBAAqB,SAAUz6K,EAAO07I,GACvD,IAAIt1D,EAAKpmF,EACL,CAACs3J,GAAwBt3J,EAAMs+K,UAAWhnB,GAAwBt3J,EAAMu+K,SACxE,CAAC,KAAM,MAAOD,EAAWl4F,EAAG,GAAIm4F,EAASn4F,EAAG,GAC5CyB,EAAK/uF,KAAK6lL,oBAAoBjjC,GAAWkjC,EAAW/2F,EAAG,GAAIg3F,EAASh3F,EAAG,GAC3E+2F,EAASxpK,QAAQkpK,GACjBO,EAAOzpK,QAAQmpK,IAEnBH,EAAW/oL,UAAU6/K,kBAAoB,SAAU5+D,GAC/C,IAAIz9G,EAAQC,KACZ,OAAO6E,EAAOtI,UAAU6/K,kBAAkBx+K,KAAKoC,KAAMw9G,GAAQm+C,MAAK,WAC9D57J,EAAMwlL,uBAAuBjpK,QAAQ,MACrCvc,EAAM2lL,qBAAqBppK,QAAQ,MACnCvc,EAAM4lL,uBAAuBrpK,QAAQ,MACrCvc,EAAM6lL,qBAAqBtpK,QAAQ,UAG3CgpK,EAAW/oL,UAAU8mG,WAAa,WAC9B,OAAOrjG,KAAKgmL,iBAAiB3iF,WAAarjG,KAAKgmL,iBAAiB3iF,WAAarjG,KAAKwhG,kBAAkB/2F,KAAKzK,OAE7GslL,EAAW/oL,UAAUilG,kBAAoB,SAAUykF,EAAYrB,GAE3D,IAAIsB,EAAatB,EACjB,OAAiB,MAAbA,GAAqBsB,EAAaD,GAC1B,EAERC,EAAaD,EACN,EAEJ,GAEXX,EAAW/oL,UAAU4/K,UAAY,SAAU/4K,GACvCyB,EAAOtI,UAAU4/K,UAAUv+K,KAAKoC,KAAMoD,GACtCpD,KAAKgmL,iBAAmB5iL,EACxBpD,KAAKmmL,wBAETb,EAAW/oL,UAAU4pL,qBAAuB,WACxC,IAAIpmL,EAAQC,KACRomL,EAAwB,SAAUj8F,GAClC,OAAO,IAAIusF,GAAgB32K,EAAMy4G,aAAcz4G,EAAMytK,qBAAsB,CACvE6Y,cAAe,WAAc,OAAOtmL,EAAMm+K,eAC1CoI,aAAcvmL,EAAMimL,kBACrB77F,IAEPnqF,KAAKulL,uBAAyBa,EAAsBpmL,KAAKumL,sBACzDvmL,KAAK0lL,qBAAuBU,EAAsBpmL,KAAKwmL,oBACvDxmL,KAAK2lL,uBAAyBS,EAAsBpmL,KAAKymL,sBACzDzmL,KAAK4lL,qBAAuBQ,EAAsBpmL,KAAK0mL,oBACvD1mL,KAAKqnH,gBAAe,WAChBtnH,EAAMwlL,uBAAuBn/K,UAC7BrG,EAAM2lL,qBAAqBt/K,UAC3BrG,EAAM4lL,uBAAuBv/K,UAC7BrG,EAAM6lL,qBAAqBx/K,cAGnCk/K,EAAW/oL,UAAU0lL,wBAA0B,WAC3C,OAAOqD,EAAWqB,wBAEtBrB,EAAW/oL,UAAUumL,oBAAsB,SAAUlgC,GACjD,IAAIlgH,EAAMkgH,IAAagxB,GAAkBwM,IAAM,IAAM,IACrD,MAAkB,4DAAiE19I,EAAM,0FAAgGA,EAAM,iGAAuGA,EAAM,uCAEhT4iJ,EAAW/oL,UAAU4jL,sBAAwB,SAAUv9B,GACnD,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7CqC,EAASmE,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBAC3D,GAAI0B,IAAWrD,GAAaG,MACxB,OAAO,EAEX,GAAIv/K,KAAKs/K,0BAA0BmD,GAC/B,OAAO,EAEX,IAAIn1F,EAAKttF,KAAK6lL,oBAAoBjjC,GAAWkjC,EAAWx4F,EAAG,GAAIy4F,EAASz4F,EAAG,GACvEu5F,EAAqD,MAAtC7mL,KAAKgmL,iBAAiBa,aAAuB,IAAO7mL,KAAKgmL,iBAAiBa,aACzFC,EAAc,SAAUpqL,GAAS,OAAgB,MAATA,GAAiBA,EAAMqqL,iBAAmBF,GACtF,OAAOC,EAAYhB,EAASvpK,cAAgBvc,KAAKw/K,YAAYiD,IAAWqE,EAAYf,EAAOxpK,aAE/F+oK,EAAW/oL,UAAU8kL,qBAAuB,SAAUF,EAASC,GAC3D,OAAOD,EAAQqE,WAAapE,EAAQoE,UAC7BrE,EAAQsE,SAAWrE,EAAQqE,QAC3BtE,EAAQ1hL,OAAS2hL,EAAQ3hL,MAEpC6lL,EAAW/oL,UAAUikL,cAAgB,WACjC,MAAO,QAEX8E,EAAW/oL,UAAUqkL,gBAAkB,SAAUh+B,GAC7C,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7C3gL,EAAOmnL,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBACrDzzF,EAAKttF,KAAK6lL,oBAAoBjjC,GAAWkjC,EAAWx4F,EAAG,GAAIy4F,EAASz4F,EAAG,GAC3E,MAAO,CACHk4F,SAAUrnB,GAAc2nB,EAASvpK,WACjCkpK,OAAQtnB,GAAc4nB,EAAOxpK,WAC7B9c,KAAMA,EACN8gL,WAAYvgL,KAAKwgL,kBAGzB8E,EAAW/oL,UAAUyqL,iBAAmB,WACpC,IAAIC,EAAkBjnL,KAAK8vG,mBAAmBygC,oBAC1C2mC,EAAcl3K,KAAK61K,UAAU,iBAC7BqR,EAAYD,EAAgB,kBAAmB,gBACnDjnL,KAAKulL,uBAAuBtO,oBAAoBC,GAChDl3K,KAAKulL,uBAAuBzP,kBAAkBoR,GAC9ClnL,KAAK0lL,qBAAqBzO,oBAAoBC,GAC9Cl3K,KAAK0lL,qBAAqB5P,kBAAkBoR,GAC5ClnL,KAAK2lL,uBAAuB1O,oBAAoBC,GAChDl3K,KAAK2lL,uBAAuB7P,kBAAkBoR,GAC9ClnL,KAAK4lL,qBAAqB3O,oBAAoBC,GAC9Cl3K,KAAK4lL,qBAAqB9P,kBAAkBoR,IAEhD5B,EAAW/oL,UAAU8/K,mBAAqB,WACtCx3K,EAAOtI,UAAU8/K,mBAAmBz+K,KAAKoC,MACzCA,KAAKgnL,mBACL,IAAIG,EAAiBnnL,KAAK8gL,oBAC1Bt7B,GAAaxlJ,KAAKumL,qBAAsBvmL,KAAKq/K,cAAc8H,IAC3D3hC,GAAaxlJ,KAAKwmL,mBAAoBxmL,KAAKw/K,YAAY2H,IACvD,IAAIC,EAAiBpnL,KAAK+gL,oBAC1Bv7B,GAAaxlJ,KAAKymL,qBAAsBzmL,KAAKq/K,cAAc+H,IAC3D5hC,GAAaxlJ,KAAK0mL,mBAAoB1mL,KAAKw/K,YAAY4H,KAE3D9B,EAAW/oL,UAAUspL,oBAAsB,SAAUjjC,GACjD,OAAOA,IAAagxB,GAAkBwM,IAClC,CAACpgL,KAAKulL,uBAAwBvlL,KAAK0lL,sBACnC,CAAC1lL,KAAK2lL,uBAAwB3lL,KAAK4lL,uBAE3CN,EAAWqB,uBAAyB,CAChCvC,GAAaX,OACbW,GAAaP,aACbO,GAAaT,UACbS,GAAaV,UACbU,GAAa3E,UAEjB4F,GAAa,CACTjS,GAAY,yBACbkS,EAAW/oL,UAAW,4BAAwB,GACjD8oL,GAAa,CACTjS,GAAY,uBACbkS,EAAW/oL,UAAW,0BAAsB,GAC/C8oL,GAAa,CACTjS,GAAY,yBACbkS,EAAW/oL,UAAW,4BAAwB,GACjD8oL,GAAa,CACTjS,GAAY,uBACbkS,EAAW/oL,UAAW,0BAAsB,GAC/C8oL,GAAa,CACTz2E,GAAU,yBACX02E,EAAW/oL,UAAW,4BAAwB,GAC1C+oL,EA9KoB,CA+K7BlB,IAQEiD,GAA+B,WAC/B,SAASA,EAAc9gE,EAAU+gE,GAC7B,IAAIvnL,EAAQC,UACc,IAAtBsnL,IAAgCA,GAAoB,GACxDtnL,KAAKunL,aAAe,GACpBvnL,KAAKwnL,UAAW,EAChBxnL,KAAKq0G,aAAe,IAAIjF,GACxBpvG,KAAKumH,SAAWA,EAChBvmH,KAAKsnL,kBAAoBA,EACzB,IAAIG,EAAgBznL,KAAK0nL,aAAaj9K,KAAKzK,MACvC2nL,EAAe3nL,KAAK4nL,YAAYn9K,KAAKzK,MACrC6nL,EAAc7nL,KAAK8nL,WAAWr9K,KAAKzK,MACvCA,KAAKumH,SAAS/V,iBAAiB,aAAci3E,EAAe,CAAEhhE,SAAS,IACvEzmH,KAAKumH,SAAS/V,iBAAiB,YAAam3E,EAAc,CAAElhE,SAAS,IAErEzmH,KAAKumH,SAAS/V,iBAAiB,WAAYq3E,EAAa,CAAEphE,SAAS,IACnEzmH,KAAKunL,aAAajoL,MAAK,WACnBS,EAAMwmH,SAAS7V,oBAAoB,aAAc+2E,EAAe,CAAEhhE,SAAS,IAC3E1mH,EAAMwmH,SAAS7V,oBAAoB,YAAai3E,EAAc,CAAElhE,SAAS,IACzE1mH,EAAMwmH,SAAS7V,oBAAoB,WAAYm3E,EAAa,CAAEphE,SAAS,OAsG/E,OAnGA4gE,EAAc9qL,UAAUwrL,eAAiB,SAAUC,GAC/C,IAAK,IAAIzqL,EAAI,EAAGA,EAAIyqL,EAAUvqL,OAAQF,IAAK,CACvC,IAAIgrG,EAAUy/E,EAAUzqL,GAAG0qL,aAAejoL,KAAKkoL,WAAWD,WAC1D,GAAI1/E,EACA,OAAOy/E,EAAUzqL,GAGzB,OAAO,MAEX8pL,EAAc9qL,UAAUi0G,iBAAmB,SAAUpnG,EAAWqnG,GAC5DzwG,KAAKq0G,aAAa7D,iBAAiBpnG,EAAWqnG,IAElD42E,EAAc9qL,UAAUm0G,oBAAsB,SAAUtnG,EAAWqnG,GAC/DzwG,KAAKq0G,aAAa3D,oBAAoBtnG,EAAWqnG,IAErD42E,EAAc9qL,UAAUmrL,aAAe,SAAUS,GAC7C,IAAIpoL,EAAQC,KAEZ,IAAIA,KAAKwnL,SAAT,CAGAxnL,KAAKkoL,WAAaC,EAAWC,QAAQ,GACrCpoL,KAAKwnL,UAAW,EAChBxnL,KAAKqoL,OAAQ,EACb,IAAIC,EAAiBtoL,KAAKkoL,WAC1B38K,OAAOE,YAAW,WACd,IAAI88K,EAAexoL,EAAMmoL,aAAeI,EACxC,GAAIvoL,EAAMynL,UAAYe,IAAiBxoL,EAAMsoL,MAAO,CAChDtoL,EAAMsoL,OAAQ,EACd,IAAIzkE,EAAU,CACVnkH,KAAM4nL,EAAcmB,eACpBN,WAAYnoL,EAAMmoL,WAClBC,WAAYA,GAEhBpoL,EAAMs0G,aAAa5nG,cAAcm3G,MAEtC,OAEPyjE,EAAc9qL,UAAUqrL,YAAc,SAAUO,GAC5C,GAAKnoL,KAAKwnL,SAAV,CAGA,IAAIiB,EAAQzoL,KAAK+nL,eAAeI,EAAWC,SAC3C,GAAKK,EAAL,CAGA,IAAIC,GAAkBjhB,GAAcghB,EAAOzoL,KAAKkoL,WAAY,GACxDQ,IACA1oL,KAAKqoL,OAAQ,MAGrBhB,EAAc9qL,UAAUurL,WAAa,SAAUK,GAC3C,GAAKnoL,KAAKwnL,SAAV,CAGA,IAAKxnL,KAAKqoL,MAAO,CACb,IAAI1sD,EAAU,CACVl8H,KAAM4nL,EAAcsB,UACpBT,WAAYloL,KAAKkoL,YAErBloL,KAAKq0G,aAAa5nG,cAAckvH,GAChC37H,KAAK4oL,oBAGL5oL,KAAKsnL,mBACLa,EAAWxS,iBAEf31K,KAAKwnL,UAAW,IAEpBH,EAAc9qL,UAAUqsL,kBAAoB,WACxC,IAAIx6J,GAAM,IAAI/R,MAAOS,UACrB,GAAI9c,KAAK6oL,aAAe7oL,KAAK6oL,YAAc,EAAG,CAE1C,IAAIl/E,EAAWv7E,EAAMpuB,KAAK6oL,YAC1B,GAAIl/E,EAAW09E,EAAcyB,kBAAmB,CAE5C,IAAI9iD,EAAU,CACVvmI,KAAM4nL,EAAc0B,iBACpBb,WAAYloL,KAAKkoL,YAErBloL,KAAKq0G,aAAa5nG,cAAcu5H,GAEhChmI,KAAK6oL,YAAc,UAGnB7oL,KAAK6oL,YAAcz6J,OAIvBpuB,KAAK6oL,YAAcz6J,GAG3Bi5J,EAAc9qL,UAAU6J,QAAU,WAC9BpG,KAAKunL,aAAahpL,SAAQ,SAAU4M,GAAQ,OAAOA,QAEvDk8K,EAAcsB,UAAY,MAC1BtB,EAAc0B,iBAAmB,YACjC1B,EAAcmB,eAAiB,UAC/BnB,EAAcyB,kBAAoB,IAC3BzB,EAzHuB,GAkI9B2B,GAAoD,WACpD,IAAI/kL,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD2kL,GAAsD,SAAU5nL,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DukL,GAA4B,SAAUrkL,GAEtC,SAASqkL,IACL,IAAInpL,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAMopL,kBAAoB,EACnBppL,EA4PX,OAhQAipL,GAAYE,EAAYrkL,GAQxBqkL,EAAW3sL,UAAU6J,QAAU,WAC3BvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCkpL,EAAW3sL,UAAUg8F,QAAU,SAAUn1F,GAIrC,OAHApD,KAAKoD,OAASA,EAGVpD,KAAKopL,mBAAqBppL,KAAKqpL,kBAG/BrpL,KAAKspL,mBAAqBtpL,KAAKupL,kBAG/BvpL,KAAKwpL,eAAiBxpL,KAAKypL,cAG/BzpL,KAAK0pL,eAAetmL,IACb,MAEX8lL,EAAW3sL,UAAU6sL,gBAAkB,WACnC,IAAIhiC,EAAWnkD,EAAmBjjG,KAAKoD,OAAOgkJ,SAAU8hC,EAAWjU,UAGnE,OADA7tB,EAAWA,GAAYA,EAAS7uH,KAAO6uH,EAAS7uH,OAAS6uH,EAClDA,GAEX8hC,EAAW3sL,UAAU2I,KAAO,SAAU9B,GAClCpD,KAAKoD,OAASA,EACdpD,KAAKqpL,gBAAkBrpL,KAAKopL,kBAC5BppL,KAAK2uK,YAAY3uK,KAAKqpL,iBACtBrpL,KAAK2pL,WACL3pL,KAAK4pL,WAAWxmL,EAAOsE,QACvB1H,KAAK6pL,UACL7pL,KAAK8pL,YACL9pL,KAAK+pL,kBACL/pL,KAAK0pL,eAAetmL,IAExB8lL,EAAW3sL,UAAUmtL,eAAiB,SAAUtmL,GAC5C,GAAIpD,KAAKgqL,oBAAsB5mL,EAAOyuD,YAAa,CAC/C7xD,KAAKgqL,mBAAqB5mL,EAAOyuD,YACjC,IAAIo4H,EAAuBj2D,GAAah0H,KAAKgqL,oBACzChqL,KAAKkqL,QACLlqL,KAAKkqL,MAAMrgG,UAAYogG,KAInCf,EAAW3sL,UAAUqtL,WAAa,SAAUliL,GACxC1H,KAAKmqL,UAAU,gBAAiBnqL,KAAKoqL,SAAU1iL,GAC/C1H,KAAKmqL,UAAU,iBAAkBnqL,KAAKqqL,UAAW3iL,GACjD1H,KAAKmqL,UAAU,aAAcnqL,KAAKsqL,UAAW5iL,GAC7C1H,KAAKmqL,UAAU,OAAQnqL,KAAKuqL,MAAO7iL,GACnC1H,KAAKmqL,UAAU,SAAUnqL,KAAKwqL,QAAS9iL,IAE3CwhL,EAAW3sL,UAAU4tL,UAAY,SAAUvmB,EAAUgT,EAASlvK,GAC1D,GAAe,MAAXkvK,EAAJ,CAGA,IAAI6T,EAAQ3mB,GAAiBF,EAAU5jK,KAAK8vG,mBAAoBpoG,GAC5D+iL,GACA7T,EAAQl8I,YAAY+vJ,KAG5BvB,EAAW3sL,UAAUotL,SAAW,WAC5B,IAAI5pL,EAAQC,KACRT,EAAUS,KAAK8vG,mBACnB,IAAIvwG,EAAQmrL,kBAAZ,CAGA,IAAIC,EAAgB,IAAItD,GAAcrnL,KAAKqG,UAAU,GACjDukL,EAAmBrrL,EAAQsrL,qBAC3BC,EAAgBF,GAAoBnqF,EAAOzgG,KAAKuqL,OAChDQ,EAAoBD,EAAgB,IAAIzD,GAAcrnL,KAAKuqL,OAAO,GAAQI,EAC9E,GAAI3qL,KAAKoD,OAAO4nL,WAAY,CACxB,IAAI5hL,EAAY0hL,EAAgB,YAAc,iBAC1CG,EAAa,SAAU7jL,GACvB7H,EAAQk5G,SAASyyE,8BAA8BnrL,EAAMqD,OAAOsE,OAAQN,EAAM8gL,aAE9EloL,KAAKmnH,mBAAmB4jE,EAAmB1D,GAAcj+K,GAAY6hL,GAEzE,GAAIjrL,KAAKoD,OAAO+nL,cAAe,CAC3B,IAAIC,EAAc,SAAUhkL,GACxB,IAAIrL,EAASqL,EAAM8gL,WAAWnsL,OAG1B6uL,GAAoB7qL,EAAMwqL,MAAM3vF,SAAS7+F,IAG7CgE,EAAMqtI,eAAei+C,aAAatrL,EAAMqD,OAAOsE,QAAQ,EAAO,mBAElE1H,KAAKmnH,mBAAmBwjE,EAAetD,GAAcsB,UAAWyC,GAIpEprL,KAAKqnH,gBAAe,WAAc,OAAOsjE,EAAcvkL,aACnD0kL,GACA9qL,KAAKqnH,gBAAe,WAAc,OAAO0jE,EAAkB3kL,eAGnE8iL,EAAW3sL,UAAU+sL,gBAAkB,WAKnC,IAAIgC,GAAatrL,KAAK8vG,mBAAmB+6E,qBACrCU,EAAqBjqC,MAAoBgqC,EACzCE,EAAWxrL,KAAKoD,OAAO4nL,aAAeO,EAC1C,OAAOC,GAEXtC,EAAW3sL,UAAUstL,QAAU,WAC3B,IAAI9pL,EAAQC,KAEZ,GAAKA,KAAKuqL,MAIV,GADAvqL,KAAKupL,gBAAkBvpL,KAAKspL,kBACvBtpL,KAAKupL,gBAAV,CAIA,IAAIqB,EAAmB5qL,KAAK8vG,mBAAmB+6E,qBAC/C7qL,KAAKmnH,mBAAmBnnH,KAAKuqL,MAAO,SAAS,WAAc,OAAOxqL,EAAMyrL,SAASzrL,EAAMwqL,UACvFlmC,GAAoBrkJ,KAAKuqL,MAAO,6BAA8BK,QAL1D/iC,GAAiB7nJ,KAAKuqL,QAO9BrB,EAAW3sL,UAAUivL,SAAW,SAAUC,GACjCA,IACDA,EAAczrL,KAAKuqL,OAEvBvqL,KAAK0rL,YAAYC,yBAAyB3rL,KAAKoD,OAAOsE,OAAQ+jL,IAElEvC,EAAW3sL,UAAUqvL,gBAAkB,WACnC/jC,GAAiB7nJ,KAAKoqL,UACtBviC,GAAiB7nJ,KAAKqqL,WACtBxiC,GAAiB7nJ,KAAKsqL,WACtBziC,GAAiB7nJ,KAAK6rL,aAE1B3C,EAAW3sL,UAAUitL,YAAc,WAC/B,OAAOxpL,KAAKoD,OAAO+nL,eAEvBjC,EAAW3sL,UAAUutL,UAAY,WAC7B,IAAI/pL,EAAQC,KAEZ,GADAA,KAAKypL,YAAczpL,KAAKoD,OAAO+nL,cAC1BnrL,KAAKypL,YAAV,CAIA,IAAIqC,EAAgB9rL,KAAK8vG,mBAAmBi8E,qBAE5C/rL,KAAKmnH,mBAAmBnnH,KAAKoD,OAAOsE,OAAQqsG,GAAO8F,sBAAsB,WACrE95G,EAAMopL,mBAAoB,IAAI9sK,MAAOS,aAGrC9c,KAAKgsL,QACLhsL,KAAKmnH,mBAAmBnnH,KAAKgsL,OAAQ,SAAS,SAAU5kL,GAIpD,IAAI8sG,EAASn0G,EAAMqD,OAAOsE,OAAOoyG,WAC7BmyE,GAAU,IAAI5vK,MAAOS,UAErBovK,EAAiBD,EAAUlsL,EAAMopL,kBAAqB,GACtDgD,EAAej4E,GAAUg4E,EAC7B,IAAKC,EAAc,CACf,IAAIC,EAAYN,EAAiB1kL,EAAM69J,SAAW79J,EAAM1I,QAAW0I,EAAMw5H,SACzE7gI,EAAMqD,OAAOioL,aAAae,OAItCpsL,KAAKmnH,mBAAmBnnH,KAAKoD,OAAOsE,OAAQqsG,GAAOkG,mBAAoBj6G,KAAKqsL,cAAc5hL,KAAKzK,OAC/FA,KAAKqsL,gBACLrsL,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO1S,mBAAoBj6G,KAAKssL,kBAAkB7hL,KAAKzK,OAClGA,KAAKssL,yBA5BDtsL,KAAK4rL,mBA8Bb1C,EAAW3sL,UAAU8vL,cAAgB,WAUjC,GATAhoC,GAAoBrkJ,KAAKqG,SAAU,4BAA6BrG,KAAKoD,OAAOsE,OAAO2yG,mBACnFgqC,GAAoBrkJ,KAAKqG,SAAU,6BAA8BrG,KAAKoD,OAAOsE,OAAO4yG,oBACpF+pC,GAAoBrkJ,KAAKqG,SAAU,6BAA8BrG,KAAKoD,OAAOsE,OAAO6yG,cAChFv6G,KAAKoqL,UACL/lC,GAAoBrkJ,KAAKoqL,SAAU,aAAcpqL,KAAKoD,OAAOsE,OAAO2yG,mBAEpEr6G,KAAKqqL,WACLhmC,GAAoBrkJ,KAAKqqL,UAAW,aAAcrqL,KAAKoD,OAAOsE,OAAO4yG,oBAErEt6G,KAAKsqL,UAAW,CAChB,IAAIiC,GAAoBvsL,KAAKoD,OAAOsE,OAAOm1G,YAAY2vE,aAAexsL,KAAK8vG,mBAAmB28E,eAC9FpoC,GAAoBrkJ,KAAKsqL,UAAW,YAAaiC,IAAqBvsL,KAAKoD,OAAOsE,OAAO6yG,gBAMjG2uE,EAAW3sL,UAAU+vL,kBAAoB,WACrC,GAAKtsL,KAAK6rL,WAAV,CAGA,IAAInnJ,EAAM1kC,KAAKoD,OAAOsE,OAClBglL,EAAwB1sL,KAAKotI,eAAeu/C,+BAC5CC,EAAeF,EAAsB3rL,QAAQ2jC,GAC7CmoJ,EAAwBH,EAAsBjvL,OAAS,EACvDqvL,EAAYpoJ,EAAI81E,aAAeqyE,EACnCrnC,GAAaxlJ,KAAK6rL,WAAYiB,GAC1BF,GAAgB,EAChB5sL,KAAK6rL,WAAWhiG,WAAa+iG,EAAe,GAAGjvL,WAG/C+pJ,GAAa1nJ,KAAK6rL,cAG1B3C,EAAW3sL,UAAUwtL,gBAAkB,WAC9B/pL,KAAKwqL,UAGVxqL,KAAKmnH,mBAAmBnnH,KAAKoD,OAAOsE,OAAQqsG,GAAO6H,qBAAsB57G,KAAK47K,gBAAgBnxK,KAAKzK,OACnGA,KAAK47K,oBAETsN,EAAW3sL,UAAUq/K,gBAAkB,WACnC,IAAImR,EAAgB/sL,KAAKoD,OAAOsE,OAAO4zG,iBACvC+oC,GAAoBrkJ,KAAKwqL,QAAS,aAAcuC,IAEpD7D,EAAWjU,SAAW,0gCACtBgU,GAAa,CACTr6E,GAAU,mBACXs6E,EAAW3sL,UAAW,sBAAkB,GAC3C0sL,GAAa,CACTr6E,GAAU,gBACXs6E,EAAW3sL,UAAW,mBAAe,GACxC0sL,GAAa,CACT7V,GAAY,YACb8V,EAAW3sL,UAAW,eAAW,GACpC0sL,GAAa,CACT7V,GAAY,aACb8V,EAAW3sL,UAAW,gBAAY,GACrC0sL,GAAa,CACT7V,GAAY,cACb8V,EAAW3sL,UAAW,iBAAa,GACtC0sL,GAAa,CACT7V,GAAY,cACb8V,EAAW3sL,UAAW,iBAAa,GACtC0sL,GAAa,CACT7V,GAAY,eACb8V,EAAW3sL,UAAW,kBAAc,GACvC0sL,GAAa,CACT7V,GAAY,UACb8V,EAAW3sL,UAAW,aAAS,GAClC0sL,GAAa,CACT7V,GAAY,WACb8V,EAAW3sL,UAAW,cAAU,GACnC0sL,GAAa,CACT7V,GAAY,UACb8V,EAAW3sL,UAAW,aAAS,GAC3B2sL,EAjQoB,CAkQ7BtpL,IAQEotL,GAAoD,WACpD,IAAI/oL,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD2oL,GAAsD,SAAU5rL,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DuoL,GAAiC,SAAUroL,GAE3C,SAASqoL,IACL,OAAOroL,EAAOjH,KAAKoC,KAAMktL,EAAgBjY,WAAaj1K,KAmG1D,OArGAgtL,GAAYE,EAAiBroL,GAM7BqoL,EAAgB3wL,UAAU6J,QAAU,WAChCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCktL,EAAgB3wL,UAAU2I,KAAO,SAAU9B,GACvCpD,KAAKoD,OAASA,EACdpD,KAAKmtL,gBACLntL,KAAKotL,aACLptL,KAAKqtL,qBACLrtL,KAAKstL,oBAETJ,EAAgB3wL,UAAU4wL,cAAgB,WACtC,IAAII,EAAYvtL,KAAKoD,OACrB,GAAImqL,EAAUnmC,SAAU,CACpB,IAAIomC,EAAY,6GAChBplF,IAAO,WAAc,OAAOnlG,QAAQkD,KAAKqnL,KAAe,0CAGhEN,EAAgB3wL,UAAU+wL,iBAAmB,WACzC,IAAIvtL,EAAQC,KACZA,KAAKmqL,UAAU,oBAAqB,YACpCnqL,KAAKmqL,UAAU,oBAAqB,YACpC,IAAIsD,EAAe,SAAUrmL,GACzB,IAAIq9G,GAA2Br9G,GAA/B,CAGA,IAAIsmL,GAAoB3tL,EAAMqD,OAAOwhI,YAAY7iB,aACjDhiH,EAAMo/I,iBAAiBrM,qBAAqB/yI,EAAMqD,OAAOwhI,YAAYrkB,yBAA0BmtE,EAAkB,sBAErH1tL,KAAK2tL,0BAA0B3tL,KAAK4tL,WAAYH,GAChDztL,KAAK2tL,0BAA0B3tL,KAAK6tL,UAAWJ,GAC/C,IAAIK,EAAwB,SAAU1mL,GAClCo9G,GAAyBp9G,IAO7BpH,KAAKmnH,mBAAmBnnH,KAAK4tL,WAAY,WAAYE,GACrD9tL,KAAKmnH,mBAAmBnnH,KAAK6tL,UAAW,WAAYC,GACpD9tL,KAAKmnH,mBAAmBnnH,KAAKqG,SAAU,WAAYonL,GACnDztL,KAAK+tL,uBACL,IAAIhuE,EAAsB//G,KAAKoD,OAAOwhI,YAAYrkB,yBAClDvgH,KAAKmnH,mBAAmBpH,EAAqB6C,GAAoBM,uBAAwBljH,KAAK+tL,qBAAqBtjL,KAAKzK,OACxHA,KAAKmnH,mBAAmBpH,EAAqB6C,GAAoBiB,yBAA0B7jH,KAAK+tL,qBAAqBtjL,KAAKzK,QAE9HktL,EAAgB3wL,UAAUoxL,0BAA4B,SAAUpnE,EAAUrhB,GACtE,IAAIylF,EAAgB,IAAItD,GAAc9gE,GAAU,GAChDvmH,KAAKmnH,mBAAmBwjE,EAAetD,GAAcsB,UAAWzjF,GAChEllG,KAAKqnH,gBAAe,WAAc,OAAOsjE,EAAcvkL,aACvDpG,KAAKmnH,mBAAmBZ,EAAU,QAASrhB,IAE/CgoF,EAAgB3wL,UAAUwxL,qBAAuB,WAC7C,IAAInpD,EAAc5kI,KAAKoD,OAAOwhI,YAC9B,GAAIA,EAAY9iB,eAAgB,CAC5B,IAAIG,EAAWjiH,KAAKoD,OAAOwhI,YAAY7iB,aACvCyjC,GAAaxlJ,KAAK6tL,UAAW5rE,GAC7BujC,GAAaxlJ,KAAK4tL,YAAa3rE,QAG/BujC,GAAaxlJ,KAAK6tL,WAAW,GAC7BroC,GAAaxlJ,KAAK4tL,YAAY,IAGtCV,EAAgB3wL,UAAU4tL,UAAY,SAAUvmB,EAAUgP,GACtD,IAAI6X,EAAQ3mB,GAAiBF,EAAU5jK,KAAK8vG,mBAAoB,MAC5D26E,GACAzqL,KAAK6xK,cAAce,GAASl4I,YAAY+vJ,IAGhDyC,EAAgB3wL,UAAU8wL,mBAAqB,WAC3C,IAAKrtL,KAAKoD,OAAOwhI,YAAY9iB,eAGzB,OAFA0jC,GAAaxlJ,KAAK6tL,WAAW,QAC7BroC,GAAaxlJ,KAAK4tL,YAAY,IAItCV,EAAgB3wL,UAAU6wL,WAAa,WAEnC,IAAIv7H,EAAc7xD,KAAKoD,OAAOyuD,YAC9B,GAAI4uC,EAAO5uC,GAAc,CACrB,IAAIo4H,EAAuBj2D,GAAaniE,GACxC7xD,KAAK6xK,cAAc,WAAWhoF,UAAYogG,IAGlDiD,EAAgBjY,SAAW,waAC3BgY,GAAa,CACTr+E,GAAU,qBACXs+E,EAAgB3wL,UAAW,wBAAoB,GAClD0wL,GAAa,CACT7Z,GAAY,aACb8Z,EAAgB3wL,UAAW,iBAAa,GAC3C0wL,GAAa,CACT7Z,GAAY,aACb8Z,EAAgB3wL,UAAW,kBAAc,GACrC2wL,EAtGyB,CAuGlCttL,IAQEouL,GAAsD,SAAU3sL,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DspL,GAAyB,WACzB,SAASA,IAELjuL,KAAK4/I,SAAW,KAEhB5/I,KAAKvD,IAAM,KAEXuD,KAAKkuL,eAAiB,GAItBluL,KAAKylJ,WAAY,EAEjBzlJ,KAAKkgJ,OAAS,KAGdlgJ,KAAKmuL,UAAY,KAEjBnuL,KAAKouL,YAAa,EAGlBpuL,KAAK2oK,WAAaslB,EAAQI,qBAE1BruL,KAAKsuL,iBAAkB,EACvBtuL,KAAKuuL,YAAc,KACnBvuL,KAAKg+J,UAAW,EA0qBpB,OAxqBAiwB,EAAQ1xL,UAAUiyL,QAAU,SAAUjuL,GAClCP,KAAKyuL,cAAcluL,GAAM,IAO7B0tL,EAAQ1xL,UAAUmyL,WAAa,SAAUnuL,GACrCP,KAAKyuL,cAAcluL,GAAM,IAE7B0tL,EAAQ1xL,UAAUkyL,cAAgB,SAAUluL,EAAMouL,GAC9C,IAAIC,EAAU5uL,KAAKO,KACnBP,KAAKO,KAAOA,EACZP,KAAKk3H,WAAW23D,gBAChB7uL,KAAK8uL,yBACL9uL,KAAK+uL,qBACL,IAAI3nL,EAAQpH,KAAKgvL,uBAAuBzuL,EAAMquL,EAASD,GACvD3uL,KAAKivL,mBAAmB7nL,IAK5B6mL,EAAQ1xL,UAAUuyL,uBAAyB,WACnC9uL,KAAKkvL,aACLlvL,KAAKkvL,WAAW3uL,KAAOP,KAAKO,OAGpC0tL,EAAQ1xL,UAAUyyL,uBAAyB,SAAUG,EAASP,EAASD,GACnE,MAAO,CACHlvL,KAAMwuL,EAAQmB,mBACd58K,KAAMxS,KACN4uL,QAASA,EACTO,QAASA,EACTR,OAAQA,IAGhBV,EAAQ1xL,UAAU8yL,oBAAsB,SAAU5vL,GAC9C,MAAO,CACHA,KAAMA,EACN+S,KAAMxS,OAGdiuL,EAAQ1xL,UAAU+yL,kBAAoB,WAClC,OAAItvL,KAAKuvL,YAAcn+E,GAAUc,WACtB,KAAOlyG,KAAK4/I,SAEnB5/I,KAAKuvL,YAAcn+E,GAAUe,cACtB,KAAOnyG,KAAK4/I,SAEhB5/I,KAAK4/I,SAASjiJ,YAEzBswL,EAAQ1xL,UAAUizL,iBAAmB,WACjC,IAAIC,EAAU,IAAIxB,EAUlB,OATAjuL,KAAKqpG,QAAQ6B,WAAWukF,GAIxBA,EAAQzmI,GAAKhpD,KAAKgpD,GAClBymI,EAAQlvL,KAAOP,KAAKO,KACpBkvL,EAAQC,QAAS,EACjBD,EAAQzxB,SAAWh+J,KAAKg+J,SACxByxB,EAAQr2I,MAAQp5C,KAAKo5C,MACdq2I,GAEXxB,EAAQ1xL,UAAUozL,aAAe,SAAUpvL,EAAMyoD,GAC7C,IAAIymI,EAAUhvF,EAAOzgG,KAAKgpD,IAAMhpD,KAAKwvL,mBAAqB,KACtDZ,EAAU5uL,KAAKO,KACnBP,KAAKO,KAAOA,EACZP,KAAK8uL,yBACL9uL,KAAK4vL,MAAM5mI,GACXhpD,KAAK6vL,oBAAoBC,cAAc9vL,KAAMyvL,GAC7CzvL,KAAK+uL,qBACL,IAAI3nL,EAAQpH,KAAKgvL,uBAAuBzuL,EAAMquL,GAAS,GACvD5uL,KAAKivL,mBAAmB7nL,IAE5B6mL,EAAQ1xL,UAAUwyL,mBAAqB,WACnC,IAAIgB,EAAsB/vL,KAAK8vG,mBAAmBkgF,yBAClDhwL,KAAKiwL,kBAAiBF,GAAsBA,EAAoB/vL,QAEpEiuL,EAAQ1xL,UAAU0zL,iBAAmB,SAAUC,GACvClwL,KAAKouL,aAAe8B,IACpBlwL,KAAKouL,WAAa8B,EACdlwL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQkC,6BAI7ElC,EAAQ1xL,UAAUqzL,MAAQ,SAAU5mI,GAEhC,IAAIonI,EAAepwL,KAAK8vG,mBAAmBugF,mBACvCD,EAGIpwL,KAAKO,MACLP,KAAKgpD,GAAKonI,EAAapwL,KAAKO,MAGxBP,KAAKgpD,IAAyB,kBAAZhpD,KAAKgpD,IAAmB8xC,GAAW96F,KAAKgpD,GAAIilI,EAAQqC,sBACtErtL,QAAQC,MAAM,uCAAyC+qL,EAAQqC,oBAAsB,oEAOzFtwL,KAAKgpD,QAAK3pD,EAIdW,KAAKgpD,GAAKA,GAGlBilI,EAAQ1xL,UAAUg0L,eAAiB,SAAUC,GACzC,SAAK/vF,EAAOzgG,KAAKkgJ,UAAYz/C,EAAOzgG,KAAKigJ,cAGlCuwC,GAASxwL,KAAKkgJ,QAAUswC,EAASxwL,KAAKkgJ,OAASlgJ,KAAKigJ,YAE/DguC,EAAQ1xL,UAAUk0L,cAAgB,SAAU9rC,GACpC3kJ,KAAK2kJ,aAAeA,IAGxB3kJ,KAAK2kJ,WAAaA,EACd3kJ,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQyC,8BAGzEzC,EAAQ1xL,UAAUo0L,aAAe,SAAU/vE,GACnC5gH,KAAK4gH,YAAcA,IAGvB5gH,KAAK4gH,UAAYA,EACb5gH,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQ2C,6BAGzE3C,EAAQ1xL,UAAUs0L,cAAgB,SAAUC,GACpC9wL,KAAK8wL,aAAeA,IAGxB9wL,KAAK8wL,WAAaA,EACd9wL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQ8C,8BAGzE9C,EAAQ1xL,UAAUy0L,UAAY,SAAU9wC,GACpClgJ,KAAKmuL,UAAYnuL,KAAKkgJ,OAClBlgJ,KAAKkgJ,SAAWA,IAGpBlgJ,KAAKkgJ,OAASA,EACVlgJ,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQgD,oBAErEjxL,KAAKwlJ,aAAwB,OAAXtF,KAEtB+tC,EAAQ1xL,UAAU20L,uBAAyB,WACvClxL,KAAKmuL,UAAY,KACjBnuL,KAAKgxL,UAAU,MACfhxL,KAAKmxL,YAAY,OAErBlD,EAAQ1xL,UAAUipJ,aAAe,SAAUC,GACnCzlJ,KAAKylJ,YAAcA,IAGvBzlJ,KAAKylJ,UAAYA,EACbzlJ,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQxb,4BAGzEwb,EAAQ1xL,UAAU60L,YAAc,SAAUC,GAClCrxL,KAAKqxL,WAAaA,IAGtBrxL,KAAKqxL,SAAWA,EACZrxL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQqD,2BAGzErD,EAAQ1xL,UAAUg1L,eAAiB,SAAUhD,GACrCA,IAAgBvuL,KAAKuuL,cAGzBvuL,KAAKuuL,YAAcA,EACfvuL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQuD,4BAGzEvD,EAAQ1xL,UAAUk1L,oBAAsB,SAAUC,GAC1C1xL,KAAK0xL,mBAAqBA,IAG9B1xL,KAAK0xL,iBAAmBA,EACpB1xL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQ0D,qCAGzE1D,EAAQ1xL,UAAUq1L,UAAY,SAAUC,GAChC7xL,KAAK6xL,SAAWA,IAKhB7xL,KAAK6xL,SAAWA,IAChB7xL,KAAKiiH,UAAW,GAEpBjiH,KAAK6xL,OAASA,EACV7xL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQ6D,yBAGzE7D,EAAQ1xL,UAAUw1L,aAAe,SAAU9xC,EAAW+xC,QAChC,IAAdA,IAAwBA,GAAY,GACxChyL,KAAKigJ,UAAYA,EACjBjgJ,KAAKiyL,mBAAqBD,EACtBhyL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQiE,wBAGzEjE,EAAQ1xL,UAAU40L,YAAc,SAAUvxC,GAClC5/I,KAAK4/I,WAAaA,IAGtB5/I,KAAK4/I,SAAWA,EACZ5/I,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQkE,4BAGzElE,EAAQ1xL,UAAU61L,WAAa,SAAUC,GACjCryL,KAAKqyL,UAAYA,IAGrBryL,KAAKqyL,QAAUA,EACXryL,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQqE,2BAGzErE,EAAQ1xL,UAAUylH,YAAc,SAAUC,GACtC,GAAIjiH,KAAKiiH,WAAaA,EAAtB,CAGAjiH,KAAKiiH,SAAWA,EACZjiH,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQ/qE,yBAErE,IAAI97G,EAAQa,GAAO,GAAIjI,KAAKuyL,qBAAqB5lE,GAAOiB,wBAAyB,CAC7E3L,SAAUA,IAEdjiH,KAAKwyL,iBAAiB/lL,cAAcrF,GAGhCpH,KAAK8vG,mBAAmB2iF,wBACxBzyL,KAAK0yL,YAAYC,aAAa,CAAE1qB,SAAU,CAACjoK,UAGnDiuL,EAAQ1xL,UAAUg2L,qBAAuB,SAAU9yL,GAC/C,MAAO,CACHA,KAAMA,EACN+S,KAAMxS,KACNO,KAAMP,KAAKO,KACXq/I,SAAU5/I,KAAK4/I,SACf2vC,UAAWvvL,KAAKuvL,UAChBlmF,QAASrpG,KAAK8vG,mBAAmB0I,aACjC5uG,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,iBAG3Cu1E,EAAQ1xL,UAAU0yL,mBAAqB,SAAU7nL,GACzCpH,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAcrF,IAQxC6mL,EAAQ1xL,UAAUq2L,aAAe,SAAUvyD,EAAQ3jB,GAC/C,IAAIh1G,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiBiG,GAChDwyD,EAAW7yL,KAAKmgJ,aAAahS,SAASzmI,EAAQ1H,MAClDA,KAAKmgJ,aAAau1B,SAAS11K,KAAM0H,EAAQg1G,GACzC18G,KAAK8yL,yBAAyBprL,EAAQg1G,EAAUm2E,IAEpD5E,EAAQ1xL,UAAUw2L,cAAgB,SAAU1yD,EAAQ3jB,GAChD,IAAIh1G,EAAS1H,KAAKm/I,iBAAiB1e,cAAcJ,GAC7C1/B,EAAQ3gG,KAAKgzL,aACbhzL,KAAKgzL,UAAY,IAErB,IAAIC,EAAWvrL,EAAOs1G,WAClB61E,EAAW7yL,KAAKgzL,UAAUC,GAC1BJ,IAAan2E,IAGjB18G,KAAKgzL,UAAUC,GAAYv2E,EAC3B18G,KAAK8yL,yBAAyBprL,EAAQg1G,EAAUm2E,KAGpD5E,EAAQ1xL,UAAU22L,WAAa,SAAUC,GACrC,IAAIpzL,EAAQC,KAERozL,EAAS5sF,GAAoB,CAACxmG,KAAKqzL,QAASF,IAC5CG,EAAatzL,KAAKqzL,QACtBrzL,KAAKqzL,QAAUF,EAEXnzL,KAAKq0G,cACL++E,EAAO70L,SAAQ,SAAUukG,GACrB,IAAIp7F,EAAS3H,EAAMo/I,iBAAiB1e,cAAc39B,GAC9CpmG,EAAQqD,EAAMszL,QAAUtzL,EAAMszL,QAAQvwF,QAASzjG,EAC/CwzL,EAAWS,EAAaA,EAAWxwF,QAASzjG,EAChDU,EAAM+yL,yBAAyBprL,EAAQhL,EAAOm2L,OAI1D5E,EAAQ1xL,UAAUg3L,kBAAoB,WAIlC,IAAI72E,EAAY18G,KAAKk7F,QAAUl7F,KAAKo4E,QAAYp4E,KAAKkpK,oBAAsBlpK,KAAKkpK,mBAAmBzrK,OAAS,EACxGi/G,IAAa18G,KAAKwzL,gBAClBxzL,KAAKwzL,gBAAkB92E,EACnB18G,KAAKq0G,cACLr0G,KAAKq0G,aAAa5nG,cAAczM,KAAKqvL,oBAAoBpB,EAAQwF,+BAI7ExF,EAAQ1xL,UAAU0sK,YAAc,WAI5B,OAH0B,MAAtBjpK,KAAKwzL,eACLxzL,KAAKuzL,oBAEFvzL,KAAKwzL,eAEhBvF,EAAQ1xL,UAAUm3L,oBAAsB,WACpC,OAAO1zL,KAAKk7F,OAAS0F,EAAe5gG,KAAKkpK,qBAE7C+kB,EAAQ1xL,UAAUu2L,yBAA2B,SAAUprL,EAAQg1G,EAAUm2E,GACrE,IAAIc,EAAmB,CACnBl0L,KAAMwuL,EAAQ2F,mBACdphL,KAAMxS,KACN0H,OAAQA,EACRg1G,SAAUA,EACVm2E,SAAUA,GAEd7yL,KAAKivL,mBAAmB0E,IAE5B1F,EAAQ1xL,UAAUs3L,8BAAgC,WAC9C7zL,KAAK8zL,yBAA2B,MAEpC7F,EAAQ1xL,UAAUulH,aAAe,WAC7B,SAAO9hH,KAAKipK,gBAAiBjpK,KAAK6xL,SAEtC5D,EAAQ1xL,UAAUw3L,WAAa,WAE3B,OAAI/zL,KAAKo4E,OACEp4E,KAAK0kJ,QAAQqvC,aAEjB/zL,KAAKg+J,UAEhBiwB,EAAQ1xL,UAAUy3L,iBAAmB,SAAUtuL,GACvC1F,KAAKkpK,oBACLlpK,KAAKkpK,mBAAmB3qK,SAAQ,SAAUmiH,GAAS,OAAOA,EAAMszE,iBAAiBtuL,MAErFA,EAAS1F,OAIbiuL,EAAQ1xL,UAAU03L,8BAAgC,WAC9C,IAGIC,EAHAC,GAAqB,EACrBC,GAAuB,EACvBC,GAAkB,EAEtB,GAAIr0L,KAAKkpK,mBACL,IAAK,IAAI3rK,EAAI,EAAGA,EAAIyC,KAAKkpK,mBAAmBzrK,OAAQF,IAAK,CACrD,IAAImjH,EAAQ1gH,KAAKkpK,mBAAmB3rK,GAEpC,GAAKmjH,EAAM0tE,WAAX,CAGA,IAAIkG,EAAa5zE,EAAMqzE,aACvB,OAAQO,GACJ,KAAK,EACDH,GAAqB,EACrB,MACJ,KAAK,EACDC,GAAuB,EACvB,MACJ,QACIC,GAAkB,EAClB,QAKZH,EADAG,OACmBh1L,KAEd80L,GAAuBC,OAGtBD,GAAsBC,SAIT/0L,EAEvBW,KAAKu0L,eAAeL,IAExBjG,EAAQ1xL,UAAUi4L,wBAA0B,SAAUx2B,GAClDh+J,KAAKg+J,SAAWA,GAEpBiwB,EAAQ1xL,UAAUk4L,YAAc,SAAU/3E,EAAUg4E,EAAgBC,QACzC,IAAnBD,IAA6BA,GAAiB,QACpB,IAA1BC,IAAoCA,GAAwB,GAChE30L,KAAK40L,kBAAkB,CACnBl4E,SAAUA,EACVg4E,eAAgBA,EAChBC,sBAAuBA,EACvBE,aAAa,KAGrB5G,EAAQ1xL,UAAUu4L,YAAc,WAC5B,OAAO90L,KAAKuvL,YAAcn+E,GAAUc,YAAclyG,KAAKuvL,YAAcn+E,GAAUe,eAGnF87E,EAAQ1xL,UAAUq4L,kBAAoB,SAAUxxL,GAC5C,IAAI2xL,EAAuB/0L,KAAK8vG,mBAAmBklF,yBAC/Ct4E,GAA+B,IAApBt5G,EAAOs5G,SAClBg4E,GAA2C,IAA1BtxL,EAAOsxL,eACxBC,GAAyD,IAAjCvxL,EAAOuxL,sBAC/BE,GAAqC,IAAvBzxL,EAAOyxL,YAErBI,EAAuBF,IAAyD,IAAhC3xL,EAAO6xL,qBAC3D,QAAgB51L,IAAZW,KAAKgpD,GAEL,OADA/lD,QAAQkD,KAAK,0DACN,EAEX,GAAInG,KAAKuvL,UAEL,OADAtsL,QAAQkD,KAAK,sCACN,EAIX,GAAInG,KAAKo4E,OACL,OAAOp4E,KAAK0kJ,QAAQkwC,kBAAkBxxL,GAE1C,GAAIyxL,GAAe70L,KAAK6vL,oBAAoBqF,sBAAuB,CAC/D,IAAIC,EAAgBn1L,KAAK6vL,oBAAoBqF,wBAA0Bl1L,KACnEo1L,EAAmBp1L,KAAK8vG,mBAAmBulF,sBAC/C,GAAIF,GAAiBC,EAAkB,CACnC,IAAIE,EAAet1L,KAAKu1L,oBAAoBnyL,EAAOs5G,UAEnD,OADA18G,KAAK6vL,oBAAoB2F,oBAAoBx1L,MACtCs1L,GAGf,IAAIG,EAAe,EAKfC,EAAeT,GAAwBj1L,KAAKk7F,MAChD,IAAKw6F,EAAc,CACf,IAAIC,EAAsB31L,KAAKu0L,eAAe73E,GAC1Ci5E,GACAF,IAOR,GAJIV,GAAwB/0L,KAAKk7F,QAC7Bu6F,GAAgBz1L,KAAK41L,iBAAiBl5E,EAAUu4E,KAG/CN,EAAuB,CACxB,IAAIkB,EAAkBn5E,IAAag4E,IAAmB10L,KAAK8vG,mBAAmBulF,uBAK9E,GAJIQ,IACAJ,GAAgBz1L,KAAK6vL,oBAAoBgG,gBAAgB71L,OAGzDy1L,EAAe,EAAG,CAClBz1L,KAAK6vL,oBAAoBiG,qCAGzB,IAAIlyE,EAAU,CACVnkH,KAAMktH,GAAOwC,wBACbvlH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKwyL,iBAAiB/lL,cAAcm3G,GAGpClH,GACA18G,KAAK6vL,oBAAoB2F,oBAAoBx1L,MAGrD,OAAOy1L,GAKXxH,EAAQ1xL,UAAUg5L,oBAAsB,SAAU74L,GAC9C,IAAIqD,EAAQC,UACE,IAAVtD,IAAoBA,GAAQ,GAChC,IAAIq5L,EAAuB/1L,KAAK8vG,mBAAmBklF,yBAC/CgB,EAAmBh2L,KAAK6vL,oBAAoBqF,sBAC5Ce,EAAgBj2L,KAAKk4I,SAASg+C,4BAA4Bl2L,KAAMg2L,GAChEP,EAAe,EACnBQ,EAAc13L,SAAQ,SAAUwM,GAC5B,KAAIA,EAAQmwF,OAAS66F,IAAmC,IAAVr5L,GAAmBqD,IAAUgL,GAA3E,CAGA,IAAIorL,EAAkBprL,EAAQwpL,eAAe73L,GACzCy5L,GACAV,QAGRz1L,KAAK6vL,oBAAoBiG,qCACzB,IAAI1uL,EAAQ,CACR3H,KAAMktH,GAAOwC,wBACbvlH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAGpB,OADA7J,KAAKwyL,iBAAiB/lL,cAAcrF,GAC7BquL,GAEXxH,EAAQ1xL,UAAU65L,eAAiB,SAAUC,GACzC,IAAItzC,EAAa/iJ,KAAK6C,OACtB,MAAOkgJ,EAAY,CACf,GAAIA,IAAeszC,EACf,OAAO,EAEXtzC,EAAaA,EAAWlgJ,OAE5B,OAAO,GAEXorL,EAAQ1xL,UAAUg4L,eAAiB,SAAU73E,GAGzC,IAAI45E,GAAuBt2L,KAAKouL,YAAc1xE,EAC1C65E,EAAsBv2L,KAAKg+J,WAAathD,EAC5C,GAAI45E,GAAuBC,EACvB,OAAO,EAEXv2L,KAAKg+J,SAAWthD,EACZ18G,KAAKq0G,cACLr0G,KAAKivL,mBAAmBjvL,KAAKqvL,oBAAoBpB,EAAQ/+D,qBAE7D,IAAI9nH,EAAQpH,KAAKuyL,qBAAqB5lE,GAAOuC,oBAE7C,OADAlvH,KAAKwyL,iBAAiB/lL,cAAcrF,IAC7B,GAEX6mL,EAAQ1xL,UAAUq5L,iBAAmB,SAAUl5E,EAAUu4E,GACrD,IAAIntL,EAAWmtL,EAAuBj1L,KAAKw2L,oBAAsBx2L,KAAKkpK,mBACtE,GAAIvoE,EAAQ74F,GACR,OAAO,EAGX,IADA,IAAI2tL,EAAe,EACVl4L,EAAI,EAAGA,EAAIuK,EAASrK,OAAQF,IACjCk4L,GAAgB3tL,EAASvK,GAAGq3L,kBAAkB,CAC1Cl4E,SAAUA,EACVg4E,gBAAgB,EAChBC,uBAAuB,EACvBM,qBAAsBA,IAG9B,OAAOQ,GAEXxH,EAAQ1xL,UAAUi0G,iBAAmB,SAAUpnG,EAAWqnG,GACjDzwG,KAAKq0G,eACNr0G,KAAKq0G,aAAe,IAAIjF,IAE5BpvG,KAAKq0G,aAAa7D,iBAAiBpnG,EAAWqnG,IAElDw9E,EAAQ1xL,UAAUm0G,oBAAsB,SAAUtnG,EAAWqnG,GACpDzwG,KAAKq0G,eAGVr0G,KAAKq0G,aAAa3D,oBAAoBtnG,EAAWqnG,GAC7CzwG,KAAKq0G,aAAa9D,+BAClBvwG,KAAKq0G,aAAe,QAG5B45E,EAAQ1xL,UAAU4vK,aAAe,WAC7BnsK,KAAKivL,mBAAmBjvL,KAAKqvL,oBAAoBpB,EAAQwI,qBAE7DxI,EAAQ1xL,UAAU6vK,aAAe,WAC7BpsK,KAAKivL,mBAAmBjvL,KAAKqvL,oBAAoBpB,EAAQyI,qBAE7DzI,EAAQ1xL,UAAUo6L,0BAA4B,SAAUC,GACpD,IAAIC,EAAiB72L,KACjB82L,GAAc,EACdC,GAAsB,EACtBC,EAAe,KAGnB,MAAOF,IAAgBC,EAAqB,CACxC,IAAIE,EAAgBJ,EAAeh0L,OAC/B8hJ,EAAalkD,EAAOw2F,IAAkBJ,EAAelyC,WACrDA,EACIsyC,EAAcL,iBAAmBA,IACjCG,GAAsB,EACtBC,EAAeC,GAInBH,GAAc,EAElBD,EAAiBI,EAErB,OAAOF,EAAsBC,EAAe,MAEhD/I,EAAQ1xL,UAAU26L,gBAAkB,WAChC,IAAIC,EAAsBn3L,KAAK8vG,mBAAmBsnF,yBAClD,QAAOD,GAAsBA,EAAoBn3L,OAErDiuL,EAAQ1xL,UAAU86L,SAAW,WACzB,GAAgB,MAAZr3L,KAAKvD,IAAT,CAGA,IAAI6gC,EAAM,GACN2oF,EAAUjmH,KACd,MAAsB,MAAfimH,EAAQxpH,IACX6gC,EAAIh+B,KAAK2mH,EAAQxpH,KACjBwpH,EAAUA,EAAQpjH,OAEtB,OAAOy6B,EAAIonE,YAEfupF,EAAQqC,oBAAsB,aAC9BrC,EAAQqJ,qBAAuB,KAC/BrJ,EAAQsJ,wBAA0B,KAClCtJ,EAAQI,mBAAqB,EAC7BJ,EAAQ/+D,mBAAqB,cAC7B++D,EAAQmB,mBAAqB,cAC7BnB,EAAQ2F,mBAAqB,cAC7B3F,EAAQ0D,iCAAmC,0BAC3C1D,EAAQ6D,qBAAuB,gBAC/B7D,EAAQwI,kBAAoB,aAC5BxI,EAAQyI,kBAAoB,aAC5BzI,EAAQiE,qBAAuB,gBAC/BjE,EAAQgD,kBAAoB,aAC5BhD,EAAQxb,wBAA0B,mBAClCwb,EAAQyC,0BAA4B,oBACpCzC,EAAQ2C,yBAA2B,mBACnC3C,EAAQ8C,0BAA4B,oBACpC9C,EAAQkE,wBAA0B,kBAClClE,EAAQ/qE,uBAAyB,kBACjC+qE,EAAQwF,2BAA6B,qBACrCxF,EAAQkC,yBAA2B,oBACnClC,EAAQqE,uBAAyB,iBACjCrE,EAAQuD,wBAA0B,sBAClCvD,EAAQqD,uBAAyB,kBACjCtD,GAAa,CACTp/E,GAAU,iBACXq/E,EAAQ1xL,UAAW,wBAAoB,GAC1CyxL,GAAa,CACTp/E,GAAU,gBACXq/E,EAAQ1xL,UAAW,mBAAe,GACrCyxL,GAAa,CACTp/E,GAAU,uBACXq/E,EAAQ1xL,UAAW,0BAAsB,GAC5CyxL,GAAa,CACTp/E,GAAU,wBACXq/E,EAAQ1xL,UAAW,2BAAuB,GAC7CyxL,GAAa,CACTp/E,GAAU,qBACXq/E,EAAQ1xL,UAAW,wBAAoB,GAC1CyxL,GAAa,CACTp/E,GAAU,iBACXq/E,EAAQ1xL,UAAW,oBAAgB,GACtCyxL,GAAa,CACTp/E,GAAU,aACXq/E,EAAQ1xL,UAAW,gBAAY,GAClCyxL,GAAa,CACTp/E,GAAU,YACXq/E,EAAQ1xL,UAAW,eAAW,GACjCyxL,GAAa,CACTp/E,GAAU,eACXq/E,EAAQ1xL,UAAW,kBAAc,GACpCyxL,GAAa,CACTp/E,GAAU,cACXq/E,EAAQ1xL,UAAW,iBAAa,GACnCyxL,GAAa,CACTp/E,GAAU,YACXq/E,EAAQ1xL,UAAW,eAAW,GAC1B0xL,EAnsBiB,GA4sBxBuJ,GAAoD,WACpD,IAAIvzL,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDmzL,GAAsD,SAAUp2L,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D+yL,GAA4C,SAAU7yL,GAEtD,SAAS6yL,IACL,OAAO7yL,EAAOjH,KAAKoC,KAAgB,+KAAyLA,KAqGhO,OAvGAw3L,GAAYE,EAA4B7yL,GAIxC6yL,EAA2Bn7L,UAAUwiJ,cAAgB,WACjD/+I,KAAK0qJ,UAAUitC,YAAW,IAE9BD,EAA2Bn7L,UAAUq7L,cAAgB,WACjD,OAAO53L,KAAK0qJ,UAAUurB,kBAAkBjtH,IAE5C0uI,EAA2Bn7L,UAAUsyL,cAAgB,WAGjD7uL,KAAK63L,sBAETH,EAA2Bn7L,UAAUu7L,oBAAsB,WACvD93L,KAAK+3L,oBAETL,EAA2Bn7L,UAAUs7L,mBAAqB,WACtD,IAAIhiB,EAAY71K,KAAK8vG,mBAAmBygC,oBACpCvjH,EAAQhtB,KAAK+K,QAAQgpL,aACrBiE,OAAsB34L,IAAV2tB,EACV6oJ,EAAU,oBAAqB,kBACpB,IAAV7oJ,EACG6oJ,EAAU,cAAe,WACzBA,EAAU,gBAAiB,aACjCqR,EAAYrR,EAAU,yBAA0B,uCACpD71K,KAAK0qJ,UAAUgrB,SAAS1oJ,GAAO,GAC/BhtB,KAAK0qJ,UAAUorB,kBAAkBoR,EAAY,KAAO8Q,EAAY,MAEpEN,EAA2Bn7L,UAAU07L,iBAAmB,SAAU7wL,GAC9D,IAAI6tL,EAAuBj1L,KAAK8vG,mBAAmBooF,yBAC/CzC,EAAez1L,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAU,EAAOm4E,YAAaztL,EAAMw5H,SAAUq0D,qBAAsBA,IACxH,OAAOQ,GAEXiC,EAA2Bn7L,UAAU47L,mBAAqB,SAAU/wL,GAChE,IAAI6tL,EAAuBj1L,KAAK8vG,mBAAmBooF,yBAC/CzC,EAAez1L,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAU,EAAMm4E,YAAaztL,EAAMw5H,SAAUq0D,qBAAsBA,IACvH,OAAOQ,GAEXiC,EAA2Bn7L,UAAU2I,KAAO,SAAU9B,GAClD,IAAIrD,EAAQC,KACZA,KAAK+K,QAAU3H,EAAO2H,QACtB/K,KAAK0H,OAAStE,EAAOsE,OACrB1H,KAAK63L,qBAGL73L,KAAK0yK,oBAAoB,SAAS,SAAUtrK,GAAS,OAAOo9G,GAAyBp9G,MAErFpH,KAAK0yK,oBAAoB,YAAY,SAAUtrK,GAAS,OAAOo9G,GAAyBp9G,MACxFpH,KAAKmnH,mBAAmBnnH,KAAK0qJ,UAAUurB,kBAAmB,SAAS,SAAU7uK,GACzE,IAAI2sL,EAAah0L,EAAM2qJ,UAAUvc,WAC7BrnI,EAAgB/G,EAAM2qJ,UAAU0tC,mBACpC,QAAsB/4L,IAAlByH,EAA6B,CAC7B,IAAI0H,EAASzO,EAAMo4L,mBAAmB/wL,GAAS,IAChC,IAAXoH,GACAzO,EAAMk4L,iBAAiB7wL,QAGtB2sL,EACLh0L,EAAMk4L,iBAAiB7wL,GAGvBrH,EAAMo4L,mBAAmB/wL,GAAS,OAG1CpH,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ/+D,mBAAoBlvH,KAAK63L,mBAAmBptL,KAAKzK,OAC/FA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQmB,mBAAoBpvL,KAAK6uL,cAAcpkL,KAAKzK,OAC1FA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQkC,yBAA0BnwL,KAAK83L,oBAAoBrtL,KAAKzK,OACtG,IAAI+vL,EAAsB/vL,KAAK8vG,mBAAmBkgF,yBAC9CqI,EAA2BtI,GAAuB/vL,KAAKs4L,yBAC3D,GAAID,EAA0B,CAC1B,IAAIE,EAA2Bv4L,KAAK+3L,iBAAiBttL,KAAKzK,MAC1DA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiC8qE,GACnFv4L,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQmB,mBAAoBmJ,GAClEv4L,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ2F,mBAAoB2E,GAClEv4L,KAAK+3L,mBAET/3L,KAAK0qJ,UAAUurB,kBAAkB7wD,aAAa,WAAY,OAE9DsyE,EAA2Bn7L,UAAUw7L,iBAAmB,WAEpD,IAAI3J,EAAapuL,KAAK+K,QAAQqjL,WAI1BA,GAAcpuL,KAAKs4L,2BACnBlK,EAAapuL,KAAK0H,OAAO2xG,wBAAwBr5G,KAAK+K,UAG1D/K,KAAKy8G,WAAW2xE,IAEpBsJ,EAA2Bn7L,UAAU+7L,uBAAyB,WAE1D,IAAI1wL,EAAS5H,KAAK0H,OAAS1H,KAAK0H,OAAOm1G,YAAc,KACrD,QAASj1G,GAA8C,oBAA7BA,EAAO0xG,mBAErCm+E,GAAa,CACTrkB,GAAY,cACbskB,EAA2Bn7L,UAAW,iBAAa,GACtDk7L,GAAa,CACTnpF,IACDopF,EAA2Bn7L,UAAW,gBAAiB,MACnDm7L,EAxGoC,CAyG7C93L,IAQE44L,GAAgB,CAChBvxL,aAAc,gBACdwxL,eAAgB,WAAc,OAAO,IAErCC,GAAkB,CAClBzxL,aAAc,kBACdwxL,eAAgB,WAAc,OAAO,IAErCE,GAAuB,CACvB1xL,aAAc,uBACdwxL,eAAgB,WAAc,OAAO,IAErCG,GAAwB,CACxB3xL,aAAc,eACdwxL,eAAgB,WAAc,OAAO,IAErCI,GAAiC,CACjC5xL,aAAc,wBACdwxL,eAAgB,WAAc,OAAO,IAErCK,GAAsB,CACtB7xL,aAAc,aACdwxL,eAAgB,WAAc,OAAO,IAErCM,GAAyB,CACzB9xL,aAAc,gBACdwxL,eAAgB,WAAc,OAAO,IAErCO,GAA0B,CAC1B/xL,aAAc,0BACdwxL,eAAgB,WAAc,OAAO,IAErCQ,GAAyB,CACzBhyL,aAAc,yBACdwxL,eAAgB,WAAc,OAAO,IAErCS,GAAmB,CACnBjyL,aAAc,mBACdwxL,eAAgB,WAAc,OAAO,IAErCU,GAAkB,CAClBlyL,aAAc,SACdwxL,eAAgB,WAAc,OAAO,IAErCW,GAA0B,CAC1BnyL,aAAc,0BACdwxL,eAAgB,WAAc,OAAO,IAErCY,GAAqB,CACrBpyL,aAAc,YACdwxL,eAAgB,WAAc,OAAO,IAErCa,GAAuB,CACvBryL,aAAc,cACdwxL,eAAgB,WAAc,OAAO,IASrCc,GAAoD,WACpD,IAAIt1L,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDk1L,GAAsD,SAAUn4L,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAWw6K,GACPA,EAAgBA,EAAgB,WAAa,GAAK,UAClDA,EAAgBA,EAAgB,sBAAwB,GAAK,qBAC7DA,EAAgBA,EAAgB,aAAe,GAAK,aAHxD,CAIGA,KAAoBA,GAAkB,KACzC,IAAIsa,GAAsC,SAAU50L,GAEhD,SAAS40L,IACL,OAAkB,OAAX50L,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA4V/D,OA9VAu5L,GAAYE,EAAsB50L,GAIlC40L,EAAqBl9L,UAAUu6K,iBAAmB,SAAU1zK,GACxD,OAAOpD,KAAK05L,2BAA2B15L,KAAKyG,YAAarD,EAAQo1L,GAAe,gBAEpFiB,EAAqBl9L,UAAUo9L,mBAAqB,SAAUv2L,GAC1D,OAAOpD,KAAK05L,2BAA2Bt2L,EAAOsE,OAAOm1G,YAAaz5G,EAAQs1L,GAAiB,mBAE/Fe,EAAqBl9L,UAAUq9L,wBAA0B,SAAUx2L,GAC/D,OAAOpD,KAAK05L,2BAA2Bt2L,EAAOwhI,YAAYhjB,iBAAkBx+G,EAAQu1L,GAAsB,wBAE9Gc,EAAqBl9L,UAAUs9L,sCAAwC,SAAUz2L,GAC7E,OAAOpD,KAAK05L,2BAA2B15L,KAAKyG,YAAYqzL,uBAAwB12L,EAAQ21L,GAAwB,MAAM,IAI1HU,EAAqBl9L,UAAUw9L,yBAA2B,SAAU32L,EAAQ42L,EAAkBC,GAC1F,OAAOj6L,KAAK05L,2BAA2B,KAAMt2L,EAAQ,CAAE6D,aAAc+yL,EAAkBvB,eAAgB,WAAc,OAAO,IAAWwB,IAE3IR,EAAqBl9L,UAAU29L,gBAAkB,SAAUn+L,EAAQqH,EAAQi5G,GAEvE,YADiB,IAAbA,IAAuBA,GAAW,GAC/Br8G,KAAK05L,2BAA2B39L,EAAQqH,EAAQi5G,EAAWw8E,GAAiCD,GAAuB,MAAM,IAEpIa,EAAqBl9L,UAAU49L,cAAgB,SAAUvyL,EAAQxE,GAC7D,OAAOpD,KAAK05L,2BAA2B9xL,EAAQxE,EAAQ01L,GAAqB,iBAEhFW,EAAqBl9L,UAAU69L,qBAAuB,SAAUr+L,EAAQqH,GACpE,OAAOpD,KAAK05L,2BAA2B39L,EAAQqH,EAAQ21L,GAAwB,OAEnFU,EAAqBl9L,UAAU89L,2BAA6B,SAAUj3L,GAClE,OAAOpD,KAAK05L,2BAA2B15L,KAAKyG,YAAarD,EAAQ41L,GAAyB,qBAE9FS,EAAqBl9L,UAAU+9L,0BAA4B,SAAUl3L,GACjE,OAAOpD,KAAK05L,2BAA2B15L,KAAKyG,YAAarD,EAAQ61L,GAAwB,oBAE7FQ,EAAqBl9L,UAAUkxK,oBAAsB,SAAUrqK,GAC3D,OAAOpD,KAAK05L,2BAA2Bt2L,EAAOwE,OAAQxE,EAAQ81L,GAAkB,uBAEpFO,EAAqBl9L,UAAUg+L,mBAAqB,SAAUlwE,EAAKjnH,EAAQo3L,GACvE,OAAOx6L,KAAK05L,2BAA2BrvE,EAAKjnH,EAAQ+1L,GAAiBqB,GAAe,IAExFf,EAAqBl9L,UAAUk+L,yBAA2B,SAAU1+L,EAAQqH,GACxE,OAAOpD,KAAK05L,2BAA2B39L,EAAQqH,EAAQw1L,GAAuB,MAAM,IAExFa,EAAqBl9L,UAAUm+L,2BAA6B,SAAUrwE,EAAKjnH,EAAQu3L,GAC/E,OAAO36L,KAAK05L,2BAA2BrvE,EAAKjnH,EAAQg2L,GAAyBuB,GAAuB,IAExGlB,EAAqBl9L,UAAUq+L,sBAAwB,SAAUC,EAAcz3L,GAC3E,OAAOpD,KAAK05L,2BAA2BmB,EAAcz3L,EAAQi2L,KAEjEI,EAAqBl9L,UAAUu+L,wBAA0B,SAAUzwE,EAAKjnH,GACpE,OAAOpD,KAAK05L,2BAA2BrvE,EAAKjnH,EAAQk2L,KAgBxDG,EAAqBl9L,UAAUm9L,2BAA6B,SAAUqB,EAAkBC,EAAgB33L,EAAe43L,EAEvHtuF,QACqB,IAAbA,IAAuBA,GAAW,GACjCouF,IACDA,EAAmB/6L,KAAKyG,aAG5B,IAAIy0L,EAAqBl7L,KAAKm7L,wBAAwBJ,EAAkB13L,EAAe23L,EAAgBC,EAAsBtuF,GAC7H,IAAKuuF,EACD,OAAO,KAEX,IAAIn4L,EAAoBm4L,EAAmBn4L,kBAEvCK,EAASpD,KAAKo7L,kBAAkBL,EAAkB13L,EAAc4D,aAAc+zL,EAAgBE,EAAmBG,oBACrHr7L,KAAKs7L,cAAcl4L,GACnB,IAAIm4L,EAAev7L,KAAKw7L,cAAcz4L,EAAmBK,GACzD,OAAoB,MAAhBm4L,EACOzxB,GAAUQ,QAAQvnK,GAEtBw4L,EAAa5/B,MAAK,WAAc,OAAO54J,MAElD02L,EAAqBl9L,UAAU++L,cAAgB,SAAUl4L,GAGrD,IAAIq4L,EAAcz7L,KAAKqpG,QAAQuE,QAAQ,eACnC6tF,IACAr4L,EAAOq4L,YAAc71F,EAAY61F,IAGrC,IAAIxxL,EAA4BjK,KAAKqpG,QAAQuE,QAAQ,6BACjD3jG,IACA7G,EAAO6G,0BAA4BA,IAY3CwvL,EAAqBl9L,UAAUm/L,qCAAuC,SAAUC,EAAOC,GACnF,IAAIC,EAAoB,IAAIF,EAE5B,OADA37L,KAAKw7L,cAAcK,EAAmBD,GAC/BC,GAmBXpC,EAAqBl9L,UAAUu/L,wBAA0B,SAAUf,EAAkB9zL,EAAc7D,EAAQ63L,QACxF,IAAX73L,IAAqBA,EAAS,MASlC,IAAI24L,EAAyB,KACzBC,EAAuB,KACvBC,EAAsB,KACtBC,EAAuB,KACvBC,EAAwB,KAC5B,GAAwB,MAApBpB,EAA0B,CAC1B,IAAIqB,EAAyBrB,EAAiB9zL,GAE1Co1L,GAAmD,IAA3BD,EACE,MAA1BA,GAAmCC,IACG,kBAA3BD,EACPL,EAAyBK,EAEc,mBAA3BA,IACPp8L,KAAKs8L,iBAAiBC,wBAAwBH,GACnDJ,EAAuBI,EAGvBH,EAAsBG,IAG9BF,EAAuBnB,EAAiB9zL,EAAe,aACvDk1L,EAAwBpB,EAAiB9zL,EAAe,YAM5D,GAAK+0L,GAAwBE,GACxBH,GAA0BG,GAC1BD,GAAuBC,EACxB,MAAMvoL,MAAM,uCAAyC1M,EAAe,0BAExE,GAAIi1L,IAAyBl8L,KAAKiK,0BAC9B,MAAM0J,MAAM,gHAAkH1M,GAElI,GAAIk1L,IAA0BJ,GAA0BC,GAAwBC,GAAuBC,GACnG,MAAMvoL,MAAM,oFAAsF1M,GAYtG,GAAIi1L,EAGA,MAAO,CACHM,wBAAwB,EACxB15L,UAAWo5L,EACXp3F,OAAQq6E,GAAgBsd,UACxBpB,mBAAoB,MAG5B,GAAIW,EAGA,MAAO,CACHQ,wBAAwB,EACxB15L,UAAWk5L,EACXl3F,OAAQq6E,GAAgBsd,UACxBpB,mBAAoB,MAG5B,GAAIY,EAGA,OAAOj8L,KAAKs8L,iBAAiBI,cAAcz1L,EAAcg1L,GAAqB,EAAO9c,GAAgBsd,WAEzG,IACIE,EADAC,EAAiBT,EAAwBA,EAAsB/4L,GAAU,KAW7E,GARIu5L,EADAC,GAAkBA,EAAe95L,UACZ85L,EAAe95L,UAE/Bi5L,GAIgBd,GAEpB0B,EACD,OAAO,KAEX,IAAIE,EAAyB78L,KAAK88L,+BAA+B71L,EAAc01L,GAC/E,OAAKE,EAGE,CACHL,uBAAwBK,EAAuBL,uBAC/C15L,UAAW+5L,EAAuB/5L,UAClCgiG,OAAQ+3F,EAAuB/3F,OAC/Bu2F,mBAAoBuB,EAAiBA,EAAex5L,OAAS,MANtD,MASfq2L,EAAqBl9L,UAAUugM,+BAAiC,SAAU71L,EAAc81L,GACpF,IAAIC,EAAoC,MAApBD,EAA2BA,EAAmB91L,EAC9Dg2L,EAAsBj9L,KAAKk9L,sBAAsBC,SAASH,GAC9D,OAA2B,MAAvBC,EACO,KAGPA,EAAoBT,uBACb,CACH15L,UAAWm6L,EAAoBn6L,UAC/B05L,wBAAwB,EACxB13F,OAAQq6E,GAAgBie,mBACxB/B,mBAAoB,MAIxBr7L,KAAKs8L,iBAAiBC,wBAAwBU,EAAoBn6L,WAC3D,CACHA,UAAWm6L,EAAoBn6L,UAC/B05L,wBAAwB,EACxB13F,OAASm4F,EAAoBn4F,QAAUu4F,GAA0BC,WAAcne,GAAgBie,mBAAqBje,GAAgBoe,QACpIlC,mBAAoB,MAIrBr7L,KAAKs8L,iBAAiBI,cAAcz1L,EAAcg2L,EAAoBn6L,UAAWm6L,EAAoBT,uBAAyBS,EAAoBn4F,QAAUu4F,GAA0BC,WAAcne,GAAgBie,mBAAqBje,GAAgBoe,UAYpQ9D,EAAqBl9L,UAAU6+L,kBAAoB,SAAUL,EAAkB9zL,EAAc+zL,EAAgBK,QAC9E,IAAvBA,IAAiCA,EAAqB,MAC1D,IAAIj4L,EAAS,GACbyjG,GAAUzjG,EAAQ43L,GAClB,IAAIwC,EAAazC,EAAmBA,EAAiB9zL,EAAe,UAAY,KAChF,GAAkB,MAAdu2L,EACA,GAA0B,oBAAfA,EAA2B,CAClC,IAAIC,EAAqBD,EAAWxC,GACpCn0F,GAAUzjG,EAAQq6L,OAES,kBAAfD,GACZ32F,GAAUzjG,EAAQo6L,GAI1B,OADA32F,GAAUzjG,EAAQi4L,GACXj4L,GAEXq2L,EAAqBl9L,UAAU4+L,wBAA0B,SAAUuC,EAAQr6L,EAAes6L,EAAmB1C,EAAsBtuF,GAC/H,IAaI5pG,EAbAkE,EAAe5D,EAAc4D,aAC7B22L,EAAiB59L,KAAK87L,wBAAwB4B,EAAQz2L,EAAc02L,EAAmB1C,GACvFt6F,GAAWi9F,IAAmBA,EAAe96L,UACjD,GAAI69F,EAAS,CAGT,IAAIk9F,EAAeH,EAASA,EAAOz2L,GAAgBg0L,EAC/C6C,EAAeD,GAA8B5C,EAIjD,OAHKtuF,GACD1pG,QAAQC,MAAM,4BAA8B46L,EAAe,iDAExD,KAGX,GAAIF,EAAepB,uBAAwB,CAEvC,IAAIuB,EAAwBH,EAAe96L,UACvCk7L,EAAsBh+L,KAAKi+L,0BAA0Bd,SAASl2L,GAClElE,EAAoB/C,KAAKiK,0BAA0Bi0L,KAAKH,EAAuBC,EAAoBG,oBAAqBH,EAAoBI,mBAAoB/6L,EAAe43L,QAI/Kl4L,EAAoB,IAAI66L,EAAe96L,UAE3C,MAAO,CAAEC,kBAAmBA,EAAmBs4L,mBAAoBuC,EAAevC,qBAEtF5B,EAAqBl9L,UAAUi/L,cAAgB,SAAU14L,EAAWM,GAEhE,GADApD,KAAKqpG,QAAQ6B,WAAWpoG,GACF,MAAlBA,EAAUoC,KAGd,OAAOpC,EAAUoC,KAAK9B,IAE1Bo2L,GAAa,CACT5qF,GAAU,gBACX6qF,EAAqBl9L,UAAW,mBAAe,GAClDi9L,GAAa,CACT5qF,GAAU,qBACX6qF,EAAqBl9L,UAAW,wBAAoB,GACvDi9L,GAAa,CACT5qF,GAAU,8BACX6qF,EAAqBl9L,UAAW,iCAA6B,GAChEi9L,GAAa,CACT5qF,GAAU,0BACX6qF,EAAqBl9L,UAAW,6BAAyB,GAC5Di9L,GAAa,CACT1qF,GAAS,8BACV2qF,EAAqBl9L,UAAW,iCAA6B,GAChEk9L,EAAuBD,GAAa,CAChC9qF,GAAK,yBACN+qF,GACIA,EA/V8B,CAgWvC7yE,IAQEy3E,GAAoD,WACpD,IAAIp6L,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDg6L,GAAsD,SAAUj9L,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAEhE,SAAW45L,GACPA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,cAAgB,GAAK,aACnDA,EAAeA,EAAe,WAAa,GAAK,UAChDA,EAAeA,EAAe,cAAgB,GAAK,cAJvD,CAKG1vL,EAAQ0vL,iBAAmB1vL,EAAQ0vL,eAAiB,KACvD,SAAWC,GACPA,EAAkBA,EAAkB,MAAQ,GAAK,KACjDA,EAAkBA,EAAkB,QAAU,GAAK,OAFvD,CAGG3vL,EAAQ2vL,oBAAsB3vL,EAAQ2vL,kBAAoB,KAC7D,SAAWC,GACPA,EAAoBA,EAAoB,QAAU,GAAK,OACvDA,EAAoBA,EAAoB,SAAW,GAAK,QAF5D,CAGG5vL,EAAQ4vL,sBAAwB5vL,EAAQ4vL,oBAAsB,KACjE,IA+kFIpB,GA/kFAqB,GAAoC,SAAU75L,GAE9C,SAAS65L,IACL,IAAI3+L,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAGhE,OAFAD,EAAM4+L,wBAA0B,GAChC5+L,EAAM6+L,YAAc,GACb7+L,EA6SX,IAAI8+L,EAgCJ,OAlVAR,GAAYK,EAAoB75L,GAOhCg6L,EAAuBH,EACvBA,EAAmBniM,UAAU2I,KAAO,WAChClF,KAAK8+L,YAAcn7B,GAAW,gBAAiB3jK,KAAK8vG,mBAAoB,MACxE9vG,KAAK++L,UAAYp7B,GAAW,iBAAkB3jK,KAAK8vG,mBAAoB,MACvE9vG,KAAKg/L,UAAYr7B,GAAW,iBAAkB3jK,KAAK8vG,mBAAoB,MACvE9vG,KAAKi/L,UAAYt7B,GAAW,iBAAkB3jK,KAAK8vG,mBAAoB,MACvE9vG,KAAKk/L,WAAav7B,GAAW,kBAAmB3jK,KAAK8vG,mBAAoB,MACzE9vG,KAAKm/L,WAAax7B,GAAW,kBAAmB3jK,KAAK8vG,mBAAoB,MACzE9vG,KAAKo/L,eAAiBz7B,GAAW,kBAAmB3jK,KAAK8vG,mBAAoB,MAC7E9vG,KAAKq/L,WAAa17B,GAAW,kBAAmB3jK,KAAK8vG,mBAAoB,MACzE9vG,KAAKs/L,oBAAsB37B,GAAW,iBAAkB3jK,KAAK8vG,mBAAoB,OAErF4uF,EAAmBniM,UAAUgjM,cAAgB,SAAUC,EAAYC,QAC5C,IAAfA,IAAyBA,GAAa,GAC1C,IAAIr8L,EAAS,CACTmjH,SAAUi5E,EAAWj5E,SACrBm5E,gBAAiBF,EAAWE,gBAC5BC,YAAa3/L,KAAK2/L,YAAYl1L,KAAKzK,KAAMw/L,GACzCI,WAAY5/L,KAAK4/L,WAAWn1L,KAAKzK,MACjC6/L,WAAY7/L,KAAK6/L,WAAWp1L,KAAKzK,OAErCA,KAAK2+L,wBAAwBr/L,KAAK,CAAE8D,OAAQA,EAAQo8L,WAAYA,IAChEx/L,KAAK8/L,YAAYP,cAAcn8L,EAAQq8L,IAE3Cf,EAAmBniM,UAAUwjM,iBAAmB,SAAUP,GACtD,IAAIQ,EAAkBjyK,EAAK/tB,KAAK2+L,yBAAyB,SAAUvxG,GAAQ,OAAOA,EAAKoyG,aAAeA,KAClGQ,IACAhgM,KAAK8/L,YAAYC,iBAAiBC,EAAgB58L,QAClD4gG,EAAgBhkG,KAAK2+L,wBAAyBqB,KAGtDtB,EAAmBniM,UAAU0jM,0BAA4B,WACrD,IAAIlgM,EAAQC,KACZA,KAAK2+L,wBAAwBpgM,SAAQ,SAAUyhM,GAAmB,OAAOjgM,EAAM+/L,YAAYC,iBAAiBC,EAAgB58L,WAC5HpD,KAAK2+L,wBAAwBlhM,OAAS,GAE1CihM,EAAmBniM,UAAU2jM,MAAQ,WAC7BlgM,KAAKqxL,UACLrxL,KAAK6/L,WAAW7/L,KAAKmgM,eAAe,IAG5CzB,EAAmBniM,UAAUojM,YAAc,SAAUH,EAAYj4B,GAC7DvnK,KAAKqxL,UAAW,EAChBrxL,KAAKw/L,WAAaA,EAClBx/L,KAAKmgM,cAAgB54B,EACrBvnK,KAAKogM,SAAWpgM,KAAKw/L,WAAWa,cAChCrgM,KAAKsgM,eAAiBtgM,KAAKw/L,WAAWe,qBAClCvgM,KAAKw/L,WAAWgB,eAChBxgM,KAAKw/L,WAAWgB,gBAEpBxgM,KAAKygM,eAET/B,EAAmBniM,UAAUqjM,WAAa,SAAUr4B,GAMhD,GALAvnK,KAAKmgM,cAAgB,KACrBngM,KAAKqxL,UAAW,EACZrxL,KAAKw/L,WAAWkB,eAChB1gM,KAAKw/L,WAAWkB,gBAEhB1gM,KAAKsgM,gBAAkBtgM,KAAKsgM,eAAeV,WAAY,CACvD,IAAIe,EAAgB3gM,KAAK4gM,sBAAsB5gM,KAAKsgM,eAAgB/4B,EAAY,KAAM,MAAM,GAC5FvnK,KAAKsgM,eAAeV,WAAWe,GAEnC3gM,KAAKsgM,eAAiB,KACtBtgM,KAAKogM,SAAW,KAChBpgM,KAAK6gM,eAETnC,EAAmBniM,UAAUsjM,WAAa,SAAUt4B,EAAYu5B,GAC5D,IAAI/gM,EAAQC,KACR+gM,EAAa/gM,KAAKghM,uBAAuBz5B,GACzC05B,EAAajhM,KAAKkhM,qBAAqB35B,GAC3CvnK,KAAKmgM,cAAgB54B,EACrBvnK,KAAKmhM,cAAc55B,GAEnB,IAAI65B,EAAmBphM,KAAK4+L,YAAYruG,QAAO,SAAUx0F,GAAU,OAAOgE,EAAMshM,oBAAoB95B,EAAYxrK,MAC5G+W,EAAMsuL,EAAiB3jM,OACvB6jM,EAAa,KAmBjB,GAlBIxuL,EAAM,IACNwuL,EAAqB,IAARxuL,EACPsuL,EAAiB,GAIjBA,EAAiB94L,QAAO,SAAUi5L,EAAYC,GAC5C,IAAKD,EACD,OAAOC,EAEX,IAAIC,EAAgBF,EAAWG,eAC3BC,EAAgBH,EAAWE,eAC/B,OAAID,EAAc7mG,SAAS+mG,GAChBH,EAEJD,MAGfD,IAAethM,KAAKsgM,eACpBtgM,KAAK4hM,wBAAwBr6B,EAAYw5B,EAAYE,EAAYH,GACjE9gM,KAAK6hM,wBAAwBP,EAAY/5B,EAAYw5B,EAAYE,EAAYH,GAC7E9gM,KAAKsgM,eAAiBgB,OAErB,GAAIA,GAAcA,EAAWzB,WAAY,CAC1C,IAAIc,EAAgB3gM,KAAK4gM,sBAAsBU,EAAY/5B,EAAYw5B,EAAYE,EAAYH,GAC/FQ,EAAWzB,WAAWc,KAG9BjC,EAAmBniM,UAAUslM,wBAA0B,SAAUP,EAAY/5B,EAAYw5B,EAAYE,EAAYH,GAC7G,GAAKQ,EAAL,CAGA,GAAIA,EAAWQ,YAAa,CACxB,IAAIC,EAAiB/hM,KAAK4gM,sBAAsBU,EAAY/5B,EAAYw5B,EAAYE,EAAYH,GAChGQ,EAAWQ,YAAYC,GAE3B/hM,KAAKgiM,aAAaV,EAAWW,YAAcX,EAAWW,cAAgB,QAE1EvD,EAAmBniM,UAAUqlM,wBAA0B,SAAUr6B,EAAYw5B,EAAYE,EAAYH,GACjG,GAAK9gM,KAAKsgM,eAAV,CAGA,GAAItgM,KAAKsgM,eAAe4B,YAAa,CACjC,IAAIC,EAAiBniM,KAAK4gM,sBAAsB5gM,KAAKsgM,eAAgB/4B,EAAYw5B,EAAYE,EAAYH,GACzG9gM,KAAKsgM,eAAe4B,YAAYC,GAEpCniM,KAAKgiM,aAAa,QAEtBtD,EAAmBniM,UAAU6lM,+BAAiC,SAAUd,GACpE,IAAIe,EAAa,CAACf,EAAWI,gBACzBY,EAAsBhB,EAAWiB,uBAAyBjB,EAAWiB,yBAA2B,KAIpG,OAHID,IACAD,EAAaA,EAAWvuL,OAAOwuL,IAE5BD,GAGX3D,EAAmBniM,UAAU8kM,oBAAsB,SAAU95B,EAAY+5B,GACrE,IAAIkB,GAAkB,EAetB,OAdAxiM,KAAKoiM,+BAA+Bd,GAC/B/wG,QAAO,SAAU43D,GAAc,OAAOA,KACtC5pJ,SAAQ,SAAU4pJ,GACnB,IAAIs6C,EAAOt6C,EAAWu6C,wBAEtB,GAAmB,IAAfD,EAAKnpJ,OAA+B,IAAhBmpJ,EAAK7nH,OAA7B,CAGA,IAAI+nH,EAAgBp7B,EAAWK,SAAW66B,EAAKzqH,MAAQuvF,EAAWK,QAAU66B,EAAKxqH,MAC7E2qH,EAAcr7B,EAAWO,SAAW26B,EAAKvqH,KAAOqvF,EAAWO,QAAU26B,EAAKtqH,OAC1EwqH,GAAiBC,IACjBJ,GAAkB,OAGnBA,GAAmBlB,EAAWuB,eAAe7iM,KAAKw/L,WAAW//L,OAExEi/L,EAAmBniM,UAAUumM,cAAgB,SAAUxB,GACnDthM,KAAK4+L,YAAYt/L,KAAKgiM,IAE1B5C,EAAmBniM,UAAUwmM,iBAAmB,SAAUzB,GACtDthM,KAAK4+L,YAAc5+L,KAAK4+L,YAAYruG,QAAO,SAAUx0F,GAAU,OAAOA,EAAO2lM,iBAAmBJ,EAAWI,mBAE/GhD,EAAmBniM,UAAUymM,qBAAuB,WAChD,OAAOhjM,KAAK4+L,YAAYnuG,MAAK,SAAUwyG,GAAS,OAAOA,EAAMC,aAEjExE,EAAmBniM,UAAU4mM,iBAAmB,SAAU//L,GACtD,IAAIggM,EAAkBpjM,KAAK4+L,YAAYruG,QAAO,SAAUx0F,GAAU,OAAOA,EAAOmnM,YAChF,OAAOn1K,EAAKq1K,GAAiB,SAAUC,GAAQ,OAAOA,EAAK3B,iBAAmBt+L,EAAOs+L,mBAEzFhD,EAAmBniM,UAAUykM,uBAAyB,SAAU55L,GAC5D,IAAIwgK,EAAU5nK,KAAKmgM,eAAiBngM,KAAKmgM,cAAcv4B,QACnD07B,EAAWl8L,EAAMwgK,QACrB,OAAIA,IAAY07B,EACL,KAEJ17B,EAAU07B,EAAWz0L,EAAQ4vL,oBAAoB8E,KAAO10L,EAAQ4vL,oBAAoB+E,OAE/F9E,EAAmBniM,UAAU2kM,qBAAuB,SAAU95L,GAC1D,IAAI0gK,EAAU9nK,KAAKmgM,eAAiBngM,KAAKmgM,cAAcr4B,QACnD27B,EAAWr8L,EAAM0gK,QACrB,OAAIA,IAAY27B,EACL,KAEJ37B,EAAU27B,EAAW50L,EAAQ2vL,kBAAkBkF,GAAK70L,EAAQ2vL,kBAAkBmF,MAEzFjF,EAAmBniM,UAAUqkM,sBAAwB,SAAUU,EAAYl6L,EAAO25L,EAAYE,EAAYH,GAEtG,IAAI8C,EAAiBtC,EAAWI,eAC5Be,EAAOmB,EAAelB,wBACtBp1G,EAAKttF,KAAM4J,EAAM0jF,EAAG2R,QAASp1F,EAAYyjF,EAAGzjF,UAAWu2L,EAAW9yG,EAAG8yG,SAAUZ,EAAalyG,EAAGkyG,WAC/FruL,EAAI/J,EAAMwgK,QAAU66B,EAAKzqH,KACzBj8D,EAAI3U,EAAM0gK,QAAU26B,EAAKvqH,IAC7B,MAAO,CAAE9wE,MAAOA,EAAO+J,EAAGA,EAAG4K,EAAGA,EAAGklL,WAAYA,EAAYF,WAAYA,EAAYvB,WAAYA,EAAYsB,UAAWA,EAAWV,SAAUA,EAAUx2L,IAAKA,EAAKC,UAAWA,EAAW+5L,eAAgBA,IAEzMlF,EAAmBniM,UAAU4kM,cAAgB,SAAU/5L,GACnD,IAAIy8L,EAAQ7jM,KAAK8jM,OACjB,GAAKD,EAAL,CAGA,IAAIE,EAAYF,EAAMnB,wBAClBsB,EAAcD,EAAUnpH,OAIxBqpH,EAAe1gD,KAAiB,EAChC2gD,EAAgBvgD,KAAkB,EAClCzrE,EAAM9wE,EAAM+8L,MAASH,EAAc,EACnChsH,EAAO5wE,EAAMg9L,MAAQ,GACrBC,EAAcrkM,KAAK8vG,mBAAmBw0F,cACtCC,EAAgBh5L,OAAOi5L,aAAeH,EAAY3gD,gBAAgB+gD,UAClEC,EAAgBn5L,OAAOo5L,aAAeN,EAAY3gD,gBAAgB4D,WAElE28C,EAAe,GAAOjsH,EAAO6rH,EAAM/gD,YAAgBmhD,EAAeS,IAClE1sH,EAAOisH,EAAeS,EAAgBb,EAAM/gD,aAE5C9qE,EAAO,IACPA,EAAO,GAEPksH,EAAgB,GAAOhsH,EAAM2rH,EAAMvhD,aAAiB4hD,EAAgBK,IACpErsH,EAAMgsH,EAAgBK,EAAgBV,EAAMvhD,cAE5CpqE,EAAM,IACNA,EAAM,GAEV2rH,EAAM1rJ,MAAM6/B,KAAOA,EAAO,KAC1B6rH,EAAM1rJ,MAAM+/B,IAAMA,EAAM,OAE5BwmH,EAAmBniM,UAAUskM,YAAc,WACnC7gM,KAAK8jM,QAAU9jM,KAAK4kM,cACpB5kM,KAAK4kM,aAAahqK,YAAY56B,KAAK8jM,QAEvC9jM,KAAK8jM,OAAS,MAElBpF,EAAmBniM,UAAUkkM,YAAc,WACvCzgM,KAAK8jM,OAAS97C,GAAa62C,EAAqBgG,gBAChD,IAAI76J,EAAQhqC,KAAK8kM,YAAYC,WAAW/6J,MACpCA,GACA85G,GAAY9jJ,KAAK8jM,OAAQ95J,GAE7BhqC,KAAKglM,WAAahlM,KAAK8jM,OAAOh8C,cAAc,sBAC5C9nJ,KAAKgiM,aAAa,MAClB,IAAI9X,EAAQlqL,KAAK8jM,OAAOh8C,cAAc,uBAClCm9C,EAAejlM,KAAKw/L,WAAWyF,aAC/Bv8F,GAAWu8F,KACXA,EAAeA,KAEnB/a,EAAMrgG,UAAYmqC,GAAaixE,IAAiB,GAChDjlM,KAAK8jM,OAAO3rJ,MAAMyiC,OAAS,OAC3B56E,KAAK8jM,OAAO3rJ,MAAM+/B,IAAM,OACxBl4E,KAAK8jM,OAAO3rJ,MAAM6/B,KAAO,OACzB,IAAIqsH,EAAcrkM,KAAK8vG,mBAAmBw0F,cACtCY,EAAWb,EAAYc,mBAAqBd,EAAYv8C,cAAc,QAC1E9nJ,KAAK4kM,aAAeM,EACfllM,KAAK4kM,aAIN5kM,KAAK4kM,aAAalqK,YAAY16B,KAAK8jM,QAHnC7gM,QAAQkD,KAAK,6EAMrBu4L,EAAmBniM,UAAUylM,aAAe,SAAUp+B,EAAUwhC,QAC9C,IAAVA,IAAoBA,GAAQ,GAChC19C,GAAa1nJ,KAAKglM,YAClB,IAAIva,EAAQ,KAIZ,OAHK7mB,IACDA,EAAW5jK,KAAKw/L,WAAW6F,iBAAmBxG,EAAqByG,kBAE/D1hC,GACJ,KAAKi7B,EAAqB0G,YACtB9a,EAAQzqL,KAAK8+L,YACb,MACJ,KAAKD,EAAqB2G,UACtB/a,EAAQzqL,KAAKg/L,UACb,MACJ,KAAKH,EAAqB4G,UACtBhb,EAAQzqL,KAAKi/L,UACb,MACJ,KAAKJ,EAAqB6G,WACtBjb,EAAQzqL,KAAKk/L,WACb,MACJ,KAAKL,EAAqB8G,WACtBlb,EAAQzqL,KAAKm/L,WACb,MACJ,KAAKN,EAAqB+G,eACtBnb,EAAQzqL,KAAKo/L,eACb,MACJ,KAAKP,EAAqBgH,WACtBpb,EAAQzqL,KAAKq/L,WACb,MACJ,KAAKR,EAAqByG,iBACtB7a,EAAQzqL,KAAKs/L,oBACb,MACJ,KAAKT,EAAqBiH,UACtBrb,EAAQzqL,KAAK++L,UACb,MAER16C,GAAoBrkJ,KAAKglM,WAAY,yBAA0BI,GAC3D3a,IAAUzqL,KAAK++L,WAAa/+L,KAAK8vG,mBAAmBi2F,mCAGpDtb,GACAzqL,KAAKglM,WAAWtqK,YAAY+vJ,IAIpCiU,EAAmB6G,YAAc,SACjC7G,EAAmB8G,UAAY,OAC/B9G,EAAmB+G,UAAY,OAC/B/G,EAAmBgH,WAAa,QAChChH,EAAmBiH,WAAa,QAChCjH,EAAmBkH,eAAiB,YACpClH,EAAmBmH,WAAa,QAChCnH,EAAmB4G,iBAAmB,aACtC5G,EAAmBoH,UAAY,OAC/BpH,EAAmBmG,eAAiB,6LACpCvG,GAAa,CACT1vF,GAAU,gBACX8vF,EAAmBniM,UAAW,mBAAe,GAChD+hM,GAAa,CACT1vF,GAAU,gBACX8vF,EAAmBniM,UAAW,mBAAe,GAChD+hM,GAAa,CACT1vF,GAAU,cACX8vF,EAAmBniM,UAAW,iBAAa,GAC9C+hM,GAAa,CACT1vF,GAAU,YACX8vF,EAAmBniM,UAAW,eAAW,GAC5C+hM,GAAa,CACThwF,IACDowF,EAAmBniM,UAAW,OAAQ,MACzC+hM,GAAa,CACT9vF,IACDkwF,EAAmBniM,UAAW,4BAA6B,MAC9DmiM,EAAqBG,EAAuBP,GAAa,CACrD5vF,GAAK,uBACNgwF,GACIA,EAnV4B,CAoVrC93E,IAQEo/E,GAAoD,WACpD,IAAI/hM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD2hM,GAAsD,SAAU5kM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DuhM,GAA6B,SAAUrhM,GAEvC,SAASqhM,EAAYC,EAAap7L,EAASrD,EAAQ0+L,EAAW1G,GAC1D,IAAI3/L,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAQjC,OAPAD,EAAMomM,YAAcA,EACpBpmM,EAAMgL,QAAUA,EAChBhL,EAAM2H,OAASA,EACf3H,EAAMqmM,UAAYA,EAClBrmM,EAAM2/L,gBAAkBA,EACxB3/L,EAAMsmM,aAAc,EACpBtmM,EAAMy/L,WAAa,KACZz/L,EAqFX,OA/FAimM,GAAYE,EAAarhM,GAYzBqhM,EAAY3pM,UAAUwiJ,cAAgB,WAClC,GAAK/+I,KAAKomM,UAONpmM,KAAKqmM,aAAc,EACnBrmM,KAAKsmM,eAAetmM,KAAKomM,UAAWpmM,KAAK0/L,qBARxB,CACjB1/L,KAAK2uK,YAAuB,qEAC5B,IAAIf,EAAO5tK,KAAKqG,SAChBunK,EAAKlzI,YAAYopI,GAAiB,UAAW9jK,KAAK+tG,MAAM+B,mBAAoB,OAC5E9vG,KAAKu/L,gBAMTv/L,KAAKijF,qBACL,IAAIsjH,EAAWvmM,KAAK+tG,MAAM+B,mBAAmB02F,mBACzC,IAAIC,GAA0BzmM,KAAMA,KAAK+tG,MAAO/tG,KAAK+K,QAAS/K,KAAK0H,QACnE,IAAIg/L,GAA6B1mM,KAAMA,KAAK+tG,MAAO/tG,KAAK+K,QAAS/K,KAAK0H,QAC1E1H,KAAKsnH,kBAAkBi/E,EAAUvmM,KAAK+tG,MAAM1E,UAEhD68F,EAAY3pM,UAAU+pM,eAAiB,SAAUK,EAAajH,GAC1D1/L,KAAKixK,uBAAuB01B,GAC5B3mM,KAAKu/L,cAAcG,IAEvBwG,EAAY3pM,UAAUqqM,iBAAmB,WACrC,IAAIC,EAAkB7mM,KAAK+tG,MAAM+B,mBAAmBg3F,2BACpD,IAAKD,EACD,OAAO,EAEX,IAAIE,EAAY/mM,KAAK+tG,MAAM8hF,oBAAoBmX,mBAC/C,OAA4C,IAArCD,EAAUhmM,QAAQf,KAAK+K,SAAkBg8L,EAAUtpM,OAAS,GAGvEyoM,EAAY3pM,UAAU0mF,mBAAqB,WACvC,IAAIgkH,EAAUjnM,KAAK+tG,MAAM+B,mBAAmB02F,mBACxCU,EAAWlnM,KAAK+tG,MAAM+B,mBAAmBuI,aACzC6uF,GAAYD,GACZ7+F,IAAO,WACH,OAAOnlG,QAAQkD,KAAK,oFACrB,mCAGX+/L,EAAY3pM,UAAUgjM,cAAgB,SAAUG,GAC5C,IAAI3/L,EAAQC,UACY,IAApB0/L,IAA8BA,EAAkB,GAEhD1/L,KAAKw/L,YACLx/L,KAAK+/L,mBAET,IAAIK,EAAW,CACXr1L,QAAS/K,KAAK+K,QACdowF,QAASn7F,KAAK0H,OAAS,CAAC1H,KAAK0H,aAAUrI,EACvC8nM,iBAAkBnnM,KAAKmmM,eAEvBiB,EAAcpnM,KAAK0H,QAAU1H,KAAK0H,OAAOm1G,YAAYuqF,YACzDpnM,KAAKw/L,WAAa,CACd//L,KAAMoP,EAAQ0vL,eAAe8I,QAC7B9gF,SAAUvmH,KAAKqG,SACf4+L,aAAc,WACV,IAAIqC,EAAgBvnM,EAAM6mM,mBAC1B,OAAIQ,EACOA,EAAYhH,EAAUkH,GAER,IAAlBA,EAAsBvnM,EAAMomM,cAAgBmB,EAAgB,SAEvEjH,YAAa,WAAc,OAAOD,GAClCV,gBAAiBA,EACjB6H,qBAAsBvnM,KAAK+tG,MAAM+B,mBAAmB03F,iBAExDxnM,KAAK+tG,MAAM05F,mBAAmBlI,cAAcv/L,KAAKw/L,YAAY,IAEjE0G,EAAY3pM,UAAUwjM,iBAAmB,WACjC//L,KAAKw/L,YACLx/L,KAAK+tG,MAAM05F,mBAAmB1H,iBAAiB//L,KAAKw/L,YAExDx/L,KAAKw/L,WAAa,MAEtByG,GAAa,CACTr3F,GAAU,UACXs3F,EAAY3pM,UAAW,aAAS,GACnC0pM,GAAa,CACT33F,IACD43F,EAAY3pM,UAAW,gBAAiB,MAC3C0pM,GAAa,CACTz3F,IACD03F,EAAY3pM,UAAW,mBAAoB,MACvC2pM,EAhGqB,CAiG9BtmM,IACE8nM,GAAoC,SAAU7iM,GAE9C,SAAS6iM,EAAmB7kM,EAAQkI,EAASrD,GACzC,IAAI3H,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAIjC,OAHAD,EAAM8C,OAASA,EACf9C,EAAM2H,OAASA,EACf3H,EAAMgL,QAAUA,EACThL,EAyBX,OA/BAimM,GAAY0B,EAAoB7iM,GAQhC6iM,EAAmBnrM,UAAUorM,sBAAwB,SAAUC,GAC3D,GAAIA,EACA5nM,KAAK6C,OAAO2iJ,cAAa,OAExB,CACD,IAAIqiD,GAAQ,EACRC,GAAmB,EACnB9nM,KAAK0H,SACLmgM,EAAQ7nM,KAAK0H,OAAOuxG,UAAUj5G,KAAK+K,UAAY/K,KAAK6C,OAAOwjM,YAC3DyB,EAAmBp/F,GAAW1oG,KAAK0H,OAAOm1G,YAAY3D,UAKtD4uF,GACA9nM,KAAK6C,OAAO2iJ,cAAa,GACzBxlJ,KAAK6C,OAAO45G,WAAWorF,IAGvB7nM,KAAK6C,OAAO2iJ,aAAaqiD,KAI9BH,EAhC4B,CAiCrC9gF,IAEE8/E,GAA8C,SAAU7hM,GAExD,SAAS6hM,EAA6B7jM,EAAQkrG,EAAOhjG,EAASrD,GAC1D,IAAI3H,EAAQ8E,EAAOjH,KAAKoC,KAAM6C,EAAQkI,EAASrD,IAAW1H,KAE1D,OADAD,EAAMguG,MAAQA,EACPhuG,EAoBX,OAxBAimM,GAAYU,EAA8B7hM,GAM1C6hM,EAA6BnqM,UAAUwiJ,cAAgB,WACnD/+I,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAM+B,mBAAoB,kBAAmB9vG,KAAK+nM,kBAAkBt9L,KAAKzK,OAEtGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQmB,mBAAoBpvL,KAAKgoM,kBAAkBv9L,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ2F,mBAAoB5zL,KAAKgoM,kBAAkBv9L,KAAKzK,OAC9FA,KAAKgoM,qBAETtB,EAA6BnqM,UAAUwrM,kBAAoB,WACvD/nM,KAAKgoM,qBAETtB,EAA6BnqM,UAAUyrM,kBAAoB,WAEvD,IAAIJ,EAAiB5nM,KAAK+tG,MAAM+B,mBAAmBm4F,oBACnDjoM,KAAK2nM,sBAAsBC,IAE/B3B,GAAa,CACT33F,IACDo4F,EAA6BnqM,UAAW,gBAAiB,MACrDmqM,EAzBsC,CA0B/CgB,IAEEjB,GAA2C,SAAU5hM,GAErD,SAAS4hM,EAA0B5jM,EAAQkrG,EAAOhjG,EAASrD,GACvD,IAAI3H,EAAQ8E,EAAOjH,KAAKoC,KAAM6C,EAAQkI,EAASrD,IAAW1H,KAE1D,OADAD,EAAMguG,MAAQA,EACPhuG,EA6BX,OAjCAimM,GAAYS,EAA2B5hM,GAMvC4hM,EAA0BlqM,UAAUwiJ,cAAgB,WAEhD/+I,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAMsG,aAAcsY,GAAO1S,mBAAoBj6G,KAAKgoM,kBAAkBv9L,KAAKzK,OACxGA,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAMsG,aAAcsY,GAAO/Q,qBAAsB57G,KAAKgoM,kBAAkBv9L,KAAKzK,OAC1GA,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAMsG,aAAcsY,GAAOI,+BAAgC/sH,KAAKgoM,kBAAkBv9L,KAAKzK,OAEpHA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQmB,mBAAoBpvL,KAAKgoM,kBAAkBv9L,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ2F,mBAAoB5zL,KAAKgoM,kBAAkBv9L,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAM+B,mBAAoB,kBAAmB9vG,KAAK+nM,kBAAkBt9L,KAAKzK,OACtGA,KAAKgoM,qBAETvB,EAA0BlqM,UAAUwrM,kBAAoB,WACpD/nM,KAAKgoM,qBAETvB,EAA0BlqM,UAAUyrM,kBAAoB,WAEpD,IAAIE,EAAcloM,KAAK+tG,MAAMo6F,mBAAmBC,wBAC5CC,EAAiBH,EAAYI,oBAC7BC,EAAuBF,GAAkBA,EAAeE,uBACxDh7C,EAAkBvtJ,KAAK+tG,MAAM+B,mBAAmBm4F,oBAChDjF,EAAuBhjM,KAAK+tG,MAAM05F,mBAAmBzE,uBACrD4E,EAAkBW,IAAyBvF,GAAyBz1C,EACxEvtJ,KAAK2nM,sBAAsBC,IAE/B3B,GAAa,CACT33F,IACDm4F,EAA0BlqM,UAAW,gBAAiB,MAClDkqM,EAlCmC,CAmC5CiB,IAQEc,GAAoD,WACpD,IAAIvkM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDmkM,GAAsD,SAAUpnM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D+jM,GAAmC,SAAU7jM,GAE7C,SAAS6jM,IACL,OAAO7jM,EAAOjH,KAAKoC,KAAM0oM,EAAkBzzB,WAAaj1K,KA+f5D,OAjgBAwoM,GAAYE,EAAmB7jM,GAI/B6jM,EAAkBnsM,UAAUosM,iBAAmB,WAC3C,IAAK3oM,KAAK8vG,mBAAmB84F,4BACzB,OAAO,EAEX,GAAyB,MAArB5oM,KAAKoD,OAAO1G,QAA4C,GAA3BsD,KAAKoD,OAAOoP,KAAK4mC,MAC9C,OAAO,EAKX,IAAIxxC,EAAS5H,KAAKoD,OAAOwE,OACrBihM,EAA2B,MAAVjhM,EACrB,GAAIihM,EACA,OAAO,EAEX,IAA4B,IAAxBjhM,EAAOqvG,aACP,OAAO,EAEX,IAAI6xF,EAAe9oM,KAAKm/I,iBAAiBhZ,qBAEzC,IAAK2iE,GAAwC,IAAxBA,EAAarrM,OAC9B,OAAO,EAEX,IAAIsrM,EAAmBD,EAAa,GACpC,OAAOC,EAAiB1xF,UAAYzvG,EAAOqvG,cAE/CyxF,EAAkBnsM,UAAU2I,KAAO,SAAU9B,GACzCpD,KAAKoD,OAASA,EACd,IAAI4lM,EAAiBhpM,KAAK2oM,mBACtBM,EAAsBjpM,KAAKkpM,wBAG3BC,EAA4B,MAAhB/lM,EAAO1G,MACnB0sM,GAAW,EAGf,GAAIppM,KAAK8vG,mBAAmB2iF,wBAA0BzyL,KAAK8vG,mBAAmBu5F,yBAA0B,CACpG,IAAI72L,EAAOpP,EAAOoP,KAClB,GAAIA,EAAK4lE,OAAQ,CACb,IAAI6+B,EAAe7zG,EAAOwE,QAAUxE,EAAOwE,OAAOqvG,aAC9CqyF,EAAmB92L,EAAKokL,gBAAkBpkL,EAAKokL,eAAe55E,WAClEosF,EAAWnyF,IAAiBqyF,GAGpCtpM,KAAKupM,aAAcP,IAA0BC,GAAuBE,GAAaC,GAC7EppM,KAAKupM,cAGTvpM,KAAKwpM,uBACLxpM,KAAKypM,iCACLzpM,KAAK0pM,uBACL1pM,KAAK2pM,sBACL3pM,KAAK4pM,kBACL5pM,KAAK6pM,gBAKTnB,EAAkBnsM,UAAU2sM,sBAAwB,WAChD,IAAKlpM,KAAKoD,OAAO0mM,YAAc9pM,KAAK8vG,mBAAmBi6F,uBACnD,OAAO,EAEX,IAAIC,EAAiBhqM,KAAKoD,OAAO4xG,SAAW5D,GAAUsB,YAClDu3F,EAAkBjqM,KAAKoD,OAAO4xG,SAAW5D,GAAUqB,aACnDy3F,GAAYF,IAAmBC,EACnC,OAAIjqM,KAAK8vG,mBAAmB6Q,cACpB3gH,KAAKm/I,iBAAiB9W,iBACd4hE,GAEJC,EAERlqM,KAAKm/I,iBAAiB9W,iBACd2hE,GAEJE,GAEZxB,EAAkBnsM,UAAU4tM,UAAY,WACpC,IAAInqM,KAAK8vG,mBAAmBu5F,yBAA5B,CAGA,IAAIjmM,EAASpD,KAAKoD,OACd2H,EAAU3H,EAAOoP,KAEjB43L,IAAgBhnM,EAAOwE,OACvByiM,GAA2BD,IAA8C,IAA/BhnM,EAAOwE,OAAOqvG,aACxDqzF,EAAeD,EAA0Bt/L,EAAQsnL,QAAU,EAC3DkY,EAA4CnnM,EAAO0/G,SAAW,EAC9DynF,EACAvqM,KAAKwqM,wBAAwBF,EAAclnM,EAAO0/G,UAGlD9iH,KAAKyqM,aACLzqM,KAAKkkJ,eAAelkJ,KAAKyqM,aAE7BzqM,KAAKyqM,YAAc,uBAAyBH,EAC5CtqM,KAAK8jJ,YAAY9jJ,KAAKyqM,gBAE1B/B,EAAkBnsM,UAAUiuM,wBAA0B,SAAUF,EAAcxnF,GAC1E1a,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,6NAA+N,sCACxQ,IAAIukM,EAAYJ,EAAexnF,EAC3B8qD,EAAO5tK,KAAKqG,SACZskM,EAAc3qM,KAAK8vG,mBAAmB6Q,cAAgB,eAAiB,cAC3EitD,EAAKz1H,MAAMwyJ,GAAeD,EAAY,MAE1ChC,EAAkBnsM,UAAUstM,YAAc,WAItC,IAAIr3L,EAAOxS,KAAKoD,OAAOoP,KACnBo4L,EAAkB5qM,KAAKoD,OAAOwnM,gBAC7BA,IACD5qM,KAAKmnH,mBAAmB30G,EAAMy7K,GAAQqE,uBAAwBtyL,KAAKmqM,UAAU1/L,KAAKzK,OAClFA,KAAKmqM,cAGbzB,EAAkBnsM,UAAUqtM,gBAAkB,WACtC5pM,KAAK6qM,eAAezyH,OACpBp4E,KAAK8qM,kBAGL9qM,KAAK+qM,gBACL/qM,KAAKgrM,kBAGbtC,EAAkBnsM,UAAUuuM,eAAiB,WACzC,IACIG,EADAC,EAAoBlrM,KAAKoD,OAAO8nM,kBAEpC,GAAIA,EAAmB,CAEnB,IAAIC,EAAcvlG,EAAY5lG,KAAKoD,QACnC+nM,EAAYzuM,MAAQsD,KAAKoD,OAAO1G,MACC,oBAAtBwuM,EACPD,EAAcC,EAAkBC,GAEE,kBAAtBD,EACZD,EAAcjrM,KAAK8vI,kBAAkBC,SAASm7D,EAAmBC,GAGjEloM,QAAQkD,KAAK,wFAIjB8kM,EAAc,UAAiC,MAArBjrM,KAAKoD,OAAO1G,MAAgBsD,KAAKoD,OAAO1G,MAAQ,IAE9EsD,KAAKorM,OAAOvhH,UAAYohH,GAE5BvC,EAAkBnsM,UAAUwuM,cAAgB,WACxC,IASIM,EATAtrM,EAAQC,KACRoD,EAASpD,KAAKoD,OACdwzL,EAAiB52L,KAAK6qM,eAAejU,eAErC0U,EAAc1U,GAAkCxzL,EAAOsE,OACvD6jM,EAAYvrM,KAAKoD,OAAO1G,MACxB8uM,EAAiBF,EACjBtrM,KAAKyrM,sBAAsBl1B,YAAY+0B,EAAaloM,EAAOoP,KAAMpP,EAAOsoM,MAAOH,GAAa,KAChGnoM,EAAOooM,eAAiBA,EAExBH,EAAkBjoM,EAAO0mM,UACnB9pM,KAAK2rM,aAAavoM,GAClBpD,KAAK4rM,iBAAiB5rM,KAAKoD,OAAOwE,OAAOikM,mBAAoBP,EAAYzuF,YAAaz5G,GAExFioM,GACAA,EAAgB1vC,MAAK,SAAUj/J,GAC3BqD,EAAM+rM,kBAAoBpvM,MAItCgsM,EAAkBnsM,UAAUqvM,iBAAmB,SAAUG,EAAyBC,EAClF5oM,GACI,IAAIrD,EAAQC,KAaRy7J,EAAsB,KAEtBwwC,EAA0BjsM,KAAKwtK,qBAC9BsuB,wBAAwBiQ,EAAyB,iBACtD,GAAIE,GAAgE,MAArCA,EAAwBnpM,WAChDmpM,EAAwBnnG,QAAUq6E,GAAgBoe,QAErD9hC,EAAsBz7J,KAAKwtK,qBAAqB4sB,qBAAqB2R,EAAyB3oM,OAE7F,CAED,IAAI8oM,EAA2BlsM,KAAKwtK,qBAC/BsuB,wBAAwBkQ,EAAkB,gBAI3CvwC,EAHAywC,GACAA,EAAyBpnG,QAAUq6E,GAAgBoe,QAE7Bv9L,KAAKwtK,qBAAqB0sB,gBAAgB8R,EAAkB5oM,GAE7E8oM,GACLA,EAAyBpnG,QAAUq6E,GAAgBoe,SAClDl9L,GAAI2rM,EAAkB,mCAAoC,MAGrChsM,KAAKwtK,qBAAqB4sB,qBAAqB4R,EAAiBH,mBAAoBzoM,GAIpFpD,KAAKwtK,qBAAqB0sB,gBAAgB,GAAI92L,GAe5E,OAZ2B,MAAvBq4J,EACAA,EAAoBE,MAAK,SAAUwwC,GACV,MAAjBA,EAIJ3wC,GAA8BC,EAAqB17J,EAAMqrM,QAHrDrrM,EAAMqrM,OAAOj9L,UAAqC,MAAzB/K,EAAOooM,eAAyBpoM,EAAOooM,eAAiBpoM,EAAO1G,SAOhGsD,KAAKorM,OAAOj9L,UAAqC,MAAzB/K,EAAOooM,eAAyBpoM,EAAOooM,eAAiBpoM,EAAO1G,MAEpF++J,GAEXitC,EAAkBnsM,UAAUovM,aAAe,SAAUvoM,GACjD,IAAIq4J,EAAsBz7J,KAAKwtK,qBAAqBqsB,sCAAsCz2L,GAO1F,OAN2B,MAAvBq4J,EACAD,GAA8BC,EAAqBz7J,KAAKorM,QAGxDprM,KAAKorM,OAAOj9L,UAAqC,MAAzB/K,EAAOooM,eAAyBpoM,EAAOooM,eAAiBpoM,EAAO1G,MAEpF++J,GAEXitC,EAAkBnsM,UAAUktM,+BAAiC,WACzD,IAAI1pM,EAAQC,KACZ,GAAKA,KAAKoD,OAAO0mM,WAAc9pM,KAAKoD,OAAO81G,QAA3C,CAGA,IAAIkzF,EAAc,IAAIlG,IAAY,WAAc,OAAOnmM,EAAMqD,OAAO1G,QAAUsD,KAAKoD,OAAOoP,MAC1FxS,KAAKsnH,kBAAkB8kF,EAAapsM,KAAKqpG,SACzCrpG,KAAKqG,SAASsiJ,sBAAsB,aAAcyjD,EAAY/lM,YAElEqiM,EAAkBnsM,UAAUyuM,cAAgB,WAGpChrM,KAAKoD,OAAOipM,gBAGhBrsM,KAAKmnH,mBAAmBnnH,KAAK6qM,eAAgB5c,GAAQ0D,iCAAkC3xL,KAAKssM,iBAAiB7hM,KAAKzK,OAElHA,KAAKssM,qBAET5D,EAAkBnsM,UAAU+vM,iBAAmB,WAC3C,IAAI5a,EAAmB1xL,KAAK6qM,eAAenZ,iBACvC6a,EAA0BvsM,KAAKwsM,2BAC/BC,EAAYF,GAA+C,MAApB7a,GAA4BA,GAAoB,EACvFgb,EAAcD,EAAY,IAAM/a,EAAmB,IAAM,GAC7D1xL,KAAK2sM,YAAY9iH,UAAY6iH,GAEjChE,EAAkBnsM,UAAUqwM,oBAAsB,WAC9C,IAAIC,EAAiB7sM,KAAKoD,OAAO0pM,SACjC,MAA8B,oBAAnBD,EACAA,EAAe7sM,KAAKoD,SAEL,IAAnBypM,GAEXnE,EAAkBnsM,UAAUotM,oBAAsB,WAC9C,IAAI5pM,EAAQC,KACR+K,EAAU/K,KAAK6qM,eACfkC,EAAiB/sM,KAAK4sM,wBAErB7hM,EAAQqtE,SAERrtE,EAAQwkL,YAERxkL,EAAQ07J,OACb,GAAIsmC,EAAgB,CAChB,IAAIC,EAAyB,IAAItV,GACjC13L,KAAKw4G,aAAatN,WAAW8hG,GAC7BA,EAAuB9nM,KAAK,CAAE6F,QAASA,EAASrD,OAAQ1H,KAAKoD,OAAOsE,SACpE1H,KAAK0qJ,UAAUhwH,YAAYsyK,EAAuB3mM,UAClDrG,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAMy4G,aAAa1K,YAAYk/F,MAE5E3oD,GAAoBrkJ,KAAK0qJ,UAAW,gBAAiBqiD,IAEzDrE,EAAkBnsM,UAAUmtM,qBAAuB,WAC/C,IAAItmM,EAASpD,KAAKoD,OACd6pM,EAAa7pM,EAAO8pM,UACpBC,EAAgBrpC,GAAiB,gBAAiB9jK,KAAK8vG,mBAAoB,MAC3Es9F,EAAkBtpC,GAAiB,kBAAmB9jK,KAAK8vG,mBAAoB,MACnFgtD,GAAgBmwC,IAAc7pM,EAAOoP,KAAKyvG,UACtCkrF,GACAntM,KAAKqtM,UAAU3yK,YAAYyyK,GAE3BC,GACAptM,KAAKstM,YAAY5yK,YAAY0yK,GAEjCptM,KAAKmnH,mBAAmBnnH,KAAKqtM,UAAW,QAASrtM,KAAKutM,gBAAgB9iM,KAAKzK,OAC3EA,KAAKmnH,mBAAmBnnH,KAAKstM,YAAa,QAASttM,KAAKutM,gBAAgB9iM,KAAKzK,OAE7EA,KAAKmnH,mBAAmB8lF,EAAY,UAAWjtM,KAAKusK,UAAU9hK,KAAKzK,OACnEA,KAAKmnH,mBAAmB/jH,EAAOoP,KAAMy7K,GAAQ/qE,uBAAwBljH,KAAKwtM,2BAA2B/iM,KAAKzK,OAC1GA,KAAKwtM,6BAGL,IAAIC,EAA4BztM,KAAK0tM,6BAA6BjjM,KAAKzK,MACvEA,KAAKmnH,mBAAmBnnH,KAAK6qM,eAAgB5c,GAAQ0D,iCAAkC8b,GACvFztM,KAAKmnH,mBAAmBnnH,KAAK6qM,eAAgB5c,GAAQ6D,qBAAsB2b,GAC3EztM,KAAKmnH,mBAAmBnnH,KAAK6qM,eAAgB5c,GAAQwF,2BAA4Bga,GAE5EztM,KAAK8vG,mBAAmBiJ,sBAAuB/4G,KAAK8hH,gBAAmB1+G,EAAOuqM,2BAC/E3tM,KAAKmnH,mBAAmB8lF,EAAY,WAAYjtM,KAAK4tM,iBAAiBnjM,KAAKzK,QAGnF0oM,EAAkBnsM,UAAUmxM,6BAA+B,WAEvD1tM,KAAKwtM,6BAELxtM,KAAKmqM,aAETzB,EAAkBnsM,UAAUgwK,UAAY,SAAUnlK,GAC9C,IAAIymM,EAAkBlpC,GAAav9J,EAAOysK,GAAQG,OAClD,GAAK65B,IAAmB7tM,KAAKoD,OAAO0qM,oBAApC,CAGA,IAAIC,EAAe/tM,KAAKoD,OAAOsE,QAAU1H,KAAKoD,OAAOsE,OAAOoxG,eAAe94G,KAAKoD,OAAOoP,MACnFu7L,GAGJ/tM,KAAKguM,uBAETtF,EAAkBnsM,UAAUitM,qBAAuB,WAC/C,IAAI9hM,EAAS1H,KAAKoD,OAAOsE,OACrBqD,EAAU/K,KAAKoD,OAAOoP,KAC1B,GAAKxS,KAAK8vG,mBAAmBu5F,yBAGxB,GAAKt+L,EAAQk+J,cAKb,CACD,IAAI2tB,EAAiB7rL,EAAQ6rL,eAIzB52L,KAAKiuM,6BAHLrX,IAGmClvL,EAAOsvG,oBAAoB4/E,EAAev/E,cAPjFr3G,KAAKiuM,4BAA6B,OALlCjuM,KAAKiuM,4BAA6B,EAoBtC,GAAIjuM,KAAKiuM,2BAA4B,CACjC,IAAIhoF,EAAUl7G,EAAQlI,OACtB,MAAO,EAAM,CACT,GAAI89F,EAAQslB,GACR,MAEJ,GAAIA,EAAQ2wE,gBAAkBlvL,EAAOsvG,oBAAoBiP,EAAQ2wE,eAAev/E,SAAU,CACtFr3G,KAAK6qM,eAAiB5kF,EACtB,MAEJA,EAAUA,EAAQpjH,QAItB89F,EAAQ3gG,KAAK6qM,kBACb7qM,KAAK6qM,eAAiB9/L,IAG9B29L,EAAkBnsM,UAAUgxM,gBAAkB,SAAUhmC,GAChD9iD,GAA2B8iD,KAI/B/iD,GAAyB+iD,GACzBvnK,KAAKguM,uBAETtF,EAAkBnsM,UAAUqxM,iBAAmB,SAAUrmC,GACrD,IAAI9iD,GAA2B8iD,GAA/B,CAOA,IAAI2mC,EAAqBpoF,GAAqB9lH,KAAKqtM,UAAW9lC,IACvDzhD,GAAqB9lH,KAAKstM,YAAa/lC,GACzC2mC,GACDluM,KAAKguM,uBAGbtF,EAAkBnsM,UAAUyxM,mBAAqB,WAE7C,IAAIjjM,EAAU/K,KAAK6qM,eACfznM,EAASpD,KAAKoD,OACd+qM,GAAmBpjM,EAAQk3G,SAC/Bl3G,EAAQi3G,YAAYmsF,GACpBrxC,GAAgB15J,EAAO8pM,UAAWiB,IAEtCzF,EAAkBnsM,UAAUiwM,yBAA2B,WACnD,GAAIxsM,KAAK8vG,mBAAmBuI,aACxB,OAAO,EAEX,IAAIu+E,EAAiB52L,KAAK6qM,eAAejU,eACzC,IAAKA,EACD,OAAO,EAGX,IAAIlvL,EAAS1H,KAAKoD,OAAOsE,OACrB0mM,EAAmC,MAAV1mM,GAAkBA,EAAOsvG,oBAAoB4/E,EAAev/E,SACzF,OAAO+2F,GAEX1F,EAAkBnsM,UAAUulH,aAAe,WACvC,GAAI9hH,KAAKiuM,2BACL,OAAO,EAEX,IAAIljM,EAAU/K,KAAK6qM,eACfwD,EAAkBruM,KAAKm/I,iBAAiB5oB,eAAiBxrH,EAAQ+yI,UACjEwwD,EAAkBvjM,EAAQ+2G,iBAAmB/2G,EAAQqtE,SAAWi2H,EACpE,IAAKC,EACD,OAAO,EAGX,IAAI5mM,EAAS1H,KAAKoD,OAAOsE,OACrB6mM,EAAuC,MAAV7mM,GAA6D,kBAApCA,EAAOm1G,YAAY5F,aAC7E,GAAIs3F,EAA4B,CAC5B,IAAIC,EAAUxuM,KAAKwsM,2BACnB,OAAOgC,EAEX,OAAO,GAEX9F,EAAkBnsM,UAAUixM,2BAA6B,WACrD,IAAIlgH,EAAKttF,KAAMstM,EAAchgH,EAAGggH,YAAaD,EAAY//G,EAAG+/G,UAAWjqM,EAASkqF,EAAGlqF,OAAQynM,EAAiBv9G,EAAGu9G,eAAgB1rD,EAAmB7xD,EAAG6xD,iBACjJ+tD,EAAY9pM,EAAO8pM,UAAW16L,EAAOpP,EAAOoP,KAC5CsvG,EAAe9hH,KAAK8hH,eACxB,GAAIA,EAAc,CAGd,IAAIG,IAAWjiH,KAAKiuM,4BAAoCz7L,EAAKyvG,SAC7DujC,GAAa8nD,GAAcrrF,GAC3BujC,GAAa6nD,EAAWprF,QAIxB86C,GAAmBmwC,GACnB1nD,GAAa6nD,GAAW,GACxB7nD,GAAa8nD,GAAa,GAG9B,IAAI9xG,EAAY2jD,EAAiB5oB,cAC7Bk4E,EAAwBjzG,GAAaqvG,EAAe/sD,UACpD4wD,EAAmB5sF,IAAiB2sF,EACpCE,EAAoBn8L,EAAK4lE,SAA0B,IAAhB5lE,EAAK4mC,MAC5Cp5C,KAAKqkJ,oBAAoB,qBAAsBqqD,GAC/C1uM,KAAKqkJ,oBAAoB,eAAgBqqD,GACrClzG,EACAx7F,KAAKqkJ,oBAAoB,sBAAuBoqD,GAE1CE,GACN3uM,KAAKqkJ,oBAAoB,4BAA6BqqD,IAK9DhG,EAAkBnsM,UAAU6J,QAAU,WAClCpG,KAAKw4G,aAAa1K,YAAY9tG,KAAK8rM,mBACnCjnM,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElC0oM,EAAkBnsM,UAAUg8F,QAAU,WAClC,OAAO,GAEXmwG,EAAkBzzB,SAAW,2ZAC7BwzB,GAAa,CACT75F,GAAU,gBACX85F,EAAkBnsM,UAAW,mBAAe,GAC/CksM,GAAa,CACT75F,GAAU,sBACX85F,EAAkBnsM,UAAW,yBAAqB,GACrDksM,GAAa,CACT75F,GAAU,0BACX85F,EAAkBnsM,UAAW,6BAAyB,GACzDksM,GAAa,CACT75F,GAAU,qBACX85F,EAAkBnsM,UAAW,wBAAoB,GACpDksM,GAAa,CACT75F,GAAU,yBACX85F,EAAkBnsM,UAAW,4BAAwB,GACxDksM,GAAa,CACTr1B,GAAY,cACbs1B,EAAkBnsM,UAAW,iBAAa,GAC7CksM,GAAa,CACTr1B,GAAY,gBACbs1B,EAAkBnsM,UAAW,mBAAe,GAC/CksM,GAAa,CACTr1B,GAAY,cACbs1B,EAAkBnsM,UAAW,iBAAa,GAC7CksM,GAAa,CACTr1B,GAAY,WACbs1B,EAAkBnsM,UAAW,cAAU,GAC1CksM,GAAa,CACTr1B,GAAY,gBACbs1B,EAAkBnsM,UAAW,mBAAe,GACxCmsM,EAlgB2B,CAmgBpC9oM,IAQEgvM,GAAoD,WACpD,IAAI3qM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDuqM,GAAsD,SAAUxtM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmqM,GAAW,IACXC,GAAa,IACbC,GAA+C,SAAUnqM,GAEzD,SAASmqM,IACL,IAAIjvM,EAAQ8E,EAAOjH,KAAKoC,KAAMgvM,EAA8B/5B,WAAaj1K,KAEzE,OADAD,EAAMkvM,aAAe,EACdlvM,EA+EX,OAnFA6uM,GAAYI,EAA+BnqM,GAM3CmqM,EAA8BzyM,UAAU2I,KAAO,SAAU9B,GAErDpD,KAAKorM,OAASprM,KAAKqyK,oBAAoB,0BACvCryK,KAAKkvM,OAASlvM,KAAKqyK,oBAAoB,0BACvCryK,KAAKu4F,QAAQn1F,IAEjB4rM,EAA8BzyM,UAAU4yM,UAAY,SAAU/rM,EAAQ8vD,GAClE,IAAIk8I,EAAWl6L,KAAKiH,IAAI+2C,GACpBs4I,EAAiBpoM,EAAOmzK,YAAY64B,GACpCC,EAAa5uG,EAAO+qG,GAAkBA,EAAiB4D,EACvDE,EAAWp8I,GAAS,EAEpBlzD,KAAKkvM,OAAOrlH,UADZylH,EACwBR,GAAWO,EAIXN,GAAaM,EAEzChrD,GAAoBrkJ,KAAKkvM,OAAQ,2BAA4BI,GAC7DjrD,GAAoBrkJ,KAAKkvM,OAAQ,8BAA+BI,IAEpEN,EAA8BzyM,UAAUgzM,sBAAwB,WAC5D,IAAIxvM,EAAQC,KAIZA,KAAKivM,eACL,IAAIO,EAAmBxvM,KAAKivM,aAC5B1jM,OAAOE,YAAW,WACV+jM,IAAqBzvM,EAAMkvM,cAC3BlvM,EAAM0vM,mBAEX,MAEPT,EAA8BzyM,UAAUkzM,eAAiB,WACrDvrD,GAAelkJ,KAAKorM,OAAQ,mCAC5B1jD,GAAa1nJ,KAAKkvM,SAEtBF,EAA8BzyM,UAAUg8F,QAAU,SAAUn1F,GACxD,IAAI1G,EAAQ0G,EAAO1G,MACnB,GAAIA,IAAUsD,KAAK0vM,UACf,OAAO,EAaX,GAXIjvG,EAAOr9F,EAAOooM,gBACdxrM,KAAKorM,OAAOvhH,UAAYzmF,EAAOooM,eAE1B/qG,EAAOr9F,EAAO1G,OACnBsD,KAAKorM,OAAOvhH,UAAYntF,EAGxBgrJ,GAAa1nJ,KAAKorM,QAIlBprM,KAAK2vM,cAAcC,0CACnB,OAAO,EAEX,GAAqB,kBAAVlzM,GAAgD,kBAAnBsD,KAAK0vM,UAAwB,CACjE,IAAIx8I,EAAQx2D,EAAQsD,KAAK0vM,UACzB1vM,KAAKmvM,UAAU/rM,EAAQ8vD,GAS3B,OALIlzD,KAAK0vM,WACL5rD,GAAY9jJ,KAAKorM,OAAQ,mCAE7BprM,KAAKuvM,wBACLvvM,KAAK0vM,UAAYhzM,GACV,GAEXsyM,EAA8B/5B,SAAW,sGAIzC45B,GAAa,CACTjgG,GAAU,kBACXogG,EAA8BzyM,UAAW,qBAAiB,GACtDyyM,EApFuC,CAqFhDpvM,IAQEiwM,GAAoD,WACpD,IAAI5rM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDwrM,GAAsD,SAAUzuM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DorM,GAA0C,SAAUlrM,GAEpD,SAASkrM,IACL,IAAIhwM,EAAQ8E,EAAOjH,KAAKoC,KAAM+vM,EAAyB96B,WAAaj1K,KAGpE,OAFAD,EAAMkvM,aAAe,EACrBlvM,EAAMiwM,SAAWjwM,EAAMsyK,oBAAoB,2BACpCtyK,EAkEX,OAvEA8vM,GAAYE,EAA0BlrM,GAOtCkrM,EAAyBxzM,UAAU2I,KAAO,SAAU9B,GAChDpD,KAAKu4F,QAAQn1F,IAEjB2sM,EAAyBxzM,UAAU0zM,kBAAoB,WACnD,IAAIlwM,EAAQC,KACZA,KAAKivM,eAIL,IAAIO,EAAmBxvM,KAAKivM,aAExBjvM,KAAKkwM,WACLlwM,KAAKqG,SAASu0B,YAAY56B,KAAKkwM,WAEnClwM,KAAKkwM,UAAYloD,GAAa,oEAC9BhoJ,KAAKkwM,UAAUrmH,UAAY7pF,KAAKgwM,SAASnmH,UACzC7pF,KAAKqG,SAASqiJ,aAAa1oJ,KAAKkwM,UAAWlwM,KAAKgwM,UAIhDzkM,OAAOE,YAAW,WACV+jM,IAAqBzvM,EAAMkvM,cAG/BnrD,GAAY/jJ,EAAMmwM,UAAW,4BAC9B,IACH3kM,OAAOE,YAAW,WACV+jM,IAAqBzvM,EAAMkvM,eAG/BlvM,EAAMsG,SAASu0B,YAAY76B,EAAMmwM,WACjCnwM,EAAMmwM,UAAY,QACnB,MAEPH,EAAyBxzM,UAAUg8F,QAAU,SAAUn1F,GACnD,IAAI1G,EAAQ0G,EAAO1G,MAInB,OAHIikG,EAAQjkG,KACRA,EAAQ,IAERA,IAAUsD,KAAK0vM,aAKf1vM,KAAK2vM,cAAcC,4CAGvB5vM,KAAKiwM,oBACLjwM,KAAK0vM,UAAYhzM,EACb+jG,EAAOr9F,EAAOooM,gBACdxrM,KAAKgwM,SAASnmH,UAAYzmF,EAAOooM,eAE5B/qG,EAAOr9F,EAAO1G,OACnBsD,KAAKgwM,SAASnmH,UAAYntF,EAG1BgrJ,GAAa1nJ,KAAKgwM,WAEf,KAEXD,EAAyB96B,SAAW,oFACpC66B,GAAa,CACTlhG,GAAU,kBACXmhG,EAAyBxzM,UAAW,qBAAiB,GACjDwzM,EAxEkC,CAyE3CnwM,IAQEuwM,GAAoD,WACpD,IAAIlsM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD8rM,GAAsD,SAAU/uM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D0rM,GAAqC,SAAUxrM,GAE/C,SAASwrM,IACL,OAAOxrM,EAAOjH,KAAKoC,KAAMqwM,EAAoBp7B,WAAaj1K,KA0B9D,OA5BAmwM,GAAYE,EAAqBxrM,GAIjCwrM,EAAoB9zM,UAAU2I,KAAO,SAAU9B,GAC3CA,EAAOoP,KAAK89L,WAAatwM,KAAKuwM,cAAgBvwM,KAAKwwM,gBAEvDH,EAAoB9zM,UAAUg0M,YAAc,WACxCvwM,KAAKywM,aAAatiM,UAAY,OAElCkiM,EAAoB9zM,UAAUi0M,aAAe,WACzC,IAAIE,EAAe5sC,GAAiB,eAAgB9jK,KAAK8vG,mBAAoB,MACzE4gG,GACA1wM,KAAK0wM,aAAah2K,YAAYg2K,GAElC,IAAIpgE,EAAiBtwI,KAAK8vG,mBAAmBygC,oBAC7CvwI,KAAKywM,aAAatiM,UAAYmiI,EAAe,aAAc,YAE/D+/D,EAAoB9zM,UAAUg8F,QAAU,SAAUn1F,GAC9C,OAAO,GAEXitM,EAAoBp7B,SAAW,uLAC/Bm7B,GAAa,CACTh9B,GAAY,iBACbi9B,EAAoB9zM,UAAW,oBAAgB,GAClD6zM,GAAa,CACTh9B,GAAY,iBACbi9B,EAAoB9zM,UAAW,oBAAgB,GAC3C8zM,EA7B6B,CA8BtCzwM,IAQE+wM,GAAoD,WACpD,IAAI1sM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDssM,GAAsD,SAAUvvM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DksM,GAAkC,SAAUhsM,GAE5C,SAASgsM,IACL,IAAI9wM,EAAQ8E,EAAOjH,KAAKoC,KAAM,yGAA2GA,KAEzI,OADAD,EAAM+wM,gBAAiB,EAChB/wM,EAsDX,OA1DA4wM,GAAYE,EAAkBhsM,GAM9BgsM,EAAiBt0M,UAAU2I,KAAO,SAAU9B,GACxC,IAAIrD,EAAQC,KAEZ,GADAA,KAAKq1K,mBAAqBjyK,EAAOgyK,gBAC7Bz0E,EAAQv9F,EAAOtH,QACfmH,QAAQkD,KAAK,sDADjB,CAIAnG,KAAK8wM,eAAiB1tM,EAAOkyK,WAAazB,GAAQG,MAClD,IAAI+8B,GAAW,EACf3tM,EAAOtH,OAAOyC,SAAQ,SAAU7B,GAC5B,IAAI+lL,EAAS,CAAE/lL,MAAOA,GAClB8uM,EAAiBzrM,EAAM0rM,sBAAsBl1B,YAAYnzK,EAAOsE,OAAQ,KAAM,KAAMhL,GACpFs0M,EAAyC,OAAnBxF,QAA8CnsM,IAAnBmsM,EACrD/oB,EAAO/qJ,KAAOs5K,EAAsBxF,EAAiB9uM,EACrDqD,EAAMkxM,QAAQruB,UAAUH,GACxBsuB,EAAWA,GAAY3tM,EAAO1G,QAAUA,KAExCq0M,EACA/wM,KAAKixM,QAAQv7B,SAAStyK,EAAO1G,OAAO,GAE/B0G,EAAOtH,OAAO2B,QACnBuC,KAAKixM,QAAQv7B,SAAStyK,EAAOtH,OAAO,IAAI,GAIvCkE,KAAK8vG,mBAAmBohG,iBACzBlxM,KAAKixM,QAAQ3tB,eAAc,WAAc,OAAOlgL,EAAO+tM,mBAG/DN,EAAiBt0M,UAAUq5K,iBAAmB,WACtC51K,KAAKq1K,oBACLr1K,KAAKixM,QAAQh/B,sBAAsB8D,QAEnC/1K,KAAK8wM,gBACL9wM,KAAKixM,QAAQG,cAGrBP,EAAiBt0M,UAAU45K,QAAU,WACjCn2K,KAAKixM,QAAQh/B,sBAAsB8D,SAEvC86B,EAAiBt0M,UAAU4xI,SAAW,WAClC,OAAOnuI,KAAKixM,QAAQ9iE,YAExB0iE,EAAiBt0M,UAAUw2K,QAAU,WACjC,OAAO,GAEX69B,GAAa,CACThiG,GAAU,0BACXiiG,EAAiBt0M,UAAW,6BAAyB,GACxDq0M,GAAa,CACTx9B,GAAY,YACby9B,EAAiBt0M,UAAW,eAAW,GACnCs0M,EA3D0B,CA4DnC/9B,IAQEu+B,GAAoD,WACpD,IAAIptM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDgtM,GAAqC,SAAUzsM,GAE/C,SAASysM,IACL,OAAkB,OAAXzsM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAK/D,OAPAqxM,GAAYC,EAAqBzsM,GAIjCysM,EAAoB/0M,UAAUw2K,QAAU,WACpC,OAAO,GAEJu+B,EAR6B,CAStCt8B,IAQEu8B,GAAoD,WACpD,IAAIttM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDktM,GAAuC,SAAU3sM,GAEjD,SAAS2sM,IACL,OAAkB,OAAX3sM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAK/D,OAPAuxM,GAAYC,EAAuB3sM,GAInC2sM,EAAsBj1M,UAAUw2K,QAAU,WACtC,OAAO,GAEJy+B,EAR+B,CASxCX,IAQEY,GAAoD,WACpD,IAAIxtM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDotM,GAAsD,SAAUrwM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DgtM,GAAqC,SAAU9sM,GAE/C,SAAS8sM,IACL,OAAO9sM,EAAOjH,KAAKoC,KAAM2xM,EAAoB18B,WAAaj1K,KAsC9D,OAxCAyxM,GAAYE,EAAqB9sM,GAIjC8sM,EAAoBp1M,UAAU2I,KAAO,SAAU9B,GAC3CpD,KAAKoD,OAASA,EACdpD,KAAKq1K,mBAAqBjyK,EAAOgyK,gBACjCp1K,KAAK4xM,UACAC,aAAazuM,EAAO0uM,WAAa,KACjCC,QAAQ3uM,EAAOi4C,MAAQ,IACvB22J,QAAQ5uM,EAAOi/C,MAAQ,IACxBo+C,EAAOr9F,EAAO1G,QACdsD,KAAK4xM,UAAUl8B,SAAStyK,EAAO1G,MAAMiB,YAAY,GAErDqC,KAAK0yK,oBAAoB,UAAW1yK,KAAKusK,UAAU9hK,KAAKzK,QAE5D2xM,EAAoBp1M,UAAUgwK,UAAY,SAAUnlK,GAChD,IAAI3K,EAAM2K,EAAMy9J,OAASz9J,EAAM09J,SAC3BroK,IAAQo3K,GAAQO,MAChB33K,IAAQo3K,GAAQQ,IAChB53K,IAAQo3K,GAAQS,OAChB73K,IAAQo3K,GAAQU,MACfntK,EAAMw5H,UAAYnkI,IAAQo3K,GAAQG,QACnC5sK,EAAM6qM,mBAGdN,EAAoBp1M,UAAUq5K,iBAAmB,WAC7C,IAAIC,EAAY71K,KAAK8vG,mBAAmBygC,oBACxCvwI,KAAK4xM,UAAU97B,kBAAkBD,EAAU,kBAAmB,iBAC1D71K,KAAKq1K,oBACLr1K,KAAK4xM,UAAU3/B,sBAAsB8D,SAG7C47B,EAAoBp1M,UAAU4xI,SAAW,WACrC,OAAOnuI,KAAKoD,OAAOkzK,WAAWt2K,KAAK4xM,UAAUzjE,aAEjDwjE,EAAoB18B,SAAW,8JAC/By8B,GAAa,CACTt+B,GAAY,cACbu+B,EAAoBp1M,UAAW,iBAAa,GACxCo1M,EAzC6B,CA0CtC7+B,IAQEo/B,GAAoD,WACpD,IAAIjuM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD6tM,GAAsD,SAAU9wM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DytM,GAA8B,SAAUvtM,GAExC,SAASutM,IACL,OAAOvtM,EAAOjH,KAAKoC,KAAM,iBAAmBA,KAiMhD,OAnMAkyM,GAAYE,EAAcvtM,GAI1ButM,EAAa71M,UAAUsoL,kBAAoB,SAAUF,GACjD,MAAO,CACH9mL,KAAM8mL,EAAYp0F,OAClBnyF,GAAIumL,EAAY0tB,WAGxBD,EAAa71M,UAAUihL,qBAAuB,WAC1C,OAAO,KAEX40B,EAAa71M,UAAU6/K,kBAAoB,SAAU5+D,GACjD,IAAIz9G,EAAQC,KACZ,OAAO6E,EAAOtI,UAAU6/K,kBAAkBx+K,KAAKoC,KAAMw9G,GAAQm+C,MAAK,WAC9D,IAAIlhH,EAAS,CAAC16C,EAAMuyM,YAAavyM,EAAMwyM,YAAaxyM,EAAMyyM,UAAWzyM,EAAM0yM,WAC3Eh4J,EAAOl8C,SAAQ,SAAUm8C,GAAS,OAAOA,EAAMg7H,SAAS,KAAMl4D,MAC9Dz9G,EAAMinL,uBAGdorB,EAAa71M,UAAUolL,mBAAqB,SAAUz6K,EAAO07I,GACzD,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7CsyB,EAAa9rB,EAAc5mL,KAAKsyM,YAActyM,KAAKuyM,YACnDI,EAAW/rB,EAAc5mL,KAAKwyM,UAAYxyM,KAAKyyM,UACnDC,EAAWh9B,SAASxuK,EAAS,GAAKA,EAAMqpF,OAAU,MAClDoiH,EAASj9B,SAASxuK,EAAS,GAAKA,EAAMmrM,SAAY,OAEtDD,EAAa71M,UAAUqjL,2BAA6B,SAAUljL,GAC1DsD,KAAKsyM,YAAY58B,SAASh5K,GAC1BsD,KAAKwyM,UAAU98B,SAAS,MACxB11K,KAAKuyM,YAAY78B,SAAS,MAC1B11K,KAAKyyM,UAAU/8B,SAAS,OAE5B08B,EAAa71M,UAAU8mG,WAAa,WAChC,OAAO,SAAUrrB,EAAMC,GACnB,OAAID,IAASC,EACF,EAEJD,EAAOC,EAAQ,GAAK,IAGnCm6H,EAAa71M,UAAU4/K,UAAY,SAAU/4K,GACzCpD,KAAK4yM,mBAAqBxvM,EAC1B,IAAIyvM,EAAqB7yM,KAAK8yM,wBAC9B,GAAID,EAAoB,CACpB,IAAIE,EAAS,CAAEF,mBAAoBA,GACnC7yM,KAAK+7K,cAAc,CACfu2B,YAAaS,EACbP,UAAWO,EACXR,YAAaQ,EACbN,UAAWM,IAGnBluM,EAAOtI,UAAU4/K,UAAUv+K,KAAKoC,KAAMoD,GACtCpD,KAAKgzM,4BAETZ,EAAa71M,UAAUy2M,yBAA2B,WAC9C,IAAIjzM,EAAQC,KACRywG,EAAW,WAAc,OAAO1wG,EAAMm+K,eAC1Cl+K,KAAKsyM,YAAYhvB,cAAc7yE,GAC/BzwG,KAAKwyM,UAAUlvB,cAAc7yE,GAC7BzwG,KAAKuyM,YAAYjvB,cAAc7yE,GAC/BzwG,KAAKyyM,UAAUnvB,cAAc7yE,IAEjC2hG,EAAa71M,UAAUyqL,iBAAmB,WACtC,IAAIC,EAAkBjnL,KAAK8vG,mBAAmBygC,oBAC1C0iE,EAAWjzM,KAAKw/K,YAAYx/K,KAAK8gL,qBACjCoyB,EAAWlzM,KAAKw/K,YAAYx/K,KAAK+gL,qBACrC/gL,KAAKsyM,YAAYr7B,oBAAoBj3K,KAAK61K,UAAUo9B,EAAW,eAAiB,cAChFjzM,KAAKsyM,YAAYx8B,kBAAkBm9B,EAC7BhsB,EAAgB,sBAAuB,qBACvCA,EAAgB,kBAAmB,iBACzCjnL,KAAKwyM,UAAUv7B,oBAAoBj3K,KAAK61K,UAAU,eAClD71K,KAAKwyM,UAAU18B,kBAAkBmR,EAAgB,oBAAqB,oBACtEjnL,KAAKuyM,YAAYt7B,oBAAoBj3K,KAAK61K,UAAUq9B,EAAW,eAAiB,cAChFlzM,KAAKuyM,YAAYz8B,kBAAkBo9B,EAC7BjsB,EAAgB,sBAAuB,qBACvCA,EAAgB,kBAAmB,iBACzCjnL,KAAKyyM,UAAUx7B,oBAAoBj3K,KAAK61K,UAAU,eAClD71K,KAAKyyM,UAAU38B,kBAAkBmR,EAAgB,oBAAqB,qBAE1EmrB,EAAa71M,UAAUq5K,iBAAmB,SAAUxyK,GAChDyB,EAAOtI,UAAUq5K,iBAAiBh4K,KAAKoC,KAAMoD,GAC7CpD,KAAKgnL,mBACA5jL,GAAWA,EAAO+vM,eACnBnzM,KAAKsyM,YAAYr8B,kBAAkBF,SAG3Cq8B,EAAa71M,UAAU0lL,wBAA0B,WAC7C,OAAOmwB,EAAazrB,wBAExByrB,EAAa71M,UAAUumL,oBAAsB,SAAUlgC,GACnD,IAAIlgH,EAAMkgH,IAAagxB,GAAkBwM,IAAM,IAAM,IACjDyyB,EAAqB7yM,KAAK8yM,wBAC1BM,EAAeP,EAAqB,sBAAwB,wBAChE,MAAkB,4DAAiEnwK,EAAM,gDAAqD0wK,EAAe,2DAAgE1wK,EAAM,OAAU0wK,EAAe,uBAAyBA,EAAe,uDAA4D1wK,EAAM,OAAU0wK,EAAe,yBAEnYhB,EAAa71M,UAAU4jL,sBAAwB,SAAUv9B,GACrD,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7CqC,EAASmE,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBAC3D,GAAI0B,IAAWrD,GAAaG,MACxB,OAAO,EAEX,GAAIv/K,KAAKs/K,0BAA0BmD,GAC/B,OAAO,EAEX,IAAI2oB,EAASxkB,EAAc5mL,KAAKsyM,YAActyM,KAAKuyM,YAC/CI,EAAW/rB,EAAc5mL,KAAKwyM,UAAYxyM,KAAKyyM,UAC/C/1M,EAAQsD,KAAKqzM,cAAcjI,EAAOj9D,YACtC,OAAgB,MAATzxI,KAAmBsD,KAAKw/K,YAAYiD,IAAsD,MAA3CziL,KAAKqzM,cAAcV,EAASxkE,cAEtFikE,EAAa71M,UAAU8kL,qBAAuB,SAAUF,EAASC,GAC7D,OAAOD,EAAQ5wF,SAAW6wF,EAAQ7wF,QAC3B4wF,EAAQkxB,WAAajxB,EAAQixB,UAC7BlxB,EAAQ1hL,OAAS2hL,EAAQ3hL,MAEpC2yM,EAAa71M,UAAUikL,cAAgB,WACnC,MAAO,UAEX4xB,EAAa71M,UAAU82M,cAAgB,SAAU32M,GAC7C,GAAqB,kBAAVA,EACP,OAAOA,EAEX,IAAI42M,EAAa9yG,EAAS9jG,GAI1B,OAHkB,MAAd42M,GAA4C,KAAtBA,EAAW/6K,SACjC+6K,EAAa,MAEbtzM,KAAK4yM,mBAAmBW,aACjBvzM,KAAK4yM,mBAAmBW,aAAaD,GAE3B,MAAdA,GAA4C,MAAtBA,EAAW/6K,OAAiB,KAAOhV,WAAW+vL,IAE/ElB,EAAa71M,UAAUqkL,gBAAkB,SAAUh+B,GAC/C,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7C3gL,EAAOmnL,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBACrDqqB,EAASxkB,EAAc5mL,KAAKsyM,YAActyM,KAAKuyM,YAC/C71M,EAAQsD,KAAKqzM,cAAcjI,EAAOj9D,YAClCjnI,EAAQ,CACRq5K,WAAYvgL,KAAKwgL,gBACjB/gL,KAAMA,GAEV,IAAKO,KAAKs/K,0BAA0B7/K,KAChCyH,EAAMqpF,OAAS7zF,EACXsD,KAAKw/K,YAAY//K,IAAO,CACxB,IAAIkzM,EAAW/rB,EAAc5mL,KAAKwyM,UAAYxyM,KAAKyyM,UAC/Ce,EAAUxzM,KAAKqzM,cAAcV,EAASxkE,YAC1CjnI,EAAMmrM,SAAWmB,EAGzB,OAAOtsM,GAEXkrM,EAAa71M,UAAU8/K,mBAAqB,WACxCx3K,EAAOtI,UAAU8/K,mBAAmBz+K,KAAKoC,MACzCA,KAAKgnL,mBACL,IAAIG,EAAiBnnL,KAAK8gL,oBACtBsG,EAAiBpnL,KAAK+gL,oBAC1Bv7B,GAAaxlJ,KAAKsyM,YAAYjsM,SAAUrG,KAAKq/K,cAAc8H,IAC3D3hC,GAAaxlJ,KAAKwyM,UAAUnsM,SAAUrG,KAAKw/K,YAAY2H,IACvD3hC,GAAaxlJ,KAAKuyM,YAAYlsM,SAAUrG,KAAKq/K,cAAc+H,IAC3D5hC,GAAaxlJ,KAAKyyM,UAAUpsM,SAAUrG,KAAKw/K,YAAY4H,KAE3DgrB,EAAa71M,UAAUu2M,sBAAwB,WAC3C,IAAID,GAAsB7yM,KAAK4yM,oBAAsB,IAAIC,mBACzD,OAAIA,IAGC9xD,MAAsBH,KAKpB,KAFI,cAIfwxD,EAAazrB,uBAAyB,CAClCvC,GAAaX,OACbW,GAAaV,UACbU,GAAaT,UACbS,GAAaR,mBACbQ,GAAaP,aACbO,GAAaN,sBACbM,GAAa3E,UAEjB0yB,GAAa,CACT/+B,GAAY,gBACbg/B,EAAa71M,UAAW,mBAAe,GAC1C41M,GAAa,CACT/+B,GAAY,cACbg/B,EAAa71M,UAAW,iBAAa,GACxC41M,GAAa,CACT/+B,GAAY,gBACbg/B,EAAa71M,UAAW,mBAAe,GAC1C41M,GAAa,CACT/+B,GAAY,cACbg/B,EAAa71M,UAAW,iBAAa,GACjC61M,EApMsB,CAqM/BhuB,IAQEqvB,GAAoD,WACpD,IAAIxvM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDovM,GAA2C,SAAU7uM,GAErD,SAASm0L,IACL,OAAOn0L,EAAOjH,KAAKoC,OAASA,KAehC,OAjBAyzM,GAAYza,EAAyBn0L,GAMrCm0L,EAAwBz8L,UAAU6J,QAAU,WACxCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCg5L,EAAwBz8L,UAAU2I,KAAO,SAAU9B,GAC/C,IAAIgkJ,EAAWpnJ,KAAK8vG,mBAAmB6jG,4BACnC3zM,KAAK8vG,mBAAmB6jG,4BAA8B3a,EAAwB4a,iCAC9EtjE,EAAiBtwI,KAAK8vG,mBAAmBygC,oBACzCsjE,EAAoBzsD,EAASr+I,QAAQ,eAAgBunI,EAAe,aAAc,eACtFtwI,KAAK2uK,YAAYklC,IAErB7a,EAAwB4a,iCAAmC,8DACpD5a,EAlBmC,CAmB5Cp5L,IAQEk0M,GAAoD,WACpD,IAAI7vM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDyvM,GAA0C,SAAUlvM,GAEpD,SAASo0L,IACL,OAAOp0L,EAAOjH,KAAKoC,OAASA,KAehC,OAjBA8zM,GAAY7a,EAAwBp0L,GAMpCo0L,EAAuB18L,UAAU6J,QAAU,WACvCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCi5L,EAAuB18L,UAAU2I,KAAO,SAAU9B,GAC9C,IAAIgkJ,EAAWpnJ,KAAK8vG,mBAAmBkkG,2BACnCh0M,KAAK8vG,mBAAmBkkG,2BAA6B/a,EAAuBgb,yBAC5E3jE,EAAiBtwI,KAAK8vG,mBAAmBygC,oBACzCsjE,EAAoBzsD,EAASr+I,QAAQ,oBAAqBunI,EAAe,eAAgB,oBAC7FtwI,KAAK2uK,YAAYklC,IAErB5a,EAAuBgb,yBAA2B,mEAC3Chb,EAlBkC,CAmB3Cr5L,IAQEs0M,GAAoD,WACpD,IAAIjwM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD6vM,GAAoC,SAAUtvM,GAE9C,SAASq0L,IACL,OAAOr0L,EAAOjH,KAAKoC,KAAiB,mCAAuCA,KAO/E,OATAk0M,GAAYhb,EAAkBr0L,GAK9Bq0L,EAAiB38L,UAAU2I,KAAO,SAAU9B,GACxC,IAAI1G,EAAQ0G,EAAO1G,MACnBsD,KAAKqG,SAASwjF,UAAYntF,GAEvBw8L,EAV4B,CAWrCpmB,IAQEshC,GAAoD,WACpD,IAAInwM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+vM,GAAsD,SAAUhzM,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D2vM,GAAsC,SAAUzvM,GAEhD,SAASyvM,IACL,OAAOzvM,EAAOjH,KAAKoC,KAAiB,0KAAkLA,KAiD1N,OAnDAo0M,GAAYE,EAAsBzvM,GAMlCyvM,EAAqB/3M,UAAU6J,QAAU,WACrCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCs0M,EAAqB/3M,UAAU2I,KAAO,SAAU9B,GAC5C,IAAImxM,EAAev0M,KAAKw0M,WAAWv+B,kBAC/Bj2K,KAAKy0M,2BAA2BrxM,KAC5Bs9I,KACAz9I,QAAQkD,KAAK,oHAGbouM,EAAa90M,KAAO,QAI5BO,KAAKmnH,mBAAmBotF,EAAc,aAAa,WAAc,OAAOA,EAAax+B,WACrF/1K,KAAKmnH,mBAAmBnnH,KAAKw0M,WAAWv+B,kBAAmB,SAAS,SAAUzpK,GACtEA,EAAEzQ,SAAW4Q,SAAS+nM,eAG1BtxM,EAAOijL,oBAGfiuB,EAAqB/3M,UAAUggB,QAAU,WACrC,OAAOiiJ,GAAwBx+J,KAAKw0M,WAAWrmE,aAEnDmmE,EAAqB/3M,UAAU+f,QAAU,SAAUb,GAC/Czb,KAAKw0M,WAAW9+B,SAASvX,GAAc1iJ,GAAM,KAEjD64L,EAAqB/3M,UAAU06K,oBAAsB,SAAUC,GAC3Dl3K,KAAKw0M,WAAWv9B,oBAAoBC,IAExCo9B,EAAqB/3M,UAAUq5K,iBAAmB,SAAUxyK,GACnDA,GAAWA,EAAO+vM,eACnBnzM,KAAKw0M,WAAWv+B,kBAAkBF,SAG1Cu+B,EAAqB/3M,UAAUk4M,2BAA6B,SAAUrxM,GAClE,OAAIA,EAAOkjL,cAAyD,MAAzCljL,EAAOkjL,aAAaquB,kBACpCvxM,EAAOkjL,aAAaquB,kBAExB5zD,MAAqBK,MAEhCizD,GAAa,CACTjhC,GAAY,eACbkhC,EAAqB/3M,UAAW,kBAAc,GAC1C+3M,EApD8B,CAqDvC10M,IAQEg1M,GAAoD,WACpD,IAAI3wM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDuwM,GAAsC,SAAUhwM,GAEhD,SAASgwM,IACL,OAAkB,OAAXhwM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA6F/D,OA/FA40M,GAAYC,EAAsBhwM,GAIlCgwM,EAAqBt4M,UAAUihL,qBAAuB,WAClD,OAAO,GAIXq3B,EAAqBt4M,UAAU6J,QAAU,WACrCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAKlC60M,EAAqBt4M,UAAUu4M,iBAAmB,SAAU5tM,GACxD,IAAKA,EACD,OAAO,KAEX,IAAIs6K,EAAat6K,EAAMu5K,SACvB,GAAIe,EAAY,CACZ,IAAIC,EAAgBv6K,EAChB6tM,EAAU/0M,KAAKg1M,kBAAkBvzB,EAAcd,YAC/Cs0B,EAAUj1M,KAAKg1M,kBAAkBvzB,EAAcZ,YACnD,OAAOk0B,EAAU,IAAMtzB,EAAchB,SAAW,IAAMw0B,EAGtD,IAAIzrG,EAAYtiG,EACZw7K,EAAe1iL,KAAK+/K,eAAe/H,gBAAgBxuE,EAAU/pG,MAGjE,OAAIijL,GAAgBA,EAAac,iBAC7BxjL,KAAK8vG,mBAAmBygC,mBAAxBvwI,CAA4C0iL,EAAa9K,WAAY8K,EAAa7wH,aAC3E6wH,EAAa7wH,aAEjB7xD,KAAKg1M,kBAAkBxrG,IAGtCqrG,EAAqBt4M,UAAU24M,0BAA4B,SAAU9tM,GACjE,OAAOA,GAASA,EAAMq3K,qBAE1Bo2B,EAAqBt4M,UAAU44M,YAAc,WACzC,OAAOn1M,KAAKo1M,UAEhBP,EAAqBt4M,UAAU84M,qBAAuB,SAAUnuM,GAE5D,GAAKA,EAAL,CAIA,IACIsiG,EADAg4E,EAAat6K,EAAMu5K,SAEvB,GAAIe,EAAY,CACZ,IAAIC,EAAgBv6K,EACpBsiG,EAAYi4E,EAAcd,gBAG1Bn3E,EAAYtiG,EAEhBlH,KAAKo1M,SAAW5rG,EAAU/pG,UAZtBO,KAAKo1M,SAAWp1M,KAAK+/K,eAAehI,oBAc5C88B,EAAqBt4M,UAAU+4M,oCAAsC,SAAUpuM,GAC3E,IAAKA,EAGD,OAAOlH,KAAKu1M,eAAev1M,KAAKo1M,UAGpC,IAAI5zB,EAAat6K,EAAMu5K,SACvB,GAAIe,EACA,OAAO,EAEX,IAAII,EAAc16K,EAClB,OAAOlH,KAAKu1M,eAAe3zB,EAAYniL,OAE3Co1M,EAAqBt4M,UAAU2I,KAAO,SAAU9B,GAC5CpD,KAAK+/K,eAAiB,IAAI5I,GAC1Bn3K,KAAK+/K,eAAe76K,KAAK9B,EAAOkjL,aAActmL,KAAKiiL,2BACnDjiL,KAAKo1M,SAAWp1M,KAAK+/K,eAAehI,mBAKpC,IAAIhvF,EAAW/oF,KAAKu1M,eAAev1M,KAAKo1M,UACxCp1M,KAAKw1M,YAAYzsH,IAErB8rH,EAAqBt4M,UAAU+iL,0BAA4B,SAAUiB,GACjE,IAAIgD,EAAqBvjL,KAAK+/K,eAAe/H,gBAAgBuI,GAC7D,OAAOgD,GAAsBA,EAAmBC,iBAEpDqxB,EAAqBt4M,UAAUg5M,eAAiB,SAAU91M,GACtD,QAASA,IAASO,KAAKs/K,0BAA0B7/K,IAC7CA,IAAS2/K,GAAaK,UACnBhgL,IAAS2/K,GAAaG,OAE1Bs1B,EAhG8B,CAiGvCj1M,IAQE61M,GAAoD,WACpD,IAAIxxM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDoxM,GAAsD,SAAUr0M,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DgxM,GAAoC,SAAU9wM,GAE9C,SAAS8wM,IACL,OAAO9wM,EAAOjH,KAAKoC,KAAiB,yPAAqQA,KAmF7S,OArFAy1M,GAAYE,EAAoB9wM,GAIhC8wM,EAAmBp5M,UAAU0lL,wBAA0B,WACnD,OAAOqD,GAAWqB,wBAEtBgvB,EAAmBp5M,UAAUy4M,kBAAoB,SAAUxrG,GACvD,IAAI/pG,EAAO+pG,EAAU/pG,KACjB+lL,EAAWhnB,GAAwBh1D,EAAUg8E,UACjD,GAAI/lL,IAAS2/K,GAAaK,SAAU,CAChC,IAAIgG,EAASjnB,GAAwBh1D,EAAUi8E,QAC/C,OAAOtnB,GAAcqnB,GAAU,GAAS,IAAMrnB,GAAcsnB,GAAQ,GAGxE,OAAmB,MAAZD,EAAmB,GAAK/lL,EAAO,GAAK0+J,GAAcqnB,GAAU,IAEvEmwB,EAAmBp5M,UAAU2I,KAAO,SAAU9B,GAC1CyB,EAAOtI,UAAU2I,KAAKtH,KAAKoC,KAAMoD,GACjCpD,KAAKoD,OAASA,EACdpD,KAAK41M,sBACL,IAAI//B,EAAY71K,KAAK8vG,mBAAmBygC,oBACxCvwI,KAAK61M,cACAnwD,aAAY,GACZowB,kBAAkBD,EAAU,sBAAuB,uBAE5D8/B,EAAmBp5M,UAAUi5M,YAAc,SAAUzsH,GACjDy8D,GAAaxlJ,KAAK81M,aAAc/sH,GAChCy8D,GAAaxlJ,KAAK61M,cAAcxvM,UAAW0iF,IAE/C4sH,EAAmBp5M,UAAUw5M,qBAAuB,SAAU7uM,EAAOE,GAIjE,IAAIpH,KAAKk1M,0BAA0B9tM,GAAnC,CAGAvC,EAAOtI,UAAU84M,qBAAqBz3M,KAAKoC,KAAMkH,GACjD,IAAI8uM,EAAeh2M,KAAKs1M,oCAAoCpuM,GAE5D,GADAlH,KAAKw1M,YAAYQ,GACbA,EAAc,CACd,GAAI9uM,EAAO,CACP,IAAI+uM,EAAY/uM,EAChBlH,KAAK+2K,SAASz6J,QAAQkiJ,GAAwBy3C,EAAUzwB,gBAGxDxlL,KAAK+2K,SAASz6J,QAAQ,MAE1Btc,KAAK61M,cAAcngC,SAAS,SAG5B11K,KAAK61M,cAAcngC,SAAS11K,KAAK80M,iBAAiB5tM,IAClDlH,KAAK+2K,SAASz6J,QAAQ,QAG9Bq5L,EAAmBp5M,UAAU8pL,cAAgB,WACzC,IAAItmL,EAAQC,KACRk2M,EAAkBl2M,KAAK+2K,SAASx6J,UAChC45L,EAAkBh4C,GAAc+3C,GACpCl2M,KAAKoD,OAAOgzM,sBAAqB,SAAUC,GACvC,GAAIA,EAAgB,CAChB,IAAIC,EAAeD,EACnBC,EAAa52B,wBAAwB3/K,EAAMo1M,cAAegB,QAItER,EAAmBp5M,UAAUq5M,oBAAsB,WAC/C,IAAI71M,EAAQC,KACRy9K,EAAanC,GAAeoC,cAAc19K,KAAKoD,OAAOkjL,aAActmL,KAAKw9K,wBACzE7G,EAAsB,CACtB0P,cAAet8K,GAAS/J,KAAKqmL,cAAc57K,KAAKzK,MAAOy9K,GACvD6I,aAActmL,KAAKoD,OAAOsE,OAAOm1G,YAAYypE,cAEjDtmL,KAAK+2K,SAAW,IAAIL,GAAgB12K,KAAKw4G,aAAcx4G,KAAKwtK,qBAAsBmJ,EAAqB32K,KAAK81M,cAC5G91M,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAMg3K,SAAS3wK,cAE5DsvM,GAAa,CACT9mG,GAAU,yBACX+mG,EAAmBp5M,UAAW,4BAAwB,GACzDm5M,GAAa,CACTtiC,GAAY,kBACbuiC,EAAmBp5M,UAAW,qBAAiB,GAClDm5M,GAAa,CACTtiC,GAAY,iBACbuiC,EAAmBp5M,UAAW,oBAAgB,GAC1Co5M,EAtF4B,CAuFrCd,IAQE0B,GAAoD,WACpD,IAAItyM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDkyM,GAAsD,SAAUn1M,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8xM,GAA4B,SAAU5xM,GAEtC,SAAS4xM,IACL,OAAO5xM,EAAOjH,KAAKoC,KAAM,eAAiBA,KAiK9C,OAnKAu2M,GAAYE,EAAY5xM,GAIxB4xM,EAAWC,UAAY,SAAUh6M,GAC7B,IAAIi6M,EAAej6M,GAASA,EAAM67B,OAElC,MAAwB,KAAjBo+K,EAAsBj6M,EAAQi6M,GAEzCF,EAAWl6M,UAAUihL,qBAAuB,WACxC,OAAO,KAEXi5B,EAAWl6M,UAAUq6M,cAAgB,SAAUC,GAC3C,IAAIn6M,EAAQ8jG,EAASq2G,EAAW1oE,YAChC,OAAOnuI,KAAK82M,iBAAiBJ,UAAYD,EAAWC,UAAUh6M,GAASA,GAE3E+5M,EAAWl6M,UAAUy2M,yBAA2B,WAC5C,IAAIjzM,EAAQC,KACRywG,EAAW,WAAc,OAAO1wG,EAAMm+K,eAC1Cl+K,KAAK+2M,QAAQzzB,cAAc7yE,GAC3BzwG,KAAKg3M,QAAQ1zB,cAAc7yE,IAE/BgmG,EAAWl6M,UAAU4/K,UAAY,SAAU/4K,GACvCyB,EAAOtI,UAAU4/K,UAAUv+K,KAAKoC,KAAMoD,GACtCpD,KAAK82M,iBAAmB1zM,EACxBpD,KAAKqjG,WAAarjG,KAAK82M,iBAAiBG,sBAAwBR,EAAWS,mBAC3El3M,KAAKm3M,UAAYn3M,KAAK82M,iBAAiBM,gBAClCp3M,KAAK82M,iBAAiBO,cAAgBZ,EAAWa,kBAAoBb,EAAWc,6BACrFv3M,KAAKgzM,4BAETyD,EAAWl6M,UAAUolL,mBAAqB,SAAUz6K,EAAO07I,GACvD,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7CgrB,EAASxkB,EAAc5mL,KAAK+2M,QAAU/2M,KAAKg3M,QAC/C5L,EAAO11B,SAASxuK,EAAQA,EAAMqpF,OAAS,OAE3CkmH,EAAWl6M,UAAUqkL,gBAAkB,SAAUh+B,GAC7C,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7C3gL,EAAOmnL,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBACrDqqB,EAASxkB,EAAc5mL,KAAK+2M,QAAU/2M,KAAKg3M,QAC3Ct6M,EAAQsD,KAAK42M,cAAcxL,GAC/BA,EAAO11B,SAASh5K,GAAO,GACvB,IAAIwK,EAAQ,CACRq5K,WAAYvgL,KAAKwgL,gBACjB/gL,KAAMA,GAKV,OAHKO,KAAKs/K,0BAA0B7/K,KAChCyH,EAAMqpF,OAAS7zF,GAEZwK,GAEXuvM,EAAWl6M,UAAUikL,cAAgB,WACjC,MAAO,QAEXi2B,EAAWl6M,UAAU8kL,qBAAuB,SAAUF,EAASC,GAC3D,OAAOD,EAAQ5wF,SAAW6wF,EAAQ7wF,QAAU4wF,EAAQ1hL,OAAS2hL,EAAQ3hL,MAEzEg3M,EAAWl6M,UAAU6/K,kBAAoB,SAAU5+D,GAC/C,IAAIz9G,EAAQC,KACZ,OAAO6E,EAAOtI,UAAU6/K,kBAAkBx+K,KAAKoC,KAAMw9G,GAAQm+C,MAAK,WAC9D57J,EAAMy3M,cAAa,SAAU98J,GAAS,OAAOA,EAAMg7H,SAAS,KAAMl4D,MAClEz9G,EAAMinL,uBAGdyvB,EAAWl6M,UAAUyqL,iBAAmB,WACpC,IAAIC,EAAkBjnL,KAAK8vG,mBAAmBygC,oBAC1C2mC,EAAcl3K,KAAK61K,UAAU,aACjC71K,KAAKw3M,cAAa,SAAU98J,GACxBA,EAAMu8H,oBAAoBC,GAC1Bx8H,EAAMo7H,kBAAkBmR,EAAgB,kBAAmB,qBAGnEwvB,EAAWl6M,UAAUi7M,aAAe,SAAUtyG,GAC1C3mG,EAAQ,CAACyB,KAAK+2M,QAAS/2M,KAAKg3M,SAAU9xG,IAE1CuxG,EAAWl6M,UAAUqjL,2BAA6B,SAAUljL,GACxDsD,KAAK+2M,QAAQrhC,SAASh5K,GACtBsD,KAAKg3M,QAAQthC,SAAS,OAE1B+gC,EAAWl6M,UAAU0lL,wBAA0B,WAC3C,OAAOw0B,EAAW9vB,wBAEtB8vB,EAAWl6M,UAAUumL,oBAAsB,SAAUlgC,GACjD,IAAIlgH,EAAMkgH,IAAagxB,GAAkBwM,IAAM,IAAM,IACrD,MAAkB,4DAAiE19I,EAAM,wGAAgHA,EAAM,gDAEnN+zK,EAAWl6M,UAAU8/K,mBAAqB,WACtCx3K,EAAOtI,UAAU8/K,mBAAmBz+K,KAAKoC,MACzCwlJ,GAAaxlJ,KAAKy3M,gBAAiBz3M,KAAKq/K,cAAcr/K,KAAK8gL,sBAC3Dt7B,GAAaxlJ,KAAKgjL,gBAAiBhjL,KAAK+iL,uBAAyB/iL,KAAKq/K,cAAcr/K,KAAK+gL,uBAE7F01B,EAAWl6M,UAAUq5K,iBAAmB,SAAUxyK,GAC9CyB,EAAOtI,UAAUq5K,iBAAiBh4K,KAAKoC,KAAMoD,GAC7CpD,KAAKgnL,mBACA5jL,GAAWA,EAAO+vM,eACnBnzM,KAAK+2M,QAAQ9gC,kBAAkBF,SAGvC0gC,EAAWl6M,UAAU4jL,sBAAwB,SAAUv9B,GACnD,IAAIgkC,EAAchkC,IAAagxB,GAAkBwM,IAC7CqC,EAASmE,EAAc5mL,KAAK8gL,oBAAsB9gL,KAAK+gL,oBAC3D,OAAI0B,IAAWrD,GAAaG,UAGxBv/K,KAAKs/K,0BAA0BmD,IAGqC,MAAjEziL,KAAK42M,cAAchwB,EAAc5mL,KAAK+2M,QAAU/2M,KAAKg3M,WAEhEP,EAAWl6M,UAAUylL,0BAA4B,SAAU5+K,EAAQuhL,GAC/D,IAAI2uB,EAAa3uB,EAAYp0F,OACzBmnF,EAAeiN,EAAYllL,KAC3BmlL,EAAY5kL,KAAK82M,iBAAiBtpE,YAAYpqI,EAAOoP,MACrDklM,EAAqB13M,KAAKm3M,UAAUvyB,GACpCrB,EAAqBvjL,KAAK+/K,eAAe/H,gBAAgBN,GAC7D,GAAI6L,IAEkB,MAAd+vB,GAAsB/vB,EAAmBC,iBACzC,OAAOD,EAAmB13K,KAAKynM,EAAYoE,GAGnD,GAAiB,MAAb9yB,EACA,OAAOlN,IAAiB0H,GAAasE,WAAahM,IAAiB0H,GAAa4E,aAEpF,IAAI2zB,EAAsB33M,KAAKm3M,UAAU7D,GACzC,OAAOtzM,KAAKqjG,WAAWq0E,EAAcggC,EAAoBC,IAE7DlB,EAAW9vB,uBAAyB,CAChCvH,GAAa2E,SACb3E,GAAa4E,aACb5E,GAAaqE,OACbrE,GAAasE,UACbtE,GAAa6E,YACb7E,GAAa8E,WAEjBuyB,EAAWa,kBAAoB,SAAUz5M,GAAQ,OAAOA,GACxD44M,EAAWc,4BAA8B,SAAU15M,GAAQ,OAAe,MAARA,EAAe,KAAOA,EAAKF,WAAWqL,eACxGytM,EAAWS,mBAAqB,SAAU3mH,EAAQ7zF,EAAO42M,GACrD,OAAQ/iH,GACJ,KAAKkmH,EAAW1yB,SACZ,OAAOrnL,EAAMqE,QAAQuyM,IAAe,EACxC,KAAKmD,EAAWzyB,aACZ,OAAOtnL,EAAMqE,QAAQuyM,GAAc,EACvC,KAAKmD,EAAWhzB,OACZ,OAAO/mL,IAAU42M,EACrB,KAAKmD,EAAW/yB,UACZ,OAAOhnL,GAAS42M,EACpB,KAAKmD,EAAWxyB,YACZ,OAAqC,IAA9BvnL,EAAMqE,QAAQuyM,GACzB,KAAKmD,EAAWvyB,UACZ,IAAIhlL,EAAQxC,EAAMslB,YAAYsxL,GAC9B,OAAOp0M,GAAS,GAAKA,IAAWxC,EAAMe,OAAS61M,EAAW71M,OAC9D,QAGI,OADAwF,QAAQkD,KAAK,uCAAyCoqF,EAAS,6EACxD,IAGnBimH,GAAa,CACTpjC,GAAY,YACbqjC,EAAWl6M,UAAW,eAAW,GACpCi6M,GAAa,CACTpjC,GAAY,YACbqjC,EAAWl6M,UAAW,eAAW,GAC7Bk6M,EApKoB,CAqK7Br3B,IAQEw4B,GAAoD,WACpD,IAAI3zM,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDuzM,GAAsD,SAAUx2M,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmzM,GAAyC,SAAUjzM,GAEnD,SAASizM,IACL,OAAkB,OAAXjzM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoE/D,OAtEA43M,GAAYE,EAAyBjzM,GAIrCizM,EAAwBv7M,UAAUwiJ,cAAgB,WAC9C/+I,KAAK2uK,YAAuB,yLAEhCmpC,EAAwBv7M,UAAUihL,qBAAuB,WACrD,OAAO,KAEXs6B,EAAwBv7M,UAAUw5M,qBAAuB,SAAU7uM,EAAOE,GAClEpH,KAAKk1M,0BAA0B9tM,KAInCpH,KAAKq1M,qBAAqBnuM,GAC1BlH,KAAK+3M,qBAAqBriC,SAAS11K,KAAK80M,iBAAiB5tM,IACzDlH,KAAKw1M,YAAYx1M,KAAKs1M,oCAAoCpuM,MAE9D4wM,EAAwBv7M,UAAU2I,KAAO,SAAU9B,GAC/CyB,EAAOtI,UAAU2I,KAAKtH,KAAKoC,KAAMoD,GACjCpD,KAAKoD,OAASA,EACdpD,KAAKw7K,YAAcF,GAAesB,iBAAiB58K,KAAKoD,OAAOkjL,cAC/D,IAAI7I,EAAanC,GAAeoC,cAAc19K,KAAKoD,OAAOkjL,aAActmL,KAAKw9K,wBACzEw6B,EAAajuM,GAAS/J,KAAKi4M,uBAAuBxtM,KAAKzK,MAAOy9K,GAC9Dy6B,EAAYl4M,KAAK+3M,qBAAqB1xM,SAC1CrG,KAAKmnH,mBAAmB+wF,EAAW,QAASF,GAC5Ch4M,KAAKmnH,mBAAmB+wF,EAAW,WAAYF,GAC/Ch4M,KAAKmnH,mBAAmB+wF,EAAW,UAAWF,GAC9C,IAAIG,EAAY/0M,EAAOsE,OAAOu1G,gBAC1Bk7F,EAAU7xB,cACV6xB,EAAU7xB,aAAahP,eACyB,IAAhD6gC,EAAU7xB,aAAahP,cAAc75K,QACO,YAA5C06M,EAAU7xB,aAAahP,cAAc,IACrCt3K,KAAK+3M,qBAAqBryD,aAAY,GAE1C,IAAI7zF,EAAc7xD,KAAKm/I,iBAAiB5P,wBAAwBnsI,EAAOsE,OAAQ,UAAU,GACrFmuK,EAAY71K,KAAK8vG,mBAAmBygC,oBACxCvwI,KAAK+3M,qBAAqBjiC,kBAAkBjkH,EAAc,IAAMgkH,EAAU,kBAAmB,kBAEjGiiC,EAAwBv7M,UAAU07M,uBAAyB,SAAUzrM,GACjE,IAAIzM,EAAQC,KACR6tM,EAAkBlpC,GAAan4J,EAAGqnK,GAAQG,OAC9C,IAAIh0K,KAAKw7K,aAAgBqyB,EAAzB,CAGA,IAAInxM,EAAQsD,KAAK+3M,qBAAqB5pE,WAClCnuI,KAAKoD,OAAOkjL,aAAaowB,YACzBh6M,EAAQ+5M,GAAWC,UAAUh6M,GAC7BsD,KAAK+3M,qBAAqBriC,SAASh5K,GAAO,IAE9CsD,KAAKoD,OAAOgzM,sBAAqB,SAAUC,GACvC,GAAIA,EAAgB,CAChB,IAAIC,EAAeD,EACnBC,EAAa52B,wBAAwB3/K,EAAMo1M,cAAez4M,SAItEo7M,EAAwBv7M,UAAUi5M,YAAc,SAAUzsH,GACtD/oF,KAAK+3M,qBAAqBryD,aAAa38D,IAE3C8uH,GAAa,CACTjpG,GAAU,qBACXkpG,EAAwBv7M,UAAW,wBAAoB,GAC1Ds7M,GAAa,CACTzkC,GAAY,yBACb0kC,EAAwBv7M,UAAW,4BAAwB,GAC9Ds7M,GAAa,CACTvpG,IACDwpG,EAAwBv7M,UAAW,gBAAiB,MAChDu7M,EAvEiC,CAwE1CjD,IAQEuD,GAAoD,WACpD,IAAIn0M,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+zM,GAAsC,SAAUxzM,GAEhD,SAASwzM,IACL,OAAkB,OAAXxzM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAgB/D,OAlBAo4M,GAAYC,EAAsBxzM,GAIlCwzM,EAAqB97M,UAAU0lL,wBAA0B,WACrD,OAAOmwB,GAAazrB,wBAExB0xB,EAAqB97M,UAAUy4M,kBAAoB,SAAUxrG,GACzD,IAAI8uG,EAAU9uG,EAAU/pG,MAAQ2/K,GAAaK,SAC7C,OAAI64B,EACO9uG,EAAUjZ,OAAS,IAAMiZ,EAAU6oG,SAGtB,MAApB7oG,EAAUjZ,OACH,GAAKiZ,EAAUjZ,OAEnB,GAAKiZ,EAAU/pG,MAEnB44M,EAnB8B,CAoBvCP,IAQES,GAAoD,WACpD,IAAIt0M,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDk0M,GAAoC,SAAU3zM,GAE9C,SAAS2zM,IACL,OAAkB,OAAX3zM,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAe/D,OAjBAu4M,GAAYC,EAAoB3zM,GAIhC2zM,EAAmBj8M,UAAUy4M,kBAAoB,SAAUxrG,GAGvD,OAAwB,MAApBA,EAAUjZ,OACH,GAAKiZ,EAAUjZ,OAGf,GAAKiZ,EAAU/pG,MAG9B+4M,EAAmBj8M,UAAU0lL,wBAA0B,WACnD,OAAOw0B,GAAW9vB,wBAEf6xB,EAlB4B,CAmBrCV,IAQEW,GAAoD,WACpD,IAAIx0M,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDo0M,GAAsD,SAAUr3M,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAW04L,GACPA,EAA0BA,EAA0B,WAAa,GAAK,UACtEA,EAA0BA,EAA0B,cAAgB,GAAK,cAF7E,CAGGA,KAA8BA,GAA4B,KAC7D,IAAIsb,GAAuC,SAAU9zM,GAEjD,SAAS8zM,IACL,IAAI54M,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA0FhE,OAzFAD,EAAM64M,eAAiB,CAEnBC,YAAavE,GAEbwE,eAAgB5vB,GAChB6vB,oBAAqB7rB,GAErB8rB,2BAA4BR,GAC5BS,6BAA8BZ,GAC9Ba,2BAA4BvD,GAE5BwD,gCAAiCnK,GACjCoK,2BAA4BrJ,GAC5BsJ,oBAAqB3Q,GACrB4Q,mBAAoB5Q,GACpB6Q,sBAAuBlJ,GAEvBmJ,aAAcxkC,GACdykC,iBAAkBzkC,GAClB0kC,mBAAoB7I,GACpB8I,sBAAuBrI,GACvBsI,wBAAyBpI,GACzBqI,sBAAuBlI,GAEvBmI,mBAAoBrD,GACpBsD,qBAAsB3H,GACtB4H,mBAAoB10B,GAEpB20B,iBAAkBvG,GAClBwG,gBAAiBnG,GAEjBoG,mBAAoBhG,IAExBp0M,EAAMq6M,kBAAoB,CACtB95M,IAAK,CACD+5M,iBAAkB,oBAClBC,eAAgB,UAEpB5iL,KAAM,CACF2iL,iBAAkB,qBAClBC,eAAgB,UAEpBh/D,OAAQ,CACJ++D,iBAAkB,uBAClBC,eAAgB,UAEpB7+L,KAAM,CACF4+L,iBAAkB,qBAClBC,eAAgB,UAEpBp/G,MAAO,CACHm/G,iBAAkB,sBAClBC,eAAgB,gBAEpBC,kBAAmB,CACfF,iBAAkB,kCAClBC,eAAgB,gBAEpBE,aAAc,CACVH,iBAAkB,6BAClBC,eAAgB,gBAEpB11F,OAAQ,CACJy1F,iBAAkB,qBAClBC,eAAgB,cAEpBG,UAAW,CACPJ,iBAAkB,wBAClBC,eAAgB,cAEpBI,YAAa,CACTL,iBAAkB,0BAClBC,eAAgB,cAEpBK,UAAW,CACPN,iBAAkB,wBAClBC,eAAgB,cAEpBM,WAAY,CACRP,iBAAkB,yBAClBC,eAAgB,cAEpBO,gBAAiB,CACbR,iBAAkB,iBAClBC,eAAgB,oBAGxBv6M,EAAM+6M,aAAe,GACrB/6M,EAAMg7M,oBAAsB,GACrBh7M,EA6FX,OAzLA04M,GAAYE,EAAuB9zM,GA8FnC8zM,EAAsBp8M,UAAU2I,KAAO,WACnC,IAAInF,EAAQC,KACuB,MAA/BA,KAAKyG,YAAY1C,YACjB4hG,EAAc3lG,KAAKyG,YAAY1C,YAAY,SAAUtH,EAAKqG,GAAa,OAAO/C,EAAMi7M,kBAAkBv+M,EAAKqG,MAEnE,MAAxC9C,KAAKyG,YAAYs0M,qBACjBp1G,EAAc3lG,KAAKyG,YAAYs0M,qBAAqB,SAAUt+M,EAAKqG,GAAa,OAAO/C,EAAMk7M,oBAAoBx+M,EAAKqG,OAG9H61M,EAAsBp8M,UAAU2+M,yBAA2B,SAAUriH,EAAS/1F,GAC1E,IAAIlC,EAAOZ,KAAKm7M,sBAAsBtiH,GAClC74F,KAAK44M,eAAeh4M,GACpBqC,QAAQC,MAAM,8EAGlBlD,KAAK44M,eAAeh4M,GAAQkC,GAEhC61M,EAAsBp8M,UAAUy+M,kBAAoB,SAAUniH,EAAS/1F,GACnE,IAAIlC,EAAOZ,KAAKm7M,sBAAsBtiH,GAClC74F,KAAK+6M,oBAAoBn6M,GACzBqC,QAAQC,MAAM,mFAAqFtC,GAGvGZ,KAAK86M,aAAal6M,GAAQkC,GAM9B61M,EAAsBp8M,UAAU0+M,oBAAsB,SAAUpiH,EAAS/1F,GACrE,IAAIlC,EAAOZ,KAAKm7M,sBAAsBtiH,GAClC74F,KAAK86M,aAAal6M,GAClBqC,QAAQC,MAAM,yFAA2FtC,GAG7GZ,KAAK+6M,oBAAoBn6M,GAAQkC,GAMrC61M,EAAsBp8M,UAAU4gM,SAAW,SAAUtkG,GACjD,IAAIj4F,EAAOZ,KAAKm7M,sBAAsBtiH,GAClCuiH,EAAqBp7M,KAAK+6M,oBAAoBn6M,GAClD,GAAIw6M,EACA,MAAO,CACH5e,wBAAwB,EACxB15L,UAAWs4M,EACXt2G,OAAQu4F,GAA0BC,YAG1C,IAAI+d,EAAcr7M,KAAK86M,aAAal6M,GACpC,GAAIy6M,EACA,MAAO,CACH7e,wBAAwB,EACxB15L,UAAWu4M,EACXv2G,OAAQu4F,GAA0BC,YAG1C,IAAIge,EAAmBt7M,KAAK44M,eAAeh4M,GAC3C,OAAI06M,EACO,CACH9e,wBAAwB,EACxB15L,UAAWw4M,EACXx2G,OAAQu4F,GAA0BE,UAGtC5gM,OAAOsD,KAAKD,KAAK44M,gBAAgB73M,QAAQH,GAAQ,GACjDqC,QAAQkD,KAAK,mCAAqCvF,EAAO,0BAEtD,OAEX+3M,EAAsBp8M,UAAU4+M,sBAAwB,SAAUpwL,GAC9D,IAAIwwL,EAAiBv7M,KAAKo6M,kBAAkBrvL,GAC5C,OAAsB,MAAlBwwL,GACAnzG,IAAO,WACHnlG,QAAQkD,KAAK,8FAAgGo1M,EAAejB,eAAiB,IAAMvvL,EAAM,OAASwwL,EAAejB,eAAiB,IAAMiB,EAAelB,oBACxN,uBAAyBtvL,GACrBwwL,EAAelB,kBAEnBtvL,GAEX2tL,GAAa,CACT9pG,GAAU,gBACX+pG,EAAsBp8M,UAAW,mBAAe,GACnDm8M,GAAa,CACTpqG,IACDqqG,EAAsBp8M,UAAW,OAAQ,MAC5Co8M,EAAwBD,GAAa,CACjChqG,GAAK,0BACNiqG,GACIA,EA1L+B,CA2LxC/xF,IAQE40F,GAAkC,WAClC,SAASA,KAoFT,OAlFAA,EAAiBxyL,MAAQ,SAAUyyL,GAC/B,IAAKA,EACD,OAAO,KAEX,IAAgB,IAAZA,EACA,MAAO,CACHC,WAAY,CACRF,EAAiBG,oBACjBH,EAAiBI,qBAErBC,iBAAkB,WAG1B,GAAuB,kBAAZJ,EACP,OAAOD,EAAiBxyL,MAAM,CAACyyL,IAEnC,GAAIp+M,MAAMC,QAAQm+M,GAAU,CACxB,IAAIK,EAAU,GASd,OARAL,EAAQl9M,SAAQ,SAAU9B,GACtB,IAAIs/M,EAAeP,EAAiBQ,eAAev/M,GAC9Cs/M,EAILD,EAAQx8M,KAAKy8M,GAHT94M,QAAQkD,KAAK,oBAAsB1J,EAAM,oEAAsEE,OAAOsD,KAAKu7M,EAAiBQ,gBAAgBhrM,KAAK,SAKlJ,IAAnB8qM,EAAQr+M,OACD,KAEJ,CACHi+M,WAAYI,EACZD,iBAAkBC,EAAQ,GAAG9yJ,IAGrC,IAAIx6C,EAAS,CACTktM,WAAYF,EAAiBS,gBAAgBR,EAAQC,YACrDG,iBAAkBJ,EAAQI,iBAC1BK,gBAAiBT,EAAQS,gBACzBt5D,SAAU64D,EAAQ74D,UAEtB,OAAOp0I,GAEXgtM,EAAiBS,gBAAkB,SAAUp+M,GACzC,IAAI2Q,EAAS,GACb,OAAK3Q,GAGLA,EAAKU,SAAQ,SAAUgiG,GACnB,IAAI47G,EAAQ,KACZ,GAAkB,kBAAP57G,EAAiB,CACxB,IAAIw7G,EAAeP,EAAiBQ,eAAez7G,GACnD,IAAKw7G,EAED,YADA94M,QAAQkD,KAAK,oBAAsBo6F,EAAK,oEAAsE5jG,OAAOsD,KAAKu7M,EAAiBQ,gBAAgBhrM,KAAK,MAGpKmrM,EAAQJ,OAGRI,EAAQ57G,EAEZ/xF,EAAOlP,KAAK68M,MAET3tM,GAjBIA,GAmBfgtM,EAAiBG,oBAAsB,CACnC3yJ,GAAI,UACJozJ,aAAc,UACdC,SAAU,UACVC,QAAS,UACT9/G,UAAW,sBAEfg/G,EAAiBI,oBAAsB,CACnC5yJ,GAAI,UACJozJ,aAAc,UACdC,SAAU,UACVC,QAAS,SACT9/G,UAAW,sBAEfg/G,EAAiBQ,eAAiB,CAC9B7gH,QAASqgH,EAAiBG,oBAC1BvgH,QAASogH,EAAiBI,qBAEvBJ,EArF0B,GA8FjCe,GAAsD,SAAUl7M,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D63M,GAAgD,SAAUpvG,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvDqvG,GAA8D,WAC9D,IAAK,IAAIrpM,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEP+3M,GAAqB,GACrBC,GAA4B,IAC5BC,GAAuC,EACvCC,GAAyC,EACzCC,GAAgC;;;;;;GACpC,SAASC,GAAOrgN,GACZ,OAAiB,IAAVA,GAA4B,SAAVA,EAE7B,SAASolG,GAASplG,GACd,MAAoB,iBAATA,EACAA,EAES,iBAATA,EACAujB,SAASvjB,EAAO,SAD3B,EAIJ,SAASsgN,GAActgN,EAAO4qG,GAC1B,OAAI5qG,GAAS,EACFA,EAGJ4qG,EAEX,SAAS21G,GAAavgN,EAAO4qG,GACzB,IAAI41G,EAAcj9L,SAASvjB,EAAO,IAClC,OAAIu+I,GAAUiiE,IAAgBA,EAAc,EACjCA,EAEJ51G,EAEX,IA0gEI61G,GA1gEAC,GAAoC,WACpC,SAASA,IACLp9M,KAAKq9M,qBAAuB,IAAIjuG,GAChCpvG,KAAKs9M,WAAa,QAAUpoM,KAAKqoM,SAAS5/M,WAC1CqC,KAAK4K,WAAY,EAssCrB,IAAI4yM,EA+EJ,OAnxCAA,EAAuBJ,EACvBA,EAAmB7gN,UAAUkhN,OAAS,SAAUx+G,EAASp1F,GACrD7J,KAAKyG,YAAYmD,IAAMq1F,EACvBj/F,KAAKyG,YAAYoD,UAAYA,EAC7B7J,KAAK09M,qBACL19M,KAAK29M,sBAETP,EAAmB7gN,UAAU6J,QAAU,WAInCpG,KAAKyG,YAAYmD,IAAM,KACvB5J,KAAKyG,YAAYoD,UAAY,KAC7B7J,KAAK0wG,oBAAoB8sG,EAAqBI,gBAAiB59M,KAAK69M,6BACpE79M,KAAK4K,WAAY,GAErBwyM,EAAmB7gN,UAAU2I,KAAO,WAChC,IAAInF,EAAQC,MACwC,IAAhDA,KAAKyG,YAAYq3M,6BACjB99M,KAAK+9M,6BACL/9M,KAAKg+M,4BAGuB,MAA5Bh+M,KAAKyG,YAAYw3M,UACjBj+M,KAAKyG,YAAYw3M,QAAUzC,GAAiBxyL,MAAMhpB,KAAKyG,YAAYw3M,UAEvE,IAAIjuG,EAAQhwG,KAAKiwG,iBAkBjB,GAjBAjwG,KAAKq0G,aAAanE,kBAAkBlwG,KAAKk+M,mBAAmBzzM,KAAKzK,MAAOgwG,GACpEhwG,KAAKg1L,0BAA4Bh1L,KAAKm+M,+BACtCl7M,QAAQkD,KAAK,2IAEbnG,KAAKg1L,2BACAh1L,KAAKq1L,uBACNpyL,QAAQkD,KAAK,mFAEbnG,KAAKo+M,wBACLn7M,QAAQkD,KAAK,qNAKjBnG,KAAKq+M,+BAAiCr+M,KAAKqpM,0BAC3CpmM,QAAQkD,KAAK,sNAEbnG,KAAKo+M,uBAAwB,CAC7B,IAAIvoL,EAAM,SAAU1uB,GAAQ,MAAO,aAAeA,EAAO,mDACrDs5F,EAAOzgG,KAAKyG,YAAY63M,uBACxBr7M,QAAQkD,KAAK0vB,EAAI,yBAEjB4qE,EAAOzgG,KAAKyG,YAAY63M,uBACxBr7M,QAAQkD,KAAK0vB,EAAI,uBAEjB4qE,EAAOzgG,KAAKyG,YAAY63M,uBACxBr7M,QAAQkD,KAAK0vB,EAAI,4BAGrB71B,KAAKu+M,0BACLtrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,wBAEzEx+M,KAAKu+M,2BAA6Bv+M,KAAKy+M,wBAAyBz+M,KAAK0+M,sBACtEz7M,QAAQkD,KAAK,kHAEjB,IAAIw4M,EAAuB,SAAU/9M,GAC7Bb,EAAM0G,YAAYy9J,OAASnkK,EAAM0G,YAAYy9J,MAAMtjK,IACnDqC,QAAQkD,KAAK,qBAAuBvF,EAAO,8IAGnD+9M,EAAqB,kBACrBA,EAAqB,iBACrBA,EAAqB,mBACrBA,EAAqB,qBACrBA,EAAqB,yBAErB3+M,KAAKuiJ,qBAET66D,EAAmB7gN,UAAUyhN,yBAA2B,WACpD,IAAIj+M,EAAQC,KACuB,MAA/BA,KAAKyG,YAAY8D,YAGrBvK,KAAKyG,YAAY8D,WAAWhM,SAAQ,SAAUqJ,GAC1C,IAAIg3M,EAAiBjiN,OAAO2B,oBAAoBsJ,GAC5Ci3M,EAAkBpC,GAAiBruD,GAAWpnJ,eAAgBonJ,GAAWlC,sBAC7EnsJ,EAAM++M,gBAAgBF,EAAgBC,EAAiBA,EAAiB,SAAU,kEAG1FzB,EAAmB7gN,UAAUwhN,2BAA6B,WACtD,IAAIa,EAAiBjiN,OAAO2B,oBAAoB0B,KAAKyG,aACjDo4M,EAAkBpC,GAAiB7wD,GAAa5kJ,eAAgB4kJ,GAAaM,qBAAsBpwJ,EAAO6wH,IAAQllH,KAAI,SAAUL,GAAS,OAAOilJ,GAAcI,oBAAoBrlJ,OAClL23M,EAA+BtC,GAAiBoC,EAAiB,CAAC,MAAO,cAC7E7+M,KAAK8+M,gBAAgBF,EAAgBG,EAA8BF,EAAiB,cAAe,wDAEvGzB,EAAmB7gN,UAAUuiN,gBAAkB,SAAUF,EAAgBG,EAA8BF,EAAiBG,EAAeC,GACnI,IAAIC,EAAoBhgD,GAAkB0/C,EAAgBG,EAA8BF,GACxFl5G,EAAcu5G,GAAmB,SAAUziN,EAAKC,GAC5CuG,QAAQkD,KAAK,oBAAsB64M,EAAgB,cAAgBviN,EAAM,gCAAkCC,EAAMuX,MAAM,EAAG,GAAGjD,KAAK,UAElIrU,OAAOsD,KAAKi/M,GAAmBzhN,OAAS,GACxCwF,QAAQkD,KAAK,iCAAmC64M,EAAgB,6BAA+BC,IAGvG7B,EAAmB7gN,UAAUirM,cAAgB,WACzC,OAAOxnM,KAAKs9M,YAGhBF,EAAmB7gN,UAAUkpH,WAAa,SAAUt7B,EAAS1tF,GACzD,IAAI0iN,EAAUh1H,EAAQnqF,KAAKwnM,iBAC3B,OAAO2X,EAAUA,EAAQ1iN,QAAO4C,GAEpC+9M,EAAmB7gN,UAAU6iN,WAAa,SAAUj1H,EAAS1tF,EAAKC,GAC9D,IAAI4gN,EAAat9M,KAAKwnM,gBAClB2X,EAAUh1H,EAAQmzH,GAClB38G,EAAQw+G,KACRA,EAAU,GACVh1H,EAAQmzH,GAAc6B,GAE1BA,EAAQ1iN,GAAOC,GAEnB0gN,EAAmB7gN,UAAU8iN,eAAiB,WAC1C,MAAyC,WAAlCr/M,KAAKyG,YAAY63F,cAA+D,aAAlCt+F,KAAKyG,YAAY63F,cAE1E8+G,EAAmB7gN,UAAU+iN,yBAA2B,WACpD,OAAOvC,GAAO/8M,KAAKyG,YAAY84M,yBAEnCnC,EAAmB7gN,UAAU84L,oBAAsB,WAC/C,MAAyC,aAAlCr1L,KAAKyG,YAAY63F,cAE5B8+G,EAAmB7gN,UAAUijN,0BAA4B,WACrD,OAAOzC,GAAO/8M,KAAKyG,YAAYg5M,0BAEnCrC,EAAmB7gN,UAAUi8G,WAAa,WACtC,OAAOx4G,KAAKyG,YAAY4iG,SAE5B+zG,EAAmB7gN,UAAUg6H,YAAc,WACvC,OAAOwmF,GAAO/8M,KAAKyG,YAAY+0F,YAEnC4hH,EAAmB7gN,UAAUmjN,gCAAkC,WAC3D,OAAO3C,GAAO/8M,KAAKyG,YAAYk5M,gCAEnCvC,EAAmB7gN,UAAUqjN,0BAA4B,WACrD,OAAO5/M,KAAKyG,YAAYo5M,wBAE5BzC,EAAmB7gN,UAAUujN,kBAAoB,WAC7C,OAAO9/M,KAAKyG,YAAYs5M,gBAE5B3C,EAAmB7gN,UAAUyjN,mBAAqB,WAC9C,OAAOhgN,KAAKyG,YAAYw5M,eAAiB7uG,GAAUQ,yBAEvDwrG,EAAmB7gN,UAAU2jN,mBAAqB,WAC9C,OAAOlgN,KAAKyG,YAAYw5M,eAAiB7uG,GAAUS,yBAEvDurG,EAAmB7gN,UAAU6hN,qBAAuB,WAChD,OAAOp+M,KAAKyG,YAAYw5M,eAAiB7uG,GAAUW,4BAEvDqrG,EAAmB7gN,UAAUw7G,kBAAoB,WAC7C,OAAQpX,EAAQ3gG,KAAKyG,YAAYw5M,eAC7BjgN,KAAKyG,YAAYw5M,eAAiB7uG,GAAUU,4BAEpDsrG,EAAmB7gN,UAAU20M,cAAgB,WACzC,MAAqC,YAA9BlxM,KAAKyG,YAAY05M,UAE5B/C,EAAmB7gN,UAAU6jN,4BAA8B,WACvD,OAAOrD,GAAO/8M,KAAKyG,YAAY45M,4BAEnCjD,EAAmB7gN,UAAU+jN,gCAAkC,WAC3D,OAAOvD,GAAO/8M,KAAKyG,YAAY85M,gCAEnCnD,EAAmB7gN,UAAUikN,gCAAkC,WAC3D,OAAOzD,GAAO/8M,KAAKyG,YAAYg6M,gCAEnCrD,EAAmB7gN,UAAUmkN,+BAAiC,WAC1D,OAAO3D,GAAO/8M,KAAKyG,YAAYk6M,+BAEnCvD,EAAmB7gN,UAAUqkN,gBAAkB,WAC3C,OAAO7D,GAAO/8M,KAAKyG,YAAYw3M,SAAW5gN,MAAMC,QAAQ0C,KAAK6gN,aAAanF,cAE9E0B,EAAmB7gN,UAAUskN,WAAa,WACtC,OAAO7gN,KAAKyG,YAAYw3M,SAE5Bb,EAAmB7gN,UAAUmuL,gBAAkB,WAC3C,OAAOqyB,GAAO/8M,KAAKyG,YAAYq6M,gBAEnC1D,EAAmB7gN,UAAUw7H,sBAAwB,WACjD,OAAOglF,GAAO/8M,KAAKyG,YAAYs6M,sBAEnC3D,EAAmB7gN,UAAUykN,uBAAyB,WAClD,OAAOjE,GAAO/8M,KAAKyG,YAAYw6M,uBAEnC7D,EAAmB7gN,UAAUqvI,4BAA8B,WACvD,OAAOmxE,GAAO/8M,KAAKyG,YAAYy6M,4BAEnC9D,EAAmB7gN,UAAU4kN,gCAAkC,WAC3D,OAAOpE,GAAO/8M,KAAKyG,YAAY26M,gCAEnChE,EAAmB7gN,UAAU0zG,eAAiB,WAC1C,OAAQ8sG,GAAO/8M,KAAKyG,YAAY46M,sBAEpCjE,EAAmB7gN,UAAU+kN,wBAA0B,WACnD,OAAOvE,GAAO/8M,KAAKyG,YAAY86M,wBAEnCnE,EAAmB7gN,UAAUilN,kBAAoB,WAC7C,OAAOxhN,KAAKyG,YAAYg7M,gBAAkB,KAE9CrE,EAAmB7gN,UAAUmlN,iBAAmB,WAC5C,OAAO1hN,KAAKyG,YAAYk7M,eAAiB,KAE7CvE,EAAmB7gN,UAAUy4L,uBAAyB,WAClD,IAAIxmL,EAASuuM,GAAO/8M,KAAKyG,YAAYsuL,sBACrC,OAAIvmL,GAAUxO,KAAKq4G,cACfp1G,QAAQkD,KAAK,+DACN,GAEJqI,GAEX4uM,EAAmB7gN,UAAUqlN,4BAA8B,WACvD,OAAO7E,GAAO/8M,KAAKyG,YAAYo7M,4BAEnCzE,EAAmB7gN,UAAU27L,uBAAyB,WAClD,OAAO6kB,GAAO/8M,KAAKyG,YAAYwuL,uBAEnCmoB,EAAmB7gN,UAAU8sM,uBAAyB,WAClD,OAAO0T,GAAO/8M,KAAKyG,YAAYq7M,uBAGnC1E,EAAmB7gN,UAAUwlN,uBAAyB,WAClD,OAAOhF,GAAO/8M,KAAKyG,YAAYu7M,uBAAyBjF,GAAO/8M,KAAKyG,YAAYq7M,uBAEpF1E,EAAmB7gN,UAAU8hN,4BAA8B,WACvD,OAAOtB,GAAO/8M,KAAKyG,YAAY4mJ,4BAEnC+vD,EAAmB7gN,UAAU0lN,kCAAoC,WAC7D,OAAOlF,GAAO/8M,KAAKyG,YAAYy7M,kCAEnC9E,EAAmB7gN,UAAUk2L,qBAAuB,WAChD,OAAOsqB,GAAO/8M,KAAKyG,YAAY07M,qBAEnC/E,EAAmB7gN,UAAUqsM,0BAA4B,WACrD,OAAOmU,GAAO/8M,KAAKyG,YAAY27M,0BAEnChF,EAAmB7gN,UAAU8lN,2BAA6B,WACtD,OAAOtF,GAAO/8M,KAAKyG,YAAY67M,2BAEnClF,EAAmB7gN,UAAUgmN,4BAA8B,WACvD,OAAOxF,GAAO/8M,KAAKyG,YAAYknJ,4BAEnCyvD,EAAmB7gN,UAAUimN,wBAA0B,WACnD,OAAOzF,GAAO/8M,KAAKyG,YAAY83F,wBAEnC6+G,EAAmB7gN,UAAUkmN,oBAAsB,WAC/C,OAAO1F,GAAO/8M,KAAKyG,YAAYi8M,oBAEnCtF,EAAmB7gN,UAAUwvL,mBAAqB,WAC9C,MAAyC,SAAlC/rL,KAAKyG,YAAYk8M,cAE5BvF,EAAmB7gN,UAAUs9I,0BAA4B,WACrD,OAAOkjE,GAAO/8M,KAAKyG,YAAYm8M,0BAEnCxF,EAAmB7gN,UAAUq9I,0BAA4B,WACrD,OAAOmjE,GAAO/8M,KAAKyG,YAAYo8M,0BAEnCzF,EAAmB7gN,UAAUwpM,gCAAkC,WAC3D,OAAOgX,GAAO/8M,KAAKyG,YAAYq8M,gCAEnC1F,EAAmB7gN,UAAUwmN,0BAA4B,WACrD,OAAOhG,GAAO/8M,KAAKyG,YAAYu8M,0BAEnC5F,EAAmB7gN,UAAUiqM,iBAAmB,WAC5C,OAAOuW,GAAO/8M,KAAKyG,YAAYw8M,iBAEnC7F,EAAmB7gN,UAAU0rM,kBAAoB,WAC7C,OAAO8U,GAAO/8M,KAAKyG,YAAY8mJ,kBAEnC6vD,EAAmB7gN,UAAU2mN,8BAAgC,WACzD,OAAOnG,GAAO/8M,KAAKyG,YAAYgnJ,8BAEnC2vD,EAAmB7gN,UAAUuqM,yBAA2B,WACpD,OAAOiW,GAAO/8M,KAAKyG,YAAY08M,yBAGnC/F,EAAmB7gN,UAAU4qI,aAAe,WACxC,IAAIi8E,EAAYpjN,KAAKyG,YAAY28M,WAAahyG,GAAUgB,kBACpDixG,EAAe,CACfjyG,GAAUiB,iBACVjB,GAAUkB,uBACVlB,GAAUgB,mBAEd,OAAyC,IAArCixG,EAAatiN,QAAQqiN,IACrBh7G,IAAO,WACH,OAAOnlG,QAAQkD,KAAK,YAAci9M,EAAY,kDAAoDhyG,GAAUgB,kBAAoB,KAAOhB,GAAUkB,uBAAyB,QAAUlB,GAAUiB,oBAC/L,gCACIjB,GAAUgB,mBAEdgxG,GAEXhG,EAAmB7gN,UAAU+mN,2BAA6B,WACtD,OAAOvG,GAAO/8M,KAAKyG,YAAY88M,2BAEnCnG,EAAmB7gN,UAAUinN,oCAAsC,WAC/D,OAAOzG,GAAO/8M,KAAKyG,YAAYg9M,oCAEnCrG,EAAmB7gN,UAAUmnN,uCAAyC,WAClE,OAAO3G,GAAO/8M,KAAKyG,YAAYk9M,uCAEnCvG,EAAmB7gN,UAAUqnN,6BAA+B,WACxD,OAAO7G,GAAO/8M,KAAKyG,YAAYo9M,6BAEnCzG,EAAmB7gN,UAAUunN,2BAA6B,WACtD,OAAO/G,GAAO/8M,KAAKyG,YAAYs9M,2BAEnC3G,EAAmB7gN,UAAUynN,4BAA8B,WACvD,OAAOjH,GAAO/8M,KAAKyG,YAAYw9M,4BAEnC7G,EAAmB7gN,UAAU2nN,yBAA2B,WACpD,OAAOnH,GAAO/8M,KAAKyG,YAAY09M,yBAEnC/G,EAAmB7gN,UAAU6nN,wBAA0B,WACnD,OAAOrH,GAAO/8M,KAAKyG,YAAY49M,wBAEnCjH,EAAmB7gN,UAAU25G,2BAA6B,WACtD,OAAO6mG,GAAO/8M,KAAKyG,YAAY69M,2BAEnClH,EAAmB7gN,UAAUgoN,oBAAsB,WAC/C,OAAOvkN,KAAKyG,YAAY+9M,kBAE5BpH,EAAmB7gN,UAAUkoN,uBAAyB,WAClD,OAAOzkN,KAAKyG,YAAYi+M,qBAE5BtH,EAAmB7gN,UAAUooN,mBAAqB,WAC9C,OAAO5H,GAAO/8M,KAAKyG,YAAYm+M,mBAEnCxH,EAAmB7gN,UAAUsoN,0BAA4B,WACrD,OAAO9H,GAAO/8M,KAAKyG,YAAYq+M,0BAEnC1H,EAAmB7gN,UAAUwoN,yBAA2B,WACpD,OAAOhI,GAAO/8M,KAAKyG,YAAYu+M,yBAEnC5H,EAAmB7gN,UAAU0oN,mBAAqB,WAC9C,OAAOjlN,KAAKyG,YAAYumJ,iBAE5BowD,EAAmB7gN,UAAU2oN,mBAAqB,WAC9C,OAAOnI,GAAO/8M,KAAKyG,YAAY0+M,mBAEnC/H,EAAmB7gN,UAAUkwL,aAAe,WACxC,OAAOswB,GAAO/8M,KAAKyG,YAAY+lL,aAEnC4wB,EAAmB7gN,UAAUsuL,mBAAqB,WAC9C,OAAOkyB,GAAO/8M,KAAKyG,YAAYmkL,mBAEnCwyB,EAAmB7gN,UAAU6oN,0BAA4B,WACrD,OAAOrI,GAAO/8M,KAAKyG,YAAY4+M,0BAEnCjI,EAAmB7gN,UAAU+oN,iBAAmB,WAC5C,OAAOvI,GAAO/8M,KAAKyG,YAAY8+M,iBAEnCnI,EAAmB7gN,UAAUipN,sBAAwB,WACjD,OAAOzI,GAAO/8M,KAAKyG,YAAYg/M,sBAEnCrI,EAAmB7gN,UAAUmpN,4BAA8B,WACvD,OAAO1lN,KAAKyG,YAAYk/M,0BAE5BvI,EAAmB7gN,UAAUqpN,YAAc,WACvC,OAAO5lN,KAAKyG,YAAYo/M,UAE5BzI,EAAmB7gN,UAAUupN,YAAc,WACvC,OAAO9lN,KAAKyG,YAAYs/M,UAE5B3I,EAAmB7gN,UAAUypN,gBAAkB,WAC3C,OAAOhmN,KAAKyG,YAAYm/M,aAE5BxI,EAAmB7gN,UAAU0pN,gBAAkB,WAC3C,OAAOjmN,KAAKyG,YAAYq/M,aAE5B1I,EAAmB7gN,UAAU2pN,cAAgB,WACzC,OAAOlmN,KAAKyG,YAAYy/M,eAE5B9I,EAAmB7gN,UAAU4pN,uBAAyB,WAClD,OAAOnmN,KAAKyG,YAAY2/M,qBAE5BhJ,EAAmB7gN,UAAU8pN,6BAA+B,WACxD,OAAOrmN,KAAKyG,YAAY6/M,0BAE5BlJ,EAAmB7gN,UAAUgqN,4BAA8B,WACvD,OAAOvmN,KAAKyG,YAAY+/M,sBAE5BpJ,EAAmB7gN,UAAUkqN,eAAiB,WAC1C,OAAOzmN,KAAKyG,YAAYigN,aAE5BtJ,EAAmB7gN,UAAUoqN,2BAA6B,WACtD,OAAO3mN,KAAKyG,YAAYmgN,yBAE5BxJ,EAAmB7gN,UAAUsqN,wBAA0B,WACnD,OAAO7mN,KAAKyG,YAAYqgN,kBAE5B1J,EAAmB7gN,UAAUwqN,iCAAmC,WAC5D,OAAO/mN,KAAKyG,YAAYugN,2BAE5B5J,EAAmB7gN,UAAU0qN,kBAAoB,WAC7C,OAAOjnN,KAAKyG,YAAYygN,eAE5B9J,EAAmB7gN,UAAU4qN,oCAAsC,WAC/D,OAAOnnN,KAAKyG,YAAY2gN,8BAE5BhK,EAAmB7gN,UAAU8qN,8BAAgC,WACzD,OAAOrnN,KAAKyG,YAAY6gN,4BAE5BlK,EAAmB7gN,UAAU66L,uBAAyB,WAClD,OAAOp3L,KAAKyG,YAAYywL,iBAE5BkmB,EAAmB7gN,UAAUgrN,+BAAiC,WAC1D,OAAOvnN,KAAKyG,YAAY+gN,6BAE5BpK,EAAmB7gN,UAAUwtM,qBAAuB,WAChD,OAAOgT,GAAO/8M,KAAKyG,YAAYghN,qBAAuB1K,GAAO/8M,KAAKyG,YAAYihN,+BAElFtK,EAAmB7gN,UAAUorN,sBAAwB,WACjD,OAAO5K,GAAO/8M,KAAKyG,YAAYmhN,sBAEnCxK,EAAmB7gN,UAAUkpK,6BAA+B,WACxD,OAAOzlK,KAAKyG,YAAYk/J,uBAE5By3C,EAAmB7gN,UAAUsrN,0BAA4B,WACrD,OAAO7nN,KAAKyG,YAAYqhN,uBAE5B1K,EAAmB7gN,UAAUk8G,OAAS,WAClC,OAAOz4G,KAAKyG,YAAYmD,KAE5BwzM,EAAmB7gN,UAAUm8G,aAAe,WACxC,OAAO14G,KAAKyG,YAAYoD,WAE5BuzM,EAAmB7gN,UAAUwrN,gBAAkB,WAC3C,OAAOhL,GAAO/8M,KAAKyG,YAAYuhN,gBAEnC5K,EAAmB7gN,UAAU0rN,iBAAmB,WAC5C,OAAOlL,GAAO/8M,KAAKyG,YAAY8hJ,iBAEnC60D,EAAmB7gN,UAAU2rN,eAAiB,WAC1C,QAAInL,GAAO/8M,KAAKyG,YAAY0hN,eACjBl1G,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,iBAIrFhL,EAAmB7gN,UAAU0kI,oBAAsB,WAC/C,OAAOjhI,KAAKyG,YAAY4hN,kBAE5BjL,EAAmB7gN,UAAU+rN,kBAAoB,WAC7C,OAAOvL,GAAO/8M,KAAKyG,YAAY8hN,kBAEnCnL,EAAmB7gN,UAAUisN,oBAAsB,WAC/C,OAAOzL,GAAO/8M,KAAKyG,YAAYgiN,oBAEnCrL,EAAmB7gN,UAAUmsN,gCAAkC,WAC3D,OAAO3L,GAAO/8M,KAAKyG,YAAYkiN,gCAEnCvL,EAAmB7gN,UAAUqsN,wBAA0B,WACnD,OAAO5oN,KAAKyG,YAAY63M,sBAE5BlB,EAAmB7gN,UAAUssN,mCAAqC,WAC9D,OAAO7oN,KAAKyG,YAAYqiN,iCAE5B1L,EAAmB7gN,UAAUwsN,oBAAsB,WAC/C,OAAO/oN,KAAKyG,YAAYuiN,kBAE5B5L,EAAmB7gN,UAAU0sN,qBAAuB,WAChD,OAAOjpN,KAAKyG,YAAYyiN,mBAE5B9L,EAAmB7gN,UAAU4sN,sBAAwB,WACjD,OAAOrnH,GAAS9hG,KAAKyG,YAAY0mJ,qBAErCiwD,EAAmB7gN,UAAU6sN,oBAAsB,WAC/C,IAAIC,EAAiBrpN,KAAKq+M,+BAAiCr+M,KAAKiiN,oCAChE,QAAIoH,GAGGtM,GAAO/8M,KAAKyG,YAAY6iN,oBAEnClM,EAAmB7gN,UAAUgtN,kBAAoB,WAC7C,OAAOtM,GAAaj9M,KAAKyG,YAAY+iN,iBAEzCpM,EAAmB7gN,UAAUktN,2BAA6B,WACtD,OAAOzpN,KAAKyG,YAAYijN,yBAE5BtM,EAAmB7gN,UAAUotN,sBAAwB,WACjD,OAAO5M,GAAO/8M,KAAKyG,YAAYmjN,sBAEnCxM,EAAmB7gN,UAAUstN,0BAA4B,WACrD,OAAO9M,GAAO/8M,KAAKyG,YAAYqjN,0BAEnC1M,EAAmB7gN,UAAUyN,WAAa,WACtC,OAAOhK,KAAKyG,YAAY2D,SAI5BgzM,EAAmB7gN,UAAUm9I,oBAAsB,SAAUl+C,GACzD,OAAOA,GAAoBuhH,GAAO/8M,KAAKyG,YAAYsjN,oBAEvD3M,EAAmB7gN,UAAUokH,YAAc,WACvC,OAAOo8F,GAAO/8M,KAAKyG,YAAYujN,YAEnC5M,EAAmB7gN,UAAU0tN,sBAAwB,WACjD,OAAOjqN,KAAKyG,YAAYwmJ,oBAE5BmwD,EAAmB7gN,UAAU2tN,qBAAuB,WAChD,OAAOlqN,KAAKyG,YAAY0jN,mBAE5B/M,EAAmB7gN,UAAU6tN,kBAAoB,WAC7C,OAAOpqN,KAAKyG,YAAY4jN,gBAE5BjN,EAAmB7gN,UAAU+tN,qBAAuB,WAChD,OAAOvN,GAAO/8M,KAAKyG,YAAY8jN,qBAEnCnN,EAAmB7gN,UAAUiuN,wBAA0B,WACnD,OAAOzN,GAAO/8M,KAAKyG,YAAYgkN,wBAEnCrN,EAAmB7gN,UAAUmuN,QAAU,WACnC,OAAO3N,GAAO/8M,KAAKyG,YAAYkkN,QAEnCvN,EAAmB7gN,UAAU+oI,cAAgB,WACzC,OAAOtlI,KAAKyG,YAAY8D,YAE5B6yM,EAAmB7gN,UAAU4vH,eAAiB,WAC1C,OAAOnsH,KAAKyG,YAAYmkN,aAE5BxN,EAAmB7gN,UAAUsuN,cAAgB,WACzC,OAAO7qN,KAAKyG,YAAYqkN,YAE5B1N,EAAmB7gN,UAAUwuN,sBAAwB,WACjD,OAAO/qN,KAAKyG,YAAYukN,oBAE5B5N,EAAmB7gN,UAAU0uN,wBAA0B,WACnD,OAAOjrN,KAAKyG,YAAYykN,sBAE5B9N,EAAmB7gN,UAAU4uN,eAAiB,WAC1C,OAAOpO,GAAO/8M,KAAKyG,YAAY2kN,eAEnChO,EAAmB7gN,UAAUuyK,wBAA0B,WACnD,OAAOiuC,GAAO/8M,KAAKyG,YAAY4kN,wBAEnCjO,EAAmB7gN,UAAU+uN,wBAA0B,WACnD,OAAOvO,GAAO/8M,KAAKyG,YAAY8kN,wBAEnCnO,EAAmB7gN,UAAUw8G,kBAAoB,WAC7C,OAAOgkG,GAAO/8M,KAAKyG,YAAY+kN,kBAEnCpO,EAAmB7gN,UAAUkvN,6BAA+B,WACxD,OAAO1O,GAAO/8M,KAAKyG,YAAYilN,6BAEnCtO,EAAmB7gN,UAAUovN,8BAAgC,WACzD,OAAO5O,GAAO/8M,KAAKyG,YAAYmlN,8BAEnCxO,EAAmB7gN,UAAUsvN,qCAAuC,WAChE,OAAO9O,GAAO/8M,KAAKyG,YAAYqlN,qCAEnC1O,EAAmB7gN,UAAU+5H,+BAAiC,WAC1D,OAAOymF,GAAO/8M,KAAKyG,YAAY4vH,+BAEnC+mF,EAAmB7gN,UAAUwvN,sBAAwB,WACjD,OAAOhP,GAAO/8M,KAAKyG,YAAYulN,sBAEnC5O,EAAmB7gN,UAAU0vN,iCAAmC,WAC5D,OAAOlP,GAAO/8M,KAAKyG,YAAYylN,iCAEnC9O,EAAmB7gN,UAAU4vN,8BAAgC,WACzD,OAAOpP,GAAO/8M,KAAKyG,YAAY2lN,8BAEnChP,EAAmB7gN,UAAU8vN,yBAA2B,WACpD,OAAOtP,GAAO/8M,KAAKyG,YAAY6lN,yBAEnClP,EAAmB7gN,UAAUgwN,yBAA2B,WACpD,OAAOxP,GAAO/8M,KAAKyG,YAAYonJ,yBAEnCuvD,EAAmB7gN,UAAUiwN,+BAAiC,WAC1D,OAAOzP,GAAO/8M,KAAKyG,YAAYgmN,+BAEnCrP,EAAmB7gN,UAAUmwN,aAAe,WACxC,OAAO3P,GAAO/8M,KAAKyG,YAAYkmN,aAEnCvP,EAAmB7gN,UAAUqwN,sCAAwC,WACjE,OAAO7P,GAAO/8M,KAAKyG,YAAYomN,sCAEnCzP,EAAmB7gN,UAAUuwN,gCAAkC,WAC3D,OAAO9sN,KAAKyG,YAAYsmN,0BAE5B3P,EAAmB7gN,UAAUywN,8BAAgC,WACzD,OAAOvsH,EAAOzgG,KAAKyG,YAAYwmN,4BAA8BjtN,KAAKyG,YAAYwmN,2BAA6B77G,GAAUG,mBAEzH6rG,EAAmB7gN,UAAU2wN,yBAA2B,WACpD,OAAOnQ,GAAO/8M,KAAKyG,YAAY0mN,yBAEnC/P,EAAmB7gN,UAAU6wN,cAAgB,WAEzC,OAAIptN,KAAKioN,oBAGFlL,GAAO/8M,KAAKyG,YAAY4mN,cAEnCjQ,EAAmB7gN,UAAU+wN,8BAAgC,WACzD,OAAOvQ,GAAO/8M,KAAKyG,YAAY8mN,8BAEnCnQ,EAAmB7gN,UAAUyzI,0BAA4B,WACrD,OAAO+sE,GAAO/8M,KAAKyG,YAAY+mN,0BAEnCpQ,EAAmB7gN,UAAUkxN,yBAA2B,WACpD,OAAO1Q,GAAO/8M,KAAKyG,YAAYinN,yBAEnCtQ,EAAmB7gN,UAAUoxN,0BAA4B,WACrD,OAAO5Q,GAAO/8M,KAAKyG,YAAYmnN,0BAEnCxQ,EAAmB7gN,UAAUsxN,kBAAoB,WAC7C,OAAO9Q,GAAO/8M,KAAKyG,YAAYqnN,kBAEnC1Q,EAAmB7gN,UAAUgiN,uBAAyB,WAClD,OAAOtrG,GAAeQ,aAAa5kG,EAAQmkG,YAAYwrG,uBAAyBzB,GAAO/8M,KAAKyG,YAAYsnN,uBAE5G3Q,EAAmB7gN,UAAUkiN,oBAAsB,WAC/C,OAAO1B,GAAO/8M,KAAKyG,YAAYunN,oBAEnC5Q,EAAmB7gN,UAAUmiN,mBAAqB,WAC9C,OAAO3B,GAAO/8M,KAAKyG,YAAYwnN,mBAEnC7Q,EAAmB7gN,UAAU2xN,uBAAyB,WAClD,IAAItmF,EAAY5nI,KAAKyG,YAAY0nN,oBACjC,OAAKvmF,EAGa,MAAdA,GAAmC,MAAdA,GAAmC,OAAdA,GAC1Cx/B,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,2FAA6F,+BAC/H,MAEJyhI,EANI,MAQfw1E,EAAmB7gN,UAAU6xN,iBAAmB,WAC5C,OAAOpuN,KAAKyG,YAAY4nN,eAE5BjR,EAAmB7gN,UAAU+xN,8BAAgC,WACzD,OAAOvR,GAAO/8M,KAAKyG,YAAY8nN,8BAEnCnR,EAAmB7gN,UAAUiyN,yBAA2B,WACpD,OAAOzR,GAAO/8M,KAAKyG,YAAYgoN,yBAEnCrR,EAAmB7gN,UAAUmyN,gCAAkC,WAC3D,OAAO3R,GAAO/8M,KAAKyG,YAAYkoN,gCAEnCvR,EAAmB7gN,UAAU6nK,SAAW,WACpC,OAAOpkK,KAAKyG,YAAYy9J,OAE5Bk5C,EAAmB7gN,UAAUqyN,YAAc,WACvC,OAAO5uN,KAAKyG,YAAYooN,UAE5BzR,EAAmB7gN,UAAUuyN,gBAAkB,WAC3C,OAAO9uN,KAAKyG,YAAYsoN,cAE5B3R,EAAmB7gN,UAAUyyN,gBAAkB,WAC3C,OAAOhvN,KAAKyG,YAAYwoN,cAE5B7R,EAAmB7gN,UAAU2yN,eAAiB,WAC1C,IAAIC,EAAepS,GAAO/8M,KAAKyG,YAAY0oN,cAC3C,QAAIA,GACOl8G,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo8G,mBAAoB,iBAMvFhS,EAAmB7gN,UAAU8yN,iBAAmB,WAC5C,OAAOtS,GAAO/8M,KAAKyG,YAAY6oN,iBAEnClS,EAAmB7gN,UAAUgzN,uBAAyB,WAClD,IAAIC,EAAsBxvN,KAAKyG,YAAY+oN,oBAC3C,OAAI/uH,EAAO+uH,IAAwBA,EAAsB,EAC9CxvN,KAAKyG,YAAY+oN,oBAErB1S,IAEXM,EAAmB7gN,UAAUkzN,mBAAqB,WAC9C,OAAOzvN,KAAKyG,YAAYipN,aAE5BtS,EAAmB7gN,UAAUyzL,uBAAyB,WAClD,OAAOhwL,KAAKyG,YAAYkpN,iBAE5BvS,EAAmB7gN,UAAUqzN,0BAA4B,WACrD,OAAO5vN,KAAKyG,YAAYqzL,wBAE5BsjB,EAAmB7gN,UAAUo3M,0BAA4B,WACrD,OAAO3zM,KAAKyG,YAAY8yF,wBAE5B6jH,EAAmB7gN,UAAUy3M,yBAA2B,WACpD,OAAOh0M,KAAKyG,YAAYopN,uBAE5BzS,EAAmB7gN,UAAUuzN,mBAAqB,WAC9C,OAAO/S,GAAO/8M,KAAKyG,YAAYspN,mBAEnC3S,EAAmB7gN,UAAUyzN,0BAA4B,WACrD,OAAOjT,GAAO/8M,KAAKyG,YAAY+3F,0BAEnC4+G,EAAmB7gN,UAAU4hN,4BAA8B,WACvD,OAAOpB,GAAO/8M,KAAKyG,YAAYwpN,4BAEnC7S,EAAmB7gN,UAAU2zN,uBAAyB,WAClD,OAAOnT,GAAO/8M,KAAKyG,YAAY0pN,uBAEnC/S,EAAmB7gN,UAAU6zN,oBAAsB,WAC/C,OAAOrT,GAAO/8M,KAAKyG,YAAY4pN,oBAEnCjT,EAAmB7gN,UAAU+zN,iBAAmB,WAC5C,OAAOtwN,KAAKyG,YAAYg0I,gBAE5B2iE,EAAmB7gN,UAAUg0N,uBAAyB,WAClD,OAAOxT,GAAO/8M,KAAKyG,YAAY+3F,0BAEnC4+G,EAAmB7gN,UAAUi0N,0BAA4B,WACrD,OAAOzT,GAAO/8M,KAAKyG,YAAYgqN,0BAEnCrT,EAAmB7gN,UAAUqvH,iBAAmB,WAC5C,OAAO5rH,KAAKyG,YAAY4yF,eAE5B+jH,EAAmB7gN,UAAUsuH,sBAAwB,WACjD,OAAO7qH,KAAKyG,YAAYiqN,oBAE5BtT,EAAmB7gN,UAAUo0N,uBAAyB,SAAUlxN,GAC5D,OAAIO,KAAKyG,YAAYmqN,qBACjB3tN,QAAQkD,KAAK,4EAA8E4tH,GAAWt0H,GAAQ,kBAEnGO,KAAKyG,YAAYmqN,qBAInB,QAATnxN,GAAkBO,KAAKyG,YAAYoqN,uBAC5B7wN,KAAKyG,YAAYoqN,uBAEf,UAATpxN,GAAoBO,KAAKyG,YAAYqqN,yBAC9B9wN,KAAKyG,YAAYqqN,8BAD5B,GAIJ1T,EAAmB7gN,UAAUw0N,oBAAsB,WAC/C,OAAOhU,GAAO/8M,KAAKyG,YAAYuqN,oBAEnC5T,EAAmB7gN,UAAU00N,6BAA+B,WACxD,OAAOlU,GAAO/8M,KAAKyG,YAAYyqN,6BAEnC9T,EAAmB7gN,UAAU40N,sBAAwB,WACjD,OAAOpU,GAAO/8M,KAAKyG,YAAY2qN,sBAEnChU,EAAmB7gN,UAAU4iI,wCAA0C,WACnE,OAAO49E,GAAO/8M,KAAKyG,YAAY4qN,wCAEnCjU,EAAmB7gN,UAAU+0N,gBAAkB,WAC3C,OAAOtxN,KAAKyG,YAAY8qN,aAE5BnU,EAAmB7gN,UAAUi1N,yBAA2B,WACpD,OAAOxxN,KAAKyG,YAAYgrN,mBAE5BrU,EAAmB7gN,UAAUm1N,sCAAwC,WACjE,OAAO1xN,KAAKyG,YAAYkrN,gCAE5BvU,EAAmB7gN,UAAUq1N,4BAA8B,WACvD,OAAO5xN,KAAKyG,YAAYorN,sBAE5BzU,EAAmB7gN,UAAUu1N,0BAA4B,WACrD,OAAO9xN,KAAKyG,YAAYsrN,uBAE5B3U,EAAmB7gN,UAAUy1N,wBAA0B,WACnD,OAAOhyN,KAAKyG,YAAYwrN,kBAE5B7U,EAAmB7gN,UAAU21N,wBAA0B,WACnD,OAAOlyN,KAAKyG,YAAY0rN,qBAE5B/U,EAAmB7gN,UAAU61N,qBAAuB,WAChD,OAAOpyN,KAAKyG,YAAY4rN,kBAE5BjV,EAAmB7gN,UAAU8zL,iBAAmB,WAC5C,OAAOrwL,KAAKyG,YAAY2pL,cAE5BgtB,EAAmB7gN,UAAU+1N,4BAA8B,WACvD,OAAOtyN,KAAKyG,YAAY8rN,sBAE5BnV,EAAmB7gN,UAAUi2N,uBAAyB,WAClD,OAAOxyN,KAAKyG,YAAYgsN,iBAE5BrV,EAAmB7gN,UAAUm2N,0BAA4B,WACrD,OAAO1yN,KAAKyG,YAAYksN,oBAE5BvV,EAAmB7gN,UAAUq2N,qBAAuB,WAChD,OAAO5yN,KAAKyG,YAAYosN,eAE5BzV,EAAmB7gN,UAAU2+K,gBAAkB,WAC3C,OAAQl7K,KAAKyG,YAAYm7I,UAAY,GAAGjkJ,YAE5Cy/M,EAAmB7gN,UAAU87G,WAAa,WACtC,IAAIoe,EAAgBsmF,GAAO/8M,KAAKyG,YAAYygM,UAC5C,QAAIzwE,GACOxjB,GAAeM,iBAAiB1kG,EAAQmkG,YAAYgF,kBAAmB,cAItFolG,EAAmB7gN,UAAUu2N,aAAe,WACxC,OAAO/V,GAAO/8M,KAAKyG,YAAYywH,aAEnCkmF,EAAmB7gN,UAAUw2N,yBAA2B,WACpD,OAAOhW,GAAO/8M,KAAKyG,YAAYusN,yBAEnC5V,EAAmB7gN,UAAU02N,YAAc,WACvC,OAAOlW,GAAO/8M,KAAKyG,YAAYysN,YAEnC9V,EAAmB7gN,UAAU42N,8BAAgC,WACzD,OAAOpW,GAAO/8M,KAAKyG,YAAY2sN,8BAEnChW,EAAmB7gN,UAAUy3I,8BAAgC,WACzD,OAAOh0I,KAAKyG,YAAY4sN,wBAE5BjW,EAAmB7gN,UAAU23I,mCAAqC,WAC9D,OAAOl0I,KAAKyG,YAAY6sN,6BAE5BlW,EAAmB7gN,UAAUg3N,uBAAyB,WAClD,OAAOvzN,KAAKyG,YAAY+sN,iBAE5BpW,EAAmB7gN,UAAUk3N,4BAA8B,WACvD,OAAOzzN,KAAKyG,YAAYitN,sBAE5BtW,EAAmB7gN,UAAUo3N,+BAAiC,WAC1D,OAAO3zN,KAAKyG,YAAYmtN,yBAE5BxW,EAAmB7gN,UAAUs3N,iCAAmC,WAC5D,OAAO7zN,KAAKyG,YAAYqtN,2BAE5B1W,EAAmB7gN,UAAUw3N,gCAAkC,WAC3D,OAAO/zN,KAAKyG,YAAYutN,0BAE5B5W,EAAmB7gN,UAAU03N,4BAA8B,WACvD,OAAOhX,GAAaj9M,KAAKyG,YAAYytN,yBAA0BtX,KAEnEQ,EAAmB7gN,UAAU43N,8BAAgC,WACzD,OAAOnX,GAAch9M,KAAKyG,YAAY2tN,2BAA4BvX,KAEtEO,EAAmB7gN,UAAU83N,gCAAkC,WAC3D,OAAOtX,GAAO/8M,KAAKyG,YAAY6tN,gCAEnClX,EAAmB7gN,UAAUg4N,kCAAoC,WAC7D,OAAOxX,GAAO/8M,KAAKyG,YAAY+tN,kCAEnCpX,EAAmB7gN,UAAUk4N,gBAAkB,WAC3C,OAAOz0N,KAAKyG,YAAYiuN,UAE5BtX,EAAmB7gN,UAAUo4N,yBAA2B,WACpD,OAAO30N,KAAKyG,YAAYmuN,sBAE5BxX,EAAmB7gN,UAAUs4N,uBAAyB,WAClD,OAAO70N,KAAKyG,YAAYquN,qBAE5B1X,EAAmB7gN,UAAUw4N,qBAAuB,WAChD,OAAO/0N,KAAKyG,YAAYuuN,mBAE5B5X,EAAmB7gN,UAAU04N,eAAiB,WAE1C,OAAOj1N,KAAKyG,YAAYyuN,aAAe,CAAC,aAAc,cAAe,YAAa,WAAY,aAElG9X,EAAmB7gN,UAAU44N,2BAA6B,WACtD,OAAOn1N,KAAKyG,YAAY2uN,qBAE5BhY,EAAmB7gN,UAAU84N,wBAA0B,WACnD,OAAO50H,EAAOzgG,KAAKyG,YAAY6uN,sBAAwBt1N,KAAKyG,YAAY6uN,qBAAuB,MAEnGlY,EAAmB7gN,UAAU4pG,YAAc,SAAU1pG,EAAKC,EAAO64N,QAC/C,IAAVA,IAAoBA,GAAQ,GAChC,IAAIC,EAAoBx1N,KAAKyG,YACzBK,EAAgB0uN,EAAkB/4N,GACtC,GAAI84N,GAASzuN,IAAkBpK,EAAO,CAClC84N,EAAkB/4N,GAAOC,EACzB,IAAIknH,EAAU,CACVnkH,KAAMhD,EACNoK,aAAcnK,EACdoK,cAAeA,GAEnB9G,KAAKq9M,qBAAqB5wM,cAAcm3G,KAGhDw5F,EAAmB7gN,UAAUi0G,iBAAmB,SAAU/zG,EAAKg0G,GAC3DzwG,KAAKq9M,qBAAqB7sG,iBAAiB/zG,EAAKg0G,IAEpD2sG,EAAmB7gN,UAAUm0G,oBAAsB,SAAUj0G,EAAKg0G,GAC9DzwG,KAAKq9M,qBAAqB3sG,oBAAoBj0G,EAAKg0G,IAEvD2sG,EAAmB7gN,UAAU0+H,uBAAyB,WAClD,QAASj7H,KAAKyG,YAAYgvN,sBAE9BrY,EAAmB7gN,UAAUm5N,mBAAqB,WAC9C,IAAIh5N,EAAQsD,KAAKyG,YAAYkvN,gBAC7B,OAAgB,MAATj5N,GAAiBA,GAAS,EAAIA,EAAQ,IAGjD0gN,EAAmB7gN,UAAUq5N,gBAAkB,WAC3C,MAA6C,kBAAlC51N,KAAKyG,YAAYsnJ,aACjB/tJ,KAAKyG,YAAYsnJ,aAErB/tJ,KAAK61N,aAAa,GAAI,iBAEjCzY,EAAmB7gN,UAAUu5N,yBAA2B,WACpD,MAAsD,kBAA3C91N,KAAKyG,YAAYsvN,sBACjB/1N,KAAKyG,YAAYsvN,sBAErB/1N,KAAK61N,aAAa,GAAI,iBAEjCzY,EAAmB7gN,UAAUy5N,qBAAuB,WAChD,MAAkD,kBAAvCh2N,KAAKyG,YAAYwvN,kBACjBj2N,KAAKyG,YAAYwvN,kBAErBj2N,KAAK41N,mBAEhBxY,EAAmB7gN,UAAU25N,qBAAuB,WAChD,MAAkD,kBAAvCl2N,KAAKyG,YAAY0vN,kBACjBn2N,KAAKyG,YAAY0vN,kBAErBn2N,KAAK41N,mBAEhBxY,EAAmB7gN,UAAU65N,0BAA4B,WACrD,MAAuD,kBAA5Cp2N,KAAKyG,YAAY4vN,uBACjBr2N,KAAKyG,YAAY4vN,uBAErBr2N,KAAKg2N,wBAEhB5Y,EAAmB7gN,UAAU+5N,wBAA0B,WACnD,MAAwD,oBAA7Ct2N,KAAKyG,YAAY6vN,yBACjBt2N,KAAKyG,YAAY6vN,2BAIhClZ,EAAmB7gN,UAAUg6N,uBAAyB,SAAU/jN,GAC5D,MAAuD,oBAA5CxS,KAAKyG,YAAY8vN,wBACjBv2N,KAAKyG,YAAY8vN,uBAAuB/jN,IAIvD4qM,EAAmB7gN,UAAU0vK,oBAAsB,WAC/C,IAAID,EAAmBhsK,KAAKyG,YAAYulK,iBACxC,OAAIvrE,EAAOurE,IACHA,EAAmB,GACnB/oK,QAAQkD,KAAK,wDAEV+O,KAAKuM,IAAI,IAAKuqJ,IAElB,MAEXoxC,EAAmB7gN,UAAU2vK,oBAAsB,WAC/C,OAAO6wC,GAAO/8M,KAAKyG,YAAYslK,oBAEnCqxC,EAAmB7gN,UAAUi6N,4CAA8C,WACvE,OAAOzZ,GAAO/8M,KAAKyG,YAAYgwN,4CAEnCrZ,EAAmB7gN,UAAU+nM,YAAc,WAGvC,IAAI91L,EAAS,KAIb,OAHIxO,KAAKyG,YAAY69L,aAAe7jG,EAAOzgG,KAAKyG,YAAY69L,eACxD91L,EAASxO,KAAKyG,YAAY69L,eAE1B91L,GAAUiyF,EAAOjyF,GACVA,EAEJ7B,UAEXywM,EAAmB7gN,UAAU+5G,eAAiB,WAC1C,IAAID,EAAcr2G,KAAKyG,YAAY4vG,YACnC,GAAI5V,EAAO4V,IAAgBA,EAAcmnG,EAAqBkZ,cAC1D,OAAO12N,KAAKyG,YAAY4vG,YAE5B,IAAIsgH,EAAc32N,KAAK61N,aAAa,KAAM,sBAC1C,OAAOp1H,EAAOk2H,GAAezhN,KAAKuM,IAAIk1M,EAAanZ,EAAqBkZ,eAAiBlZ,EAAqBkZ,eAElHtZ,EAAmB7gN,UAAUi6G,eAAiB,WAC1C,OAAIx2G,KAAKyG,YAAY8vG,aAAev2G,KAAKyG,YAAY8vG,YAAcinG,EAAqBkZ,cAC7E12N,KAAKyG,YAAY8vG,YAErB,MAEX6mG,EAAmB7gN,UAAUmgJ,YAAc,WACvC,MAAyC,kBAA9B18I,KAAKyG,YAAYmwN,UAAyB52N,KAAKyG,YAAYmwN,SAAWpZ,EAAqBkZ,cAC3F,IAEJ12N,KAAKyG,YAAYmwN,UAE5BxZ,EAAmB7gN,UAAUs6N,aAAe,WACxC,IAAIC,EAAY92N,KAAKyG,YAAYqwN,UAUjC,MATyB,kBAAdA,EACHA,EAAY,IACZ1uH,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,+CAAiD,2BAC1FnG,KAAKyG,YAAYqwN,UAAYA,EAAY,GAI7CA,EAAY1lH,GAAUC,gBAEnBylH,GAEX1Z,EAAmB7gN,UAAUw6N,qBAAuB,WAChD,IAAIC,EAAeh3N,KAAK62N,eACpBz7I,EAAmBp7E,KAAKi3N,uBAC5B,OAAOD,EAAe57I,GAK1BgiI,EAAmB7gN,UAAUgmJ,kBAAoB,WAC7C,GAA2B,MAAvBviJ,KAAKk3N,eAAwB,CAC7B,IAAIC,EAA4D,kBAApCn3N,KAAKyG,YAAYywN,gBAA+Bl3N,KAAKyG,YAAYywN,gBAAkB,EAC3GA,EAAiBC,EAAiBn3N,KAAKyG,YAAYywN,eAAiB30E,KAClD,MAAlB20E,IACAl3N,KAAKk3N,eAAiBA,EACtBl3N,KAAKq0G,aAAa5nG,cAAc,CAC5BhN,KAAMktH,GAAOqD,iCAIzB,OAAOhwH,KAAKk3N,gBAEhB9Z,EAAmB7gN,UAAUmhN,mBAAqB,WAG9C,IAAIn+M,EAAUS,KAAKyG,YACflH,EAAQmoN,8BACRzkN,QAAQkD,KAAK,iGAEb5G,EAAQkxN,yBACRxtN,QAAQkD,KAAK,4JAEb5G,EAAQk7I,iBACRx3I,QAAQkD,KAAK,2HACR5G,EAAQ85F,gBACT95F,EAAQ85F,cAAgB,IAEgB,MAAxC95F,EAAQ85F,cAAcohD,iBACtBl7I,EAAQ85F,cAAcohD,gBAAiB,IAG3Cl7I,EAAQ63N,gBACRn0N,QAAQkD,KAAK,uKAEjB,IAAIkxN,EAAuB,SAAUC,EAASC,EAASlyM,GAC3B,MAApB9lB,EAAQ+3N,KACRr0N,QAAQkD,KAAK,0BAA4Bkf,EAAU,MAAQiyM,EAAU,gEAAkEC,EAAU,cACzH,MAApBh4N,EAAQg4N,KACRh4N,EAAQg4N,GAAWh4N,EAAQ+3N,MAUvC,GANAD,EAAqB,wBAAyB,6BAA8B,UAC5EA,EAAqB,mBAAoB,gBAAiB,WACtD93N,EAAQi4N,kBAAoBj4N,EAAQk4N,kBACpCx0N,QAAQkD,KAAK,wMAEjBkxN,EAAqB,+BAAgC,4BAA6B,UAC9E93N,EAAQm4N,uBAAyBn4N,EAAQo4N,6BAA+Bp4N,EAAQq4N,+BAAgC,CAChH30N,QAAQkD,KAAK,mJACblD,QAAQkD,KAAK,yKACblD,QAAQkD,KAAK,kCACblD,QAAQkD,KAAK,2CACblD,QAAQkD,KAAK,2CACblD,QAAQkD,KAAK,wBACblD,QAAQkD,KAAK,iCACblD,QAAQkD,KAAK,sCACblD,QAAQkD,KAAK,qCACblD,QAAQkD,KAAK,SACblD,QAAQkD,KAAK,0HACR5G,EAAQu6L,yBACTv6L,EAAQu6L,uBAAyB,IAErC,IAAI12L,EAAS7D,EAAQu6L,uBACjBv6L,EAAQm4N,wBACRt0N,EAAOy0N,cAAgBt4N,EAAQm4N,uBAE/Bn4N,EAAQo4N,8BACRv0N,EAAO00N,oBAAsBv4N,EAAQo4N,6BAErCp4N,EAAQq4N,iCACRx0N,EAAO20N,uBAAyBx4N,EAAQq4N,gCAG5Cr4N,EAAQovN,+BACR1rN,QAAQkD,KAAK,iRAEb5G,EAAQy4N,0BAA4Bz4N,EAAQy4N,yBAAyBxjF,aACrEvxI,QAAQkD,KAAK,6MACb5G,EAAQqoN,qBAAsB,GAE9BroN,EAAQomK,uBACR1iK,QAAQkD,KAAK,sOAEb5G,EAAQstN,sCACR5pN,QAAQkD,KAAK,mSACb5G,EAAQqoN,qBAAsB,GAE9BroN,EAAQ2hN,4BACRj+M,QAAQkD,KAAK,yPACb5G,EAAQqoN,qBAAsB,GAE9BroN,EAAQqxN,qBACR3tN,QAAQkD,KAAK,+IAEb5G,EAAQ04N,gCACRh1N,QAAQkD,KAAK,8EACb5G,EAAQopN,+BAAgC,IAGhDvL,EAAmB7gN,UAAUohN,mBAAqB,WAC1C39M,KAAKq4G,cACLr4G,KAAKk4N,sBAGb9a,EAAmB7gN,UAAU27N,mBAAqB,WAC1Cl4N,KAAK+3G,qBACDpX,EAAQ3gG,KAAKsxN,oBACbruN,QAAQkD,KAAK,wKAIjBnG,KAAKo+M,yBACDz9G,EAAQ3gG,KAAKwxN,6BACbvuN,QAAQkD,KAAK,oLAGbw6F,EAAQ3gG,KAAK8xN,8BACb7uN,QAAQkD,KAAK,8LAKzBi3M,EAAmB7gN,UAAUg0I,kBAAoB,WAC7C,GAAIvwI,KAAKyG,YAAY6pI,eACjB,OAAOtwI,KAAKyG,YAAY6pI,eAE5B,IAAI52C,EAAa15F,KAAKyG,YAAYizF,WAClC,OAAO,SAAUj9F,EAAK6qG,GAClB,OAAO5N,GAAcA,EAAWj9F,GAAOi9F,EAAWj9F,GAAO6qG,IAIjE81G,EAAmB7gN,UAAU2hN,mBAAqB,SAAUj5F,EAAW79G,GAEnE,IAAIpH,KAAK4K,UAAT,CAGA,IAAIutN,EAAqB9rE,GAAcI,oBAAoBxnC,GACP,oBAAzCjlH,KAAKyG,YAAY0xN,IACxBn4N,KAAKyG,YAAY0xN,GAAoB/wN,KAI7Cg2M,EAAmB7gN,UAAU06N,qBAAuB,WAChD,OAAKj3N,KAAKyG,YAAYw5I,WAAat/C,EAAQ3gG,KAAKyG,YAAYw5I,WACjDjgJ,KAAKo4N,sBAEZp4N,KAAKyG,YAAYw5I,WAAajgJ,KAAKi7I,UAAUj7I,KAAKyG,YAAYw5I,WACvDjgJ,KAAKyG,YAAYw5I,WAE5Bh9I,QAAQkD,KAAK,uEACNnG,KAAKo4N,wBAEhBhb,EAAmB7gN,UAAU87N,oBAAsB,SAAUttN,EAASutN,GAKlE,QADsB,IAAlBA,IAA4BA,GAAgB,GACH,oBAAlCt4N,KAAKyG,YAAY8xN,aAA6B,CACrD,GAAID,EACA,MAAO,CAAE19I,OAAQ56E,KAAKo4N,sBAAuBpmC,WAAW,GAE5D,IAAI5uL,EAAS,CACToP,KAAMzH,EACNxK,KAAMwK,EAAQxK,KACdqJ,IAAK5J,KAAKyG,YAAYmD,IACtBy/F,QAASrpG,KAAKyG,YAAY4iG,SAE1BzuB,EAAS56E,KAAKyG,YAAY8xN,aAAan1N,GAC3C,GAAIpD,KAAKi7I,UAAUrgE,GAIf,OAHe,IAAXA,GACAwtB,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,mHAAqH,oBAE3J,CAAEy0E,OAAQ1lE,KAAKuM,IAAI,EAAGm5D,GAASo3G,WAAW,GAGzD,GAAIjnL,EAAQ07J,QAAUzmK,KAAKkvN,iBACvB,OAAIlvN,KAAKi7I,UAAUj7I,KAAKyG,YAAY+xN,iBACzB,CAAE59I,OAAQ56E,KAAKyG,YAAY+xN,gBAAiBxmC,WAAW,GAE3D,CAAEp3G,OAAQ+hI,GAA2B3qB,WAAW,GAE3D,IAAI52G,EAAmBp7E,KAAKo4N,sBACxBn4E,EAAYjgJ,KAAKyG,YAAYw5I,WAAajgJ,KAAKi7I,UAAUj7I,KAAKyG,YAAYw5I,WAAajgJ,KAAKyG,YAAYw5I,UAAY7kE,EACpHq9I,EAAeh4H,EAAOw/C,GAAa/qI,KAAKsM,IAAI45D,EAAkB6kE,GAAa7kE,EAC/E,GAAIp7E,KAAKm/I,iBAAiBpmB,wBAAyB,CAC/C,GAAIu/F,EACA,MAAO,CAAE19I,OAAQqlE,EAAW+xC,WAAW,GAE3C,IAAIx9C,EAAax0I,KAAK04N,qBAAqBC,yBAAyB5tN,GAGpE,MAAO,CAAE6vE,OAAQ1lE,KAAKuM,IAAI+yH,EAAYikF,GAAezmC,WAAW,GAEpE,MAAO,CAAEp3G,OAAQqlE,EAAW+xC,WAAW,IAE3CorB,EAAmB7gN,UAAUq8N,mBAAqB,WAC9C,MAAgD,oBAAlC54N,KAAKyG,YAAY8xN,cAEnCnb,EAAmB7gN,UAAUs8N,kBAAoB,WAC7C,OAAO74N,KAAK61N,aAAa,GAAI,mBAEjCzY,EAAmB7gN,UAAUu8N,oBAAsB,WAC/C,OAAO94N,KAAK8kM,YAAYg0B,uBAE5B1b,EAAmB7gN,UAAU0+I,UAAY,SAAUv+I,GAC/C,OAAQuV,MAAMvV,IAA2B,kBAAVA,GAAsBmgC,SAASngC,IAElE0gN,EAAmB7gN,UAAUs5N,aAAe,SAAUvuH,EAAcyxH,GAChE,IAAI/uL,EAAQhqC,KAAK8kM,YAAYC,WAAW/6J,MACxC,OAAIA,GAAuC,IAA9BA,EAAMjpC,QAAQ,YAChBf,KAAK8kM,YAAYk0B,gBAAgBhvL,EAAO+uL,GAE5CzxH,GAEX81G,EAAmB7gN,UAAU67N,oBAAsB,WAC/C,OAAOp4N,KAAK61N,aAAanZ,GAAoB,cAGjDU,EAAmBsZ,cAAgB,GACnCtZ,EAAmB6b,mBAAqB,eACxC7b,EAAmB8b,kCAAoC,4BACvD9b,EAAmB+b,yCAA2C,kCAC9D/b,EAAmBgc,yBAA2B,oBAC9Chc,EAAmBic,8BAAgC,yBACnDjc,EAAmBkc,yBAA2B,oBAC9Clc,EAAmBmc,+BAAiC,yBACpDnc,EAAmBoc,2BAA6B,qBAChDpc,EAAmBqc,sBAAwB,gBAC3Crc,EAAmBsc,6BAA+B,uBAClDtc,EAAmBuc,wBAA0B,kBAC7Cvc,EAAmBwc,gCAAkC,8BACrDxc,EAAmByc,+BAAiC,yBACpDzc,EAAmB0c,6BAA+B,wBAClD1c,EAAmB2c,kCAAoC,4BACvD3c,EAAmB4c,uBAAyB,kBAC5C5c,EAAmB6c,iCAAmC,8BACtD7c,EAAmB8c,mBAAqB,cACxC9c,EAAmB+c,mBAAqB,cACxC/c,EAAmBgd,oBAAsB,eACzChd,EAAmBid,kBAAoB,cACvCjd,EAAmBQ,gBAAkB,YACrCR,EAAmBkd,2BAA6B,sBAChDld,EAAmBmd,yBAA2B,mBAC9Cnd,EAAmBod,+BAAiC,wBACpDpd,EAAmBqd,qBAAuB,gBAC1Crd,EAAmBsd,6BAA+B,uBAClDtd,EAAmBud,qBAAuB,eAC1Cvd,EAAmBwd,wBAA0B,kBAC7Cxd,EAAmByd,uBAAyB,kBAC5Czd,EAAmB0d,mBAAqB,cACxC1d,EAAmB2d,eAAiB,WACpC3d,EAAmB4d,kBAAoB,cACvC5d,EAAmB6d,wBAA0B,mBAC7C7d,EAAmB8d,mCAAqC,6BACxD9d,EAAmB+d,iCAAmC,4BACtD/d,EAAmBge,4BAA8B,sBACjDhe,EAAmBie,yBAA2B,mBAC9Cje,EAAmBke,gCAAkC,0BACrDle,EAAmBme,iCAAmC,2BACtDne,EAAmBoe,uBAAyB,kBAC5Cpe,EAAmBqe,iCAAmC,yBACtDre,EAAmBse,qCAAuC,8BAC1Dte,EAAmBue,2BAA6B,sBAChDve,EAAmBwe,6BAA+B,uBAClDxe,EAAmBye,kCAAoC,2BACvDze,EAAmB0e,2CAA6C,iCAChE1e,EAAmB2e,sCAAwC,+BAC3D3e,EAAmB4e,0BAA4B,oBAC/C5e,EAAmB6e,+BAAiC,wBACpD1f,GAAa,CACT3tG,GAAU,gBACXwuG,EAAmB7gN,UAAW,mBAAe,GAChDggN,GAAa,CACT3tG,GAAU,qBACXwuG,EAAmB7gN,UAAW,wBAAoB,GACrDggN,GAAa,CACT3tG,GAAU,iBACXwuG,EAAmB7gN,UAAW,oBAAgB,GACjDggN,GAAa,CACT3tG,GAAU,gBACXwuG,EAAmB7gN,UAAW,mBAAe,GAChDggN,GAAa,CACT3tG,GAAU,yBACXwuG,EAAmB7gN,UAAW,4BAAwB,GACzDggN,GAAa,CACTC,GAAU,EAAGvtG,GAAU,YAAautG,GAAU,EAAGvtG,GAAU,eAC5DmuG,EAAmB7gN,UAAW,SAAU,MAC3CggN,GAAa,CACT/tG,IACD4uG,EAAmB7gN,UAAW,UAAW,MAC5CggN,GAAa,CACTjuG,IACD8uG,EAAmB7gN,UAAW,OAAQ,MACzC6gN,EAAqBI,EAAuBjB,GAAa,CACrD7tG,GAAK,uBACN0uG,GACIA,EAzxC4B,GAwyCnC8e,GAA6B,WAC7B,SAASA,EAAYC,EAAgBC,GAOjCp8N,KAAKw7G,QAAS,EAGdx7G,KAAKq8N,iBAAmB,GAExBr8N,KAAKs8N,WAAa,GAClBt8N,KAAKm8N,eAAiBA,EACtBn8N,KAAKu8N,SAAW,CACZxxN,QAASqxN,EACTt0N,SAAU,MAEd9H,KAAKs8N,WAAWF,EAASpzK,IAAMhpD,KAAKu8N,SAiIxC,OA5HAL,EAAY3/N,UAAUigO,YAAc,WAChCx8N,KAAKw7G,QAAS,GAElB0gH,EAAY3/N,UAAUkgO,SAAW,WAC7B,OAAOz8N,KAAKw7G,QAEhB0gH,EAAY3/N,UAAUmgO,4BAA8B,SAAUC,EAAUj3N,GACpE,GAAIi3N,EAAS70N,SACT,IAAK,IAAIvK,EAAI,EAAGA,EAAIo/N,EAAS70N,SAASrK,OAAQF,IAC1CyC,KAAK08N,4BAA4BC,EAAS70N,SAASvK,GAAImI,GAG/DA,EAASi3N,EAAS5xN,UAEtBmxN,EAAY3/N,UAAUqgO,2BAA6B,SAAU7xN,EAASrF,EAAUm3N,GAC5E,GAAI9xN,EAAQm+J,mBACR,IAAK,IAAI3rK,EAAI,EAAGA,EAAIwN,EAAQm+J,mBAAmBzrK,OAAQF,IAAK,CACxD,IAAImyK,EAAY3kK,EAAQm+J,mBAAmB3rK,GACvCmyK,EAAUxG,mBACVlpK,KAAK48N,2BAA2B7xN,EAAQm+J,mBAAmB3rK,GAAImI,EAAUm3N,GAEpEA,GACLn3N,EAASgqK,GAIrBhqK,EAASqF,IAIbmxN,EAAY3/N,UAAUugO,6BAA+B,SAAUp3N,EAAUq3N,QAC3C,IAAtBA,IAAgCA,GAAoB,GACpD/8N,KAAKw7G,OAGLx7G,KAAK08N,4BAA4B18N,KAAKu8N,SAAU72N,GAIhD1F,KAAK48N,2BAA2B58N,KAAKu8N,SAASxxN,QAASrF,EAAUq3N,IAGzEb,EAAY3/N,UAAUygO,oBAAsB,SAAUt3N,GAClDA,EAAS1F,KAAKu8N,SAASxxN,UAE3BmxN,EAAY3/N,UAAU0gO,gBAAkB,SAAUlyN,GAC9C,IAAIk7G,EAAUl7G,EACVmyN,EAAgB,EACpB,OAAQl9N,KAAKs8N,WAAWr2G,EAAQj9D,IAAK,CACjC,IAAIm0K,EAAW,CACXpyN,QAASk7G,EACTn+G,SAAU,MAEd9H,KAAKs8N,WAAWr2G,EAAQj9D,IAAMm0K,EAC9BD,IACAj3G,EAAUA,EAAQpjH,OAEtB,OAAOq6N,GAEXhB,EAAY3/N,UAAU6gO,mBAAqB,SAAUryN,EAASowF,GAC1D,IAAIp7F,EAAQC,KACZ,GAAKA,KAAKm8N,gBAAmBhhI,EAA7B,CAGA,IAAI8qB,EAAUl7G,EACd,MAAOk7G,EAGEjmH,KAAKq8N,iBAAiBp2G,EAAQj9D,MAC/BhpD,KAAKq8N,iBAAiBp2G,EAAQj9D,IAAM,IAExCmyC,EAAQ58F,SAAQ,SAAUmmC,GAAO,OAAO3kC,EAAMs8N,iBAAiBp2G,EAAQj9D,IAAItkB,EAAI2yE,UAAW,KAC1F4O,EAAUA,EAAQpjH,SAG1Bq5N,EAAY3/N,UAAU8gO,cAAgB,SAAUtyN,EAASmyN,GAErD,IADA,IAAIj3G,EAAUl7G,EACLxN,EAAI,EAAGA,EAAI2/N,EAAe3/N,IAAK,CACpC,IAAI+/N,EAAWt9N,KAAKs8N,WAAWr2G,EAAQj9D,IACnCu0K,EAAav9N,KAAKs8N,WAAWr2G,EAAQpjH,OAAOmmD,IAC3Cu0K,EAAWz1N,WACZy1N,EAAWz1N,SAAW,IAE1By1N,EAAWz1N,SAASxI,KAAKg+N,GACzBr3G,EAAUA,EAAQpjH,SAM1Bq5N,EAAY3/N,UAAUihO,cAAgB,SAAUzyN,EAASowF,GACrD,GAAKpwF,IAAWA,EAAQ+pL,cAAxB,CAQA,IAAIooC,EAAgBl9N,KAAKi9N,gBAAgBlyN,GAEzC/K,KAAKq9N,cAActyN,EAASmyN,GAE5Bl9N,KAAKo9N,mBAAmBryN,EAASowF,KAErC+gI,EAAY3/N,UAAUkhO,QAAU,SAAU1yN,GACtC,OAAO/K,KAAKw7G,SAAWx7G,KAAKs8N,WAAWvxN,EAAQi+C,KAEnDkzK,EAAY3/N,UAAUmhO,uBAAyB,SAAU3yN,EAASwwF,GAC9D,IAAKv7F,KAAKm8N,eACN,OAAO5gI,EAEX,IAAIoiI,EAAkB39N,KAAKq8N,iBAAiBtxN,EAAQi+C,IAChDx6C,EAAS+sF,EAAahL,QAAO,SAAU7rD,GAAO,OAAOi5L,EAAgBj5L,EAAI2yE,YAC7E,OAAO7oG,GAEX0tN,EAAY3/N,UAAUqhO,0BAA4B,SAAU7yN,EAASwwF,GACjE,IAAKv7F,KAAKm8N,eACN,OAAO,KAEX,IAAIwB,EAAkB39N,KAAKq8N,iBAAiBtxN,EAAQi+C,IAChDx6C,EAAS+sF,EAAahL,QAAO,SAAU7rD,GAAO,OAAQi5L,EAAgBj5L,EAAI2yE,YAC9E,OAAO7oG,GAEJ0tN,EApJqB,GA6J5B2B,GAAoD,WACpD,IAAI55N,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDw5N,GAAsD,SAAUz8N,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Do5N,GAAgD,SAAU3wH,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvD4wH,GAAqC,SAAUn5N,GAE/C,SAASm5N,IACL,OAAkB,OAAXn5N,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAkT/D,OApTA69N,GAAYG,EAAqBn5N,GAIjCm5N,EAAoBzhO,UAAUqzG,SAAW,SAAUC,GAC/C7vG,KAAKwqG,OAASqF,EAActrG,OAAO,uBACnCvE,KAAKqgH,QACDrgH,KAAK8vG,mBAAmBiI,qBACxB/3G,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOkB,uBAAwB7tH,KAAKqgH,MAAM51G,KAAKzK,QAGlGg+N,EAAoBzhO,UAAU2I,KAAO,WACjClF,KAAK+0L,qBAAuB/0L,KAAK8vG,mBAAmBklF,yBACpDh1L,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOuC,mBAAoBlvH,KAAKi+N,cAAcxzN,KAAKzK,QAElGg+N,EAAoBzhO,UAAUi5L,oBAAsB,SAAUzqL,GAC1D/K,KAAKg2L,iBAAmBjrL,GAE5BizN,EAAoBzhO,UAAU24L,oBAAsB,WAChD,OAAOl1L,KAAKg2L,kBAEhBgoC,EAAoBzhO,UAAUyqM,iBAAmB,WAC7C,IAAIk3B,EAAgB,GAMpB,OALAv4H,EAAc3lG,KAAKk+N,eAAe,SAAUzhO,EAAKsO,GACzCA,GACAmzN,EAAc5+N,KAAKyL,MAGpBmzN,GAEXF,EAAoBzhO,UAAU4hO,gBAAkB,WAC5C,IAAI/gI,EAAe,GAMnB,OALAuI,EAAc3lG,KAAKk+N,eAAe,SAAUzhO,EAAKsO,GACzCA,GAAWA,EAAQxK,MACnB68F,EAAa99F,KAAKyL,EAAQxK,SAG3B68F,GAEX4gI,EAAoBzhO,UAAU6hO,0BAA4B,WACtD,IAAIr+N,EAAQC,KACZ2lG,EAAc3lG,KAAKk+N,eAAe,SAAUzhO,EAAKsO,GACzCA,GAAWA,EAAQmwF,QACnBn7F,EAAMm+N,cAAcnzN,EAAQi+C,SAAM3pD,OAK9C2+N,EAAoBzhO,UAAUu5L,mCAAqC,SAAUuoC,GAEzE,GAAKr+N,KAAK8vG,mBAAmBklF,0BAIzBh1L,KAAKk4I,SAASykC,YAAcvrE,GAAUU,2BAA1C,CAGA,IAAIwsH,EAAqBt+N,KAAKk4I,SAC1BkkF,EAAWkC,EAAmBC,cAC7BF,IACDA,EAAc,IAAInC,IAAY,EAAME,GACpCiC,EAAY7B,eAEhB6B,EAAYvB,8BAA6B,SAAU/xN,GAC3CA,IAAYqxN,GACZrxN,EAAQkpL,qCAUpB+pC,EAAoBzhO,UAAUiiO,uBAAyB,SAAUx1K,GAC7D,OAAOhpD,KAAKk+N,cAAcl1K,IAE9Bg1K,EAAoBzhO,UAAUs5L,gBAAkB,SAAU4oC,GACtD,IAAI1+N,EAAQC,KACR0+N,EAAkB,GAClBjpC,EAAe,EAiBnB,OAhBA9vF,EAAc3lG,KAAKk+N,eAAe,SAAUzhO,EAAKkiO,GAC7C,GAAIA,GAAgBA,EAAa31K,KAAOy1K,EAAsBz1K,GAAI,CAC9D,IAAIj+C,EAAUhL,EAAMm+N,cAAcS,EAAa31K,IAC/CysI,GAAgB1qL,EAAQ6pL,kBAAkB,CACtCl4E,UAAU,EACVg4E,gBAAgB,EAChBC,uBAAuB,IAEvB50L,EAAMg1L,sBAAwB4pC,EAAa97N,SAC3C67N,EAAgBC,EAAa97N,OAAOmmD,IAAM21K,EAAa97N,YAInE8iG,EAAc+4H,GAAiB,SAAUjiO,EAAKy+F,GAC1CA,EAAM+4F,mCAEHwB,GAEXuoC,EAAoBzhO,UAAU0hO,cAAgB,SAAU72N,GACpD,IAAI2D,EAAU3D,EAAMoL,KAEhBxS,KAAK+0L,sBAAwBhqL,EAAQmwF,QAGrCnwF,EAAQgpL,aACR/zL,KAAKk+N,cAAcnzN,EAAQi+C,IAAMj+C,EAGjC/K,KAAKk+N,cAAcnzN,EAAQi+C,SAAM3pD,IAGzC2+N,EAAoBzhO,UAAUuzL,cAAgB,SAAU/kL,EAAS0kL,GAC7DzvL,KAAK4+N,iBAAiB7zN,EAAS0kL,GAC/BzvL,KAAK6+N,iBAAiB9zN,IAa1BizN,EAAoBzhO,UAAUqiO,iBAAmB,SAAU7zN,EAAS0kL,GAChE,IAAIqvC,EAAwBr+H,EAAOgvF,IAAa1kL,EAAQi+C,KAAOymI,EAAQzmI,GACvE,GAAI81K,GAAyBrvC,EAAS,CAClC,IAAIsvC,EAAkBt+H,EAAOzgG,KAAKk+N,cAAczuC,EAAQzmI,KACpD+1K,IACA/+N,KAAKk+N,cAAczuC,EAAQzmI,IAAMymI,KAI7CuuC,EAAoBzhO,UAAUsiO,iBAAmB,SAAU9zN,GACnD01F,EAAOzgG,KAAKk+N,cAAcnzN,EAAQi+C,MAClCj+C,EAAQypL,yBAAwB,GAChCx0L,KAAKk+N,cAAcnzN,EAAQi+C,IAAMj+C,GAGjCA,EAAQypL,yBAAwB,IAGxCwpC,EAAoBzhO,UAAU8jH,MAAQ,WAClCrgH,KAAKwqG,OAAO3sF,IAAI,SAChB7d,KAAKk+N,cAAgB,GACrBl+N,KAAKg2L,iBAAmB,MAO5BgoC,EAAoBzhO,UAAUyiO,yBAA2B,WACrD,GAAIh/N,KAAKk4I,SAASykC,YAAcvrE,GAAUU,2BAA1C,CAIA,IAAIwsH,EAAqBt+N,KAAKk4I,SAC1B+mF,EAAgBX,EAAmBY,mBACvC,GAAsB,OAAlBD,EAAJ,CAIA,IAAIzwN,EAAS,GAkBb,OADA2wN,EAASF,GACFzwN,EArBHvL,QAAQkD,KAAK,uDANblD,QAAQkD,KAAK,0EAWjB,SAASg5N,EAAS5yM,GACd,IAAK,IAAIhvB,EAAI,EAAGmR,EAAI6d,EAAM9uB,OAAQF,EAAImR,EAAGnR,IAAK,CAC1C,IAAIiV,EAAO+Z,EAAMhvB,GACbiV,EAAKuhL,aACLvlL,EAAOlP,KAAKkT,GAKRA,EAAK0oF,OAAS1oF,EAAK1K,UACnBq3N,EAAS3sN,EAAK1K,aAQlCk2N,EAAoBzhO,UAAU6iO,YAAc,SAAUlnF,GAClDl4I,KAAKk4I,SAAWA,GAEpB8lF,EAAoBzhO,UAAUqqI,QAAU,WACpC,IAAIv9E,EAAQ,EAMZ,OALAs8C,EAAc3lG,KAAKk+N,eAAe,SAAUmB,EAAQt0N,GAC5CA,GACAs+C,OAGS,IAAVA,GAEX20K,EAAoBzhO,UAAU+iO,oBAAsB,SAAUC,QACrC,IAAjBA,IAA2BA,GAAe,GAC9C,IAAI75N,EAAW,SAAUqF,GAAW,OAAOA,EAAQwpL,gBAAe,IAC9DirC,EAAqBx/N,KAAKk4I,SAASykC,YAAcvrE,GAAUU,2BAC/D,GAAIytH,EAAc,CACd,IAAKC,EAED,YADAv8N,QAAQC,MAAM,wEAGlB,IAAIo7N,EAAqBt+N,KAAKk4I,SAC9BomF,EAAmBmB,uBAAuB/5N,QAG1CigG,EAAc3lG,KAAKk+N,eAAe,SAAUl1K,EAAIj+C,GAExCA,GACArF,EAASqF,MAIjB/K,KAAKqgH,QAGLm/G,GAAsBx/N,KAAK+0L,sBAC3B/0L,KAAK81L,qCAET,IAAI1uL,EAAQ,CACR3H,KAAMktH,GAAOwC,wBACbvlH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpC42N,EAAoBzhO,UAAUmjO,kBAAoB,SAAUH,GAExD,QADqB,IAAjBA,IAA2BA,GAAe,GAC1Cv/N,KAAKk4I,SAASykC,YAAcvrE,GAAUU,2BACtC,MAAM,IAAIn+F,MAAM,0DAA4D3T,KAAKk4I,SAASykC,WAE9F,IAAI2hD,EAAqBt+N,KAAKk4I,SAC1BxyI,EAAW,SAAUqF,GAAW,OAAOA,EAAQwpL,gBAAe,IAC9DgrC,EACAjB,EAAmBmB,uBAAuB/5N,GAG1C44N,EAAmBxzN,YAAYpF,GAG/B1F,KAAKk4I,SAASykC,YAAcvrE,GAAUU,4BAA8B9xG,KAAK+0L,sBACzE/0L,KAAK81L,qCAET,IAAI1uL,EAAQ,CACR3H,KAAMktH,GAAOwC,wBACbvlH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAMpC42N,EAAoBzhO,UAAUojO,WAAa,SAAU50N,EAAS60N,GACtD70N,GACAA,EAAQ6pL,kBAAkB,CAAEl4E,UAAU,EAAMg4E,gBAAiBkrC,KAOrE5B,EAAoBzhO,UAAUsjO,cAAgB,SAAUjgF,GACpD,IAAIptI,EAAOxS,KAAKk4I,SAAS4H,OAAOF,GAChC5/I,KAAK8/N,aAAattN,IAMtBwrN,EAAoBzhO,UAAUujO,aAAe,SAAU/0N,GAC/CA,GACAA,EAAQ6pL,kBAAkB,CAAEl4E,UAAU,EAAOg4E,gBAAgB,KAOrEspC,EAAoBzhO,UAAUwjO,YAAc,SAAU7gO,EAAO0gO,GACzD,IAAIptN,EAAOxS,KAAKk4I,SAAS4H,OAAO5gJ,GAChCc,KAAK2/N,WAAWntN,EAAMotN,IAE1B9B,GAAa,CACTlvH,GAAU,aACXovH,EAAoBzhO,UAAW,gBAAY,GAC9CuhO,GAAa,CACTlvH,GAAU,cACXovH,EAAoBzhO,UAAW,iBAAa,GAC/CuhO,GAAa,CACTlvH,GAAU,YACXovH,EAAoBzhO,UAAW,eAAW,GAC7CuhO,GAAa,CACTC,GAAU,EAAG9uH,GAAU,mBACxB+uH,EAAoBzhO,UAAW,WAAY,MAC9CuhO,GAAa,CACTxvH,IACD0vH,EAAoBzhO,UAAW,OAAQ,MAC1CyhO,EAAsBF,GAAa,CAC/BpvH,GAAK,wBACNsvH,GACIA,EArT6B,CAsTtCp3G,IAQEo5G,GAAsD,SAAU3+N,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Ds7N,GAA2B,WAC3B,SAASA,KAyKT,OAvKAA,EAAU1jO,UAAUujG,iBAAmB,SAAUs4C,GAGpB,qBAAdA,GACPn1I,QAAQC,MAAM,uEAElBlD,KAAKm/I,iBAAiBr/C,iBAAiBs4C,EAAW,QAEtD6nF,EAAU1jO,UAAUu2I,qBAAuB,SAAU53C,EAAOwhB,GAAY18G,KAAKm/I,iBAAiBrM,qBAAqB53C,EAAOwhB,EAAU,QACpIujH,EAAU1jO,UAAUk0I,eAAiB,SAAU7vI,EAAMq/G,GAAc,OAAOjgH,KAAKm/I,iBAAiB1O,eAAe7vI,EAAMq/G,IACrHggH,EAAU1jO,UAAUgkH,uBAAyB,SAAU3/G,GAAQ,OAAOZ,KAAKm/I,iBAAiB5+B,uBAAuB3/G,IACnHq/N,EAAU1jO,UAAUgzI,wBAA0B,SAAU7nI,EAAQmG,GAAY,OAAO7N,KAAKm/I,iBAAiB5P,wBAAwB7nI,EAAQmG,IAAa,IACtJoyN,EAAU1jO,UAAUqzI,6BAA+B,SAAUhL,EAAa/2H,GAAY,OAAO7N,KAAKm/I,iBAAiBvP,6BAA6BhL,EAAa/2H,IAAa,IAC1KoyN,EAAU1jO,UAAUwyI,UAAY,SAAUtyI,GAAO,OAAOuD,KAAKm/I,iBAAiB/kB,iBAAiB39H,IAC/FwjO,EAAU1jO,UAAU2uH,iBAAmB,SAAU9nH,GAAU,OAAOpD,KAAKm/I,iBAAiBj0B,iBAAiB9nH,EAAQ,QACjH68N,EAAU1jO,UAAUqsI,eAAiB,WAAc,OAAO5oI,KAAKm/I,iBAAiBvW,kBAChFq3F,EAAU1jO,UAAU+sI,iBAAmB,WAActpI,KAAKm/I,iBAAiB7V,iBAAiB,QAC5F22F,EAAU1jO,UAAUk2I,oBAAsB,WAAc,OAAOzyI,KAAKm/I,iBAAiB1M,uBACrFwtF,EAAU1jO,UAAUi2I,oBAAsB,SAAUF,GAActyI,KAAKm/I,iBAAiB3M,oBAAoBF,EAAY,QACxH2tF,EAAU1jO,UAAU81I,sBAAwB,WAAcryI,KAAKm/I,iBAAiB9M,sBAAsB,QACtG4tF,EAAU1jO,UAAU2jO,UAAY,WAAc,OAAOlgO,KAAKm/I,iBAAiB9W,iBAAmBroI,KAAKm/I,iBAAiB7W,kBACpH23F,EAAU1jO,UAAU8rI,cAAgB,WAAc,OAAOroI,KAAKm/I,iBAAiB9W,iBAC/E43F,EAAU1jO,UAAU+rI,eAAiB,WAAc,OAAOtoI,KAAKm/I,iBAAiB7W,kBAChF23F,EAAU1jO,UAAUk9H,qBAAuB,SAAU/0F,GAAO,OAAO1kC,KAAKm/I,iBAAiB1lB,qBAAqB/0F,IAC9Gu7L,EAAU1jO,UAAUgrI,sBAAwB,SAAU7iG,GAAO,OAAO1kC,KAAKm/I,iBAAiB5X,sBAAsB7iG,IAChHu7L,EAAU1jO,UAAUuqI,iBAAmB,SAAUrqI,EAAKs4G,GAAW/0G,KAAKm/I,iBAAiBrY,iBAAiBrqI,EAAKs4G,EAAS,QACtHkrH,EAAU1jO,UAAUwqI,kBAAoB,SAAU9mI,EAAM80G,GAAW/0G,KAAKm/I,iBAAiBpY,kBAAkB9mI,EAAM80G,EAAS,QAC1HkrH,EAAU1jO,UAAUyqI,gBAAkB,SAAUvqI,EAAKu4G,GAAUh1G,KAAKm/I,iBAAiBnY,gBAAgBvqI,EAAKu4G,EAAQ,QAClHirH,EAAU1jO,UAAU0qI,iBAAmB,SAAUhnI,EAAM+0G,GAAUh1G,KAAKm/I,iBAAiBlY,iBAAiBhnI,EAAM+0G,EAAQ,QACtHirH,EAAU1jO,UAAU4jO,cAAgB,WAAc,OAAOngO,KAAKm/I,iBAAiB3Y,wBAC/Ey5F,EAAU1jO,UAAUyhI,kBAAoB,WAAc,OAAOh+H,KAAKm/I,iBAAiBnhB,qBACnFiiG,EAAU1jO,UAAU8pI,wBAA0B,WAAc,OAAOrmI,KAAKm/I,iBAAiB9Y,2BACzF45F,EAAU1jO,UAAU6pI,0BAA4B,WAAc,OAAOpmI,KAAKm/I,iBAAiB/Y,6BAC3F65F,EAAU1jO,UAAU+pI,yBAA2B,WAAc,OAAOtmI,KAAKm/I,iBAAiB7Y,4BAC1F25F,EAAU1jO,UAAUw/H,uBAAyB,WAAc,OAAO/7H,KAAKm/I,iBAAiBpjB,0BACxFkkG,EAAU1jO,UAAU6jO,8BAAgC,WAAc,OAAOpgO,KAAKm/I,iBAAiBtiB,sBAC/FojG,EAAU1jO,UAAU6oI,WAAa,SAAU3oI,EAAK2nG,GACzB,kBAAR3nG,GAEPwG,QAAQkD,KAAK,+LACbnG,KAAKm/I,iBAAiB9Z,kBAAkB5oI,EAAK2nG,EAAS,QAGtDpkG,KAAKm/I,iBAAiB/Z,WAAW3oI,EAAK2nG,EAAS,QAGvD67H,EAAU1jO,UAAU8oI,kBAAoB,SAAU5B,EAAWr/B,GAAWpkG,KAAKm/I,iBAAiB9Z,kBAAkB5B,EAAWr/B,EAAS,QACpI67H,EAAU1jO,UAAUmnI,YAAc,SAAUC,EAAmBv/B,GAAWpkG,KAAKm/I,iBAAiBzb,YAAYC,EAAmBv/B,EAAS,QACxI67H,EAAU1jO,UAAUinI,mBAAqB,SAAUC,EAAWr/B,GAAWpkG,KAAKm/I,iBAAiB3b,mBAAmBC,EAAWr/B,IAC7H67H,EAAU1jO,UAAUgnI,iBAAmB,SAAU9mI,EAAKo+G,GAAW76G,KAAKm/I,iBAAiB5b,iBAAiB9mI,EAAKo+G,IAC7GolH,EAAU1jO,UAAU8jO,eAAiB,SAAU5jO,EAAK6+H,EAAUG,QACzC,IAAbA,IAAuBA,GAAW,GACtCz7H,KAAKm/I,iBAAiBze,gBAAgB,CAAC,CAAEjkI,IAAKA,EAAK6+H,SAAUA,KAAa,EAAOG,IAErFwkG,EAAU1jO,UAAUmkI,gBAAkB,SAAUC,EAAclF,QACzC,IAAbA,IAAuBA,GAAW,GACtCz7H,KAAKm/I,iBAAiBze,gBAAgBC,GAAc,EAAOlF,IAE/DwkG,EAAU1jO,UAAUu9H,aAAe,SAAUt+B,GAAax7F,KAAKm/I,iBAAiBrlB,aAAat+B,IAC7FykI,EAAU1jO,UAAUg6H,YAAc,WAAc,OAAOv2H,KAAKm/I,iBAAiB5oB,eAC7E0pG,EAAU1jO,UAAUw9H,wBAA0B,SAAUC,EAAWC,GAAe,OAAOj6H,KAAKm/I,iBAAiBplB,wBAAwBC,EAAWC,IAClJgmG,EAAU1jO,UAAUwjI,gBAAkB,SAAUd,GAAWj/H,KAAKm/I,iBAAiBpf,gBAAgBd,EAAS,QAC1GghG,EAAU1jO,UAAU0pI,gBAAkB,WAAc,OAAOjmI,KAAKm/I,iBAAiBlZ,mBACjFg6F,EAAU1jO,UAAU+jI,kBAAoB,SAAUD,GAAUrgI,KAAKm/I,iBAAiB7e,kBAAkBD,EAAQ,QAC5G4/F,EAAU1jO,UAAUgkI,mBAAqB,SAAUtB,GAAWj/H,KAAKm/I,iBAAiB5e,mBAAmBtB,EAAS,QAChHghG,EAAU1jO,UAAU6jI,eAAiB,SAAUC,GAAUrgI,KAAKm/I,iBAAiB/e,eAAeC,EAAQ,QACtG4/F,EAAU1jO,UAAU4jI,gBAAkB,SAAUlB,GAAWj/H,KAAKm/I,iBAAiBhf,gBAAgBlB,EAAS,QAC1GghG,EAAU1jO,UAAUyiI,mBAAqB,SAAUC,GAAWj/H,KAAKm/I,iBAAiBngB,mBAAmBC,EAAS,QAChHghG,EAAU1jO,UAAUgjI,qBAAuB,SAAUc,GAAUrgI,KAAKm/I,iBAAiB5f,qBAAqBc,EAAQ,QAClH4/F,EAAU1jO,UAAU+iI,sBAAwB,SAAUL,GAAWj/H,KAAKm/I,iBAAiB7f,sBAAsBL,EAAS,QACtHghG,EAAU1jO,UAAU6iI,kBAAoB,SAAUiB,GAAUrgI,KAAKm/I,iBAAiB/f,kBAAkBiB,EAAQ,QAC5G4/F,EAAU1jO,UAAU8iI,mBAAqB,SAAUJ,GAAWj/H,KAAKm/I,iBAAiB9f,mBAAmBJ,EAAS,QAChHghG,EAAU1jO,UAAU4pI,mBAAqB,WAAc,OAAOnmI,KAAKm/I,iBAAiBhZ,sBACpF85F,EAAU1jO,UAAUkjI,gBAAkB,SAAUR,GAAWj/H,KAAKm/I,iBAAiB1f,gBAAgBR,EAAS,QAC1GghG,EAAU1jO,UAAUsjI,kBAAoB,SAAUQ,GAAUrgI,KAAKm/I,iBAAiBtf,kBAAkBQ,EAAQ,QAC5G4/F,EAAU1jO,UAAUqjI,mBAAqB,SAAUX,GAAWj/H,KAAKm/I,iBAAiBvf,mBAAmBX,EAAS,QAChHghG,EAAU1jO,UAAUojI,eAAiB,SAAUU,GAAUrgI,KAAKm/I,iBAAiBxf,eAAeU,EAAQ,QACtG4/F,EAAU1jO,UAAUijI,gBAAkB,SAAUP,GAAWj/H,KAAKm/I,iBAAiB3f,gBAAgBP,EAAS,QAC1GghG,EAAU1jO,UAAU2pI,gBAAkB,WAAc,OAAOlmI,KAAKm/I,iBAAiBjZ,mBACjF+5F,EAAU1jO,UAAU+jO,6BAA+B,WAAc,OAAOtgO,KAAKm/I,iBAAiB1iB,wBAC9FwjG,EAAU1jO,UAAUgkO,+BAAiC,WAAc,OAAOvgO,KAAKm/I,iBAAiBxiB,0BAChGsjG,EAAU1jO,UAAUikO,8BAAgC,WAAc,OAAOxgO,KAAKm/I,iBAAiBziB,yBAC/FujG,EAAU1jO,UAAUkkO,4BAA8B,WAAc,OAAOzgO,KAAKm/I,iBAAiBhjB,wBAC7F8jG,EAAU1jO,UAAUq/H,eAAiB,SAAUn/H,EAAK05F,GAAc,OAAOn2F,KAAKm/I,iBAAiBvjB,eAAen/H,EAAK05F,EAAY,QAC/H8pI,EAAU1jO,UAAUyhG,gBAAkB,SAAU/9F,EAAMk2F,GAAc,OAAOn2F,KAAKm/I,iBAAiBnhD,gBAAgB/9F,EAAMk2F,EAAY,QACnI8pI,EAAU1jO,UAAUs/H,mBAAqB,SAAU1lC,GAAcn2F,KAAKm/I,iBAAiBtjB,mBAAmB1lC,EAAY,QACtH8pI,EAAU1jO,UAAUo3I,oBAAsB,SAAUC,GAAW5zI,KAAKm/I,iBAAiBxL,oBAAoBC,EAAS,QAClHqsF,EAAU1jO,UAAUkqI,oBAAsB,WAAc,OAAOzmI,KAAKm/I,iBAAiB1Y,uBACrFw5F,EAAU1jO,UAAUmkO,kBAAoB,WAAc,OAAO1gO,KAAKm/I,iBAAiB3Y,wBACnFy5F,EAAU1jO,UAAUokO,uFAAyF,WAOzGl1N,WAAWm0C,GAAEioD,oBAAoBp9F,KAAKc,OAAQvL,KAAM,cAAe,MAOvEigO,EAAU1jO,UAAUwkK,kBAAoB,SAAU7lE,EAAOwhB,GACrDz5G,QAAQC,MAAM,yEACdlD,KAAK8yI,qBAAqB53C,EAAOwhB,IAErCujH,EAAU1jO,UAAUqkO,YAAc,SAAUxtC,EAAQv+E,GAChD5xG,QAAQC,MAAM,6DACdlD,KAAKm/I,iBAAiBpY,kBAAkBqsD,GAASv+E,EAAM,QAE3DorH,EAAU1jO,UAAUskO,WAAa,SAAU/9H,EAAO+R,GAC9C5xG,QAAQC,MAAM,2DACdlD,KAAKm/I,iBAAiBrY,iBAAiBhkC,GAAQ+R,EAAM,QAEzDorH,EAAU1jO,UAAUk4G,SAAW,SAAUqsH,GAErC,OADA79N,QAAQC,MAAM,uDACPlD,KAAK+gO,eAAeD,IAE/Bb,EAAU1jO,UAAUykO,SAAW,WAE3B,OADA/9N,QAAQC,MAAM,uDACPlD,KAAK4oI,kBAEhBq3F,EAAU1jO,UAAU0kO,WAAa,WAC7Bh+N,QAAQC,MAAM,2DACdlD,KAAKspI,oBAET22F,EAAU1jO,UAAU2kO,sBAAwB,WAExC,OADAj+N,QAAQC,MAAM,qEACPlD,KAAKm/I,iBAAiBlZ,mBAEjCg6F,EAAU1jO,UAAU4kO,wBAA0B,SAAU9gG,GACpDp9H,QAAQC,MAAM,yEACdlD,KAAKm/I,iBAAiB7e,kBAAkBD,EAAQ,QAEpD4/F,EAAU1jO,UAAU6kO,yBAA2B,SAAUniG,GACrDh8H,QAAQC,MAAM,2EACdlD,KAAKm/I,iBAAiB5e,mBAAmBtB,EAAS,QAEtDghG,EAAU1jO,UAAU8kO,qBAAuB,SAAUhhG,GACjDp9H,QAAQC,MAAM,mEACdlD,KAAKm/I,iBAAiB/e,eAAeC,EAAQ,QAEjD4/F,EAAU1jO,UAAU+kO,sBAAwB,SAAUriG,GAClDh8H,QAAQC,MAAM,qEACdlD,KAAKm/I,iBAAiBhf,gBAAgBlB,EAAS,QAEnDghG,EAAU1jO,UAAUglO,qBAAuB,SAAU75N,EAAQmzG,GACzD53G,QAAQC,MAAM,qEACdlD,KAAKm/I,iBAAiB5b,iBAAiB77H,EAAQmzG,EAAS,QAE5DolH,EAAU1jO,UAAUilO,qBAAuB,SAAU95N,GAEjD,OADAzE,QAAQC,MAAM,4EACPlD,KAAKuvI,wBAAwB7nI,EAAQ,OAEhDu4N,EAAU1jO,UAAUwkO,eAAiB,SAAUD,GAC3C,OAAO9gO,KAAKm/I,iBAAiBj0B,iBAAiB,CAAEl+F,MAAO8zM,EAAal3F,YAAY,GAAQ,QAE5Fo2F,GAAa,CACTpxH,GAAU,qBACXqxH,EAAU1jO,UAAW,wBAAoB,GAC5CyjO,GAAa,CACTxxH,IACDyxH,EAAU1jO,UAAW,yFAA0F,MAClH0jO,EAAYD,GAAa,CACrBtxH,GAAK,cACNuxH,GACIA,EA1KmB,GAmL1BwB,GAAkD,WASlD,OARAA,GAAa9kO,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJ4sN,GAAWr/N,MAAMpC,KAAMW,YAE9B+gO,GAAiC,WACjC,SAASA,KAsBT,OApBAA,EAAgBC,uBAAyB,SAAU52N,EAAS62N,EAAa9xH,GACrE,IAAIw6G,EAAuBx6G,EAAmBw6G,uBAC9C,IAAKA,EACD,OAAO,KAEX,IAAIuX,EAAgBD,EAAYE,OAChCD,EAActhO,KAAOkhO,GAAW,GAAI12N,EAAQxK,MAC5CshO,EAAc92N,QAAUA,EACxB82N,EAAcx4H,QAAUyG,EAAmB0I,aAC3C,IAAI4O,EAAc,WACdy6G,EAAct7N,WACds7N,EAActhO,KAAO,KACrBshO,EAAc92N,QAAU,KACxB82N,EAAcx4H,QAAU,MAE5B,MAAO,CACHqiG,MAAOm2B,EACPE,iBAAkB36G,IAGnBs6G,EAvByB,GAgChCM,GAAoD,WACpD,IAAI/9N,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B;;;;;;IAcxD,SAAW64M,GACPA,EAAQ,UAAY,SACpBA,EAAQ,aAAe,YACvBA,EAAQ,oBAAsB,mBAC9BA,EAAQ,kBAAoB,iBAC5BA,EAAQ,mBAAqB,mBALjC,CAMGA,KAAYA,GAAU,KACzB,IAAI8kB,GAAqBxtG,GAAa,CAClC,CAAC0oF,GAAQ+kB,iBAAkB,yBAC3B,CAAC/kB,GAAQglB,eAAgB,sBACzB,CAAChlB,GAAQilB,gBAAiB,0BAE1BC,GAAgB5tG,GAAa,CAC7B,CAAC0oF,GAAQmlB,UAAW,yBACpB,CAACnlB,GAAQ+kB,iBAAkB,uBAC3B,CAAC/kB,GAAQglB,eAAgB,oBACzB,CAAChlB,GAAQilB,gBAAiB,wBAE1BG,GAAqB,EACrBC,GAA+B,SAAU39N,GAEzC,SAAS29N,EAAcZ,EAAa72N,EAASgjG,EAAO00H,EAAWC,EAA4BC,GACvF,IAAI5iO,EAAQ8E,EAAOjH,KAAKoC,OAASA,KA+BjC,OA9BAD,EAAMkgH,WAAasiH,KACnBxiO,EAAM6iO,YAAc,GACpB7iO,EAAMy7G,QAAS,EACfz7G,EAAM8iO,WAAa,GACnB9iO,EAAM+iO,SAAW,GACjB/iO,EAAMgjO,UAAY,GAClBhjO,EAAMijO,wBAAyB,EAC/BjjO,EAAMkjO,0BAA2B,EACjCljO,EAAM6hO,YAAcA,EACpB7hO,EAAMguG,MAAQA,EACdhuG,EAAMgL,QAAUA,EAChBhL,EAAMmjO,UAAYnjO,EAAMgL,QAAQ60I,SAAW,IAAM,EACjD7/I,EAAMojO,eAAiBpjO,EAAMguG,MAAMyxC,gBAAgB4jF,iBACnDrjO,EAAM2iO,2BAA6BA,EACnC3iO,EAAM4iO,YAAcA,EACpB5iO,EAAMsjO,gBAAgBZ,GACtB1iO,EAAMujO,WAAavjO,EAAMguG,MAAMksE,gBAAgBspD,aAAaxjO,EAAMgL,QAAQ60I,SAAU7/I,EAAMgL,QAAQwkL,WAClGxvL,EAAMyjO,qBACNzjO,EAAM0jO,SAAW1jO,EAAMguG,MAAM21H,sBAAsBC,kBAAkB5jO,EAAMgL,SAC3EhL,EAAM6jO,aACN7jO,EAAM8jO,mBAAmB9jO,EAAM2iO,4BAC/B3iO,EAAM+jO,eACF/jO,EAAMgkO,YACN/6H,GAAkBjpG,EAAMikO,aAAav5N,KAAK1K,IAE1CA,EAAMkkO,WACNj7H,IAAkB,WACdjpG,EAAM6iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAOhgF,GAAeggF,EAAQ79N,SAAU,yBAGxFtG,EAs5BX,OAv7BAiiO,GAAYQ,EAAe39N,GAmC3B29N,EAAcjmO,UAAU0kH,cAAgB,WACpC,OAAOjhH,KAAKigH,YAEhBuiH,EAAcjmO,UAAU4nO,eAAiB,SAAUD,GAC3ClkO,KAAKokO,aACLnhO,QAAQC,MAAM,8CAElBlD,KAAKokO,YAAcF,EACnBlkO,KAAK4iO,YAAYtjO,KAAK4kO,IAE1B1B,EAAcjmO,UAAU8nO,gBAAkB,SAAUH,GAC5ClkO,KAAKskO,cACLrhO,QAAQC,MAAM,+CAElBlD,KAAKskO,aAAeJ,EACpBlkO,KAAK4iO,YAAYtjO,KAAK4kO,IAE1B1B,EAAcjmO,UAAUgoO,iBAAmB,SAAUL,GAC7ClkO,KAAKwkO,eACLvhO,QAAQC,MAAM,gDAElBlD,KAAKwkO,cAAgBN,EACrBlkO,KAAK4iO,YAAYtjO,KAAK4kO,IAE1B1B,EAAcjmO,UAAUkoO,oBAAsB,SAAUP,GAChDlkO,KAAK0kO,kBACLzhO,QAAQC,MAAM,mDAElBlD,KAAK0kO,iBAAmBR,EACxBlkO,KAAK4iO,YAAYtjO,KAAK4kO,IAE1B1B,EAAcjmO,UAAUooO,kBAAoB,SAAU3vH,GAClD,OAAQA,GACJ,KAAK5D,GAAUqB,aAAc,OAAOzyG,KAAK+iO,UACzC,KAAK3xH,GAAUsB,YAAa,OAAO1yG,KAAK8iO,SACxC,QAAS,OAAO9iO,KAAK6iO,aAG7BL,EAAcjmO,UAAUqoO,SAAW,WAC/B,OAAO5kO,KAAK0rM,OAEhB82B,EAAcjmO,UAAUsoO,cAAgB,WACpC,OAAO7kO,KAAK2iO,aAEhBH,EAAcjmO,UAAUinO,mBAAqB,WACzC,IAAIsB,EAAcpD,GAAgBC,uBAAuB3hO,KAAK+K,QAAS/K,KAAK4hO,YAAa5hO,KAAK+tG,MAAM+B,oBAChGg1H,IACA9kO,KAAK0rM,MAAQo5B,EAAYp5B,MACzB1rM,KAAKqnH,eAAey9G,EAAY/C,oBAGxCS,EAAcjmO,UAAUwoO,cAAgB,SAAUr9N,GAC9C,IAAIs9N,EAAWhlO,KAAKilO,yBAAyBv9N,GAC7C,OAAOs9N,EAAWA,EAAS3+N,SAAW,MAE1Cm8N,EAAcjmO,UAAU2oO,gCAAkC,WACtD,IAAI/5N,EAAOnL,KAAK+tG,MAAM+B,mBAAmB2jH,8BACzC,GAAKtoN,EAAL,CAGA,IAAI/H,EAAS,CACT+hO,KAAMnlO,KAAKwkO,cAAgBxkO,KAAKwkO,cAAcn+N,cAAWhH,EACzD+lO,eAAgBplO,KAAKokO,YAAcpkO,KAAKokO,YAAY/9N,cAAWhH,EAC/DgmO,gBAAiBrlO,KAAKskO,aAAetkO,KAAKskO,aAAaj+N,cAAWhH,EAClEmT,KAAMxS,KAAK+K,QACXnB,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnCmnC,SAAU5/I,KAAK+K,QAAQ60I,SACvB0lF,uBAAwBtlO,KAAKwwG,iBAAiB/lG,KAAKzK,MACnD6J,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAE3CrtG,EAAK/H,KAETo/N,EAAcjmO,UAAUqnO,WAAa,WACjC,IAAI2B,EAASvlO,KAAK+K,QAAQy6N,KACtBtuC,EAAkBl3L,KAAK+K,QAAQmsL,kBAC/BuuC,EAAezlO,KAAK+tG,MAAM23H,mBAAqB1lO,KAAK+K,QAAQ07J,OAC5DjrE,EAAYx7F,KAAK+tG,MAAMoxC,iBAAiB5oB,cAKxCovG,IAAe3lO,KAAK+K,QAAQmwF,QAAUl7F,KAAK+K,QAAQqtE,OACnDwtJ,EAAmBD,GAAc3lO,KAAK+tG,MAAM+B,mBAAmB4pC,oBAAoBl+C,GAEnFx7F,KAAK6lO,QADLN,EACepoB,GAAQ+kB,iBAElBuD,EACUtoB,GAAQilB,gBAElBlrC,EACUimB,GAAQmlB,UAElBsD,EACUzoB,GAAQglB,eAGRhlB,GAAQ2oB,QAG/BtD,EAAcjmO,UAAUsnO,kBAAoB,SAAU7e,GAClD,IAAIjlN,EAAQC,KAEZ,QAD+B,IAA3BglN,IAAqCA,GAAyB,IAC9DhlN,KAAK+lO,cAAT,CAGA,IAAIC,EAAchhB,GACXhlN,KAAK+tG,MAAM+B,mBAAmBi1G,4BAC9B/kN,KAAK2iO,YACRqD,EACAhmO,KAAKimO,wBAGLjmO,KAAKijO,2BAGTjjO,KAAK+tG,MAAMm4H,UAAUC,YAAW,WACvBpmO,EAAMy7G,QAGXz7G,EAAMkmO,0BACPjmO,KAAK+K,QAAQ60I,SAAU,iBAC1B5/I,KAAKijO,0BAA2B,KAEpCT,EAAcjmO,UAAU0pO,sBAAwB,WAC5CjmO,KAAKijO,0BAA2B,EAC5BjjO,KAAK2iO,aACL3iO,KAAK6iO,WAAa7iO,KAAK+tG,MAAMoxC,iBAAiBpjB,yBAC9C/7H,KAAK8iO,SAAW,GAChB9iO,KAAK+iO,UAAY,KAGjB/iO,KAAK6iO,WAAa7iO,KAAK+tG,MAAMoxC,iBAAiBthB,+BAA+B79H,KAAK+K,SAClF/K,KAAK8iO,SAAW9iO,KAAK+tG,MAAMoxC,iBAAiBriB,8BAA8B98H,KAAK+K,SAC/E/K,KAAK+iO,UAAY/iO,KAAK+tG,MAAMoxC,iBAAiBliB,+BAA+Bj9H,KAAK+K,UAErF/K,KAAK4iO,YAAYrkO,SAAQ,SAAUixJ,GAAM,OAAOA,EAAG42E,sBAEvD5D,EAAcjmO,UAAU8mO,gBAAkB,SAAUZ,GAChD,GAAIA,EAAW,CACX,IAAI4D,EAAkB5lI,EAAOzgG,KAAK+K,QAAQojL,WAE1CnuL,KAAK+jO,WAAasC,EAElBrmO,KAAKikO,WAAaoC,OAGlBrmO,KAAK+jO,YAAa,EAClB/jO,KAAKikO,WAAY,GAGzBzB,EAAcjmO,UAAU+pO,UAAY,WAChC,OAAOtmO,KAAKumO,YAEhB/D,EAAcjmO,UAAUiqO,eAAiB,SAAUxkE,GAC/ChiK,KAAKmxM,YAAYnvC,IAErBwgE,EAAcjmO,UAAUwpO,YAAc,WAClC,OAAO/lO,KAAK6lO,UAAY1oB,GAAQ2oB,QAEpCtD,EAAcjmO,UAAUkqO,WAAa,WACjC,OAAOzmO,KAAK6lO,SAEhBrD,EAAcjmO,UAAUmqO,iBAAmB,WACvC,IAAI3mO,EAAQC,KAER2mO,EAAa,SAAUzC,EAASlvH,GAChC,IAAKkvH,EACD,OAAO,EAEX,IAAIc,EAAWd,EAAQ0C,sBACvB,IAAK5B,EACD,OAAO,EAGX,IAAKA,EAASzsI,QACV,OAAO,EAEX,IAAIn1F,EAASrD,EAAM8mO,sBAAsB3C,EAAQ79N,SAAU2uG,GACvD8xH,EAAmB9B,EAASzsI,QAAQn1F,GACxC,OAAO0jO,GAEPC,EAAgBJ,EAAW3mO,KAAK0kO,iBAAkB,MAClDsC,EAAcL,EAAW3mO,KAAKwkO,cAAe,MAC7CyC,EAAcN,EAAW3mO,KAAKokO,YAAahzH,GAAUsB,aACrDw0H,EAAeP,EAAW3mO,KAAKskO,aAAclzH,GAAUqB,cACvD00H,EAA4BJ,GAAiBC,GAAeC,GAAeC,EAC/E,OAAOC,GAEX3E,EAAcjmO,UAAUunO,aAAe,WACnC9jO,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQiE,qBAAsBlyL,KAAKonO,mBAAmB38N,KAAKzK,OACjGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ/+D,mBAAoBlvH,KAAKi+N,cAAcxzN,KAAKzK,OAC1FA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQkE,wBAAyBnyL,KAAKqnO,kBAAkB58N,KAAKzK,OACnGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQgD,kBAAmBjxL,KAAKgkO,aAAav5N,KAAKzK,OACxFA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ/qE,uBAAwBljH,KAAKsnO,kBAAkB78N,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQwF,2BAA4BzzL,KAAKsnO,kBAAkB78N,KAAKzK,OACtGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQmB,mBAAoBpvL,KAAKunO,qBAAqB98N,KAAKzK,OACjGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ2F,mBAAoB5zL,KAAKwnO,qBAAqB/8N,KAAKzK,OACjGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQuD,wBAAyBxxL,KAAKynO,0BAA0Bh9N,KAAKzK,OAC3GA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQqD,uBAAwBtxL,KAAK0nO,yBAAyBj9N,KAAKzK,OACzGA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQqE,uBAAwBtyL,KAAK2nO,iBAAiBl9N,KAAKzK,OACjG,IAAIq0G,EAAer0G,KAAK+tG,MAAMsG,aAC9Br0G,KAAKmnH,mBAAmB9S,EAAcsY,GAAOwE,sCAAuCnxH,KAAK4nO,+BAA+Bn9N,KAAKzK,OAC7HA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOgE,2BAA4B3wH,KAAKgkO,aAAav5N,KAAKzK,OAChGA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OAClHA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOe,8BAA+B1tH,KAAK8nO,wBAAwBr9N,KAAKzK,OAC9GA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOsC,mBAAoBjvH,KAAK+nO,mBAAmBt9N,KAAKzK,OAC9FA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOiE,yBAA0B5wH,KAAKgoO,oBAAoBv9N,KAAKzK,OACrGA,KAAKmnH,mBAAmB9S,EAAcsY,GAAO2B,oBAAqBtuH,KAAKioO,eAAex9N,KAAKzK,OAC3FA,KAAKmnH,mBAAmB9S,EAAcsY,GAAOS,mBAAoBptH,KAAKkoO,cAAcz9N,KAAKzK,OACzFA,KAAKmoO,4BAET3F,EAAcjmO,UAAU2rO,cAAgB,WACpCloO,KAAK6jO,qBAETrB,EAAcjmO,UAAU4rO,yBAA2B,WAC/C,IAAIpoO,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQkE,yBAAyB,WACnEpyL,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASqC,0BAEhErnO,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQ2F,oBAAoB,SAAUxsL,GACxErH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASqD,cAAcjhO,UAGlFo7N,EAAcjmO,UAAUgrO,qBAAuB,SAAUngO,GAIrDpH,KAAKooO,iBAAgB,SAAUpD,GAC3B,OAAOA,EAASsD,YAAY,CACxBC,eAAgBnhO,EAAMunL,OACtBQ,SAAU/nL,EAAMunL,YAQxB3uL,KAAKi+N,gBAELj+N,KAAKwoO,kBAEThG,EAAcjmO,UAAUirO,qBAAuB,WAE3CxnO,KAAKwoO,kBAEThG,EAAcjmO,UAAUisO,eAAiB,WACrCxoO,KAAKyoO,mCACLzoO,KAAK0oO,oCACL1oO,KAAK2oO,2BACL3oO,KAAK4oO,0BAETpG,EAAcjmO,UAAUkrO,0BAA4B,WAChD,IAAIl5C,EAAcvuL,KAAK+K,QAAQwjL,YAC/BvuL,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIt2D,EAAOs2D,EAAQ79N,SACnB69I,GAAe0pB,EAAM,0BACrB1pB,GAAe0pB,EAAM,0BACjB2gB,GACAzqC,GAAY8pB,EAAM,oBAAsB2gB,OAIpDi0C,EAAcjmO,UAAUmrO,yBAA2B,WAC/C1nO,KAAK4oO,0BAETpG,EAAcjmO,UAAUqsO,uBAAyB,WAC7C,IAAIv3C,EAAWrxL,KAAK+K,QAAQsmL,SAC5BrxL,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAO7/E,GAAoB6/E,EAAQ79N,SAAU,kBAAmBgrL,OAElHmxC,EAAcjmO,UAAU+qO,kBAAoB,WACxC,IAAIvkH,EAAa/iH,KAAK+K,QAAQ+2G,eAC1BG,EAAoC,GAAzBjiH,KAAK+K,QAAQk3G,SAC5BjiH,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIiB,EAAOjB,EAAQ79N,SACnBg+I,GAAoB8gF,EAAM,eAAgBpiH,GAC1CshC,GAAoB8gF,EAAM,wBAAyBpiH,GAAcd,GACjEoiC,GAAoB8gF,EAAM,0BAA2BpiH,IAAed,GACpE66C,GAAgBqoE,EAAMpiH,GAAcd,OAG5CugH,EAAcjmO,UAAUsrO,0BAA4B,WAGhD7nO,KAAK6jO,mBAAkB,IAE3BrB,EAAcjmO,UAAUurO,wBAA0B,WAC9C9nO,KAAK6jO,qBAETrB,EAAcjmO,UAAUssO,eAAiB,WACrC,MAAO,CACHt5C,UAAWvvL,KAAK+K,QAAQwkL,UACxB3vC,SAAU5/I,KAAK+K,QAAQ60I,WAG/B4iF,EAAcjmO,UAAUusO,mBAAqB,SAAUxjE,GACnD,IAAIyjE,EAAuBh7M,EAAK/tB,KAAK4iO,aAAa,SAAUsB,GAAW,OAAOA,EAAQ79N,SAASu0F,SAAS0qE,EAAcvpK,WAClHitO,EAA4BD,EAAuBA,EAAqB1iO,SAAW,KACnF4iO,EAA8BD,IAA8B1jE,EAAcvpK,OAC9E,GAAKktO,EAAL,CAGA,IAAIz2N,EAAOxS,KAAK+K,QACZm+N,EAAkBlpO,KAAK+tG,MAAMksE,gBAAgBkvD,iBAC7CC,EAAe,CACfxpF,SAAUptI,EAAKotI,SACf2vC,UAAW/8K,EAAK+8K,UAChB7nL,OAASwhO,GAAmBA,EAAgBxhO,QAEhD1H,KAAK+tG,MAAM2kF,YAAYigC,mBAAmBrtD,EAAeA,EAAcR,QAASskE,GAAc,GAC9F9jE,EAAcqQ,mBAElB6sD,EAAcjmO,UAAU69K,aAAe,SAAU9U,GAC7C,IAAIA,EAAc+U,mBAAoB51D,GAA2B6gD,GAAjE,CAGA,IAAIyjE,EAAuBh7M,EAAK/tB,KAAK4iO,aAAa,SAAUsB,GAAW,OAAOA,EAAQ79N,SAASu0F,SAAS0qE,EAAcvpK,WAClHitO,EAA4BD,EAAuBA,EAAqB1iO,SAAW,KACnF4iO,EAA8BD,IAA8B1jE,EAAcvpK,OAC1EstO,EAAS,KACRJ,IACDI,EAASrpO,KAAK+tG,MAAMksE,gBAAgBO,yBAAyBwuD,GAA2B,EAAO1jE,EAAc1kC,YAE5G5gI,KAAK+lO,eAAiBkD,IAAiCI,IACxDrpO,KAAK+tG,MAAM2kF,YAAYtY,aAAap6K,KAAMslK,KAGlDk9D,EAAcjmO,UAAU+sO,sBAAwB,SAAUliO,GACtD,IAAIoL,EAAOxS,KAAK+K,QACZw+N,EAAYvpO,KAAK+lO,eAAiB3+N,EAAMw4I,WAAaptI,EAAKotI,UAAYx4I,EAAMmoL,WAAa/8K,EAAK+8K,UAC9FplG,EAAUnqF,KAAK0kO,iBAAmB1kO,KAAK0kO,iBAAiBr+N,SAAWrG,KAAKwkO,cAAcn+N,SAC1Fg+I,GAAoBl6D,EAAS,sBAAuBo/I,GAChDA,GAGAp/I,EAAQ4rF,MAAM,CAAEyzD,eAAe,KAGvChH,EAAcjmO,UAAU+rO,YAAc,SAAUtD,GAC5ChlO,KAAK4iO,YAAYrkO,SAAQ,SAAUixJ,GAAM,OAAOA,EAAGi6E,aAAa,CAACzE,OACjEhlO,KAAK6jO,qBAETrB,EAAcjmO,UAAUmtO,aAAe,SAAUzkH,EAAWsiD,GACxD,OAAQtiD,GACJ,IAAK,WACDjlH,KAAK2pO,cAAcpiE,GACnB,MACJ,IAAK,QACDvnK,KAAK4pO,WAAWriE,GAChB,MACJ,IAAK,YACDvnK,KAAK6pO,eAAetiE,GACpB,QAGZi7D,EAAcjmO,UAAUutO,eAAiB,SAAUrqO,EAAMsqO,GACrD,MAAO,CACHtqO,KAAMA,EACN+S,KAAMxS,KAAK+K,QACXxK,KAAMP,KAAK+K,QAAQxK,KACnBq/I,SAAU5/I,KAAK+K,QAAQ60I,SACvB2vC,UAAWvvL,KAAK+K,QAAQwkL,UACxBlmF,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,aACvC5uG,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCtxG,MAAO2iO,IAGfvH,EAAcjmO,UAAUytO,yBAA2B,SAAUvqO,EAAMsqO,GAC/D,IAAI3iO,EAAQpH,KAAK8pO,eAAerqO,EAAMsqO,GAQtC,OADA3iO,EAAM09F,OAAS9kG,KACRoH,GAEXo7N,EAAcjmO,UAAUotO,cAAgB,SAAUpiE,GAC9C,IAAI9iD,GAA2B8iD,GAA/B,CAGA,IAAI0iE,EAAUjqO,KAAKgqO,yBAAyBr9G,GAAOiD,yBAA0B23C,GAC7EvnK,KAAK+tG,MAAMsG,aAAa5nG,cAAcw9N,KAE1CzH,EAAcjmO,UAAUstO,eAAiB,SAAUtiE,GAE/C,GADAvnK,KAAKgjO,uBAAyBh9E,GAAsBuhB,EAAWxrK,OAAQ,cAAe,GACjFiE,KAAK+lO,cAAV,CAGA,IAAIvzN,EAAOxS,KAAK+K,QACZo0I,EAAmBn/I,KAAK+tG,MAAMoxC,iBAClCn/I,KAAK+tG,MAAMksE,gBAAgBiwD,eAAe13N,EAAKotI,SAAUT,EAAiBpjB,yBAAyB,GAAIvpH,EAAK+8K,WAAW,KAE3HizC,EAAcjmO,UAAUqtO,WAAa,SAAUriE,GAC3C,IAAI4iE,EAAO1lH,GAA2B8iD,IAAevnK,KAAKgjO,uBAC1D,IAAImH,EAAJ,CAGA,IAAIF,EAAUjqO,KAAKgqO,yBAAyBr9G,GAAOgD,kBAAmB43C,GACtEvnK,KAAK+tG,MAAMsG,aAAa5nG,cAAcw9N,GAEtC,IAAIG,EAAwB7iE,EAAWtC,SAAWsC,EAAW7oK,QACzD2rO,EAAkB9iE,EAAW3mC,SAO7Bm0D,EAAuB/0L,KAAK+tG,MAAM+B,mBAAmBklF,yBACzD,KAGCD,GAAwB/0L,KAAK+K,QAAQmwF,QAGjCl7F,KAAK+K,QAAQqjL,YAEdpuL,KAAK+K,QAAQwkL,YAEZvvL,KAAK+tG,MAAM+B,mBAAmBuvG,kBAE/Br/M,KAAK+tG,MAAM+B,mBAAmByyG,+BAZlC,CAeA,IAAI+nB,EAAqBtqO,KAAK+tG,MAAM+B,mBAAmB0vG,4BACnD+qB,GAA0BvqO,KAAK+tG,MAAM+B,mBAAmBwvG,2BAC5D,GAAIt/M,KAAK+K,QAAQgpL,aACTu2C,EACAtqO,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAU,IAEtC0tH,EACDG,GACAvqO,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAU,IAK/C18G,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAW2tH,EAAiB31C,gBAAiB21C,EAAiBx1C,YAAaw1C,QAG/G,CACD,IAAI31C,GAAiB41C,IAA8BF,EACnDpqO,KAAK+K,QAAQ6pL,kBAAkB,CAAEl4E,UAAU,EAAMg4E,eAAgBA,EAAgBG,YAAaw1C,QAGtG7H,EAAcjmO,UAAUiuO,yBAA2B,SAAUC,GACzD,IAAI1qO,EAAQC,KACZ,GAAKA,KAAK+tG,MAAM+B,mBAAmB63G,wBAAnC,CAGA,IAAI+iB,EAAmB,WACnB,IAAIpoF,EAAemoF,EAAWnoF,aAK9B,GAAoB,MAAhBA,GAAwBA,EAAe,EAAG,CAG1C,IAAIqoF,EAAsB,WACtB5qO,EAAMgL,QAAQgnL,aAAazvC,GACvBviJ,EAAMguG,MAAMuwH,mBACZv+N,EAAMguG,MAAMuwH,mBAAmB8I,qBAE1BrnO,EAAMguG,MAAM68H,oBACjB7qO,EAAMguG,MAAM68H,mBAAmBxD,sBAGvCrnO,EAAMguG,MAAMgC,mBAAmBtkG,WAAWk/N,EAAqB,KAGnEE,EAA4B7qO,KAAK+tG,MAAM+8H,sBAAsBC,cAAcN,EAAYC,GAC3F1qO,KAAKqnH,eAAewjH,GACpBH,MAEJlI,EAAcjmO,UAAUsqO,sBAAwB,SAAU1B,EAAMnwH,GAC5D,IAAIj1G,EAAQC,KACRoD,EAAS,CACT0mM,WAAW,EACXvpM,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACXrO,MAAOsD,KAAK+K,QAAQtO,IACpB+uM,eAAgBxrM,KAAK+K,QAAQtO,IAC7BuuO,OAAQhrO,KAAK0rM,MAAQ1rM,KAAK0rM,MAAQ1rM,KAAK4hO,YACvCqJ,SAAUjrO,KAAK+tG,MAAMk9H,SACrBrrF,SAAU5/I,KAAK+K,QAAQ60I,SACvBh2I,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,aAEvC00F,UAAWi4B,EACX+F,eAAgB/F,EAChBnwH,OAAQA,EACRswH,uBAAwBtlO,KAAKwwG,iBAAiB/lG,KAAKzK,MACnDmrO,mBAAoB,SAAUC,EAAmB1rC,EAAiBhjM,GAAS,OAAOqD,EAAMsrO,wBAAwBD,EAAmB1rC,EAAiBhjM,KAExJ,OAAO0G,GAEXo/N,EAAcjmO,UAAU8uO,wBAA0B,SAAUD,EAAmB1rC,EAAiBhjM,GAE5F,QADc,IAAVA,IAAoBA,EAAQ,IAC3BsD,KAAK+lO,cAAV,CAGA,IAAI35B,EAAc,IAAIlG,IAAY,WAAc,OAAOxpM,IAAUsD,KAAK+K,aAAS1L,EAAW+rO,EAAmB1rC,GAC7G1/L,KAAKsnH,kBAAkB8kF,EAAapsM,KAAK+tG,MAAM1E,WAEnDm5H,EAAcjmO,UAAUorO,iBAAmB,WACvC,IAAI2D,EAAWtrO,KAAK+tG,MAAM21H,sBAAsBC,kBAAkB3jO,KAAK+K,SACvE,GAAI/K,KAAKyjO,UAAY6H,EAAU,CAC3B,IAAIC,EAAe,gBAAkBD,EACjCE,EAAkB,gBAAkBxrO,KAAKyjO,SAC7CzjO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIt2D,EAAOs2D,EAAQ79N,SACnBy9I,GAAY8pB,EAAM29D,GAClBrnF,GAAe0pB,EAAM49D,MAG7BxrO,KAAKyjO,SAAW6H,GAEpB9I,EAAcjmO,UAAUkvO,iBAAmB,WACvC,OAAOzrO,KAAK+K,QAAQ60I,WAAa5/I,KAAK+tG,MAAMyxC,gBAAgBC,mBAEhE+iF,EAAcjmO,UAAUmvO,gBAAkB,WACtC,OAAO1rO,KAAK+K,QAAQ60I,WAAa5/I,KAAK+tG,MAAMyxC,gBAAgBG,kBAEhE6iF,EAAcjmO,UAAU0rO,eAAiB,WACrC,IAAI0D,EAAW3rO,KAAKyrO,mBAChBG,EAAU5rO,KAAK0rO,kBACf1rO,KAAK6rO,iBAAmBF,IACxB3rO,KAAK6rO,eAAiBF,EACtB3rO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAO7/E,GAAoB6/E,EAAQ79N,SAAU,eAAgBslO,OAE3G3rO,KAAK8rO,gBAAkBF,IACvB5rO,KAAK8rO,cAAgBF,EACrB5rO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAO7/E,GAAoB6/E,EAAQ79N,SAAU,cAAeulO,QAGlHpJ,EAAcjmO,UAAU40M,YAAc,SAAUnvC,GAK5C,QAJe,IAAXA,IAAqBA,GAAS,GAClChiK,KAAKooO,iBAAgB,SAAU2D,GAC3BA,EAAa56B,YAAYnvC,MAExBhiK,KAAKumO,WAAV,CAGA,IAAKvkE,EAAQ,CACT,IAAIp+C,EAAU5jH,KAAK8pO,eAAen9G,GAAOqC,yBACzChvH,KAAK+tG,MAAMsG,aAAa5nG,cAAcm3G,GAE1C5jH,KAAKgsO,eAAc,KAEvBxJ,EAAcjmO,UAAUyvO,cAAgB,SAAUtvO,GAC9CsD,KAAKumO,WAAa7pO,EAClBsD,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAO7/E,GAAoB6/E,EAAQ79N,SAAU,iBAAkB3J,MAC7G,IAAI0K,EAAQ1K,EACRsD,KAAK8pO,eAAen9G,GAAO0D,2BACzBrwH,KAAK8pO,eAAen9G,GAAO2D,2BACjCtwH,KAAK+tG,MAAMsG,aAAa5nG,cAAcrF,IAE1Co7N,EAAcjmO,UAAU0vO,gBAAkB,SAAU32D,EAAUC,EAAW22D,QACpD,IAAb52D,IAAuBA,EAAW,WACpB,IAAdC,IAAwBA,EAAY,WACb,IAAvB22D,IAAiCA,EAAqB,MAEtDlsO,KAAKumO,aAGTvmO,KAAKooO,iBAAgB,SAAU2D,GAC3B,IAAI32D,EAAkB22D,IAAiBG,EACnC92D,EACA22D,EAAaI,sBAAsB72D,EAAUC,EAAWH,GAGxD22D,EAAaI,sBAAsB,KAAM,KAAM/2D,MAGvDp1K,KAAKgsO,eAAc,KAEvBxJ,EAAcjmO,UAAU6rO,gBAAkB,SAAU1iO,GAChD1F,KAAK4iO,YAAYrkO,SAAQ,SAAUixJ,GAAM,OAAOA,EAAG44E,gBAAgB1iO,OAEvE88N,EAAcjmO,UAAUmsO,kCAAoC,WACxD,IAAI3oO,EAAQC,KACRikJ,EAAajkJ,KAAK+tG,MAAM21H,sBAAsB0I,8BAA8BpsO,KAAK+K,QAAS/K,KAAK0rM,OAC9FznD,GAAeA,EAAWxmJ,QAG/BwmJ,EAAW1lJ,SAAQ,SAAU8tO,GACzBtsO,EAAM6iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAOpgF,GAAYogF,EAAQ79N,SAAUgmO,UAG5F7J,EAAcjmO,UAAUosO,yBAA2B,WAC/C,IAAI5oO,EAAQC,KACZA,KAAK+tG,MAAM21H,sBAAsB4I,qBAAqBtsO,KAAK+K,QAAS/K,KAAK0rM,OAAO,SAAU3nD,GACtFhkJ,EAAM6iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAOpgF,GAAYogF,EAAQ79N,SAAU09I,SACrF,SAAUA,GACThkJ,EAAM6iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAOhgF,GAAeggF,EAAQ79N,SAAU09I,UAG/Fy+E,EAAcjmO,UAAUksO,iCAAmC,WACvD,IAAI8D,EAAYvsO,KAAKwsO,+BACrBxsO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAO96E,GAAmB86E,EAAQ79N,SAAUkmO,OAE9F/J,EAAcjmO,UAAUkwO,sBAAwB,WAE5C,GAAIzsO,KAAK2iO,YACL,MAAO,GAGX,IAAI+J,EAAS1sO,KAAK+jO,WAAa/jO,KAAK2sO,oBAAoB3sO,KAAK+K,QAAQojL,WAAanuL,KAAK+K,QAAQm1I,OAC3F0sF,EAAwB5sO,KAAK6sO,sBAAsBH,GAEnDI,EAAqB9sO,KAAK+K,QAAQ+pL,cAAgB83C,EAAwB5sO,KAAK+tG,MAAMg/H,0BAA0BC,qBAAqBJ,GACpI5rB,EAAyBhhN,KAAK+tG,MAAM+B,mBAAmBkxG,yBAC3D,OAAOA,EAAyB,QAAU8rB,EAAqB,OAAS,yBAA2BA,EAAqB,QAE5HtK,EAAcjmO,UAAU0wO,kBAAoB,WACxC,IAAIC,EAAyBltO,KAAK+tG,MAAM+B,mBAAmB+3G,4BAC3D,GAAsC,oBAA3BqlB,EAGX,OAAOA,EAAuBltO,KAAK+K,UAEvCy3N,EAAcjmO,UAAU4wO,qBAAuB,SAAUn4H,GACrD,IAAI5xG,EAAS,CACT2H,QAAS/K,KAAK+K,QACdu4N,WAAYtjO,KAAKsjO,WACjBW,UAAWjkO,KAAKikO,UAChBf,UAAWljO,KAAKkjO,UAChBO,SAAUzjO,KAAKyjO,SACf2J,aAAcptO,KAAK+lO,cACnB8F,eAAgB7rO,KAAKyrO,mBACrBK,cAAe9rO,KAAK0rO,kBACpB/I,YAAa3iO,KAAK2iO,YAClB5/G,WAAY/iH,KAAK+K,QAAQ+2G,eACzB4pF,MAAO1rM,KAAK0rM,MACZ12F,OAAQA,GAEZ,OAAOh1G,KAAK+tG,MAAM21H,sBAAsByJ,qBAAqB/pO,IAEjEo/N,EAAcjmO,UAAU8wO,gCAAkC,WACtD,IAAId,EAAYvsO,KAAKwsO,+BACrB,OAAOxxE,GAAuBuxE,IAElC/J,EAAcjmO,UAAUiwO,6BAA+B,WAEnD,IAAI3mB,EAAW7lN,KAAK+tG,MAAM+B,mBAAmB81G,cAC7C,IAAIC,GAAgC,oBAAbA,EAAvB,CAKA,IACIynB,EADAC,EAAevtO,KAAK+tG,MAAM+B,mBAAmBk2G,kBAEjD,GAAIunB,EAAc,CACd,IAAInqO,EAAS,CACT7C,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACX60I,SAAU5/I,KAAK+K,QAAQ60I,SACvBorF,OAAQhrO,KAAK0rM,MACb9hM,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAE3C80H,EAAqBC,EAAanqO,GAEtC,OAAO6E,GAAO,GAAI49M,EAAUynB,GAlBxBrqO,QAAQkD,KAAK,4GAoBrBq8N,EAAcjmO,UAAU0hO,cAAgB,WACpC,IAAIl+N,EAAQC,KACRg+J,EAAWh+J,KAAK+K,QAAQgpL,aAC5B/zL,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIt2D,EAAOs2D,EAAQ79N,SACnB03J,GAAgB6P,EAAM5P,GACtB3Z,GAAoBupB,EAAM,kBAAmB5P,GAC7Cj+J,EAAMytO,iBAAiB5/D,EAAM5P,OAGrCwkE,EAAcjmO,UAAUixO,iBAAmB,SAAUh7N,EAAMwrJ,GACvD,GAAIA,GAAYh+J,KAAK+tG,MAAM+B,mBAAmBwvG,2BAC1C9sM,EAAKqzI,gBAAgB,kBADzB,CAIA,IAAIgwB,EAAY71K,KAAK+tG,MAAM+B,mBAAmBygC,oBAC1CgsB,EAAQsZ,EAAU7X,EAAW,kBAAoB,gBAAiB,mBAAqBA,EAAW,WAAa,UAAY,cAC/H1B,GAAa9pJ,EAAM+pJ,KAEvBimE,EAAcjmO,UAAUkxO,6BAA+B,WACnD,OAAOztO,KAAK0iO,4BAEhBF,EAAcjmO,UAAUmxO,sBAAwB,SAAUvI,GACtD,IAAIplO,EAAQC,KAGPA,KAAKw7G,SAUVx7G,KAAKmnH,mBAAmBg+G,EAAM,cAAc,WAAc,OAAOplO,EAAMgL,QAAQohK,kBAC/EnsK,KAAKmnH,mBAAmBg+G,EAAM,cAAc,WAAc,OAAOplO,EAAMgL,QAAQqhK,kBAE/EpsK,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQwI,mBAAmB,WAIxD12L,EAAMguG,MAAM+B,mBAAmB8xG,+BAChC99D,GAAYqhF,EAAM,mBAG1BnlO,KAAKmnH,mBAAmBnnH,KAAK+K,QAASkjL,GAAQyI,mBAAmB,WAC7DxyC,GAAeihF,EAAM,qBAO7B3C,EAAcjmO,UAAUowO,oBAAsB,SAAUzsF,GACpD,IAAIgoD,EAAcloM,KAAK+tG,MAAMo6F,mBAAmBC,wBAC5CxkK,EAAQskK,EAAYylC,mBAAmBC,qBACvCC,EAAW7tO,KAAK6sO,sBAAsBjpM,EAAMs0C,KAAK,GAAQ,IACzD41J,EAAW9tO,KAAK6sO,sBAAsBjpM,EAAMu0C,QAAQ,GAAQ,IAChE,OAAOjjE,KAAKsM,IAAItM,KAAKuM,IAAIosN,EAAU3tF,GAAS4tF,IAEhDtL,EAAcjmO,UAAUyqH,sBAAwB,WAC5C,OAAOhnH,KAAK+tG,MAAMgC,oBAEtByyH,EAAcjmO,UAAU6qO,mBAAqB,WAIzC,GAAI3mI,EAAOzgG,KAAK+K,QAAQk1I,WAAY,CAChC,IAAI8tF,EAAa/tO,KAAK+K,QAAQk1I,UAAY,KAC1CjgJ,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAAW,OAAOA,EAAQ79N,SAAS8xC,MAAMyiC,OAASmzJ,OAG7FvL,EAAcjmO,UAAUi0G,iBAAmB,SAAUpnG,EAAWqnG,GAC1C,uBAAdrnG,GAAoD,eAAdA,IACtCA,EAAYujH,GAAO+C,0BACnBzsH,QAAQkD,KAAK,qEAAuEwmH,GAAO+C,4BAE/F7qH,EAAOtI,UAAUi0G,iBAAiB5yG,KAAKoC,KAAMoJ,EAAWqnG,IAE5D+xH,EAAcjmO,UAAUm0G,oBAAsB,SAAUtnG,EAAWqnG,GAC7C,uBAAdrnG,GAAoD,eAAdA,IACtCA,EAAYujH,GAAO+C,0BACnBzsH,QAAQkD,KAAK,oFAAsFwmH,GAAO+C,4BAE9G7qH,EAAOtI,UAAUm0G,oBAAoB9yG,KAAKoC,KAAMoJ,EAAWqnG,IAG/D+xH,EAAcjmO,UAAUyxO,iBAAmB,WACvChuO,KAAKw7G,QAAS,EAGdx7G,KAAKiuO,uBACL,IAAI7mO,EAAQpH,KAAK8pO,eAAen9G,GAAO+C,2BACvC1vH,KAAKyM,cAAcrF,GACnBpH,KAAK+tG,MAAMsG,aAAa5nG,cAAcrF,GACtCvC,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCwiO,EAAcjmO,UAAU0xO,qBAAuB,WAC3C,IAAIC,EAA0D,MAAvBluO,KAAK+K,QAAQm1I,OACpD,GAAIguF,EAAkC,CAKlC,IAAIhuF,EAASlgJ,KAAK2sO,oBAAoB3sO,KAAK+K,QAAQm1I,QACnDlgJ,KAAKgxL,UAAU9wC,QAGflgJ,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/BpgF,GAAYogF,EAAQ79N,SAAU,uBAI1Cm8N,EAAcjmO,UAAU4xO,kBAAoB,WACxCnuO,KAAK4iO,YAAYrkO,SAAQ,SAAUmG,GAAK,OAAOA,EAAE0B,aACjDpG,KAAK4iO,YAAYnlO,OAAS,GAE9B+kO,EAAcjmO,UAAUwrO,mBAAqB,WACzC,IAAIzE,EAAatjO,KAAK+tG,MAAMksE,gBAAgBspD,aAAavjO,KAAK+K,QAAQ60I,SAAU5/I,KAAK+K,QAAQwkL,WACzF+zC,IAAetjO,KAAKsjO,aACpBtjO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIiB,EAAOjB,EAAQ79N,SACnBg+I,GAAoB8gF,EAAM,eAAgB7B,GAC1Cj/E,GAAoB8gF,EAAM,mBAAoB7B,MAElDtjO,KAAKsjO,WAAaA,IAGjBA,GAActjO,KAAKumO,YACpBvmO,KAAKmxM,aAAY,IAGzBqxB,EAAcjmO,UAAUyrO,oBAAsB,WAC1C,IAAIoG,EAAcpuO,KAAK+tG,MAAMyxC,gBAAgB4jF,iBAGzCpjO,KAAKmjO,iBAAmBiL,IACxBpuO,KAAKmjO,eAAiBiL,EACtBpuO,KAAKgkO,iBAGbxB,EAAcjmO,UAAUynO,aAAe,WACnChkO,KAAKgxL,UAAUhxL,KAAK+K,QAAQm1I,SAEhCsiF,EAAcjmO,UAAUqrO,+BAAiC,WAErD5nO,KAAKgkO,gBAKTxB,EAAcjmO,UAAUswO,sBAAwB,SAAUwB,EAAO3pI,GAE7D,QADgB,IAAZA,IAAsBA,GAAU,GAChC1kG,KAAK+K,QAAQ+pL,cACb,OAAOu5C,EAEX,IAAIC,EAActuO,KAAK+tG,MAAMyxC,gBAAgB+uF,iBACzCC,EAAa9pI,EAAU,GAAK,EAChC,OAAO2pI,EAASC,EAAcE,GAElChM,EAAcjmO,UAAUy0L,UAAY,SAAU07C,GAE1C,IAAI1sO,KAAK2iO,aAKLliI,EAAOisI,GAAS,CAChB,IAAIE,EAAwB5sO,KAAK6sO,sBAAsBH,GACnDI,EAAqB9sO,KAAK+K,QAAQ+pL,cAAgB83C,EAAwB5sO,KAAK+tG,MAAMg/H,0BAA0BC,qBAAqBJ,GACpI6B,EAAU3B,EAAqB,KAC/B4B,EAAyB1uO,KAAK+tG,MAAM+B,mBAAmBkxG,yBAC3DhhN,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIt2D,EAAOs2D,EAAQ79N,SACfqoO,EACA9gE,EAAKz1H,MAAM+/B,IAAMu2J,EAGjB7gE,EAAKz1H,MAAMouD,UAAY,cAAgBkoI,EAAU,SAKjEjM,EAAcjmO,UAAUoyO,WAAa,WACjC,OAAO3uO,KAAK+K,SAEhBy3N,EAAcjmO,UAAU0oO,yBAA2B,SAAUv9N,GACzD,IAAIknO,EAAY5uO,KAAK4iO,YAAYn7N,KAAI,SAAU+nJ,GAAM,OAAOA,EAAGq/E,YAAYnnO,EAAOs1G,eAC9EgoH,EAAWj3M,EAAK6gN,GAAW,SAAUlqO,GAAK,QAASA,KACvD,GAAIsgO,EACA,OAAOA,EAEX,IAAI8J,EAAmB9uO,KAAK4iO,YAAYn7N,KAAI,SAAU+nJ,GAAM,OAAOA,EAAGu/E,mBAAmBrnO,MAEzF,OADAs9N,EAAWj3M,EAAK+gN,GAAkB,SAAUpqO,GAAK,QAASA,KACnDsgO,GAAY,MAEvBxC,EAAcjmO,UAAU8qO,kBAAoB,WAIX,MAAzBrnO,KAAK+K,QAAQ60I,WACb5/I,KAAK+nO,qBACL/nO,KAAKgvO,qBAGbxM,EAAcjmO,UAAUyyO,iBAAmB,WACvC,IAAIjvO,EAAQC,KACRivO,EAAcjvO,KAAK+K,QAAQukL,oBAC3B4zC,EAAYljO,KAAK+K,QAAQ60I,SAAW,IAAM,EAC1CsvF,EAAmBlvO,KAAKkjO,YAAcA,EACtChkF,EAAiBl/I,KAAK+tG,MAAMohI,wBAAwB3yG,oBACpD0yG,IACAlvO,KAAKkjO,UAAYA,GAErBljO,KAAK4iO,YAAYrkO,SAAQ,SAAU2lO,GAC/B,IAAIiB,EAAOjB,EAAQ79N,SACnB8+N,EAAK//G,aAAa,YAAa6pH,GAC/B1xE,GAAgB4nE,EAAMjmF,EAAiBn/I,EAAMgL,QAAQ60I,SAAW,GAC3DsvF,IAGL7qF,GAAoB8gF,EAAM,cAAejC,GACzC7+E,GAAoB8gF,EAAM,cAAejC,QAIjDV,EAAcjmO,UAAU6yO,wBAA0B,WAC9C,OAAOpvO,KAAKokO,YAAcpkO,KAAKokO,YAAY/9N,cAAWhH,GAG1DmjO,EAAcjmO,UAAU8yO,yBAA2B,WAC/C,OAAOrvO,KAAKskO,aAAetkO,KAAKskO,aAAaj+N,cAAWhH,GAG5DmjO,EAAcjmO,UAAU+yO,kBAAoB,WACxC,OAAOtvO,KAAKwkO,cAAgBxkO,KAAKwkO,cAAcn+N,cAAWhH,GAG9DmjO,EAAcjmO,UAAUgzO,uBAAyB,WAC7C,OAAOvvO,KAAK0kO,iBAAmB1kO,KAAK0kO,iBAAiBr+N,cAAWhH,GAEpEmjO,EAAcgN,0BAA4B,cACnChN,EAx7BuB,CAy7BhC57G;;;;;;;CAQF,SAAW6oH,GACPA,EAAoBA,EAAoB,QAAU,GAAK,OACvDA,EAAoBA,EAAoB,SAAW,GAAK,SAF5D,CAGG5gO,EAAQ4gO,sBAAwB5gO,EAAQ4gO,oBAAsB,KACjE,SAAWC,GACPA,EAAcA,EAAc,SAAW,GAAK,QAC5CA,EAAcA,EAAc,aAAe,GAAK,YAFpD,CAGG7gO,EAAQ6gO,gBAAkB7gO,EAAQ6gO,cAAgB;;;;;;;AAQrD,IAyjLIC,GAzjLAC,GAAoD,WACpD,IAAI3rO,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDurO,GAAoC,SAAUhrO,GAE9C,SAASgrO,EAAmB13H,GACxB,IAAIp4G,EAAQ8E,EAAOjH,KAAKoC,KAAM,iDAAuDA,KAGrF,OAFAD,EAAM+vO,qBAAsB,EAC5B/vO,EAAMo4G,WAAaA,EACZp4G,EA+DX,OApEA6vO,GAAYC,EAAoBhrO,GAOhCgrO,EAAmBtzO,UAAUgwK,UAAY,SAAUnlK,GAC1Ci+J,GAA+BrlK,KAAK8vG,mBAAoB1oG,EAAOpH,KAAKoD,OAAOoP,KAAMxS,KAAKoD,OAAOsE,QAAQ,IACtG1H,KAAKoD,OAAOmpK,UAAUnlK,IAG9ByoO,EAAmBtzO,UAAU8J,OAAS,WAOlC,OAJKrG,KAAK8vO,sBACN9vO,KAAK06B,YAAY16B,KAAKm4G,WAAW9xG,UACjCrG,KAAK8vO,qBAAsB,GAExBjrO,EAAOtI,UAAU8J,OAAOzI,KAAKoC,OAExC6vO,EAAmBtzO,UAAU2I,KAAO,SAAU9B,GAC1C,IAAIrD,EAAQC,KACZA,KAAKoD,OAASA,EACdpD,KAAK8vG,mBAAmBsvG,WAAWp/M,KAAKqG,SAAUwpO,EAAmBE,8BAA8B,GACnG/vO,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM+tG,YAAY/tG,EAAMo4G,eACjEn4G,KAAKmnH,mBAILtiH,EAAOtI,UAAU8J,OAAOzI,KAAKoC,MAAO,UAAWA,KAAKusK,UAAU9hK,KAAKzK,QAEvE6vO,EAAmBtzO,UAAUq5K,iBAAmB,WACxC51K,KAAKm4G,WAAWy9D,kBAChB51K,KAAKm4G,WAAWy9D,oBAGxBi6D,EAAmBtzO,UAAU4xI,SAAW,WACpC,OAAOnuI,KAAKm4G,WAAWg2B,YAE3B0hG,EAAmBtzO,UAAUyzO,oBAAsB,WAC/C,QAAIhwO,KAAKm4G,WAAW63H,qBACThwO,KAAKm4G,WAAW63H,uBAI/BH,EAAmBtzO,UAAU0zO,iBAAmB,WAC5C,QAAIjwO,KAAKm4G,WAAW83H,kBACTjwO,KAAKm4G,WAAW83H,oBAI/BJ,EAAmBtzO,UAAU2zO,iBAAmB,WAC5C,GAAIlwO,KAAKm4G,WAAW+3H,iBAChB,OAAOlwO,KAAKm4G,WAAW+3H,oBAG/BL,EAAmBtzO,UAAU45K,QAAU,WAC/Bn2K,KAAKm4G,WAAWg+D,SAChBn2K,KAAKm4G,WAAWg+D,WAGxB05D,EAAmBtzO,UAAU85K,SAAW,WAChCr2K,KAAKm4G,WAAWk+D,UAChBr2K,KAAKm4G,WAAWk+D,YAGxBw5D,EAAmBE,6BAA+B,qBAC3CF,EArE4B,CAsErC/8D,IAQEq9D,GAAoD,WACpD,IAAIlsO,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD8rO,GAAsD,SAAU/uO,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D0rO,GAA+B,SAAUxrO,GAEzC,SAASwrO,EAActlO,EAASrD,EAAQqmG,EAAOuiI,GAC3C,IAAIvwO,EAAQ8E,EAAOjH,KAAKoC,KAAM,oEAA0EA,KAKxG,OAJAD,EAAMgL,QAAUA,EAChBhL,EAAM2H,OAASA,EACf3H,EAAMguG,MAAQA,EACdhuG,EAAMuwO,MAAQA,EACPvwO,EAoDX,OA3DAowO,GAAYE,EAAexrO,GAS3BwrO,EAAc9zO,UAAUwiJ,cAAgB,WACpC,IAAI6uB,EAAO5tK,KAAKqG,SAChBunK,EAAKlzI,YAAYopI,GAAiB,UAAW9jK,KAAK+tG,MAAM+B,mBAAoB,OAE5E9vG,KAAK0yK,oBAAoB,aAAa,SAAUlmK,GAC5CA,EAAEylM,qBAENjyM,KAAKu/L,gBACLv/L,KAAKuwO,mBAETF,EAAc9zO,UAAUgjM,cAAgB,WACpCv/L,KAAK0yK,oBAAoB,YAAa1yK,KAAK2/L,YAAYl1L,KAAKzK,QAEhEqwO,EAAc9zO,UAAUojM,YAAc,SAAU6wC,GAC5C,IAAIzwO,EAAQC,KACRywO,EAAoBzwO,KAAK0H,OAAOm1G,YAAY6zH,mBAC5C90F,EAAO8E,KACN9E,GACD40F,EAAUG,aAAaC,aAAa5wO,KAAKswO,MAAO,EAAG,GAGvD,IAAIO,EAAmB,WACnB,IACI,IAAIC,EAAWr0M,KAAKC,UAAU38B,EAAMgL,QAAQxK,MACxCq7I,EACA40F,EAAUG,aAAaniD,QAAQ,OAAQsiD,IAGvCN,EAAUG,aAAaniD,QAAQ,mBAAoBsiD,GACnDN,EAAUG,aAAaniD,QAAQ,aAAcsiD,IAGrD,MAAOtkO,MAIPikO,EACAA,EAAkB,CAAE1lO,QAAS/K,KAAK+K,QAASylO,UAAWA,IAGtDK,KAGRR,EAAc9zO,UAAUg0O,gBAAkB,WACtC,IAAIx7H,EAAU/0G,KAAK0H,OAAOyxG,YAAYn5G,KAAK+K,SAC3C/K,KAAKwlJ,aAAazwC,IAEtBq7H,GAAa,CACT9hI,IACD+hI,EAAc9zO,UAAW,gBAAiB,MACtC8zO,EA5DuB,CA6DhCzwO,IAQEmxO,GAAoD,WACpD,IAAI9sO,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD0sO,GAAkD,WASlD,OARAA,GAAar0O,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJm8N,GAAW5uO,MAAMpC,KAAMW,YAE9BswO,GAAW,UACXC,GAAiB,gBACjBC,GAAkB,sBAClBC,GAAgB,oBAChBC,GAAkB,sBAClBC,GAAmB,uBACnBC,GAAiB,qBACjBC,GAAiB,gBACjBC,GAAyB,6BACzBC,GAAuB,2BACvBC,GAAyB,6BACzBC,GAAqB,yBACrBC,GAAoB,wBACpBC,GAAqB,yBACrBC,GAAmB,kBACnBC,GAAqB,oBACrBC,GAAkB,sBAClBC,GAAwB,4BACxBC,GAA2B,+BAC3BC,GAAmB,uBACnBC,GAA0B,SAAUxtO,GAEpC,SAASwtO,EAAS3mC,EAAO39F,EAAOrmG,EAAQqD,EAASm5N,EAASoO,EAAgB3P,EAAawC,EAAMoB,GACzF,IAAIxmO,EAAQ8E,EAAOjH,KAAKoC,OAASA,KA2BjC,GA1BAD,EAAMwyO,eAAgB,EACtBxyO,EAAMyyO,aAAc,EACpBzyO,EAAM0yO,qBAAsB,EAC5B1yO,EAAM2yO,uBAAwB,EAC9B3yO,EAAM2rM,MAAQ,KAOd3rM,EAAM4yO,kBAAoB,EAC1B5yO,EAAM6yO,oBAAsB,EAC5B7yO,EAAM2rM,MAAQA,EACd3rM,EAAMguG,MAAQA,EACdhuG,EAAM2H,OAASA,EACf3H,EAAMgL,QAAUA,EAChBhL,EAAMmkO,QAAUA,EAChBnkO,EAAMuyO,eAAiBA,EACvBvyO,EAAM4iO,YAAcA,EACpB5iO,EAAMolO,KAAOA,EACbplO,EAAM8yO,mBACN9yO,EAAM+yO,sBAAwB/yO,EAAMguG,MAAMglI,iBAAmBhlI,EAAM+B,mBAAmByuG,yBACtFx+M,EAAMizO,YAAcjzO,EAAMguG,MAAMksE,gBAAgBg5D,cAAclzO,EAAMqpO,cACpErpO,EAAM+7G,iBAAmB/7G,EAAM2H,OAAOy0G,qBACtCp8G,EAAMk8G,eAAiBl8G,EAAM2H,OAAO00G,mBAChCr8G,EAAM+yO,uBAAyB/yO,EAAMguG,MAAMglI,gBAAiB,CAC5D,IAAIA,EAAkBhzO,EAAMguG,MAAMglI,gBAClChzO,EAAMmzO,WAAaH,EAAgBI,kBAAkBpzO,EAAMqpO,cAC3DrpO,EAAMwyO,cAAgBxyO,EAAMqzO,mBAchC,OAZArzO,EAAMszO,oBACNtzO,EAAMuzO,kBACNvzO,EAAMwzO,qBACNxzO,EAAMyzO,eACNzzO,EAAMw9G,QAAUx9G,EAAM2H,OAAO41G,WAAWv9G,EAAMgL,SAC9ChL,EAAM4uK,YAAY5uK,EAAM0zO,qBACxB1zO,EAAM2zO,gBAGFnN,GACAxmO,EAAMosO,wBAEHpsO,EAguDX,OA9wDAgxO,GAAYsB,EAAUxtO,GAgDtBwtO,EAAS91O,UAAUk3O,kBAAoB,WACnC,IAAIE,EAAgB3zO,KAAK+tG,MAAM+B,mBAAmBkgH,4BAAqD,GAAvB,qBAC5E4jB,EAAgB,GAChBlvM,EAAM1kC,KAAK0H,OACX4xC,EAAQt5C,KAAK6zO,eACb77J,EAAOh4E,KAAK8zO,yBAAyB9zO,KAAK+zO,eAC1CC,EAAgBh0O,KAAKi0O,0BACrBC,EAAiB7zO,GAAIL,KAAK0H,OAAQ,kBAAmB,MAAQssO,EAAgBhgH,GAAaggH,GAC9Fh0O,KAAKw7E,QAAUx7E,KAAKm0O,aACpB,IAAIC,EAAmBpgH,GAAah0H,KAAKw7E,SACrC64J,EAAiBrgH,GAAatvF,EAAI2yE,SAClCi9H,EAAmBt0O,KAAKu0O,6BACxBtwF,EAAajkJ,KAAKw0O,uBAClBC,EAAuBz0O,KAAK00O,0BAC5BC,EAAkB3gH,GAAah0H,KAAK+tG,MAAMoxC,iBAAiBphB,mBAAmB/9H,KAAK0H,QAAQ/J,YAuB/F,OAtBAi2O,EAAct0O,KAAK,QACnBs0O,EAAct0O,KAAK,kBACnBs0O,EAAct0O,KAAK,GAAKq0O,GACxBC,EAAct0O,KAAK,oBACnBs0O,EAAct0O,KAAK,mBAAsBq1O,EAAkB,KAC3Df,EAAct0O,KAAK,aAAgBU,KAAK+uK,YAAc,MACtD6kE,EAAct0O,KAAK,YAAe+0O,EAAiB,KACnDT,EAAct0O,KAAK,WAAc00H,GAAaiwB,EAAWjzI,KAAK,MAAQ,KAClEhR,KAAK+tG,MAAM+B,mBAAmBg/D,2BAA6BruE,EAAO2zI,IAClER,EAAct0O,KAAK,WAAc80O,EAAmB,KAEpDp0O,KAAK8yO,uBACLc,EAAct0O,KAAK,oBAAuBU,KAAKkzO,WAAa,OAAS,SAAW,KAEpFU,EAAct0O,KAAK,kBAAqBs9B,OAAO0c,GAAS,aAAe1c,OAAOo7C,GAAQ,OAASg8C,GAAasgH,GAAoB,IAAMtgH,GAAaygH,GAAwB,MACvKz0O,KAAK40O,aACLhB,EAAct0O,KAAKU,KAAK60O,qBAAqBX,IAEtB,MAAlBA,GACLN,EAAct0O,KAAK40O,GAEvBN,EAAct0O,KAAK,UACZs0O,EAAc5iO,KAAK,KAE9BqhO,EAAS91O,UAAUs4O,qBAAuB,SAAUn4O,QAClC,IAAVA,IAAoBA,EAAQ,IAChC,IAAIi3O,EAAgB3zO,KAAK+tG,MAAM+B,mBAAmBkgH,4BAAqD,GAAvB,qBAC5E5qN,EAAqB,uIAAoJ8rO,GAAiB,IAAOyC,EAAe,uBAAkC,MAATj3O,EAAgBA,EAAQ,IAAM,wCAC3Q,OAAO0I,GAEXitO,EAAS91O,UAAUm4O,wBAA0B,WACzC,GAAqB,IAAjB10O,KAAKu9G,QACL,MAAO,GAEX,IAAIu3H,EAAkB90O,KAAK+tG,MAAM+B,mBAAmBmnH,uBAChD8d,EAAiBD,EAAkB90O,KAAKu9G,QAC5C,MAAO,WAAaw3H,EAAiB,mBAEzC1C,EAAS91O,UAAUm3O,cAAgB,WAE/B1zO,KAAKg1O,aACLh1O,KAAKi1O,mBACLj1O,KAAKk1O,4BAA2B,GAChCl1O,KAAKm1O,kBACLn1O,KAAKo1O,gBACD30I,EAAOzgG,KAAKw7E,UACZx7E,KAAKq1O,gCAGbhD,EAAS91O,UAAU84O,6BAA+B,WAC1Cr1O,KAAK+tG,MAAM+B,mBAAmBg/D,2BAC9B9uK,KAAK0yO,wBAGT1yO,KAAKsnH,kBAAkB,IAAIkkD,GAAexrK,MAAOA,KAAK+tG,MAAM1E,SAC5DrpG,KAAK0yO,uBAAwB,IAEjCL,EAAS91O,UAAU+4O,cAAgB,WAC/B,IAAIC,EAAYv1O,KAAK+tG,MAAMynI,mBAAmBD,UAAUv1O,KAAK0H,QAC7D1H,KAAKqkJ,oBAAoB0tF,GAAkBwD,IAE/ClD,EAAS91O,UAAU8rO,cAAgB,SAAUjhO,GACzC,IAAIquO,EAAuBruO,EAAMM,SAAW1H,KAAK0H,OAC7C+tO,GACAz1O,KAAKsoO,YAAY,KAGzB+J,EAAS91O,UAAUw3O,YAAc,WAC7B,IAAI2B,EAOJ,OALIA,EADA11O,KAAK+tG,MAAM+B,mBAAmB6Q,eAAiB3gH,KAAK21O,aACtCx5J,EAAKn8E,KAAK21O,cAGV31O,KAAK0H,OAEhBguO,EAAY36H,WAEvBs3H,EAAS91O,UAAUs3O,aAAe,WAC9B,OAAK7zO,KAAK21O,aAGH31O,KAAK21O,aAAartO,QAAO,SAAUgxC,EAAO5U,GAAO,OAAO4U,EAAQ5U,EAAIw4E,mBAAqB,GAFrFl9G,KAAK0H,OAAOw1G,kBAI3Bm1H,EAAS91O,UAAUq5O,aAAe,SAAUxuO,GACxC,IAAIyuO,EAAS71O,KAAK+tG,MAAM+nI,kBAAkBC,SAAS/1O,KAAKopO,cACpD4M,EAAc5uO,EAAM24I,MAAM81F,GAC1BG,GACAh2O,KAAKi2O,YAAY,cAGzB5D,EAAS91O,UAAUi3O,aAAe,WAE1B7yI,EAAQ3gG,KAAKk2O,qBAAqB74H,WAItCr9G,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAMsG,aAAcsY,GAAOc,gCAAiCztH,KAAKm2O,wBAAwB1rO,KAAKzK,OAK3HA,KAAKmnH,mBAAmBnnH,KAAK+tG,MAAMsG,aAAcsY,GAAOoE,sCAAuC/wH,KAAKo2O,eAAe3rO,KAAKzK,OACxHA,KAAK21O,aAAe31O,KAAKq2O,uBAE7BhE,EAAS91O,UAAU85O,mBAAqB,WACpC,IAAIh5H,EAAUr9G,KAAK0H,OAAO01G,WAAWp9G,KAAK+K,SACtC4qO,EAAe,GAEnB,GAAgB,IAAZt4H,EACAs4H,EAAar2O,KAAKU,KAAK0H,aAKvB,IAFA,IAAIu+G,EAAUjmH,KAAK0H,OACfstG,EAASh1G,KAAK0H,OAAO80G,YAChBj/G,EAAI,EAAG0oH,GAAW1oH,EAAI8/G,EAAS9/G,IAAK,CAGzC,GAFAo4O,EAAar2O,KAAK2mH,GAClBA,EAAUjmH,KAAK+tG,MAAMoxC,iBAAiB1lB,qBAAqBxT,IACtDA,GAAWtlB,EAAQslB,GACpB,MAGJ,GAAIjR,IAAWiR,EAAQzJ,YACnB,MAIZ,OAAOm5H,GAEXtD,EAAS91O,UAAU45O,wBAA0B,WACzC,IAAIR,EAAe31O,KAAKq2O,qBACnBjzI,EAASpjG,KAAK21O,aAAcA,KAC7B31O,KAAK21O,aAAeA,EACpB31O,KAAKo2O,iBACLp2O,KAAKs2O,kBAGbjE,EAAS91O,UAAUg6O,iBAAmB,WAClC,IAAIC,EAASx2O,KAAK+tG,MAAMoxC,iBAAiBphB,mBAAmB/9H,KAAK0H,QACjEg2J,GAAgB19J,KAAKqG,SAAUmwO,IAEnCnE,EAAS91O,UAAUi4O,qBAAuB,WACtC,IAAIvwF,EAAa,CAACgtF,GAAUU,IAGvB3xO,KAAKsyO,gBACNruF,EAAW3kJ,KAAK6xO,IAEpB,IAAIsF,GAAiBz2O,KAAK+tG,MAAM+B,mBAAmB0yG,0BAyBnD,OAxBIi0B,GAAiBz2O,KAAKgzO,aAEtB/uF,EAAW3kJ,KAAKkyO,IAEhBxxO,KAAK87G,kBACLmoC,EAAW3kJ,KAAKmyO,IAEhBzxO,KAAKi8G,gBACLgoC,EAAW3kJ,KAAKoyO,IAEhB1xO,KAAK+tG,MAAMynI,mBAAmBD,UAAUv1O,KAAK0H,SAC7Cu8I,EAAW3kJ,KAAKyyO,IAEpBltI,EAAQo/C,EAAYjkJ,KAAK02O,+BACzB7xI,EAAQo/C,EAAYjkJ,KAAK22O,4BACzB9xI,EAAQo/C,EAAYjkJ,KAAK42O,0BAEpB52O,KAAK40O,cACN3wF,EAAW3kJ,KAAK4xO,IAEpBlxO,KAAK62O,SAA+C,GAApC72O,KAAK0H,OAAOm1G,YAAYg6H,SACpC72O,KAAK62O,UACL5yF,EAAW3kJ,KAAK0yO,IAEb/tF,GAEXouF,EAAS91O,UAAU03O,wBAA0B,WAEzC,GAAIj0O,KAAK82O,kBACL,MAAoC,kBAAzB92O,KAAK+2O,gBACL/2O,KAAK+2O,gBAET,GAEX,IAAInvO,EAAS5H,KAAKk2O,qBAClB,GAAItuO,EAAOw/I,SAGP,OAAOx/I,EAAOw/I,SAElB,GAAIx/I,EAAOovO,YAAa,CAIpB,IAAI5vF,EAAWpnJ,KAAK+tG,MAAMkpI,gBAAgBC,YAAYtvO,EAAOovO,YAAah3O,KAAKsoO,YAAY79N,KAAKzK,MAAM,IACtG,OAAOonJ,GAAY,GAEvB,OAAOpnJ,KAAKm3O,iBAEhB9E,EAAS91O,UAAU66O,eAAiB,WAChC,OAAOp3O,KAAKkkO,SAEhBmO,EAAS91O,UAAUo8G,oBAAsB,WACrC,OAAO34G,KAAK0H,OAAOixG,oBAAoB34G,KAAK+K,UAEhDsnO,EAAS91O,UAAU86O,gBAAkB,WACjC,OAAOr3O,KAAK47J,cAEhBy2E,EAAS91O,UAAU+6O,cAAgB,WAC/B,OAAOt3O,KAAKm4G,YAEhBk6H,EAAS91O,UAAUg7O,mBAAqB,WACpCv3O,KAAKw3O,sBACLx3O,KAAKy3O,6BAETpF,EAAS91O,UAAUi7O,oBAAsB,WACrC,IAAI96H,EAA+C,GAApC18G,KAAK0H,OAAOm1G,YAAYg6H,SACnCn6H,IAAa18G,KAAK62O,WAClB72O,KAAK62O,SAAWn6H,EAChB18G,KAAKqkJ,oBAAoB2tF,GAAoBhyO,KAAK62O,YAS1DxE,EAAS91O,UAAU+rO,YAAc,SAAUllO,GAEvC,IAAIpD,KAAKyyO,sBAAuBzyO,KAAKwyO,YAArC,CAGA,IAAI5qO,EAAS5H,KAAKk2O,qBACd/mD,EAAU/rL,GAAUA,EAAO+rL,QAC3Bo5C,EAAiBnlO,GAAUA,EAAOmlO,eAAkB3gO,EAAO8vO,kBAO3DC,EAAkC,MAAhB/vO,EAAO8yC,OAAuC,MAAtB9yC,EAAO4lI,aAA8C,MAAvB5lI,EAAOqvG,aAC/E2gI,EAAgBx0O,GAAUA,EAAOw0O,cAAiBD,GAAmBxoD,EACrE0D,EAAW7yL,KAAKtD,MAEpBsD,KAAKtD,MAAQsD,KAAKmuI,WAIlB,IAAI0pG,GAAmB73O,KAAK83O,eAAejlD,EAAU7yL,KAAKtD,OACtDq7O,EAAoBH,GAAgBC,EACxC,GAAIE,EAAmB,CAEnB/3O,KAAKwrM,eAAiBxrM,KAAK+tG,MAAM09F,sBAAsBl1B,YAAYv2K,KAAK0H,OAAQ1H,KAAK+K,QAAS/K,KAAK0rM,MAAO1rM,KAAKtD,OAI/G,IAAIs7O,GAAwB7oD,GAAkBnvL,KAAKi4O,6BAI9CD,GACDh4O,KAAKk4O,8BAIT,IAAIC,EAAyBn4O,KAAK+tG,MAAM4hG,cAAcC,0CAClDwoC,GAAa7P,IAAkB4P,IAC9Bn4O,KAAK+tG,MAAM+B,mBAAmBwxG,2BAA6B15M,EAAO25M,uBACnE62B,GACAp4O,KAAKo4O,YAGTp4O,KAAKq4O,8BACLr4O,KAAKs4O,+BAITt4O,KAAKu4O,gCACLv4O,KAAKw4O,iBAGLx4O,KAAKy3O,8BAGTpF,EAAS91O,UAAU67O,UAAY,SAAUK,GACrC,IAAIC,EAAaD,GAAUA,EAAOC,WAC9BC,EAAYF,GAAUA,EAAOE,UACjC34O,KAAKi2O,YAAY,eAAgByC,EAAYC,IAEjDtG,EAAS91O,UAAU05O,YAAc,SAAU2C,EAASF,EAAYC,GAC5D,IAAI54O,EAAQC,KACR64O,EAAW,WAAaD,EACxBE,EAAoB,WAAaF,EAAU,aAC3CzuJ,EAAUnqF,KAAKqG,SACfypG,EAAqB9vG,KAAK+tG,MAAM+B,mBAC/B4oI,IACDA,EAAa5oI,EAAmB0xG,qBAE/B/gH,EAAOk4I,KACRA,EAAY7oI,EAAmB4xG,oBAGnC1hN,KAAK8jJ,YAAY+0F,GACjB74O,KAAKkkJ,eAAe40F,GAEpBvtO,OAAOE,YAAW,WACd1L,EAAMmkJ,eAAe20F,GACrB94O,EAAM+jJ,YAAYg1F,GAClB3uJ,EAAQhyC,MAAM4gM,WAAa,oBAAsBJ,EAAY,KAC7DptO,OAAOE,YAAW,WAEd1L,EAAMmkJ,eAAe40F,GACrB3uJ,EAAQhyC,MAAMuxG,eAAe,gBAC9BivF,KACJD,IAEPrG,EAAS91O,UAAU27O,4BAA8B,WAC7Cl4O,KAAKszO,kBACL5rF,GAAa1nJ,KAAKg5O,YAElBh5O,KAAK47J,aAAe57J,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAK47J,cACxD57J,KAAK+2O,gBAAkB,KAEvB/2O,KAAKi5O,8BACLj5O,KAAKu4O,iCAETlG,EAAS91O,UAAUg8O,8BAAgC,WAC3Cv4O,KAAK+tG,MAAM+B,mBAAmBw6G,wBAA0BtqN,KAAK0rM,QAC7D1rM,KAAK0rM,MAAMnrM,KAAOywO,GAAW,GAAIhxO,KAAK+K,QAAQxK,MAC9CP,KAAKm1O,oBAGb9C,EAAS91O,UAAU44O,gBAAkB,WAEjC,GAAIn1O,KAAK+tG,MAAM+B,mBAAmBw6G,uBAAwB,CACtD,IAAI18C,EAAO5tK,KAAKqG,SAGhB,IAAKunK,EAAK5pB,UAAUppD,SAAS,aAA0C,IAA3BgzE,EAAKsrE,kBAAyB,CACtE,IAAIC,EAAoBn5O,KAAK+tG,MAAMk9H,SAASr9D,EAApB5tK,CAA0BA,KAAK0rM,OACvD1rM,KAAKqnH,gBAAe,WAAc,OAAO8xH,EAAkBh1F,eAIvEkuF,EAAS91O,UAAU87O,4BAA8B,WAC7C,IAAIp9E,EAAcj7J,KAAKo5O,0BACnBn+E,GACA7R,GAAmBppJ,KAAKqG,SAAU40J,IAG1Co3E,EAAS91O,UAAUg4O,2BAA6B,WAC5C,OAAOv5E,GAAuBh7J,KAAKo5O,4BAEvC/G,EAAS91O,UAAU68O,wBAA0B,WACzC,IAAIxxO,EAAS5H,KAAKk2O,qBAClB,GAAItuO,EAAOo3F,UAAW,CAClB,IAAIq6I,OAAW,EACf,GAAgC,oBAArBzxO,EAAOo3F,UAA0B,CACxC,IAAIs6I,EAAkB,CAClB5xO,OAAQ1H,KAAK0H,OACbhL,MAAOsD,KAAKtD,MACZkL,OAAQA,EACRrH,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACX60I,SAAU5/I,KAAK+K,QAAQ60I,SACvBorF,OAAQhrO,KAAK0rM,MACb9hM,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAEvC+gI,EAAgB3xO,EAAOo3F,UAC3Bq6I,EAAWE,EAAcD,QAGzBD,EAAWzxO,EAAOo3F,UAEtB,OAAOq6I,IAGfhH,EAAS91O,UAAU+7O,6BAA+B,WAC9C,IAAIv4O,EAAQC,KACZA,KAAKw5O,0BAAyB,SAAUz1F,GAAa,OAAOhkJ,EAAM+jJ,YAAYC,OAElFsuF,EAAS91O,UAAUm6O,4BAA8B,WAC7C,IAAIp5M,EAAM,GAEV,OADAt9B,KAAKw5O,0BAAyB,SAAUz1F,GAAa,OAAOzmH,EAAIh+B,KAAKykJ,MAC9DzmH,GAEX+0M,EAAS91O,UAAUi9O,yBAA2B,SAAUC,GACpD,IAAI7xO,EAAS5H,KAAKk2O,qBACdwD,EAAkB,CAClBh9O,MAAOsD,KAAKtD,MACZ6D,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACXnD,OAAQA,EACRg4I,SAAU5/I,KAAK+K,QAAQ60I,SACvBorF,OAAQhrO,KAAK0rM,MACb9hM,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAE3Cx4G,KAAK+tG,MAAM4rI,eAAeC,yBAAyBhyO,EAAQ8xO,EAAiBD,IAEhFpH,EAAS91O,UAAU08O,4BAA8B,WAE7C,IAAIrxO,EAAS5H,KAAKk2O,qBAClB,GAAItuO,EAAOw/I,SAGPpnJ,KAAKg5O,WAAWnvJ,UAAYjiF,EAAOw/I,cAElC,GAAIx/I,EAAOovO,YAAa,CAIzB,IAAI5vF,EAAWpnJ,KAAK+tG,MAAMkpI,gBAAgBC,YAAYtvO,EAAOovO,YAAah3O,KAAKsoO,YAAY79N,KAAKzK,MAAM,IAClGonJ,IACApnJ,KAAKg5O,WAAWnvJ,UAAYu9D,QAOhC,GADApnJ,KAAKuzO,qBACDvzO,KAAK82O,kBACL92O,KAAKk1O,iCAEJ,CACD,IAAI7lC,EAAarvM,KAAKm3O,gBACJ,MAAd9nC,IACArvM,KAAKg5O,WAAWnvJ,UAAYmqC,GAAaq7E,IAAe,MAKxEgjC,EAAS91O,UAAU07O,2BAA6B,WAC5C,GAAIt3I,EAAQ3gG,KAAK47J,gBAAkB57J,KAAK47J,cAAgBj7D,EAAQ3gG,KAAK47J,aAAarjE,SAC9E,OAAO,EAGX,IAAIn1F,EAASpD,KAAK65O,2BAEdC,EAAc95O,KAAK+tG,MAAMy/D,qBAAqB4tB,kBAAkBp7L,KAAKk2O,qBAAsBl2O,KAAKg6L,iBAAkB52L,GAClHoL,EAASxO,KAAK47J,aAAarjE,QAAQuhJ,GAKvC,OAAkB,IAAXtrO,QAA8BnP,IAAXmP,GAE9B6jO,EAAS91O,UAAUi8O,eAAiB,WAChC,IAAIuB,EAAa/5O,KAAKm0O,aACtB,GAAIn0O,KAAKw7E,UAAYu+J,EAArB,CAGA/5O,KAAKq1O,+BACL,IAAI2E,EAAgBv5I,EAAOs5I,GACvBC,GAAiBh6O,KAAKw7E,UAAYu+J,EAAWp8O,aAGjDqC,KAAKw7E,QAAUu+J,EACX/5O,KAAK+tG,MAAM+B,mBAAmBg/D,4BAC1BkrE,EACAh6O,KAAKg5O,WAAW5zH,aAAa,QAASplH,KAAKw7E,SAG3Cx7E,KAAKg5O,WAAWnzF,gBAAgB,aAI5CwsF,EAAS91O,UAAUu7O,eAAiB,SAAU12I,EAAMC,GAEhD,IAAIz5F,EAAS5H,KAAKk2O,qBACd+D,EAAeryO,EAASA,EAAOyyF,OAAS,KAC5C,OAAO4/I,EAAeA,EAAa74I,EAAMC,GAAQD,IAASC,GAE9DgxI,EAAS91O,UAAU43O,WAAa,WAC5B,IAAIvsO,EAAS5H,KAAKk2O,qBACd31O,EAAOP,KAAK+K,QAAQxK,KACxB,GAAIqH,EAAOwuG,cAAgB3V,EAAOlgG,GAC9B,OAAOmnG,GAAmBnnG,EAAMqH,EAAOwuG,aAAcp2G,KAAK0H,OAAOiwG,8BAErE,IAAI61B,EAAc5lI,EAAOsyO,mBACzB,OAAI1sG,EACOA,EAAYwjG,GAAWA,GAAW,CAAEpnO,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SAAU5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eAAgBrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAAgBx4G,KAAKstK,oBAAqB,CAAE5wK,MAAOsD,KAAKtD,SAE7O,MAEX21O,EAAS91O,UAAU+wK,iBAAmB,WAClC,MAAO,CACHz/J,SAAU,OACVjG,OAAQ5H,KAAKk2O,qBACbxuO,OAAQ1H,KAAK+uI,YACb6Q,SAAU5/I,KAAKopO,aAAaxpF,SAC5BptI,KAAMxS,KAAK+K,QACXxK,KAAMP,KAAK+K,QAAQxK,KACnB7D,MAAOsD,KAAKm6O,iBACZ3uC,eAAgBxrM,KAAKwrM,iBAG7B6mC,EAAS91O,UAAU49O,eAAiB,SAAUC,GAE1C,YADe,IAAXA,IAAqBA,GAAS,GAC3BA,EAASpmH,GAAah0H,KAAKw7E,SAAWx7E,KAAKw7E,SAEtD62J,EAAS91O,UAAU89O,sBAAwB,SAAUZ,EAAmBa,GACpE,IAAI1yO,EAAS5H,KAAKk2O,qBACdwD,EAAkB,CAClBh9O,MAAOsD,KAAKtD,MACZ6D,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACXnD,OAAQA,EACRg4I,SAAU5/I,KAAKopO,aAAaxpF,SAC5Bh2I,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCsyH,OAAQhrO,KAAK0rM,MACbriG,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAE3Cx4G,KAAK+tG,MAAM4rI,eAAeY,kBAAkB3yO,EAAO4yO,eAAgBd,EAAiBD,EAAmBa,IAE3GjI,EAAS91O,UAAUk7O,0BAA4B,WAC3C,IAAI13O,EAAQC,KACZA,KAAKq6O,uBAAsB,SAAUt2F,GAAa,OAAOhkJ,EAAM+jJ,YAAYC,MAAe,SAAUA,GAAa,OAAOhkJ,EAAMmkJ,eAAeH,OAEjJsuF,EAAS91O,UAAUo6O,yBAA2B,WAC1C,IAAIr5M,EAAM,GAKV,OAJAt9B,KAAKq6O,uBAAsB,SAAUt2F,GAAa,OAAOzmH,EAAIh+B,KAAKykJ,MAAe,SAAUnkG,OAIpFtiB,GAGX+0M,EAAS91O,UAAU+2O,gBAAkB,WACjC,IAAI1rO,EAAS5H,KAAKk2O,qBAElB,GAAIl2O,KAAK+K,QAAQwkL,UAKb,OAJAvvL,KAAK40O,cAAe,EACpB50O,KAAKy6O,2BAA4B,EACjCz6O,KAAK06O,6BAA8B,OACnC16O,KAAK26O,2BAA4B,GAGrC,IAAIC,EAAwD,oBAA7BhzO,EAAO0xG,kBAClCuhI,EAA+C,oBAAnBjzO,EAAOsxG,QACnC4hI,EAA8C,oBAArBlzO,EAAOwxG,UACpCp5G,KAAKy6O,0BAA4BG,IAAkD,IAA7BhzO,EAAO0xG,kBAC7Dt5G,KAAK06O,4BAA8BG,IAAyC,IAAnBjzO,EAAOsxG,QAChEl5G,KAAK26O,0BAA4BG,IAAwC,IAArBlzO,EAAOwxG,UAC3D,IAAI2hI,EAAsB/6O,KAAK+tG,MAAM+B,mBAAmBkgH,4BACxDhwN,KAAK40O,aAAemG,GAAuB/6O,KAAK06O,6BAA+B16O,KAAKy6O,2BAA6Bz6O,KAAK26O,2BAE1HtI,EAAS91O,UAAUg3O,mBAAqB,WAEpC,IAAI3rO,EAAS5H,KAAKk2O,qBAGlB,GAAItuO,EAAOw/I,UAAYx/I,EAAOovO,YAC1Bh3O,KAAK82O,mBAAoB,MAD7B,CAIA,IAAI1zO,EAASpD,KAAK65O,2BACd75O,KAAK+K,QAAQwkL,WACbvvL,KAAK+tG,MAAMy/D,qBAAqBsuB,wBAAwBl0L,EAAQ,wBAAyBxE,IACzFpD,KAAKg6L,iBAAmBq4C,EAAS2I,0BACjCh7O,KAAK82O,mBAAoB,GAEpB92O,KAAK+tG,MAAMy/D,qBAAqBsuB,wBAAwBl0L,EAAQ,eAAgBxE,IACrFpD,KAAKg6L,iBAAmBq4C,EAAS4I,0BACjCj7O,KAAK82O,mBAAoB,GAGzB92O,KAAK82O,mBAAoB,IAGjCzE,EAAS91O,UAAU24O,2BAA6B,SAAUgG,GACtD,IAAIn7O,EAAQC,KAEZ,QADuB,IAAnBk7O,IAA6BA,GAAiB,GAC7Cl7O,KAAK82O,kBAAV,CAQA,IAAIvsB,EAAqBvqN,KAAK+tG,MAAM+B,mBAAmBw6G,uBACnDtF,EAAyBhlN,KAAK+tG,MAAM+B,mBAAmBi1G,4BACvDwF,GAAsBvF,GAA0BhlN,KAAKsyO,kBACrD4I,GAAiB,GAErB,IAAI93O,EAASpD,KAAK65O,2BAClB75O,KAAK4yO,sBACL,IAAIltO,EAAW1F,KAAKm7O,yBAAyB1wO,KAAKzK,KAAMA,KAAK4yO,qBACzDwI,EAAyBp7O,KAAKg6L,mBAAqBq4C,EAAS4I,0BAChEj7O,KAAKq7O,uBAAyB,WAC1Bt7O,EAAMs7O,uBAAyB,KAG/B,IAAIC,EAAmBv7O,EAAMguG,MAAMy/D,qBAAqB0sB,gBAAgBn6L,EAAMm2O,qBAAsB9yO,GAASg4O,GACzGE,GACAA,EAAiB3/E,KAAKj2J,IAG1Bw1O,EACAl7O,KAAK+tG,MAAMm4H,UAAUC,WAAWnmO,KAAKq7O,uBAAwBr7O,KAAK+K,QAAQ60I,SAAU,iBAGpF5/I,KAAKq7O,2BAGbhJ,EAAS91O,UAAU4+O,yBAA2B,SAAUvI,EAAqBh3E,GACzE,IAAI2/E,GAA2Bv7O,KAAK+mH,WAAa6rH,IAAwB5yO,KAAK4yO,oBAC1E2I,EACAv7O,KAAK+tG,MAAM1E,QAAQyE,YAAY8tD,IAGnC57J,KAAK47J,aAAeA,EACpB57J,KAAK+2O,gBAAkB/2O,KAAK47J,aAAav1J,SACrCs6F,EAAQ3gG,KAAK+2O,kBAIZ/2O,KAAKwyO,aACNxyO,KAAKg5O,WAAWt+M,YAAY16B,KAAK+2O,mBAGzC1E,EAAS91O,UAAUs9O,yBAA2B,WAC1C,IAAI95O,EAAQC,KACZ,MAAO,CACHtD,MAAOsD,KAAKtD,MACZ8uM,eAAgBxrM,KAAKwrM,eACrBr9D,SAAUnuI,KAAKmuI,SAAS1jI,KAAKzK,MAC7B01K,SAAU,SAAUh5K,GAAS,OAAOqD,EAAMguG,MAAMoyC,aAAau1B,SAAS31K,EAAMgL,QAAShL,EAAM2H,OAAQhL,IACnG65K,YAAav2K,KAAKu2K,YAAY9rK,KAAKzK,MACnCO,KAAMP,KAAK+K,QAAQxK,KACnBiS,KAAMxS,KAAK+K,QACXnD,OAAQ5H,KAAKk2O,qBACbxuO,OAAQ1H,KAAK0H,OACbsjO,OAAQhrO,KAAK0rM,MACb9rD,SAAU5/I,KAAKopO,aAAaxpF,SAC5Bh2I,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,aACvC8vH,YAAatoO,KAAKsoO,YAAY79N,KAAKzK,MACnCktM,UAAWltM,KAAKqG,SAChB6kO,eAAgBlrO,KAAKg5O,WACrB7N,mBAAoB,SAAUC,EAAmB1rC,GAAmB,OAAO3/L,EAAMy7O,eAAepQ,EAAmB1rC,IAMnH+7C,mBAAoBz7O,KAAKkkO,QAAUlkO,KAAKkkO,QAAQ1zH,iBAAiB/lG,KAAKzK,KAAKkkO,SAAW,KACtFoB,uBAAwB,SAAUl8N,EAAWqnG,GACzCxtG,QAAQkD,KAAK,mGACTpG,EAAMmkO,SACNnkO,EAAMmkO,QAAQ1zH,iBAAiBpnG,EAAWqnG,MAK1D4hI,EAAS91O,UAAUg6K,YAAc,SAAU75K,GACvC,IAAI8uM,EAAiBxrM,KAAK+tG,MAAM09F,sBAAsBl1B,YAAYv2K,KAAK0H,OAAQ1H,KAAK+K,QAAS/K,KAAK0rM,MAAOhvM,GACzG,OAAyB,MAAlB8uM,EAAyBA,EAAiB9uM,GAErD21O,EAAS91O,UAAU46O,cAAgB,WAC/B,OAA8B,MAAvBn3O,KAAKwrM,eAAyBxrM,KAAKwrM,eAAiBxrM,KAAKtD,OAEpE21O,EAAS91O,UAAU82O,kBAAoB,WACnCrzO,KAAKtD,MAAQsD,KAAKmuI,WAClBnuI,KAAKwrM,eAAiBxrM,KAAK+tG,MAAM09F,sBAAsBl1B,YAAYv2K,KAAK0H,OAAQ1H,KAAK+K,QAAS/K,KAAK0rM,MAAO1rM,KAAKtD,QAEnH21O,EAAS91O,UAAU4xI,SAAW,WAK1B,IAAIutG,EAAoB17O,KAAK+K,QAAQ+yI,WAAa99I,KAAK+tG,MAAMoxC,iBAAiB5oB,cAC1EolH,EAAc37O,KAAK+K,QAAQmwF,OAASl7F,KAAK+K,QAAQk3G,WAAajiH,KAAK+K,QAAQqtE,SAAWsjK,EAEtFE,EAAsB57O,KAAK+tG,MAAM+B,mBAAmB2iF,uBAEpDopD,EAAyB77O,KAAK+tG,MAAM+B,mBAAmBuyG,6BAGvDy5B,EAAiBH,GAAeC,IAAyBC,EACzDn/O,EAAQsD,KAAK+tG,MAAMoyC,aAAahS,SAASnuI,KAAK0H,OAAQ1H,KAAK+K,SAAS,EAAO+wO,GAC/E,OAAOp/O,GAEX21O,EAAS91O,UAAUmtO,aAAe,SAAUzkH,EAAWsiD,GACnD,IAAI9iD,GAA2B8iD,GAG/B,OAAQtiD,GACJ,IAAK,QACDjlH,KAAK2+F,cAAc4oE,GACnB,MACJ,IAAK,YACDvnK,KAAKssK,YAAY/E,GACjB,MACJ,IAAK,WACDvnK,KAAKy+F,oBAAoB8oE,GACzB,MACJ,IAAK,WACDvnK,KAAK+7O,WAAWx0E,GAChB,MACJ,IAAK,YACDvnK,KAAKg8O,YAAYz0E,GACjB,QAGZ8qE,EAAS91O,UAAU0/O,6BAA+B,SAAU70O,GACxD,IAAIQ,EAAS5H,KAAKk2O,qBACdgG,EAAuBl8O,KAAK4M,YAAYxF,EAAOulH,GAAOmC,yBAC1D9uH,KAAK+tG,MAAMsG,aAAa5nG,cAAcyvO,GAClCt0O,EAAOu0O,mBAEP5wO,OAAOE,YAAW,WAAc,OAAO7D,EAAOu0O,kBAAkBD,KAA0B,IAGlG7J,EAAS91O,UAAUqQ,YAAc,SAAUm9N,EAAU3gO,GACjD,IAAIhC,EAAQ,CACR3H,KAAM2J,EACNoJ,KAAMxS,KAAK+K,QACXxK,KAAMP,KAAK+K,QAAQxK,KACnB7D,MAAOsD,KAAKtD,MACZgL,OAAQ1H,KAAK0H,OACbE,OAAQ5H,KAAKk2O,qBACb7sI,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,aACvC5uG,IAAK5J,KAAK+tG,MAAM9O,QAChBp1F,UAAW7J,KAAK+tG,MAAMlkG,UACtB0lL,UAAWvvL,KAAK+K,QAAQwkL,UACxBnoL,MAAO2iO,EACPnqF,SAAU5/I,KAAK+K,QAAQ60I,UAM3B,OAHI5/I,KAAK0rM,QACLtkM,EAAM4jO,OAAShrO,KAAK0rM,OAEjBtkM,GAEXirO,EAAS91O,UAAUw/O,WAAa,SAAUx0E,GACtC,IAAI60E,EAAoBp8O,KAAK4M,YAAY26J,EAAY56C,GAAO4C,sBAC5DvvH,KAAK+tG,MAAMsG,aAAa5nG,cAAc2vO,GACtCp8O,KAAK+tG,MAAMynI,mBAAmB6G,kBAElChK,EAAS91O,UAAUy/O,YAAc,SAAUz0E,GACvC,IAAI+0E,EAAqBt8O,KAAK4M,YAAY26J,EAAY56C,GAAO2C,uBAC7DtvH,KAAK+tG,MAAMsG,aAAa5nG,cAAc6vO,GACtCt8O,KAAK+tG,MAAMynI,mBAAmB+G,aAAa,CAACv8O,KAAK0H,UAErD2qO,EAAS91O,UAAUkiG,oBAAsB,SAAU8oE,GAC/C,IAAI3/J,EAAS5H,KAAKk2O,qBAEdsG,EAAyBx8O,KAAK4M,YAAY26J,EAAY56C,GAAOiC,2BACjE5uH,KAAK+tG,MAAMsG,aAAa5nG,cAAc+vO,GAEI,oBAA/B50O,EAAO62F,qBAEdlzF,OAAOE,YAAW,WAAc,OAAO7D,EAAO62F,oBAAoB+9I,KAA4B,GAElG,IAAIC,GAAqBz8O,KAAK+tG,MAAM+B,mBAAmBw4G,sBAC/CtoN,KAAK+tG,MAAM+B,mBAAmB04G,sBAClCi0B,GACAz8O,KAAK08O,sBAIbrK,EAAS91O,UAAUmgP,mBAAqB,SAAUpnE,EAAUC,GACpDv1K,KAAK+tG,MAAM+B,mBAAmBohG,gBAC9BlxM,KAAKkkO,QAAQ+H,gBAAgB32D,EAAUC,EAAWv1K,MAGlDA,KAAKmsO,sBAAsB72D,EAAUC,GAAW,IAGxD88D,EAAS91O,UAAUu8G,eAAiB,WAChC,OAAO94G,KAAK0H,OAAOoxG,eAAe94G,KAAK+K,UAG3CsnO,EAAS91O,UAAU4vO,sBAAwB,SAAU72D,EAAUC,EAAWH,GAKtE,QAJiB,IAAbE,IAAuBA,EAAW,WACpB,IAAdC,IAAwBA,EAAY,WAChB,IAApBH,IAA8BA,GAAkB,GAE/Cp1K,KAAK84G,mBAIN94G,KAAKwyO,YAAT,CAGAxyO,KAAKwyO,aAAc,EACnBxyO,KAAK2yO,oBACL,IAAIjtO,EAAW1F,KAAK28O,uBAAuBlyO,KAAKzK,KAAMA,KAAK2yO,mBACvDvvO,EAASpD,KAAK48O,uBAAuBtnE,EAAUC,EAAWH,GAC9Dp1K,KAAK68O,iBAAiBz5O,GAAQu4J,KAAKj2J,GAInC,IAAIo3O,EAAkBn8I,EAAQ3gG,KAAKm4G,YAC/B2kI,GAAmB1nE,GACnBp1K,KAAK+8O,WAAU,KAGvB1K,EAAS91O,UAAUsgP,iBAAmB,SAAUz5O,GAC5C,IAAIrD,EAAQC,KACRg9O,EAAoBh9O,KAAK+tG,MAAMy/D,qBAAqB2sB,cAAcn6L,KAAK0H,OAAOm1G,YAAaz5G,GAC/F,OAAO45O,EAAkBrhF,MAAK,SAAUxjD,GACpC,IAAI8kI,EAAiB9kI,EACjB46D,EAAUkqE,EAAelqE,SAAWkqE,EAAelqE,UACvD,IAAKA,EACD,OAAOkqE,EAEPl9O,EAAMguG,MAAM+B,mBAAmBohG,iBAC/BjuM,QAAQkD,KAAK,mJAIjB,IAAI+2O,EAAqB,IAAIrN,GAAmBoN,GAGhD,OAFAl9O,EAAMguG,MAAM1E,QAAQ6B,WAAWgyI,GAC/BA,EAAmBh4O,KAAK9B,GACjB85O,MAGf7K,EAAS91O,UAAUogP,uBAAyB,SAAUhK,EAAmBx6H,GAIrE,IAAIglI,EAAkBxK,IAAsB3yO,KAAK2yO,kBAC7CyK,EAAsBD,IAAoBn9O,KAAKwyO,YACnD,GAAI4K,EACAp9O,KAAK+tG,MAAM1E,QAAQyE,YAAYqK,OADnC,CAIA,IAAIklI,EAA6BllI,EAAW63H,qBAAuB73H,EAAW63H,sBAC9E,GAAIqN,EAGA,OAFAr9O,KAAK+tG,MAAM1E,QAAQyE,YAAYqK,QAC/Bn4G,KAAKwyO,aAAc,GAGvB,IAAKr6H,EAAW9xG,OAQZ,OAPApD,QAAQkD,KAAK,kCAAoCnG,KAAK0H,OAAO2vG,QAAU,+BAEnEc,EAAWlvG,QACXhG,QAAQkD,KAAK,0JAEjBnG,KAAK+tG,MAAM1E,QAAQyE,YAAYqK,QAC/Bn4G,KAAKwyO,aAAc,GAGvBxyO,KAAKm4G,WAAaA,EAClBn4G,KAAKs9O,uBAA2Cj+O,IAAvB84G,EAAW46D,SAAyB56D,EAAW46D,UACxE/yK,KAAKu9O,wBACDv9O,KAAKs9O,kBACLt9O,KAAKw9O,qBAGLx9O,KAAKy9O,kBAELtlI,EAAWy9D,kBACXz9D,EAAWy9D,mBAEf,IAAIxuK,EAAQpH,KAAK4M,YAAY,KAAM+/G,GAAO4D,4BAC1CvwH,KAAK+tG,MAAMsG,aAAa5nG,cAAcrF,KAE1CirO,EAAS91O,UAAUkhP,gBAAkB,WACjC,IAAI7vE,EAAO5tK,KAAKqG,SAGZunK,EAAKhzE,SAASjuF,SAAS+nM,gBACvB9mC,EAAKmI,QAET/1K,KAAK09O,mBACD19O,KAAKm4G,YACLy1D,EAAKlzI,YAAY16B,KAAKm4G,WAAW9xG,UAErCrG,KAAKm1O,mBAET9C,EAAS91O,UAAUihP,mBAAqB,WACpC,IAAIz9O,EAAQC,KACR29O,EAAY39O,KAAKm4G,YAAcn4G,KAAKm4G,WAAW9xG,SACnD,GAAKs3O,EAAL,CAGA,IAAI7vE,EAAe9tK,KAAK+tG,MAAM+/D,aAC1B8vE,EAAgB59O,KAAK+tG,MAAM+B,mBAAmB44G,kCAC9C9lE,EAAW5iJ,KAAKm4G,YAAcn4G,KAAKm4G,WAAW+3H,iBAAmBlwO,KAAKm4G,WAAW+3H,mBAAqB,OACtG9sO,EAAS,CACTsE,OAAQ1H,KAAK0H,OACbqD,QAAS/K,KAAK+K,QACdtL,KAAM,kBACNgsL,YAAazrL,KAAKqG,SAClB8nK,OAAQwvE,EACRE,kBAAkB,GAElBC,EAAgC,UAAbl7F,EACnBkrB,EAAaiwE,4BAA4BtzO,KAAKqjK,EAAc1qK,GAC1D0qK,EAAakwE,2BAA2BvzO,KAAKqjK,EAAc1qK,GAC7DyqK,EAAcC,EAAaC,SAAS,CACpCkwE,MAAOL,EACPp1F,OAAQm1F,EACRO,YAAY,EACZC,eAAgB,WAAcp+O,EAAMq+O,uBACpCC,gBAAiBr+O,KAAKqG,SACtBy3O,iBAAkBA,IAElBjwE,IACA7tK,KAAKs+O,gBAAkBzwE,EAAYG,UAEvChuK,KAAKm1O,oBAET9C,EAAS91O,UAAU6hP,oBAAsB,WAKhCp+O,KAAKwyO,aAKVxyO,KAAKu+O,qBAITlM,EAAS91O,UAAUghP,sBAAwB,WACvC,GAAKv9O,KAAK+mH,UAAV,CASA,IAAIy3H,EAAgBx+O,KAAKwyO,cAAgBxyO,KAAKs9O,kBAC1CmB,EAAqBz+O,KAAKwyO,aAAexyO,KAAKs9O,kBAClDt9O,KAAKqkJ,oBAAoButF,GAAoB4M,GAC7Cx+O,KAAKqkJ,oBAAoBstF,IAAyB6M,GAClDx+O,KAAKqkJ,oBAAoBwtF,GAAmB4M,GAC5Cp6F,GAAoBrkJ,KAAKqG,SAAS08I,WAAY,wBAAyBy7F,GACvEn6F,GAAoBrkJ,KAAKqG,SAAS08I,WAAY,6BAA8By7F,KAEhFnM,EAAS91O,UAAUqgP,uBAAyB,SAAUtnE,EAAUC,EAAWH,GACvE,MAAO,CACH14K,MAAOsD,KAAKmuI,WACZmnC,SAAUA,EACVC,UAAWA,EACX7tK,OAAQ1H,KAAK0H,OACbE,OAAQ5H,KAAK0H,OAAOm1G,YACpB+iC,SAAU5/I,KAAKopO,aAAaxpF,SAC5BptI,KAAMxS,KAAK+K,QACXxK,KAAMP,KAAK+K,QAAQxK,KACnBqJ,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC28D,gBAAiBA,EACjBvrK,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,aACvCwyH,OAAQhrO,KAAK0rM,MACbn/B,UAAWvsK,KAAKusK,UAAU9hK,KAAKzK,MAC/BmxM,YAAanxM,KAAK0+O,oBAAoBj0O,KAAKzK,MAC3CktM,UAAWltM,KAAKqG,SAChBiwK,WAAYt2K,KAAKs2K,WAAW7rK,KAAKzK,MACjCu2K,YAAav2K,KAAKu2K,YAAY9rK,KAAKzK,QAK3CqyO,EAAS91O,UAAUmiP,oBAAsB,SAAUC,QACb,IAA9BA,IAAwCA,GAA4B,GACxE3+O,KAAKu+O,oBACLv+O,KAAK+8O,WAAU,GACV4B,GACD3+O,KAAK4+O,qBAGbvM,EAAS91O,UAAU+5K,WAAa,SAAU55D,GACtC,IAAI90G,EAAS5H,KAAKk2O,qBACd9yO,EAAS,CACToP,KAAMxS,KAAK+K,QACXxK,KAAMP,KAAK+K,QAAQxK,KACnBsyL,SAAU7yL,KAAKtD,MACfggH,SAAUA,EACV90G,OAAQA,EACRF,OAAQ1H,KAAK0H,OACbkC,IAAK5J,KAAK+tG,MAAM+B,mBAAmB2I,SACnC5uG,UAAW7J,KAAK+tG,MAAM+B,mBAAmB4I,eACzCrP,QAASrpG,KAAK+tG,MAAM+B,mBAAmB0I,cAEvCqmI,EAAcj3O,EAAOi3O,YACzB,OAAOp+I,EAAOo+I,GAAe7+O,KAAK+tG,MAAM+hC,kBAAkBC,SAAS8uG,EAAaz7O,GAAUs5G,GAE9F21H,EAAS91O,UAAUwgP,UAAY,SAAU+B,QACX,IAAtBA,IAAgCA,GAAoB,GACxD9+O,KAAK+tG,MAAMksE,gBAAgBiwD,eAAelqO,KAAKopO,aAAaxpF,SAAU5/I,KAAK0H,OAAQ1H,KAAK+K,QAAQwkL,UAAWuvD,IAE/GzM,EAAS91O,UAAUwiP,mBAAqB,WAChC/+O,KAAKwyO,cACDxyO,KAAKm4G,YAAcn4G,KAAKm4G,WAAWg+D,QAEnCn2K,KAAKm4G,WAAWg+D,UAMhBn2K,KAAK+8O,WAAU,KAI3B1K,EAAS91O,UAAU+pO,UAAY,WAC3B,OAAOtmO,KAAKwyO,aAEhBH,EAAS91O,UAAUgwK,UAAY,SAAUnlK,GACrC,IAAI3K,EAAM2K,EAAMy9J,OAASz9J,EAAM09J,QAC/B,OAAQroK,GACJ,KAAKo3K,GAAQG,MACTh0K,KAAKg/O,eAAe53O,GACpB,MACJ,KAAKysK,GAAQY,GACTz0K,KAAKi/O,cACL,MACJ,KAAKprE,GAAQK,OACTl0K,KAAKk/O,kBACL,MACJ,KAAKrrE,GAAQE,IACT/zK,KAAKo6K,aAAahzK,GAClB,MACJ,KAAKysK,GAAQC,UACb,KAAKD,GAAQW,OACTx0K,KAAKm/O,8BAA8B1iP,GACnC,MACJ,KAAKo3K,GAAQU,KACb,KAAKV,GAAQQ,GACb,KAAKR,GAAQS,MACb,KAAKT,GAAQO,KACTp0K,KAAKo/O,uBAAuBh4O,EAAO3K,GACnC,QAGZ41O,EAAS91O,UAAU8iP,oBAAsB,WACjCr/O,KAAKwyO,aAAexyO,KAAKm4G,YAAcn4G,KAAKm4G,WAAWk+D,UACvDr2K,KAAKm4G,WAAWk+D,YAGxBg8D,EAAS91O,UAAU6iP,uBAAyB,SAAUh4O,EAAO3K,GACrDuD,KAAKwyO,cAGLprO,EAAMw5H,UAAY5gI,KAAK8yO,sBACvB9yO,KAAKs/O,mBAAmB7iP,GAGxBuD,KAAK+tG,MAAM2kF,YAAYigC,mBAAmBvrN,EAAO3K,EAAKuD,KAAKopO,cAAc,GAG7EhiO,EAAMuuK,mBAEV08D,EAAS91O,UAAU+iP,mBAAqB,SAAU7iP,GAC9C,GAAKuD,KAAK+tG,MAAMglI,gBAAhB,CAGA,IAAIwM,EAAUv/O,KAAK+tG,MAAMglI,gBAAgByM,6BAA6B/iP,GAClE8iP,GACAv/O,KAAK+tG,MAAM2kF,YAAY+sD,kBAAkBF,KAGjDlN,EAAS91O,UAAU69K,aAAe,SAAUhzK,GACxCpH,KAAK+tG,MAAM2kF,YAAYtY,aAAap6K,KAAMoH,IAE9CirO,EAAS91O,UAAU4iP,8BAAgC,SAAU1iP,GACpDuD,KAAKwyO,aACNxyO,KAAK08O,mBAAmBjgP,IAGhC41O,EAAS91O,UAAUyiP,eAAiB,SAAUxyO,GACtCxM,KAAKwyO,aAAexyO,KAAKkkO,QAAQoC,YACjCtmO,KAAK0+O,sBAGD1+O,KAAK+tG,MAAM+B,mBAAmBw1G,mBAC9BtlN,KAAK+tG,MAAM2kF,YAAYigC,mBAAmB,KAAM9+C,GAAQU,KAAMv0K,KAAKopO,cAAc,IAGjFppO,KAAK08O,mBAAmB7oE,GAAQG,OAC5Bh0K,KAAKwyO,aAKLhmO,EAAEmpK,mBAKlB08D,EAAS91O,UAAUqiP,kBAAoB,WACnC,IAAIc,EAAc1/O,KAAK+tG,MAAM+B,mBAAmBohG,gBAChD,IAAIwuC,EAAJ,CAGA,IAAIr6B,EAA0BrlN,KAAK+tG,MAAM+B,mBAAmBs1G,4BACxDC,GACArlN,KAAK+tG,MAAM2kF,YAAYigC,mBAAmB,KAAM9+C,GAAQU,KAAMv0K,KAAKopO,cAAc,KAGzFiJ,EAAS91O,UAAU0iP,YAAc,WACxBj/O,KAAKwyO,aACNxyO,KAAK08O,mBAAmB7oE,GAAQY,KAGxC49D,EAAS91O,UAAU2iP,gBAAkB,WAC7Bl/O,KAAKwyO,cACLxyO,KAAKu+O,mBAAkB,GACvBv+O,KAAK+8O,WAAU,KAGvB1K,EAAS91O,UAAUojP,WAAa,SAAUv4O,GAGtC,IAAIw4O,EAAcr6H,GAAUn+G,GACxBy4O,EAAwBD,IAAgB5/O,KAAKqG,SACjD,IAAIw5O,IAAyB7/O,KAAKwyO,YAAlC,CAGA,IAAIsN,EAAcjvO,OAAOC,aAAa1J,EAAM2+J,UACxB,MAAhB+5E,EACA9/O,KAAK+/O,kBAAkB34O,GAElB29J,GAA8B39J,KACnCpH,KAAK08O,mBAAmB,KAAMoD,GAM9B14O,EAAMuuK,oBAGd08D,EAAS91O,UAAUwjP,kBAAoB,SAAU34O,GAC7C,IAAI0oG,EAAqB9vG,KAAK+tG,MAAM+B,mBACpC,IAAK9vG,KAAKwyO,aAAe1iI,EAAmBuvG,iBAAkB,CAC1D,IAAI2gC,EAAmBhgP,KAAK+K,QAAQgpL,aAChCksD,GAAgBD,EACpB,GAAIC,IAAiBnwI,EAAmBwvG,2BAA4B,CAChE,IAAIrqB,EAAuBj1L,KAAK+tG,MAAM+B,mBAAmBooF,yBACrDzC,EAAez1L,KAAK+K,QAAQ6pL,kBAAkB,CAC9Cl4E,SAAUujI,EACVprD,YAAaztL,EAAMw5H,SACnBq0D,qBAAsBA,SAED51L,IAArB2gP,GAAmD,IAAjBvqD,GAClCz1L,KAAK+K,QAAQ6pL,kBAAkB,CAC3Bl4E,UAAU,EACVm4E,YAAaztL,EAAMw5H,SACnBq0D,qBAAsBA,KAMtC7tL,EAAMuuK,kBAEV08D,EAAS91O,UAAU+vK,YAAc,SAAU/E,GACvC,IAAItC,EAAUsC,EAAWtC,QAASvmK,EAAU6oK,EAAW7oK,QAASkiI,EAAW2mC,EAAW3mC,SAClF7kI,EAASwrK,EAAWxrK,OACpBuxF,EAAKttF,KAAK+tG,MAAOsG,EAAe/mB,EAAG+mB,aAAc0+H,EAAkBzlJ,EAAGylJ,gBAE1E,IAAI/yO,KAAKkgP,4BAA4B34E,GAArC,CAGA,IAAK3mC,GAAamyG,IAAoBA,EAAgBoN,gBAAgB1iP,OAAS,CAI3E,IAAIqhP,GAAqBp+F,MAAiBE,QAAqB5gJ,KAAKwyO,cAAgBvtF,GAAqBlpJ,GACzGiE,KAAK+8O,UAAU+B,QAEV/L,GAELxrE,EAAWoO,iBAIf,IAAI31K,KAAKogP,eAAerkP,GAAxB,CAGA,GAAIg3O,EAAiB,CACjB,IAAIsN,EAAWrgP,KAAKopO,aACpB,GAAIxoG,EACAmyG,EAAgBuN,wBAAwBD,OAEvC,CACD,IAAIE,EAAiBt7E,GAAWvmK,EAChCq0O,EAAgByN,eAAeH,EAAUE,IAGjDlsI,EAAa5nG,cAAczM,KAAK4M,YAAY26J,EAAY56C,GAAOkC,2BAEnEwjH,EAAS91O,UAAU2jP,4BAA8B,SAAU34E,GACvD,IAAIwrE,EAAkB/yO,KAAK+tG,MAAMglI,gBACjC,GAAIA,EAAiB,CACjB,IAAI0N,EAAc1N,EAAgB2N,iBAAiB1gP,KAAK2gP,mBACxD,GAAIF,GAAqC,IAAtBl5E,EAAW1lB,OAC1B,OAAO,EAGf,OAAO,GAEXwwF,EAAS91O,UAAU6jP,eAAiB,SAAUrkP,GAC1C,OAAOiqJ,GAAsBjqJ,EAAQ,wBAAyB,IAGlEs2O,EAAS91O,UAAUqkP,oBAAsB,WACrC,IAAKt/F,MAAoB58B,GAAiB,YACtC,OAAO,EAEX,IAAIm8H,GAAY,IAAIxkO,MAAOS,UACvBwgB,EAAMujN,EAAY7gP,KAAK8gP,wBAA0B,IAErD,OADA9gP,KAAK8gP,wBAA0BD,EACxBvjN,GAEX+0M,EAAS91O,UAAUoiG,cAAgB,SAAU4oE,GAEzC,GAAIvnK,KAAK4gP,sBAGL,OAFA5gP,KAAKy+F,oBAAoB8oE,QACzBA,EAAWoO,iBAGf,IAAIroF,EAAKttF,KAAK+tG,MAAOsG,EAAe/mB,EAAG+mB,aAAcvE,EAAqBxiB,EAAGwiB,mBACzEixI,EAAmB/gP,KAAK4M,YAAY26J,EAAY56C,GAAOgC,oBAC3Dta,EAAa5nG,cAAcs0O,GAC3B,IAAIn5O,EAAS5H,KAAKk2O,qBACdtuO,EAAO+2F,eAEPpzF,OAAOE,YAAW,WAAc,OAAO7D,EAAO+2F,cAAcoiJ,KAAsB,GAEtF,IAAIC,GAAqBlxI,EAAmBw4G,qBAAuB1gN,EAAO2gN,mBAClEz4G,EAAmB04G,sBACvBw4B,GACAhhP,KAAK08O,sBAGbrK,EAAS91O,UAAUs2O,iBAAmB,WAClC7yO,KAAKopO,aAAe,CAChBxpF,SAAU5/I,KAAK+K,QAAQ60I,SACvB2vC,UAAWvvL,KAAK+K,QAAQwkL,UACxB7nL,OAAQ1H,KAAK0H,SAGrB2qO,EAAS91O,UAAUssO,eAAiB,WAChC,MAAO,CACHjpF,SAAU5/I,KAAKopO,aAAaxpF,SAC5B2vC,UAAWvvL,KAAKopO,aAAa75C,YAGrC8iD,EAAS91O,UAAUokP,gBAAkB,WACjC,OAAO3gP,KAAKopO,cAEhBiJ,EAAS91O,UAAU0kP,aAAe,WAC9B,OAAOjhP,KAAKmlO,MAEhBkN,EAAS91O,UAAU2kP,aAAe,SAAUC,GACxCnhP,KAAKmlO,KAAOgc,GAEhB9O,EAAS91O,UAAUwyI,UAAY,WAC3B,OAAO/uI,KAAK0H,QAEhB2qO,EAAS91O,UAAU25O,mBAAqB,WACpC,OAAOl2O,KAAK0H,OAAOm1G,aAEvBw1H,EAAS91O,UAAU6kP,OAAS,WACxBphP,KAAKmlO,KAAKvqM,YAAY56B,KAAKqG,WAQ/BgsO,EAAS91O,UAAU6J,QAAU,WACrBpG,KAAKq7O,wBACLr7O,KAAK+tG,MAAMm4H,UAAUmb,WAAWrhP,KAAKq7O,wBAEzCr7O,KAAKmxM,cACLnxM,KAAK47J,aAAe57J,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAK47J,cACxD57J,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAKshP,iBACpCz8O,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCqyO,EAAS91O,UAAU+5O,cAAgB,WAC/B,IAAIt+J,EAAOh4E,KAAK8zO,yBAAyB9zO,KAAK+zO,eAC9C/zO,KAAKqG,SAAS8xC,MAAM6/B,KAAOA,EAAO,KAClCh4E,KAAKu2O,oBAETlE,EAAS91O,UAAUu3O,yBAA2B,SAAUyN,GACpD,IAAKvhP,KAAK2iO,aAAe3iO,KAAK0H,OAAO80G,cAAgBpL,GAAUsB,YAC3D,OAAO6uI,EAEX,IAAIvrH,EAAYh2H,KAAK+tG,MAAMoxC,iBAAiB5gB,+BAC5C,GAAIv+H,KAAK0H,OAAO80G,cAAgBpL,GAAUqB,aAAc,CACpD,IAAIsjB,EAAY/1H,KAAK+tG,MAAMoxC,iBAAiBzZ,wBAC5C,OAAO1P,EAAYD,GAAawrH,GAAgB,GAGpD,OAAOvrH,GAAaurH,GAAgB,IAExClP,EAAS91O,UAAU65O,eAAiB,WAChC,IAAI98L,EAAQt5C,KAAK6zO,eACjB7zO,KAAKqG,SAAS8xC,MAAMmB,MAAQA,EAAQ,MAExC+4L,EAAS91O,UAAUilP,gBAAkB,WACjC,IAQIC,EACAC,EATA3hP,EAAQC,KACR26I,EAAQ36I,KAAK+tG,MAAM+B,mBAAmB6Q,cACtCzoC,GAAM,EACND,GAAQ,EACRE,GAAS,EACTH,GAAO,EACP2pK,EAAU3hP,KAAKopO,aAAa1hO,OAC5B4lF,EAAKttF,KAAK+tG,MAAOglI,EAAkBzlJ,EAAGylJ,gBAAiB5zF,EAAmB7xD,EAAG6xD,iBAG7ExE,GACA8mG,EAAUtiG,EAAiB1lB,qBAAqBkoH,GAChDD,EAAWviG,EAAiB5X,sBAAsBo6G,KAGlDF,EAAUtiG,EAAiB5X,sBAAsBo6G,GACjDD,EAAWviG,EAAiB1lB,qBAAqBkoH,IAErD,IAAIC,EAAS7O,EAAgBoN,gBAAgB5vJ,QAAO,SAAU3sD,GAAS,OAAOmvM,EAAgB8O,sBAAsB9hP,EAAMqpO,aAAcxlM,MAEnI69M,IACDzpK,GAAO,GAGN0pK,IACDzpK,GAAQ,GAEZ,IAAK,IAAI16E,EAAI,EAAGA,EAAIqkP,EAAOnkP,OAAQF,IAAK,CACpC,GAAI26E,GAAOD,GAASE,GAAUH,EAC1B,MAEJ,IAAIp0C,EAAQg+M,EAAOrkP,GACfukP,EAAW/O,EAAgBgP,iBAAiBn+M,GAC5Co+M,EAASjP,EAAgBkP,eAAer+M,IACvCs0C,GAAOl4E,KAAK+tG,MAAMm0I,iBAAiBC,QAAQL,EAAU9hP,KAAKopO,gBAC3DlxJ,GAAM,IAELC,GAAUn4E,KAAK+tG,MAAMm0I,iBAAiBC,QAAQH,EAAQhiP,KAAKopO,gBAC5DjxJ,GAAS,IAERH,GAAQypK,GAAW79M,EAAMu3D,QAAQp6F,QAAQ0gP,GAAW,IACrDzpK,GAAO,IAENC,GAASypK,GAAY99M,EAAMu3D,QAAQp6F,QAAQ2gP,GAAY,IACxDzpK,GAAQ,GAGhB,MAAO,CAAEC,IAAKA,EAAKD,MAAOA,EAAOE,OAAQA,EAAQH,KAAMA,IAE3Dq6J,EAAS91O,UAAUq6O,uBAAyB,WACxC,IAAIwL,EAAU,GACd,IAAKpiP,KAAK8yO,wBAA0B9yO,KAAKkzO,WACrC,OAAOkP,EAEXA,EAAQ9iP,KAAKwyO,IACT9xO,KAAKuyO,eACL6P,EAAQ9iP,KAAK2yO,IAEjB,IAAI5oL,EAAQn0C,KAAKsM,IAAIxhB,KAAKkzO,WAAY,GAKtC,GAJAkP,EAAQ9iP,KAAKwyO,GAAqB,IAAMzoL,GACpCrpD,KAAKqiP,gBACLD,EAAQ9iP,KAAK4yO,IAEblyO,KAAKkzO,WAAa,EAAG,CACrB,IAAIoP,EAAUtiP,KAAKwhP,kBACfc,EAAQpqK,KACRkqK,EAAQ9iP,KAAK8xO,IAEbkR,EAAQrqK,OACRmqK,EAAQ9iP,KAAK+xO,IAEbiR,EAAQnqK,QACRiqK,EAAQ9iP,KAAKgyO,IAEbgR,EAAQtqK,MACRoqK,EAAQ9iP,KAAKiyO,IAMrB,OAHMvxO,KAAKshP,iBACPc,EAAQ9iP,KAAK8yO,IAEVgQ,GAEX/P,EAAS91O,UAAU8qO,kBAAoB,WAGnCrnO,KAAK6yO,mBAEL7yO,KAAKuiP,gBAELviP,KAAKwiP,2BAETnQ,EAAS91O,UAAUimP,wBAA0B,WACzC,IAAIzP,EAAkB/yO,KAAK+tG,MAAMglI,gBACjC,GAAKA,EAAL,CAGA,IAAIzlJ,EAAKttF,KAAMopO,EAAe97I,EAAG87I,aAAc8J,EAAa5lJ,EAAG4lJ,WAC3DuP,EAAgB1P,EAAgBI,kBAAkB/J,GAClDj/I,EAAUnqF,KAAKqG,SACf6sO,IAAeuP,IACfziP,KAAKqkJ,oBAAoBytF,GAAsC,IAAlB2Q,GAC7CziP,KAAKqkJ,oBAAoBytF,GAAqB,KAAwB,IAAlB2Q,GACpDziP,KAAKqkJ,oBAAoBytF,GAAqB,KAAwB,IAAlB2Q,GACpDziP,KAAKqkJ,oBAAoBytF,GAAqB,KAAwB,IAAlB2Q,GACpDziP,KAAKqkJ,oBAAoBytF,GAAqB,KAAM2Q,GAAiB,GACrEziP,KAAKkzO,WAAauP,GAEtB1kF,GAAgB5zE,EAASnqF,KAAKkzO,WAAa,GAC3C,IAAIX,EAAgBvyO,KAAKozO,mBACrBb,IAAkBvyO,KAAKuyO,gBACvBvyO,KAAKuyO,cAAgBA,EACrBvyO,KAAKqkJ,oBAAoB4tF,GAAiBjyO,KAAKuyO,gBAEnDvyO,KAAK0iP,qBACL1iP,KAAKqkJ,oBAAoB6tF,GAAuBlyO,KAAKqiP,gBACrDriP,KAAKo1O,kBAET/C,EAAS91O,UAAU62O,iBAAmB,WAClC,IAAIL,EAAkB/yO,KAAK+tG,MAAMglI,gBACjC,IAAK/yO,KAAKkzO,aAAeH,EACrB,OAAO,EAEX,IAAI4P,EAAa5P,EAAgBoN,gBACjC,OAAOwC,EAAWllP,OAAS,GAAKklP,EAAWr/I,OAAM,SAAU1/D,GAAS,OAAO47D,EAAS,CAAC3wF,EAAQ6gO,cAAckT,UAAW/zO,EAAQ6gO,cAAcmT,OAAQj/M,EAAMnkC,UAE9J4yO,EAAS91O,UAAUumP,0BAA4B,WAC3C,IAAIx1J,EAAKttF,KAAK+tG,MAAO+B,EAAqBxiB,EAAGwiB,mBAAoBijI,EAAkBzlJ,EAAGylJ,gBAClF4P,EAAa5P,EAAgBoN,gBAC7B4C,EAAYJ,EAAWllP,OAC3B,GAAIuC,KAAKkzO,WAAa,GAAK6P,EAAY,EACnC,OAAO,EAEX,IAAIC,EAAY7mK,EAAKwmK,GACjBvZ,EAAeppO,KAAK2gP,kBACpBsC,EAAsC,IAAdF,IACvBjzI,EAAmB4uG,sBAAwB5uG,EAAmB2uG,yBAC9Dz+M,KAAKwyO,YACV,GAAIxyO,KAAKuyO,cAAe,CACpB,IAAI2Q,EAAmBP,EAAW,GAAGljP,OAASoP,EAAQ6gO,cAAckT,UAChEO,EAAiBD,GAAoBnQ,EAAgB8O,sBAAsBzY,EAAcuZ,EAAW,IACxG3iP,KAAKqkJ,oBAAoB8tF,GAA0BgR,GACnDF,EAAwBD,EAAUvjP,OAASoP,EAAQ6gO,cAAcmT,MAErE,OAAOI,GACiB,MAApBD,EAAUhB,QACVjP,EAAgBqQ,kBAAkBJ,IAClCjQ,EAAgBsQ,kBAAkBL,EAAW5Z,IAErDiJ,EAAS91O,UAAU+mP,mBAAqB,WACpC,IAAIh2J,EAAKttF,KAAK+tG,MAAO+B,EAAqBxiB,EAAGwiB,mBAAoBijI,EAAkBzlJ,EAAGylJ,gBAClFwQ,EAAgBpnK,EAAK42J,EAAgBoN,iBAAiB1gP,KACtD+jP,EAAsB1zI,EAAmB4uG,sBAAwB/9G,EAAQ4iJ,GACzE9jP,EAAO+jP,EAAsB30O,EAAQ4gO,oBAAoBgU,KAAO50O,EAAQ4gO,oBAAoBiU,MAC5F1jP,KAAKshP,iBAAmBthP,KAAKshP,gBAAgB3kE,YAAcl9K,IAC3DO,KAAKshP,gBAAkBthP,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAKshP,kBAE1DthP,KAAKshP,kBACNthP,KAAKshP,gBAAkBthP,KAAK+tG,MAAM41I,uBAAuBC,sBAAsBnkP,IAEnFO,KAAKshP,gBAAgB/oJ,QAAQv4F,OAEjCqyO,EAAS91O,UAAUsnP,+BAAiC,WAE5C7jP,KAAKkzO,WAAa,IAClBlzO,KAAK0iP,qBACL1iP,KAAKo1O,kBAGb/C,EAAS91O,UAAU64O,cAAgB,WAC/B,GAAKp1O,KAAK+tG,MAAMglI,gBAAhB,CAGA,IAAI+P,EAA4B9iP,KAAK8iP,4BACjC9iP,KAAKshP,kBAAoBwB,IACzB9iP,KAAKshP,gBAAkBthP,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAKshP,kBAE3DwB,GACA9iP,KAAKsjP,qBAETtjP,KAAKqkJ,oBAAoB+tF,KAAoBpyO,KAAKshP,mBAEtDjP,EAAS91O,UAAUmmP,mBAAqB,WACpC,IAAIoB,EAAe9jP,KAAKwhP,kBACpBa,EAAeriP,KAAKqiP,eACpB0B,GAAS1B,GAAgByB,EAAa5rK,IACtC8rK,GAAW3B,GAAgByB,EAAa7rK,MACxCgsK,GAAY5B,GAAgByB,EAAa3rK,OACzC+rK,GAAU7B,GAAgByB,EAAa9rK,KAC3Ch4E,KAAKqkJ,oBAAoB+sF,GAAe2S,GACxC/jP,KAAKqkJ,oBAAoBgtF,GAAiB2S,GAC1ChkP,KAAKqkJ,oBAAoBitF,GAAkB2S,GAC3CjkP,KAAKqkJ,oBAAoBktF,GAAgB2S,IAE7C7R,EAAS91O,UAAU4nP,0BAA4B,WAC3C,IAAIroI,EAAmB97G,KAAK0H,OAAOy0G,qBAC/Bn8G,KAAK87G,mBAAqBA,IAC1B97G,KAAK87G,iBAAmBA,EACxB97G,KAAKqkJ,oBAAoBotF,GAAwB31H,KAGzDu2H,EAAS91O,UAAU6nP,wBAA0B,WACzC,IAAInoI,EAAiBj8G,KAAK0H,OAAO00G,mBAC7Bp8G,KAAKi8G,iBAAmBA,IACxBj8G,KAAKi8G,eAAiBA,EACtBj8G,KAAKqkJ,oBAAoBqtF,GAAsBz1H,KAGvDo2H,EAAS91O,UAAU8nP,qBAAuB,WACtC,IAAIC,EAAiBtkP,KAAK40O,aACtB2P,EAAyBvkP,KAAK06O,4BAC9B8J,EAAuBxkP,KAAK26O,0BAC5B8J,EAAuBzkP,KAAKy6O,0BAEhC,OADAz6O,KAAKszO,kBACEgR,IAAmBtkP,KAAK40O,cAC3B2P,IAA2BvkP,KAAK06O,6BAChC8J,IAAyBxkP,KAAK26O,2BAC9B8J,IAAyBzkP,KAAKy6O,2BAEtCpI,EAAS91O,UAAU04O,iBAAmB,WAClC,GAAIj1O,KAAK40O,aAAc,CACnB50O,KAAKg5O,WAAah5O,KAAK6xK,cAAc,cACrC7xK,KAAK0kP,aAAe1kP,KAAK6xK,cAAc,gBACvC7xK,KAAKg5O,WAAWhwL,GAAK,QAAUhpD,KAAK+uK,YACpC,IAAI41E,EAAiB,GACjB3kP,KAAK06O,6BACL16O,KAAKw7O,iBAELx7O,KAAK26O,2BACL36O,KAAK4kP,eAEL5kP,KAAKy6O,4BACLkK,GAAkB3kP,KAAK6kP,uBAAuBjtD,iBAElDl7B,GAAmB18J,KAAKqG,UAAWs+O,EAAiB,IAAM3kP,KAAKg5O,WAAWhwL,IAAIzwB,aAG9Ev4B,KAAKg5O,WAAah5O,KAAKqG,SACvBrG,KAAK0kP,aAAe1kP,KAAKg5O,YAGjC3G,EAAS91O,UAAUyqH,sBAAwB,WACvC,OAAOhnH,KAAK+tG,MAAMgC,oBAEtBsiI,EAAS91O,UAAUi/O,eAAiB,SAAUsJ,EAAeplD,GACzD,IAAI3/L,EAAQC,KACR2sN,EAAa3sN,KAAK+tG,MAAM+B,mBAAmB48G,eAC3CzJ,EAAiBjjN,KAAK+tG,MAAM+B,mBAAmB02F,mBAC/Cu+C,EAA2B/kP,KAAK+tG,MAAM+B,mBAAmBiI,oBAC7D,GAAIkrG,EAAgB,CAEhB,IAAK8hC,EAED,YADA38I,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,gFAAkF,2BAG/H,GAAIwmN,EAEA,YADAvkH,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,yEAA2E,2BAIvHnG,KAAKglP,gBAIDF,GAEL9kP,KAAKglP,gBAAgB1+C,eAAew+C,EAAeplD,IALnD1/L,KAAKglP,gBAAkB,IAAI9+C,IAAY,WAAc,OAAOnmM,EAAMrD,QAAUsD,KAAK+K,QAAS/K,KAAK0H,OAAQo9O,EAAeplD,GACtH1/L,KAAKsnH,kBAAkBtnH,KAAKglP,gBAAiBhlP,KAAK+tG,MAAM1E,UAOvDy7I,GAED9kP,KAAK0kP,aAAah8F,aAAa1oJ,KAAKglP,gBAAgB3+O,SAAUrG,KAAKg5O,aAG3E3G,EAAS91O,UAAUqoP,aAAe,WAC9B,IAAIK,EAAgB,IAAI5U,GAAcrwO,KAAK+K,QAAS/K,KAAK0H,OAAQ1H,KAAK+tG,MAAO/tG,KAAKqG,UAClFrG,KAAKsnH,kBAAkB29H,EAAejlP,KAAK+tG,MAAM1E,SAEjDrpG,KAAK0kP,aAAah8F,aAAau8F,EAAc5+O,SAAUrG,KAAKg5O,aAEhE3G,EAAS91O,UAAUsoP,qBAAuB,WACtC,IAAI9kP,EAAQC,KACRklP,EAAuB,IAAIxtD,GAC/B13L,KAAK+tG,MAAM1E,QAAQ6B,WAAWg6I,GAC9B,IAAIC,EAAcnlP,KAAKk2O,qBAAqB58H,kBAQ5C,MAP2B,oBAAhB6rI,IACPA,OAAc9lP,GAElB6lP,EAAqBhgP,KAAK,CAAE6F,QAAS/K,KAAK+K,QAASrD,OAAQ1H,KAAK0H,SAChE1H,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAMguG,MAAM1E,QAAQyE,YAAYo3I,MAEzEllP,KAAK0kP,aAAah8F,aAAaw8F,EAAqB7+O,SAAUrG,KAAKg5O,YAC5DkM,GAEX7S,EAAS91O,UAAUy4O,WAAa,WAC5B,IAAIj1O,EAAQC,KACRmqF,EAAUnqF,KAAKqG,SACnBrG,KAAK+tG,MAAM+B,mBAAmBsvG,WAAWj1H,EAASkoJ,EAAS+S,uBAAwBplP,MACnFA,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAMguG,MAAM+B,mBAAmBsvG,WAAWj1H,EAASkoJ,EAAS+S,uBAAwB,UAEjI/S,EAAS91O,UAAU8lP,aAAe,WAC9B,IAAItP,EAAkB/yO,KAAK+tG,MAAMglI,gBACjC,OAA2B,IAApB/yO,KAAKkzO,YAAoBH,IAAoBA,EAAgBsS,qBAExEhT,EAAS91O,UAAUgmP,cAAgB,SAAUn7O,GACzC,IAAI4rO,EAAchzO,KAAK+tG,MAAMksE,gBAAgBg5D,cAAcjzO,KAAKopO,cAEhE,GAAI4J,IAAgBhzO,KAAKgzO,YAAa,CAElC,IAAIyD,GAAiBz2O,KAAK+tG,MAAM+B,mBAAmB0yG,0BAC/Ci0B,GACAz2O,KAAKqkJ,oBAAoBmtF,GAAgBwB,GAE7ChzO,KAAKgzO,YAAcA,EAGvB,GAAIA,GAAe5rO,GAASA,EAAM03O,kBAAmB,CACjD,IAAI1oE,EAAUp2K,KAAKiyK,sBACnBmE,EAAQL,QAGHppK,SAAS+nM,eAAiB/nM,SAAS+nM,gBAAkB/nM,SAASuB,MAC/DkoK,EAAQL,QAIhB,IAAI2pE,EAAc1/O,KAAK+tG,MAAM+B,mBAAmBohG,gBAC3C8hC,GAAgB0M,IAAe1/O,KAAKwyO,aACrCxyO,KAAKu+O,qBAIblM,EAAS91O,UAAUgiP,kBAAoB,SAAUv8E,QAC9B,IAAXA,IAAqBA,GAAS,GAC9BhiK,KAAK+tG,MAAM+B,mBAAmBohG,gBAC9BlxM,KAAKkkO,QAAQsC,eAAexkE,GAG5BhiK,KAAKmxM,YAAYnvC,IAGzBqwE,EAAS91O,UAAU40M,YAAc,SAAUnvC,GAEvC,QADe,IAAXA,IAAqBA,GAAS,GAC7BhiK,KAAKwyO,YAKV,GAAKxyO,KAAKm4G,WAAV,CAIA,IAEIuE,EAFAm2E,EAAW7yL,KAAKmuI,WAChBm3G,GAAiB,EAErB,IAAKtjF,EAAQ,CAIT,IAAIujF,EAAoBvlP,KAAKm4G,WAAW83H,kBAAoBjwO,KAAKm4G,WAAW83H,mBACvEsV,IACD7oI,EAAW18G,KAAKm4G,WAAWg2B,WAC3Bm3G,GAAiB,GAYzB,GALAtlP,KAAKwyO,aAAc,EAGnBxyO,KAAK+tG,MAAM1E,QAAQyE,YAAY9tG,KAAKm4G,YACpCn4G,KAAKm4G,WAAa,KACdn4G,KAAKs9O,mBAAqBt9O,KAAKs+O,gBAC/Bt+O,KAAKs+O,kBACLt+O,KAAKs+O,gBAAkB,SAEtB,CACDt+O,KAAK09O,mBACL,IAAI9vE,EAAO5tK,KAAKqG,SAEhB,GAAIrG,KAAK40O,aAELhnE,EAAKlzI,YAAY16B,KAAK0kP,mBAErB,GAAI1kP,KAAK47J,aAAc,CAMxB,IAAI00E,EAAQtwO,KAAK+2O,gBAGbzG,GACA1iE,EAAKlzI,YAAY41M,IAI7BtwO,KAAKu9O,wBACLv9O,KAAKo1O,gBACDkQ,GAAkB5oI,IAAam2E,IAK/B7yL,KAAKyyO,qBAAsB,EAC3BzyO,KAAK+K,QAAQ6nL,aAAa5yL,KAAK0H,OAAQg1G,GACvC18G,KAAKyyO,qBAAsB,GAK/BzyO,KAAKsoO,YAAY,CAAEsP,cAAc,EAAMrP,eAAe,IACtD,IAAIid,EAAsBxU,GAAWA,GAAW,GAAIhxO,KAAK4M,YAAY,KAAM+/G,GAAO6D,6BAA8B,CAAEqiE,SAAUA,EACxHn2E,SAAUA,IACd18G,KAAK+tG,MAAMsG,aAAa5nG,cAAc+4O,QApElCxlP,KAAKwyO,aAAc,GAsE3BH,EAAS91O,UAAUmhP,iBAAmB,WAClC,IAAI9vE,EAAO5tK,KAAKqG,SAGZunK,EAAKhzE,SAASjuF,SAAS+nM,iBAAmBh0D,MAC1CktB,EAAKmI,MAAM,CACPyzD,eAAe,IAGvB9hF,GAAakmB,IAEjBykE,EAAS+S,uBAAyB,WAClC/S,EAAS4I,0BAA4B,eACrC5I,EAAS2I,0BAA4B,wBAC9B3I,EA/wDkB,CAgxD3BzyO,IAQE6lP,GAAoD,WACpD,IAAIxhP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDohP,GAAkD,WASlD,OARAA,GAAa/oP,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJ6wO,GAAWtjP,MAAMpC,KAAMW,YAE9BglP,GAAsD,SAAUtkP,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DihP,GAAgD,SAAUx4I,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvDy4I,GAA8D,WAC9D,IAAK,IAAIzyO,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEPmhP,GAA6B,SAAUjhP,GAEvC,SAASihP,IACL,IAAI/lP,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAchE,OAbAD,EAAMgmP,+BAAiC,GAGvChmP,EAAMimP,kBAAoB,GAC1BjmP,EAAMkmP,cAAgB,GACtBlmP,EAAMmmP,WAAa,GACnBnmP,EAAMomP,WAAa,GACnBpmP,EAAMqmP,cAAgB,GAKtBrmP,EAAMsmP,mBAAoB,EACnBtmP,EA+3CX,OA/4CA0lP,GAAYK,EAAajhP,GAkBzBihP,EAAYvpP,UAAUkhN,OAAS,SAAU5tG,GACrC7vG,KAAKwqG,OAASqF,EAActrG,OAAO,gBAEvCuhP,EAAYvpP,UAAUwiJ,cAAgB,WAClC,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,WAC9BvmP,EAAMmoM,YAAcnoM,EAAMooM,mBAAmBC,wBAC7CroM,EAAM+1G,iBAGdgwI,EAAYvpP,UAAUu5G,WAAa,WAC/B91G,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOiE,yBAA0B5wH,KAAKi/I,aAAax0I,KAAKzK,OACnGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoB,8BAA+B/tH,KAAKumP,uBAAuB97O,KAAKzK,OAClHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO8D,kBAAmBzwH,KAAKwmP,kBAAkB/7O,KAAKzK,OACjGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOmE,0BAA2B9wH,KAAKwmP,kBAAkB/7O,KAAKzK,OACzGA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiB59M,KAAKymP,mBAAmBh8O,KAAKzK,OAClHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKu3O,mBAAmB9sO,KAAKzK,OACzGA,KAAK0mP,6BACL1mP,KAAK2iO,YAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACxEryG,KAAKynN,mBAAqBznN,KAAK2iO,aAAe3iO,KAAK8vG,mBAAmBi6F,uBACtE/pM,KAAK2mP,0BAETb,EAAYvpP,UAAUqqP,WAAa,WAC/B,OAAO5mP,KAAKkmP,YAEhBJ,EAAYvpP,UAAUsqP,iBAAmB,WACrC7mP,KAAKkmP,WAAaL,GAAiBn/I,GAAqB1mG,KAAKgmP,mBAAoBt/I,GAAqB1mG,KAAKimP,iBAK/GH,EAAYvpP,UAAUmqP,2BAA6B,WAC/C,IAAI3mP,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOsC,oBAAoB,SAAU7nH,GAC5ErH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASud,cAAcn7O,MAC1ErH,EAAM+mP,gBAAe,SAAUrqP,EAAKynO,GAC5BA,EAAQ6B,eACR7B,EAAQoF,sBAAsBliO,SAI1CpH,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOuE,mBAAmB,SAAU9pH,GAC3ErH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAAS4Q,aAAaxuO,SAE7EpH,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOsE,4BAA4B,WAC1ElxH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASsQ,sBAOhEt1O,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,uCAAuC,WACjFhxH,EAAM4iO,aACN5iO,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASsR,sBAGpE,IAAIxD,EAAwB9yO,KAAK8vG,mBAAmByuG,yBAChDu0B,IACA9yO,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqB,+BAA+B,WAC7EjuH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASwd,gCAEhExiP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOS,oBAAoB,WAClErtH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAAS6e,uCAEhE7jP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOW,qBAAqB,WACnEvtH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAAS6e,uCAEhE7jP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOU,sBAAsB,WACpEttH,EAAMqoO,iBAAgB,SAAUpD,GAAY,OAAOA,EAAS6e,wCAIpE7jP,KAAK+mP,wCAEL/mP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOO,2BAA4BltH,KAAK+mP,sCAAsCt8O,KAAKzK,OAC9HA,KAAKqnH,eAAernH,KAAKgnP,0BAA0Bv8O,KAAKzK,QAG5D8lP,EAAYvpP,UAAUyqP,0BAA4B,WAC9ChnP,KAAK+lP,+BAA+BxnP,SAAQ,SAAU4M,GAAQ,OAAOA,OACrEnL,KAAK+lP,+BAA+BtoP,OAAS,GAMjDqoP,EAAYvpP,UAAUwqP,sCAAwC,WAC1D,IAAIhnP,EAAQC,KACZA,KAAKgnP,4BACL,IAAI3rM,EAAOr7C,KAAKm/I,iBAAiBnhB,oBAC5B3iF,GAGLA,EAAK98C,SAAQ,SAAUmmC,GACnB,IAAIuiN,EAAyB,SAAUvhP,GACnC3F,EAAMqoO,iBAAgB,SAAUpD,GACxBA,EAASj2F,cAAgBrqG,GACzBh/B,EAASs/N,OAIjBkiB,EAAsB,WACtBD,GAAuB,SAAUjiB,GAAY,OAAOA,EAASsR,oBAE7D6Q,EAAuB,WACvBF,GAAuB,SAAUjiB,GAAY,OAAOA,EAASoR,qBAE7DgR,EAAkC,WAClCH,GAAuB,SAAUjiB,GAAY,OAAOA,EAASmf,gCAE7DkD,EAAgC,WAChCJ,GAAuB,SAAUjiB,GAAY,OAAOA,EAASof,8BAEjE1/M,EAAI8rE,iBAAiBuD,GAAOsH,mBAAoB6rI,GAChDxiN,EAAI8rE,iBAAiBuD,GAAO2J,oBAAqBypI,GACjDziN,EAAI8rE,iBAAiBuD,GAAOgI,iCAAkCqrI,GAC9D1iN,EAAI8rE,iBAAiBuD,GAAOmI,+BAAgCmrI,GAC5DtnP,EAAMgmP,+BAA+BzmP,MAAK,WACtColC,EAAIgsE,oBAAoBqD,GAAOsH,mBAAoB6rI,GACnDxiN,EAAIgsE,oBAAoBqD,GAAO2J,oBAAqBypI,GACpDziN,EAAIgsE,oBAAoBqD,GAAOgI,iCAAkCqrI,GACjE1iN,EAAIgsE,oBAAoBqD,GAAOmI,+BAAgCmrI,UAI3EvB,EAAYvpP,UAAUkqP,mBAAqB,WACvC,IAAI9jB,EAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACnEo1G,EAAqBkb,GAAe3iO,KAAK8vG,mBAAmBi6F,uBAG5Du9C,EAAc7/B,IAAuBznN,KAAKynN,oBAAsBznN,KAAK2iO,cAAgBA,EACzF3iO,KAAK2iO,YAAcA,EACnB3iO,KAAKynN,mBAAqBA,EACtB6/B,GACAtnP,KAAK2mP,0BAKbb,EAAYvpP,UAAUgrP,kBAAoB,WACtCvnP,KAAKwnP,iBAAmB,EACxBxnP,KAAKynP,iBAAmB,EACxB,IAAIC,EAAqB/qP,OAAOsD,KAAKD,KAAKgmP,mBAC1ChmP,KAAK2nP,eAAeD,IAExB5B,EAAYvpP,UAAU0iJ,aAAe,SAAU73I,GAC3C,IAAIhE,EAAS,CACTwkP,YAAaxgP,EAAMygP,iBACnBC,QAAS1gP,EAAM0gP,QACf34D,QAAS/nL,EAAM+nL,QACf44D,QAAS3gP,EAAM2gP,QAKfC,UAAU,GAEdhoP,KAAK2mP,uBAAuBvjP,IAEhC0iP,EAAYvpP,UAAU0rP,qBAAuB,SAAUvgP,GACnD,IAAIwgP,EAAS,GACb,SAASxiP,EAASjJ,EAAKynO,GACnB,IAAIoM,EAAQpM,EAAQa,cAAcr9N,GAC9B4oO,GACA4X,EAAO5oP,KAAKgxO,GAMpB,OAHA3qI,EAAc3lG,KAAKgmP,kBAAmBtgP,GACtCigG,EAAc3lG,KAAKomP,cAAe1gP,GAClCigG,EAAc3lG,KAAKmmP,WAAYzgP,GACxBwiP,GAEXpC,EAAYvpP,UAAU4rP,wBAA0B,WAC5CnoP,KAAKooP,oBAAoBpoP,KAAKmmP,WAAYnmP,KAAKqoP,eAAe9jC,uBAC9DvkN,KAAKooP,oBAAoBpoP,KAAKomP,cAAepmP,KAAKqoP,eAAe5jC,2BAErEqhC,EAAYvpP,UAAU+rP,cAAgB,WAClC,OAAOtoP,KAAKmmP,YAEhBL,EAAYvpP,UAAUgsP,iBAAmB,WACrC,OAAOvoP,KAAKomP,eAEhBN,EAAYvpP,UAAU6rP,oBAAsB,SAAUI,EAAUvgF,GAC5D,IAAIloK,EAAQC,KACZwoP,EAASjqP,SAAQ,SAAUi6B,GACvBA,EAAIw1M,mBACJx1M,EAAI21M,uBAERqa,EAAS/qP,OAAS,EACbwqK,GAGLA,EAAS1pK,SAAQ,SAAUwM,GACvB,IAAI09O,EAAS,IAAIjmB,GAAcziO,EAAMirO,OAAQjgO,EAAShL,EAAMguG,OAAO,GAAO,EAAOhuG,EAAM4iO,aACvF6lB,EAASlpP,KAAKmpP,OAGtB3C,EAAYvpP,UAAUgqP,uBAAyB,WAE3C,IAAInjP,EAAS,CACTwkP,aAAa,GAEjB5nP,KAAK2mP,uBAAuBvjP,IAGhC0iP,EAAYvpP,UAAUmsP,8BAAgC,SAAUzgF,GAC5D,IAAIz5J,EAAS,GACb,OAAImyF,EAAQsnE,IAGZtiE,EAAc3lG,KAAKgmP,mBAAmB,SAAU9mP,EAAOypP,GACnD,IAAI59O,EAAU49O,EAAYha,aACtB1mE,EAASlnK,QAAQgK,IAAY,GAC7ByD,EAAOlP,KAAKJ,MALTsP,GAUfs3O,EAAYvpP,UAAUqsP,WAAa,SAAU3gF,GAEzC,IAAI4gF,EAA6B,MAAZ5gF,GAAoBA,EAASxqK,OAAS,EAC3D,GAAIorP,EAAgB,CAChB,IAAIC,EAAkB9oP,KAAK0oP,8BAA8BzgF,GAEzDjoK,KAAK2nP,eAAemB,GAGxB9oP,KAAK2mP,uBAAuB,CACxBiB,YAAaiB,KAGrB/C,EAAYvpP,UAAUwsP,oCAAsC,SAAU3lP,GAClE,IAAI4lP,EAAc5lP,EAAO6lP,kBAAoB,KAAOjpP,KAAKi6K,gBAAgBivE,gCACzE,GAAIvoJ,EAAQqoJ,GACR,OAAO,KAQX,IAAIt0C,EAAgB/nM,SAAS+nM,cACzByK,EAAUn/M,KAAK8vG,mBAAmB2V,WAAWivF,EAAe29B,GAAS+S,wBACrE+D,EAAuBxoJ,EAAQw+G,GACnC,OAAOgqC,EAAuB,KAAOH,GAQzClD,EAAYvpP,UAAUoqP,uBAAyB,SAAUvjP,QACtC,IAAXA,IAAqBA,EAAS,IAClCpD,KAAKopP,mBACL,IAAIJ,EAAchpP,KAAK+oP,oCAAoC3lP,GAC3DpD,KAAKqpP,yBACLrpP,KAAKspP,qBAAqBlmP,GAG1B,IAAIwkP,GAAe5nP,KAAK2iO,eAAiBv/N,EAAOwkP,YAC5CE,EAAU1kP,EAAO0kP,SAAW9nP,KAAK8vG,mBAAmBs9G,gBAGpDm8B,EAAgB3B,EAAc5nP,KAAK4nP,cAAgB,KAClDA,GACD5nP,KAAKwpP,oBAET,IAAIC,EAA+B,WAC/B,GAAmB,MAAfT,GAAwC,MAAjBO,EACvB,OAAO,EAEX,IAAIjsN,GAAM,EASV,OARAqoE,EAAc4jJ,GAAe,SAAU9sP,EAAKynO,GACxC,IAAIn5N,EAAUm5N,EAAQyK,aAClB+a,EAAgB3+O,EAAQ60I,UAAYopG,EAAYppG,SAChD+pG,EAAc5+O,EAAQwkL,WAAay5D,EAAYz5D,UAC/Cm6D,GAAiBC,IACjBrsN,GAAM,MAGPA,GAEPssN,EAAsBH,IAC1BzpP,KAAK6pP,OAAON,EAAezB,GACtB1kP,EAAO4kP,UACRhoP,KAAKmoP,0BAETnoP,KAAK8pP,+BAGAF,GACD5pP,KAAK+pP,mBAAmBf,GAE5BhpP,KAAKgqP,wBAETlE,EAAYvpP,UAAU+sP,qBAAuB,SAAUlmP,GACnD,IAAI6mP,EAAc7mP,EAAO+rL,SAAW/rL,EAAO2kP,QACvCmC,EAAsBlqP,KAAK8vG,mBAAmBizG,4BAC9CknC,IAAgBC,GAChBlqP,KAAKkoM,YAAYylC,mBAAmBsc,eAG5CnE,EAAYvpP,UAAU8sP,uBAAyB,WAE3C,GAAIrpP,KAAK2iO,YACL3iO,KAAK+sO,0BAA0Bod,eAAe,UADlD,CAIA,IAAIC,EAAkBpqP,KAAKw/I,gBAAgBa,uBAMnB,IAApB+pG,IACAA,EAAkB,GAEtBpqP,KAAK+sO,0BAA0Bod,eAAeC,KAElDtE,EAAYvpP,UAAU6sP,iBAAmB,WACrC,GAAIppP,KAAKqmP,kBACL,MAAM,IAAI1yO,MAAM,iYAMpB3T,KAAKqmP,mBAAoB,GAE7BP,EAAYvpP,UAAUytP,qBAAuB,WACzChqP,KAAKqmP,mBAAoB,GAM7BP,EAAYvpP,UAAUwtP,mBAAqB,SAAU3gB,GAC7CA,GACAppO,KAAKi6K,gBAAgBiwD,eAAed,EAAaxpF,SAAUwpF,EAAa1hO,OAAQ0hO,EAAa75C,WAAW,IAGhHu2D,EAAYvpP,UAAU40M,YAAc,SAAUnvC,QAC3B,IAAXA,IAAqBA,GAAS,GAClChiK,KAAK8mP,gBAAe,SAAUrqP,EAAKynO,GAC/BA,EAAQ/yB,YAAYnvC,OAG5B8jF,EAAYvpP,UAAUg7O,mBAAqB,WAIvCv3O,KAAKooO,iBAAgB,SAAUpD,GAAY,OAAOA,EAASuS,yBAE/DuO,EAAYvpP,UAAU6rO,gBAAkB,SAAU1iO,GAC9C1F,KAAK8mP,gBAAe,SAAUrqP,EAAKynO,GAAW,OAAOA,EAAQkE,gBAAgB1iO,OAEjFogP,EAAYvpP,UAAUuqP,eAAiB,SAAUphP,GAC7CigG,EAAc3lG,KAAKgmP,kBAAmBtgP,GACtCigG,EAAc3lG,KAAKmmP,WAAYzgP,GAC/BigG,EAAc3lG,KAAKomP,cAAe1gP,IAEtCogP,EAAYvpP,UAAU+oO,uBAAyB,SAAUrgH,EAAW26B,EAAUl6I,GAC1E,IAAIw+N,EAAUlkO,KAAKgmP,kBAAkBpmG,GACjCskF,GACAA,EAAQ1zH,iBAAiByU,EAAWv/G,IAG5CogP,EAAYvpP,UAAU8tP,WAAa,SAAUjnP,QAC1B,IAAXA,IAAqBA,EAAS,IAClC,IAAIs1O,EAAat1O,EAAOs1O,WAAYC,EAAYv1O,EAAOu1O,UACvD34O,KAAKsqP,wBAAwBlnP,EAAO6kK,SAAU7kK,EAAO+3F,SAAS,SAAU6pI,GAAY,OAAOA,EAASoT,UAAU,CAAEM,WAAYA,EAAYC,UAAWA,QAEvJmN,EAAYvpP,UAAUo2L,aAAe,SAAUvvL,QAC5B,IAAXA,IAAqBA,EAAS,IAClC,IAAImnP,EAAoB,CACpB3S,aAAcx0O,EAAOmyN,MACrBpmC,SAAS,EACTo5C,cAAenlO,EAAOmlO,eAE1BvoO,KAAKsqP,wBAAwBlnP,EAAO6kK,SAAU7kK,EAAO+3F,SAAS,SAAU6pI,GACpE,GAAIA,EAASqf,uBAAwB,CACjC,IAAIngB,EAAUc,EAASoS,iBACnBlT,GACAA,EAAQoE,YAAYtD,QAIxBA,EAASsD,YAAYiiB,OAIjCzE,EAAYvpP,UAAUiuP,yBAA2B,SAAUpnP,GACvD,IAAIk6B,EAAM,GAOV,OANAt9B,KAAKsqP,wBAAwBlnP,EAAO6kK,SAAU7kK,EAAO+3F,SAAS,SAAU6pI,GACpE,IAAIppE,EAAeopE,EAASqS,kBACxBz7E,GACAt+H,EAAIh+B,KAAKs8J,MAGVt+H,GAEXwoN,EAAYvpP,UAAUkuP,uBAAyB,SAAUrnP,GACrD,IAAIk6B,EAAM,GAOV,OANAt9B,KAAKsqP,wBAAwBlnP,EAAO6kK,SAAU7kK,EAAO+3F,SAAS,SAAU6pI,GACpE,IAAI7sH,EAAa6sH,EAASsS,gBACtBn/H,GACA76E,EAAIh+B,KAAK64G,MAGV76E,GAEXwoN,EAAYvpP,UAAUmuP,gBAAkB,WACpC,IAAIptN,EAAM,GAOV,OANAt9B,KAAKooO,iBAAgB,SAAUpD,GAC3B,GAAIA,EAASsB,YAAa,CACtB,IAAI8C,EAAepE,EAAS2b,kBAC5BrjN,EAAIh+B,KAAK8pO,OAGV9rM,GAIXwoN,EAAYvpP,UAAU+tP,wBAA0B,SAAUriF,EAAU9sE,EAASz1F,GACzE,IACIilP,EAoBAC,EArBA7qP,EAAQC,KAERygG,EAAOwnE,KACP0iF,EAAY,CACRzyK,IAAK,GACLC,OAAQ,GACR0yK,OAAQ,IAEZ5iF,EAAS1pK,SAAQ,SAAUwM,GACvB,IAAIi+C,EAAKj+C,EAAQi+C,GACbj+C,EAAQwkL,YAAcn+E,GAAUc,WAChCy4I,EAAUzyK,IAAIlvB,IAAM,EAEfj+C,EAAQwkL,YAAcn+E,GAAUe,cACrCw4I,EAAUxyK,OAAOnvB,IAAM,EAGvB2hM,EAAUE,OAAO7hM,IAAM,MAK/By3C,EAAOtF,KACPyvJ,EAAY,GACZzvJ,EAAQ58F,SAAQ,SAAU8hI,GACtB,IAAI34H,EAAS3H,EAAMo/I,iBAAiB1e,cAAcJ,GAC9C5/B,EAAO/4F,KACPkjP,EAAUljP,EAAO2vG,UAAW,OAIxC,IAAIyzI,EAAa,SAAU5mB,GACvB,IAAIn5N,EAAUm5N,EAAQyK,aAClB3lL,EAAKj+C,EAAQi+C,GACb+hM,EAAWhgP,EAAQwkL,UAEvB,GAAI9uF,EAAOkqJ,GACP,GAAII,IAAa35I,GAAUe,eACvB,IAAKw4I,EAAUxyK,OAAOnvB,GAClB,YAGH,GAAI+hM,IAAa35I,GAAUc,YAC5B,IAAKy4I,EAAUzyK,IAAIlvB,GACf,YAIJ,IAAK2hM,EAAUE,OAAO7hM,GAClB,OAIZk7K,EAAQkE,iBAAgB,SAAUpD,GAC9B,IAAIliI,EAAQkiI,EAASj2F,YAAY13B,QAC7B2zI,EAAwBJ,IAAcA,EAAU9nJ,GAChDkoJ,GAGAtlP,GACAA,EAASs/N,OAIrBr/H,EAAc3lG,KAAKgmP,mBAAmB,SAAU9mP,EAAOglO,GACnD4mB,EAAW5mB,MAEXlkO,KAAKmmP,YACLnmP,KAAKmmP,WAAW5nP,QAAQusP,GAExB9qP,KAAKomP,eACLpmP,KAAKomP,cAAc7nP,QAAQusP,IAGnChF,EAAYvpP,UAAU6J,QAAU,WAC5BpG,KAAKwpP,oBACL3kP,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElC8lP,EAAYvpP,UAAUitP,kBAAoB,WACtC,IAAI9B,EAAqB/qP,OAAOsD,KAAKD,KAAKgmP,mBAC1ChmP,KAAK2nP,eAAeD,IAExB5B,EAAYvpP,UAAUqrP,YAAc,WAEhC,IAAIqD,EAAkB,GACtBtlJ,EAAc3lG,KAAKgmP,mBAAmB,SAAU9mP,EAAOglO,GACnD,IAAIgnB,EAAsC,MAA3BhnB,EAAQyK,aAAa3lL,GAChCkiM,GACAD,EAAgB3rP,KAAKJ,MAG7Bc,KAAK2nP,eAAesD,GAEpB,IAAIE,EAAe,GAMnB,OALAxlJ,EAAc3lG,KAAKgmP,mBAAmB,SAAU9mP,EAAOglO,GACnD,IAAIn5N,EAAUm5N,EAAQyK,aACtBwc,EAAapgP,EAAQi+C,IAAMk7K,KAE/BlkO,KAAKgmP,kBAAoB,GAClBmF,GAGXrF,EAAYvpP,UAAUorP,eAAiB,SAAUyD,GAC7C,IAAIrrP,EAAQC,KAGZorP,EAAa7sP,SAAQ,SAAU8sP,GAC3B,IAAInnB,EAAUnkO,EAAMimP,kBAAkBqF,GAClCnnB,IACAA,EAAQ8J,mBACR9J,EAAQiK,4BAELpuO,EAAMimP,kBAAkBqF,OAOvCvF,EAAYvpP,UAAUiqP,kBAAoB,WACtCxmP,KAAKopP,mBACLppP,KAAK6pP,OAAO,MAAM,GAAO,GACzB7pP,KAAKgqP,uBACLhqP,KAAK8pP,gCAEThE,EAAYvpP,UAAU+uP,wBAA0B,SAAUC,GAEtD,IAAIC,EAAmB,GACvBD,EAAchtP,SAAQ,SAAUW,GAAS,OAAQssP,EAAiBtsP,IAAS,KAC3E,IAAIusP,EAAkB9uP,OAAOsD,KAAKD,KAAKgmP,mBACnC0F,EAAmBD,EAAgBl7J,QAAO,SAAUrxF,GAAS,OAAQssP,EAAiBtsP,MAC1Fc,KAAK2nP,eAAe+D,IAExB5F,EAAYvpP,UAAUovP,uBAAyB,SAAUpC,GACrD,IAAIxpP,EAAQC,KAERurP,EAAgBvwG,GAAqBh7I,KAAKwnP,iBAAkBxnP,KAAKynP,iBACjEmE,EAAiB,SAAUC,EAAU3nB,GACrC,IAAIhlO,EAAQglO,EAAQyK,aAAa/uF,SACpB,MAAT1gJ,IAGAA,EAAQa,EAAMynP,kBAAoBtoP,EAAQa,EAAM0nP,kBAC5C1nP,EAAM+rP,qBAAqB5nB,IAC3BqnB,EAAcjsP,KAAKJ,IAS/B,OAJAymG,EAAc3lG,KAAKgmP,kBAAmB4F,GAEtCjmJ,EAAc4jJ,EAAeqC,GAC7BL,EAAch9N,MAAK,SAAU5iB,EAAGxH,GAAK,OAAOwH,EAAIxH,KACzConP,GAEXzF,EAAYvpP,UAAUstP,OAAS,SAAUN,EAAezB,EAASiE,GAC7D,IAAIhsP,EAAQC,UACI,IAAZ8nP,IAAsBA,GAAU,QAChB,IAAhBiE,IAA0BA,GAAc,GAC5C/rP,KAAK+sO,0BAA0Bif,eAC/BhsP,KAAKisP,kCAOL,IAAIV,EAAgBvrP,KAAK2rP,uBAAuBpC,GAWhD,GAVAvpP,KAAKsrP,wBAAwBC,GAGzBvrP,KAAK2iO,cACLmlB,GAAU,GAEdyD,EAAchtP,SAAQ,SAAUqhJ,GAC5B,IAAIskF,EAAUnkO,EAAMmsP,qBAAqBtsG,EAAU2pG,EAAezB,EAASiE,GACvEtrJ,EAAOyjI,MAEXqlB,EAAe,CACf,IAAI4C,EAAoBJ,IAAgB/rP,KAAK8vG,mBAAmBi1G,6BAA+B/kN,KAAK2iO,YAChGwpB,EACAnsP,KAAK+tG,MAAMm4H,UAAUkmB,gBAAe,WAChCrsP,EAAMssP,eAAe9C,EAAezB,GACpC/nP,EAAM8mP,mBACN9mP,EAAM+pP,kCAIV9pP,KAAKqsP,eAAe9C,EAAezB,GAG3C9nP,KAAK6mP,mBACL7mP,KAAKssP,sBACLtsP,KAAKkoM,YAAYqkD,kBAErBzG,EAAYvpP,UAAUutP,6BAA+B,WACjD,IAAI1iP,EAAQ,CAAE3H,KAAMktH,GAAOyE,8BAC3BpxH,KAAKq0G,aAAa5nG,cAAcrF,IAEpC0+O,EAAYvpP,UAAUsrO,0BAA4B,WAC9C,IAAI2kB,EAAcxsP,KAAKm/I,iBAAiB9W,gBACpCokH,EAAezsP,KAAKm/I,iBAAiB7W,iBACrCvC,EAAoB/lI,KAAKwsP,cAAgBA,GAAeC,IAAiBzsP,KAAKysP,aAC9E1mH,IACA/lI,KAAKwsP,YAAcA,EACnBxsP,KAAKysP,aAAeA,EAChBzsP,KAAKynN,oBACLznN,KAAK0sP,gCAMjB5G,EAAYvpP,UAAUmwP,4BAA8B,WAGhD,IAAItB,EAAe,GACnBzlJ,EAAc3lG,KAAKgmP,mBAAmB,SAAUh9L,EAAIk7K,GAChD,GAAIA,EAAQ6B,cAAe,CACvB,IAAInmF,EAAWskF,EAAQyK,aAAa/uF,SACpCwrG,EAAa9rP,KAAKsgJ,EAASjiJ,gBAGnCqC,KAAKmoP,0BACLnoP,KAAK2nP,eAAeyD,GACpBprP,KAAKwmP,qBAETV,EAAYvpP,UAAUowP,qBAAuB,SAAUC,GACnD,IAAIxB,EAAe,GACfyB,IAA0BD,EAC1BE,EAAeD,EAAwB,QAAKxtP,EAC5CwtP,GAAyBC,GACzBF,EAAkBruP,SAAQ,SAAUoG,GAAK,OAAOmoP,EAAanoP,EAAEqkD,KAAM,KAEzE28C,EAAc3lG,KAAKgmP,mBAAmB,SAAUh9L,EAAIk7K,GAChD,GAAKA,EAAQ6B,cAAb,CAGA,IAAIh7N,EAAUm5N,EAAQyK,aACtB,GAAIke,GAAyBC,EAAc,CAKvC,IAAIr7L,EAAY1mD,EAAQquC,MAAQ,GAAKruC,EAAQlI,OAAUkI,EAAQlI,OAAOmmD,QAAK3pD,EACvEq2L,GAAgBo3D,EAAa/hP,EAAQi+C,MAAQ8jM,EAAar7L,GAC9D,GAAIikI,EACA,OAGR,IAAIq3D,EAAyB7oB,EAAQwC,mBACrC,IAAKqmB,EAAwB,CACzB,IAAIntG,EAAWskF,EAAQyK,aAAa/uF,SACpCwrG,EAAa9rP,KAAKsgJ,EAASjiJ,iBAGnCqC,KAAK2nP,eAAeyD,GACpBprP,KAAKwmP,qBAETV,EAAYvpP,UAAU2vP,qBAAuB,SAAUtsG,EAAU2pG,EAAezB,EAASiE,GACrF,IAAIhhP,EAAU,KACV09O,EAASzoP,KAAKgmP,kBAAkBpmG,GAE/B6oG,IACD19O,EAAU/K,KAAKw/I,gBAAgBM,OAAOF,GAClCn/C,EAAO11F,IAAY01F,EAAO8oJ,IAAkBA,EAAcx+O,EAAQi+C,KAAOj+C,EAAQujL,kBACjFm6D,EAASc,EAAcx+O,EAAQi+C,IAC/BugM,EAAcx+O,EAAQi+C,IAAM,OAGpC,IAAIgkM,GAAqBvE,EACzB,GAAIuE,EAAmB,CAKnB,GAHKjiP,IACDA,EAAU/K,KAAKw/I,gBAAgBM,OAAOF,KAEtCn/C,EAAO11F,GAMP,OALA09O,EAASzoP,KAAKitP,aAAaliP,EAAS+8O,EAASiE,GAcrD,OANIhhP,IAGAA,EAAQujL,iBAAkB,GAE9BtuL,KAAKgmP,kBAAkBpmG,GAAY6oG,EAC5BA,GAEX3C,EAAYvpP,UAAU8vP,eAAiB,SAAUa,EAAYpF,GACzD,IAAI/nP,EAAQC,KACRmtP,EAAuB,GAC3BxnJ,EAAcunJ,GAAY,SAAU7tB,EAAQopB,GAEnCA,IAGLA,EAAOza,mBACH8Z,GACA/nP,EAAMkmP,cAAcwC,EAAOxnI,iBAAmBwnI,EAC9C0E,EAAqB7tP,MAAK,WACtBmpP,EAAOta,2BACApuO,EAAMkmP,cAAcwC,EAAOxnI,qBAItCwnI,EAAOta,wBAGX2Z,IAGAqF,EAAqB7tP,MAAK,WACtBS,EAAM8mP,mBACN9mP,EAAM+pP,kCAEVnhJ,GAAgBwkJ,KAGxBrH,EAAYvpP,UAAU+vP,oBAAsB,WACxC,IAAIvsP,EAAQC,KAERA,KAAK8vG,mBAAmBw6G,wBAExB/+M,OAAOE,YAAW,WACd1L,EAAMirO,OAAOoiB,WACd,IAGXtH,EAAYvpP,UAAU0vP,gCAAkC,WACpD,IACItgB,EACAC,EAFA7rO,EAAQC,KAGZ,GAAKA,KAAKw/I,gBAAgB6tG,iBAIrB,GAAIrtP,KAAK2iO,YACVgJ,EAAW3rO,KAAKw/I,gBAAgBC,kBAChCmsF,EAAU5rO,KAAKw/I,gBAAgBG,qBAE9B,CACD,IAAI2tG,EAAettP,KAAK8vG,mBAAmBinH,uBACvC7uB,EAAcloM,KAAKmoM,mBAAmBC,wBACtCmlD,GAAoB,EACpBC,OAAa,EACbC,OAAY,EAChB,EAAG,CACC,IAAIC,EAAmB1tP,KAAKw/I,gBAAgB+uF,iBACxCjhJ,EAAKttF,KAAKw/I,gBAAgBmuG,2BAA4BC,EAAiBtgK,EAAGsgK,eAAgBC,EAAgBvgK,EAAGugK,cAC7GC,EAAmB9tP,KAAK+sO,0BAA0BghB,sBAClDC,EAAa9lD,EAAYylC,mBAAmBC,qBAC5CqgB,EAAeD,EAAW91K,IAC1Bg2K,EAAkBF,EAAW71K,OACjCq1K,EAAat4O,KAAKuM,IAAIwsO,EAAeP,EAAmBJ,EAAcM,GAAkBE,EACxFL,EAAYv4O,KAAKsM,IAAI0sO,EAAkBR,EAAmBJ,EAAcO,GAAiBC,EAEzFP,EAAoBvtP,KAAKmuP,0CAA0CX,EAAYC,SAC1EF,GACT,IAAIa,EAAgBpuP,KAAKw/I,gBAAgB6uG,mBAAmBb,GACxDc,EAAetuP,KAAKw/I,gBAAgB6uG,mBAAmBZ,GACvDc,EAAevuP,KAAKw/I,gBAAgBC,kBACpC+uG,EAAcxuP,KAAKw/I,gBAAgBG,iBAEnCyuG,EAAgBG,IAChBH,EAAgBG,GAEhBD,EAAeE,IACfF,EAAeE,GAEnB7iB,EAAWyiB,EACXxiB,EAAU0iB,OArCV3iB,EAAW,EACXC,GAAW,EA0Cf,IAAI6iB,EAAkBzuP,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUgB,kBACvEs8I,EAA8B1uP,KAAK8vG,mBAAmB0zG,sCACtDmrC,EAAmBz5O,KAAKuM,IAAIzhB,KAAK8vG,mBAAmB+mH,eAAgB,KACpE43B,IAAoBC,GAChB9iB,EAAUD,EAAWgjB,IACrB/iB,EAAUD,EAAWgjB,GAG7B,IAAIC,EAAejjB,IAAa3rO,KAAKwnP,iBACjCqH,EAAcjjB,IAAY5rO,KAAKynP,gBACnC,GAAImH,GAAgBC,EAAa,CAC7B7uP,KAAKwnP,iBAAmB7b,EACxB3rO,KAAKynP,gBAAkB7b,EACvB,IAAIhoH,EAAU,CACVnkH,KAAMktH,GAAOoD,uBACbwvB,SAAUosF,EACVjsF,QAASksF,EACThiO,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcm3G,GAGpC,GAAI5jH,KAAKw/I,gBAAgB6tG,iBAAkB,CACvC,IAAI1xH,EAAU,CACVl8H,KAAMktH,GAAOsD,0BACbsvB,SAAUosF,EACVjsF,QAASksF,EACThiO,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAKpB0B,OAAOE,YAAW,WAAc,OAAO1L,EAAMs0G,aAAavD,kBAAkB6qB,KAAa,MAGjGmqH,EAAYvpP,UAAU4xP,0CAA4C,SAAUW,EAAUC,GAGlF,IAAIzxN,EAAMt9B,KAAKw/I,gBAAgBwvG,sBAAsBF,EAAUC,GAAc,GAAI,GAIjF,OAHIzxN,GACAt9B,KAAKqpP,yBAEF/rN,GAEXwoN,EAAYvpP,UAAU0yP,2BAA6B,WAC/C,OAAOjvP,KAAKwnP,kBAEhB1B,EAAYvpP,UAAU2yP,0BAA4B,WAC9C,OAAOlvP,KAAKynP,iBAahB3B,EAAYvpP,UAAUuvP,qBAAuB,SAAU5nB,GACnD,IAAIirB,GAAa,EACbC,GAAW,EACXrkP,EAAUm5N,EAAQyK,aAClB0gB,EAAcrvP,KAAKi6K,gBAAgBq1E,iBAAiBvkP,GACpDwkP,EAAerrB,EAAQoC,YACvBkpB,EAAczkP,EAAQ07J,OACtBgpF,EAAqBJ,GAAeE,GAAgBC,EAExD,IAAKC,EACD,OAAON,EAKX,IAAIO,EAAiB1vP,KAAKw/I,gBAAgBmwG,aAAa5kP,GACvD,OAAO2kP,EAAiBN,EAAWD,GAEvCrJ,EAAYvpP,UAAU0wP,aAAe,SAAUliP,EAAS+8O,EAASiE,GAC7D,IAAI/mC,EAAyBhlN,KAAK8vG,mBAAmBi1G,2BAMjD2d,EAA6BqpB,IAAgB/mC,IAA2BhlN,KAAK2iO,YAC7ErlM,EAAM,IAAIklM,GAAcxiO,KAAKgrO,OAAQjgO,EAAS/K,KAAK+tG,MAAO+5I,EAASplB,EAA4B1iO,KAAK2iO,aACxG,OAAOrlM,GAEXwoN,EAAYvpP,UAAUqzP,iBAAmB,WACrC,IAAIC,EAAe7vP,KAAKgmP,kBACxB,OAAOrpP,OAAOsD,KAAK4vP,GAAcpoP,KAAI,SAAUhL,GAAO,OAAOozP,EAAapzP,GAAKkyO,iBAInFmX,EAAYvpP,UAAUo2N,mBAAqB,SAAUvrN,EAAO3K,EAAKqzP,EAAaC,GAE1E,IAAIC,EAAWF,EACXG,GAAgB,EACpB,MAAOD,IAAaA,IAAaF,IAAgB9vP,KAAKkwP,oBAAoBF,IAIlEhwP,KAAK8vG,mBAAmB6Q,cACpBlkH,IAAQo3K,GAAQO,OAChB47E,EAAWhwP,KAAKmwP,qBAAqBH,IAGpCvzP,IAAQo3K,GAAQS,QACrB07E,EAAWhwP,KAAKmwP,qBAAqBH,IAEzCA,EAAWhwP,KAAKowP,sBAAsBC,mBAAmB5zP,EAAKuzP,GAE9DC,EAAgBtvJ,EAAQqvJ,GAW5B,GATIC,GAAiB7oP,GAASA,EAAM09J,UAAY+O,GAAQQ,KACpD27E,EAAW,CACPpwG,UAAW,EACX2vC,UAAW,KACX7nL,OAAQooP,EAAYpoP,SAKxBqoP,EAAmB,CACnB,IAAIl3I,EAAW74G,KAAK8vG,mBAAmB4iH,4BACvC,GAAIjyH,EAAOoY,GAAW,CAClB,IAAIz1G,EAAS,CACT3G,IAAKA,EACL6zP,qBAAsBR,EACtBS,iBAAkBP,GAAsB,KACxC5oP,MAAOA,GAEPopP,EAAW33I,EAASz1G,GACpBq9F,EAAO+vJ,IACHA,EAASzF,WACT3iJ,IAAO,WAAcnlG,QAAQkD,KAAK,0JAA4J,2BAC9LqqP,EAASjhE,UAAYihE,EAASzF,UAElCiF,EAAW,CACPzgE,UAAWihE,EAASjhE,UACpB3vC,SAAU4wG,EAAS5wG,SACnBl4I,OAAQ8oP,EAAS9oP,SAIrBsoP,EAAW,MAKvB,GAAKA,EAGL,GAAIA,EAASpwG,SAAW,EAAxB,CACI,IAAI6wG,EAAYzwP,KAAK+tG,MAAMohI,wBAAwB3yG,oBACnDx8H,KAAKi6K,gBAAgBy2E,oBAAoB,CAAEjwG,eAAgBgwG,EAAaT,EAAiB,SAAGtoP,OAAQooP,EAAYpoP,aAFpH,CAOA,IAAIipP,EAAqB3wP,KAAK4wP,sBAAsBZ,GAChDW,EACA3wP,KAAK6wP,cAAcF,GAGnB3wP,KAAK8wP,uBAAuBd,KAGpClK,EAAYvpP,UAAUq0P,sBAAwB,SAAUxnB,GAEpDppO,KAAKy/O,kBAAkBrW,GACvB,IAAIpE,EAAWhlO,KAAK+wP,oBAAoB3nB,GAExC,OAAKpE,GAGLoE,EAAepE,EAAS2b,kBAMxB3gP,KAAKy/O,kBAAkBrW,GAChBA,GATI,MAWf0c,EAAYvpP,UAAUu0P,uBAAyB,SAAUluG,EAAUouG,QAC7C,IAAdA,IAAwBA,GAAY,GACxC,IAAIz7H,EAAmBv1H,KAAKm/I,iBAAiBpjB,yBACzCmoG,EAAUlkO,KAAKixP,oBAAoBruG,GACvC,IAAKshF,IAAYA,EAAQ6B,cACrB,OAAO,EAEX,IAAIqD,EAAe,CACfxpF,SAAUgD,EAAShD,SACnB2vC,UAAW3sC,EAAS2sC,UACpB7nL,OAAQk7I,EAASl7I,SAAWspP,EAAY70K,EAAKo5C,GAAoBA,EAAiB,KAGtF,OADAv1H,KAAK6wP,cAAcznB,IACZ,GAEX0c,EAAYvpP,UAAUs0P,cAAgB,SAAUznB,GAC5CppO,KAAKi6K,gBAAgBiwD,eAAed,EAAaxpF,SAAUwpF,EAAa1hO,OAAQ0hO,EAAa75C,WAAW,GACpGvvL,KAAK+yO,iBACL/yO,KAAK+yO,gBAAgByN,eAAepX,IAG5C0c,EAAYvpP,UAAU2zP,oBAAsB,SAAU3sN,GAClD,IAAIx4B,EAAU/K,KAAKkiP,iBAAiBvT,WAAWprM,GAE/C,QAASx4B,GAEb+6O,EAAYvpP,UAAU4zP,qBAAuB,SAAU5sN,GACnD,IAAIyhM,EAAWhlO,KAAK+wP,oBAAoBxtN,GACxC,IAAKyhM,EACD,OAAOzhM,EAEX,IAAI2tN,EAAkBlsB,EAASqR,qBAC/B,OAA+B,IAA3B6a,EAAgBzzP,OACT8lC,EAEJ,CACHq8G,SAAUr8G,EAAKq8G,SACfl4I,OAAQy0E,EAAK+0K,GACb3hE,UAAWhsJ,EAAKgsJ,YAGxBu2D,EAAYvpP,UAAUkjP,kBAAoB,SAAU0R,GAE5CxwJ,EAAQwwJ,EAAS5hE,YACjBvvL,KAAKkoM,YAAYylC,mBAAmByjB,mBAAmBD,EAASvxG,UAE/DuxG,EAASzpP,OAAO20G,YACjBr8G,KAAKkoM,YAAYylC,mBAAmB0jB,oBAAoBF,EAASzpP,QAIrE1H,KAAKkoM,YAAYylC,mBAAmB2jB,kDAEpCtxP,KAAK66H,sBAAsBC,kBAE/BgrH,EAAYvpP,UAAUg1P,iBAAmB,SAAUJ,EAAU77E,EAAUC,GACnE,IAAIhyI,EAAOvjC,KAAK+wP,oBAAoBI,GAChC5tN,GACAA,EAAKm5M,mBAAmBpnE,EAAUC,IAG1CuwE,EAAYvpP,UAAU00P,oBAAsB,SAAUO,GAClD,IAAIC,EACJ,OAAQD,EAAYjiE,WAChB,KAAKn+E,GAAUc,WACXu/I,EAAezxP,KAAKmmP,WAAWqL,EAAY5xG,UAC3C,MACJ,KAAKxuC,GAAUe,cACXs/I,EAAezxP,KAAKomP,cAAcoL,EAAY5xG,UAC9C,MACJ,QACI6xG,EAAezxP,KAAKgmP,kBAAkBwL,EAAY5xG,UAClD,MAER,OAAO6xG,GAEX3L,EAAYvpP,UAAUw0P,oBAAsB,SAAU3nB,GAClD,IAAIlF,EAAUlkO,KAAKixP,oBAAoB7nB,GACvC,IAAKlF,EACD,OAAO,KAEX,IAAIwtB,EAAgBxtB,EAAQe,yBAAyBmE,EAAa1hO,QAClE,OAAOgqP,GAEX5L,EAAYvpP,UAAUoyO,WAAa,SAAUgjB,GACzC,OAAQA,EAAQpiE,WACZ,KAAKn+E,GAAUc,WACX,OAAOlyG,KAAKqoP,eAAe9jC,sBAAsBotC,EAAQ/xG,UAC7D,KAAKxuC,GAAUe,cACX,OAAOnyG,KAAKqoP,eAAe5jC,yBAAyBktC,EAAQ/xG,UAChE,QACI,OAAO5/I,KAAKk4I,SAAS4H,OAAO6xG,EAAQ/xG,YAIhDkmG,EAAYvpP,UAAU69K,aAAe,SAAUw3E,EAAsBtsF,GACjE,IAAI0rF,EAAY1rF,EAAc1kC,SAC1BixH,EAAkB7xP,KAAK8xP,oBAAoBF,EAAsBZ,GACrE,GAAIa,EAGAvsF,EAAcqQ,sBAKlB,GAAIq7E,EAAW,CACX,IAAI1jK,EAAKskK,EAAqB/oB,iBAAkBjpF,EAAWtyD,EAAGsyD,SAAU2vC,EAAYjiG,EAAGiiG,UACnFhwC,EAAWgwC,EAAyB,IAAb3vC,EAAiBA,IAAa5/I,KAAKw/I,gBAAgBC,kBAC9E,GAAIF,EAAU,CACV+lB,EAAcqQ,iBACd,IAAIl1B,EAAiBzgJ,KAAK+tG,MAAMohI,wBAAwB3yG,oBAAsB,EAC1E90H,EAASy0E,EAAKn8E,KAAKm/I,iBAAiBpjB,0BACxC/7H,KAAKi6K,gBAAgBy2E,oBAAoB,CAAEjwG,eAAgBA,EAAgB/4I,OAAQA,UAOnFkqP,aAAgCvf,IAChCuf,EAAqB7U,WAAU,GAE/B/8O,KAAKi6K,gBAAgB83E,4BAA2B,IAChDzsF,EAAcqQ,kBAK1BmwE,EAAYvpP,UAAUs2N,cAAgB,SAAUm+B,GAC5C,IAAIhI,EAAchpP,KAAKi6K,gBAAgBkvD,iBAEvC,IAAK6f,EACD,OAAO,EAEX,IAAIgJ,EAAgBhyP,KAAK+wP,oBAAoB/H,GAG7C,SAAKgJ,IACDA,EAAgBhyP,KAAKixP,oBAAoBjI,GACpCgJ,GAAkBA,EAAcjsB,iBAIlC/lO,KAAK8xP,oBAAoBE,EAAehB,IAEnDlL,EAAYvpP,UAAUu1P,oBAAsB,SAAUG,EAAmBjB,GACrE,IASI1zN,EATAioI,EAAU0sF,EAAkB3rB,YAEhC,IAAK/gE,GAAW0sF,aAA6B5f,GAAU,CACnD,IAAIrN,EAAWitB,EACXxJ,EAASzjB,EAASoS,iBAClBqR,IACAljF,EAAUkjF,EAAOniB,aAiBzB,OAVQhpM,EAHJioI,EAEIvlK,KAAK8vG,mBAAmBohG,gBAClBlxM,KAAKkyP,qBAAqBD,EAAmBjB,GAG7ChxP,KAAKmyP,sBAAsBF,EAAmBjB,GAIlDhxP,KAAKoyP,yBAAyBH,EAAmBjB,GAGpD1zN,KAASt9B,KAAKi6K,gBAAgBo4E,oBAEzCvM,EAAYvpP,UAAU41P,sBAAwB,SAAUP,EAAsBZ,GAC1E,IAAIG,EAAWS,EAAqBjR,kBAKpCiR,EAAqBzgD,cAErB,IAAImhD,EAAmBtyP,KAAKuyP,sBAAsBpB,EAAUH,GAAW,GACnEwB,EAAgC,MAApBF,EAOhB,OAJIE,IACAF,EAAiBnmB,sBAAsB,KAAM,MAAM,GACnDmmB,EAAiBvV,WAAU,IAExByV,GAEX1M,EAAYvpP,UAAU21P,qBAAuB,SAAUO,EAAkBzB,GACrE,IAAI0B,EAAUD,EAAiB9R,kBAE3BgS,EAAe3yP,KAAKuyP,sBAAsBG,EAAS1B,GAAW,GAClE,GAAoB,MAAhB2B,EACA,OAAO,EAEX,IAAIC,EAAcH,EAAiB9R,kBAC/BkS,EAAUF,EAAahS,kBACvBmS,EAAmB9yP,KAAK84G,eAAe85I,GACvCG,EAAe/yP,KAAK84G,eAAe+5I,GACnCG,EAAYH,GAAWD,EAAYhzG,WAAaizG,EAAQjzG,UAAYgzG,EAAYrjE,YAAcsjE,EAAQtjE,UAI1G,GAHIujE,GACAL,EAAiBpT,uBAEhB2T,EAAW,CACZ,IAAIC,EAAOR,EAAiBrb,iBAC5B6b,EAAK9hD,cACL,IAAI+hD,EAAOP,EAAavb,iBACxB8b,EAAKjnB,kBAST,OAPI8mB,GACAJ,EAAa5T,qBACb4T,EAAa5V,aAGb4V,EAAa5V,WAAU,IAEpB,GAEX+I,EAAYvpP,UAAU61P,yBAA2B,SAAUR,EAAsBZ,GAC7E,IACIG,EADA57H,EAAmBv1H,KAAKm/I,iBAAiBpjB,yBAGzCo1H,EADAS,aAAgCpvB,GACrBkjB,GAAWA,GAAW,GAAIkM,EAAqB/oB,kBAAmB,CAAEnhO,OAAQspP,EAAYz7H,EAAiB,GAAKp5C,EAAKo5C,KAGnHq8H,EAAqBjR,kBAGpC,IAAI2R,EAAmBtyP,KAAKuyP,sBAAsBpB,EAAUH,GAAW,GAGvE,GAAIsB,aAA4BjgB,GAC5BigB,EAAiBvV,WAAU,QAE1B,GAAIuV,EACL,OAAOtyP,KAAK8wP,uBAAuBwB,EAAiBzpB,iBAAkBmoB,GAE1E,OAAOvwJ,EAAO6xJ,IAIlBxM,EAAYvpP,UAAUg2P,sBAAwB,SAAUpB,EAAUH,EAAWmC,GACzE,IAAInD,EAAWmB,EACf,MAAO,EAAM,CACJH,IACDhB,EAAWhwP,KAAKmwP,qBAAqBH,IAEzCA,EAAWhwP,KAAKowP,sBAAsBgD,kBAAkBpD,EAAUgB,GAElE,IAAIn4I,EAAW74G,KAAK8vG,mBAAmB8iH,uBACvC,GAAInyH,EAAOoY,GAAW,CAClB,IAAIz1G,EAAS,CACT4tP,UAAWA,EACXzrF,QAAS4tF,EACT7C,qBAAsBa,EACtBZ,iBAAkBP,GAAsB,MAExCQ,EAAW33I,EAASz1G,GACpBq9F,EAAO+vJ,IACHA,EAASzF,WACT3iJ,IAAO,WAAcnlG,QAAQkD,KAAK,0JAA4J,2BAC9LqqP,EAASjhE,UAAYihE,EAASzF,UAElCiF,EAAW,CACPpwG,SAAU4wG,EAAS5wG,SACnBl4I,OAAQ8oP,EAAS9oP,OACjB6nL,UAAWihE,EAASjhE,YAIxBygE,EAAW,KAKnB,IAAKA,EACD,OAAO,KAEX,GAAIA,EAASpwG,SAAW,EAAG,CACvB,IAAI6wG,EAAYzwP,KAAK+tG,MAAMohI,wBAAwB3yG,oBAEnD,OADAx8H,KAAKi6K,gBAAgBy2E,oBAAoB,CAAEjwG,eAAgBgwG,EAAaT,EAAiB,SAAGtoP,OAAQsoP,EAAStoP,SACtG,KAOX,IAAIg4O,EAAc1/O,KAAK8vG,mBAAmBohG,gBAC1C,GAAIiiD,IAAiBzT,EAAa,CAC9B,IAAI2T,EAAiBrzP,KAAK84G,eAAek3I,GACzC,IAAKqD,EACD,SAGRrzP,KAAKy/O,kBAAkBuQ,GAGvB,IAAI2C,EAAe3yP,KAAK+wP,oBAAoBf,GAG5C,GAAK2C,GASL,IAAIA,EAAah6I,sBASjB,OAJI34G,KAAK+yO,iBACL/yO,KAAK+yO,gBAAgByN,eAAewP,GAGjC2C,MAlBP,CACI,IAAIzuB,EAAUlkO,KAAKixP,oBAAoBjB,GACvC,GAAK9rB,GAAYA,EAAQ6B,cAIrB,OAAO7B,KAevB4hB,EAAYvpP,UAAUu8G,eAAiB,SAAUv1E,GAC7C,IAAIx4B,EAAU/K,KAAKszP,qBAAqB/vN,GACxC,QAAIx4B,GACOw4B,EAAK77B,OAAOoxG,eAAe/tG,IAI1C+6O,EAAYvpP,UAAU+2P,qBAAuB,SAAU/vN,GACnD,OAAIA,EAAKgsJ,YAAcn+E,GAAUc,WACtBlyG,KAAKqoP,eAAekL,gBAAgBhwN,EAAKq8G,UAEhDr8G,EAAKgsJ,YAAcn+E,GAAUe,cACtBnyG,KAAKqoP,eAAemL,mBAAmBjwN,EAAKq8G,UAEhD5/I,KAAKw/I,gBAAgBM,OAAOv8G,EAAKq8G,WAI5CkmG,EAAYvpP,UAAUk3P,0BAA4B,SAAUC,EAAYC,GAEpE,IAAIC,EAA6B,MAAdF,GAAkC,MAAZC,EACzC,GAAIC,EACA,OAAO,EAEX,IAAIC,EAAqBH,EAAa1zP,KAAKynP,gBACvCqM,EAAsBH,EAAW3zP,KAAKwnP,iBACtCuM,GAAuBD,IAAwBD,EACnD,OAAOE,GAEXpO,GAAa,CACT/2I,GAAU,oBACXk3I,EAAYvpP,UAAW,uBAAmB,GAC7CopP,GAAa,CACT/2I,GAAU,qBACXk3I,EAAYvpP,UAAW,wBAAoB,GAC9CopP,GAAa,CACT/2I,GAAU,WACXk3I,EAAYvpP,UAAW,cAAU,GACpCopP,GAAa,CACT/2I,GAAU,mBACXk3I,EAAYvpP,UAAW,sBAAkB,GAC5CopP,GAAa,CACT/2I,GAAU,aACXk3I,EAAYvpP,UAAW,gBAAY,GACtCopP,GAAa,CACT/2I,GAAU,oBACXk3I,EAAYvpP,UAAW,uBAAmB,GAC7CopP,GAAa,CACT/2I,GAAU,0BACXk3I,EAAYvpP,UAAW,6BAAyB,GACnDopP,GAAa,CACT/2I,GAAU,cACXk3I,EAAYvpP,UAAW,iBAAa,GACvCopP,GAAa,CACT/2I,GAAU,YACXk3I,EAAYvpP,UAAW,eAAW,GACrCopP,GAAa,CACT/2I,GAAU,UACXk3I,EAAYvpP,UAAW,aAAS,GACnCopP,GAAa,CACT/2I,GAAU,8BACXk3I,EAAYvpP,UAAW,iCAA6B,GACvDopP,GAAa,CACT/2I,GAAU,0BACXk3I,EAAYvpP,UAAW,6BAAyB,GACnDopP,GAAa,CACT/2I,GAAU,qBACXk3I,EAAYvpP,UAAW,wBAAoB,GAC9CopP,GAAa,CACT72I,GAAS,oBACVg3I,EAAYvpP,UAAW,uBAAmB,GAC7CopP,GAAa,CACT72I,GAAS,uBACVg3I,EAAYvpP,UAAW,0BAAsB,GAChDopP,GAAa,CACTC,GAAU,EAAG32I,GAAU,mBACxB62I,EAAYvpP,UAAW,SAAU,MACpCopP,GAAa,CACTr3I,IACDw3I,EAAYvpP,UAAW,gBAAiB,MAC3CupP,EAAcH,GAAa,CACvBj3I,GAAK,gBACNo3I,GACIA,EAh5CqB,CAi5C9Bl/H,IAQEotI,GAAiC,WACjC,SAASA,KA6CT,OA3CAA,EAAgBC,2BAA6B,SAAUvnI,EAAgBwnI,EAAapkJ,EAAoBpoG,EAAQk9H,GACxGjkC,EAAQ+rB,IAGZ1sH,KAAKm0P,4BAA4BznI,EAAexI,YAAawI,EAAgBwnI,EAAapkJ,EAAoBpoG,EAAQk9H,IAE1HovH,EAAgBI,8BAAgC,SAAU1nI,EAAgBwnI,EAAapkJ,EAAoBpoG,EAAQk9H,GAC3GjkC,EAAQ+rB,IAGZ1sH,KAAKm0P,4BAA4BznI,EAAe2nI,eAAgB3nI,EAAgBwnI,EAAapkJ,EAAoBpoG,EAAQk9H,IAE7HovH,EAAgBG,4BAA8B,SAAUG,EAAe5nI,EAAgBwnI,EAAapkJ,EAAoBpoG,EAAQk9H,GAC5H,IAAIjkC,EAAQ2zJ,GAAZ,CAGA,IAAIC,EACJ,GAA6B,oBAAlBD,EAA8B,CACrC,IAAIlxP,EAAS,CAITwE,OAAQ8kH,EACRhlH,OAAQA,EACRk9H,YAAaA,EACbv7B,QAASyG,EAAmB0I,aAC5B5uG,IAAKkmG,EAAmB2I,UAExB+7I,EAAkBF,EACtBC,EAAaC,EAAgBpxP,QAG7BmxP,EAAaD,EAES,kBAAfC,EACPzwG,GAAYowG,EAAaK,GAEpBl3P,MAAMC,QAAQi3P,IACnBA,EAAWh2P,SAAQ,SAAUk2P,GACzB3wG,GAAYowG,EAAaO,QAI9BT,EA9CyB,GAuDhCU,GAAoD,WACpD,IAAIzwP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDqwP,GAAsD,SAAUtzP,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DiwP,GAA8B,SAAU/vP,GAExC,SAAS+vP,EAAaz5J,EAAShR,GAC3B,IAAIpqF,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAGjC,OAFAD,EAAMo7F,QAAUA,EAChBp7F,EAAMoqF,QAAUA,EACTpqF,EAqBX,OA1BA20P,GAAYE,EAAc/vP,GAO1B+vP,EAAar4P,UAAUwiJ,cAAgB,WACnC/+I,KAAK60P,0BAETD,EAAar4P,UAAUs4P,uBAAyB,WAC5C70P,KAAKmnH,mBAAmBnnH,KAAKmqF,QAAS,WAAYnqF,KAAK+7O,WAAWtxO,KAAKzK,OACvEA,KAAKmnH,mBAAmBnnH,KAAKmqF,QAAS,YAAanqF,KAAKg8O,YAAYvxO,KAAKzK,QAE7E40P,EAAar4P,UAAUw/O,WAAa,WAChC/7O,KAAKw1O,mBAAmB6G,kBAE5BuY,EAAar4P,UAAUy/O,YAAc,WACjCh8O,KAAKw1O,mBAAmB+G,aAAav8O,KAAKm7F,UAE9Cw5J,GAAa,CACT/lJ,GAAU,uBACXgmJ,EAAar4P,UAAW,0BAAsB,GACjDo4P,GAAa,CACTrmJ,IACDsmJ,EAAar4P,UAAW,gBAAiB,MACrCq4P,EA3BsB,CA4B/BhuI,IAQEkuI,GAAoD,WACpD,IAAI7wP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDywP,GAAsD,SAAU1zP,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DqwP,GAAgC,SAAUnwP,GAE1C,SAASmwP,EAAe52G,EAAekyF,EAAOviI,EAAO4nI,GACjD,IAAI51O,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAOjC,OANAD,EAAMq+I,cAAgBA,EACtBr+I,EAAMuwO,MAAQA,EACdvwO,EAAMk1P,OAASl1P,EAAMuwO,MAAMxoF,cAAc,wBAA0B/nJ,EAAMuwO,MACzEvwO,EAAM41O,aAAeA,EACrB51O,EAAMguG,MAAQA,EACdhuG,EAAM4iO,YAAc50H,EAAM+B,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACnEtyG,EAsGX,OA/GA+0P,GAAYE,EAAgBnwP,GAW5BmwP,EAAez4P,UAAU24P,gBAAkB,SAAUvf,GACjD31O,KAAK21O,aAAeA,EACpB31O,KAAKs2O,iBAET0e,EAAez4P,UAAU44P,iBAAmB,WACxC,OAAIn1P,KAAK+tG,MAAM+B,mBAAmB6Q,eAAiB3gH,KAAK21O,aAC7Cx5J,EAAKn8E,KAAK21O,cAEd31O,KAAKo+I,eAEhB42G,EAAez4P,UAAUwiJ,cAAgB,WACrC/+I,KAAKmnH,mBAAmBnnH,KAAKo+I,cAAerqC,GAAOsH,mBAAoBr7G,KAAKs2O,cAAc7rO,KAAKzK,OAC/FA,KAAKo1P,mBAGDp1P,KAAK2iO,aACL3iO,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuC/wH,KAAKs2O,cAAc7rO,KAAKzK,QAGzHg1P,EAAez4P,UAAU64P,iBAAmB,WACxC,IAAIC,EAAwBr1P,KAAK+tG,MAAM+B,mBAAmBw9G,gCACtDgoC,EAAgB70J,EAAOzgG,KAAKo+I,cAAcpjC,cAC1Cu6I,EAAoBv1P,KAAK+tG,MAAM61B,uBAAuB64F,YAAc64B,IAAkBD,EACtFE,EACAv1P,KAAKw1P,gBAGLx1P,KAAKs2O,iBAGb0e,EAAez4P,UAAUi5P,cAAgB,WACrC,IAAIz1P,EAAQC,KACRy1P,EAAaz1P,KAAKm1P,mBAClBn9K,EAAOy9K,EAAW16I,UAClBE,EAAUw6I,EAAWz6I,aACrB06I,EAAgB11P,KAAK8zO,yBAAyB2hB,EAAYx6I,GAC1D06I,EAAa31P,KAAK8zO,yBAAyB2hB,EAAYz9K,GAC3Dh4E,KAAKo7G,QAAQs6I,GAMb11P,KAAK21P,WAAaA,EAClB31P,KAAK+tG,MAAM61B,uBAAuB56B,mBAAkB,WAE5CjpG,EAAM41P,aAAeA,GACrB51P,EAAMq7G,QAAQu6I,OAI1BX,EAAez4P,UAAU+5O,cAAgB,WACrC,IAAImf,EAAaz1P,KAAKm1P,mBAClBn9K,EAAOy9K,EAAW16I,UACtB/6G,KAAK21P,WAAa31P,KAAK8zO,yBAAyB2hB,EAAYz9K,GAC5Dh4E,KAAKo7G,QAAQp7G,KAAK21P,aAEtBX,EAAez4P,UAAUu3O,yBAA2B,SAAU2hB,EAAYlU,GACtE,IAAKvhP,KAAK2iO,YACN,OAAO4e,EAEX,GAAIkU,EAAWj5I,cAAgBpL,GAAUsB,YACrC,OAAO6uI,EAEX,IAAIvrH,EAAYh2H,KAAK+tG,MAAMoxC,iBAAiB5gB,+BAC5C,GAAIk3H,EAAWj5I,cAAgBpL,GAAUqB,aAAc,CACnD,IAAIsjB,EAAY/1H,KAAK+tG,MAAMoxC,iBAAiBzZ,wBAC5C,OAAO1P,EAAYD,EAAYwrH,EAGnC,OAAOvrH,EAAYurH,GAEvByT,EAAez4P,UAAU6+G,QAAU,SAAU1+G,GAOzC,IAAIk5P,EACJ,GAJIn1J,EAAO/jG,KACPsD,KAAKswO,MAAMn4L,MAAM6/B,KAAOt7E,EAAQ,MAGhCsD,KAAKo+I,yBAAyBrqC,GAC9B6hJ,EAAc51P,KAAKo+I,kBAElB,CACD,IAAIxZ,EAAc5kI,KAAKo+I,cACnBt2I,EAAW88H,EAAYpkB,iBAC3B,IAAK14G,EAASrK,OACV,OAEAqK,EAASrK,OAAS,GAClBmgK,GAAe59J,KAAKi1P,OAAQntP,EAASrK,QAEzCm4P,EAAc9tP,EAAS,GAE3B,IAAI5I,EAAQc,KAAK+tG,MAAMoxC,iBAAiBphB,mBAAmB63H,GAC3Dl4F,GAAgB19J,KAAKi1P,OAAQ/1P,IAEjC61P,GAAa,CACTzmJ,IACD0mJ,EAAez4P,UAAW,gBAAiB,MACvCy4P,EAhHwB,CAiHjCpuI,IAQEivI,GAAoD,WACpD,IAAI5xP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDwxP,GAAsD,SAAUz0P,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DoxP,GAAiC,SAAUlxP,GAE3C,SAASkxP,EAAgBhjD,EAAQ3rD,GAC7B,IAAIrnJ,EAAQ8E,EAAOjH,KAAKoC,KAAMonJ,IAAapnJ,KAK3C,OAJAD,EAAMi2P,eAAiB,GACvBj2P,EAAMk2P,eAAiB,OACvBl2P,EAAMw8J,MAAQ,GACdx8J,EAAMgzM,OAASA,GAAU,GAClBhzM,EA6EX,OApFA81P,GAAYE,EAAiBlxP,GAS7BkxP,EAAgBx5P,UAAUwiJ,cAAgB,WACtC+E,GAAY9jJ,KAAKqG,SAAU,cAC3By9I,GAAY9jJ,KAAKgsL,OAAQ,YACzB,IAAI1+F,EAAKttF,KAAK+yM,OAAQijD,EAAiB1oK,EAAG0oK,eAAgBz5F,EAAQjvE,EAAGivE,MAAO25F,EAAa5oK,EAAG4oK,WAAYD,EAAiB3oK,EAAG2oK,eACtG,MAAlBD,GACAh2P,KAAKm2P,kBAAkBH,GAEd,MAATz5F,GACAv8J,KAAKqjL,SAAS9mB,GAEA,MAAd25F,GACAl2P,KAAKo2P,cAAcF,GAEvBl2P,KAAKq2P,kBAAkBJ,GAAkBj2P,KAAKi2P,gBAC9Cj2P,KAAKs2P,gBAETP,EAAgBx5P,UAAU+5P,aAAe,WACrC5uG,GAAa1nJ,KAAKgsL,QACQ,kBAAfhsL,KAAKu8J,MACZv8J,KAAKgsL,OAAO79K,UAAYnO,KAAKu8J,MAAQv8J,KAAKg2P,eAErCh2P,KAAKu8J,OACVv8J,KAAKgsL,OAAOtxJ,YAAY16B,KAAKu8J,OAEd,KAAfv8J,KAAKu8J,OACLzY,GAAY9jJ,KAAKgsL,OAAQ,aACzBhsL,KAAKgsL,OAAO5mE,aAAa,OAAQ,kBAGjC8+B,GAAelkJ,KAAKgsL,OAAQ,aAC5BhsL,KAAKgsL,OAAOnmC,gBAAgB,UAGpCkwG,EAAgBx5P,UAAU45P,kBAAoB,SAAUH,GACpD,OAAIh2P,KAAKg2P,iBAAmBA,IAG5Bh2P,KAAKg2P,eAAiBA,EACJ,MAAdh2P,KAAKu8J,OACLv8J,KAAKs2P,gBAJEt2P,MAQf+1P,EAAgBx5P,UAAUg6P,WAAa,WAEnC,OADAv2P,KAAKgsL,OAAOhjI,GAAKhpD,KAAKgsL,OAAOhjI,IAAM,MAAQhpD,KAAK+uK,YAAc,SACvD/uK,KAAKgsL,OAAOhjI,IAEvB+sM,EAAgBx5P,UAAUi6P,SAAW,WACjC,OAAOx2P,KAAKu8J,OAEhBw5F,EAAgBx5P,UAAU8mL,SAAW,SAAU9mB,GAC3C,OAAIv8J,KAAKu8J,QAAUA,IAGnBv8J,KAAKu8J,MAAQA,EACbv8J,KAAKs2P,gBAHMt2P,MAMf+1P,EAAgBx5P,UAAU85P,kBAAoB,SAAUI,GACpD,IAAI7oF,EAAO5tK,KAAKqG,SAIhB,OAHAg+I,GAAoBupB,EAAM,sBAAqC,SAAd6oF,GACjDpyG,GAAoBupB,EAAM,uBAAsC,UAAd6oF,GAClDpyG,GAAoBupB,EAAM,qBAAoC,QAAd6oF,GACzCz2P,MAEX+1P,EAAgBx5P,UAAU65P,cAAgB,SAAU98M,GAChD,OAAkB,MAAdt5C,KAAKu8J,OAGT9S,GAAgBzpJ,KAAKgsL,OAAQ1yI,GAFlBt5C,MAKf81P,GAAa,CACTxnJ,IACDynJ,EAAgBx5P,UAAW,gBAAiB,MACxCw5P,EArFyB,CAsFlCn2P,IAQE82P,GAAoD,WACpD,IAAIzyP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDqyP,GAAiC,SAAU9xP,GAE3C,SAAS8xP,EAAgB5jD,EAAQ3rD,EAAUrD,GACvC,IAAIhkJ,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAQ3rD,IAAapnJ,KAGnD,OAFAD,EAAMgkJ,UAAYA,EAClBhkJ,EAAM4lJ,UAAW,EACV5lJ,EAiDX,OAtDA22P,GAAYC,EAAiB9xP,GAO7B8xP,EAAgBp6P,UAAUwiJ,cAAgB,WACtCl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MAChCA,KAAK+jJ,WACLD,GAAY9jJ,KAAKqG,SAAUrG,KAAK+jJ,YAGxC4yG,EAAgBp6P,UAAU+mL,cAAgB,SAAUszE,GAChD,IAAI72P,EAAQC,KAEZ,OADAA,KAAKmnH,mBAAmBnnH,KAAM22P,EAAgBE,eAAe,WAAc,OAAOD,EAAW72P,EAAMouI,eAC5FnuI,MAEX22P,EAAgBp6P,UAAUu6P,SAAW,WACjC,OAAO92P,KAAKqG,SAASy8I,aAEzB6zG,EAAgBp6P,UAAUw6P,SAAW,SAAUz9M,GAE3C,OADAqwG,GAAc3pJ,KAAKqG,SAAUizC,GACtBt5C,MAEX22P,EAAgBp6P,UAAU67L,iBAAmB,WACzC,OAAOp4L,KAAK8G,eAEhB6vP,EAAgBp6P,UAAU4xI,SAAW,WACjC,OAAOnuI,KAAKtD,OAEhBi6P,EAAgBp6P,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GAClD,OAAIx9G,KAAKtD,QAAUA,IAGnBsD,KAAK8G,cAAgB9G,KAAKtD,MAC1BsD,KAAKtD,MAAQA,EACR8gH,GACDx9G,KAAKyM,cAAc,CAAEhN,KAAMk3P,EAAgBE,iBALpC72P,MASf22P,EAAgBp6P,UAAUmpJ,YAAc,SAAUC,GAC9CA,IAAaA,EACb,IAAIx7D,EAAUnqF,KAAKqG,SAInB,OAHAq/I,GAAYv7D,EAASw7D,GACrBtB,GAAoBl6D,EAAS,cAAew7D,GAC5C3lJ,KAAK2lJ,SAAWA,EACT3lJ,MAEX22P,EAAgBp6P,UAAUy6P,WAAa,WACnC,QAASh3P,KAAK2lJ,UAElBgxG,EAAgBE,cAAgB,cACzBF,EAvDyB,CAwDlCZ,IAQEkB,GAAoD,WACpD,IAAIhzP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD4yP,GAAsD,SAAU71P,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwyP,GAAsC,SAAUtyP,GAEhD,SAASsyP,EAAqBpkD,EAAQhvD,EAAWqzG,EAAWC,QACtC,IAAdD,IAAwBA,EAAY,aAChB,IAApBC,IAA8BA,EAAkB,SACpD,IAAIt3P,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAmB,sOAAoPskD,EAAkB,gDAAsDA,EAAkB,gDAAiDtzG,IAAc/jJ,KAG9b,OAFAD,EAAMq3P,UAAYA,EAClBr3P,EAAMs3P,gBAAkBA,EACjBt3P,EA6EX,OApFAk3P,GAAYE,EAAsBtyP,GASlCsyP,EAAqB56P,UAAUwiJ,cAAgB,WAC3Cl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAKs3P,eACLxzG,GAAY9jJ,KAAKgsL,OAAQhsL,KAAK+jJ,UAAY,UAC1CD,GAAY9jJ,KAAKu3P,SAAUv3P,KAAK+jJ,UAAY,kBAC5CD,GAAY9jJ,KAAKm1K,OAAQn1K,KAAK+jJ,UAAY,UAC1CD,GAAY9jJ,KAAKqG,SAAU,kBAC3BrG,KAAKm1K,OAAOnsH,GAAKhpD,KAAKm1K,OAAOnsH,IAAM,MAAQhpD,KAAK+uK,YAAc,SAC9D,IAAIzhF,EAAKttF,KAAK+yM,OAAQz5J,EAAQg0C,EAAGh0C,MAAO58C,EAAQ4wF,EAAG5wF,MACtC,MAAT48C,GACAt5C,KAAK+2P,SAASz9M,GAEL,MAAT58C,GACAsD,KAAK01K,SAASh5K,GAElBsD,KAAKw3P,qBAETL,EAAqB56P,UAAU+5P,aAAe,WACtC71J,EAAOzgG,KAAKw2P,YACZh6F,GAAkBx8J,KAAKm1K,OAAQn1K,KAAKu2P,cAGpCv2P,KAAKm1K,OAAOtvB,gBAAgB,mBAEhChhJ,EAAOtI,UAAU+5P,aAAa14P,KAAKoC,OAEvCm3P,EAAqB56P,UAAUi7P,kBAAoB,WAC/C,IAAIz3P,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQ,SAAS,SAAU3oK,GAAK,OAAOzM,EAAM21K,SAASlpK,EAAEzQ,OAAOW,WAEhGy6P,EAAqB56P,UAAU+6P,aAAe,WACb,UAAzBt3P,KAAKq3P,iBACLr3P,KAAKm1K,OAAO/vD,aAAa,OAAQplH,KAAKo3P,YAG9CD,EAAqB56P,UAAU05K,gBAAkB,WAC7C,OAAOj2K,KAAKm1K,QAEhBgiF,EAAqB56P,UAAUk7P,cAAgB,SAAUn+M,GAErD,OADAmwG,GAAgBzpJ,KAAKu3P,SAAUj+M,GACxBt5C,MAEXm3P,EAAqB56P,UAAUm7P,aAAe,SAAU92P,GAEpD,OADAZ,KAAKi2K,kBAAkB7wD,aAAa,OAAQxkH,GACrCZ,MAEXm3P,EAAqB56P,UAAU01K,oBAAsB,WACjD,OAAOjyK,KAAKm1K,QAEhBgiF,EAAqB56P,UAAUs1M,aAAe,SAAUp0M,GACpD,IAAI03K,EAASn1K,KAAKm1K,OAElB,OADAA,EAAO28B,UAAYr0M,EACZuC,MAEXm3P,EAAqB56P,UAAU06K,oBAAsB,SAAUC,GAE3D,OADArsB,GAAqB7qJ,KAAKm1K,OAAQ,cAAe+B,GAC1Cl3K,MAEXm3P,EAAqB56P,UAAUu5K,kBAAoB,SAAUvZ,GAEzD,OADAD,GAAat8J,KAAKm1K,OAAQ5Y,GACnBv8J,MAEXm3P,EAAqB56P,UAAUmpJ,YAAc,SAAUC,GAEnD,OADAD,GAAY1lJ,KAAKm1K,OAAQxvB,GAClB9gJ,EAAOtI,UAAUmpJ,YAAY9nJ,KAAKoC,KAAM2lJ,IAEnDuxG,GAAa,CACT9jF,GAAY,WACb+jF,EAAqB56P,UAAW,cAAU,GAC7C26P,GAAa,CACT9jF,GAAY,aACb+jF,EAAqB56P,UAAW,gBAAY,GAC/C26P,GAAa,CACT9jF,GAAY,WACb+jF,EAAqB56P,UAAW,cAAU,GACtC46P,EArF8B,CAsFvCR,IAQEgB,GAAoD,WACpD,IAAI1zP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDszP,GAA4B,SAAU/yP,GAEtC,SAAS+yP,EAAW7kD,EAAQhvD,EAAWqzG,QACjB,IAAdrzG,IAAwBA,EAAY,oBACtB,IAAdqzG,IAAwBA,EAAY,YACxC,IAAIr3P,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAQhvD,EAAWqzG,IAAcp3P,KAK/D,OAJAD,EAAMk2P,eAAiB,QACvBl2P,EAAMi+J,UAAW,EACjBj+J,EAAM8iL,UAAW,EACjB9iL,EAAM0mH,SAAU,EACT1mH,EAuFX,OAhGA43P,GAAYC,EAAY/yP,GAWxB+yP,EAAWr7P,UAAUi7P,kBAAoB,WACrCx3P,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQ,QAASn1K,KAAK63P,gBAAgBptP,KAAKzK,OACxEA,KAAKmnH,mBAAmBnnH,KAAKgsL,OAAQ,QAAShsL,KAAK83P,OAAOrtP,KAAKzK,QAEnE43P,EAAWr7P,UAAUw7P,aAAe,WAChC,YAAyB14P,IAAlBW,KAAKg+J,WAAiCh+J,KAAKg+J,UAEtD45F,EAAWr7P,UAAUo7L,WAAa,SAAUlxE,GACxCzmH,KAAKymH,QAAUA,GAEnBmxI,EAAWr7P,UAAUy7P,WAAa,WAC9B,OAAOh4P,KAAK6iL,UAEhB+0E,EAAWr7P,UAAU07P,YAAc,SAAUp1E,GACzCx+B,GAAoBrkJ,KAAKu3P,SAAU,cAAe10E,GAClD7iL,KAAKm1K,OAAOxvB,SAAWk9B,EACvB7iL,KAAK6iL,SAAWA,GAEpB+0E,EAAWr7P,UAAUmpJ,YAAc,SAAUC,GAEzC,OADAtB,GAAoBrkJ,KAAKu3P,SAAU,cAAe5xG,GAC3C9gJ,EAAOtI,UAAUmpJ,YAAY9nJ,KAAKoC,KAAM2lJ,IAEnDiyG,EAAWr7P,UAAUu7P,OAAS,WAC1B,IAAIhxP,EAAgB9G,KAAK+zL,aACrBtqB,EAAYzpK,KAAK+3P,eACjB/3P,KAAKymH,QACLzmH,KAAKk4P,eAAezuF,EAAW3iK,GAG/B9G,KAAK01K,SAASjM,IAGtBmuF,EAAWr7P,UAAU4xI,SAAW,WAC5B,OAAOnuI,KAAK+zL,cAEhB6jE,EAAWr7P,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GAG7C,OAFAx9G,KAAKm4P,qBAAqBz7P,GAC1BsD,KAAKy0L,YAAY/3L,EAAO8gH,GACjBx9G,MAEX43P,EAAWr7P,UAAU6mL,QAAU,SAAUxiL,GACrC,IAAI6Q,EAAQzR,KAAKi2K,kBAEjB,OADAxkK,EAAM7Q,KAAOA,EACNZ,MAEX43P,EAAWr7P,UAAUw3L,WAAa,WAC9B,OAAO/zL,KAAKg+J,UAEhB45F,EAAWr7P,UAAUk4L,YAAc,SAAUz2B,EAAUxgD,GAC/Cx9G,KAAK+zL,eAAiB/1B,IAG1Bh+J,KAAK8G,cAAgB9G,KAAK+zL,aAC1B/1B,EAAWh+J,KAAKg+J,SAA+B,mBAAbA,EAAyBA,OAAW3+J,EACtEW,KAAKm1K,OAAOxqB,QAAUqT,EACtBh+J,KAAKm1K,OAAOvqB,mBAA6BvrJ,IAAb2+J,EACvBxgD,GACDx9G,KAAKk4P,eAAel4P,KAAKg+J,SAAUh+J,KAAK8G,iBAGhD8wP,EAAWr7P,UAAU27P,eAAiB,SAAUl6F,EAAUl3J,EAAeM,GACrEpH,KAAKyM,cAAc,CAAEhN,KAAMm4P,EAAWf,cAAe74F,SAAUA,EAAUl3J,cAAeA,EAAeM,MAAOA,IAC9G,IAAIqK,EAAQzR,KAAKi2K,kBACbmiF,EAAuB,CACvB34P,KAAMktH,GAAOyD,uBACbpnE,GAAIv3C,EAAMu3C,GACVpoD,KAAM6Q,EAAM7Q,KACZo9J,SAAUA,EACVl3J,cAAeA,GAEnB9G,KAAKq0G,aAAa5nG,cAAc2rP,IAEpCR,EAAWr7P,UAAUs7P,gBAAkB,SAAUrrP,GAC7C,IAAIxM,KAAKymH,QAAT,CAGA,IAAI3/G,EAAgB9G,KAAK+zL,aACrB/1B,EAAWh+J,KAAKg+J,SAAWxxJ,EAAEzQ,OAAO4uJ,QACxC3qJ,KAAKm4P,qBAAqBn6F,GAC1Bh+J,KAAKk4P,eAAel6F,EAAUl3J,EAAe0F,KAEjDorP,EAAWr7P,UAAU47P,qBAAuB,SAAUz7P,GAClD2nJ,GAAoBrkJ,KAAKu3P,SAAU,cAAwB,IAAV76P,GACjD2nJ,GAAoBrkJ,KAAKu3P,SAAU,mBAA6B,MAAT76P,IAEpDk7P,EAjGoB,CAkG7BT,IAQEkB,GAAoD,WACpD,IAAIp0P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDg0P,GAAsD,SAAUj3P,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D4zP,GAAkC,SAAU1zP,GAE5C,SAAS0zP,EAAiBC,EAAa9wP,GACnC,IAAI3H,EAAQ8E,EAAOjH,KAAKoC,OAASA,KACjCD,EAAM04P,oBAAqB,EAC3B14P,EAAM24P,6BAA8B,EACpC34P,EAAMy4P,YAAcA,EACpBz4P,EAAM2H,OAASA,EACf,IAAIE,EAASF,EAAOm1G,YAEpB,OADA98G,EAAM44P,eAAe/wP,KAAWA,EAAOgxP,oCAChC74P,EAuLX,OAhMAs4P,GAAYE,EAAkB1zP,GAW9B0zP,EAAiBh8P,UAAUwiJ,cAAgB,WACvC/+I,KAAK64P,sBACL74P,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAK64P,oBAAoBpuP,KAAKzK,OAC1GA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK64P,oBAAoBpuP,KAAKzK,OACjHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOwC,wBAAyBnvH,KAAK63L,mBAAmBptL,KAAKzK,OACxGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2B,oBAAqBtuH,KAAK84P,eAAeruP,KAAKzK,OAChGA,KAAKmnH,mBAAmBnnH,KAAKw4P,YAAaZ,GAAWf,cAAe72P,KAAK+4P,cAActuP,KAAKzK,OAC5FA,KAAKw4P,YAAYviF,kBAAkB7wD,aAAa,WAAY,MAC5DplH,KAAKg5P,yBAETT,EAAiBh8P,UAAUs8P,oBAAsB,WAC7C74P,KAAKy4P,mBAAqBz4P,KAAKi5P,sBAC/Bj5P,KAAKw4P,YAAYhzG,aAAaxlJ,KAAKy4P,oBAC/Bz4P,KAAKy4P,qBAELz4P,KAAKk5P,yBAELl5P,KAAKm5P,yBAETn5P,KAAKo5P,6BAA6Bp5P,KAAKy4P,qBAE3CF,EAAiBh8P,UAAU68P,6BAA+B,SAAUC,GAChE,IAAIC,EAAet5P,KAAKw4P,YAAYrmF,qBAChConF,EAAkBD,GAAgBA,EAAajzP,SACnD,GAAKkzP,GAAoB38I,GAAU28I,GAAnC,CAGA,IAAI5U,EAAiB,GACjB4U,IACA5U,EAAiBtoF,GAAmBk9F,IAExC,IAAIC,EAAgBx5P,KAAKw4P,YAAYviF,kBAAkBjtH,GACnDywM,GAA+E,IAA3C9U,EAAe5jP,QAAQy4P,GAC3DH,EACKI,GACD/8F,GAAmB68F,EAAiBC,EAAgB,IAAM7U,EAAepsN,QAGxEkhO,GACL/8F,GAAmB68F,EAAiB5U,EAAepsN,OAAOllB,MAAM,KAAKk9E,QAAO,SAAUvnC,GAAM,OAAOA,IAAOwwM,KAAkBxoP,KAAK,QAGzIunP,EAAiBh8P,UAAUu8P,eAAiB,WACnC94P,KAAKy4P,oBAGVz4P,KAAKm5P,yBAETZ,EAAiBh8P,UAAUs7L,mBAAqB,WACvC73L,KAAKy4P,oBAGVz4P,KAAKm5P,yBAETZ,EAAiBh8P,UAAUm9P,qBAAuB,SAAUC,GAExD,OAAgC,IAA5BA,EAAe37F,UAAiD,IAA/B27F,EAAeC,eAIhDD,EAAe37F,SAAW,GAAK27F,EAAeC,YAAc,EACrD,KAGPD,EAAe37F,SAAW,IAMlCu6F,EAAiBh8P,UAAU48P,sBAAwB,WAC/C,IAAIn5P,KAAK04P,4BAAT,CAGA14P,KAAK04P,6BAA8B,EACnC,IAAIiB,EAAiB35P,KAAK65P,oBACtBC,EAAc95P,KAAK05P,qBAAqBC,GAC5C35P,KAAKw4P,YAAY9iF,SAASokF,GAC1B95P,KAAKg5P,wBACLh5P,KAAK04P,6BAA8B,IAEvCH,EAAiBh8P,UAAUy8P,sBAAwB,WAC/C,IAAInjF,EAAY71K,KAAK8vG,mBAAmBygC,oBACpCoa,EAAU3qJ,KAAKw4P,YAAYrqH,WAC3B4rH,EAAapvG,EAAUkrB,EAAU,cAAe,WAAaA,EAAU,gBAAiB,aACxFqR,EAAYrR,EAAU,mBAAoB,4CAC9C71K,KAAKw4P,YAAY1iF,kBAAkBoR,EAAY,KAAO6yE,EAAa,MAEvExB,EAAiBh8P,UAAUs9P,kBAAoB,WAC3C,IAAI95P,EAAQC,KACRg6P,EAAgB,EAChBC,EAAmB,EACnBv0P,EAAW,SAAU8M,GACjBzS,EAAM+vG,mBAAmBklF,0BAA4BxiL,EAAK0oF,QAG1D1oF,EAAKuhL,aACLimE,IAEMxnP,EAAK47K,YAEX6rE,MASR,OANIj6P,KAAK24P,aACL34P,KAAKi/F,QAAQwgI,uBAAuB/5N,GAGpC1F,KAAKi/F,QAAQn0F,YAAYpF,GAEtB,CACHk0P,YAAaK,EACbj8F,SAAUg8F,IAGlBzB,EAAiBh8P,UAAU28P,uBAAyB,WAChD,IAAIj5C,EAAejgN,KAAKk4I,SAASykC,UAC7Bu9E,EAAkBj6C,IAAiB7uG,GAAUU,2BAC5CooJ,GACDj3P,QAAQkD,KAAK,yFAA2F85M,IAGhHs4C,EAAiBh8P,UAAUw8P,cAAgB,WACvC,IAAI/4P,KAAK04P,6BAGJ14P,KAAKy4P,mBAAV,CAGA,IAAI/7P,EAAQsD,KAAKw4P,YAAYrqH,WACzBzxI,EACAsD,KAAK6vL,oBAAoB6vC,kBAAkB1/N,KAAK24P,cAGhD34P,KAAK6vL,oBAAoByvC,oBAAoBt/N,KAAK24P,gBAG1DJ,EAAiBh8P,UAAU08P,oBAAsB,WAC7C,IAAIzqP,EAASxO,KAAK0H,OAAOm1G,YAAYs9I,wBACrC,GAAsB,oBAAX3rP,EAAuB,CAC9B,IAAIrD,EAAOqD,EACXA,EAASrD,EAAK,CACVzD,OAAQ1H,KAAK0H,OACbE,OAAQ5H,KAAK0H,OAAOm1G,YACpBhzG,UAAW7J,KAAK6J,UAChBD,IAAK5J,KAAKi/F,UAGlB,QAAIzwF,IACIxO,KAAK8vG,mBAAmBsuG,wBACxBn7M,QAAQkD,KAAK,uEACN,GAEPnG,KAAK8vG,mBAAmBkwG,sBACxB/8M,QAAQkD,KAAK,oEACN,IAEPnG,KAAK8vG,mBAAmBowG,uBACxBj9M,QAAQkD,KAAK,oEACN,KAOnBmyP,GAAa,CACT1pJ,GAAU,YACX2pJ,EAAiBh8P,UAAW,eAAW,GAC1C+7P,GAAa,CACT1pJ,GAAU,cACX2pJ,EAAiBh8P,UAAW,iBAAa,GAC5C+7P,GAAa,CACT1pJ,GAAU,aACX2pJ,EAAiBh8P,UAAW,gBAAY,GAC3C+7P,GAAa,CACT1pJ,GAAU,wBACX2pJ,EAAiBh8P,UAAW,2BAAuB,GACtD+7P,GAAa,CACThqJ,IACDiqJ,EAAiBh8P,UAAW,gBAAiB,MACzCg8P,EAjM0B,CAkMnC3xI,IAQEwzI,GAAoD,WACpD,IAAIn2P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD+1P,GAAuC,SAAUx1P,GAEjD,SAASw1P,IACL,OAAkB,OAAXx1P,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAY/D,OAdAo6P,GAAYC,EAAuBx1P,GAInCw1P,EAAsB99P,UAAUy+K,2BAA6B,SAAUxuK,GACnE,IAAI8gF,EAAKttF,KAAKi6K,gBAAgBo4E,mBAAoB5xG,EAAiBnzD,EAAGmzD,eAAgB/4I,EAAS4lF,EAAG5lF,OAClG,OAAOm+J,GAAqC7lK,KAAK8vG,mBAAoBtjG,EAAGi0I,EAAgB/4I,IAE5F2yP,EAAsB99P,UAAUwyI,UAAY,WACxC,OAAO/uI,KAAK0H,QAEhB2yP,EAAsB99P,UAAUigH,UAAY,WACxC,OAAOx8G,KAAKg1G,QAETqlJ,EAf+B,CAgBxCthF,IAQEuhF,GAAoD,WACpD,IAAIr2P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDi2P,GAAsD,SAAUl5P,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D61P,GAAmC,SAAU31P,GAE7C,SAAS21P,EAAkB9yP,EAAQstG,GAC/B,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,KAAMw6P,EAAkBvlF,WAAaj1K,KAK7D,OAJAD,EAAM06P,kBAAoB,EAC1B16P,EAAM26P,iBAAmB,GACzB36P,EAAM2H,OAASA,EACf3H,EAAMi1G,OAASA,EACRj1G,EAybX,OAhcAu6P,GAAYE,EAAmB31P,GAS/B21P,EAAkBj+P,UAAUwiJ,cAAgB,WACxCl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAKm2H,cAAgBn2H,KAAKm/I,iBAAiBtoB,mBAC3C72H,KAAK26P,cACL36P,KAAK46P,aACL56P,KAAK66P,iBACL76P,KAAK86P,eACL96P,KAAK+6P,cACL/6P,KAAKg7P,iBACLh7P,KAAKi7P,qBACLj7P,KAAKk7P,yBACLl7P,KAAKm7P,gCACLn7P,KAAKsnH,kBAAkB,IAAIstI,GAAa,CAAC50P,KAAK0H,QAAS1H,KAAKqG,WAC5DrG,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAO2H,4BAA6B17G,KAAK47K,gBAAgBnxK,KAAKzK,OACnGA,KAAK47K,kBACL57K,KAAKsnH,kBAAkB,IAAIixI,GAAiBv4P,KAAKw4P,YAAax4P,KAAK0H,SACnE1H,KAAKw4P,YAAYloF,mBAAmBtwK,MACpCA,KAAKsnH,kBAAkB,IAAI0tI,GAAeh1P,KAAK0H,OAAQ1H,KAAKqG,SAAUrG,KAAK+tG,QAC3E/tG,KAAKo7P,gBACLpH,GAAgBC,2BAA2Bj0P,KAAK0H,OAAOm1G,YAAa78G,KAAKqG,SAAUrG,KAAK8vG,mBAAoB9vG,KAAK0H,OAAQ,MACzH1H,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKu3O,mBAAmB9sO,KAAKzK,OACzGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOQ,2BAA4BntH,KAAKq7P,qBAAqB5wP,KAAKzK,OAC7GA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOI,+BAAgC/sH,KAAKs7P,wBAAwB7wP,KAAKzK,OACpHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOM,2BAA4BjtH,KAAKu7P,qBAAqB9wP,KAAKzK,OAC7GA,KAAKw7P,oBAEThB,EAAkBj+P,UAAU++P,wBAA0B,WAClDt7P,KAAKy7P,oBAETjB,EAAkBj+P,UAAUg/P,qBAAuB,WAC/Cv7P,KAAKy7P,oBAETjB,EAAkBj+P,UAAU8+P,qBAAuB,WAC/Cr7P,KAAKy7P,oBAETjB,EAAkBj+P,UAAUk/P,iBAAmB,WAEvCz7P,KAAK6xD,cAAgB7xD,KAAK07P,wBAC1B17P,KAAKu4F,WAGbiiK,EAAkBj+P,UAAUo+P,YAAc,WACtC,IAAI/yP,EAAS5H,KAAK0H,OAAOm1G,YACzB78G,KAAK6+F,SAAWj3F,EAAOi3F,SACvB7+F,KAAK6xD,YAAc7xD,KAAK07P,uBACxB17P,KAAK27P,UAAY37P,KAAK47P,oBAE1BpB,EAAkBj+P,UAAUm/P,qBAAuB,WAC/C,OAAO17P,KAAKm/I,iBAAiB5P,wBAAwBvvI,KAAK0H,OAAQ,UAAU,IAEhF8yP,EAAkBj+P,UAAUg7O,mBAAqB,WAC7C,IAAIskB,EAAmB77P,KAAKm/I,iBAAiBtoB,mBACzCglI,GAAoB77P,KAAKm2H,gBACzBn2H,KAAKm2H,cAAgB0lI,EACrB77P,KAAKu4F,YAGbiiK,EAAkBj+P,UAAUg8F,QAAU,WAClCv4F,KAAK26P,cACL36P,KAAK87P,oBACL97P,KAAK06P,iBAAiBn8P,SAAQ,SAAUuO,GAAK,OAAOA,QAExD0tP,EAAkBj+P,UAAUu/P,kBAAoB,WAG5C,GAAK97P,KAAK+7P,WAAV,CAGA,IAAIn0P,EAAS5H,KAAK0H,OAAOm1G,YACrBm/I,EAA0Bh8P,KAAKi8P,uBAAyBr0P,EAAOizM,iBAC5D76M,KAAKk8P,gCAAkCt0P,EAAOu0P,yBACjDC,GAAsBJ,GAAkCh8P,KAAKq8P,2BACjE,GAAID,EAAqB,CACrB,IAAIE,EAAsBt8P,KAAK27P,YAAc37P,KAAKu8P,eAC9CC,GAA2Bx8P,KAAK27P,WAAa37P,KAAKu8P,gBAClDD,GAAuBE,IACvBx8P,KAAKy8P,kCAITz8P,KAAKw7P,qBAGbhB,EAAkBj+P,UAAUmgQ,kBAAoB,WACxC18P,KAAK+7P,aACL/7P,KAAKqG,SAASu0B,YAAY56B,KAAK28P,eAC/B38P,KAAK+7P,WAAa/7P,KAAK8tG,YAAY9tG,KAAK+7P,YACxC/7P,KAAK28P,mBAAgBt9P,GAEzBW,KAAK48P,wBAETpC,EAAkBj+P,UAAUqgQ,qBAAuB,WAC3C58P,KAAKu8P,iBACLv8P,KAAKynM,mBAAmB1H,iBAAiB//L,KAAKu8P,gBAC9Cv8P,KAAKu8P,oBAAiBl9P,IAG9Bm7P,EAAkBj+P,UAAU8/P,yBAA2B,WAEnD,IAAKr8P,KAAK+7P,WAAWxjK,QACjB,OAAO,EAGX,IAAIn1F,EAASpD,KAAK68P,eAEd/iB,EAAc95O,KAAKwtK,qBAAqB4tB,kBAAkBp7L,KAAKk2O,qBAAsB,kBAAmB9yO,GACxGk6B,EAAMt9B,KAAK+7P,WAAWxjK,QAAQuhJ,GAClC,OAAOx8M,GAEXk9N,EAAkBj+P,UAAU4+P,8BAAgC,WACxD,IAAIp7P,EAAQC,KACRywG,EAAW,SAAUjkG,GAAK,OAAOzM,EAAM+8P,gBAA2B,eAAXtwP,EAAE/M,OAC7DO,KAAKmnH,mBAAmBnnH,KAAKqG,SAAU,aAAcoqG,GACrDzwG,KAAKmnH,mBAAmBnnH,KAAKqG,SAAU,aAAcoqG,IAEzD+pJ,EAAkBj+P,UAAUugQ,gBAAkB,SAAUthJ,GACpD6oC,GAAoBrkJ,KAAKqG,SAAU,mBAAoBm1G,IAE3Dg/I,EAAkBj+P,UAAUs9K,UAAY,SAAUrtK,GAC9C,IAAKxM,KAAKqG,SAASu0F,SAASpuF,EAAEiuK,eAAgB,CAC1C,IAAIrvB,EAAYprJ,KAAKmyK,qBACrBnyK,KAAKi6K,gBAAgB8iF,iBAAiB3xG,EAAU4xG,cAAeh9P,KAAK+uI,aAExE/uI,KAAK88P,iBAAgB,IAEzBtC,EAAkBj+P,UAAUu9K,WAAa,SAAUttK,GAC3CxM,KAAKqG,SAASu0F,SAASpuF,EAAEiuK,gBAG7Bz6K,KAAK88P,iBAAgB,IAEzBtC,EAAkBj+P,UAAU0+K,cAAgB,SAAUzuK,GAClD,IAAIuvP,EAAa/7P,KAAK+7P,WACtB,GAAKA,EAAL,CAGA,GAAIvvP,EAAEs4J,UAAY+O,GAAQM,MAAO,CAC7B,IAAI24B,EAAW9sM,KAAKw4P,YAChB1rD,EAASxzD,gBAAkBwzD,EAASzmM,SAASu0F,SAASjuF,SAAS+nM,iBAC/DloM,EAAEmpK,iBACFm3B,EAASp3B,UAAUo3B,EAAS3+D,aAGpC,GAAI3hI,EAAEs4J,UAAY+O,GAAQG,MACtB,GAAIxnK,EAAEy4J,SAAWz4J,EAAE9N,QACXsB,KAAKi9P,aAAelB,EAAWvwE,WAC/Bh/K,EAAEmpK,iBACFomF,EAAWvwE,iBAGd,GAAIxrL,KAAK6+F,SAAU,CACpB,IAAIutF,EAAY5/K,EAAEo0H,SAClB5gI,KAAKotI,eAAei+C,aAAarrL,KAAK0H,OAAQ0kL,EAAW,qBAIrEouE,EAAkBj+P,UAAU69K,aAAe,aAC3CogF,EAAkBj+P,UAAU25O,mBAAqB,WAC7C,OAAOl2O,KAAK0H,OAAOm1G,aAEvB29I,EAAkBj+P,UAAU2+P,uBAAyB,WACjDl7P,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOsE,2BAA4BjxH,KAAKs1O,cAAc7qO,KAAKzK,OACtGA,KAAKs1O,iBAETklB,EAAkBj+P,UAAU+4O,cAAgB,WACxC,IAAIC,EAAYv1O,KAAKw1O,mBAAmBD,UAAUv1O,KAAK0H,QACvD28I,GAAoBrkJ,KAAKqG,SAAU,kBAAmBkvO,IAE1DilB,EAAkBj+P,UAAU0+P,mBAAqB,WAC7C,IAAIl7P,EAAQC,KACR4tK,EAAO5tK,KAAKqG,SACZ62P,EAAyB,WACzB74G,GAAoBupB,EAAM,4BAA6B7tK,EAAM8+F,WAE7Ds+J,EAAiB,WACbp9P,EAAM8+F,SACNg/D,GAAY+P,EAAM1R,GAAiBn8J,EAAM2H,SAGzCo2J,GAAe8P,IAGvBsvF,IACAC,IACAn9P,KAAK06P,iBAAiBp7P,KAAK49P,GAC3Bl9P,KAAK06P,iBAAiBp7P,KAAK69P,GAC3Bn9P,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAOkG,mBAAoBkjJ,EAAe1yP,KAAKzK,QAExFw6P,EAAkBj+P,UAAUq/K,gBAAkB,WAC1C,IAAImR,EAAgB/sL,KAAK0H,OAAO4zG,iBAChC+oC,GAAoBrkJ,KAAKqG,SAAU,0BAA2B0mL,IAElEytE,EAAkBj+P,UAAUi/P,iBAAmB,WAC3Cx7P,KAAKy6P,oBACL,IAAI7yP,EAAS5H,KAAK0H,OAAOm1G,YACzB78G,KAAKi8P,sBAAwBr0P,EAAOizM,gBACpC76M,KAAKk8P,+BAAiCt0P,EAAOu0P,yBAC7C,IAAI/4P,EAASpD,KAAK68P,eACdn3P,EAAW1F,KAAKo9P,uBAAuB3yP,KAAKzK,KAAMA,KAAKy6P,mBAC3Dz6P,KAAKwtK,qBAAqBmsB,mBAAmBv2L,GAAQu4J,KAAKj2J,IAE9D80P,EAAkBj+P,UAAUsgQ,aAAe,WACvC,IAAI98P,EAAQC,KACR4H,EAAS5H,KAAK0H,OAAOm1G,YACzB78G,KAAKi9P,YAAcj9P,KAAK0rL,YAAY2xE,cAAcr9P,KAAK0H,UAAYE,EAAO01P,aAC1E,IAAIl6P,EAAS,CACTsE,OAAQ1H,KAAK0H,OACbmqD,YAAa7xD,KAAK6xD,YAClBs5H,cAAevjL,EAAOi3F,SACtBmsF,WAAYhrL,KAAKi9P,YACjBM,eAAgB,SAAUz4J,GACtB/kG,EAAMk/F,QAAQu+J,+BAA+Bz9P,EAAM2H,OAAQo9F,IAE/DumF,aAAc,SAAUe,GACpBrsL,EAAMqtI,eAAei+C,aAAatrL,EAAM2H,SAAU0kL,EAAW,mBAEjEpyE,QAAS,SAAUzrF,EAAM69J,GACrBrsL,EAAMqtI,eAAeqwH,iBAAiB19P,EAAM2H,OAAQ6mB,IAAQ69J,EAAW,mBAE3ExiL,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBw/F,QAASrpG,KAAK8vG,mBAAmB0I,aACjCklJ,YAAa19P,KAAKqG,UAEtB,OAAOjD,GAEXo3P,EAAkBj+P,UAAU6gQ,uBAAyB,SAAU/3O,EAAS02O,GAChE12O,GAAWrlB,KAAKy6P,mBAAsBz6P,KAAK+mH,WAI/C/mH,KAAK08P,oBACL18P,KAAK+7P,WAAaA,EAClB/7P,KAAK28P,cAAgBZ,EAAW11P,SAChCrG,KAAKqG,SAASq0B,YAAY16B,KAAK28P,eAC/B38P,KAAKy8P,8BAPDz8P,KAAK8tG,YAAYiuJ,IASzBvB,EAAkBj+P,UAAUohQ,sBAAwB,WAI5C39P,KAAK0H,OAAOoyG,WACZgqC,GAAY9jJ,KAAKqG,SAAU,yBAG3B69I,GAAelkJ,KAAKqG,SAAU,0BAGtCm0P,EAAkBj+P,UAAUq/P,iBAAmB,WAC3C,IAAIh0P,EAAS5H,KAAK0H,OAAOm1G,YACrBqwG,EAA2BltN,KAAK8vG,mBAAmBo9G,2BACnD0wC,GAAc1wC,IAA6BtlN,EAAOi2P,kBAAoBj2P,EAAO43G,aAGjF,QAASo+I,KAAgBh2P,EAAOu3G,kBAAoBv3G,EAAOq3G,aAE/Du7I,EAAkBj+P,UAAUkgQ,2BAA6B,WACrD,IAAI18P,EAAQC,KACZA,KAAK48P,uBACA58P,KAAK27P,YAGV37P,KAAKu8P,eAAiB,CAClB98P,KAAMoP,EAAQ0vL,eAAeu/D,WAC7Bv3I,SAAUvmH,KAAK28P,cACft3D,gBAAiB3G,GAAmBoH,UACpCzF,YAAa,WAAc,OAAOtgM,EAAMg+P,kBACxC94D,aAAcjlM,KAAK6xD,YACnB2uI,cAAe,WAAc,OAAOzgM,EAAM2H,OAAOiyG,WAAU,EAAM,kBACjE+mF,cAAe,WAAc,OAAO3gM,EAAM2H,OAAOiyG,WAAU,EAAO,mBAEtE35G,KAAKynM,mBAAmBlI,cAAcv/L,KAAKu8P,gBAAgB,KAE/D/B,EAAkBj+P,UAAUwhQ,eAAiB,WACzC,IAAIC,EAAe,GAEnB,OADAA,EAAah+P,KAAK0H,OAAO2vG,SAAWr3G,KAAK0H,OAAOk1G,YACzC,CACHzhB,QAAS,CAACn7F,KAAK0H,QACfs2P,aAAcA,IAGtBxD,EAAkBj+P,UAAUw+P,YAAc,WACtC,IAGIkD,EACAC,EAJAn+P,EAAQC,KACR4H,EAAS5H,KAAKk2O,qBACdioB,EAAqB,GAGrBC,EAAY,WAEZ,GADA54G,GAAazlJ,EAAMs+P,QAASJ,GACvBA,EAAL,CAGA,IAAIK,EAAyBv+P,EAAMw+P,wBAAwBC,aAAa,CACpEC,WAAY1+P,EAAMs+P,QAClBK,cAAe3+P,EAAM2+P,cAAcj0P,KAAK1K,GACxC4+P,WAAY5+P,EAAM4+P,WAAWl0P,KAAK1K,GAAO,GACzC6+P,YAAa7+P,EAAM4+P,WAAWl0P,KAAK1K,GAAO,KAG9C,GADAo+P,EAAmB7+P,KAAKg/P,GACpBJ,EAAa,CACb,IAAIW,EAAyB9+P,EAAM+vG,mBAAmBmrB,yBAClD6jI,EAAwB,WACxB/+P,EAAMo/I,iBAAiBvjB,eAAe77H,EAAM2H,OAAQm3P,EAAwB,oBAEhF9+P,EAAMs+P,QAAQ7tJ,iBAAiB,WAAYsuJ,GAC3C,IAAIC,EAAkB,IAAI13E,GAActnL,EAAMs+P,SAC9CU,EAAgBvuJ,iBAAiB62E,GAAc0B,iBAAkB+1E,GACjE/+P,EAAMsnH,gBAAe,WACjBtnH,EAAMs+P,QAAQ3tJ,oBAAoB,WAAYouJ,GAC9CC,EAAgBruJ,oBAAoB22E,GAAc0B,iBAAkB+1E,GACpEC,EAAgB34P,gBAIxB44P,EAAe,WACfb,EAAmB5/P,SAAQ,SAAUuO,GAAK,OAAOA,OACjDqxP,EAAmB1gQ,OAAS,GAE5B86F,EAAU,WACV,IAAI0mK,EAASl/P,EAAM2H,OAAO+xG,cACtBylJ,GAAYn/P,EAAM+vG,mBAAmBggH,uBAAyBloN,EAAOmoN,iBACrEovC,EAAiBF,IAAWhB,GAAaiB,IAAahB,EACtDiB,IACAlB,EAAYgB,EACZf,EAAcgB,EACdF,IACAZ,MAGR7lK,IACAv4F,KAAKqnH,eAAe23I,GACpBh/P,KAAK06P,iBAAiBp7P,KAAKi5F,IAE/BiiK,EAAkBj+P,UAAUoiQ,WAAa,SAAUljI,EAAU2jI,GACzD,IAAIC,EAAyBr/P,KAAKs/P,sBAAsBF,GACpDz+H,EAAe,CAAC,CAAElkI,IAAKuD,KAAK0H,OAAQ4zH,SAAUt7H,KAAKu/P,iBAAmBF,IAC1Er/P,KAAKm/I,iBAAiBze,gBAAgBC,EAAc3gI,KAAKw/P,mBAAoB/jI,EAAU,mBACnFA,GACAyoB,GAAelkJ,KAAKqG,SAAU,uBAGtCm0P,EAAkBj+P,UAAUmiQ,cAAgB,SAAU99H,GAClD5gI,KAAKu/P,iBAAmBv/P,KAAK0H,OAAOw1G,iBACpCl9G,KAAKw/P,mBAAqB5+H,EAC1BkjB,GAAY9jJ,KAAKqG,SAAU,uBAE/Bm0P,EAAkBj+P,UAAU+wK,iBAAmB,WAC3C,IAAIhwI,EAAMz4B,EAAOtI,UAAU+wK,iBAAiB1vK,KAAKoC,MAGjD,OAFAs9B,EAAIzvB,SAAW,SACfyvB,EAAI11B,OAAS5H,KAAK0H,OAAOm1G,YAClBv/E,GAEXk9N,EAAkBj+P,UAAUu+P,aAAe,WACvC,IAAI/6P,EAAQC,KACRu4F,EAAU,WACV,IAAI22E,EAAiBnvK,EAAM2H,OAAOm1G,YAAY4iJ,cAC9C1/P,EAAMkvK,WAAWj7C,GAAak7C,KAElC32E,IACAv4F,KAAK06P,iBAAiBp7P,KAAKi5F,IAE/BiiK,EAAkBj+P,UAAUs+P,eAAiB,WACzC76P,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAO8F,qBAAsB75G,KAAK29P,sBAAsBlzP,KAAKzK,OAClGA,KAAK29P,yBAETnD,EAAkBj+P,UAAU6+P,cAAgB,WACxCp7P,KAAKqG,SAAS++G,aAAa,SAAUplH,KAAK0H,OAAOs1G,aAErDw9I,EAAkBj+P,UAAUq+P,WAAa,WACrC56P,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAO2J,oBAAqB19G,KAAK0/P,qBAAqBj1P,KAAKzK,OAChGA,KAAK0/P,wBAETlF,EAAkBj+P,UAAUy+P,eAAiB,WACzCh7P,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAOoG,2BAA4Bn6G,KAAK2/P,cAAcl1P,KAAKzK,QAEpGw6P,EAAkBj+P,UAAUojQ,cAAgB,WACxC3/P,KAAKqkJ,oBAAoB,yBAA0BrkJ,KAAK0H,OAAO0yG,kBAEnEogJ,EAAkBj+P,UAAUmjQ,qBAAuB,WAC/C1/P,KAAKqG,SAAS8xC,MAAMmB,MAAQt5C,KAAK0H,OAAOw1G,iBAAmB,MAI/Ds9I,EAAkBj+P,UAAU+iQ,sBAAwB,SAAUM,GAC1D,IAAIpxP,EAASoxP,EAab,OAZI5/P,KAAK8vG,mBAAmB6Q,cAEpB3gH,KAAKg1G,SAAW5D,GAAUsB,cAC1BlkG,IAAW,GAKXxO,KAAKg1G,SAAW5D,GAAUqB,eAC1BjkG,IAAW,GAGZA,GAEXgsP,EAAkBvlF,SAAW,wSAC7BslF,GAAa,CACT3rJ,GAAU,uBACX4rJ,EAAkBj+P,UAAW,0BAAsB,GACtDg+P,GAAa,CACT3rJ,GAAU,qBACX4rJ,EAAkBj+P,UAAW,wBAAoB,GACpDg+P,GAAa,CACT3rJ,GAAU,4BACX4rJ,EAAkBj+P,UAAW,+BAA2B,GAC3Dg+P,GAAa,CACT3rJ,GAAU,gBACX4rJ,EAAkBj+P,UAAW,mBAAe,GAC/Cg+P,GAAa,CACT3rJ,GAAU,YACX4rJ,EAAkBj+P,UAAW,eAAW,GAC3Cg+P,GAAa,CACT3rJ,GAAU,cACX4rJ,EAAkBj+P,UAAW,iBAAa,GAC7Cg+P,GAAa,CACT3rJ,GAAU,mBACX4rJ,EAAkBj+P,UAAW,sBAAkB,GAClDg+P,GAAa,CACT3rJ,GAAU,yBACX4rJ,EAAkBj+P,UAAW,4BAAwB,GACxDg+P,GAAa,CACT3rJ,GAAU,uBACX4rJ,EAAkBj+P,UAAW,0BAAsB,GACtDg+P,GAAa,CACT3rJ,GAAU,UACX4rJ,EAAkBj+P,UAAW,aAAS,GACzCg+P,GAAa,CACTnnF,GAAY,YACbonF,EAAkBj+P,UAAW,eAAW,GAC3Cg+P,GAAa,CACTnnF,GAAY,gBACbonF,EAAkBj+P,UAAW,mBAAe,GAC/Cg+P,GAAa,CACT/rJ,IACDgsJ,EAAkBj+P,UAAW,oBAAqB,MAC9Ci+P,EAjc2B,CAkcpCH,IAQEwF,GAAoD,WACpD,IAAI57P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDw7P,GAAsD,SAAUz+P,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Do7P,GAAwC,SAAUl7P,GAElD,SAASk7P,EAAuBn7H,EAAa5vB,GACzC,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,KAAM+/P,EAAuB9qF,WAAaj1K,KAKlE,OAHAD,EAAMigQ,0BAA4B,GAClCjgQ,EAAM2H,OAASk9H,EACf7kI,EAAMi1G,OAASA,EACRj1G,EA+VX,OAtWA8/P,GAAYE,EAAwBl7P,GASpCk7P,EAAuBxjQ,UAAUwiJ,cAAgB,WAC7Cl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCg0P,GAAgBC,2BAA2Bj0P,KAAKk2O,qBAAsBl2O,KAAKqG,SAAUrG,KAAK8vG,mBAAoB,KAAM9vG,KAAK0H,QACzH,IAAImqD,EAAc7xD,KAAKm/I,iBAAiBvP,6BAA6B5vI,KAAK0H,OAAQ,UAClF1H,KAAKigQ,sBAAsBpuM,GAC3B7xD,KAAK+6P,cACL/6P,KAAKkgQ,aACLlgQ,KAAK46P,aACL56P,KAAKo7P,gBACLp7P,KAAK66P,iBACL76P,KAAK86P,eACL96P,KAAKojH,kBACLpjH,KAAKsnH,kBAAkB,IAAIstI,GAAa50P,KAAK0H,OAAO64G,yBAAyBC,iBAAkBxgH,KAAKqG,WACpGrG,KAAKsnH,kBAAkB,IAAI0tI,GAAeh1P,KAAK0H,OAAQ1H,KAAKqG,SAAUrG,KAAK+tG,SAE/EgyJ,EAAuBxjQ,UAAUs9K,UAAY,SAAUrtK,GACnD,IAAKxM,KAAKqG,SAASu0F,SAASpuF,EAAEiuK,eAAgB,CAC1C,IAAIrvB,EAAYprJ,KAAKmyK,qBACrBnyK,KAAK+tG,MAAMksE,gBAAgB8iF,iBAAiB3xG,EAAU4xG,cAAeh9P,KAAK+uI,eAGlFgxH,EAAuBxjQ,UAAU0+K,cAAgB,SAAUzuK,GACvD,IAAI2zP,EAAWxzP,SAAS+nM,cACpB9mC,EAAO5tK,KAAKqG,SACZ+5P,EAAkBD,IAAavyF,EACnC,GAAK5tK,KAAK+iH,YAAeq9I,GAGrB5zP,EAAEs4J,UAAY+O,GAAQG,MAAO,CAC7B,IAAItsK,EAAS1H,KAAK+uI,YACd2+C,GAAoBhmL,EAAOq6G,aAC/B/hH,KAAKm/I,iBAAiBrM,qBAAqBprI,EAAO64G,yBAA0BmtE,EAAkB,sBAGtGqyE,EAAuBxjQ,UAAU69K,aAAe,aAChD2lF,EAAuBxjQ,UAAU6mH,gBAAkB,WAC/C,IAAI17G,EAAS1H,KAAK+uI,YACdhvB,EAAsBr4G,EAAO64G,yBACjCvgH,KAAKqgQ,kBACLrgQ,KAAKmnH,mBAAmBpH,EAAqB6C,GAAoBiB,yBAA0B7jH,KAAKqgQ,gBAAgB51P,KAAKzK,OACrHA,KAAKmnH,mBAAmBpH,EAAqB6C,GAAoBM,uBAAwBljH,KAAKqgQ,gBAAgB51P,KAAKzK,QAEvH+/P,EAAuBxjQ,UAAU8jQ,gBAAkB,WAC/C,IAAI34P,EAAS1H,KAAK+uI,YACd6+B,EAAO5tK,KAAKqG,SACZ08G,EAAar7G,EAAOo6G,eACpBG,EAAWv6G,EAAOq6G,aACtB/hH,KAAK+iH,WAAaA,EACbA,EAID+5C,GAAgB8Q,EAAM3rD,GAHtB2rD,EAAK/nB,gBAAgB,kBAM7Bk6G,EAAuBxjQ,UAAUs+P,eAAiB,WAC9C,IAAI96P,EAAQC,KACR+/G,EAAsB//G,KAAK0H,OAAO64G,yBAClC2B,EAAcnC,EAAoBS,iBACtC0B,EAAY3jH,SAAQ,SAAUmmC,GAC1B3kC,EAAMonH,mBAAmBziF,EAAKqvE,GAAO8F,qBAAsB95G,EAAM49P,sBAAsBlzP,KAAK1K,OAEhGC,KAAK29P,yBAEToC,EAAuBxjQ,UAAU25O,mBAAqB,WAClD,OAAOl2O,KAAK0H,OAAOk6G,kBAEvBm+I,EAAuBxjQ,UAAU+wK,iBAAmB,WAChD,IAAIhwI,EAAMz4B,EAAOtI,UAAU+wK,iBAAiB1vK,KAAKoC,MAMjD,OALAs9B,EAAIzvB,SAAW,cAGfyvB,EAAI11B,OAAS5H,KAAKk2O,qBAClB54M,EAAI51B,OAAS1H,KAAK+uI,YACXzxG,GAEXyiO,EAAuBxjQ,UAAUu+P,aAAe,WAC5C,IAAIj4I,EAAc7iH,KAAKk2O,qBACnBlnE,EAAcnsD,GAAeA,EAAY48I,cAC1B,MAAfzwF,GACAhvK,KAAKivK,WAAWj7C,GAAag7C,KAGrC+wF,EAAuBxjQ,UAAUohQ,sBAAwB,WAIrDt5G,GAAoBrkJ,KAAKqG,SAAU,wBAAyBrG,KAAK0H,OAAOoyG,aAE5EimJ,EAAuBxjQ,UAAU6+P,cAAgB,WAC7Cp7P,KAAKqG,SAAS++G,aAAa,SAAUplH,KAAK0H,OAAO0vG,gBAErD2oJ,EAAuBxjQ,UAAU0jQ,sBAAwB,SAAUpuM,GAC/D,IAAI9xD,EAAQC,KACRoD,EAAS,CACTyuD,YAAaA,EACb+yE,YAAa5kI,KAAK0H,OAClBs6G,YAAa,SAAUC,GACnBliH,EAAMo/I,iBAAiBrM,qBAAqB/yI,EAAM2H,OAAO64G,yBAA0B0B,EAAU,qBAEjGr4G,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBw/F,QAASrpG,KAAK8vG,mBAAmB0I,cAErC,IAAK3mD,EAAa,CACd,IAAI+yE,EAAc5kI,KAAK0H,OACnB0tI,EAAWxQ,EAAYpkB,iBAM3B,MAAOokB,EAAYlvB,aAAekvB,EAAYlvB,YAAY8K,iBAAiB/iH,SAAW23I,EAAS33I,OAC3FmnI,EAAcA,EAAYlvB,YAE9B,IAAImN,EAAc+hB,EAAYhjB,iBAC1BiB,IACAhxD,EAAcgxD,EAAY4J,YAEzB56D,IACDA,EAAcujF,EAAWp1I,KAAKm/I,iBAAiB5P,wBAAwB6F,EAAS,GAAI,UAAU,GAAQ,IAG9G,IAAI1vI,EAAW1F,KAAKo9P,uBAAuB3yP,KAAKzK,KAAM6xD,GACtD7xD,KAAKwtK,qBAAqBosB,wBAAwBx2L,GAAQu4J,KAAKj2J,IAEnEq6P,EAAuBxjQ,UAAU6gQ,uBAAyB,SAAUvrM,EAAayuM,GAC7E,IAAIvgQ,EAAQC,KACZA,KAAKqG,SAASq0B,YAAY4lO,EAAgBj6P,UAC1CrG,KAAKqnH,gBAAe,WAChBtnH,EAAMy4G,aAAa1K,YAAYwyJ,MAEnCtgQ,KAAKugQ,UAAUD,EAAgBj6P,SAAUwrD,IAE7CkuM,EAAuBxjQ,UAAU2jQ,WAAa,WAI1C,IAAI/nN,EAAQn4C,KAAK0H,OAAOm6G,YAAc,KAAO,OAC7C7hH,KAAK8jJ,YAAY,wBAA0B3rG,EAAQ,WAEvD4nN,EAAuBxjQ,UAAUgkQ,UAAY,SAAUC,EAAc3uM,GACjE,IAAI9xD,EAAQC,KACZ,GAAKwgQ,IAGDxgQ,KAAKygQ,mBAAT,CAGA,IAAIngJ,EAAiBtgH,KAAK0H,OAAO64G,yBAAyBC,iBACtDg/E,EAAa,CACb//L,KAAMoP,EAAQ0vL,eAAeu/D,WAC7Bv3I,SAAUi6I,EACVn7D,gBAAiB3G,GAAmBoH,UACpCb,aAAcpzI,EAEdwuI,YAAargM,KAAK0gQ,oBAAoBj2P,KAAKzK,MAC3CwgM,cAAe,WAAc,OAAOlgF,EAAe/hH,SAAQ,SAAUmmC,GAAO,OAAOA,EAAIi1E,WAAU,EAAM,uBACvG+mF,cAAe,WAAc,OAAOpgF,EAAe/hH,SAAQ,SAAUmmC,GAAO,OAAOA,EAAIi1E,WAAU,EAAO,wBAE5G35G,KAAKynM,mBAAmBlI,cAAcC,GAAY,GAClDx/L,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM0nM,mBAAmB1H,iBAAiBP,QAIvFugE,EAAuBxjQ,UAAUmkQ,oBAAsB,WACnD,IAAIC,EAA0B3gQ,KAAK0H,OAAO64G,yBAAyBC,iBAE/Dw9I,EAAe,GACnB2C,EAAwBpiQ,SAAQ,SAAUmJ,GAAU,OAAOs2P,EAAat2P,EAAO2vG,SAAW3vG,EAAOk1G,eACjG,IAAIgkJ,EAAyB,GAU7B,OATA5gQ,KAAKm/I,iBAAiBpjB,yBAAyBx9H,SAAQ,SAAUmJ,GACzDi5P,EAAwB5/P,QAAQ2G,IAAW,IAC3Ck5P,EAAuBthQ,KAAKoI,GAC5Bs8F,EAAgB28J,EAAyBj5P,OAIjDi5P,EAAwBpiQ,SAAQ,SAAUmJ,GAAU,OAAOk5P,EAAuBthQ,KAAKoI,MAEhF,CACHyzF,QAASylK,EACT5C,aAAcA,IAGtB+B,EAAuBxjQ,UAAUkkQ,iBAAmB,WAEhD,IAAII,GAAwB,EAC5B7gQ,KAAK0H,OAAO84G,iBAAiBjiH,SAAQ,SAAUmJ,IACvCA,EAAOm1G,YAAYghJ,iBAAmBn2P,EAAOm1G,YAAY2C,gBACzDqhJ,GAAwB,MAGhC,IAAIryP,EAASqyP,GAAyB7gQ,KAAK8vG,mBAAmBo9G,2BAC9D,OAAO1+M,GAEXuxP,EAAuBxjQ,UAAUq+P,WAAa,WAE1C56P,KAAK8gQ,gCAEL9gQ,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQo4G,GAAYyC,iCAAkCviH,KAAK+gQ,2BAA2Bt2P,KAAKzK,OACxHA,KAAKo2O,iBAILp2O,KAAKqnH,eAAernH,KAAKghQ,iCAAiCv2P,KAAKzK,QAEnE+/P,EAAuBxjQ,UAAUwkQ,2BAA6B,WAC1D/gQ,KAAK8gQ,gCACL9gQ,KAAKo2O,kBAET2pB,EAAuBxjQ,UAAUukQ,8BAAgC,WAC7D,IAAI/gQ,EAAQC,KAEZA,KAAKghQ,mCAEL,IAAI7Z,EAAuBnnP,KAAKo2O,eAAe3rO,KAAKzK,MACpDA,KAAK0H,OAAO84G,iBAAiBjiH,SAAQ,SAAUmJ,GAC3CA,EAAO8oG,iBAAiBuD,GAAO2J,oBAAqBypI,GACpDz/O,EAAO8oG,iBAAiBuD,GAAO4I,sBAAuBwqI,GACtDpnP,EAAMigQ,0BAA0B1gQ,MAAK,WACjCoI,EAAOgpG,oBAAoBqD,GAAO2J,oBAAqBypI,GACvDz/O,EAAOgpG,oBAAoBqD,GAAO4I,sBAAuBwqI,UAIrE4Y,EAAuBxjQ,UAAUykQ,iCAAmC,WAChEhhQ,KAAKggQ,0BAA0BzhQ,SAAQ,SAAU4M,GAAQ,OAAOA,OAChEnL,KAAKggQ,0BAA4B,IAErCD,EAAuBxjQ,UAAU65O,eAAiB,WAC9Cp2O,KAAKqG,SAAS8xC,MAAMmB,MAAQt5C,KAAK0H,OAAOw1G,iBAAmB,MAE/D6iJ,EAAuBxjQ,UAAUw+P,YAAc,WAC3C,IAAIh7P,EAAQC,KAEZ,GADAA,KAAKihQ,kBAAoBjhQ,KAAK6xK,cAAc,YACvC7xK,KAAK0H,OAAO+xG,cAAjB,CAIA,IAAI6kJ,EAAyBt+P,KAAKu+P,wBAAwBC,aAAa,CACnEC,WAAYz+P,KAAKihQ,kBACjBvC,cAAe1+P,KAAK0+P,cAAcj0P,KAAKzK,MACvC2+P,WAAY3+P,KAAK2+P,WAAWl0P,KAAKzK,MAAM,GACvC4+P,YAAa5+P,KAAK2+P,WAAWl0P,KAAKzK,MAAM,KAG5C,GADAA,KAAKqnH,eAAei3I,IACft+P,KAAK8vG,mBAAmBggH,qBAAsB,CAC/C,IAAI+uC,EAAyB7+P,KAAK8vG,mBAAmBmrB,yBACrDj7H,KAAKihQ,kBAAkBzwJ,iBAAiB,YAAY,SAAUppG,GAE1D,IAAInH,EAAO,GACXF,EAAM2H,OAAOg6G,0BAA0BnjH,SAAQ,SAAUmJ,GAEhDA,EAAOm1G,YAAYkzG,kBACpB9vN,EAAKX,KAAKoI,EAAOs1G,eAGrB/8G,EAAKxC,OAAS,GACdsC,EAAMo/I,iBAAiBnhD,gBAAgB/9F,EAAM4+P,EAAwB,4BAtB7Eh3G,GAAiB7nJ,KAAKihQ,oBA2B9BlB,EAAuBxjQ,UAAUmiQ,cAAgB,SAAU99H,GACvD,IAAI7gI,EAAQC,KACRo1I,EAAWp1I,KAAK0H,OAAOg6G,0BAC3B1hH,KAAKkhQ,WAAa9rH,EAAS7kD,QAAO,SAAU7rD,GAAO,OAAOA,EAAI+0E,iBAC9Dz5G,KAAKu/P,iBAAmB,EACxBv/P,KAAKkhQ,WAAW3iQ,SAAQ,SAAUmmC,GAAO,OAAO3kC,EAAMw/P,kBAAoB76N,EAAIw4E,oBAC9El9G,KAAKmhQ,aAAe,GACpBnhQ,KAAKkhQ,WAAW3iQ,SAAQ,SAAUmmC,GAAO,OAAO3kC,EAAMohQ,aAAa7hQ,KAAKolC,EAAIw4E,iBAAmBn9G,EAAMw/P,qBACrG,IAAI6B,EAAgB,KAIpB,GAHIxgI,IACAwgI,EAAgBphQ,KAAKm/I,iBAAiB1X,uBAAuBznI,KAAK0H,SAElE05P,EAAe,CACf,IAAIC,EAAmBD,EAAc1/I,0BACrC1hH,KAAKshQ,mBAAqBD,EAAiB9wK,QAAO,SAAU7rD,GAAO,OAAOA,EAAI+0E,iBAC9Ez5G,KAAKuhQ,yBAA2B,EAChCvhQ,KAAKshQ,mBAAmB/iQ,SAAQ,SAAUmmC,GAAO,OAAO3kC,EAAMwhQ,0BAA4B78N,EAAIw4E,oBAC9Fl9G,KAAKwhQ,qBAAuB,GAC5BxhQ,KAAKshQ,mBAAmB/iQ,SAAQ,SAAUmmC,GAAO,OAAO3kC,EAAMyhQ,qBAAqBliQ,KAAKolC,EAAIw4E,iBAAmBn9G,EAAMwhQ,kCAGrHvhQ,KAAKshQ,mBAAqB,KAC1BthQ,KAAKuhQ,yBAA2B,KAChCvhQ,KAAKwhQ,qBAAuB,KAEhC19G,GAAY9jJ,KAAKqG,SAAU,uBAE/B05P,EAAuBxjQ,UAAUoiQ,WAAa,SAAUljI,EAAU2jI,GAC9D,IAAIv9H,EAAa,GACbw9H,EAAyBr/P,KAAKyhQ,oBAAoBrC,GACtDv9H,EAAWviI,KAAK,CACZ67F,QAASn7F,KAAKkhQ,WACdngI,OAAQ/gI,KAAKmhQ,aACb7nN,MAAOt5C,KAAKu/P,iBAAmBF,IAE/Br/P,KAAKshQ,oBACLz/H,EAAWviI,KAAK,CACZ67F,QAASn7F,KAAKshQ,mBACdvgI,OAAQ/gI,KAAKwhQ,qBACbloN,MAAOt5C,KAAKuhQ,yBAA2BlC,IAG/Cr/P,KAAKm/I,iBAAiB9d,iBAAiBQ,EAAYpG,EAAU,mBACzDA,GACAyoB,GAAelkJ,KAAKqG,SAAU,uBAKtC05P,EAAuBxjQ,UAAUklQ,oBAAsB,SAAU7B,GAC7D,IAAIpxP,EAASoxP,EAWb,OAVI5/P,KAAK8vG,mBAAmB6Q,cAEpB3gH,KAAKg1G,SAAW5D,GAAUsB,cAC1BlkG,IAAW,GAGVxO,KAAKg1G,SAAW5D,GAAUqB,eAE/BjkG,IAAW,GAERA,GAEXuxP,EAAuB9qF,SAAW,iLAClC6qF,GAAa,CACTlxJ,GAAU,qBACXmxJ,EAAuBxjQ,UAAW,wBAAoB,GACzDujQ,GAAa,CACTlxJ,GAAU,4BACXmxJ,EAAuBxjQ,UAAW,+BAA2B,GAChEujQ,GAAa,CACTlxJ,GAAU,uBACXmxJ,EAAuBxjQ,UAAW,0BAAsB,GAC3DujQ,GAAa,CACTlxJ,GAAU,yBACXmxJ,EAAuBxjQ,UAAW,4BAAwB,GAC7DujQ,GAAa,CACTlxJ,GAAU,UACXmxJ,EAAuBxjQ,UAAW,aAAS,GAC9CujQ,GAAa,CACTlxJ,GAAU,YACXmxJ,EAAuBxjQ,UAAW,eAAW,GAChDujQ,GAAa,CACTlxJ,GAAU,cACXmxJ,EAAuBxjQ,UAAW,iBAAa,GAC3CwjQ,EAvWgC,CAwWzC1F,IAQEqH,GAAoD,WACpD,IAAIz9P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDq9P,GAAsD,SAAUtgQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAK5Di9P,GAAwC,SAAU/8P,GAElD,SAAS+8P,IACL,OAAO/8P,EAAOjH,KAAKoC,KAAiB,wLAAgMA,KAsCxO,OAxCA0hQ,GAAYE,EAAwB/8P,GAMpC+8P,EAAuBrlQ,UAAU6J,QAAU,WACvCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElC4hQ,EAAuBrlQ,UAAU2I,KAAO,SAAU9B,GAC9CpD,KAAKoD,OAASA,EACd,IAAIyuD,EAAc7xD,KAAKm/I,iBAAiB5P,wBAAwBnsI,EAAOsE,OAAQ,UAAU,GACrFmuK,EAAY71K,KAAK8vG,mBAAmBygC,oBACxCvwI,KAAK6hQ,oBACAn8G,aAAY,GACZowB,kBAAkBjkH,EAAc,IAAMgkH,EAAU,kBAAmB,kBAE5E+rF,EAAuBrlQ,UAAUw5M,qBAAuB,SAAU+rD,GAC9D,IAAI/hQ,EAAQC,KACP8hQ,EAIL9hQ,KAAKoD,OAAOgzM,sBAAqB,SAAUC,GAKvC,GAAIA,EAAe0rD,iBAAkB,CACjC,IAAIC,EAAgB3rD,EAAe0rD,iBAAiBD,GACpD/hQ,EAAM8hQ,oBAAoBnsF,SAASssF,OAVvChiQ,KAAK6hQ,oBAAoBnsF,SAAS,KAc1CisF,GAAa,CACTvuF,GAAY,wBACbwuF,EAAuBrlQ,UAAW,2BAAuB,GAC5DolQ,GAAa,CACT/yJ,GAAU,qBACXgzJ,EAAuBrlQ,UAAW,wBAAoB,GAClDqlQ,EAzCgC,CA0CzChiQ,IAQEqiQ,GAAsC,WACtC,SAASA,KAiBT,OAfAA,EAAqBC,sBAAwB,SAAU3hF,GACnD,OAAOvgL,KAAKmiQ,8BAA8B5hF,IAE9C0hF,EAAqBE,8BAAgC,CACjD7hQ,IAAK,4BACL8hQ,kBAAmB,4BACnBC,MAAO,8BACPC,oBAAqB,8BACrBhnH,OAAQ,+BACRy+D,qBAAsB,+BACtBt+L,KAAM,6BACNu+L,mBAAoB,6BACpBtiL,KAAM,6BACNoiL,mBAAoB,8BAEjBmoD,EAlB8B,GA2BrCM,GAAoD,WACpD,IAAIt+P,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDk+P,GAAsD,SAAUnhQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D89P,GAAuC,SAAU59P,GAEjD,SAAS49P,EAAsB/6P,EAAQstG,GACnC,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,KAAMyiQ,EAAsBxtF,WAAaj1K,KAGjE,OAFAD,EAAM2H,OAASA,EACf3H,EAAMi1G,OAASA,EACRj1G,EAuOX,OA5OAwiQ,GAAYE,EAAuB59P,GAOnC49P,EAAsBlmQ,UAAUwiJ,cAAgB,WAC5Cl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAK0iQ,sBACL1iQ,KAAK46P,aACL56P,KAAK2iQ,uBACL3iQ,KAAK4iQ,mBACL5iQ,KAAKsnH,kBAAkB,IAAIstI,GAAa,CAAC50P,KAAK0H,QAAS1H,KAAKqG,WAC5DrG,KAAKmnH,mBAAmBnnH,KAAK6iQ,sBAAuB,QAAS7iQ,KAAK8iQ,iBAAiBr4P,KAAKzK,QAE5FyiQ,EAAsBlmQ,UAAU69K,aAAe,SAAU5tK,GACrD,IAAI2zP,EAAWxzP,SAAS+nM,cACpB9mC,EAAO5tK,KAAKqG,SACZ+5P,EAAkBD,IAAavyF,EACnC,IAAIwyF,EAAJ,CAGA5zP,EAAEmpK,iBACF,IAAIotF,EAAkB/iQ,KAAKi6K,gBAAgBO,yBAAyB5M,EAAM,KAAMphK,EAAEo0H,UAC9EmiI,EACAA,EAAgBhtF,QAGhBnI,EAAKmI,UAGb0sF,EAAsBlmQ,UAAU0+K,cAAgB,SAAUzuK,GACtD,IAAI2zP,EAAWxzP,SAAS+nM,cACpB9mC,EAAO5tK,KAAKqG,SACZ+5P,EAAkBD,IAAavyF,EACnC,OAAQphK,EAAEs4J,SACN,KAAK+O,GAAQQ,GACb,KAAKR,GAAQU,KACJ6rF,GACD5zP,EAAEmpK,iBAEV,KAAK9B,GAAQO,KACb,KAAKP,GAAQS,MACT,GAAI8rF,EACA,OAEJ5zP,EAAEylM,kBACN,KAAKp+B,GAAQG,MACLosF,GACIpgQ,KAAKi6K,gBAAgB+oF,UAAUp1F,IAC/BphK,EAAEmpK,iBAGV,MACJ,KAAK9B,GAAQK,OACJksF,GACDpgQ,KAAKqG,SAAS0vK,UAI9B0sF,EAAsBlmQ,UAAUs9K,UAAY,SAAUrtK,GAClD,IAAIohK,EAAO5tK,KAAKqG,SAChB,IAAKunK,EAAKhzE,SAASpuF,EAAEiuK,eAAgB,CACjC,IAAIrvB,EAAYprJ,KAAKmyK,qBACrBnyK,KAAK+tG,MAAMksE,gBAAgB8iF,iBAAiB3xG,EAAU4xG,cAAeh9P,KAAK+uI,eAGlF0zH,EAAsBlmQ,UAAUmmQ,oBAAsB,WAClD,IAAI3iQ,EAAQC,KACR4H,EAAS5H,KAAK0H,OAAOm1G,YACpBj1G,EAAO2oF,QAAW3oF,EAAO6yI,iBAG9Bz6I,KAAKijQ,0BAA4BjjQ,KAAKkjQ,4BACjCljQ,KAAKijQ,2BAGVjjQ,KAAKijQ,0BAA0BtnG,MAAK,SAAUwnG,GACtCA,IACApjQ,EAAMqjQ,wBAAwBD,GAC9BpjQ,EAAMsjQ,4BAIlBZ,EAAsBlmQ,UAAUomQ,qBAAuB,WACnD,IAAIW,EAAiB,IAAItO,GAAeh1P,KAAK0H,OAAQ1H,KAAKqG,SAAUrG,KAAK+tG,OACzE/tG,KAAKsnH,kBAAkBg8I,IAE3Bb,EAAsBlmQ,UAAU8mQ,oBAAsB,WAClD,IAAItjQ,EAAQC,KACRujQ,EAAiB,SAAU5nJ,GAC3B57G,EAAMg2M,qBAAqBh2M,EAAMyjQ,qBAAsB7nJ,IAE3D37G,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAO6H,qBAAsB2nJ,GAC9DvjQ,KAAK2vM,cAAcr0F,eAAet7G,KAAK0H,SACvC67P,EAAe,OAIvBd,EAAsBlmQ,UAAUumQ,iBAAmB,WAC/C,IAAIr3E,EAAczrL,KAAKyjQ,qBAAuBzjQ,KAAK0jQ,oBAAsB1jQ,KAAK6iQ,sBAC9E7iQ,KAAK0rL,YAAYC,yBAAyB3rL,KAAK0H,OAAQ+jL,EAAa,gBAAiB,CAAC,mBAE1Fg3E,EAAsBlmQ,UAAUqmQ,iBAAmB,WAC/C5iQ,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOsE,2BAA4BjxH,KAAKs1O,cAAc7qO,KAAKzK,OACtGA,KAAKs1O,iBAETmtB,EAAsBlmQ,UAAU+4O,cAAgB,WAC5CjxF,GAAoBrkJ,KAAKqG,SAAU,kBAAmBrG,KAAKw1O,mBAAmBD,UAAUv1O,KAAK0H,UAEjG+6P,EAAsBlmQ,UAAUq+P,WAAa,WACzC56P,KAAKmnH,mBAAmBnnH,KAAK0H,OAAQqsG,GAAO2J,oBAAqB19G,KAAK0/P,qBAAqBj1P,KAAKzK,OAChGA,KAAK0/P,wBAET+C,EAAsBlmQ,UAAUmjQ,qBAAuB,WACnD1/P,KAAKqG,SAAS8xC,MAAMmB,MAAQt5C,KAAK0H,OAAOw1G,iBAAmB,MAE/DulJ,EAAsBlmQ,UAAU6mQ,wBAA0B,SAAUO,GAChE,IAAI5jQ,EAAQC,KACR4jQ,EAAc,WACd7jQ,EAAMy4G,aAAa1K,YAAY61J,IAEnC,GAAK3jQ,KAAK+mH,UAAV,CAIA/mH,KAAKqnH,eAAeu8I,GACpB,IAAIC,EAAuBF,EAAmBt9P,SAC9Cg+I,GAAoBrkJ,KAAK0jQ,oBAAqB,+BAAgC1jQ,KAAKyjQ,sBACnFp/G,GAAoBrkJ,KAAK0jQ,oBAAqB,2BAA4B1jQ,KAAKyjQ,sBAC/Ej+G,GAAaxlJ,KAAK8jQ,gBAAiB9jQ,KAAKyjQ,sBACxC,IAAIh5E,EAAQ3mB,GAAiB,SAAU9jK,KAAK8vG,mBAAoB9vG,KAAK0H,QACrE1H,KAAK6iQ,sBAAsBnoO,YAAY+vJ,GACvCzqL,KAAK0jQ,oBAAoBhpO,YAAYmpO,GACjCF,EAAmB/tF,kBACnB+tF,EAAmB/tF,wBAZnBguF,KAeRnB,EAAsBlmQ,UAAU65M,qBAAuB,SAAU1wM,GAC7D,IAAIizF,EAAkB34F,KAAK+jQ,qBACvBprK,GACAA,EAAgBgjE,KAAKj2J,IAG7B+8P,EAAsBlmQ,UAAUwnQ,mBAAqB,SAAUC,GAE3D,YAD6B,IAAzBA,IAAmCA,GAAuB,GACvDhkQ,KAAK2vM,cAAco0D,mBAAmB/jQ,KAAK0H,OAAQ,QAASs8P,IAEvEvB,EAAsBwB,6BAA+B,SAAU55I,GAC3D,GAAW,MAAPA,EACA,OAAO,KAEX,IAAI65I,EAA4B,KAChC,GAA0B,kBAAf75I,EAAI95B,OAEX2zK,EAA4BjC,GAAqBC,sBAAsB73I,EAAI95B,aAE1E,GAAI85B,EAAI5S,sBACR,IAAmB,IAAf4S,EAAI95B,OAAiB,CAC1B,IAAI4zK,EAAwBlxJ,GAAeQ,aAAa5kG,EAAQmkG,YAAYoxJ,iBAC5EF,EAA4BC,EAAwB,4BAA8B,6BAEtF,OAAOD,GAEXzB,EAAsBlmQ,UAAU2mQ,0BAA4B,WACxD,IAAIt7P,EAAS5H,KAAK0H,OAAOm1G,YACrBqnJ,EAA4BzB,EAAsBwB,6BAA6Br8P,GAC/E0+K,EAAetmL,KAAK2vM,cAAc00D,mBAAmBrkQ,KAAK0H,OAAQE,GAClE08P,EAAoBtkQ,KAAKwtK,qBAAqB4tB,kBAAkBxzL,EAAQ,SAAU0+K,GAClFljL,EAAS,CACTwG,IAAK5J,KAAKi/F,QACVv3F,OAAQ1H,KAAK0H,OACb4+K,aAAcg+E,EACdd,mBAAoBxjQ,KAAKwjQ,mBAAmB/4P,KAAKzK,MACjDo2M,qBAAsBp2M,KAAKo2M,qBAAqB3rM,KAAKzK,MACrD8iQ,iBAAkB9iQ,KAAK8iQ,iBAAiBr4P,KAAKzK,MAC7C0/K,wBAAyB1/K,KAAK0/K,wBAAwBj1K,KAAKzK,MAC3DyjQ,sBAAsB,GAI1BzjQ,KAAKyjQ,uBAAuB77P,EAAO28P,iCAAkC38P,EAAO28P,8BAA8Bd,qBAC1G,IAAIh5F,EAAUzqK,KAAKwtK,qBAAqBktB,2BAA2B9yL,EAAQxE,EAAQ8gQ,GACnF,IAAKz5F,EAAS,CACV,IAAI04F,EAAenjQ,KAAKwtK,qBAAqBkuB,qCAAqCkmE,GAAwBx+P,GAC1GqnK,EAAUX,GAAUQ,QAAQ64F,GAEhC,OAAO14F,GAEXg4F,EAAsBlmQ,UAAUinQ,mBAAqB,WACjD,IAAI7qK,EAAkB34F,KAAK+jQ,oBAAmB,GAC9C,OAAOprK,EAAkBA,EAAgBgyE,WAAW,MAAM,SAAUp6E,GAAU,OAAOA,GAAUA,EAAOqtF,cAAiB,MAE3H6kF,EAAsBlmQ,UAAUw5M,qBAAuB,SAAU7uM,EAAOy0G,GAC/D37G,KAAKijQ,2BAGVjjQ,KAAKijQ,0BAA0BtnG,MAAK,SAAUkU,GAAQ,OAAOA,GAAQA,EAAKkmC,qBAAqB7uM,EAAOy0G,OAE1G8mJ,EAAsBlmQ,UAAUmjL,wBAA0B,WACtDz8K,QAAQkD,KAAK,iQAIjBs8P,EAAsBxtF,SAAW,udACjCutF,GAAa,CACT5zJ,GAAU,uBACX6zJ,EAAsBlmQ,UAAW,0BAAsB,GAC1DimQ,GAAa,CACT5zJ,GAAU,yBACX6zJ,EAAsBlmQ,UAAW,4BAAwB,GAC5DimQ,GAAa,CACT5zJ,GAAU,YACX6zJ,EAAsBlmQ,UAAW,eAAW,GAC/CimQ,GAAa,CACT5zJ,GAAU,cACX6zJ,EAAsBlmQ,UAAW,iBAAa,GACjDimQ,GAAa,CACT5zJ,GAAU,kBACX6zJ,EAAsBlmQ,UAAW,qBAAiB,GACrDimQ,GAAa,CACT5zJ,GAAU,gBACX6zJ,EAAsBlmQ,UAAW,mBAAe,GACnDimQ,GAAa,CACT5zJ,GAAU,UACX6zJ,EAAsBlmQ,UAAW,aAAS,GAC7CimQ,GAAa,CACTpvF,GAAY,wBACbqvF,EAAsBlmQ,UAAW,2BAAuB,GAC3DimQ,GAAa,CACTpvF,GAAY,mBACbqvF,EAAsBlmQ,UAAW,sBAAkB,GACtDimQ,GAAa,CACTpvF,GAAY,0BACbqvF,EAAsBlmQ,UAAW,6BAAyB,GACtDkmQ,EA7O+B,CA8OxCpI,IAQEmK,GAAoD,WACpD,IAAIvgQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDmgQ,GAAsD,SAAUpjQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,IAGhE,SAAWgrO,GACPA,EAAcA,EAAc,gBAAkB,GAAK,eACnDA,EAAcA,EAAc,UAAY,GAAK,SAC7CA,EAAcA,EAAc,mBAAqB,GAAK,mBAH1D,CAIGA,KAAkBA,GAAgB,KACrC,IAkvBI+0B,GAlvBAC,GAA+B,SAAU9/P,GAEzC,SAAS8/P,EAAc17I,EAAMxpH,EAAMu1G,GAC/B,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,KAAiB,iDAAuDA,KAChGD,EAAM6kQ,YAAc,GACpB7kQ,EAAMoxL,YAAYloE,GAClBlpH,EAAMN,KAAOA,EACbM,EAAMi1G,OAASA,EACf,IAAI6vJ,EAAgBl1B,GAAclwO,GAAMuJ,cAAcD,QAAQ,KAAM,KAOpE,OANAhJ,EAAM+jJ,YAAY,iBAAmB+gH,GACjC/jH,OAGA/gJ,EAAMsG,SAAS8xC,MAAMouD,UAAY,iBAE9BxmG,EAgOX,OA9OAykQ,GAAYG,EAAe9/P,GAgB3B8/P,EAAcpoQ,UAAUuoQ,qBAAuB,SAAUp/P,GACrD,IAAI3F,EAAQC,KACZrD,OAAOsD,KAAKD,KAAK4kQ,aAAarmQ,SAAQ,SAAU9B,GAC5CiJ,EAAS3F,EAAM6kQ,YAAYnoQ,QAGnCkoQ,EAAcpoQ,UAAU40L,YAAc,SAAUvxC,GAC5C5/I,KAAKipH,KAAO22B,EACZ2d,GAAgBv9J,KAAKqG,SAAUu5I,EAAW,IAE9C+kH,EAAcpoQ,UAAUygQ,YAAc,WAClC,OAAOh9P,KAAKipH,MAEhB07I,EAAcpoQ,UAAUogL,QAAU,WAC9B,OAAO38K,KAAKP,MAEhBklQ,EAAcpoQ,UAAUwoQ,0BAA4B,WAChD,IAAIC,EAAmBroQ,OAAOsD,KAAKD,KAAK4kQ,aACxC5kQ,KAAKilQ,uBAAuBD,IAEhCL,EAAcpoQ,UAAU0oQ,uBAAyB,SAAUC,GACvD,IAAInlQ,EAAQC,KACZklQ,EAAa3mQ,SAAQ,SAAUyqD,GAC3B,IAAIm8M,EAAqBplQ,EAAM6kQ,YAAY57M,GAC3CjpD,EAAMsG,SAASu0B,YAAYuqO,EAAmB9+P,UAC9CtG,EAAM+tG,YAAYq3J,UACXplQ,EAAM6kQ,YAAY57M,OAGjC27M,EAAcpoQ,UAAU6qO,mBAAqB,WACzC,IAGIg+B,EACAr3G,EAJA7O,EAAiBl/I,KAAKm/I,iBAAiB3iB,oBACvC6oI,EAAQ,GACRC,EAAmB,EAGnBtlQ,KAAKm/I,iBAAiB5oB,eACtB6uI,EAAcplQ,KAAK8vG,mBAAmBsmH,4BACtCroE,EAAe/tJ,KAAK8vG,mBAAmBomH,yBAGnCl2N,KAAKm/I,iBAAiB3E,uBACtB0E,IACAomH,EAAmB,GAEvBF,EAAcplQ,KAAK8vG,mBAAmBkmH,uBACtCjoE,EAAe/tJ,KAAK8vG,mBAAmB8lH,mBAI3C,IAFA,IAAI2vC,EAAoB,EAAID,EACxBE,EAAiBtmH,EAAiBqmH,EAC7BhoQ,EAAI,EAAGA,EAAIioQ,EAAgBjoQ,IAChC8nQ,EAAM/lQ,KAAK8lQ,GAEfC,EAAM/lQ,KAAKyuJ,GACX,IAASxwJ,EAAI,EAAGA,EAAI+nQ,EAAkB/nQ,IAClC8nQ,EAAM/lQ,KAAKU,KAAK8vG,mBAAmBgmH,4BAEvC,IAAI71E,EAAY,EAChB,IAAS1iJ,EAAI,EAAGA,EAAIyC,KAAKipH,KAAM1rH,IAC3B0iJ,GAAaolH,EAAM9nQ,GAEvByC,KAAKqG,SAAS8xC,MAAM+/B,IAAM+nE,EAAY,KACtCjgJ,KAAKqG,SAAS8xC,MAAMyiC,OAASyqL,EAAMrlQ,KAAKipH,MAAQ,MAGpD07I,EAAcpoQ,UAAU2I,KAAO,WAC3BlF,KAAKonO,qBACLpnO,KAAK8nO,0BACL9nO,KAAK+2P,WACL/2P,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB6b,mBAAoBj5N,KAAKonO,mBAAmB38N,KAAKzK,OACrHA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBgc,yBAA0Bp5N,KAAKonO,mBAAmB38N,KAAKzK,OAC3HA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBkc,yBAA0Bt5N,KAAKonO,mBAAmB38N,KAAKzK,OAC3HA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBmc,+BAAgCv5N,KAAKonO,mBAAmB38N,KAAKzK,OACjIA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB0c,6BAA8B95N,KAAKonO,mBAAmB38N,KAAKzK,OAC/HA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOe,8BAA+B1tH,KAAK8nO,wBAAwBr9N,KAAKzK,OACnHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOa,qBAAsBxtH,KAAKylQ,gBAAgBh7P,KAAKzK,QAGtG2kQ,EAAcpoQ,UAAUkpQ,gBAAkB,WACtCzlQ,KAAK+2P,YAET4N,EAAcpoQ,UAAUw6P,SAAW,WAC/B,IAAIz9M,EAAQt5C,KAAK0lQ,iBACjB1lQ,KAAKqG,SAAS8xC,MAAMmB,MAAQA,EAAQ,MAExCqrN,EAAcpoQ,UAAUmpQ,eAAiB,WACrC,IAAI/iC,EAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACvE,GAAIswH,EAAa,CACb,IAAIgjC,EAAYhlK,EAAQ3gG,KAAKg1G,QAC7B,OAAI2wJ,EACO3lQ,KAAKm/I,iBAAiBxZ,kBAAkBv0B,GAAUqB,cACnDzyG,KAAKm/I,iBAAiBxZ,kBAAkBv0B,GAAUsB,aAClD1yG,KAAKm/I,iBAAiBxZ,kBAAkB,MAE3C,EAGX,OAAO3lI,KAAKm/I,iBAAiBxZ,kBAAkB3lI,KAAKg1G,SAExD2vJ,EAAcpoQ,UAAUsrO,0BAA4B,WAChD7nO,KAAK8nO,0BACL9nO,KAAK+2P,YAET4N,EAAcpoQ,UAAUqpQ,qBAAuB,WAC3C,IAAIjjC,EAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACvE,OAAOswH,EAAc3iO,KAAK6lQ,kCAAoC7lQ,KAAK8lQ,oCAEvEnB,EAAcpoQ,UAAUspQ,gCAAkC,WACtD,IAAI9lQ,EAAQC,KAEZ,GAAmB,MAAfA,KAAKg1G,OACL,MAAO,GAEX,IAAIygB,EAAkB,GAClBswI,EAAc/lQ,KAAKgmQ,iBAKvB,MAJA,CAAC50J,GAAUsB,YAAa,KAAMtB,GAAUqB,cAAcl0G,SAAQ,SAAUy2G,GACpE,IAAI8O,EAAQ/jH,EAAMo/I,iBAAiBtI,yBAAyB7hC,EAAQ+wJ,GACpEtwI,EAAkBA,EAAgB3hH,OAAOgwG,MAEtC2R,GAEXkvI,EAAcpoQ,UAAUypQ,eAAiB,WACrC,OAAOhmQ,KAAKP,MAAQkwO,GAAcs2B,gBAAkBjmQ,KAAKipH,KAAO,EAAIjpH,KAAKipH,MAE7E07I,EAAcpoQ,UAAUupQ,iCAAmC,WAEvD,OAAO9lQ,KAAKm/I,iBAAiBtI,yBAAyB72I,KAAKg1G,OAAQh1G,KAAKgmQ,mBAE5ErB,EAAcpoQ,UAAUurO,wBAA0B,WAC9C,IAAI/nO,EAAQC,KACRkmQ,EAAkBvpQ,OAAOsD,KAAKD,KAAK4kQ,aACnCuB,EAAgB,GAChBhrK,EAAUn7F,KAAK4lQ,uBACnBzqK,EAAQ58F,SAAQ,SAAUmiH,GAKtB,IAAIA,EAAM3J,eAAV,CAGA,IAAIqvJ,EAAY1lJ,EAAMtJ,cAClBivJ,EAAmBtmQ,EAAMsG,SAEzBigQ,EAAevmQ,EAAM6kQ,YAAYwB,GAKjCG,EAA2BD,GAAgBA,EAAav3H,aAAeruB,EAM3E,GALI6lJ,IACAxmQ,EAAMklQ,uBAAuB,CAACmB,IAC9BpiK,EAAgBkiK,EAAiBE,GACjCE,OAAejnQ,GAEfinQ,EAEAtiK,EAAgBkiK,EAAiBE,OAEhC,CAED,IAAIrK,EAAah8P,EAAMymQ,iBAAiB9lJ,GACxC3gH,EAAM6kQ,YAAYwB,GAAarK,EAC/BsK,EAAiB3rO,YAAYqhO,EAAW11P,UAE5C8/P,EAAc7mQ,KAAK8mQ,OAGvB,IAAIK,EAAwB,SAAU3jK,GAClC,IAAI19F,EAAUrF,EAAM6kQ,YAAY9hK,GAC5BymI,EAAYxpO,EAAMk6K,gBAAgBysF,uBAAuBthQ,GAC7D,IAAKmkO,EACD,OAAO,EAEX,IAAIjwF,EAAcv5I,EAAMo/I,iBAAiB7F,YAAYl0I,EAAQ2pI,aAC7D,OAAOuK,GAEPqtH,EAA2BT,EAAgB31K,OAAOk2K,GACtDE,EAAyBpoQ,SAAQ,SAAUukG,GACvCkB,EAAgBkiK,EAAiBpjK,GACjCqjK,EAAc7mQ,KAAKwjG,MAGvB9iG,KAAKilQ,uBAAuBiB,GAC5B,IAAI39G,EAAiBvoJ,KAAK8vG,mBAAmBm4G,mBAC7C,GAAI1/D,EAAgB,CAChB,IAAIq+G,EAAoBT,EAAc1+P,KAAI,SAAUuhD,GAAM,OAAOjpD,EAAM6kQ,YAAY57M,GAAI3iD,YACvFuiJ,GAAiB5oJ,KAAKqG,SAAUugQ,KAGxCjC,EAAcpoQ,UAAUiqQ,iBAAmB,SAAUK,GACjD,IAAIr4P,EACJ,OAAQxO,KAAKP,MACT,KAAKkwO,GAAcm3B,aACft4P,EAAS,IAAIuxP,GAAuB8G,EAAkB7mQ,KAAKg1G,QAC3D,MACJ,KAAK26H,GAAcs2B,gBACfz3P,EAAS,IAAIi0P,GAAsBoE,EAAkB7mQ,KAAKg1G,QAC1D,MACJ,QACIxmG,EAAS,IAAIgsP,GAAkBqM,EAAkB7mQ,KAAKg1G,QACtD,MAIR,OAFAh1G,KAAKkrG,WAAW18F,GAChBA,EAAO8hK,mBAAmBtwK,MACnBwO,GAEXm2P,EAAcpoQ,UAAUwqQ,eAAiB,WACrC,OAAO/mQ,KAAK4kQ,aAEhBH,GAAa,CACT71J,GAAU,qBACX+1J,EAAcpoQ,UAAW,wBAAoB,GAChDkoQ,GAAa,CACT71J,GAAU,oBACX+1J,EAAcpoQ,UAAW,uBAAmB,GAC/CkoQ,GAAa,CACTj2J,IACDm2J,EAAcpoQ,UAAW,4BAA6B,MACzDkoQ,GAAa,CACTn2J,IACDq2J,EAAcpoQ,UAAW,OAAQ,MAC7BooQ,EA/OuB,CAgPhC/kQ,IAQEonQ,GAAsD,SAAU3lQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DsiQ,GAAsC,WACtC,SAASA,EAAqBjyJ,EAAQmzC,GAClCnoJ,KAAKknQ,gBAAiB,EACtBlnQ,KAAKmnQ,iBAAkB,EACvBnnQ,KAAKg1G,OAASA,EACdh1G,KAAKmoJ,WAAaA,EAClBnoJ,KAAKonQ,iBAAmB3mK,EAAOuU,GAuXnC,OArXAiyJ,EAAqB1qQ,UAAU2I,KAAO,WAClC,IAAInF,EAAQC,KACZA,KAAKwqG,OAASxqG,KAAK6vG,cAActrG,OAAO,wBACxCvE,KAAKmoM,mBAAmBm+C,WAAU,WAC9BvmP,EAAMmoM,YAAcnoM,EAAMooM,mBAAmBC,4BAGrD6+D,EAAqB1qQ,UAAU0lM,YAAc,WACzC,OAAOjiM,KAAKg1G,OAAS0pF,GAAmB6G,YAAc7G,GAAmB8G,WAE7EyhE,EAAqB1qQ,UAAUulM,YAAc,SAAUnB,GAEnD,IAAIxlG,EAAUwlG,EAAcP,SAASjlG,QACjCksK,EAAwB1mE,EAAcnB,WAAW//L,OAASoP,EAAQ0vL,eAAe+oE,UACrF,GAAID,EAEArnQ,KAAK+mI,kBAAkB5rC,GAAS,EAAM,uBAErC,CAKD,IAAIosK,EAAiB5mE,EAAcP,SAAS49D,aACxCllH,GAAkB39C,GAAW,IAAI5K,QAAO,SAAU7oF,GAAU,OAAO6/P,EAAe7/P,EAAO2vG,YAC7Fr3G,KAAK+mI,kBAAkB+R,GAAgB,EAAM,mBAEjD94I,KAAKinI,iBAAiB9rC,EAASn7F,KAAKg1G,OAAQ,mBAC5Ch1G,KAAK6/L,WAAWc,GAAe,IAEnCsmE,EAAqB1qQ,UAAU2lM,YAAc,SAAUvB,GACnD,IAAI6mE,GAAoBxnQ,KAAK8vG,mBAAmBi2F,oCAAsCpF,EAAcG,UACpG,GAAI0mE,EAAkB,CAClB,IAAIpnE,EAAWO,EAAcnB,WAAWa,cACpCllG,EAAUilG,EAASjlG,QACvBn7F,KAAK+mI,kBAAkB5rC,GAAS,EAAO,mBAE3Cn7F,KAAKynQ,yBAETR,EAAqB1qQ,UAAUwqI,kBAAoB,SAAU5rC,EAAS4Z,EAASjQ,GAE3E,QADe,IAAXA,IAAqBA,EAAS,OAC9B3J,EAAS,CACT,IAAIusK,EAAcvsK,EAAQ5K,QAAO,SAAU7rF,GAAK,OAAQA,EAAEm4G,YAAY6C,eACtE1/G,KAAKm/I,iBAAiBpY,kBAAkB2gI,EAAa3yJ,EAASjQ,KAGtEmiK,EAAqB1qQ,UAAU0qI,iBAAmB,SAAU9rC,EAAS6Z,EAAQlQ,GAEzE,QADe,IAAXA,IAAqBA,EAAS,OAC9B3J,EAAS,CACT,IAAIusK,EAAcvsK,EAAQ5K,QAAO,SAAU7rF,GAAK,OAAQA,EAAEm4G,YAAY+C,cACtE5/G,KAAKm/I,iBAAiBlY,iBAAiBygI,EAAa1yJ,EAAQlQ,KAGpEmiK,EAAqB1qQ,UAAUqjM,WAAa,WACxC5/L,KAAKynQ,yBAETR,EAAqB1qQ,UAAUorQ,WAAa,SAAUx2P,GAElD,GAAInR,KAAK8vG,mBAAmB6Q,cAAe,CACvC,IAAImiC,EAAc9iJ,KAAKmoJ,WAAWrF,YAClC3xI,EAAI2xI,EAAc3xI,EAMtB,OAHInR,KAAKonQ,kBACLj2P,GAAKnR,KAAKmoM,mBAAmBy/D,2BAA2BC,+BAErD12P,GAEX81P,EAAqB1qQ,UAAUurQ,wBAA0B,SAAUC,GAC/D,GAAI/nQ,KAAKonQ,gBAAiB,CAGtB,IAAIY,EAAoBhoQ,KAAKmoM,mBAAmBy/D,2BAA2BC,8BACvEI,EAAmBD,EAAoBhoQ,KAAKmoM,mBAAmBy/D,2BAA2BM,iBAC1FloQ,KAAK8vG,mBAAmB6Q,eACxB3gH,KAAKmnQ,gBAAkBY,EAAsBC,EAAoB,GACjEhoQ,KAAKknQ,eAAiBa,EAAsBE,EAAmB,KAG/DjoQ,KAAKknQ,eAAiBa,EAAsBC,EAAoB,GAChEhoQ,KAAKmnQ,gBAAkBY,EAAsBE,EAAmB,IAEhEjoQ,KAAKknQ,gBAAkBlnQ,KAAKmnQ,gBAC5BnnQ,KAAKmoQ,wBAGLnoQ,KAAKynQ,0BAIjBR,EAAqB1qQ,UAAUsjM,WAAa,SAAUc,EAAeynE,GACjE,IAAIroQ,EAAQC,KAIZ,QAHkB,IAAdooQ,IAAwBA,GAAY,GACxCpoQ,KAAKqoQ,kBAAoB1nE,GAErBhgG,EAAQggG,EAAcI,YAA1B,CAGA,IAAIunE,EAAmBtoQ,KAAK2nQ,WAAWhnE,EAAcxvL,GAIhDi3P,GACDpoQ,KAAK8nQ,wBAAwBQ,GAEjC,IAAIC,EAAuBvoQ,KAAKwoQ,mBAAmB7nE,EAAcI,YAC7D0nE,EAAiB9nE,EAAcnB,WAAW//L,KAC1CokI,EAAgB88D,EAAcnB,WAAWa,cAAcllG,QAC3D0oC,EAAgBA,EAActzC,QAAO,SAAU7rD,GAC3C,OAAIA,EAAIm4E,YAAY+C,YAGTl7E,EAAI83E,aAAez8G,EAAMi1G,UAKxCh1G,KAAK0oQ,mBAAmBD,EAAgB5kI,EAAe0kI,EAAsBD,EAAkBF,KAEnGnB,EAAqB1qQ,UAAUisQ,mBAAqB,SAAUznE,GAC1D,IAAI/gM,KAAK8vG,mBAAmB6Q,cAQxB,OAAOogF,EAPP,OAAQA,GACJ,KAAKlyL,EAAQ4vL,oBAAoB8E,KAAM,OAAO10L,EAAQ4vL,oBAAoB+E,MAC1E,KAAK30L,EAAQ4vL,oBAAoB+E,MAAO,OAAO30L,EAAQ4vL,oBAAoB8E,KAC3E,QAAStgM,QAAQC,MAAM,8BAAgC69L,KASnEkmE,EAAqB1qQ,UAAUosQ,kBAAoB,SAAUC,GACzD,IAAIC,EAAW7oQ,KAAKm/I,iBAAiBnhB,oBACjCyM,EAAU7mC,EAAgBglK,EAAWnhQ,KAAI,SAAUi9B,GAAO,OAAOmkO,EAAS9nQ,QAAQ2jC,OAClFokO,EAAar+H,EAAQ,GACrB5/E,EAAYsxB,EAAKsuD,GACjBvF,EAASr6E,EAAYi+M,EACrBC,EAAY7jI,IAAWuF,EAAQhtI,OAAS,EAC5C,OAAOsrQ,EAAY,KAAOD,GAE9B7B,EAAqB1qQ,UAAUmsQ,mBAAqB,SAAUD,EAAgBO,EAAkBjoE,EAAYkoE,EAAQb,GAChH,IAAIc,EAAenoE,IAAelyL,EAAQ4vL,oBAAoB8E,KAC1D4lE,EAAgBpoE,IAAelyL,EAAQ4vL,oBAAoB+E,MAI3D4lE,EAA0BJ,EAAiB/0P,QAC/CjU,KAAKm/I,iBAAiB9a,2BAA2B+kI,GACjD,IAAIC,EAAarpQ,KAAKspQ,oBAAoBF,EAAyBD,EAAeF,GAG9EzhI,EAAWxnI,KAAK2oQ,kBAAkBS,GACtC,GAA0B,IAAtBC,EAAW5rQ,OAAf,CAGA,IAAI8rQ,EAAiBF,EAAW,GAS5BG,EAAkC,OAAbhiI,IAAsB4gI,EAK/C,GAHIK,GAAkB55P,EAAQ0vL,eAAeu/D,aACzC0L,EAAkC,OAAbhiI,GAErBgiI,EAAoB,CAEpB,GAAIN,GAAgBK,GAAkB/hI,EAClC,OAGJ,GAAI2hI,GAAiBI,GAAkB/hI,EACnC,OAGR,IAAK,IAAIjqI,EAAI,EAAGA,EAAI8rQ,EAAW5rQ,OAAQF,IAAK,CACxC,IAAIksQ,EAAOJ,EAAW9rQ,GACtB,GAAKyC,KAAKm/I,iBAAiBnb,kBAAkBolI,EAAyBK,GAKtE,YAFAzpQ,KAAKm/I,iBAAiBzb,YAAY0lI,EAAyBK,EAAM,sBAKzExC,EAAqB1qQ,UAAU+sQ,oBAAsB,SAAUV,EAAYO,EAAeF,GACtF,IAAIS,EAAgB1pQ,KAAK8vG,mBAAmBo9G,4BAA8B07C,EAAWn4K,MAAK,SAAU/rD,GAAO,OAAOA,EAAIm4E,YAAYghJ,mBAClI,GAAI6L,EACA,MAAO,GAGX,IAoCIH,EApCAI,EAAmB3pQ,KAAKm/I,iBAAiB5Y,oBAAoBvmI,KAAKg1G,QAGlE40J,EAAc5pQ,KAAKm/I,iBAAiBnhB,oBACpC6rI,EAAsBF,EAAiBp5K,QAAO,SAAU7rD,GAAO,OAAO86D,EAASopK,EAAYlkO,MAC3FolO,EAAqBH,EAAiBp5K,QAAO,SAAU7rD,GAAO,OAAQ86D,EAASopK,EAAYlkO,MAC3FqlO,EAAgBH,EAAYr5K,QAAO,SAAU7rD,GAAO,OAAQ86D,EAASopK,EAAYlkO,MAIjFslO,EAAe,EACfC,EAAiBhB,EAGrB,GAAIE,EAAe,CACf,IAAIe,EAA+B,EACnCL,EAAoBtrQ,SAAQ,SAAUmmC,GAAO,OAAOwlO,GAAgCxlO,EAAIw4E,oBACxF+sJ,GAAkBC,EAEtB,GAAID,EAAiB,EAAG,CAEpB,IAAK,IAAI1sQ,EAAI,EAAGA,EAAIusQ,EAAmBrsQ,OAAQF,IAAK,CAChD,IAAImnC,EAAMolO,EAAmBvsQ,GAE7B,GADA0sQ,GAAkBvlO,EAAIw4E,iBAClB+sJ,EAAiB,EACjB,MAEJD,IAGAb,GACAa,IAMR,GAAIA,EAAe,EAAG,CAClB,IAAIG,EAAaL,EAAmBE,EAAe,GACnDT,EAAiBQ,EAAchpQ,QAAQopQ,GAAc,OAGrDZ,EAAiBQ,EAAchpQ,QAAQ+oQ,EAAmB,KAClC,IAApBP,IACAA,EAAiB,GAGzB,IAAIF,EAAa,CAACE,GACda,EAAmB,SAAUz+P,EAAGxH,GAAK,OAAOwH,EAAIxH,GAWpD,GAAIglQ,EAAe,CAGf,IAAIljJ,EAAUsjJ,EAAiB,EAC3B1+M,EAAY++M,EAAYnsQ,OAAS,EACrC,MAAOwoH,GAAWp7D,EACdw+M,EAAW/pQ,KAAK2mH,GAChBA,IAGJojJ,EAAW96O,KAAK67O,OAEf,CAMGnkJ,EAAUsjJ,EACV1+M,EAAY++M,EAAYnsQ,OAAS,EADrC,IAEI4sQ,EAAeT,EAAY3jJ,GAC/B,MAAOA,GAAWp7D,GAAa7qD,KAAKsqQ,eAAeX,EAAkBU,GACjEpkJ,IACAojJ,EAAW/pQ,KAAK2mH,GAChBokJ,EAAeT,EAAY3jJ,GAG/BA,EAAUsjJ,EAAiB,EAC3B,IAAIgB,EAAoB,EACxB,MAAOtkJ,GAAWskJ,EACdlB,EAAW/pQ,KAAK2mH,GAChBA,IAGJojJ,EAAW96O,KAAK67O,GAAkB1lK,UAEtC,OAAO2kK,GAGXpC,EAAqB1qQ,UAAU+tQ,eAAiB,SAAU/0I,EAAkB7wF,GACxE,OAAO6wF,EAAiBx0H,QAAQ2jC,GAAO,GAE3CuiO,EAAqB1qQ,UAAU4rQ,sBAAwB,WAC9CnoQ,KAAKwqQ,mBACNxqQ,KAAKyqQ,cAAgB,EACrBzqQ,KAAK0qQ,mBAAqB,EAC1B1qQ,KAAKwqQ,iBAAmBj/P,OAAOy+F,YAAYhqG,KAAK2qQ,aAAalgQ,KAAKzK,MAAO,KACrEA,KAAKknQ,eACLlnQ,KAAKynM,mBAAmBzF,aAAatD,GAAmB+G,WAAW,GAGnEzlM,KAAKynM,mBAAmBzF,aAAatD,GAAmBgH,YAAY,KAIhFuhE,EAAqB1qQ,UAAUkrQ,sBAAwB,WAC/CznQ,KAAKwqQ,mBACLj/P,OAAOw+F,cAAc/pG,KAAKwqQ,kBAC1BxqQ,KAAKwqQ,iBAAmB,KACxBxqQ,KAAKynM,mBAAmBzF,aAAatD,GAAmB8G,aAGhEyhE,EAAqB1qQ,UAAUouQ,aAAe,WAG1C,IAAIC,EACJ5qQ,KAAKyqQ,gBACLG,EAAe,GAA2B,EAArB5qQ,KAAKyqQ,cACtBG,EAAe,MACfA,EAAe,KAEnB,IAAIC,EAAc,KACdC,EAAgB9qQ,KAAKkoM,YAAYylC,mBAOrC,GANI3tO,KAAKknQ,eACL2D,EAAcC,EAAcC,oBAAoBH,GAE3C5qQ,KAAKmnQ,kBACV0D,EAAcC,EAAcC,mBAAmBH,IAE/B,IAAhBC,EACA7qQ,KAAK6/L,WAAW7/L,KAAKqoQ,mBACrBroQ,KAAK0qQ,mBAAqB,MAEzB,CAGD1qQ,KAAK0qQ,qBACL,IAAIvvK,EAAUn7F,KAAKqoQ,kBAAkBjoE,SAASjlG,QAC1C6vK,EAAoB7vK,EAAQ5K,QAAO,SAAU7rF,GAAK,OAAQA,EAAEm4G,YAAY+C,cAC5E,GAAIorJ,EAAkBvtQ,OAAS,IAC3BuC,KAAKynM,mBAAmBzF,aAAatD,GAAmB6G,aACpDvlM,KAAK0qQ,mBAAqB,GAAG,CAC7B,IAAIO,EAAUjrQ,KAAKknQ,eAAiB91J,GAAUsB,YAActB,GAAUqB,aACtEzyG,KAAKinI,iBAAiB+jI,EAAmBC,EAAS,mBAClDjrQ,KAAKynM,mBAAmBvH,WAKxC8mE,GAAa,CACTp4J,GAAU,kBACXq4J,EAAqB1qQ,UAAW,qBAAiB,GACpDyqQ,GAAa,CACTp4J,GAAU,qBACXq4J,EAAqB1qQ,UAAW,wBAAoB,GACvDyqQ,GAAa,CACTp4J,GAAU,uBACXq4J,EAAqB1qQ,UAAW,0BAAsB,GACzDyqQ,GAAa,CACTp4J,GAAU,uBACXq4J,EAAqB1qQ,UAAW,0BAAsB,GACzDyqQ,GAAa,CACTp4J,GAAU,uBACXq4J,EAAqB1qQ,UAAW,0BAAsB,GACzDyqQ,GAAa,CACT14J,IACD24J,EAAqB1qQ,UAAW,OAAQ,MACpC0qQ,EA7X8B,GAsYrCiE,GAAsD,SAAU7pQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwmQ,GAAqC,WACrC,SAASA,EAAoBn2J,GACzBh1G,KAAKorQ,mBAAqB,GAC1BprQ,KAAKqrQ,eAAiB,GACtBrrQ,KAAKsrQ,eAAiB,GACtBtrQ,KAAKg1G,OAASA,EAuElB,OApEAm2J,EAAoB5uQ,UAAUulM,YAAc,SAAUnB,GAClD,IAAI5gM,EAAQC,KAGZ,GAFAA,KAAKurQ,oBAEDvrQ,KAAK8vG,mBAAmBsgH,sBAA5B,CAGA,IAAIo7C,EAAc7qE,EAAcP,SAASjlG,QACpCqwK,GAGLA,EAAYjtQ,SAAQ,SAAUmJ,GAErBA,EAAO4vG,cAGR5vG,EAAO+2G,wBAGP/2G,EAAOo3G,eACP/+G,EAAMqrQ,mBAAmB9rQ,KAAKoI,GAEzBA,EAAOm3G,kBACZ9+G,EAAMsrQ,eAAe/rQ,KAAKoI,GAErBA,EAAOk3G,gBACZ7+G,EAAMurQ,eAAehsQ,KAAKoI,UAItCyjQ,EAAoB5uQ,UAAU0lM,YAAc,WACxC,IAAIwpE,EAAezrQ,KAAKorQ,mBAAmB3tQ,OAASuC,KAAKqrQ,eAAe5tQ,OAASuC,KAAKsrQ,eAAe7tQ,OACrG,OAAIguQ,EAAe,EACRzrQ,KAAKg1G,OAAS0pF,GAAmB6G,YAAc7G,GAAmB8G,UAEtE,MAGX2lE,EAAoB5uQ,UAAU2lM,YAAc,SAAUvB,GAElD3gM,KAAKurQ,oBAETJ,EAAoB5uQ,UAAUgvQ,iBAAmB,WAC7CvrQ,KAAKorQ,mBAAmB3tQ,OAAS,EACjCuC,KAAKqrQ,eAAe5tQ,OAAS,EAC7BuC,KAAKsrQ,eAAe7tQ,OAAS,GAGjC0tQ,EAAoB5uQ,UAAUsjM,WAAa,SAAUc,KAGrDwqE,EAAoB5uQ,UAAUqjM,WAAa,SAAUe,GAC7C3gM,KAAKorQ,mBAAmB3tQ,OAAS,GACjCuC,KAAKm/I,iBAAiBhf,gBAAgBngI,KAAKorQ,mBAAoB,wBAE/DprQ,KAAKqrQ,eAAe5tQ,OAAS,GAC7BuC,KAAKm/I,iBAAiB9f,mBAAmBr/H,KAAKqrQ,eAAgB,wBAE9DrrQ,KAAKsrQ,eAAe7tQ,OAAS,GAC7BuC,KAAKm/I,iBAAiB3f,gBAAgBx/H,KAAKsrQ,eAAgB,yBAGnEJ,GAAa,CACTt8J,GAAU,qBACXu8J,EAAoB5uQ,UAAW,wBAAoB,GACtD2uQ,GAAa,CACTt8J,GAAU,uBACXu8J,EAAoB5uQ,UAAW,0BAAsB,GACjD4uQ,EA5E6B,GAqFpCO,GAAoD,WACpD,IAAIznQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDqnQ,GAAsD,SAAUtqQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAW+/P,GACPA,EAASA,EAAS,cAAgB,GAAK,aACvCA,EAASA,EAAS,SAAW,GAAK,SAFtC,CAGGA,KAAaA,GAAW,KAC3B,IAAIkH,GAAgC,SAAU/mQ,GAE1C,SAAS+mQ,EAAe52J,EAAQmzC,GAC5B,IAAIpoJ,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAIjC,OAHAD,EAAM8rQ,cAAgB,GACtB9rQ,EAAMi1G,OAASA,EACfj1G,EAAMooJ,WAAaA,EACZpoJ,EA0FX,OAhGA2rQ,GAAYE,EAAgB/mQ,GAQ5B+mQ,EAAervQ,UAAUwiJ,cAAgB,WACrC,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxC,IAAIg+L,EACJ,OAAQtiM,EAAMi1G,QACV,KAAK5D,GAAUsB,YACX2vF,EAAa,CAACh+L,EAAEynQ,oBAAqBznQ,EAAE0nQ,0BAA2B1nQ,EAAE2nQ,wBACpE,MACJ,KAAK56J,GAAUqB,aACX4vF,EAAa,CAACh+L,EAAE4nQ,qBAAsB5nQ,EAAE6nQ,2BAA4B7nQ,EAAE8nQ,yBACtE,MACJ,QACI9pE,EAAa,CAACh+L,EAAE+nQ,sBAAuB/nQ,EAAEgoQ,4BAA6BhoQ,EAAEioQ,0BACxE,MAERvsQ,EAAMwsQ,qBAAuBlqE,EAAW56L,KAAI,SAAU/C,GAAK,OAAOA,EAAE8nQ,6BAG5EZ,EAAervQ,UAAUsmM,eAAiB,SAAUpjM,GAChD,OAAOA,IAASoP,EAAQ0vL,eAAeu/D,YAClCr+P,IAASoP,EAAQ0vL,eAAe+oE,WAAatnQ,KAAK8vG,mBAAmBqxG,mCAE9EyqD,EAAervQ,UAAUgmM,uBAAyB,WAC9C,OAAOviM,KAAKusQ,sBAEhBX,EAAervQ,UAAUmlM,aAAe,WACpC,OAAO1hM,KAAKmoJ,YAEhByjH,EAAervQ,UAAU2I,KAAO,WAC5BlF,KAAKysQ,qBAAuBzsQ,KAAKkrG,WAAW,IAAI+7J,GAAqBjnQ,KAAKg1G,OAAQh1G,KAAKmoJ,aACvF,IAAIukH,EAAsB,IAAIvB,GAAoBnrQ,KAAKg1G,QACvDh1G,KAAKkrG,WAAWwhK,GAChB1sQ,KAAK6rQ,cAAcnH,GAASiI,YAAc3sQ,KAAKysQ,qBAC/CzsQ,KAAK6rQ,cAAcnH,GAASkI,OAASF,EACrC1sQ,KAAKynM,mBAAmB3E,cAAc9iM,OAE1C4rQ,EAAervQ,UAAU0lM,YAAc,WACnC,OAAOjiM,KAAK6sQ,oBAAoB5qE,eAKpC2pE,EAAervQ,UAAUuwQ,YAAc,SAAUnsE,GAC7C,OAAI3gM,KAAKm/I,iBAAiB5oB,eAIlBoqE,EAAcnB,WAAW//L,OAASoP,EAAQ0vL,eAAe+oE,UAClD5C,GAASkI,MAKjBlI,GAASiI,YAEpBf,EAAervQ,UAAUulM,YAAc,SAAUnB,GAK7C,IAAIosE,EAAW/sQ,KAAK8sQ,YAAYnsE,GAChC3gM,KAAK6sQ,oBAAsB7sQ,KAAK6rQ,cAAckB,GAC9C/sQ,KAAK6sQ,oBAAoB/qE,YAAYnB,IAEzCirE,EAAervQ,UAAU2lM,YAAc,SAAU9+L,GAC7CpD,KAAK6sQ,oBAAoB3qE,YAAY9+L,IAEzCwoQ,EAAervQ,UAAUsjM,WAAa,SAAUz8L,GAC5CpD,KAAK6sQ,oBAAoBhtE,WAAWz8L,IAExCwoQ,EAAervQ,UAAUqjM,WAAa,SAAUx8L,GAC5CpD,KAAK6sQ,oBAAoBjtE,WAAWx8L,IAExCuoQ,GAAa,CACT/8J,GAAU,uBACXg9J,EAAervQ,UAAW,0BAAsB,GACnDovQ,GAAa,CACT/8J,GAAU,qBACXg9J,EAAervQ,UAAW,wBAAoB,GACjDovQ,GAAa,CACT/8J,GAAU,uBACXg9J,EAAervQ,UAAW,0BAAsB,GACnDovQ,GAAa,CACTr9J,IACDs9J,EAAervQ,UAAW,gBAAiB,MAC9CovQ,GAAa,CACTr9J,IACDs9J,EAAervQ,UAAW,OAAQ,MAC9BqvQ,EAjGwB,CAkGjChlJ,IAQEomJ,GAAoD,WACpD,IAAI/oQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD2oQ,GAAsD,SAAU5rQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DuoQ,GAAiC,SAAUroQ,GAE3C,SAASqoQ,EAAgB/kH,EAAYglH,EAAWn4J,GAC5C,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAKjC,OAJAD,EAAMqtQ,eAAiB,GACvBrtQ,EAAMooJ,WAAaA,EACnBpoJ,EAAMi1G,OAASA,EACfj1G,EAAMotQ,UAAYA,EACXptQ,EAsKX,OA7KAitQ,GAAYE,EAAiBroQ,GAS7BqoQ,EAAgB3wQ,UAAUuoQ,qBAAuB,SAAUp/P,GACnD1F,KAAKotQ,gBACLptQ,KAAKotQ,eAAe7uQ,SAAQ,SAAUmG,GAAK,OAAOA,EAAEogQ,qBAAqBp/P,MAEzE1F,KAAKqtQ,gBACLrtQ,KAAKqtQ,eAAevI,qBAAqBp/P,GAEzC1F,KAAKstQ,gBACLttQ,KAAKstQ,eAAexI,qBAAqBp/P,IAGjDwnQ,EAAgB3wQ,UAAU2I,KAAO,WAG7BlF,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOO,2BAA4BltH,KAAKutQ,qBAAqB9iQ,KAAKzK,OAC7GA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqE,gCAAiChxH,KAAKwtQ,0BAA0B/iQ,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOa,qBAAsBxtH,KAAKylQ,gBAAgBh7P,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqD,8BAA+BhwH,KAAKytQ,wBAAwBhjQ,KAAKzK,OACnHA,KAAK0tQ,oBAETR,EAAgB3wQ,UAAUkpQ,gBAAkB,WACxCzlQ,KAAK2tQ,6BAETT,EAAgB3wQ,UAAUsrO,0BAA4B,WAClD7nO,KAAK2tQ,6BAETT,EAAgB3wQ,UAAUixQ,0BAA4B,WAClDxtQ,KAAK2tQ,6BAETT,EAAgB3wQ,UAAUkxQ,wBAA0B,WAChDztQ,KAAK2tQ,6BAETT,EAAgB3wQ,UAAUoxQ,0BAA4B,WAClD,IAAInhB,EAAcxsP,KAAKg1G,SAAW5D,GAAUsB,YACxC+5I,EAAezsP,KAAKg1G,SAAW5D,GAAUqB,aACzCm7J,EAAa5tQ,KAAKm/I,iBAClBxE,EAAQ36I,KAAK8vG,mBAAmB6Q,cAChCu2G,EAAiBl3N,KAAK8vG,mBAAmByyC,oBAC7C,GAAIiqG,GAAeC,EAAc,CAE7B,IAAInzM,EAAQs0N,EAAWphB,EAAc,+BAAiC,mCAIlEqhB,EAAyB7tQ,KAAK8tQ,qBAAqBvkH,4BAA+B5O,GAAS6xG,IAAkB7xG,GAAS8xG,GACtHohB,IACAv0N,GAAS49K,GAEbvtE,GAAc3pJ,KAAKmoJ,WAAY7uG,KAGvC4zN,EAAgB3wQ,UAAUwxQ,YAAc,WACpC,IAAIzwO,EAAM,GAUV,OATIt9B,KAAKotQ,iBACL9vO,EAAMA,EAAIxpB,OAAO9T,KAAKotQ,iBAEtBptQ,KAAKqtQ,gBACL/vO,EAAIh+B,KAAKU,KAAKqtQ,gBAEdrtQ,KAAKstQ,gBACLhwO,EAAIh+B,KAAKU,KAAKstQ,gBAEXhwO,GAIX4vO,EAAgB3wQ,UAAUgxQ,qBAAuB,WAC7CvtQ,KAAKu4F,SAAQ,IAGjB20K,EAAgB3wQ,UAAUg8F,QAAU,SAAUy1K,QACtB,IAAhBA,IAA0BA,GAAc,GAC5ChuQ,KAAKiuQ,gBAAgBD,IAEzBd,EAAgB3wQ,UAAUmxQ,iBAAmB,WAEzC,IAAIQ,EAAgBluQ,KAAKmtQ,UAAYntQ,KAAKmtQ,UAAYntQ,KAAKmoJ,WACvDgmH,EAAiB,IAAIvC,GAAe5rQ,KAAKg1G,OAAQk5J,GACrDluQ,KAAKsnH,kBAAkB6mJ,IAE3BjB,EAAgB3wQ,UAAU6xQ,gBAAkB,SAAUJ,QAC9B,IAAhBA,IAA0BA,GAAc,GAC5ChuQ,KAAKotQ,eAAe7uQ,QAAQyB,KAAKquQ,eAAe5jQ,KAAKzK,OACrDA,KAAKotQ,eAAiB,GACtBptQ,KAAKquQ,eAAeruQ,KAAKstQ,gBACzBttQ,KAAKstQ,oBAAiBjuQ,EACjB2uQ,IACDhuQ,KAAKquQ,eAAeruQ,KAAKqtQ,gBACzBrtQ,KAAKqtQ,oBAAiBhuQ,IAG9B6tQ,EAAgB3wQ,UAAU8xQ,eAAiB,SAAUnqC,GAC7CA,IACAlkO,KAAK8tG,YAAYo2H,GACjBlkO,KAAKmoJ,WAAWvtH,YAAYspM,EAAQ79N,YAG5C6mQ,EAAgB3wQ,UAAU0xQ,gBAAkB,SAAUD,GAClD,IAAIjuQ,EAAQC,UACQ,IAAhBguQ,IAA0BA,GAAc,GAC5C,IAAIM,EAAW,IAAI/kG,GACfglG,EAAsB,WACtB,IAAIC,EAAgBzuQ,EAAMo/I,iBAAiB3iB,oBAAsB,EACjEz8H,EAAMqtQ,eAAe7uQ,QAAQwB,EAAMsuQ,eAAe5jQ,KAAK1K,IACvDA,EAAMqtQ,eAAiB,GACvB,IAAK,IAAI7vQ,EAAI,EAAGA,EAAIixQ,EAAejxQ,IAAK,CACpC,IAAI2mO,EAAUnkO,EAAMmrG,WAAW,IAAIy5J,GAAc2J,EAASrrO,OAAQ0sM,GAAcm3B,aAAc/mQ,EAAMi1G,SACpGj1G,EAAMqtQ,eAAe9tQ,KAAK4kO,KAG9BuqC,EAAiB,WACjB,IAAI7uH,EAAW0uH,EAASrrO,OACxB,GAAIljC,EAAMstQ,eAAgB,CACtB,IAAIqB,EAAmB3uQ,EAAMstQ,eAAerQ,gBAAkBp9G,EACzDouH,IAAeU,IAChB3uQ,EAAMsuQ,eAAetuQ,EAAMstQ,gBAC3BttQ,EAAMstQ,oBAAiBhuQ,GAG1BU,EAAMstQ,iBACPttQ,EAAMstQ,eAAiBttQ,EAAMmrG,WAAW,IAAIy5J,GAAc/kH,EAAU+vF,GAAcg/B,OAAQ5uQ,EAAMi1G,WAGpG45J,EAAiB,WACjB,IAAIC,GAAyB9uQ,EAAMo/I,iBAAiB5oB,eAAiBx2H,EAAMo/I,iBAAiB3E,qBACxFs0H,EAAsB,WACtB/uQ,EAAMsuQ,eAAetuQ,EAAMutQ,gBAC3BvtQ,EAAMutQ,oBAAiBjuQ,GAE3B,GAAKwvQ,EAAL,CAIA,IAAIjvH,EAAW0uH,EAASrrO,OACxB,GAAIljC,EAAMutQ,eAAgB,CACtB,IAAIoB,EAAmB3uQ,EAAMutQ,eAAetQ,gBAAkBp9G,EACzDouH,IAAeU,GAChBI,IAGH/uQ,EAAMutQ,iBACPvtQ,EAAMutQ,eAAiBvtQ,EAAMmrG,WAAW,IAAIy5J,GAAc/kH,EAAU+vF,GAAcs2B,gBAAiBlmQ,EAAMi1G,eAXzG85J,KAcRP,IACAE,IACAG,IAGA5uQ,KAAK+tQ,cAAcxvQ,SAAQ,SAAU2lO,GAAW,OAAOnkO,EAAMooJ,WAAWztH,YAAYwpM,EAAQ79N,cAEhG4mQ,GAAa,CACTr+J,GAAU,qBACXs+J,EAAgB3wQ,UAAW,wBAAoB,GAClD0wQ,GAAa,CACTr+J,GAAU,yBACXs+J,EAAgB3wQ,UAAW,4BAAwB,GACtD0wQ,GAAa,CACT3+J,IACD4+J,EAAgB3wQ,UAAW,OAAQ,MACtC0wQ,GAAa,CACTz+J,IACD0+J,EAAgB3wQ,UAAW,kBAAmB,MAC1C2wQ,EA9KyB,CA+KlCtmJ,IAQEmoJ,GAAoD,WACpD,IAAI9qQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD0qQ,GAAsD,SAAU3tQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAEhE,SAAWsqQ,GACPA,EAA0BA,EAA0B,MAAQ,GAAK,KACjEA,EAA0BA,EAA0B,QAAU,GAAK,OACnEA,EAA0BA,EAA0B,QAAU,GAAK,OACnEA,EAA0BA,EAA0B,SAAW,GAAK,SAJxE,CAKGpgQ,EAAQogQ,4BAA8BpgQ,EAAQogQ,0BAA4B,KAC7E,IAAIC,GAAyC,SAAUrqQ,GAEnD,SAASqqQ,IACL,OAAkB,OAAXrqQ,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAyJ/D,OA3JA+uQ,GAAYG,EAAyBrqQ,GAIrCqqQ,EAAwB3yQ,UAAUwiJ,cAAgB,WAC9C,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMmoM,YAAc7jM,EAAE6jM,gBAG9BgnE,EAAwB3yQ,UAAU4yQ,mBAAqB,SAAUC,GAC7DpvQ,KAAKovQ,WAAaA,GAEtBF,EAAwB3yQ,UAAUigI,kBAAoB,WAClD,IAAI6yI,EAAmBrvQ,KAAKovQ,WAAWE,sBACvC,OAAiC,IAA1BD,EAAiBzjP,KAAa,EAAI5rB,KAAKuvQ,qBAAqBxB,cAActwQ,QAErFyxQ,EAAwB3yQ,UAAUizQ,iBAAmB,SAAUtwP,GAC3D,GAAIlf,KAAKw8H,oBACL,OAAOx8H,KAAKuvQ,qBAAqBxB,cAAc7uP,GAAKy9J,WAG5DuyF,EAAwB3yQ,UAAUgzQ,mBAAqB,SAAU3sH,GAK7D,YAJiB,IAAbA,IAAuBA,EAAW,UACrB,OAAbA,IACAA,EAAW,UAER5iJ,KAAKovQ,WAAWE,sBAAsBjvQ,IAAIuiJ,IAMrDssH,EAAwB3yQ,UAAUkzQ,mBAAqB,SAAU7nI,EAAW8nI,EAAYtoQ,GAIpF,GAHKsoQ,IACDA,EAAa1vQ,KAAKi6K,gBAAgBo4E,qBAEjCqd,EACD,OAAO,EAEX,IAAIjvH,EAAiBivH,EAAWjvH,eAAgB/4I,EAASgoQ,EAAWhoQ,OAChEioQ,EAAS3vQ,KAAKw8H,oBACdozI,EAAOhoI,IAAc/4H,EAAQogQ,0BAA0B56F,GACvDw7F,EAAUD,EAAOnvH,EAAiB,EAAIA,EAAiB,EACvDqvH,EAAkB,KAClBC,GAAa,EACbF,EAAU,IACVA,EAAU,EACVC,EAAkBpoQ,EAClBqoQ,GAAa,GAEbF,GAAWF,IACXE,GAAW,GAEf,IAAIG,EAAiBhwQ,KAAKwvQ,iBAAiB/uH,GAC3C,IAAKsvH,EAAY,CACb,GAAIC,IAAmBrgC,GAAcm3B,aAAc,CAC/C,IAAIttI,EAAgB9xH,EACpBooQ,EAAkBF,EAAOloQ,EAAOguG,YAAc8jB,EAAchY,uBAAuB,QAElF,GAAIwuJ,IAAmBrgC,GAAcs2B,gBACtC6J,EAAkBpoQ,MAEjB,CACG8xH,EAAgB9xH,EACpBooQ,EAAkBF,EAAOp2I,EAAc9jB,YAAc8jB,EAEzD,IAAKs2I,EACD,OAAO,EAGf,OAAO9vQ,KAAKi6K,gBAAgBy2E,oBAAoB,CAAEjwG,eAAgBovH,EAASnoQ,OAAQooQ,QAAmBzwQ,GAAW,GAAO,EAAM+H,IAMlI8nQ,EAAwB3yQ,UAAU0zQ,qBAAuB,SAAUroI,EAAWsoI,EAAS9oQ,QACnE,IAAZ8oQ,IAAsBA,GAAU,GACpC,IAGIC,EACAC,EAJAC,EAAgBrwQ,KAAKi6K,gBAAgBo4E,mBACrCnO,EAASt8G,IAAc/4H,EAAQogQ,0BAA0B76F,KACzDz5B,EAAQ36I,KAAK8vG,mBAAmB6Q,cAYpC,OARIujI,IAAWvpG,GACXy1H,EAAsB,SACtBD,EAAanwQ,KAAKswQ,oBAAoBC,WAAWF,EAAeD,KAGhEA,EAAsB,QACtBD,EAAanwQ,KAAKswQ,oBAAoBC,WAAWF,EAAeD,IAEhED,EACOnwQ,KAAKi6K,gBAAgBy2E,oBAAoByf,EAAYC,EAAqBF,GAAS,EAAM9oQ,IAE/F8oQ,GAGElwQ,KAAKwwQ,mBAAmBH,EAAeD,EAAqBhpQ,IAEvE8nQ,EAAwB3yQ,UAAUi0Q,mBAAqB,SAAUH,EAAezoI,EAAWxgI,GACvF,IAEIqpQ,EAFAC,EAAeL,EAAc5vH,eAC7BkwH,EAAe,KAYnB,MAVkB,WAAd/oI,EACI8oI,EAAe,IACfD,EAAeC,EAAe,EAC9BC,EAAe3wQ,KAAKswQ,oBAAoBM,0BAA0BH,EAAc,SAIpFA,EAAeC,EAAe,EAC9BC,EAAe3wQ,KAAKswQ,oBAAoBM,0BAA0BH,EAAc,UAE7EzwQ,KAAKi6K,gBAAgBy2E,oBAAoBigB,EAAc/oI,GAAW,GAAM,EAAMxgI,IAEzF8nQ,EAAwB3yQ,UAAUs0Q,eAAiB,SAAUnpQ,EAAQkgI,GAEjE,QADkB,IAAdA,IAAwBA,EAAY,UACpClgI,EAAO80G,YAAX,CAGA,IAAIs0J,EACJ,GAAIppQ,aAAkBo4G,GAAa,CAC/B,IAAI3kB,EAAUzzF,EAAOg6G,0BACrBovJ,EAAiC,WAAdlpI,EAAyBzrD,EAAKgf,GAAWA,EAAQ,QAGpE21K,EAAmBppQ,EAEvB1H,KAAKkoM,YAAYylC,mBAAmB0jB,oBAAoByf,GAGxD9wQ,KAAKkoM,YAAYylC,mBAAmB2jB,kDAEpCtxP,KAAK66H,sBAAsBC,mBAE/Bk0I,GAAa,CACTpgK,GAAU,oBACXsgK,EAAwB3yQ,UAAW,uBAAmB,GACzDyyQ,GAAa,CACTpgK,GAAU,wBACXsgK,EAAwB3yQ,UAAW,2BAAuB,GAC7DyyQ,GAAa,CACTpgK,GAAU,0BACXsgK,EAAwB3yQ,UAAW,6BAAyB,GAC/DyyQ,GAAa,CACTpgK,GAAU,uBACXsgK,EAAwB3yQ,UAAW,0BAAsB,GAC5DyyQ,GAAa,CACT1gK,IACD4gK,EAAwB3yQ,UAAW,gBAAiB,MACvD2yQ,EAA0BF,GAAa,CACnCtgK,GAAK,4BACNwgK,GACIA,EA5JiC,CA6J1CtoJ,IAQEmqJ,GAAyB,WACzB,SAASA,KA0BT,OAxBAA,EAAQj9F,UAAY,YACpBi9F,EAAQh9F,IAAM,MACdg9F,EAAQ/8F,MAAQ,QAChB+8F,EAAQ98F,MAAQ,QAChB88F,EAAQ78F,OAAS,SACjB68F,EAAQ58F,MAAQ,IAChB48F,EAAQ38F,KAAO,YACf28F,EAAQ18F,GAAK,UACb08F,EAAQz8F,MAAQ,aAChBy8F,EAAQx8F,KAAO,YACfw8F,EAAQv8F,OAAS,SAEjBu8F,EAAQC,eAAiB,MACzBD,EAAQ51P,EAAI,IACZ41P,EAAQnqP,EAAI,IACZmqP,EAAQnzP,EAAI,IACZmzP,EAAQt2P,EAAI,IACZs2P,EAAQ5pP,EAAI,IACZ4pP,EAAQjsP,EAAI,IACZisP,EAAQt8F,GAAK,KACbs8F,EAAQr8F,QAAU,SAClBq8F,EAAQp8F,UAAY,WACpBo8F,EAAQn8F,UAAY,OACpBm8F,EAAQl8F,SAAW,MACZk8F,EA3BiB,GAoCxBE,GAAoD,WACpD,IAAIhtQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapD4sQ,GAAsD,SAAU7vQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwsQ,GAAoC,SAAUtsQ,GAE9C,SAASssQ,EAAmBzrQ,GACxB,IAAI3F,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAM2F,SAAWA,EACV3F,EAwBX,OA5BAkxQ,GAAYE,EAAoBtsQ,GAMhCssQ,EAAmB50Q,UAAUwiJ,cAAgB,WACzC,IAAItuC,EAAWzwG,KAAK+2P,SAAStsP,KAAKzK,MAClCA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiBntG,GACrFzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiChd,GACnFzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuCtgB,GACzFzwG,KAAK+2P,YAEToa,EAAmB50Q,UAAUw6P,SAAW,WACpC,IAAI53G,EAAmBn/I,KAAKm/I,iBACxBwjF,EAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACnE++J,EAAcjyH,EAAiBzZ,wBAC/B1P,EAAYmpB,EAAiB5gB,+BAC7BtI,EAAakpB,EAAiB1gB,gCAC9B4yI,EAAa1uC,EAAcyuC,EAAcp7I,EAAYC,EAAam7I,EACtEpxQ,KAAK0F,SAAS2rQ,IAElBH,GAAa,CACTtiK,GAAU,qBACXuiK,EAAmB50Q,UAAW,wBAAoB,GACrD20Q,GAAa,CACT5iK,IACD6iK,EAAmB50Q,UAAW,gBAAiB,MAC3C40Q,EA7B4B,CA8BrCvqJ,IAQE0qJ,GAAoD,WACpD,IAAIrtQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV/B,GAapDitQ,GAAsD,SAAUlwQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D6sQ,GAAgC,SAAU3sQ,GAE1C,SAAS2sQ,IACL,IAAIzxQ,EAAQ8E,EAAOjH,KAAKoC,KAAMwxQ,EAAev8F,WAAaj1K,KAE1D,OADAD,EAAMsvQ,iBAAmB,IAAI/3L,IACtBv3E,EAqMX,OAzMAuxQ,GAAYE,EAAgB3sQ,GAM5B2sQ,EAAej1Q,UAAUwiJ,cAAgB,WACrC,IAAIh/I,EAAQC,KACZ6E,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAK2iO,YAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACxEryG,KAAKi/F,QAAQwyK,uBAAuBzxQ,MACpCA,KAAKo7H,oBAAoBq2I,uBAAuBzxQ,MAChDA,KAAK0xQ,wBAAwB,IAAIxE,GAAgBltQ,KAAK2xQ,iBAAkB3xQ,KAAK4xQ,gBAAiB,MAAO,UACrG5xQ,KAAK0xQ,wBAAwB,IAAIxE,GAAgBltQ,KAAK6xQ,kBAAmB,KAAMzgK,GAAUsB,aAAc,QACvG1yG,KAAK0xQ,wBAAwB,IAAIxE,GAAgBltQ,KAAK8xQ,mBAAoB,KAAM1gK,GAAUqB,cAAe,SACzGzyG,KAAKqvQ,iBAAiB9wQ,SAAQ,SAAUs8I,GAAa,OAAO96I,EAAMunH,kBAAkBuzB,MACpF76I,KAAKmvO,wBAAwBggC,mBAAmBnvQ,MAEhDA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiB59M,KAAKymP,mBAAmBh8O,KAAKzK,OAElHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOG,gCAAiC9sH,KAAK+xQ,mBAAmBtnQ,KAAKzK,OAChHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO0E,gCAAiCrxH,KAAKgyQ,yBAAyBvnQ,KAAKzK,OACtHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2E,iCAAkCtxH,KAAKiyQ,0BAA0BxnQ,KAAKzK,OACxHA,KAAK+xQ,qBACL/xQ,KAAKkyQ,yBACLlyQ,KAAKsnH,kBAAkB,IAAI6pJ,IAAmB,SAAU73N,GAAS,OAAOv5C,EAAM4xQ,iBAAiBx5N,MAAMmB,MAAQA,EAAQ,SACjHt5C,KAAKm/I,iBAAiBrO,WACtB9wI,KAAKmyQ,gBAETnyQ,KAAKoyQ,oBACLpyQ,KAAKmoM,mBAAmBspE,uBAAuBzxQ,OAEnDwxQ,EAAej1Q,UAAU61Q,kBAAoB,WACzC,IAAI3hK,EAAWzwG,KAAKguJ,gBAAgBvjJ,KAAKzK,MACzCywG,IACAzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB6b,mBAAoBxoH,GACxFzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBgc,yBAA0B3oH,GAC9FzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBkc,yBAA0B7oH,GAC9FzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBmc,+BAAgC9oH,GACpGzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB0c,6BAA8BrpH,GAClGzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiChd,IAEvF+gK,EAAej1Q,UAAUm1Q,wBAA0B,SAAUW,EAAiB5yQ,GAC1EO,KAAKqvQ,iBAAiB/uQ,IAAIb,EAAM4yQ,IAEpCb,EAAej1Q,UAAU69K,aAAe,SAAU5tK,GAC9C,IAAImuI,EAAQ36I,KAAK8vG,mBAAmB6Q,cAChCinB,EAAYp7H,EAAEo0H,WAAa+Z,EACzB9rI,EAAQogQ,0BAA0B76F,KAClCvlK,EAAQogQ,0BAA0B36F,OACpCt0K,KAAKmvO,wBAAwB8gC,qBAAqBroI,GAAW,EAAMp7H,IACnExM,KAAKi6K,gBAAgB83E,2BAA2BvlP,EAAEo0H,YAClDp0H,EAAEmpK,kBAGV67F,EAAej1Q,UAAU0+K,cAAgB,SAAUzuK,GAC/C,IAAIo7H,EAAY,KAChB,OAAQp7H,EAAE/P,KACN,KAAKs0Q,GAAQ38F,KACTxsC,EAAY/4H,EAAQogQ,0BAA0B76F,KAClD,KAAK28F,GAAQz8F,MACJ7zE,EAAOmnC,KACRA,EAAY/4H,EAAQogQ,0BAA0B36F,OAElDt0K,KAAKmvO,wBAAwB8gC,qBAAqBroI,GAAW,EAAOp7H,GACpE,MACJ,KAAKukQ,GAAQ18F,GACTzsC,EAAY/4H,EAAQogQ,0BAA0B56F,GAClD,KAAK08F,GAAQx8F,KACJ9zE,EAAOmnC,KACRA,EAAY/4H,EAAQogQ,0BAA0B16F,MAE9Cv0K,KAAKmvO,wBAAwBsgC,mBAAmB7nI,EAAW,KAAMp7H,IACjEA,EAAEmpK,iBAEN,MACJ,QACI,SAGZ67F,EAAej1Q,UAAUu9K,WAAa,SAAUttK,GAC5C,IAAIiuK,EAAgBjuK,EAAEiuK,cAClB7M,EAAO5tK,KAAKqG,UACXo0K,GAAiB7M,EAAKhzE,SAASjuF,SAAS+nM,gBAGxC9mC,EAAKhzE,SAAS6/E,IACfz6K,KAAKi6K,gBAAgBq4F,sBAG7Bd,EAAej1Q,UAAUkqP,mBAAqB,WAC1C,IAAI/pI,EAAW18G,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBAChEryG,KAAK2iO,cAAgBjmH,IACrB18G,KAAK2iO,YAAcjmH,EACnB18G,KAAKmyQ,kBAGbX,EAAej1Q,UAAUg2Q,oBAAsB,SAAUnlP,GACrDptB,KAAK2xQ,iBAAiBx5N,MAAMouD,UAAY,cAAgBn5E,EAAS,OAErEokP,EAAej1Q,UAAUuoQ,qBAAuB,SAAUp/P,GACtD1F,KAAKqvQ,iBAAiB9wQ,SAAQ,SAAUi0Q,GAAkB,OAAOA,EAAe1N,qBAAqBp/P,OAEzG8rQ,EAAej1Q,UAAU41Q,cAAgB,WACrCnyQ,KAAKqvQ,iBAAiB9wQ,SAAQ,SAAUs8I,GAAa,OAAOA,EAAUtiD,cAE1Ei5K,EAAej1Q,UAAUw1Q,mBAAqB,WAC1C,IAAIv2K,EAAYx7F,KAAKm/I,iBAAiB5oB,cACtC8tB,GAAoBrkJ,KAAKqG,SAAU,cAAem1F,GAClD6oD,GAAoBrkJ,KAAKqG,SAAU,gBAAiBm1F,IAExDg2K,EAAej1Q,UAAUyxJ,gBAAkB,WACvC,IAGIykH,EACArN,EACAr3G,EALAzgE,EAAKttF,KAAMm/I,EAAmB7xD,EAAG6xD,iBAAkBrvC,EAAqBxiB,EAAGwiB,mBAC3Ew1J,EAAmB,EACnBpmH,EAAiBC,EAAiB3iB,oBAItC,GAAI2iB,EAAiB5oB,cACjB6uI,EAAct1J,EAAmBsmH,4BACjCroE,EAAej+C,EAAmBomH,2BAEjC,CACD,IAAI17E,EAAqB2E,EAAiB3E,qBACtCA,IACA0E,IACAomH,EAAmB,GAEvBF,EAAct1J,EAAmBkmH,uBACjCjoE,EAAej+C,EAAmB8lH,kBAEtC,IAAI2vC,EAAoB,EAAID,EACxBE,EAAiBtmH,EAAiBqmH,EACtCkN,EAAoBnN,EAAmBx1J,EAAmBgmH,2BAC1D28C,GAAqBjN,EAAiBJ,EACtCqN,GAAqB1kH,EAGrB,IAAI7iG,EAAKunN,EAAoB,EAAI,KACjCzyQ,KAAKqG,SAAS8xC,MAAMyiC,OAAS1vB,EAC7BlrD,KAAKqG,SAAS8xC,MAAM6xG,UAAY9+F,GAKpCsmN,EAAej1Q,UAAU21Q,uBAAyB,WAC9C,IAAInyQ,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAK4xQ,gBAAiB,UAAU,WAIpD,IAAItqH,EAAavnJ,EAAM6xQ,gBAAgBtqH,WACvC,GAAmB,IAAfA,EAAkB,CAClB,IAAI4gD,EAAcnoM,EAAMooM,mBAAmBC,wBAC3CF,EAAYylC,mBAAmBo9B,mBAAmBzjH,GAClDvnJ,EAAM6xQ,gBAAgBtqH,WAAa,OAI/CkqH,EAAej1Q,UAAU+yQ,oBAAsB,WAC3C,OAAOtvQ,KAAKqvQ,kBAEhBmC,EAAej1Q,UAAUy1Q,yBAA2B,WAChD,IAAIvsH,EAAYzlJ,KAAK0yQ,mBAAmBC,qBAAuB,EAC/DntH,GAAaxlJ,KAAK6xQ,kBAAmBpsH,IAEzC+rH,EAAej1Q,UAAU01Q,0BAA4B,WACjD,IAAIxsH,EAAYzlJ,KAAK0yQ,mBAAmBE,sBAAwB,EAChEptH,GAAaxlJ,KAAK8xQ,mBAAoBrsH,IAE1C+rH,EAAev8F,SAAW,kdAC1Bs8F,GAAa,CACTn+F,GAAY,sBACbo+F,EAAej1Q,UAAW,yBAAqB,GAClDg1Q,GAAa,CACTn+F,GAAY,uBACbo+F,EAAej1Q,UAAW,0BAAsB,GACnDg1Q,GAAa,CACTn+F,GAAY,qBACbo+F,EAAej1Q,UAAW,wBAAoB,GACjDg1Q,GAAa,CACTn+F,GAAY,oBACbo+F,EAAej1Q,UAAW,uBAAmB,GAChDg1Q,GAAa,CACT3iK,GAAU,qBACX4iK,EAAej1Q,UAAW,wBAAoB,GACjDg1Q,GAAa,CACT3iK,GAAU,YACX4iK,EAAej1Q,UAAW,eAAW,GACxCg1Q,GAAa,CACT3iK,GAAU,wBACX4iK,EAAej1Q,UAAW,2BAAuB,GACpDg1Q,GAAa,CACT3iK,GAAU,4BACX4iK,EAAej1Q,UAAW,+BAA2B,GACxDg1Q,GAAa,CACT3iK,GAAU,uBACX4iK,EAAej1Q,UAAW,0BAAsB,GACnDg1Q,GAAa,CACT3iK,GAAU,uBACX4iK,EAAej1Q,UAAW,0BAAsB,GAC5Ci1Q,EA1MwB,CA2MjCz4F,IAQE85F,GAAqD,WACrD,IAAI5uQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwuQ,GAAkD,WASlD,OARAA,GAAan2Q,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJi+P,GAAW1wQ,MAAMpC,KAAMW,YAE9BoyQ,GAAsD,SAAU1xQ,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DquQ,GAA+B,SAAUnuQ,GAEzC,SAASmuQ,IACL,IAAIjzQ,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAWhE,OAVAD,EAAMkzQ,mBAAqB,IAAI37L,IAC/Bv3E,EAAMmzQ,sBAAwB,GAC9BnzQ,EAAMozQ,YAAc,KACpBpzQ,EAAMqzQ,iBAAmB,KAMzBrzQ,EAAMo4O,wBAAyB,EACxBp4O,EA+ZX,IAAIszQ,EAmCJ,OA/cAR,GAAaG,EAAenuQ,GAe5BwuQ,EAAkBL,EAClBA,EAAcz2Q,UAAU2I,KAAO,WAC3BlF,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOkB,uBAAwB7tH,KAAK2+K,gBAAgBl0K,KAAKzK,OACpGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKu3O,mBAAmB9sO,KAAKzK,OACzGA,KAAKmzQ,YAAcnzQ,KAAKszQ,iBAAiBtzQ,KAAK8vG,mBAAmBm1G,sBACjEjlN,KAAKuzQ,sBACLvzQ,KAAKkxN,2BAA6BlxN,KAAK8vG,mBAAmBmhH,gCAE9D+hD,EAAcz2Q,UAAUg3Q,oBAAsB,WAC1CvzQ,KAAKozQ,iBAAmBpzQ,KAAKmzQ,YAAcnzQ,KAAKmzQ,YAAY9/P,MAAM,KAAO,MAE7E2/P,EAAcz2Q,UAAUi3Q,eAAiB,SAAUtsQ,GAC/C,IAAInH,EAAQC,KACRyzQ,EAAc,GAClB,GAAIvsQ,EAAO,CAEP,IAAIwsQ,EAActqG,GAAazsK,OAAOsD,KAAKiH,IAC3ClH,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,EAAe7wK,GACrD,IAAIs7E,EAAWl3K,EAAM47F,GACrB2wK,EAAYn0Q,KAAKS,EAAM6zQ,wBAAwBD,EAAcE,cAAez1F,IAC5Es1F,EAAY/iK,OAAO7N,MAGvB4wK,EAAYn1Q,SAAQ,SAAUukG,GAC1B,IAAIp7F,EAAS3H,EAAMo/I,iBAAiB/kB,iBAAiBt3B,GACrD,GAAKp7F,EAAL,CAIA,IAAIisQ,EAAgB5zQ,EAAM+zQ,yBAAyBpsQ,EAAQ,SAC3D+rQ,EAAYn0Q,KAAKS,EAAM6zQ,wBAAwBD,EAAcE,cAAe3sQ,EAAM47F,UAJ9E7/F,QAAQkD,KAAK,8DAAgE28F,WAQrF9iG,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtCF,EAAYn0Q,KAAKS,EAAM6zQ,wBAAwBD,EAAcE,cAAe,UAGpF/pG,GAAUM,IAAIqpG,GAAa93G,MAAK,WAAc,OAAO57J,EAAM67K,sBAE/Do3F,EAAcz2Q,UAAUq3Q,wBAA0B,SAAUC,EAAez1F,GACvE,OAAO,IAAItU,IAAU,SAAUQ,GAC3BupG,EAAcl4G,MAAK,SAAUprE,GACM,oBAApBA,EAAOstF,WACd56K,QAAQkD,KAAK,wFACbmkK,MAEH/5E,EAAOstF,SAASO,IAAatU,GAAUQ,WAAW3O,MAAK,WAAc,OAAO2O,cAIzF0oG,EAAcz2Q,UAAUw3Q,eAAiB,WACrC,IAAIvlQ,EAAS,GAiBb,OAhBAxO,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,EAAel3Q,GAErD,IAAIo3Q,EAAgBF,EAAcE,cAC9BtjL,EAASsjL,EAAclpG,WAAW,MAAM,SAAUqpG,GAAiB,OAAOA,KAC9E,GAAc,MAAVzjL,EACA,OAAO,KAEX,GAA+B,oBAApBA,EAAOqtF,SAAlB,CAIA,IAAI12K,EAAQqpF,EAAOqtF,WACfn9E,EAAOv5F,KACPsH,EAAO/R,GAAOyK,QALdjE,QAAQkD,KAAK,+FAQdqI,GAGXwkQ,EAAcz2Q,UAAU03Q,wBAA0B,WAC9C,OAAOj0Q,KAAKkzQ,sBAAsBz1Q,OAAS,GAK/Cu1Q,EAAcz2Q,UAAU23Q,oBAAsB,WAC1C,IAAIn0Q,EAAQC,KACZA,KAAKkzQ,sBAAsBz1Q,OAAS,EACpCuC,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtC,GAAIA,EAAcE,cAAclpG,YAAW,GAAO,SAAUp6E,GAAU,OAAOA,EAAO+qB,oBAAsB,CACtG,IAAI64J,EAAkBR,EAAcE,cAAclpG,WAAW,MAAM,SAAUp6E,GAAU,OAAOA,KAC9FxwF,EAAMmzQ,sBAAsB5zQ,KAAK60Q,QAI7CnB,EAAcz2Q,UAAU63Q,0BAA4B,SAAUtvK,EAAQ2W,GAClEz7G,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtC,IAAIr4J,EAAiBq4J,EAAcE,cAAclpG,YAAW,GAAO,SAAUp6E,GAAU,OAAOA,EAAO+qB,oBACrGq4J,EAAcjsQ,OAAO6zG,gBAAgBD,EAAgBxW,EAAQ2W,OAGrEu3J,EAAcz2Q,UAAU83Q,mBAAqB,WACzC,OAAOr0Q,KAAKs0Q,wBAA0Bt0Q,KAAKi0Q,2BAA6Bj0Q,KAAK8vG,mBAAmBwmH,2BAEpG08C,EAAcz2Q,UAAUg4Q,sBAAwB,SAAU/hQ,EAAMgiQ,GAE5D,IADA,IAAIj0Q,EAAOiS,EAAKjS,KACPhD,EAAI,EAAGA,EAAIyC,KAAKkzQ,sBAAsBz1Q,OAAQF,IAAK,CACxD,IAAIgzF,EAASvwF,KAAKkzQ,sBAAsB31Q,GACxC,GAAc,MAAVgzF,GAAkBA,IAAWikL,EAAjC,CAGA,GAAqC,oBAA1BjkL,EAAOsxF,eAEd,MAAM,IAAIluK,MAAM,2CAEpB,IAAK48E,EAAOsxF,eAAe,CAAErvK,KAAMA,EAAMjS,KAAMA,IAC3C,OAAO,GAGf,OAAO,GAEXyyQ,EAAcz2Q,UAAU+2Q,iBAAmB,SAAUmB,GACjD,OAAKh0K,EAAOg0K,GAGPz0Q,KAAK8vG,mBAAmBiI,oBAItB08J,EAAUz2P,eAHb/a,QAAQkD,KAAK,sEACN,MAJA,MAQf6sQ,EAAcz2Q,UAAUwjG,eAAiB,SAAU00K,GAC/C,IAAIC,EAAe10Q,KAAKszQ,iBAAiBmB,GACrCz0Q,KAAKmzQ,cAAgBuB,IACrB10Q,KAAKmzQ,YAAcuB,EACnB10Q,KAAKuzQ,sBACLvzQ,KAAK47K,oBAGbo3F,EAAcz2Q,UAAUq/K,gBAAkB,SAAUy6B,EAAgB56F,GAChEz7G,KAAKk0Q,sBACLl0Q,KAAKo0Q,0BAA0B,gBAAiB34J,GAChDz7G,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtCA,EAAcE,cAAcl4G,MAAK,SAAUprE,GACnCA,IAAW8lH,GAAkB9lH,EAAOokL,oBACpCpkL,EAAOokL,2BAInB,IAAIh5J,EAAqB,CACrBl8G,KAAMktH,GAAO/Q,qBACbhyG,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEhB4xG,GACA5U,GAAU8U,EAAoBF,GAIlCz7G,KAAKm4O,wBAAyB,EAC9Bn4O,KAAKq0G,aAAa5nG,cAAckvG,GAChC37G,KAAKm4O,wBAAyB,GAElC66B,EAAcz2Q,UAAUqzM,wCAA0C,WAG9D,OAAQ5vM,KAAKkxN,4BAA8BlxN,KAAKm4O,wBAEpD66B,EAAcz2Q,UAAU+3Q,qBAAuB,WAC3C,OAA4B,OAArBt0Q,KAAKmzQ,aAEhBH,EAAcz2Q,UAAUq4Q,wBAA0B,SAAUJ,EAAchiQ,GACtE,OAAOxS,KAAK60Q,kBAAkB,CAAE9pQ,QAASyH,EAAMsiQ,qBAAsBN,KAEzExB,EAAcz2Q,UAAUw4Q,8BAAgC,SAAUviQ,EAAMwiQ,GACpE,IAAIj1Q,EAAQC,KACRm7F,EAAUn7F,KAAKm/I,iBAAiBzY,8BACpC,OAAOj2C,EAAK0K,GAAS,SAAUzzF,GAC3B,IAAI62J,EAAOx+J,EAAMk1Q,4BAA4BvtQ,EAAQ8K,GACrD,OAAOiuF,EAAO89D,IAASA,EAAKx9J,QAAQi0Q,IAAe,MAG3DhC,EAAcz2Q,UAAU24Q,4BAA8B,SAAU1iQ,EAAMwiQ,GAIlE,OAHKxiQ,EAAKshL,0BACN9zL,KAAKm1Q,2BAA2B3iQ,GAE7BA,EAAKshL,yBAAyB/yL,QAAQi0Q,IAAe,GAEhEhC,EAAcz2Q,UAAU64Q,uBAAyB,SAAU5iQ,GACvD,IAAIzS,EAAQC,KACRq1Q,EAAar1Q,KAAK8vG,mBAAmBo1G,qBAEzC,OAAO5hH,EAAMtjG,KAAKozQ,kBAAkB,SAAU70G,GAC1C,OAAO82G,EAAat1Q,EAAMm1Q,4BAA4B1iQ,EAAM+rJ,GAAQx+J,EAAMg1Q,8BAA8BviQ,EAAM+rJ,OAGtHy0G,EAAcz2Q,UAAUs4Q,kBAAoB,SAAUzxQ,GAKlD,QAAIpD,KAAKs0Q,yBAA2Bt0Q,KAAKo1Q,uBAAuBhyQ,EAAO2H,cAInE/K,KAAK8vG,mBAAmBwmH,4BAA8Bt2N,KAAK8vG,mBAAmBymH,uBAAuBnzN,EAAO2H,aAI5G/K,KAAKi0Q,4BAA8Bj0Q,KAAKu0Q,sBAAsBnxQ,EAAO2H,QAAS3H,EAAO0xQ,yBAM7F9B,EAAcz2Q,UAAU04Q,4BAA8B,SAAUvtQ,EAAQ8K,GACpE,IAAI9V,EAAQsD,KAAKmgJ,aAAahS,SAASzmI,EAAQ8K,GAAM,GACjD5K,EAASF,EAAOm1G,YACpB,GAAIj1G,EAAOq9M,mBAAoB,CAC3B,IAAI7hN,EAAS,CACT1G,MAAOA,EACP8V,KAAMA,EACNjS,KAAMiS,EAAKjS,KACXmH,OAAQA,EACRE,OAAQA,EACRyhG,QAASrpG,KAAK8vG,mBAAmB0I,cAErC97G,EAAQkL,EAAOq9M,mBAAmB7hN,GAEtC,OAAOq9F,EAAO/jG,GAASA,EAAMiB,WAAWqgB,cAAgB,MAE5Dg1P,EAAcz2Q,UAAU44Q,2BAA6B,SAAU3iQ,GAC3D,IAAIzS,EAAQC,KACRs1Q,EAAc,GACdn6K,EAAUn7F,KAAKm/I,iBAAiBzY,8BACpCnoI,EAAQ48F,GAAS,SAAUzzF,GACvB,IAAI62J,EAAOx+J,EAAMk1Q,4BAA4BvtQ,EAAQ8K,GACjDiuF,EAAO89D,IACP+2G,EAAYh2Q,KAAKi/J,MAGzB/rJ,EAAKshL,yBAA2BwhF,EAAYtkQ,KAAKqiQ,EAAgBkC,yBAErEvC,EAAcz2Q,UAAUoiL,gBAAkB,SAAU75E,GAChD9kG,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtCA,EAAcE,cAAcl4G,MAAK,SAAUprE,GACnCA,EAAOouF,iBACPpuF,EAAOouF,wBAInB3+K,KAAKo0Q,0BAA0BtvK,GAC/B9kG,KAAKk0Q,uBAETlB,EAAcz2Q,UAAUi5Q,kBAAoB,SAAU9tQ,GAClD,IAAI3H,EAAQC,KACZ,OAAO,SAAUwS,GAAQ,OAAOzS,EAAMogJ,aAAahS,SAASzmI,EAAQ8K,GAAM,KAE9EwgQ,EAAcz2Q,UAAUwnQ,mBAAqB,SAAUr8P,EAAQo9F,EAAQk/J,GAEnE,QAD6B,IAAzBA,IAAmCA,GAAuB,GAC1DA,EACA,OAAOhkQ,KAAK8zQ,yBAAyBpsQ,EAAQo9F,GAAQ+uK,cAEzD,IAAIF,EAAgB3zQ,KAAKy1Q,aAAa/tQ,GACtC,OAAOisQ,EAAgBA,EAAcE,cAAgB,MAEzDb,EAAcz2Q,UAAU++G,eAAiB,SAAU5zG,GAC/C,IAAIisQ,EAAgB3zQ,KAAKy1Q,aAAa/tQ,GACtC,QAASisQ,GAAiBA,EAAcE,cAAclpG,YAAW,GAAO,SAAUp6E,GAAU,OAAOA,EAAO+qB,qBAE9G03J,EAAcz2Q,UAAUu3Q,yBAA2B,SAAUpsQ,EAAQo9F,GACjE,IAAI6uK,EAAgB3zQ,KAAKy1Q,aAAa/tQ,GAQtC,OAPKisQ,EAIe,UAAX7uK,GACL9kG,KAAK01Q,WAAW/B,EAAe7uK,IAJ/B6uK,EAAgB3zQ,KAAK21Q,oBAAoBjuQ,EAAQo9F,GACjD9kG,KAAKizQ,mBAAmB3yQ,IAAIoH,EAAOs1G,WAAY22J,IAK5CA,GAEXX,EAAcz2Q,UAAUk5Q,aAAe,SAAU/tQ,GAC7C,OAAO1H,KAAKizQ,mBAAmB5yQ,IAAIqH,EAAOs1G,aAE9Cg2J,EAAcz2Q,UAAUq5Q,qBAAuB,SAAUluQ,EAAQsjO,GAC7D,IAGI30B,EAHAt2M,EAAQC,KACRw6L,EAAgBvnF,GAAeQ,aAAa5kG,EAAQmkG,YAAYoxJ,iBAAmB,oBAAsB,qBACzGx8P,EAASF,EAAOm1G,YAEhBz5G,EAAS0vQ,GAAWA,GAAW,GAAI9yQ,KAAKqkQ,mBAAmB38P,EAAQE,EAAQojO,IAAU,CAAElsD,uBAAwB,WAC3G,IAAI13K,EAAQ,CACR3H,KAAMktH,GAAO6C,sBACb5lH,IAAK7J,EAAMk/F,QACXp1F,UAAW9J,EAAM8J,UACjBnC,OAAQA,EACR2uM,eAAgBA,GAEpBt2M,EAAMs0G,aAAa5nG,cAAcrF,IAClC00K,sBAAuB,SAAUrgE,GAChC,OAAO17G,EAAM67K,gBAAgBy6B,EAAgB56F,IAC9Co6J,uBAAwB,SAAUrjQ,GAAQ,OAAOzS,EAAM60Q,wBAAwBv+D,EAAgB7jM,MAClG8qB,EAAMt9B,KAAKwtK,qBAAqB+sB,mBAAmB3yL,EAAQxE,EAAQo3L,GAIvE,OAHIl9J,GACAA,EAAIq+H,MAAK,SAAUh3J,GAAK,OAAO0xM,EAAiB1xM,KAE7C24B,GAEX01O,EAAcz2Q,UAAU8nQ,mBAAqB,SAAU38P,EAAQE,EAAQojO,QACpD,IAAXA,IAAqBA,EAAS,MAClC,IAAI5nO,EAAS,CACTwG,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B/wG,OAAQA,EACRE,OAAQg+F,EAAYh+F,GACpBswI,SAAUl4I,KAAKk4I,SACf4jC,sBAAuB,aACvBgD,uBAAwB,aACxBtxC,YAAaxtI,KAAKw1Q,kBAAkB9tQ,GACpC2hG,QAASrpG,KAAK8vG,mBAAmB0I,aACjCq9J,uBAAwB,WAAc,OAAO,IAMjD,OAHI7qC,IACA5nO,EAAO4nO,OAASA,GAEb5nO,GAEX4vQ,EAAcz2Q,UAAUo5Q,oBAAsB,SAAUjuQ,EAAQo9F,GAC5D,IAAI6uK,EAAgB,CAChBjsQ,OAAQA,EACRmsQ,cAAe,KACfnoE,MAAO,KACPoqE,gBAAiB,KACjBC,WAAYjsG,GAAUQ,QAAQ,OAOlC,OALAqpG,EAAcjoE,MAAQ1rM,KAAK8vG,mBAAmB06G,0BAA4BxqN,KAAKgrO,OAAOlJ,OAAS,KAC/F6xC,EAAcE,cAAgB7zQ,KAAK41Q,qBAAqBluQ,EAAQisQ,EAAcjoE,OAC1EioE,EAAcE,eACd7zQ,KAAK01Q,WAAW/B,EAAe7uK,GAE5B6uK,GAEXX,EAAcz2Q,UAAUm5Q,WAAa,SAAU/B,EAAe7uK,GAC1D,IAAI/kG,EAAQC,KACRg2Q,EAAarpQ,SAASa,cAAc,OACxCwoQ,EAAWjyH,UAAY,YACvB4vH,EAAcoC,WAAa,IAAIjsG,IAAU,SAAUQ,GAC/CqpG,EAAcE,cAAcl4G,MAAK,SAAUprE,GACvC,IAAI0lL,EAAgB1lL,EAAOlqF,SAY3B,GAXKo6F,EAAOw1K,IACRhzQ,QAAQkD,KAAK,sCAAwC8vQ,EAAgB,4DAM5C,kBAAlBA,IACPA,EAAgBjuH,GAAaiuH,IAEjCD,EAAWt7O,YAAYu7O,GACnBtC,EAAcjoE,MAAO,CACrB,IAAIoqE,EAAkB/1Q,EAAMkrO,SAAS+qC,EAAfj2Q,CAA2B4zQ,EAAcjoE,OAC/DioE,EAAcmC,gBAAkBA,EAChCvqQ,OAAOE,YAAW,WAAc,OAAOkoQ,EAAcjoE,MAAM0hD,WAAa,GAE5E9iF,EAAQ0rG,GACRj2Q,EAAMs0G,aAAa5nG,cAAc,CAC7BhN,KAAMktH,GAAO8C,oBACb/nH,OAAQisQ,EAAcjsQ,OACtBo9F,OAAQA,EACR8oE,KAAMooG,EACNpsQ,IAAK7J,EAAMk/F,QACXp1F,UAAW9J,EAAM8J,mBAKjCmpQ,EAAcz2Q,UAAUg7O,mBAAqB,WACzC,IAAIx3O,EAAQC,KACRk2Q,GAAuB,EAC3Bl2Q,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GACtC,IAAIwC,GAAap2Q,EAAMo/I,iBAAiB/kB,iBAAiBu5I,EAAcjsQ,QACnEyuQ,IACAD,GAAuB,EACvBn2Q,EAAMq2Q,qBAAqBzC,EAAe,uBAG9CuC,GACAl2Q,KAAK47K,mBAIbo3F,EAAcz2Q,UAAU85Q,cAAgB,SAAU3uQ,EAAQo9F,QACvC,IAAXA,IAAqBA,EAAS,OAClC,IAAI6uK,EAAgB3zQ,KAAKizQ,mBAAmB5yQ,IAAIqH,EAAOs1G,YACnD22J,IACA3zQ,KAAKo2Q,qBAAqBzC,EAAe7uK,GACzC9kG,KAAK47K,oBAGbo3F,EAAcz2Q,UAAU65Q,qBAAuB,SAAUzC,EAAe7uK,GACpE,IAAI/kG,EAAQC,KACZ2zQ,EAAcE,cAAcl4G,MAAK,SAAUprE,IACtCA,EAAOstF,SAAS,OAAS/T,GAAUQ,WAAW3O,MAAK,WAChD57J,EAAMy4G,aAAa1K,YAAYvd,GAC/BojL,EAAcjsQ,OAAO6zG,iBAAgB,EAAOzW,GACxC6uK,EAAcjoE,QACVioE,EAAcmC,iBACdnC,EAAcmC,gBAAgB3xH,SAElCwvH,EAAcjoE,MAAMnlM,YAExBxG,EAAMkzQ,mBAAmBtiK,OAAOgjK,EAAcjsQ,OAAOs1G,mBAIjEg2J,EAAcz2Q,UAAU6J,QAAU,WAC9B,IAAIrG,EAAQC,KACZ6E,EAAOtI,UAAU6J,QAAQxI,KAAKoC,MAC9BA,KAAKizQ,mBAAmB10Q,SAAQ,SAAUo1Q,GAAiB,OAAO5zQ,EAAMq2Q,qBAAqBzC,EAAe,uBAGhHX,EAAcuC,uBAAyB,KACvCxC,GAAa,CACTnkK,GAAU,aACXokK,EAAcz2Q,UAAW,gBAAY,GACxCw2Q,GAAa,CACTnkK,GAAU,WACXokK,EAAcz2Q,UAAW,cAAU,GACtCw2Q,GAAa,CACTnkK,GAAU,iBACXokK,EAAcz2Q,UAAW,oBAAgB,GAC5Cw2Q,GAAa,CACTnkK,GAAU,qBACXokK,EAAcz2Q,UAAW,wBAAoB,GAChDw2Q,GAAa,CACTnkK,GAAU,aACXokK,EAAcz2Q,UAAW,gBAAY,GACxCw2Q,GAAa,CACTnkK,GAAU,cACXokK,EAAcz2Q,UAAW,iBAAa,GACzCw2Q,GAAa,CACTnkK,GAAU,YACXokK,EAAcz2Q,UAAW,eAAW,GACvCw2Q,GAAa,CACTnkK,GAAU,yBACXokK,EAAcz2Q,UAAW,4BAAwB,GACpDw2Q,GAAa,CACTzkK,IACD0kK,EAAcz2Q,UAAW,OAAQ,MACpCw2Q,GAAa,CACTvkK,IACDwkK,EAAcz2Q,UAAW,UAAW,MACvCy2Q,EAAgBK,EAAkBN,GAAa,CAC3CrkK,GAAK,kBACNskK,GACIA,EAhduB,CAidhCpsJ,IAQE0vJ,GAAqD,WACrD,IAAIryQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDiyQ,GAAsD,SAAUl1Q,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D6xQ,GAA8B,SAAU3xQ,GAExC,SAAS2xQ,IACL,IAAIz2Q,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAM02Q,aAAc,EACb12Q,EAoQX,OAxQAu2Q,GAAaE,EAAc3xQ,GAM3B2xQ,EAAaj6Q,UAAU2I,KAAO,WAC1BlF,KAAK02Q,gBAAkB12Q,KAAK8vG,mBAAmBw7G,0BAC/CtrN,KAAKy2Q,aAAc,GAEvBD,EAAaj6Q,UAAU4xI,SAAW,SAAUzmI,EAAQqD,EAAS4rQ,EAAW76B,GAQpE,QAPkB,IAAd66B,IAAwBA,GAAY,QAClB,IAAlB76B,IAA4BA,GAAgB,GAG3C97O,KAAKy2Q,aACNz2Q,KAAKkF,OAEJ6F,EAAL,CAIA,IAIIyD,EAJA5G,EAASF,EAAOm1G,YAChBniE,EAAQ9yC,EAAO8yC,MACfooD,EAAQp7F,EAAO2vG,QACf92G,EAAOwK,EAAQxK,KAGfq2Q,EAAkB7rQ,EAAQioL,gBAA0C3zL,IAA7B0L,EAAQioL,UAAUlwF,GACzD+zK,GAAiB/6B,GAAiB/wO,EAAQsoL,cAAsCh0L,IAA3B0L,EAAQsoL,QAAQvwF,GA0BzE,GAzBI6zK,GAAa/uQ,EAAOkvQ,kBACpBtoQ,EAASxO,KAAK+2Q,yBAAyBnvQ,EAAOkvQ,kBAAmBv2Q,EAAMmH,EAAQqD,GAE1E/K,KAAK8vG,mBAAmBuI,cAAgBw+J,EAC7CroQ,EAASzD,EAAQsoL,QAAQvwF,GAEpB9iG,KAAK8vG,mBAAmBuI,cAAgBzwG,EAAO4lI,YACpDh/H,EAASxO,KAAKg3Q,mBAAmBpvQ,EAAO4lI,YAAajtI,EAAMmH,EAAQqD,GAE9D/K,KAAK8vG,mBAAmBuI,cAAiB39D,GAASn6C,EACvDiO,EAASk5F,GAAmBnnG,EAAMm6C,EAAOhzC,EAAOgwG,uBAE3Ck/J,EACLpoQ,EAASzD,EAAQioL,UAAUlwF,GAEtB+zK,EACLroQ,EAASzD,EAAQsoL,QAAQvwF,GAEpBl7F,EAAO4lI,YACZh/H,EAASxO,KAAKg3Q,mBAAmBpvQ,EAAO4lI,YAAajtI,EAAMmH,EAAQqD,GAE9D2vC,GAASn6C,IACdiO,EAASk5F,GAAmBnnG,EAAMm6C,EAAOhzC,EAAOgwG,wBAGhD13G,KAAK02Q,iBAAsC,kBAAXloQ,GAAgD,IAAxBA,EAAOzN,QAAQ,KAAY,CACnF,IAAIk2Q,EAAkBzoQ,EAAOy+F,UAAU,GACvCz+F,EAASxO,KAAKg3Q,mBAAmBC,EAAiB12Q,EAAMmH,EAAQqD,GAEpE,GAAc,MAAVyD,EAAgB,CAChB,IAAI0oQ,EAAcl3Q,KAAKm3Q,eAAepsQ,EAASrD,GAC/C,GAAmB,MAAfwvQ,EACA,OAAOA,EAGf,OAAO1oQ,IAEXgoQ,EAAaj6Q,UAAU46Q,eAAiB,SAAUpsQ,EAASrD,GACvD,GAAK1H,KAAK8vG,mBAAmB+9G,oBAA7B,CAGA,IAAIjmN,EAASF,EAAOm1G,YACpB,GAAKj1G,EAAOqvG,aAAZ,CAGA,IAAIA,EAAevvG,EAAOm1G,YAAY5F,aAClCgP,EAAUl7G,EAAQlI,OACtB,MAAkB,MAAXojH,EAAiB,CACpB,GAAIA,EAAQ2wE,kBAAoC,IAAjB3/E,GAAyBA,IAAiBgP,EAAQ2wE,eAAev/E,SAC5F,OAAO4O,EAAQxpH,IAEnBwpH,EAAUA,EAAQpjH,WAI1B2zQ,EAAaj6Q,UAAUm5K,SAAW,SAAU3qK,EAASs1H,EAAQ3jB,EAAU+uE,GACnE,IAAI/jL,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiBiG,GACpD,GAAKt1H,GAAYrD,EAAjB,CAKIi5F,EAAQ51F,EAAQxK,QAChBwK,EAAQxK,KAAO,IAGnB,IAAI+sF,EAAK5lF,EAAOm1G,YAAaniE,EAAQ4yC,EAAG5yC,MAAO08N,EAAkB9pL,EAAG8pL,gBAAiBC,EAAc/pL,EAAG+pL,YAEtG,GAAI12K,EAAQjmD,IAAUimD,EAAQy2K,IAAoBz2K,EAAQ02K,GAEtDp0Q,QAAQkD,KAAK,uFAFjB,CAKA,IAYImxQ,EAZAl0Q,EAAS,CACToP,KAAMzH,EACNxK,KAAMwK,EAAQxK,KACdsyL,SAAU7yL,KAAKmuI,SAASzmI,EAAQqD,GAChC2xG,SAAUA,EACV90G,OAAQF,EAAOm1G,YACfn1G,OAAQA,EACRkC,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,cAsBrC,GApBAp1G,EAAOs5G,SAAWA,EAGd46J,EADAF,GAAmB32K,EAAO22K,GACNA,EAAgBh0Q,GAE/Bq9F,EAAO42K,GACQr3Q,KAAK8vI,kBAAkBC,SAASsnI,EAAaj0Q,GAG7CpD,KAAKu3Q,mBAAmBxsQ,EAAQxK,KAAMm6C,EAAOgiE,EAAUh1G,EAAOgwG,4BAK5Dr4G,IAAtBi4Q,IACAA,GAAoB,GAKnBA,EAAL,CAIAvsQ,EAAQ8oL,gCACR7zL,KAAKk3H,WAAW23D,gBAChBzrL,EAAOs5G,SAAW18G,KAAKmuI,SAASzmI,EAAQqD,GACxC,IAAI6zF,EAAqBl3F,EAAOm1G,YAAYje,mBACV,oBAAvBA,GAEPnzF,YAAW,WAAc,OAAOmzF,EAAmBx7F,KAAY,GAEnE,IAAIgE,EAAQ,CACR3H,KAAMktH,GAAOoC,yBACb3nH,MAAO,KACPw4I,SAAU70I,EAAQ60I,SAClB2vC,UAAWxkL,EAAQwkL,UACnB7nL,OAAQtE,EAAOsE,OACfkC,IAAKxG,EAAOwG,IACZC,UAAWzG,EAAOyG,UAClBjC,OAAQxE,EAAOwE,OACfyhG,QAASjmG,EAAOimG,QAChB9oG,KAAMwK,EAAQxK,KACdiS,KAAMzH,EACN8nL,SAAUzvL,EAAOyvL,SACjBn2E,SAAUt5G,EAAOs5G,SACjBhgH,MAAO0G,EAAOs5G,SACd5X,OAAQ2mF,GAEZzrL,KAAKq0G,aAAa5nG,cAAcrF,OAEpCovQ,EAAaj6Q,UAAUg7Q,mBAAqB,SAAUh3Q,EAAMm6C,EAAOgiE,EAAUhF,GACzE,IAAKh9D,EACD,OAAO,EAGX,IAAI88N,GAAgB,EACpB,GAAK9/J,EAGA,CAED,IAAI+/J,EAAc/8N,EAAMrnC,MAAM,KAC1Bu0F,EAAgBrnG,EACpB,MAAOk3Q,EAAYh6Q,OAAS,GAAKmqG,EAAe,CAC5C,IAAI8vK,EAAaD,EAAY3sP,QACF,IAAvB2sP,EAAYh6Q,OACZmqG,EAAc8vK,GAAch7J,EAG5B9U,EAAgBA,EAAc8vK,SAZtCn3Q,EAAKm6C,GAASgiE,EAgBlB,OAAQ86J,GAEZhB,EAAaj6Q,UAAUw6Q,yBAA2B,SAAUvpI,EAAajtI,EAAMmH,EAAQqD,GACnF,IAAI3H,EAAS,CACT7C,KAAMA,EACNiS,KAAMzH,EACNrD,OAAQA,EACRE,OAAQF,EAAOm1G,YACfjzG,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,aACjC21B,SAAUnuI,KAAK23Q,iBAAiBltQ,KAAKzK,KAAM+K,IAE/C,OAAO/K,KAAK8vI,kBAAkBC,SAASvC,EAAapqI,IAExDozQ,EAAaj6Q,UAAUy6Q,mBAAqB,SAAUxpI,EAAajtI,EAAMmH,EAAQqD,GAC7E,IAAI+3F,EAAQp7F,EAAO2vG,QAEfugK,EAAiB53Q,KAAKk3H,WAAWiX,SAASpjI,EAAS+3F,GACvD,QAAuBzjG,IAAnBu4Q,EACA,OAAOA,EAEX,IAAIx0Q,EAAS,CACT7C,KAAMA,EACNiS,KAAMzH,EACNrD,OAAQA,EACRE,OAAQF,EAAOm1G,YACfjzG,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,aACjC21B,SAAUnuI,KAAK23Q,iBAAiBltQ,KAAKzK,KAAM+K,IAE3CyD,EAASxO,KAAK8vI,kBAAkBC,SAASvC,EAAapqI,GAG1D,OADApD,KAAKk3H,WAAWw+C,SAAS3qK,EAAS+3F,EAAOt0F,GAClCA,GAEXgoQ,EAAaj6Q,UAAUo7Q,iBAAmB,SAAUnlQ,EAAMkoC,GACtD,IAAIm9N,EAAc73Q,KAAKm/I,iBAAiB/kB,iBAAiB1/E,GACzD,OAAIm9N,EACO73Q,KAAKmuI,SAAS0pI,EAAarlQ,GAE/B,MAGXgkQ,EAAaj6Q,UAAUu7Q,cAAgB,SAAUpzO,EAAK35B,GAClD,IAAIrO,EAAQsD,KAAKmuI,SAASzpG,EAAK35B,GAC3BgtQ,EAAarzO,EAAIm4E,YAAYk7J,WAC7BvpQ,EAASupQ,EAAaA,EAAW,CAAEr7Q,MAAOA,IAAWA,EAEzD,MAAsB,kBAAX8R,GAAiC,MAAVA,IAGlCA,EAASqC,OAAOrC,GACD,oBAAXA,GACA45F,IAAO,WACHnlG,QAAQkD,KAAK,iOACd,+CANIqI,GAUf+nQ,GAAa,CACT3nK,GAAU,sBACX4nK,EAAaj6Q,UAAW,yBAAqB,GAChDg6Q,GAAa,CACT3nK,GAAU,qBACX4nK,EAAaj6Q,UAAW,wBAAoB,GAC/Cg6Q,GAAa,CACT3nK,GAAU,eACX4nK,EAAaj6Q,UAAW,kBAAc,GACzCg6Q,GAAa,CACTjoK,IACDkoK,EAAaj6Q,UAAW,OAAQ,MACnCi6Q,EAAeD,GAAa,CACxB7nK,GAAK,iBACN8nK,GACIA,EAzQsB,CA0Q/B5vJ,IAQEoxJ,GAAqD,WACrD,IAAI/zQ,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD2zQ,GAAsD,SAAU52Q,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAEhE,SAAWuzQ,GACPA,EAAiB,eAAiB,wBAClCA,EAAiB,UAAY,mBAC7BA,EAAiB,SAAW,mBAHhC,CAIGrpQ,EAAQqpQ,mBAAqBrpQ,EAAQqpQ,iBAAmB,KAC3D,IAu7BIC,GAv7BAC,GAA+B,SAAUvzQ,GAEzC,SAASuzQ,EAAc5kQ,GACnB,IAAIzT,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMyT,KAAOA,EACNzT,EAoBX,OAxBAi4Q,GAAaI,EAAevzQ,GAM5BuzQ,EAAc77Q,UAAUwiJ,cAAgB,WACpC/+I,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiB59M,KAAKq4Q,oBAAoB5tQ,KAAKzK,OACnHA,KAAKq4Q,uBAETD,EAAc77Q,UAAU87Q,oBAAsB,WAC1C,IAAIj1D,EAAYpjN,KAAK8vG,mBAAmBq3B,eACxCnnI,KAAKwT,KAAK6kQ,oBAAoB,CAC1B7jI,WAAY4uE,IAAchyG,GAAUkB,uBACpCu4I,OAAQznC,IAAchyG,GAAUgB,kBAChC64D,MAAOm4C,IAAchyG,GAAUiB,oBAGvC4lK,GAAa,CACTrpK,GAAU,uBACXwpK,EAAc77Q,UAAW,0BAAsB,GAClD07Q,GAAa,CACT3pK,IACD8pK,EAAc77Q,UAAW,gBAAiB,MACtC67Q,EAzBuB,CA0BhCxxJ,IAQE0xJ,GAAqD,WACrD,IAAIr0Q,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDi0Q,GAAsD,SAAUl3Q,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D6zQ,GAAuC,SAAU3zQ,GAEjD,SAAS2zQ,EAAsBC,GAC3B,IAAI14Q,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAMjC,OALAD,EAAMunJ,YAAc,EACpBvnJ,EAAM24Q,eAAiB,EACvB34Q,EAAM0kM,WAAa,EACnB1kM,EAAM04Q,cAAgBA,EACtB14Q,EAAM44Q,0CAA4C5uQ,GAAShK,EAAM64Q,iCAAiCnuQ,KAAK1K,GAAQ,KACxGA,EAgaX,OAxaAu4Q,GAAaE,EAAuB3zQ,GAUpC2zQ,EAAsBj8Q,UAAUwiJ,cAAgB,WAC5C,IAAIh/I,EAAQC,KACZA,KAAKgqN,UAAYhqN,KAAK8vG,mBAAmB6Q,cACzC3gH,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuC/wH,KAAK64Q,+BAA+BpuQ,KAAKzK,OAClIA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMqsQ,sBAAwB/nQ,EAAE+nQ,sBAChCrsQ,EAAM84Q,iCACN94Q,EAAM+4Q,wBAGdN,EAAsBj8Q,UAAUu8Q,kBAAoB,WAChD,IAAIC,EAAc/4Q,KAAKmoM,mBAAmB6wE,oBAC1Ch5Q,KAAKmnH,mBAAmBnnH,KAAKosQ,sBAAsB6M,qBAAsB,SAAUj5Q,KAAKk5Q,uBAAuBzuQ,KAAKzK,OACpHA,KAAKmnH,mBAAmB4xJ,EAAYI,cAAe,SAAUn5Q,KAAKo5Q,uBAAuB3uQ,KAAKzK,OAC9F,IAAIq5Q,EAAmBr5Q,KAAK8vG,mBAAmBk0G,8BAC3Cj6M,GAAS/J,KAAKq5Q,iBAAiB5uQ,KAAKzK,MAAO,KACzCA,KAAKq5Q,iBAAiB5uQ,KAAKzK,MACjCA,KAAKmnH,mBAAmBnnH,KAAKy4Q,cAAe,SAAUY,IAE1Db,EAAsBj8Q,UAAUs8Q,+BAAiC,WACzD74Q,KAAKgqN,WAMLhqN,KAAKsxP,mDAGbknB,EAAsBj8Q,UAAU+0P,gDAAkD,SAAUhqG,QACrEjoJ,IAAfioJ,IACAA,EAAatnJ,KAAKosQ,sBAAsBvE,+BAE5C,IAAIz6O,EAASptB,KAAKgqN,UAAY1iE,GAAcA,EACxCgyH,EAAqBt5Q,KAAKmoM,mBAAmBoxE,8BAC7CC,EAAwBx5Q,KAAKmoM,mBAAmBsxE,iCAChDC,EAAiB15Q,KAAKmoM,mBAAmBwxE,oBACzCZ,EAAc/4Q,KAAKmoM,mBAAmB6wE,oBAC1CU,EAAenH,oBAAoBnlP,GACnCosP,EAAsBI,uBAAuBxsP,GAC7CksP,EAAmBM,uBAAuBxsP,GAC1C,IAAIysP,EAAU75Q,KAAK85Q,8BAAgC95Q,KAAKosQ,sBAAsB6M,qBAC1EF,EAAYI,cAAgBn5Q,KAAKosQ,sBAAsB6M,qBAC3DxxH,GAAcoyH,EAAS3kQ,KAAKiH,IAAImrI,GAAatnJ,KAAKgqN,YAEtDwuD,EAAsBj8Q,UAAUw9Q,oBAAsB,SAAU9uH,GAC5D,OAAKjrJ,KAAK85Q,4BAIH7uH,IAASjrJ,KAAK85Q,6BAHjB95Q,KAAK85Q,4BAA8B7uH,GAC5B,IAIfutH,EAAsBj8Q,UAAU68Q,uBAAyB,WACrD,IAAIY,EAAsBh6Q,KAAKmoM,mBAAmB6wE,oBAAoBG,cACjEn5Q,KAAK+5Q,oBAAoBC,IAG9Bh6Q,KAAKi6Q,uBAAuBD,IAEhCxB,EAAsBj8Q,UAAU28Q,uBAAyB,WACrD,IAAIgB,EAA0Bl6Q,KAAKosQ,sBAAsB6M,qBACpDj5Q,KAAK+5Q,oBAAoBG,IAG9Bl6Q,KAAKi6Q,uBAAuBC,IAEhC1B,EAAsBj8Q,UAAU09Q,uBAAyB,SAAUE,GAC/D,IAAID,EAA0Bl6Q,KAAKosQ,sBAAsB6M,qBACrD3xH,EAAa4yH,EAAwB5yH,WACrCtnJ,KAAKo6Q,wBAAwB,aAAc9yH,GAAY,KAS3DtnJ,KAAKq6Q,mBAAmBnlQ,KAAKC,MAAMoyI,GAAc4yH,EAASn6Q,KAAKgqN,aAC/DhqN,KAAK24Q,8CAETH,EAAsBj8Q,UAAU88Q,iBAAmB,WAC/C,IAAI50E,EAAYzkM,KAAKy4Q,cAAch0E,UAC/BzkM,KAAKo6Q,wBAAwB,WAAY31E,GAAW,KAGxDzkM,KAAK66H,sBAAsBy/I,aAAa71E,GACxCzkM,KAAK04Q,cAAgBj0E,EACjBzkM,KAAK8vG,mBAAmBi1G,4BACxB/kN,KAAKykM,UAAYzkM,KAAK04Q,cACtB14Q,KAAKu6Q,yBAGLv6Q,KAAK66H,sBAAsB2/I,aAGnChC,EAAsBj8Q,UAAUq8Q,iCAAmC,WAC/D54Q,KAAK85Q,4BAA8B,MAEvCtB,EAAsBj8Q,UAAU89Q,mBAAqB,SAAU/yH,GAC3DtnJ,KAAKsnJ,WAAaA,EAClB,IAAIlgJ,EAAQ,CACR3H,KAAMktH,GAAO8D,kBACb7mH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChB+9H,UAAW,aACX5vD,KAAMh4E,KAAKsnJ,WACXpvE,IAAKl4E,KAAKykM,WAEdzkM,KAAKq0G,aAAa5nG,cAAcrF,GAChCpH,KAAKsxP,gDAAgDhqG,GACrDtnJ,KAAKy6Q,+BAETjC,EAAsBj8Q,UAAU69Q,wBAA0B,SAAUxyI,EAAW8yI,EAAUC,GAWrF,QANkB,IAAdA,IAAwBA,GAAY,GAMpCA,IAAcr5H,KACd,OAAO,EAEX,GAAkB,aAAd1Z,EAA0B,CAC1B,IAAI0a,EAAeuE,GAAe7mJ,KAAKy4Q,eACnCjvH,EAAexpJ,KAAKy4Q,cAAcjvH,aACtC,GAAIkxH,EAAW,GAAMA,EAAWp4H,EAAekH,EAC3C,OAAO,EAGf,GAAkB,eAAd5hB,EAA4B,CAC5B,IAAIkb,EAAc9iJ,KAAKosQ,sBAAsBlE,iBACzC7uI,EAAcr5H,KAAKosQ,sBAAsB6M,qBAAqB5/I,YAClE,GAAIr5H,KAAKgqN,WAAa7iE,MAClB,GAAIuzH,EAAW,EACX,OAAO,OAGV,GAAIA,EAAW,EAChB,OAAO,EAEX,GAAIxlQ,KAAKiH,IAAIu+P,GAAY53H,EAAczpB,EACnC,OAAO,EAGf,OAAO,GAEXm/I,EAAsBj8Q,UAAUg+Q,sBAAwB,WACpD,IAAInzQ,EAAQ,CACR3H,KAAMktH,GAAO8D,kBACbmX,UAAW,WACXh+H,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBmuE,KAAMh4E,KAAKsnJ,WACXpvE,IAAKl4E,KAAKykM,WAEdzkM,KAAKq0G,aAAa5nG,cAAcrF,IAEpCoxQ,EAAsBj8Q,UAAUk+Q,4BAA8B,WAC1Dz6Q,KAAKosQ,sBAAsBqO,+BAQ/BjC,EAAsBj8Q,UAAUq+Q,gBAAkB,WAC1C56Q,KAAKsnJ,aAAetnJ,KAAKosQ,sBAAsBvE,+BAC/C7nQ,KAAKi6Q,uBAAuBj6Q,KAAKosQ,sBAAsB6M,uBAG/DT,EAAsBj8Q,UAAUs+Q,4BAA8B,WAC1D,IAAIC,EAAc96Q,KAAKykM,WAAazkM,KAAK04Q,cAKzC,OAJIoC,IACA96Q,KAAKykM,UAAYzkM,KAAK04Q,cACtB14Q,KAAKu6Q,yBAEFO,GAGXtC,EAAsBj8Q,UAAUw+Q,4BAA8B,SAAUC,GACpE,IAAIC,EAAgB,EAChBC,EAAgBl7Q,KAAKosQ,sBAAsB6M,qBAAqB5/I,YAAcr5H,KAAKosQ,sBAAsBlE,iBACzGloQ,KAAKo6Q,wBAAwB,aAAcY,KAEvCA,EADAh7Q,KAAKgqN,WAAa7iE,KACA6zH,EAAkB,EAAI,EAAIE,EAG1BhmQ,KAAKsM,IAAItM,KAAKuM,IAAIu5P,EAAiBC,GAAgBC,IAG7EzzH,GAAcznJ,KAAKosQ,sBAAsB6M,qBAAsB/jQ,KAAKiH,IAAI6+P,GAAkBh7Q,KAAKgqN,WAK/FhqN,KAAKq6Q,mBAAmBW,IAE5BxC,EAAsBj8Q,UAAU4+Q,0BAA4B,SAAUC,GAClEp7Q,KAAKy4Q,cAAch0E,UAAY22E,GAEnC5C,EAAsBj8Q,UAAUqxO,mBAAqB,WACjD,IAAIp/N,EAAS,CACT0pE,IAAKl4E,KAAKy4Q,cAAch0E,UACxBtsH,OAAQn4E,KAAKy4Q,cAAch0E,UAAYzkM,KAAKy4Q,cAAczxH,cAE9D,OAAOx4I,GAEXgqQ,EAAsBj8Q,UAAU8+Q,mBAAqB,WACjD,OAAOr7Q,KAAKosQ,sBAAsBiP,sBAEtC7C,EAAsBj8Q,UAAU+sJ,0BAA4B,WACxD,OAAOtpJ,KAAKosQ,sBAAsB9iH,6BAGtCkvH,EAAsBj8Q,UAAUwuQ,mBAAqB,SAAUr+B,GAC3D,IAAI4uC,EAAoBt7Q,KAAKosQ,sBAAsB6M,qBAAqB3xH,WAExE,OADAtnJ,KAAK+6Q,4BAA4BO,EAAoB5uC,GAC9C1sO,KAAKosQ,sBAAsB6M,qBAAqB3xH,WAAag0H,GAGxE9C,EAAsBj8Q,UAAU0tP,YAAc,WAC1CjqP,KAAKy4Q,cAAch0E,UAAY,GAGnC+zE,EAAsBj8Q,UAAUg/Q,kBAAoB,SAAUl4K,EAAYu/C,QACrD,IAAbA,IAAuBA,EAAW,MAMtC,IAJA,IAAI0a,EAAWt9J,KAAKk4I,SAASsjI,cACzBC,EAA8C,oBAAfp4K,EAC/Bq4K,GAAiB,EAEZn+Q,EAAI,EAAGA,EAAI+/J,EAAU//J,IAAK,CAC/B,IAAIiV,EAAOxS,KAAKk4I,SAAS4H,OAAOviJ,GAChC,GAAIk+Q,GACA,GAAIp4K,EAAW7wF,GAAO,CAClBkpQ,EAAgBn+Q,EAChB,YAKJ,GAAI8lG,IAAe7wF,GAAQ6wF,IAAe7wF,EAAKjS,KAAM,CACjDm7Q,EAAgBn+Q,EAChB,OAIRm+Q,GAAiB,GACjB17Q,KAAKoxP,mBAAmBsqB,EAAe94H,IAS/C41H,EAAsBj8Q,UAAU60P,mBAAqB,SAAUlyP,EAAO0jJ,GAElE,GAAI5iJ,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBAAzD,CAGA,IAAIirD,EAAWt9J,KAAKw/I,gBAAgBg8H,cACpC,GAAqB,kBAAVt8Q,GAAsBA,EAAQ,GAAKA,GAASo+J,EACnDr6J,QAAQkD,KAAK,6CAA+CjH,OADhE,CAIA,IAAIy8Q,EAAW37Q,KAAK8vG,mBAAmB48G,eACnCkvD,EAAyBD,IAAa37Q,KAAK8vG,mBAAmB+5G,4BAC7D+xD,GACD57Q,KAAKw/I,gBAAgBq8H,kBAAkB38Q,GAE3C,IACI48Q,EADA/wQ,EAAU/K,KAAKw/I,gBAAgBM,OAAO5gJ,GAE1C,EAAG,CACC,IAAI68Q,EAAiBhxQ,EAAQm1I,OACzB87H,EAAoBjxQ,EAAQk1I,UAC5BytG,EAAmB1tP,KAAKw/I,gBAAgB+uF,iBACxC0tC,EAAclxQ,EAAQm1I,OAASwtG,EAC/BwuB,EAAiBD,EAAclxQ,EAAQk1I,UACvC7mB,EAAiBp5H,KAAK4tO,qBACtBuuC,EAAen8Q,KAAKo8Q,aAAaruB,sBACjCsuB,EAAajjJ,EAAelhD,IAAMikM,EAClCG,EAAgBljJ,EAAejhD,OAASgkM,EACxCI,EAAiBD,EAAgBD,EAGjCG,EAAQx8Q,KAAKo8Q,aAAaK,0BAA0BR,GACpDS,EAAW18Q,KAAKo8Q,aAAaK,0BAA0BP,EAAiBK,GAExEI,EAAWznQ,KAAKsM,KAAKg7P,EAAQE,GAAY,EAAGT,GAC5CW,EAAmBP,EAAaJ,EAChCY,EAAmBP,EAAgBJ,EACnCY,EAAoB,KACP,QAAbl6H,EACAk6H,EAAoBN,EAEF,WAAb55H,EACLk6H,EAAoBJ,EAEF,WAAb95H,EACLk6H,EAAoBH,EAEfC,EAELE,EAAoBN,EAEfK,IAELC,EAAoBJ,GAEE,OAAtBI,IACA98Q,KAAKy4Q,cAAch0E,UAAYq4E,EAC/B98Q,KAAK0yL,YAAY8zD,qBAMrBs1B,EAAgCC,IAAmBhxQ,EAAQm1I,QACnD87H,IAAsBjxQ,EAAQk1I,gBACjC67H,GAET97Q,KAAK66H,sBAAsBC,oBAE/B09I,EAAsBj8Q,UAAU80P,oBAAsB,SAAU50P,GAC5D,IAAIiL,EAAS1H,KAAKm/I,iBAAiB1e,cAAchkI,GACjD,GAAKiL,EAGL,GAAIA,EAAO20G,WACPp5G,QAAQkD,KAAK,mCAAqCuB,EAAO80G,YAAc,gDAAmD90G,EAAOs1G,iBAGrI,GAAKh9G,KAAKm/I,iBAAiBviB,kBAAkBl1H,GAA7C,CAIA,IAKIq1Q,EACAC,EANAC,EAAev1Q,EAAOqzG,UACtBmiK,EAAgBD,EAAev1Q,EAAOw1G,iBACtCi6B,EAAgBn3I,KAAKosQ,sBAAsBlE,iBAC3C9uI,EAAiBp5H,KAAKosQ,sBAAsBvE,8BAC5C9xI,EAAY/1H,KAAKm/I,iBAAiBzZ,wBAKlC1lI,KAAKgqN,WACL+yD,EAAoBhnJ,EAAYqD,EAAiB+d,EACjD6lI,EAAqBjnJ,EAAYqD,IAGjC2jJ,EAAoB3jJ,EACpB4jJ,EAAqB7lI,EAAgB/d,GAEzC,IAAI+jJ,EAA0BJ,EAAoBE,EAC9CG,EAA4BJ,EAAqBE,EACjDG,EAAwBlmI,EAAgBzvI,EAAOw1G,iBAC/CogK,EAAiBH,GAA2BE,EAC5CE,EAAkBH,EACtB,GAAIE,GAAkBC,EAAiB,CACnC,IAAIT,OAAoB,EAEpBA,EADA98Q,KAAKgqN,UACeszD,EAAkBvnJ,EAAYohB,EAAgB8lI,EAAiBlnJ,EAAYmnJ,EAG3EI,EAAiBL,EAAgBC,EAAgB/lI,EAEzEn3I,KAAKosQ,sBAAsBoR,4BAA4BV,GAM3D98Q,KAAKosQ,sBAAsBqO,8BAE3Bz6Q,KAAK66H,sBAAsBC,sBAzCvB73H,QAAQkD,KAAK,oCA2CrBoyQ,GAAa,CACT3pK,GAAU,uBACX4pK,EAAsBj8Q,UAAW,0BAAsB,GAC1Dg8Q,GAAa,CACT3pK,GAAU,0BACX4pK,EAAsBj8Q,UAAW,6BAAyB,GAC7Dg8Q,GAAa,CACT3pK,GAAU,cACX4pK,EAAsBj8Q,UAAW,iBAAa,GACjDg8Q,GAAa,CACT3pK,GAAU,YACX4pK,EAAsBj8Q,UAAW,eAAW,GAC/Cg8Q,GAAa,CACT3pK,GAAU,oBACX4pK,EAAsBj8Q,UAAW,uBAAmB,GACvDg8Q,GAAa,CACT3pK,GAAU,aACX4pK,EAAsBj8Q,UAAW,gBAAY,GAChDg8Q,GAAa,CACT3pK,GAAU,8BACX4pK,EAAsBj8Q,UAAW,oBAAgB,GACpDg8Q,GAAa,CACT3pK,GAAU,gBACX4pK,EAAsBj8Q,UAAW,mBAAe,GACnDg8Q,GAAa,CACT3pK,GAAU,qBACX4pK,EAAsBj8Q,UAAW,wBAAoB,GACxDg8Q,GAAa,CACTjqK,IACDkqK,EAAsBj8Q,UAAW,gBAAiB,MAC9Ci8Q,EAza+B,CA0axC5xJ,IAQE62J,GAAqD,WACrD,IAAIx5Q,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDo5Q,GAAkD,WASlD,OARAA,GAAa/gR,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJ6oQ,GAAWt7Q,MAAMpC,KAAMW,YAE9Bg9Q,GAAsD,SAAUt8Q,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Di5Q,GAA8D,WAC9D,IAAK,IAAIxqQ,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEPk5Q,GAAgC,SAAUh5Q,GAE1C,SAASg5Q,EAAe11H,GACpB,IAAIpoJ,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAMjC,OALAD,EAAM+9Q,gBAAiB,EACvB/9Q,EAAMg+Q,cAAe,EACrBh+Q,EAAMi+Q,gBAAiB,EACvBj+Q,EAAMq+G,kBAAmB,EACzBr+G,EAAMooJ,WAAaA,EACZpoJ,EAsYX,OA9YA09Q,GAAaI,EAAgBh5Q,GAU7Bg5Q,EAAethR,UAAUwiJ,cAAgB,WACjC/+I,KAAK8vG,mBAAmBiI,sBACxB/3G,KAAKs+N,mBAAqBt+N,KAAKk4I,UAEnCl4I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO1S,mBAAoBj6G,KAAKqsL,cAAc5hL,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO/Q,qBAAsB57G,KAAK47K,gBAAgBnxK,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOI,+BAAgC/sH,KAAKi+Q,kBAAkBxzQ,KAAKzK,OAC9GA,KAAKqsL,gBACLrsL,KAAK47K,kBACL57K,KAAKi+Q,qBAETJ,EAAethR,UAAU8vL,cAAgB,WACrCrsL,KAAK+9Q,aAAe/9Q,KAAKotI,eAAe8wI,gBAE5CL,EAAethR,UAAUq/K,gBAAkB,WACvC57K,KAAKg+Q,eAAiBh+Q,KAAK2vM,cAAc0kE,sBAE7CwJ,EAAethR,UAAU0hR,kBAAoB,WACzC,IAAIE,EAAYn+Q,KAAKm/I,iBAAiBhZ,qBACtCnmI,KAAKo+G,kBAAoBxd,EAAeu9K,IAE5CN,EAAethR,UAAUmlM,aAAe,WACpC,OAAO1hM,KAAKmoJ,YAEhB01H,EAAethR,UAAUsmM,eAAiB,SAAUpjM,GAChD,OAAOA,IAASoP,EAAQ0vL,eAAe8I,SAE3Cw2E,EAAethR,UAAU0lM,YAAc,WACnC,IAAIm8E,EAAcp+Q,KAAK8vG,mBAAmB02F,mBAC1C,OAAI43E,GAAep+Q,KAAKuoM,uBACb7J,GAAmB4G,iBAEvB5G,GAAmB8G,WAE9Bq4E,EAAethR,UAAUgsM,qBAAuB,WAC5C,OAAOvoM,KAAK+9Q,cAAgB/9Q,KAAKg+Q,gBAAkBh+Q,KAAKo+G,kBAE5Dy/J,EAAethR,UAAU8hR,YAAc,SAAU19E,GAC7C,IAAK3gM,KAAKs+Q,eAAe39E,GACrB,OAAOA,EAAcP,SAASn4B,UAAY,GAE9C,IAAIk7C,EAAyBnjN,KAAK8vG,mBAAmBg3F,2BACjDo3B,EAAgBl+N,KAAK6vL,oBAAoBmX,mBACzCu3E,EAAc59E,EAAcP,SAASr1L,QACzC,OAAIo4M,IAAkE,IAAxC+a,EAAcn9N,QAAQw9Q,IAChDv+Q,KAAK89Q,gBAAiB,EACfF,GAAiB1/C,KAE5Bl+N,KAAK89Q,gBAAiB,EACf,CAACS,KAEZV,EAAethR,UAAUulM,YAAc,SAAUnB,GAG7C3gM,KAAKw+Q,kBAAkB7xJ,GAAO6E,qBAAsBmvE,GACpD3gM,KAAKq+Q,YAAY19E,GAAepiM,SAAQ,SAAUwM,GAC9CA,EAAQqmL,aAAY,MAExBpxL,KAAKy+Q,kBAAkB99E,IAE3Bk9E,EAAethR,UAAUsjM,WAAa,SAAUc,GAC5C3gM,KAAKy+Q,kBAAkB99E,IAE3Bk9E,EAAethR,UAAU+hR,eAAiB,SAAU39E,GAChD,IAAI4G,EAAuB5G,EAAcnB,WAAW+H,qBACpD,OAAOA,IAAyBvnM,KAAK8vG,mBAAmB03F,iBAE5Dq2E,EAAethR,UAAUmiR,yBAA2B,SAAU/9E,GAC1D,IAAIuH,EAAcloM,KAAKmoM,mBAAmBC,wBACtCu2E,EAAUz2E,EAAY7hM,SACtBu9L,EAAiBjD,EAAciD,eACnC,OAAQ+6E,EAAQ/jL,SAASgpG,IAE7Bi6E,EAAethR,UAAUkiR,kBAAoB,SAAU99E,GAEnD3gM,KAAKw+Q,kBAAkB7xJ,GAAO8E,oBAAqBkvE,GACnD3gM,KAAKqoQ,kBAAoB1nE,EACzB,IAAInQ,EAAQxwL,KAAK4+Q,kBAAkBhuB,sBAAsBjwD,GAAe5kL,EACpEqiQ,EAAcp+Q,KAAK8vG,mBAAmB02F,mBACtC43E,GACAp+Q,KAAK6+Q,cAAcl+E,EAAenQ,GAEtCxwL,KAAK8nQ,wBAAwBt3E,IAEjCqtF,EAAethR,UAAUsiR,cAAgB,SAAUl+E,EAAenQ,GAC9D,IACIvoB,EADAloK,EAAQC,KAERs+Q,EAAiBt+Q,KAAKs+Q,eAAe39E,GACrC29E,GACAr2G,EAAW,CAAC04B,EAAcP,SAASr1L,SAC/B/K,KAAK89Q,iBACL71G,EAAW21G,GAAiB59Q,KAAK6vL,oBAAoBmX,oBAAoBz4K,MAAK,SAAU5iB,EAAGxH,GAAK,OAAOpE,EAAM++Q,kBAAkBnzQ,GAAK5L,EAAM++Q,kBAAkB36Q,OAEhKw8L,EAAcP,SAASn4B,SAAWA,GAGlCA,EAAW04B,EAAcP,SAASn4B,SAEtC,IAAIm2G,EAAcp+Q,KAAK8vG,mBAAmB02F,mBACtC43E,GAAep+Q,KAAKuoM,yBAGpBvoM,KAAK8vG,mBAAmBozG,kCAAoCo7D,EACvDt+Q,KAAK0+Q,yBAAyB/9E,IAC/B3gM,KAAKs+N,mBAAmBygD,oBAAoB92G,EAAS,GAAIuoB,GAI7DxwL,KAAKg/Q,SAAS/2G,EAAUuoB,KAGhCqtF,EAAethR,UAAUuiR,kBAAoB,SAAU/zQ,GACnD,OAAOkV,SAASk8D,EAAKpxE,EAAQukL,oBAAoBj8K,MAAM,MAAO,KAElEwqQ,EAAethR,UAAU0iR,yBAA2B,SAAUt+E,GAC1D,IAAI5gM,EAAQC,KACRk/Q,EAAyBl/Q,KAAKs+N,mBAAmB6gD,4BACjDC,EAAUF,GAAiE,UAAvCA,EAAuB3wF,YAC3DiC,EAAQxwL,KAAK4+Q,kBAAkBhuB,sBAAsBjwD,GAAe5kL,EACpEksJ,EAAW04B,EAAcP,SAASn4B,SAClCo3G,EAAYD,EAAU,EAAI,EAC9B,GAAIp/Q,KAAKs+Q,eAAe39E,GACpB14B,EAAS1pK,SAAQ,SAAUwM,GACnBA,EAAQm1I,OAASswC,IACjB6uF,GAAa,MAGrBr/Q,KAAKg/Q,SAAS/2G,EAAUuoB,EAAO6uF,OAE9B,CACD,IAAIC,EAAiBt/Q,KAAK8vG,mBAAmBugF,mBACzCkvF,EAAWv/Q,KAAKs+N,mBAAmB+vB,mBAAmB79D,GAAS,EACP,UAAxDxwL,KAAKs+N,mBAAmBkhD,qBAAqBhvF,IAC7C+uF,IAEJv/Q,KAAKs+N,mBAAmBmhD,cAAc,CAClC5hL,IAAKoqE,EACAxgK,KAAI,SAAU+K,GAAQ,OAAOA,EAAKjS,QAClCgwF,QAAO,SAAUhwF,GAAQ,OAAQR,EAAMu+N,mBAAmBqQ,WAAW2wC,EAAiBA,EAAe/+Q,GAAQA,EAAKyoD,OACvHu2N,SAAUA,IAGlBv/Q,KAAK0/Q,qBAET7B,EAAethR,UAAUmjR,kBAAoB,WACzC1/Q,KAAKs+N,mBAAmBygD,oBAAoB,OAEhDlB,EAAethR,UAAUyiR,SAAW,SAAU/2G,EAAUuoB,EAAO6uF,QACzC,IAAdA,IAAwBA,EAAY,GACxC,IAAIM,EAAc3/Q,KAAKs+N,mBAAmBshD,kBAAkB33G,EAAUuoB,EAAO6uF,GACzEM,IACA3/Q,KAAKi6K,gBAAgB4lG,mBACjB7/Q,KAAK+yO,iBACL/yO,KAAK+yO,gBAAgB+sC,wBAIjCjC,EAAethR,UAAUurQ,wBAA0B,SAAUt3E,GAEzD,IAAI0X,EAAcloM,KAAKmoM,mBAAmBC,wBACtC23E,EAAa73E,EAAYylC,mBAAmBC,qBAEhD5tO,KAAKggR,aAAexvF,EAASuvF,EAAW7nM,IAAM,GAC9Cl4E,KAAKigR,eAAiBzvF,EAASuvF,EAAW5nM,OAAS,GAG/Cn4E,KAAKggR,cAAgBhgR,KAAKigR,eAC1BjgR,KAAKmoQ,wBAGLnoQ,KAAKynQ,yBAGboW,EAAethR,UAAU4rQ,sBAAwB,WACzCnoQ,KAAKwqQ,mBAGTxqQ,KAAKyqQ,cAAgB,EACrBzqQ,KAAKwqQ,iBAAmBj/P,OAAOy+F,YAAYhqG,KAAK2qQ,aAAalgQ,KAAKzK,MAAO,OAE7E69Q,EAAethR,UAAUkrQ,sBAAwB,WACxChnK,EAAOzgG,KAAKwqQ,oBAGjBj/P,OAAOw+F,cAAc/pG,KAAKwqQ,kBAC1BxqQ,KAAKwqQ,iBAAmB,OAE5BqT,EAAethR,UAAUouQ,aAAe,WAGpC,IAAIC,EACJ5qQ,KAAKyqQ,gBACLG,EAAe,GAA2B,EAArB5qQ,KAAKyqQ,cACtBG,EAAe,MACfA,EAAe,KAEnB,IAAIC,EAAc,KACd3iE,EAAcloM,KAAKmoM,mBAAmBC,wBACtCpoM,KAAKigR,eACLpV,EAAc3iE,EAAYg4E,iBAAiBtV,GAEtC5qQ,KAAKggR,eACVnV,EAAc3iE,EAAYg4E,kBAAkBtV,IAE5B,IAAhBC,GACA7qQ,KAAK6/L,WAAW7/L,KAAKqoQ,oBAG7BwV,EAAethR,UAAU4jR,eAAiB,SAAU/8Q,GAChD,IAAIrD,EAAQC,KACZ,GAAKoD,EAAOs+L,eAIZ,GAAI1hM,KAAKynM,mBAAmBtE,iBAAiB//L,GACzCH,QAAQkD,KAAK,iIADjB,CAIA,IAAIi6Q,EAAkB,CAClB1+E,aAAct+L,EAAOs+L,cAErBt+L,EAAOi9Q,UACPj9Q,EAAOi9Q,cAAWhhR,EAClB+gR,EAAkBh9Q,IAGdA,EAAO0+L,cACPs+E,EAAgBt+E,YAAc,SAAUt1L,GACpCpJ,EAAO0+L,YAAY/hM,EAAMugR,uBAAuB3zJ,GAAO6E,qBAAsBhlH,MAGjFpJ,EAAO8+L,cACPk+E,EAAgBl+E,YAAc,SAAU11L,GACpCpJ,EAAO8+L,YAAYniM,EAAMugR,uBAAuB3zJ,GAAO+E,qBAAsBllH,MAGjFpJ,EAAOy8L,aACPugF,EAAgBvgF,WAAa,SAAUrzL,GACnCpJ,EAAOy8L,WAAW9/L,EAAMugR,uBAAuB3zJ,GAAO8E,oBAAqBjlH,MAG/EpJ,EAAOw8L,aACPwgF,EAAgBxgF,WAAa,SAAUpzL,GACnCpJ,EAAOw8L,WAAW7/L,EAAMugR,uBAAuB3zJ,GAAOgF,mBAAoBnlH,OAItFxM,KAAKynM,mBAAmB3E,cAAc46E,GAAW,CAAE76E,eAAgB,SAAUpjM,GAAQ,OAAOA,IAASoP,EAAQ0vL,eAAe8I,SAAYpF,YAAa,WAAc,OAAOvD,GAAmB8G,WAActC,UAAU,GAAQk9E,SApCzNh4K,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,uEAAyE,+BAsC1H03Q,EAAethR,UAAUgkR,eAAiB,SAAUC,GAChD,IAAIzgR,EAAQC,KACR0hM,EAAe1hM,KAAK0hM,aAAaj3L,KAAKzK,MACtC8hM,EAAc9hM,KAAK8hM,YAAYr3L,KAAKzK,MACpCkiM,EAAcliM,KAAKkiM,YAAYz3L,KAAKzK,MACpC6/L,EAAa7/L,KAAK6/L,WAAWp1L,KAAKzK,MAClC4/L,EAAa5/L,KAAK4/L,WAAWn1L,KAAKzK,MACtC,OAAKwgR,EAGE,CACH9+E,aAAcA,EACdI,YAAa0+E,EAAO1+E,YACd,SAAWt1L,GACTs1L,EAAYt1L,GACZg0Q,EAAO1+E,YAAY/hM,EAAMugR,uBAAuB3zJ,GAAO6E,qBAAsBhlH,KAE/Es1L,EACNI,YAAas+E,EAAOt+E,YACd,SAAW11L,GACT01L,EAAY11L,GACZg0Q,EAAOt+E,YAAYniM,EAAMugR,uBAAuB3zJ,GAAO+E,qBAAsBllH,KAE/E01L,EACNrC,WAAY2gF,EAAO3gF,WACb,SAAWrzL,GACTqzL,EAAWrzL,GACXg0Q,EAAO3gF,WAAW9/L,EAAMugR,uBAAuB3zJ,GAAO8E,oBAAqBjlH,KAE7EqzL,EACND,WAAY4gF,EAAO5gF,WACb,SAAWpzL,GACTozL,EAAWpzL,GACXg0Q,EAAO5gF,WAAW7/L,EAAMugR,uBAAuB3zJ,GAAOgF,mBAAoBnlH,KAE5EozL,EACNygF,UAAU,GA5BH,CAAE3+E,aAAcA,EAAcI,YAAaA,EAAaI,YAAaA,EAAarC,WAAYA,EAAYD,WAAYA,EAA2BygF,UAAU,IA+B1KxC,EAAethR,UAAU+jR,uBAAyB,SAAU7gR,EAAMkhM,GAC9D,IAQI8/E,EARAC,EAAc1gR,KAAK4+Q,kBAAkBhuB,sBAAsBjwD,GAAe5kL,EAC1E4kQ,EAAqBD,EAAc1gR,KAAKw/I,gBAAgBa,uBACxDugI,GAAa,EACbC,EAAW,KAMf,OALKF,IACDC,EAAY5gR,KAAKk4I,SAASm2G,mBAAmBqyB,GAC7CG,EAAW7gR,KAAKk4I,SAAS4H,OAAO8gI,IAG5BjgF,EAAcM,YAClB,KAAKpyL,EAAQ2vL,kBAAkBmF,KAC3B88E,EAAmB,OACnB,MACJ,KAAK5xQ,EAAQ2vL,kBAAkBkF,GAC3B+8E,EAAmB,KACnB,MACJ,QACIA,EAAmB,KACnB,MAER,IAAIr5Q,EAAQ,CACR3H,KAAMA,EACNmK,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCtxG,MAAOu5L,EAAcv5L,MACrBoL,KAAMmuL,EAAcP,SAASr1L,QAC7BwhB,MAAOo0K,EAAcP,SAASn4B,SAC9B24G,UAAWA,EACXC,SAAUA,EACV9kQ,EAAG2kQ,EACHz/E,WAAYw/E,GAEhB,OAAOr5Q,GAEXy2Q,EAAethR,UAAUiiR,kBAAoB,SAAU/+Q,EAAMkhM,GACzD,IAAIv5L,EAAQpH,KAAKsgR,uBAAuB7gR,EAAMkhM,GAC9C3gM,KAAKq0G,aAAa5nG,cAAcrF,IAEpCy2Q,EAAethR,UAAU2lM,YAAc,SAAUvB,GAC7C3gM,KAAKw+Q,kBAAkB7xJ,GAAO+E,qBAAsBivE,GACpD3gM,KAAK8gR,aAAangF,GACd3gM,KAAK8vG,mBAAmB02F,oBACxBxmM,KAAK0/Q,oBAEL1/Q,KAAKs+Q,eAAe39E,KACpB3gM,KAAK89Q,gBAAiB,IAG9BD,EAAethR,UAAUqjM,WAAa,SAAUe,GAC5C3gM,KAAKw+Q,kBAAkB7xJ,GAAOgF,mBAAoBgvE,GAClD3gM,KAAK8gR,aAAangF,IACd3gM,KAAK8vG,mBAAmB02F,qBACvBxmM,KAAK8vG,mBAAmBozG,iCAAoCljN,KAAKs+Q,eAAe39E,IAChF3gM,KAAK0+Q,yBAAyB/9E,IAC/B3gM,KAAKi/Q,yBAAyBt+E,IAGtCk9E,EAAethR,UAAUukR,aAAe,SAAUngF,GAC9C3gM,KAAKynQ,wBACLznQ,KAAKq+Q,YAAY19E,GAAepiM,SAAQ,SAAUwM,GAC9CA,EAAQqmL,aAAY,OAG5BusF,GAAa,CACT/uK,GAAU,uBACXivK,EAAethR,UAAW,0BAAsB,GACnDohR,GAAa,CACT/uK,GAAU,aACXivK,EAAethR,UAAW,gBAAY,GACzCohR,GAAa,CACT/uK,GAAU,oBACXivK,EAAethR,UAAW,uBAAmB,GAChDohR,GAAa,CACT/uK,GAAU,qBACXivK,EAAethR,UAAW,wBAAoB,GACjDohR,GAAa,CACT/uK,GAAU,oBACXivK,EAAethR,UAAW,uBAAmB,GAChDohR,GAAa,CACT/uK,GAAU,mBACXivK,EAAethR,UAAW,sBAAkB,GAC/CohR,GAAa,CACT/uK,GAAU,kBACXivK,EAAethR,UAAW,qBAAiB,GAC9CohR,GAAa,CACT/uK,GAAU,wBACXivK,EAAethR,UAAW,2BAAuB,GACpDohR,GAAa,CACT7uK,GAAS,oBACV+uK,EAAethR,UAAW,uBAAmB,GAChDohR,GAAa,CACT/uK,GAAU,sBACXivK,EAAethR,UAAW,yBAAqB,GAClDohR,GAAa,CACT/uK,GAAU,uBACXivK,EAAethR,UAAW,0BAAsB,GACnDohR,GAAa,CACTrvK,IACDuvK,EAAethR,UAAW,gBAAiB,MACvCshR,EA/YwB,CAgZjCj3J,IAQEm6J,GAAqD,WACrD,IAAI98Q,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD08Q,GAAsD,SAAU3/Q,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;IAGhE,SAAWwzQ,GACPA,EAAuB,gBAAkB,mBACzCA,EAAuB,iBAAmB,uBAF9C,CAGGA,KAA2BA,GAAyB,KACvD,IAu8BI8I,GAv8BAC,GAA4B,gBAC5BC,GAAkC,2BAClCC,GAA0B,mBAC1BC,GAAoC,SAAUx8Q,GAE9C,SAASw8Q,IACL,OAAkB,OAAXx8Q,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA8P/D,OAhQA+gR,GAAaM,EAAoBx8Q,GAIjCw8Q,EAAmB9kR,UAAUoxO,iBAAmB,WAC5C,OAAO3tO,KAAKshR,mBAEhBD,EAAmB9kR,UAAUglR,uBAAyB,WAClD,OAAOvhR,KAAKy4Q,eAEhB4I,EAAmB9kR,UAAUilR,QAAU,SAAUhuQ,EAAMiuQ,EAAWhJ,EAAeiJ,EAAMC,GACnF3hR,KAAKwT,KAAOA,EACZxT,KAAKyhR,UAAYA,EACjBzhR,KAAKy4Q,cAAgBA,EACrBz4Q,KAAK0hR,KAAOA,EACZ1hR,KAAK2hR,QAAUA,EACf3hR,KAAK4hR,qBAAqB5hR,KAAK8vG,mBAAmBygH,0BAClDvwN,KAAKsnH,kBAAkB,IAAI8wJ,GAAcp4Q,KAAKwT,OAC9CxT,KAAKshR,kBAAoBthR,KAAKsnH,kBAAkB,IAAIkxJ,GAAsBx4Q,KAAKy4Q,gBAC/Ez4Q,KAAK6hR,qBACL7hR,KAAK8hR,4BACL9hR,KAAKmoM,mBAAmB45E,2BAA2B/hR,MACnDA,KAAKgiR,oBACLhiR,KAAKutQ,uBACLvtQ,KAAKiiR,0BACLjiR,KAAKkiR,qBACLliR,KAAKmiR,yBACLniR,KAAKoiR,oCAETf,EAAmB9kR,UAAUylR,kBAAoB,WAC7ChiR,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOO,2BAA4BltH,KAAKutQ,qBAAqB9iQ,KAAKzK,OAC7GA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqE,gCAAiChxH,KAAKwtQ,0BAA0B/iQ,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoB,8BAA+B/tH,KAAKkiR,mBAAmBz3Q,KAAKzK,QAGlHqhR,EAAmB9kR,UAAU8lR,mBAAqB,SAAUnuK,GACxDl0G,KAAKwT,KAAK6uQ,mBAAmBnuK,IAEjCmtK,EAAmB9kR,UAAUqlR,qBAAuB,SAAUxzF,QACvC,IAAfA,IAAyBA,GAAa,GAC1CpuL,KAAKwT,KAAK8uQ,qBAAqBl0F,IAEnCizF,EAAmB9kR,UAAUixQ,0BAA4B,WACrD,IAAI+U,EAAOviR,KAAK8tQ,qBAAqBvkH,0BACrCvpJ,KAAKwT,KAAKgvQ,gCAAgCD,IAE9ClB,EAAmB9kR,UAAUgxQ,qBAAuB,WAChD,IAAIpyK,EAAUn7F,KAAKm/I,iBAAiBnhB,oBACpCh+H,KAAKwT,KAAKivQ,eAAetnL,EAAUA,EAAQ19F,OAAS,IAIxD4jR,EAAmB9kR,UAAU4lR,uBAAyB,WAClDniR,KAAKmnH,mBAAmBnnH,KAAKyhR,UAAW,aAAa,SAAUr6Q,GAC3D,GAAIA,EAAMrL,kBAAkB2mR,iBAExB,OADAt7Q,EAAMuuK,kBACC,MAInB0rG,EAAmB9kR,UAAU6lR,iCAAmC,WAC5D,IAAIriR,EAAQC,KACZ,GAAKA,KAAK8vG,mBAAmB44G,kCAA7B,CAGA,IAAIi6D,EAAmB,SAAUv7Q,GAE7B,IAAIw7Q,EAAmBx7Q,EAAMqzK,cAC7B,GAAsC,OAAlC/4B,GAAYkhI,GAAhB,CAIA,IAAIC,EAEJC,EAAUryL,MAAK,SAAUsyL,GAAY,OAAOA,EAASnoL,SAASgoL,OAEvD7iR,EAAM6+Q,kBAAkBoE,oBAAoBJ,GACnD,IAAKC,EAAiB,CAClB,IAAI/0G,EAAe/tK,EAAM+tK,aACzB+0G,EACI/0G,EAAam1G,kBAAkBxyL,MAAK,SAAUyyL,GAAS,OAAOA,EAAMtoL,SAASgoL,OACzE90G,EAAaq1G,2BAA2BP,GAE/CC,GACD9iR,EAAM2yL,YAAYye,mBAflBpxM,EAAM2yL,YAAYye,eAkBtB2xE,EAAY,CAAC9iR,KAAKy4Q,cAAez4Q,KAAK2hR,QAAS3hR,KAAK0hR,MACxDoB,EAAUvkR,SAAQ,SAAUwkR,GAAY,OAAOhjR,EAAMonH,mBAAmB47J,EAAU,WAAYJ,QAElGtB,EAAmB9kR,UAAUgwP,eAAiB,WAC1C,IAAI62B,EAAcpjR,KAAKmvO,wBAAwB3yG,oBAC3C6mJ,EAAYrjR,KAAKw/I,gBAAgBm9B,UACjCrf,GAAY,EACZ+lH,IAAcjyK,GAAUU,6BACxBwrD,EAAW,EACXt9J,KAAKw/I,gBAAgB10I,aAAY,SAAU0H,GAClCA,EAAK0oF,OACNoiE,QAIZ,IAAI5hB,GAAsB,IAAd4hB,GAAmB,EAAK8lH,EAAc9lH,EAClDt9J,KAAKwT,KAAK8vQ,YAAY5nI,IAE1B2lI,EAAmB9kR,UAAUgnR,mCAAqC,SAAU9yK,GACxEzwG,KAAKwT,KAAK+vQ,mCAAmC9yK,IAEjD4wK,EAAmB9kR,UAAUimR,gCAAkC,SAAUztK,GACrE/0G,KAAKwT,KAAKgvQ,gCAAgCztK,IAE9CssK,EAAmB9kR,UAAUgtJ,wBAA0B,WACnD,IAAIu6D,EAA6B9jN,KAAK8vG,mBAAmBg0G,6BAEzD,OADA9jN,KAAKwT,KAAKgwQ,6BAA6B1/D,GAChCA,GAA8Bv6D,GAAwBvpJ,KAAKy4Q,gBAEtE4I,EAAmB9kR,UAAUulR,0BAA4B,WACrD,IAAI/hR,EAAQC,KACRywG,EAAW,WAGX,IAAI48G,EAActtN,EAAM+vG,mBAAmBs9G,kBAAoBrtN,EAAMgtO,0BAA0B02C,eAC/F1jR,EAAMyT,KAAKkwQ,iCAAiCr2D,IAEhD58G,IACAzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOgE,2BAA4BlgB,IAElF4wK,EAAmB9kR,UAAUonR,mBAAqB,WAC9C,OAAO3jR,KAAKyhR,WAEhBJ,EAAmB9kR,UAAU0lR,wBAA0B,WACnD,IAAIliR,EAAQC,KAGRywG,EAAW,SAAU82D,GACrB,IAAIxrK,EAASwpH,GAAUgiD,GACnBxrK,IAAWgE,EAAM04Q,eAAiB18Q,IAAWgE,EAAMooM,mBAAmBy/D,2BAA2BqR,sBAE7Fl5Q,EAAM6jR,oBACN7jR,EAAM6jR,mBAAmBC,cAAct8G,EAAY,KAAM,KAAM,KAAM,KAAMxnK,EAAM0hR,YAI7FzhR,KAAKmnH,mBAAmBnnH,KAAKy4Q,cAAe,cAAehoK,IAE/D4wK,EAAmB9kR,UAAU8J,OAAS,WAClC,OAAOrG,KAAKyhR,WAGhBJ,EAAmB9kR,UAAU2jR,iBAAmB,SAAUxzC,GACtD,IAAI4uC,EAAoBt7Q,KAAKy4Q,cAAch0E,UAE3C,OADAzkM,KAAKshR,kBAAkBnG,0BAA0BG,EAAoB5uC,GAC9D1sO,KAAKy4Q,cAAch0E,UAAY62E,GAI1C+F,EAAmB9kR,UAAUunR,kBAAoB,WAC7C,GAAK9jR,KAAKy4Q,cAGV,OAAOz4Q,KAAKy4Q,cAAc/1E,yBAE9B2+E,EAAmB9kR,UAAUslR,mBAAqB,WAC9C7hR,KAAKqoM,eAAiBroM,KAAKsnH,kBAAkB,IAAIu2J,GAAe79Q,KAAKy4Q,gBACrEz4Q,KAAKynM,mBAAmB3E,cAAc9iM,KAAKqoM,iBAE/Cg5E,EAAmB9kR,UAAU+rM,kBAAoB,WAC7C,OAAOtoM,KAAKqoM,gBAEhBg5E,EAAmB9kR,UAAU2lR,mBAAqB,WAC9C,IAAI75B,EAAiBroP,KAAKqoP,eACtB07B,EAAoB17B,EAAe27B,0BACnCD,IAEAA,GAAqB,GAEzB,IAAIE,EAAuB57B,EAAe67B,6BACtCD,IAEAA,GAAwB,GAE5BjkR,KAAKwT,KAAK2wQ,aAAaJ,GACvB/jR,KAAKwT,KAAK4wQ,gBAAgBH,GAC1BjkR,KAAKwT,KAAK6wQ,cAAcN,EAAoB,UAAY,QACxD/jR,KAAKwT,KAAK8wQ,iBAAiBL,EAAuB,UAAY,SAIlE5C,EAAmB9kR,UAAUujG,iBAAmB,SAAUykL,GACtD,IAAIxkR,EAAQC,KAGRwkR,EAAoBxkR,KAAKupJ,4BAA8B7I,KACvD+jI,EAAsBD,EAAoBxkR,KAAK8vG,mBAAmByyC,oBAAsB,EACxFmiI,EAAoB59H,GAAc9mJ,KAAKy4Q,eACvCxO,EAAiBya,EAAoBD,EACrCxa,EAAiB,EACjBjqQ,KAAKm/I,iBAAiBr/C,iBAAiBmqK,EAAgB,yBAGvC5qQ,IAAhBklR,EACAh5Q,OAAOE,YAAW,WACd1L,EAAM+/F,iBAAiB,OACxB,GAEkB,MAAhBykL,EACLh5Q,OAAOE,YAAW,WACd1L,EAAM+/F,iBAAiB,OACxB,KAEkB,MAAhBykL,EACLh5Q,OAAOE,YAAW,WACd1L,EAAM+/F,kBAAkB,KACzB,KAGH78F,QAAQkD,KAAK,4IAIrB66Q,GAAa,CACTpyK,GAAU,8BACXyyK,EAAmB9kR,UAAW,iCAA6B,GAC9DykR,GAAa,CACTpyK,GAAU,uBACXyyK,EAAmB9kR,UAAW,0BAAsB,GACvDykR,GAAa,CACTpyK,GAAU,qBACXyyK,EAAmB9kR,UAAW,wBAAoB,GACrDykR,GAAa,CACTpyK,GAAU,yBACXyyK,EAAmB9kR,UAAW,4BAAwB,GACzDykR,GAAa,CACTlyK,GAAS,uBACVuyK,EAAmB9kR,UAAW,0BAAsB,GACvDykR,GAAa,CACTpyK,GAAU,4BACXyyK,EAAmB9kR,UAAW,+BAA2B,GAC5DykR,GAAa,CACTpyK,GAAU,oBACXyyK,EAAmB9kR,UAAW,uBAAmB,GACpDykR,GAAa,CACTpyK,GAAU,uBACXyyK,EAAmB9kR,UAAW,0BAAsB,GACvDykR,GAAa,CACTpyK,GAAU,mBACXyyK,EAAmB9kR,UAAW,sBAAkB,GACnDykR,GAAa,CACTpyK,GAAU,gBACXyyK,EAAmB9kR,UAAW,mBAAe,GAChDykR,GAAa,CACTpyK,GAAU,iBACXyyK,EAAmB9kR,UAAW,oBAAgB,GACjDykR,GAAa,CACTpyK,GAAU,sBACXyyK,EAAmB9kR,UAAW,yBAAqB,GAC/C8kR,EAjQ4B,CAkQrCz6J,IAQE+9J,GAAqD,WACrD,IAAI1gR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDsgR,GAAsD,SAAUvjR,EAAYtF,EAAQU,EAAKgI,GACzF,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DkgR,GAA2C,SAAUhgR,GAErD,SAASggR,EAA0B16L,GAC/B,IAAIpqF,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMoqF,QAAUA,EACTpqF,EAqRX,OAzRA4kR,GAAaE,EAA2BhgR,GAMxCggR,EAA0BtoR,UAAUwiJ,cAAgB,WAChD/+I,KAAK8kR,oBACL9kR,KAAK+kR,yBACL/kR,KAAKglR,qBAETH,EAA0BtoR,UAAUyoR,kBAAoB,WACpD,IAAIjlR,EAAQC,KACRilR,EAAa,CAAC,UAAW,YAC7BA,EAAW1mR,SAAQ,SAAU0mH,GACzB,IAAIxU,EAAW1wG,EAAMmlR,qBAAqBz6Q,KAAK1K,EAAOklH,GACtDllH,EAAMonH,mBAAmBpnH,EAAMoqF,QAAS86B,EAAWxU,OAG3Do0K,EAA0BtoR,UAAUuoR,kBAAoB,WACpD,IAAI/kR,EAAQC,KACRilR,EAAa,CAAC,WAAY,cAAe,YAAa,WAAY,QAAS,aAC/EA,EAAW1mR,SAAQ,SAAU0mH,GACzB,IAAIxU,EAAW1wG,EAAMolR,kBAAkB16Q,KAAK1K,EAAOklH,GACnDllH,EAAMonH,mBAAmBpnH,EAAMoqF,QAAS86B,EAAWxU,OAG3Do0K,EAA0BtoR,UAAU4oR,kBAAoB,SAAUlgK,EAAWsiD,GACzE,GAAKvnK,KAAK4+Q,kBAAkBwG,oBAAoB79G,KAC5C9iD,GAA2B8iD,GAD/B,CAIA,IAAI28D,EAAUlkO,KAAKqlR,eAAe99G,GAC9By9D,EAAWhlO,KAAK4+Q,kBAAkB0G,wBAAwB/9G,GAC5C,gBAAdtiD,EACAjlH,KAAKulR,4BAA4Bh+G,EAAY,KAAM28D,EAASc,IAGxDA,GACAA,EAAS0E,aAAazkH,EAAWsiD,GAEjC28D,GACAA,EAAQwF,aAAazkH,EAAWsiD,MAI5Cs9G,EAA0BtoR,UAAUwoR,uBAAyB,WACzD,IAAIhlR,EAAQC,KAEZ,GAAKshJ,KAAL,CAGA,IAAIqpC,EAAgB,IAAItD,GAAcrnL,KAAKmqF,SACvCq7L,EAAkB,SAAUp+Q,GAC5B,IAAI88N,EAAUnkO,EAAMslR,eAAej+Q,EAAM+gL,YACrC68C,EAAWjlO,EAAM6+Q,kBAAkB0G,wBAAwBl+Q,EAAM+gL,YACrEpoL,EAAMwlR,4BAA4B,KAAMn+Q,EAAM+gL,WAAY+7C,EAASc,IAEvEhlO,KAAKmnH,mBAAmBwjE,EAAetD,GAAcmB,eAAgBg9F,GACrExlR,KAAKqnH,gBAAe,WAAc,OAAOsjE,EAAcvkL,eAE3Dy+Q,EAA0BtoR,UAAU8oR,eAAiB,SAAUj+Q,GAC3D,IAAIk+G,EAAgBC,GAAUn+G,GAC9B,MAAOk+G,EAAe,CAClB,IAAImjI,EAASzoP,KAAK8vG,mBAAmB2V,WAAWH,EAAek9G,GAAcgN,2BAC7E,GAAIiZ,EACA,OAAOA,EAEXnjI,EAAgBA,EAAcI,cAElC,OAAO,MAEXm/J,EAA0BtoR,UAAUgpR,4BAA8B,SAAUh+G,EAAY4gB,EAAY+7C,EAASc,GACzG,IAAIj6N,EAAUm5N,EAAUA,EAAQyK,aAAe,KAC3CjnO,EAASs9N,EAAWA,EAASj2F,YAAc,KAC3CryI,EAAQ,KACZ,GAAIgL,EAAQ,CACR,IAAIk8G,EAAU2jD,GAA0B4gB,EACxC68C,EAASiX,6BAA6Br4H,GACtClnH,EAAQsD,KAAKmgJ,aAAahS,SAASzmI,EAAQqD,GAG/C,IAAIm9L,EAAcloM,KAAKmoM,mBAAmBC,wBACtCi2C,EAAkBrZ,EAAWA,EAAS3+N,SAAW6hM,EAAYy7E,qBAC7D3jR,KAAK4jR,oBACL5jR,KAAK4jR,mBAAmBC,cAAct8G,EAAY4gB,EAAYp9K,EAASrD,EAAQhL,EAAO2hP,IAG9FwmC,EAA0BtoR,UAAU2oR,qBAAuB,SAAUjgK,EAAWqgD,GAC5E,IAAI0/D,EAAW3/G,GAAqBrlH,KAAK8vG,mBAAoBw1D,EAAe,YACxE4+D,EAAU7+G,GAAqBrlH,KAAK8vG,mBAAoBw1D,EAAe,eACvEA,EAAc+U,mBAGd2qD,EACAhlO,KAAKylR,yBAAyBzgD,EAAU//G,EAAWqgD,GAE9C4+D,GAAWA,EAAQ6B,eACxB/lO,KAAK0lR,iCAAiCxhD,EAASj/G,EAAWqgD,KAGlEu/G,EAA0BtoR,UAAUkpR,yBAA2B,SAAUzgD,EAAU//G,EAAWqgD,GAC1F,IAAIv6J,EAAUi6N,EAASoS,iBAAiBzI,aACpCjnO,EAASs9N,EAASj2F,YAClBw2B,EAAUy/D,EAASsB,YACnBq/C,GAAyBtgH,GAA+BrlK,KAAK8vG,mBAAoBw1D,EAAev6J,EAASrD,EAAQ69J,GACrH,GAAIogH,EACA,OAAQ1gK,GACJ,IAAK,UAED,IAAI2gK,GAAgBrgH,GAAWvlK,KAAK6lR,kBAAkBC,uBAAuBxgH,GAExEsgH,GACD5gD,EAASz4D,UAAUjH,GAGvBtlK,KAAK+lR,iBAAiBzgH,EAAe0/D,GACrC,MACJ,IAAK,WACDA,EAAS2a,WAAWr6E,GACpB,MAGZ,GAAkB,YAAdrgD,EAAyB,CACzB,IAAI+gK,EAAmBhhD,EAASp4N,YAAY04J,EAAe34C,GAAOyC,qBAClEpvH,KAAKq0G,aAAa5nG,cAAcu5Q,GAEpC,GAAkB,aAAd/gK,EAA0B,CAC1B,IAAIghK,EAAoBjhD,EAASp4N,YAAY04J,EAAe34C,GAAO0C,sBACnErvH,KAAKq0G,aAAa5nG,cAAcw5Q,KAGxCpB,EAA0BtoR,UAAUmpR,iCAAmC,SAAUxhD,EAASj/G,EAAWqgD,GACjG,IAAIv6J,EAAUm5N,EAAQyK,aAClBqa,EAAchpP,KAAKi6K,gBAAgBkvD,iBACnCzhO,EAAUshP,GAAeA,EAAYthP,OACrCi+Q,GAAyBtgH,GAA+BrlK,KAAK8vG,mBAAoBw1D,EAAev6J,EAASrD,GAAQ,GACrH,GAAIi+Q,EAAuB,CACvB,IAAIlpR,EAAM6oK,EAAc7oK,IACxB,GAAkB,YAAdwoH,EACA,OAAQxoH,GACJ,KAAKs0Q,GAAQ18F,GACb,KAAK08F,GAAQx8F,KACT2vD,EAAQ4E,mBAAmBxjE,GAC3B,MACJ,KAAKyrG,GAAQh9F,IACTmwD,EAAQ9pD,aAAa9U,IAIrC,GAAkB,YAAdrgD,EAAyB,CACzB,IAAI+gK,EAAmB9hD,EAAQ4F,eAAen9G,GAAOyC,oBAAqBk2C,GAC1EtlK,KAAKq0G,aAAa5nG,cAAcu5Q,GAEpC,GAAkB,aAAd/gK,EAA0B,CAC1B,IAAIghK,EAAoB/hD,EAAQ4F,eAAen9G,GAAO0C,qBAAsBi2C,GAC5EtlK,KAAKq0G,aAAa5nG,cAAcw5Q,KAGxCpB,EAA0BtoR,UAAUwpR,iBAAmB,SAAUzgH,EAAe0/D,GAE5E,IAAK1/D,EAAcL,SAAYK,EAAc5mK,WAMzCsmO,EAASsB,aAKRtmO,KAAK4+Q,kBAAkBwG,oBAAoB9/G,GAGhD,OAAQA,EAAcT,OAClB,KAAKgP,GAAQ14J,EACT,OAAOnb,KAAKkmR,WAAW5gH,GAC3B,KAAKuO,GAAQjtJ,EACT,OAAO5mB,KAAKmmR,WAAW7gH,GAC3B,KAAKuO,GAAQj2J,EACT,OAAO5d,KAAKomR,aAChB,KAAKvyG,GAAQp5J,EACT,OAAOza,KAAKqmR,WAAW/gH,GAC3B,KAAKuO,GAAQ1sJ,EACT,OAAOm+I,EAAc1kC,SAAW5gI,KAAKsmR,gBAAgBC,OAASvmR,KAAKsmR,gBAAgBE,OACvF,KAAK3yG,GAAQ/uJ,EACT,OAAO9kB,KAAKsmR,gBAAgBC,SAGxC1B,EAA0BtoR,UAAU2pR,WAAa,SAAU9+Q,GACvD,IAAIkmF,EAAKttF,KAAMqoP,EAAiB/6J,EAAG+6J,eAAgB7oG,EAAkBlyD,EAAGkyD,gBAAiBuzF,EAAkBzlJ,EAAGylJ,gBAC1G5gI,EAAgBf,GAAUe,cAAeD,EAAad,GAAUc,WACpE,GAAI6gI,GAAmBvzF,EAAgB6tG,iBAAkB,CACrD,IAAIt+J,EAAK,CACLs5J,EAAezhH,QAAQ10B,GACvBm2I,EAAezhH,QAAQz0B,IACxBs0K,EAAmB13L,EAAG,GAAI23L,EAAsB33L,EAAG,GAClD43L,EAAgBF,EAAmB,KAAOv0K,EAC1C00K,OAAc,EACdC,OAAS,EACTH,GACAE,EAAc,KACdC,EAAS7mR,KAAKw/I,gBAAgBg8H,cAAgB,IAG9CoL,EAAcz0K,EACd00K,EAASx+B,EAAe5jC,yBAAyBhnN,OAAS,GAE9D,IAAIq+H,EAAsB97H,KAAKm/I,iBAAiBpjB,yBAChD,GAAIn7B,EAAek7B,GACf,OAEJi3G,EAAgB+zC,aAAa,CACzBC,cAAe,EACfC,eAAgBL,EAChBM,YAAaJ,EACbK,aAAcN,EACdO,YAAarrJ,EAAoB,GACjCsrJ,UAAWjrM,EAAK2/C,KAGxB10H,EAAMuuK,kBAEVkvG,EAA0BtoR,UAAU4pR,WAAa,SAAU/+Q,GAClDpH,KAAKqnR,mBAAoBrnR,KAAK8vG,mBAAmBkgH,8BAGtDhwN,KAAKqnR,iBAAiBC,kBACtBlgR,EAAMuuK,mBAEVkvG,EAA0BtoR,UAAU6pR,WAAa,WACzCnzK,GAAeQ,aAAa5kG,EAAQmkG,YAAYu0K,mBAAqBvnR,KAAK8vG,mBAAmBy8G,4BAC7FvsN,KAAKqnR,iBAAiBG,sBAG9B3C,EAA0BtoR,UAAU8pR,WAAa,SAAUj/Q,GACnD6rG,GAAeQ,aAAa5kG,EAAQmkG,YAAYu0K,mBAAqBvnR,KAAK8vG,mBAAmBy8G,4BAC7FvsN,KAAKqnR,iBAAiBI,gBAE1BrgR,EAAMuuK,kBAEVivG,GAAa,CACTh2K,GAAU,sBACXi2K,EAA0BtoR,UAAW,yBAAqB,GAC7DqoR,GAAa,CACTh2K,GAAU,iBACXi2K,EAA0BtoR,UAAW,oBAAgB,GACxDqoR,GAAa,CACT91K,GAAS,uBACV+1K,EAA0BtoR,UAAW,0BAAsB,GAC9DqoR,GAAa,CACTh2K,GAAU,uBACXi2K,EAA0BtoR,UAAW,0BAAsB,GAC9DqoR,GAAa,CACTh2K,GAAU,sBACXi2K,EAA0BtoR,UAAW,yBAAqB,GAC7DqoR,GAAa,CACTh2K,GAAU,oBACXi2K,EAA0BtoR,UAAW,uBAAmB,GAC3DqoR,GAAa,CACTh2K,GAAU,oBACXi2K,EAA0BtoR,UAAW,uBAAmB,GAC3DqoR,GAAa,CACTh2K,GAAU,qBACXi2K,EAA0BtoR,UAAW,wBAAoB,GAC5DqoR,GAAa,CACTh2K,GAAU,oBACXi2K,EAA0BtoR,UAAW,uBAAmB,GAC3DqoR,GAAa,CACTh2K,GAAU,mBACXi2K,EAA0BtoR,UAAW,sBAAkB,GAC1DqoR,GAAa,CACT91K,GAAS,oBACV+1K,EAA0BtoR,UAAW,uBAAmB,GAC3DqoR,GAAa,CACT91K,GAAS,qBACV+1K,EAA0BtoR,UAAW,wBAAoB,GAC5DqoR,GAAa,CACTt2K,IACDu2K,EAA0BtoR,UAAW,gBAAiB,MAClDsoR,EA1RmC,CA2R5Cj+J,IAQE8gK,GAAqD,WACrD,IAAIzjR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDqjR,GAAuD,SAAUtmR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAK5DijR,GAAqC,SAAU/iR,GAE/C,SAAS+iR,EAAoBxgB,GACzB,IAAIrnQ,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAM8nR,mBAAqBzgB,EACpBrnQ,EA6GX,OAjHA2nR,GAAaE,EAAqB/iR,GAMlC+iR,EAAoBrrR,UAAUwiJ,cAAgB,WAC1C,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,WAC9BvmP,EAAMmoM,YAAcnoM,EAAMooM,mBAAmBC,wBAC7CroM,EAAM+nR,qBAEV9nR,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqD,8BAA+BhwH,KAAKytQ,wBAAwBhjQ,KAAKzK,QAEvH4nR,EAAoBrrR,UAAUurR,gBAAkB,WAC5C,IAAIr3K,EAAWzwG,KAAK+nR,wBAAwBt9Q,KAAKzK,MAEjDA,KAAK6nR,mBAAmBG,+BAA+Bv3K,GAEvDzwG,KAAKkoM,YAAYq7E,mCAAmC9yK,IAExDm3K,EAAoBrrR,UAAUkxQ,wBAA0B,WACpDztQ,KAAKioR,2BAETL,EAAoBrrR,UAAUwrR,wBAA0B,WACpD,GAAI/nR,KAAK6nR,mBAAmBK,oBAAqB,CAC7CloR,KAAKioR,0BACL,IAAI3sJ,EAAWt7H,KAAK6nR,mBAAmB3f,iBACnC5sI,IAAat7H,KAAKoxQ,cAClBpxQ,KAAKoxQ,YAAc91I,EACnBt7H,KAAKm/I,iBAAiBlc,qBAAqB,CAAEkU,cAAen3I,KAAKoxQ,YAAa/tI,kBAAkB,EAAM4U,kBAAkB,UAI5Hj4I,KAAKmoR,WAAa,GAK1BP,EAAoBrrR,UAAU0rR,wBAA0B,WAEpDjoR,KAAKooR,6BAELpoR,KAAKqoR,kBAELroR,KAAKy6Q,8BACLz6Q,KAAKkoM,YAAYylC,mBAAmBitC,mBAExCgN,EAAoBrrR,UAAUonJ,cAAgB,WAC1C,OAAO3jJ,KAAKmoR,YAEhBP,EAAoBrrR,UAAU8rR,gBAAkB,WAC5C,IAAI5P,EAAgBz4Q,KAAKkoM,YAAYq5E,yBACjC4G,EAAathI,GAAe4xH,GAChC,GAAIz4Q,KAAKmoR,aAAeA,EAAY,CAChCnoR,KAAKmoR,WAAaA,EAClB,IAAIvkK,EAAU,CACVnkH,KAAMktH,GAAOmE,0BACblnH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcm3G,KAGxCgkK,EAAoBrrR,UAAU6rR,2BAA6B,WAOvDpoR,KAAKsoR,iCACL78Q,WAAWzL,KAAKsoR,+BAA+B79Q,KAAKzK,MAAO,MAE/D4nR,EAAoBrrR,UAAU+rR,+BAAiC,WAC3D,IAAIllR,EAAS,CACTmlR,wBAAyBvoR,KAAKspJ,4BAC9Bk/H,sBAAuBxoR,KAAKkoM,YAAY3+C,2BAE5CvpJ,KAAK8tQ,qBAAqB2a,kBAAkBrlR,GAE5CpD,KAAKkoM,YAAYs6E,gCAAgCp/Q,EAAOolR,wBAE5DZ,EAAoBrrR,UAAU+sJ,0BAA4B,WACtD,IAAIs6D,EAA+B5jN,KAAK8vG,mBAAmB8zG,+BAC3D,OAAOA,GAAgC5jN,KAAK6nR,mBAAmBa,4BAKnEd,EAAoBrrR,UAAUk+Q,4BAA8B,WACxD,IAAIphJ,EAAcr5H,KAAK6nR,mBAAmB3f,iBACtC9uI,EAAiBp5H,KAAK6nR,mBAAmBc,wBAC7C3oR,KAAKm/I,iBAAiBtlB,oBAAoBR,EAAaD,IAE3DuuJ,GAAc,CACV/4K,GAAU,uBACXg5K,EAAoBrrR,UAAW,0BAAsB,GACxDorR,GAAc,CACV/4K,GAAU,qBACXg5K,EAAoBrrR,UAAW,wBAAoB,GACtDorR,GAAc,CACV/4K,GAAU,yBACXg5K,EAAoBrrR,UAAW,4BAAwB,GAC1DorR,GAAc,CACV/4K,GAAU,cACXg5K,EAAoBrrR,UAAW,iBAAa,GAC/CorR,GAAc,CACV/4K,GAAU,YACXg5K,EAAoBrrR,UAAW,eAAW,GAC7CorR,GAAc,CACVr5K,IACDs5K,EAAoBrrR,UAAW,gBAAiB,MAC5CqrR,EAlH6B,CAmHtChhK,IAQEgiK,GAAqD,WACrD,IAAI3kR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDukR,GAAuD,SAAUxnR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmkR,GAA2C,SAAUjkR,GAErD,SAASikR,EAA0B3+L,GAC/B,IAAIpqF,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMoqF,QAAUA,EACTpqF,EAmBX,OAvBA6oR,GAAaE,EAA2BjkR,GAMxCikR,EAA0BvsR,UAAUwiJ,cAAgB,WAChD/+I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO0E,gCAAiCrxH,KAAKgyQ,yBAAyBvnQ,KAAKzK,QAE1H8oR,EAA0BvsR,UAAUy1Q,yBAA2B,WAC3D,IAAIh8I,EAAYh2H,KAAK0yQ,mBAAmBC,qBACpCltH,EAAYzvB,EAAY,EAC5BwvB,GAAaxlJ,KAAKmqF,QAASs7D,GACvBA,GACAkE,GAAc3pJ,KAAKmqF,QAAS6rC,IAGpC6yJ,GAAc,CACVj6K,GAAU,uBACXk6K,EAA0BvsR,UAAW,0BAAsB,GAC9DssR,GAAc,CACVv6K,IACDw6K,EAA0BvsR,UAAW,gBAAiB,MAClDusR,EAxBmC,CAyB5CliK,IAQEmiK,GAAqD,WACrD,IAAI9kR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0kR,GAAuD,SAAU3nR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DskR,GAA4C,SAAUpkR,GAEtD,SAASokR,EAA2B9+L,GAChC,IAAIpqF,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMoqF,QAAUA,EACTpqF,EAmBX,OAvBAgpR,GAAaE,EAA4BpkR,GAMzCokR,EAA2B1sR,UAAUwiJ,cAAgB,WACjD/+I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2E,iCAAkCtxH,KAAKiyQ,0BAA0BxnQ,KAAKzK,QAE5HipR,EAA2B1sR,UAAU01Q,0BAA4B,WAC7D,IAAIh8I,EAAaj2H,KAAK0yQ,mBAAmBE,sBACrCntH,EAAYxvB,EAAa,EAC7BuvB,GAAaxlJ,KAAKmqF,QAASs7D,GACvBA,GACAkE,GAAc3pJ,KAAKmqF,QAAS8rC,IAGpC+yJ,GAAc,CACVp6K,GAAU,uBACXq6K,EAA2B1sR,UAAW,0BAAsB,GAC/DysR,GAAc,CACV16K,IACD26K,EAA2B1sR,UAAW,gBAAiB,MACnD0sR,EAxBoC,CAyB7CriK,IAQEsiK,GAAqD,WACrD,IAAIjlR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD6kR,GAAuD,SAAU9nR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DykR,GAAkC,SAAUvkR,GAE5C,SAASukR,EAAiBjhI,EAAYovG,GAClC,IAAIx3P,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAGjC,OAFAD,EAAMooJ,WAAaA,EACnBpoJ,EAAMw3P,SAAWA,EACVx3P,EAmBX,OAxBAmpR,GAAaE,EAAkBvkR,GAO/BukR,EAAiB7sR,UAAUwiJ,cAAgB,WACvC/+I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO4E,mCAAoCvxH,KAAKqpR,gBAAgB5+Q,KAAKzK,QAEpHopR,EAAiB7sR,UAAU8sR,gBAAkB,WACzC,IAAIzuM,EAAS56E,KAAKspR,mBAAmBC,uBACjCC,EAAyB,MAAV5uM,EAAiBA,EAAS,KAAO,GACpD56E,KAAKmoJ,WAAWhwG,MAAMyiC,OAAS4uM,EAC3BxpR,KAAKu3P,WACLv3P,KAAKu3P,SAASp/M,MAAMyiC,OAAS4uM,IAGrCL,GAAc,CACVv6K,GAAU,8BACXw6K,EAAiB7sR,UAAW,0BAAsB,GACrD4sR,GAAc,CACV76K,IACD86K,EAAiB7sR,UAAW,gBAAiB,MACzC6sR,EAzB0B,CA0BnCxiK,IAQE6iK,GAAqD,WACrD,IAAIxlR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDolR,GAAuD,SAAUroR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DglR,GAAqC,SAAU9kR,GAE/C,SAAS8kR,EAAoBxhI,GACzB,IAAIpoJ,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMooJ,WAAaA,EACZpoJ,EA2BX,OA/BA0pR,GAAaE,EAAqB9kR,GAMlC8kR,EAAoBptR,UAAUwiJ,cAAgB,WAC1C,IAAIh/I,EAAQC,KACZ,GAAKA,KAAK8vG,mBAAmByuG,2BACzB59G,EAAQ3gG,KAAK+yO,iBADjB,CAKA,IAAI3vO,EAAS,CACTmjH,SAAUvmH,KAAKmoJ,WACfw3C,YAAa3/L,KAAK+yO,gBAAgBpzC,YAAYl1L,KAAKzK,KAAK+yO,iBACxDnzC,WAAY5/L,KAAK+yO,gBAAgBnzC,WAAWn1L,KAAKzK,KAAK+yO,iBACtDlzC,WAAY7/L,KAAK+yO,gBAAgBlzC,WAAWp1L,KAAKzK,KAAK+yO,kBAE1D/yO,KAAK8/L,YAAYP,cAAcn8L,GAC/BpD,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM+/L,YAAYC,iBAAiB38L,QAEhFsmR,GAAc,CACV56K,GAAS,oBACV66K,EAAoBptR,UAAW,uBAAmB,GACrDmtR,GAAc,CACV96K,GAAU,gBACX+6K,EAAoBptR,UAAW,mBAAe,GACjDmtR,GAAc,CACVp7K,IACDq7K,EAAoBptR,UAAW,gBAAiB,MAC5CotR,EAhC6B,CAiCtC/iK,IAQEgjK,GAAqD,WACrD,IAAI3lR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDulR,GAAuD,SAAUxoR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmlR,GAA8D,WAC9D,IAAK,IAAI12Q,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,IAGX,SAAWs8Q,GACPA,EAAkB,QAAU,OAC5BA,EAAkB,SAAW,QAC7BA,EAAkB,UAAY,SAC9BA,EAAkB,cAAgB,YAClCA,EAAkB,YAAc,UAChCA,EAAkB,aAAe,WACjCA,EAAkB,cAAgB,YAClCA,EAAkB,iBAAmB,eACrCA,EAAkB,eAAiB,aACnCA,EAAkB,gBAAkB,cACpCA,EAAkB,iBAAmB,eACrCA,EAAkB,oBAAsB,mBAZ5C,CAaGA,KAAsBA,GAAoB,KAC7C,IAAI8I,GAAsBt1J,GAAa,CACnC,CAACwsJ,GAAkB+I,OAAQ,4BAC3B,CAAC/I,GAAkB7sG,KAAM,iCACzB,CAAC6sG,GAAkB3sG,MAAO,kCAC1B,CAAC2sG,GAAkBgJ,WAAY,2BAC/B,CAAChJ,GAAkBiJ,WAAY,6BAC/B,CAACjJ,GAAkBkJ,SAAU,+BAC7B,CAAClJ,GAAkBmJ,UAAW,gCAC9B,CAACnJ,GAAkBoJ,cAAe,wCAClC,CAACpJ,GAAkBqJ,cAAe,gCAClC,CAACrJ,GAAkBsJ,YAAa,kCAChC,CAACtJ,GAAkBuJ,aAAc,mCACjC,CAACvJ,GAAkBwJ,iBAAkB,6CAErCC,GAAqBj2J,GAAa,CAClC,CAACwsJ,GAAkB+I,OAAQ,2BAC3B,CAAC/I,GAAkBiJ,WAAY,4BAC/B,CAACjJ,GAAkBqJ,cAAe,iCAElCK,GAAoBl2J,GAAa,CACjC,CAACwsJ,GAAkB+I,OAAQ,4BAE3BY,GAAwC,SAAU/lR,GAElD,SAAS+lR,EAAuBhqR,GAC5B,IAAIb,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAEjC,OADAD,EAAMa,KAAOA,EACNb,EA6KX,OAjLA6pR,GAAagB,EAAwB/lR,GAMrC+lR,EAAuBruR,UAAUwiJ,cAAgB,WAC7C,IAAIh/I,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqE,gCAAiChxH,KAAKwtQ,0BAA0B/iQ,KAAKzK,OACvHA,KAAKgqN,UAAYhqN,KAAK8vG,mBAAmB6Q,cACzC3gH,KAAK6qR,cAAc,CAAC5J,GAAkB+I,SAAS,WAAc,OAAOjqR,EAAM+qR,oBAAsB/qR,EAAMunH,kBAAkB,IAAIsgK,GAAoB7nR,OAChJC,KAAK+qR,iCACL/qR,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuC/wH,KAAK64Q,+BAA+BpuQ,KAAKzK,QAEtI4qR,EAAuBruR,UAAUwuR,+BAAiC,WAC9D,OAAQ/qR,KAAKY,MACT,KAAKqgR,GAAkB+I,OACnBhqR,KAAKmoM,mBAAmB6iF,8BAA8BhrR,MACtD,MACJ,KAAKihR,GAAkB7sG,KACnBp0K,KAAKmoM,mBAAmB8iF,4BAA4BjrR,MACpD,MACJ,KAAKihR,GAAkB3sG,MACnBt0K,KAAKmoM,mBAAmB+iF,6BAA6BlrR,MACrD,MACJ,KAAKihR,GAAkBiJ,WACnBlqR,KAAKmoM,mBAAmBgjF,iCAAiCnrR,MACzD,MACJ,KAAKihR,GAAkBkJ,SACnBnqR,KAAKmoM,mBAAmBijF,+BAA+BprR,MACvD,MACJ,KAAKihR,GAAkBmJ,UACnBpqR,KAAKmoM,mBAAmBkjF,gCAAgCrrR,MACxD,MACJ,KAAKihR,GAAkBqJ,cACnBtqR,KAAKmoM,mBAAmBmjF,oCAAoCtrR,MAC5D,MACJ,KAAKihR,GAAkBsJ,YACnBvqR,KAAKmoM,mBAAmBojF,kCAAkCvrR,MAC1D,MACJ,KAAKihR,GAAkBuJ,aACnBxqR,KAAKmoM,mBAAmBqjF,mCAAmCxrR,MAC3D,QAGZ4qR,EAAuBruR,UAAUsuR,cAAgB,SAAU1vN,EAAOz1D,GAC1Dy1D,EAAMp6D,QAAQf,KAAKY,OAAS,GAC5B8E,KAGRklR,EAAuBruR,UAAUiwQ,oBAAsB,WACnD,OAAOxsQ,KAAKmoJ,YAEhByiI,EAAuBruR,UAAUkvR,uBAAyB,WACtD,OAAOzrR,KAAK8qR,qBAEhBF,EAAuBruR,UAAUilR,QAAU,SAAUhuQ,EAAM20I,EAAYglH,EAAW5V,GAC9E,IAAIx3P,EAAQC,KACZA,KAAKwT,KAAOA,EACZxT,KAAKmoJ,WAAaA,EAClBnoJ,KAAKmtQ,UAAYA,EACjBntQ,KAAKu3P,SAAWA,EAChBv3P,KAAKsnH,kBAAkB,IAAIu9J,GAA0B7kR,KAAKmoJ,aAC1DnoJ,KAAK0rR,gCACL,IAAIC,EAAa,CAAC1K,GAAkBiJ,WAAYjJ,GAAkBkJ,SAAUlJ,GAAkBmJ,WAC1FwB,EAAgB,CAAC3K,GAAkBqJ,cAAerJ,GAAkBsJ,YAAatJ,GAAkBuJ,cACnGqB,EAAgB,CAAC5K,GAAkB+I,OAAQ/I,GAAkB7sG,KAAM6sG,GAAkB3sG,OACrFw3G,EAAUhC,GAAiB6B,EAAYC,EAAeC,GACtDE,EAAY,CAAC9K,GAAkB+I,OAAQ/I,GAAkB7sG,KAAM6sG,GAAkB3sG,MAAO2sG,GAAkBgJ,YAC1G+B,EAAY,CAAC/K,GAAkB+I,OAAQ/I,GAAkBiJ,WAAYjJ,GAAkBqJ,eACvF2B,EAAU,CAAChL,GAAkB7sG,KAAM6sG,GAAkBsJ,YAAatJ,GAAkBkJ,UACpF+B,EAAW,CAACjL,GAAkB3sG,MAAO2sG,GAAkBuJ,aAAcvJ,GAAkBmJ,WAC3FpqR,KAAK6qR,cAAcoB,GAAS,WAAc,OAAOlsR,EAAMunH,kBAAkB,IAAIwhK,GAA0B/oR,EAAMooJ,gBAC7GnoJ,KAAK6qR,cAAcqB,GAAU,WAAc,OAAOnsR,EAAMunH,kBAAkB,IAAI2hK,GAA2BlpR,EAAMooJ,gBAC/GnoJ,KAAK6qR,cAAckB,GAAW,WAAc,OAAOhsR,EAAMunH,kBAAkB,IAAI8hK,GAAiBrpR,EAAMooJ,WAAYpoJ,EAAMw3P,cACxHv3P,KAAK6qR,cAAciB,GAAS,WAAc,OAAO/rR,EAAMunH,kBAAkB,IAAIqiK,GAAoB5pR,EAAMooJ,gBACvGnoJ,KAAK6qR,cAAcmB,GAAW,WAAc,OAAOjsR,EAAMunH,kBAAkB,IAAI6pJ,IAAmB,SAAU73N,GAAS,OAAOv5C,EAAMooJ,WAAWhwG,MAAMmB,MAAQA,EAAQ,aAEvKsxO,EAAuBruR,UAAUsrO,0BAA4B,WACzD,IAAI9nO,EAAQC,KACZA,KAAK6qR,cAAc,CAAC5J,GAAkB+I,SAAS,WAAc,OAAOjqR,EAAM06Q,kCAE9EmQ,EAAuBruR,UAAUs8Q,+BAAiC,WAC9D,IAAI94Q,EAAQC,KACZA,KAAK6qR,cAAc,CAAC5J,GAAkB+I,SAAS,WAAc,OAAOjqR,EAAM06Q,kCAE9EmQ,EAAuBruR,UAAUixQ,0BAA4B,WACzD,GAAIxtQ,KAAKY,OAASqgR,GAAkB+I,OAApC,CAGA,IAAIj1K,EAAU/0G,KAAK8tQ,qBAAqBxkH,4BACpC4tE,EAAiBniH,GAAW/0G,KAAK8vG,mBAAmByyC,qBAA4B,EAChF3nE,EAA2B,GAAlBs8I,EAAsB,OAAS,eAAiBA,EAAiB,MAC9El3N,KAAKwT,KAAK24Q,kBAAkBvxM,KAIhCgwM,EAAuBruR,UAAUmvR,8BAAgC,WAC7D,IAAI3rR,EAAQC,KACRwpO,EAAgB,SAAUh9N,GACtBzM,EAAM+/L,YAAYssF,cACd5/Q,EAAE6/Q,YACF7/Q,EAAEmpK,kBAId31K,KAAKmoJ,WAAW33C,iBAAiB,YAAag5H,EAAe,CAAE/iH,SAAS,IACxEzmH,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAMooJ,WAAWz3C,oBAAoB,YAAa84H,OAK/FohD,EAAuBruR,UAAUk+Q,4BAA8B,WAC3D,IAAIphJ,EAAcr5H,KAAKkoQ,iBACnB9uI,EAAiBp5H,KAAK6nQ,8BAC1B7nQ,KAAKm/I,iBAAiBtlB,oBAAoBR,EAAaD,IAE3DwxJ,EAAuBruR,UAAU2rQ,eAAiB,WAC9C,OAAOphH,GAAc9mJ,KAAKmtQ,YAE9Byd,EAAuBruR,UAAUsrQ,4BAA8B,WAE3D,OAAOtgH,GAAcvnJ,KAAKmtQ,UAAWntQ,KAAKgqN,YAE9C4gE,EAAuBruR,UAAUyrR,+BAAiC,SAAUv3K,GACxE,IAAI67K,EAAwBtsR,KAAK8qO,sBAAsBC,cAAc/qO,KAAKmtQ,UAAW18J,GACrFzwG,KAAKqnH,gBAAe,WAAc,OAAOilK,QAE7C1B,EAAuBruR,UAAU2rR,kBAAoB,WACjD,OAAOtrK,GAAU58G,KAAKmtQ,YAE1Byd,EAAuBruR,UAAUmsR,yBAA2B,WACxD,OAAOp/H,GAA0BtpJ,KAAKmtQ,YAE1Cyd,EAAuBruR,UAAUosR,sBAAwB,WACrD,OAAOphI,GAAcvnJ,KAAKmtQ,UAAWntQ,KAAKgqN,YAE9C4gE,EAAuBruR,UAAU+sJ,0BAA4B,WACzD,IAAIs6D,EAA+B5jN,KAAK8vG,mBAAmB8zG,+BAC3D,OAAOA,GAAgCt6D,GAA0BtpJ,KAAKmtQ,YAE1Eyd,EAAuBruR,UAAU08Q,mBAAqB,WAClD,OAAOj5Q,KAAKmtQ,WAEhByd,EAAuBruR,UAAUq9Q,uBAAyB,SAAU2S,GAChEvsR,KAAKmoJ,WAAWhwG,MAAMouD,UAAY,cAAgBgmL,EAAS,OAE/D3B,EAAuBruR,UAAU8+Q,mBAAqB,WAClD,IAAI/9O,EAAM,CACN06C,KAAMh4E,KAAKmtQ,UAAU7lH,WACrBrvE,MAAOj4E,KAAKmtQ,UAAU7lH,WAAatnJ,KAAKmtQ,UAAUtqH,aAEtD,OAAOvlH,GAEXstP,EAAuBruR,UAAUihR,4BAA8B,SAAU9gR,GAErE+qJ,GAAcznJ,KAAKmtQ,UAAWzwQ,EAAOsD,KAAKgqN,YAE9C6/D,GAAc,CACVj7K,GAAU,yBACXg8K,EAAuBruR,UAAW,4BAAwB,GAC7DstR,GAAc,CACVj7K,GAAU,gBACXg8K,EAAuBruR,UAAW,mBAAe,GACpDstR,GAAc,CACVj7K,GAAU,uBACXg8K,EAAuBruR,UAAW,0BAAsB,GAC3DstR,GAAc,CACVj7K,GAAU,qBACXg8K,EAAuBruR,UAAW,wBAAoB,GACzDstR,GAAc,CACVj7K,GAAU,0BACXg8K,EAAuBruR,UAAW,6BAAyB,GAC9DstR,GAAc,CACVv7K,IACDs8K,EAAuBruR,UAAW,gBAAiB,MAC/CquR,EAlLgC,CAmLzChkK,IAQE4lK,GAAqD,WACrD,IAAIvoR,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDmoR,GAAuD,SAAUprR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D+nR,GAAgC,ySAAgUzL,GAAkBkJ,SAAW,uFAA6FlJ,GAAkBiJ,WAAa,sFAA4FjJ,GAAkBmJ,UAAY,0FAAgGnJ,GAAkBoJ,cAAgB,kLAA8LpJ,GAAkB7sG,KAAO,oFAA0F6sG,GAAkB+I,OAAS,mFAAyF/I,GAAkB3sG,MAAQ,uFAA6F2sG,GAAkBgJ,WAAa,sMAAoNhJ,GAAkBsJ,YAAc,0FAAgGtJ,GAAkBqJ,cAAgB,yFAA+FrJ,GAAkBuJ,aAAe,6FAAmGvJ,GAAkBwJ,iBAAmB,wKAC96DkC,GAA8B,SAAU9nR,GAExC,SAAS8nR,IACL,OAAO9nR,EAAOjH,KAAKoC,KAAM0sR,KAAuB1sR,KA+IpD,OAjJAwsR,GAAaG,EAAc9nR,GAI3B8nR,EAAapwR,UAAU2I,KAAO,WAC1B,IAAInF,EAAQC,KACR4sR,EAAY,SAAUhyM,EAAQuP,GAC9B,IAAIq/L,EAAe5uM,EAAS,KAC5BuP,EAAQhyC,MAAM6xG,UAAYw/H,EAC1Br/L,EAAQhyC,MAAMyiC,OAAS4uM,GAEvBh2Q,EAAO,CACPkwQ,iCAAkC1jR,KAAK0jR,iCAAiCj5Q,KAAKzK,MAC7EyiR,eAAgB,SAAUp5N,GAAS,OAAOm0G,GAAgBz9J,EAAMsG,SAAUgjD,IAC1Ei6N,YAAa,SAAUj6N,GAAS,OAAOg0G,GAAgBt9J,EAAMsG,SAAUgjD,IACvE86N,aAAc,SAAUvpM,GAAU,OAAOgyM,EAAUhyM,EAAQ76E,EAAM2hR,OACjE0C,gBAAiB,SAAUxpM,GAAU,OAAOgyM,EAAUhyM,EAAQ76E,EAAM4hR,UACpE0C,cAAe,SAAUhlM,GAAW,OAAOt/E,EAAM2hR,KAAKvpO,MAAMknC,QAAUA,GACtEilM,iBAAkB,SAAUjlM,GAAW,OAAOt/E,EAAM4hR,QAAQxpO,MAAMknC,QAAUA,GAC5EgjM,mBAAoB,SAAUnuK,GAAU,OAAOn0G,EAAMskJ,oBAAoB+8H,GAAyBltK,IAClGmkK,oBAAqB,SAAUj1Q,GAC3BihJ,GAAoBtkJ,EAAM04Q,cAAe5pQ,EAAQqpQ,iBAAiB2U,YAAazpR,EAAOoxI,YACtF6P,GAAoBtkJ,EAAM04Q,cAAe5pQ,EAAQqpQ,iBAAiB4U,OAAQ1pR,EAAOynP,QACjFxmG,GAAoBtkJ,EAAM04Q,cAAe5pQ,EAAQqpQ,iBAAiB6U,MAAO3pR,EAAO6nK,OAChFlrK,EAAMskJ,oBAAoBx1I,EAAQqpQ,iBAAiB2U,YAAazpR,EAAOoxI,YACvEz0I,EAAMskJ,oBAAoBx1I,EAAQqpQ,iBAAiB4U,OAAQ1pR,EAAOynP,QAClE9qP,EAAMskJ,oBAAoBx1I,EAAQqpQ,iBAAiB6U,MAAO3pR,EAAO6nK,QAErEu4G,6BAA8B,SAAU5yN,GACpC,OAAOyzF,GAAoBtkJ,EAAM04Q,cAAe0I,GAAiCvwN,IAErF2yN,mCAAoC,SAAU9yK,GAC1C,IAAI67K,EAAwBvsR,EAAM+qO,sBAAsBC,cAAchrO,EAAM04Q,cAAehoK,GAC3F1wG,EAAMsnH,gBAAe,WAAc,OAAOilK,QAE9C9J,gCAAiC,SAAUD,GACvC,IAAIyK,EAAWzK,EAAO,SAAW,SACjCxiR,EAAM2hR,KAAKvpO,MAAM80O,UAAYltR,EAAM4hR,QAAQxpO,MAAM80O,UAAYD,GAEjE1K,qBAAsB,SAAUl0F,GAC5B,CAACruL,EAAM2hR,KAAM3hR,EAAM04Q,cAAe14Q,EAAM4hR,SACnCpjR,SAAQ,SAAU0uB,GAAM,OAAOo3H,GAAoBp3H,EAAIi0P,GAA2B9yF,QAG/FpuL,KAAK4tQ,WAAa5tQ,KAAKsnH,kBAAkB,IAAI+5J,IAC7CrhR,KAAK4tQ,WAAW4T,QAAQhuQ,EAAMxT,KAAKqG,SAAUrG,KAAKy4Q,cAAez4Q,KAAK0hR,KAAM1hR,KAAK2hR,SAC7E3hR,KAAKgrO,QACLhrO,KAAKktR,uBAETltR,KAAKi/F,QAAQkuL,iBAAiBntR,MAC9BA,KAAK+tG,MAAMo/K,iBAAiBntR,MACxBA,KAAK4jR,oBACL5jR,KAAK4jR,mBAAmBuJ,iBAAiBntR,MAEzCA,KAAK0rL,aACL1rL,KAAK0rL,YAAYyhG,iBAAiBntR,OAElCA,KAAK+yO,iBAAmB/yO,KAAK8vG,mBAAmBulF,yBAChDl4B,GAAuBn9J,KAAKqG,UAAU,GAClCrG,KAAK+yO,iBACL/yO,KAAK+yO,gBAAgBo6C,iBAAiBntR,OAG9C,CAACA,KAAK0hR,KAAM1hR,KAAKy4Q,cAAez4Q,KAAK2hR,SAASpjR,SAAQ,SAAU4rF,GAC5DpqF,EAAMonH,mBAAmBh9B,EAAS,WAAW,WACzC25D,GAAY35D,EAAS,mBAEzBpqF,EAAMonH,mBAAmBh9B,EAAS,YAAY,SAAU39E,GAC/C29E,EAAQyQ,SAASpuF,EAAEiuK,gBACpBv2B,GAAe/5D,EAAS,uBAKxCwiM,EAAapwR,UAAUmnR,iCAAmC,SAAUr2D,GAChEhpE,GAAoBrkJ,KAAKy4Q,cAAeN,GAAuBiV,aAAc//D,GAC7EhpE,GAAoBrkJ,KAAKy4Q,cAAeN,GAAuBkV,eAAgBhgE,IAEnFs/D,EAAapwR,UAAU2wR,qBAAuB,WAC1C,IAAIntR,EAAQC,KAERstR,GAAiB,EACjB78K,EAAW,WAEP68K,IAGJA,GAAiB,EACjB/hR,OAAOE,YAAW,WACd6hR,GAAiB,EACjBvtR,EAAMirO,OAAOoiB,WACd,KAIPptP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiChd,GACnFzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOe,8BAA+Bjd,IAErFk8K,EAAapwR,UAAUgxR,qBAAuB,WAC1C,MAAO,CAACvtR,KAAK0hR,KAAM1hR,KAAK2hR,UAG5BgL,EAAapwR,UAAUixR,uBAAyB,SAAU/8K,GACtDzwG,KAAKy4Q,cAAcjoK,iBAAiB,SAAUC,IAGlDk8K,EAAapwR,UAAUkxR,0BAA4B,SAAUh9K,GACzDzwG,KAAKy4Q,cAAc/nK,oBAAoB,SAAUD,IAErDg8K,GAAc,CACV79K,GAAU,UACX+9K,EAAapwR,UAAW,aAAS,GACpCkwR,GAAc,CACV79K,GAAU,YACX+9K,EAAapwR,UAAW,eAAW,GACtCkwR,GAAc,CACV79K,GAAU,WACX+9K,EAAapwR,UAAW,cAAU,GACrCkwR,GAAc,CACV79K,GAAU,0BACX+9K,EAAapwR,UAAW,6BAAyB,GACpDkwR,GAAc,CACV39K,GAAS,oBACV69K,EAAapwR,UAAW,uBAAmB,GAC9CkwR,GAAc,CACV39K,GAAS,uBACV69K,EAAapwR,UAAW,0BAAsB,GACjDkwR,GAAc,CACV39K,GAAS,gBACV69K,EAAapwR,UAAW,mBAAe,GAC1CkwR,GAAc,CACVr5G,GAAY,kBACbu5G,EAAapwR,UAAW,qBAAiB,GAC5CkwR,GAAc,CACVr5G,GAAY,SACbu5G,EAAapwR,UAAW,YAAQ,GACnCkwR,GAAc,CACVr5G,GAAY,YACbu5G,EAAapwR,UAAW,eAAW,GACtCkwR,GAAc,CACVr5G,GAAY,eACbu5G,EAAapwR,UAAW,sBAAkB,GAC7CkwR,GAAc,CACVn+K,IACDq+K,EAAapwR,UAAW,OAAQ,MAC5BowR,EAlJsB,CAmJ/B/sR;;;;;;;CAQF,SAAW8tR,GACPA,EAAiBA,EAAiB,gBAAkB,GAAK,eACzDA,EAAiBA,EAAiB,eAAiB,GAAK,eAF5D,CAGG7+Q,EAAQ6+Q,mBAAqB7+Q,EAAQ6+Q,iBAAmB;;;;;;;AAQ3D,SAAWC,GACPA,EAAwB,cAAgB,QACxCA,EAAwB,UAAY,SACpCA,EAAwB,QAAU,OAClCA,EAAwB,OAAS,MACjCA,EAAwB,aAAe,YACvCA,EAAwB,SAAW,QACnCA,EAAwB,WAAa,UAPzC,CAQG9+Q,EAAQ8+Q,0BAA4B9+Q,EAAQ8+Q,wBAA0B;;;;;;;AAQzE,IA+qOIC,GA/qOAC,GAAuD,SAAUxsR,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmpR,GAAyB,WACzB,SAASA,IACL9tR,KAAK+tR,kBAAoB,GACzB/tR,KAAKguR,eAAgB,EA66CzB,OA36CAF,EAAQvxR,UAAU4wR,iBAAmB,SAAUc,GAC3CjuR,KAAKiuR,aAAeA,GAExBH,EAAQvxR,UAAU2xR,2BAA6B,SAAUC,GACrDnuR,KAAKmuR,mBAAqBA,GAE9BL,EAAQvxR,UAAU6xR,2BAA6B,SAAUC,GACrDruR,KAAKquR,mBAAqBA,GAE9BP,EAAQvxR,UAAUk1Q,uBAAyB,SAAUiI,GACjD15Q,KAAK05Q,eAAiBA,GAE1BoU,EAAQvxR,UAAU+xR,oBAAsB,SAAUC,GAC9CvuR,KAAKuuR,YAAcA,GAEvBT,EAAQvxR,UAAU2I,KAAO,WACrB,IAAInF,EAAQC,KACZ,OAAQA,KAAKk4I,SAASykC,WAClB,KAAKvrE,GAAUU,2BACX9xG,KAAKs+N,mBAAqBt+N,KAAKk4I,SAC/B,MACJ,KAAK9mC,GAAUQ,wBACX5xG,KAAKwuR,iBAAmBxuR,KAAKk4I,SAC7B,MACJ,KAAK9mC,GAAUW,2BACX/xG,KAAK4qO,mBAAqB5qO,KAAKk4I,SAC/B,MAERl4I,KAAKmoM,mBAAmBm+C,WAAU,WAC9BvmP,EAAMmoM,YAAcnoM,EAAMooM,mBAAmBC,4BAIrD0lF,EAAQvxR,UAAUkyR,wBAA0B,WACxC,OAAOzuR,KAAK0uR,qBAEhBZ,EAAQvxR,UAAUoyR,kBAAoB,SAAU3lO,EAAI4lO,GAChD5uR,KAAK+tR,kBAAkB/kO,GAAM4lO,GAEjCd,EAAQvxR,UAAUsyR,qBAAuB,SAAU7lO,GAC/ChpD,KAAK+tR,kBAAkB/kO,QAAM3pD,GAEjCyuR,EAAQvxR,UAAUuyR,kBAAoB,SAAU9lO,GAC5C,OAAOhpD,KAAK+tR,kBAAkB/kO,IAElC8kO,EAAQvxR,UAAUwyR,sBAAwB,SAAUrpR,GAChD,IAAIxG,EAAQ,EACZymG,EAAc3lG,KAAK+tR,mBAAmB,SAAU/kO,EAAI4lO,GAE5CnuL,EAAOmuL,KACPlpR,EAASkpR,EAAU1vR,GACnBA,SAIZ4uR,EAAQvxR,UAAUyyR,aAAe,SAAU5rR,GACvC,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYi8K,gBAAiB,oBACrE,OAAOjvR,KAAKkvR,WAAWF,aAAa5rR,IAG5C0qR,EAAQvxR,UAAU4yR,gBAAkB,SAAU/rR,GACtC6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYi8K,gBAAiB,wBACrEjvR,KAAKkvR,WAAWC,gBAAgB/rR,IAGxC0qR,EAAQvxR,UAAU6yR,eAAiB,SAAUhsR,GACzC,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYq8K,kBAAmB,sBAAuB,CAC9F,IAAIC,EAAclsR,GAAUA,EAAOksR,YAAe,OAClD,OAAItvR,KAAKuvR,aAAaC,eAAeF,KAAgBzgR,EAAQ6+Q,iBAAiB+B,iBAC1ExsR,QAAQkD,KAAK,sKAGVnG,KAAKuvR,aAAaH,eAAehsR,KAGhD0qR,EAAQvxR,UAAUmzR,kBAAoB,SAAUtsR,GAC5C,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYq8K,kBAAmB,yBAA0B,CACjG,IAAIC,EAAclsR,GAAUA,EAAOksR,YAAe,OAClD,GAAItvR,KAAKuvR,aAAaC,eAAeF,KAAgBzgR,EAAQ6+Q,iBAAiB+B,YAE1E,YADAxsR,QAAQkD,KAAK,sKAGjBnG,KAAKuvR,aAAaG,kBAAkBtsR,KAG5C0qR,EAAQvxR,UAAUozR,qBAAuB,SAAUvsR,GAC/C,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYq8K,kBAAmB,4BAA6B,CACpG,IAAIC,EAAclsR,GAAUA,EAAOksR,YAAe,OAElD,OADAtvR,KAAKuvR,aAAaK,eAAe/gR,EAAQ6+Q,iBAAiB+B,YAAaH,GAChEtvR,KAAKuvR,aAAaI,qBAAqBvsR,KAGtD0qR,EAAQvxR,UAAUszR,yBAA2B,SAAUzsR,GACnD,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYq8K,kBAAmB,gCACvE,OAAOrvR,KAAKuvR,aAAaM,yBAAyBzsR,IAG1D0qR,EAAQvxR,UAAUuzR,4BAA8B,SAAU1sR,GACtD,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYq8K,kBAAmB,mCACvE,OAAOrvR,KAAKuvR,aAAaO,4BAA4B1sR,IAI7D0qR,EAAQvxR,UAAUwzR,wBAA0B,SAAUjlE,GAClD7nN,QAAQkD,KAAK,oHACbnG,KAAKgwR,wBAAwBllE,IAEjCgjE,EAAQvxR,UAAU0zR,oBAAsB,SAAU7nR,EAAU1L,GACxD,GAAK0L,EAAL,CAGA,IAAI8nR,EAAQlwR,KAAKiuR,aAAa5nR,SAC1B8pR,EAAe,QAAU/nR,EACf,OAAV1L,EACAwzR,EAAMrqI,gBAAgBsqI,GAGtBD,EAAM9qK,aAAa+qK,EAAczzR,KAGzCoxR,EAAQvxR,UAAUyzR,wBAA0B,SAAUllE,GAC9C9qN,KAAK4qO,mBAEL5qO,KAAK4qO,mBAAmBwlD,cAActlE,GAGtC7nN,QAAQkD,KAAK,wFAA0FirG,GAAUW,2BAA6B,MAGtJ+7K,EAAQvxR,UAAU6zR,cAAgB,SAAUtlE,GACpC9qN,KAAK8vG,mBAAmBkwG,qBACxBhgN,KAAKk4I,SAASk4I,cAActlE,GAG5B7nN,QAAQkD,KAAK,4EAA8EirG,GAAUQ,wBAA0B,MAGvIk8K,EAAQvxR,UAAU8zR,sBAAwB,SAAUrlE,GAC5ChrN,KAAK8vG,mBAAmBowG,qBAIxBlgN,KAAKk4I,SAASm4I,sBAAsBrlE,GAGpC/nN,QAAQkD,KAAK,qFAAuFirG,GAAUS,wBAA0B,MAGhJi8K,EAAQvxR,UAAU+zR,WAAa,SAAUlmR,GACrC,GAAIpK,KAAK8vG,mBAAmBiI,oBACxB,GAAI/3G,KAAK8vG,mBAAmBi4G,kBAAmB,CAC3C,IAAIwoE,EAAoBvwR,KAAKwwR,iBAAiBC,4BAA4BrmR,GAC1E,IAAKmmR,EACD,OAEJ,IAAIG,EAAcH,EAAkB,GAAII,EAAaJ,EAAkB,GACnEK,EAAkB5wR,KAAKs+N,mBAAmBmhD,cAAciR,EAAaC,GAGrEC,GACA5wR,KAAK0yL,YAAYi6D,qBAAqBikC,EAAgBjiG,aAI1D3uL,KAAK6vL,oBAAoBxvE,QACzBrgH,KAAKs+N,mBAAmBgyD,WAAWlmR,QAIvCnH,QAAQkD,KAAK,yDAIrB2nR,EAAQvxR,UAAUs0R,sBAAwB,SAAUxuO,GAChDp/C,QAAQkD,KAAK,oFACbnG,KAAK8wR,oBAAoBzuO,IAG7ByrO,EAAQvxR,UAAUw0R,yBAA2B,SAAU1uO,GACnDp/C,QAAQkD,KAAK,0FACbnG,KAAKgxR,uBAAuB3uO,IAGhCyrO,EAAQvxR,UAAU00R,uBAAyB,WAEvC,OADAhuR,QAAQkD,KAAK,sFACNnG,KAAKkxR,wBAGhBpD,EAAQvxR,UAAU40R,0BAA4B,WAE1C,OADAluR,QAAQkD,KAAK,4FACNnG,KAAKoxR,2BAGhBtD,EAAQvxR,UAAU80R,kBAAoB,SAAUnyR,GAE5C,OADA+D,QAAQkD,KAAK,4EACNnG,KAAKuzP,gBAAgBr0P,IAGhC4uR,EAAQvxR,UAAU+0R,qBAAuB,SAAUpyR,GAE/C,OADA+D,QAAQkD,KAAK,kFACNnG,KAAKwzP,mBAAmBt0P,IAEnC4uR,EAAQvxR,UAAUu0R,oBAAsB,SAAUzuO,GAC9CriD,KAAKqoP,eAAeyoC,oBAAoBzuO,IAE5CyrO,EAAQvxR,UAAUy0R,uBAAyB,SAAU3uO,GACjDriD,KAAKqoP,eAAe2oC,uBAAuB3uO,IAE/CyrO,EAAQvxR,UAAU20R,qBAAuB,WACrC,OAAOlxR,KAAKqoP,eAAe6oC,wBAE/BpD,EAAQvxR,UAAU60R,wBAA0B,WACxC,OAAOpxR,KAAKqoP,eAAe+oC,2BAE/BtD,EAAQvxR,UAAUg3P,gBAAkB,SAAUr0P,GAC1C,OAAOc,KAAKqoP,eAAekL,gBAAgBr0P,IAE/C4uR,EAAQvxR,UAAUi3P,mBAAqB,SAAUt0P,GAC7C,OAAOc,KAAKqoP,eAAemL,mBAAmBt0P,IAElD4uR,EAAQvxR,UAAUu6H,cAAgB,SAAU8c,EAAS9uC,QAClC,IAAXA,IAAqBA,EAAS,OAClC9kG,KAAKm/I,iBAAiBroB,cAAc8c,EAAS9uC,IAEjDgpL,EAAQvxR,UAAU2wJ,sBAAwB,SAAUtlJ,EAAQk9F,GACxD9kG,KAAK8vG,mBAAmB3J,YAAY,qBAAsBv+F,GAAQ,IAEtEkmR,EAAQvxR,UAAUg1R,iBAAmB,WACjCvxR,KAAKk3H,WAAWC,UAEpB22J,EAAQvxR,UAAUi1R,sBAAwB,WACtC,OAAOxxR,KAAKkoM,YAAYylC,mBAAmBC,sBAE/CkgD,EAAQvxR,UAAUk1R,wBAA0B,WACxC,OAAOzxR,KAAKkoM,YAAYylC,mBAAmB0tC,sBAE/CyS,EAAQvxR,UAAUm1R,8BAAgC,SAAUnP,GACxDviR,KAAK8vG,mBAAmB3J,YAAY,6BAA8Bo8K,IAEtEuL,EAAQvxR,UAAUo1R,4BAA8B,SAAUpP,GACtDviR,KAAK8vG,mBAAmB3J,YAAY,2BAA4Bo8K,IAEpEuL,EAAQvxR,UAAUq1R,iBAAmB,WAC5B5xR,KAAKuuR,aAGVvuR,KAAKuuR,YAAYh2L,WAErBu1L,EAAQvxR,UAAUo2L,aAAe,SAAUvvL,QACxB,IAAXA,IAAqBA,EAAS,IAC9B/F,MAAMC,QAAQ8F,GAEdH,QAAQkD,KAAK,2FAGjBnG,KAAK0yL,YAAYC,aAAavvL,IAElC0qR,EAAQvxR,UAAU8tP,WAAa,SAAUjnP,QACtB,IAAXA,IAAqBA,EAAS,IAClCpD,KAAK0yL,YAAY23D,WAAWjnP,IAEhC0qR,EAAQvxR,UAAUqsP,WAAa,SAAUxlP,QACtB,IAAXA,IAAqBA,EAAS,IAClC,IAAI6kK,EAAW7kK,EAASA,EAAO6kK,cAAW5oK,EAC1CW,KAAK0yL,YAAYk2D,WAAW3gF,IAGhC6lH,EAAQvxR,UAAUs1R,YAAc,WAC5B5uR,QAAQkD,KAAK,yGACbnG,KAAK4oP,cAGTklC,EAAQvxR,UAAUu1R,YAAc,SAAU7pH,GACtChlK,QAAQkD,KAAK,uIACbnG,KAAK2yL,aAAa,CAAE1qB,SAAUA,KAGlC6lH,EAAQvxR,UAAUw1R,eAAiB,SAAU1vO,GACzCp/C,QAAQkD,KAAK,iKACbnG,KAAK4oP,cAGTklC,EAAQvxR,UAAUy1R,gBAAkB,WAChC/uR,QAAQC,MAAM,oHAGlB4qR,EAAQvxR,UAAU01R,iBAAmB,WACjChvR,QAAQkD,KAAK,6PAGbnG,KAAK2yL,gBAETm7F,EAAQvxR,UAAU21R,qBAAuB,SAAUrvG,GAC/C7iL,KAAK8vG,mBAAmB3J,YAAY,oBAAqB08E,IAE7DirG,EAAQvxR,UAAU41Q,cAAgB,WAC9BnyQ,KAAK05Q,eAAevH,iBAExB2b,EAAQvxR,UAAU83Q,mBAAqB,WACnC,OAAOr0Q,KAAK2vM,cAAc0kE,sBAG9ByZ,EAAQvxR,UAAU03Q,wBAA0B,WAExC,OADAhxQ,QAAQkD,KAAK,wFACNnG,KAAKmyR,yBAEhBrE,EAAQvxR,UAAU41R,sBAAwB,WACtC,OAAOnyR,KAAK2vM,cAAcskE,2BAE9B6Z,EAAQvxR,UAAU+3Q,qBAAuB,WACrC,OAAOt0Q,KAAK2vM,cAAc2kE,wBAE9BwZ,EAAQvxR,UAAUqhL,SAAW,WACzB,OAAO59K,KAAKk4I,UAEhB41I,EAAQvxR,UAAU61R,mBAAqB,SAAUrnR,EAASk3G,GAClDl3G,GACAA,EAAQi3G,YAAYC,IAG5B6rK,EAAQvxR,UAAU81R,2BAA6B,SAAUC,GACjD3xL,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,iFAEbs6F,EAAO6xL,IACPrvR,QAAQkD,KAAK,0HAMjBnG,KAAKs+N,mBAAmBi0D,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwB6E,OAEjF1E,EAAQvxR,UAAUk2R,wBAA0B,SAAUntL,GAClDriG,QAAQkD,KAAK,sHACbnG,KAAK0yR,0BAA0BptL,IAEnCwoL,EAAQvxR,UAAUm2R,0BAA4B,SAAUptL,GAChD3E,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,uEAEjB,IAAIwsR,EAAa9jR,EAAQ8+Q,wBAAwBiF,WAC7CC,EAAc,CACd33L,MAAOrsF,EAAQ8+Q,wBAAwBiF,WACvCriM,OAAQ1hF,EAAQ8+Q,wBAAwBmF,OACxCrrR,IAAKoH,EAAQ8+Q,wBAAwB6E,IACrCO,UAAWlkR,EAAQ8+Q,wBAAwBqF,UAC3CzkQ,KAAM1f,EAAQ8+Q,wBAAwBsF,KACtC30K,MAAOzvG,EAAQ8+Q,wBAAwBuF,OAK3C,GAHIzyL,EAAO6E,KACPqtL,EAAaE,EAAYvtL,IAEzB3E,EAAQgyL,GACR1vR,QAAQC,MAAM,yBAA2BoiG,EAAO,yBAA2B3oG,OAAOsD,KAAK4yR,GAAa7hR,KAAK,WAD7G,CAIA,IAAImiR,EAAc,CACd7tL,KAAMqtL,EACN9qC,kBAAkB,EAClBC,SAAS,EACTsrC,iBAAiB,GAErBpzR,KAAKs+N,mBAAmBi0D,aAAaY,KAEzCrF,EAAQvxR,UAAU82R,2BAA6B,WAC3C,OAAOrzR,KAAK66H,sBAAsBy4J,gBAEtCxF,EAAQvxR,UAAUoyO,WAAa,SAAU3lL,GACrC,OAAOhpD,KAAKk4I,SAASy2F,WAAW3lL,IAEpC8kO,EAAQvxR,UAAUg3R,wBAA0B,WACxC,MAAO,CACHtzI,UAAWjgJ,KAAK8vG,mBAAmBmnH,uBACnClpE,aAAc/tJ,KAAK8vG,mBAAmB8lH,oBAG9Ck4D,EAAQvxR,UAAU+/F,UAAY,WACtBt8F,KAAKs+N,mBACLt+N,KAAKs+N,mBAAmBk1D,qBAAoB,GAEvCxzR,KAAK4qO,mBACV5qO,KAAK4qO,mBAAmBtuI,WAAU,GAGlCr5F,QAAQkD,KAAK,uFAGrB2nR,EAAQvxR,UAAUggG,YAAc,WACxBv8F,KAAKs+N,mBACLt+N,KAAKs+N,mBAAmBk1D,qBAAoB,GAEvCxzR,KAAK4qO,mBACV5qO,KAAK4qO,mBAAmBtuI,WAAU,GAGlCr5F,QAAQkD,KAAK,yFAGrB2nR,EAAQvxR,UAAUk3R,qBAAuB,SAAUzqO,GAC/C,GAAKhpD,KAAKuuR,YAIV,OAAOvuR,KAAKuuR,YAAYkF,qBAAqBzqO,GAHzC/lD,QAAQkD,KAAK,+DAKrB2nR,EAAQvxR,UAAUm3R,sBAAwB,SAAUzuK,EAAW26B,EAAUl6I,GAC5C,kBAAdu/G,GACPhiH,QAAQkD,KAAK,oFAEjBnG,KAAKslO,uBAAuBrgH,EAAW26B,EAAUl6I,IAErDooR,EAAQvxR,UAAU+oO,uBAAyB,SAAUrgH,EAAW26B,EAAUl6I,GACpD,uBAAdu/G,GACAhiH,QAAQkD,KAAK,+JAEjBnG,KAAK0yL,YAAY4yC,uBAAuBrgH,EAAW26B,EAAUl6I,IAEjEooR,EAAQvxR,UAAUwjG,eAAiB,SAAU00K,GACzCz0Q,KAAK2vM,cAAc5vG,eAAe00K,IAEtCqZ,EAAQvxR,UAAUwjO,YAAc,SAAU7gO,EAAO0gO,EAAU+zD,GACvD1wR,QAAQkD,KAAK,+EACTwtR,GACA1wR,QAAQkD,KAAK,yGAEjBnG,KAAK6vL,oBAAoBkwC,YAAY7gO,EAAO0gO,IAEhDkuD,EAAQvxR,UAAUsjO,cAAgB,SAAU3gO,EAAOy0R,QACxB,IAAnBA,IAA6BA,GAAiB,GAClD1wR,QAAQkD,KAAK,+EACTwtR,GACA1wR,QAAQkD,KAAK,yGAEjBnG,KAAK6vL,oBAAoBgwC,cAAc3gO,IAE3C4uR,EAAQvxR,UAAUojO,WAAa,SAAUntN,EAAMotN,EAAU+zD,QACpC,IAAb/zD,IAAuBA,GAAW,QACf,IAAnB+zD,IAA6BA,GAAiB,GAClD1wR,QAAQkD,KAAK,kFACTwtR,GACA1wR,QAAQkD,KAAK,yGAEjBqM,EAAKoiL,kBAAkB,CAAEl4E,UAAU,EAAMg4E,gBAAiBkrC,KAE9DkuD,EAAQvxR,UAAUujO,aAAe,SAAUttN,EAAMmhR,QACtB,IAAnBA,IAA6BA,GAAiB,GAClD1wR,QAAQkD,KAAK,kFACTwtR,GACA1wR,QAAQkD,KAAK,yGAEjBqM,EAAKoiL,kBAAkB,CAAEl4E,UAAU,KAEvCoxK,EAAQvxR,UAAUy9F,UAAY,WAC1Bh6F,KAAK6vL,oBAAoB6vC,qBAE7BouD,EAAQvxR,UAAUq3R,YAAc,WAC5B5zR,KAAK6vL,oBAAoByvC,uBAE7BwuD,EAAQvxR,UAAUs3R,kBAAoB,WAClC7zR,KAAK6vL,oBAAoB6vC,mBAAkB,IAE/CouD,EAAQvxR,UAAUu3R,oBAAsB,WACpC9zR,KAAK6vL,oBAAoByvC,qBAAoB,IAEjDwuD,EAAQvxR,UAAUw3R,oBAAsB,WAChCpzL,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,iEAEjBlD,QAAQkD,KAAK,qGACbnG,KAAKs+N,mBAAmBi0D,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwBqF,aAEjFlF,EAAQvxR,UAAUujG,iBAAmB,WACjC9/F,KAAKkoM,YAAYpoG,oBAErBguL,EAAQvxR,UAAUsjG,mBAAqB,WACnC7/F,KAAKmuR,mBAAmBtuL,sBAE5BiuL,EAAQvxR,UAAUy3R,kBAAoB,WAClCh0R,KAAKmuR,mBAAmB6F,qBAE5BlG,EAAQvxR,UAAU6iG,YAAc,WAC5Bp/F,KAAKmuR,mBAAmB/uL,eAE5B0uL,EAAQvxR,UAAU03R,eAAiB,SAAUzhR,GAEzC,OADAvP,QAAQkD,KAAK,sFACNqM,EAAKuhL,cAEhB+5F,EAAQvxR,UAAU23R,qBAAuB,WAErC,OADAjxR,QAAQC,MAAM,qGACP,MAEX4qR,EAAQvxR,UAAUyqM,iBAAmB,WACjC,OAAOhnM,KAAK6vL,oBAAoBmX,oBAEpC8mF,EAAQvxR,UAAU4hO,gBAAkB,WAChC,OAAOn+N,KAAK6vL,oBAAoBsuC,mBAEpC2vD,EAAQvxR,UAAUyiO,yBAA2B,WACzC,OAAOh/N,KAAK6vL,oBAAoBmvC,4BAEpC8uD,EAAQvxR,UAAUqzP,iBAAmB,WACjC,OAAO5vP,KAAK0yL,YAAYk9D,oBAE5Bk+B,EAAQvxR,UAAU43R,sBAAwB,SAAUj1R,GAChD+D,QAAQkD,KAAK,wGAEjB2nR,EAAQvxR,UAAU80P,oBAAsB,SAAU50P,GAC9CuD,KAAKkoM,YAAYylC,mBAAmB0jB,oBAAoB50P,IAG5DqxR,EAAQvxR,UAAU60P,mBAAqB,SAAUlyP,EAAO0jJ,GACpD5iJ,KAAKkoM,YAAYylC,mBAAmByjB,mBAAmBlyP,EAAO0jJ,IAGlEkrI,EAAQvxR,UAAUg/Q,kBAAoB,SAAUl4K,EAAYu/C,QACvC,IAAbA,IAAuBA,EAAW,MACtC5iJ,KAAKkoM,YAAYylC,mBAAmB4tC,kBAAkBl4K,EAAYu/C,IAEtEkrI,EAAQvxR,UAAU63R,gBAAkB,SAAU1uR,GACtCi7F,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,yDAEjBnG,KAAKs+N,mBAAmB81D,gBAAgB1uR,IAE5CooR,EAAQvxR,UAAUuO,YAAc,SAAUpF,GACtC1F,KAAKk4I,SAASptI,YAAYpF,IAE9BooR,EAAQvxR,UAAUkjO,uBAAyB,SAAU/5N,GAC7Ci7F,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,oEAEjBnG,KAAKs+N,mBAAmBmB,uBAAuB/5N,IAEnDooR,EAAQvxR,UAAU83R,8BAAgC,SAAU3uR,GACpDi7F,EAAQ3gG,KAAKs+N,qBACbr7N,QAAQkD,KAAK,2EAEjBnG,KAAKs+N,mBAAmB+1D,8BAA8B3uR,IAE1DooR,EAAQvxR,UAAU+3R,sBAAwB,SAAU1sR,GAEhD,OADA3E,QAAQkD,KAAK,sFACNnG,KAAKu0R,kBAAkB3sR,IAElCkmR,EAAQvxR,UAAUg4R,kBAAoB,SAAU93R,EAAKiJ,GACjD,IAAIgC,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiB39H,GACpD,GAAIiL,EAAQ,CACR,IAAImsQ,EAAgB7zQ,KAAK2vM,cAAco0D,mBAAmBr8P,EAAQ,SAC9Db,EAAegtQ,GAAiBA,EAAclpG,WAAW,MAAM,SAAU6pH,GAAc,OAAOA,KASlG,OARI9uR,IACImB,EACA4E,WAAW/F,EAAU,EAAGmB,GAEnBgtQ,GACLA,EAAcl4G,KAAKj2J,IAGpBmB,IAGfinR,EAAQvxR,UAAUk4R,aAAe,SAAUh4R,GAEvC,OADAwG,QAAQkD,KAAK,sEACNnG,KAAKu0R,kBAAkB93R,IAElCqxR,EAAQvxR,UAAU85Q,cAAgB,SAAU55Q,GACxC,IAAIiL,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiB39H,GACpD,GAAIiL,EACA,OAAO1H,KAAK2vM,cAAc0mE,cAAc3uQ,EAAQ,oBAGxDomR,EAAQvxR,UAAUm4R,eAAiB,SAAUj4R,GACzC,GAAIuD,KAAK20R,iBACL,OAAO30R,KAAK20R,iBAAiBD,eAAej4R,IAGpDqxR,EAAQvxR,UAAUq4R,aAAe,SAAUn4R,GACvC,IAAIiL,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiB39H,GACpD,OAAIiL,EACOA,EAAOm1G,YAEX,MAEXixK,EAAQvxR,UAAU+oI,cAAgB,WAAc,OAAOtlI,KAAKm/I,iBAAiB7Z,iBAC7EwoJ,EAAQvxR,UAAUq/K,gBAAkB,WAChC57K,KAAK2vM,cAAc/zB,mBAEvBkyG,EAAQvxR,UAAU8vL,cAAgB,WAC9BrsL,KAAKotI,eAAei/C,iBAExByhG,EAAQvxR,UAAUs4R,aAAe,SAAUC,EAAWhwL,GAClD7hG,QAAQkD,KAAK,+JACb,IAAI26N,EAAc,GACdg0D,GACAA,EAAUv2R,SAAQ,SAAU6uF,EAAMluF,GAC9B4hO,EAAYxhO,KAAK,CACbwjG,MAAO1V,EAAK0V,MACZv0E,KAAM6+D,EAAK7+D,KACXomF,UAAWz1G,OAIvBc,KAAKm/I,iBAAiBj0B,iBAAiB,CAAEl+F,MAAO8zM,EAAav2F,aAAc,CAAEh8G,KAAM,SAEvFu/P,EAAQvxR,UAAUw4R,aAAe,WAC7B9xR,QAAQkD,KAAK,6JACb,IAAI26N,EAAc9gO,KAAKm/I,iBAAiBvW,iBACpCosJ,EAAiBl0D,EAAYvwI,QAAO,SAAUnD,GAAQ,OAAoB,MAAbA,EAAK7+D,QAClEk8G,EAAU,GACduqJ,EAAez2R,SAAQ,SAAUyuB,GAC7B,IAAIg8B,EAAKh8B,EAAM81E,MACX6R,EAAY3nF,EAAM2nF,UACtB81B,EAAQzhF,GAAM2rD,KAElB,IAAIr3E,EAAM03P,EAAevtR,KAAI,SAAU2L,GACnC,MAAO,CAAE0vF,MAAO1vF,EAAE0vF,MAAOv0E,KAAMnb,EAAEmb,SAGrC,OADA+O,EAAI/O,MAAK,SAAU5iB,EAAGxH,GAAK,OAAOsmI,EAAQ9+H,EAAEm3F,OAAS2nC,EAAQtmI,EAAE2+F,UACxDxlE,GAEXwwP,EAAQvxR,UAAUi3Q,eAAiB,SAAUtsQ,GACzClH,KAAK2vM,cAAc6jE,eAAetsQ,IAEtC4mR,EAAQvxR,UAAUw3Q,eAAiB,WAC/B,OAAO/zQ,KAAK2vM,cAAcokE,kBAE9B+Z,EAAQvxR,UAAU4sO,eAAiB,WAC/B,OAAOnpO,KAAKi6K,gBAAgBkvD,kBAEhC2kD,EAAQvxR,UAAUsjR,iBAAmB,WACjC,OAAO7/Q,KAAKi6K,gBAAgB4lG,oBAEhCiO,EAAQvxR,UAAU2tO,eAAiB,SAAUtqF,EAAUvf,EAAQ0qH,GAC3D/qP,KAAKi6K,gBAAgBiwD,eAAetqF,EAAUvf,EAAQ0qH,GAAU,IAEpE+iC,EAAQvxR,UAAUixJ,mBAAqB,SAAU9wJ,GAC7CsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB4c,uBAAwBt9N,IAEnFoxR,EAAQvxR,UAAUmxJ,+BAAiC,SAAUhxJ,GACzDsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB6c,iCAAkCv9N,IAE7FoxR,EAAQvxR,UAAUqxJ,6BAA+B,SAAUlxJ,GACvDsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB2c,kCAAmCr9N,IAE9FoxR,EAAQvxR,UAAU4jR,eAAiB,SAAU/8Q,GACzCpD,KAAKkoM,YAAYI,oBAAoB63E,eAAe/8Q,IAExD0qR,EAAQvxR,UAAU04R,kBAAoB,SAAU7xR,GAC5C,IAAI8xR,EAAmBl1R,KAAKynM,mBAAmBtE,iBAAiB//L,GAC5D8xR,GACAl1R,KAAKynM,mBAAmB1E,iBAAiBmyF,IAGjDpH,EAAQvxR,UAAU44R,qBAAuB,SAAU3U,GAC/C,OAAOxgR,KAAKkoM,YAAYI,oBAAoBi4E,eAAeC,IAE/DsN,EAAQvxR,UAAUyxJ,gBAAkB,SAAUD,GAC1C/tJ,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB6b,mBAAoBlrE,IAE/E+/H,EAAQvxR,UAAU64R,aAAe,SAAUhyE,GACvCpjN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBQ,gBAAiBwF,IAE5E0qE,EAAQvxR,UAAUwwJ,2BAA6B,SAAUqhC,GACrDpuL,KAAKkoM,YAAY05E,qBAAqBxzF,IAE1C0/F,EAAQvxR,UAAU84R,uBAAyB,SAAUztJ,GACjD5nI,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBkd,2BAA4B1yF,IAEvFkmJ,EAAQvxR,UAAU+4R,qBAAuB,SAAUvnI,GAC/C/tJ,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBkc,yBAA0BvrE,IAErF+/H,EAAQvxR,UAAUg5R,yBAA2B,SAAUxnI,GACnD/tJ,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB0c,6BAA8B/rE,IAEzF+/H,EAAQvxR,UAAUi5R,0BAA4B,SAAUznI,GACpD/tJ,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBmc,+BAAgCxrE,IAE3F+/H,EAAQvxR,UAAUk5R,2BAA6B,SAAUC,GACrD11R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBwc,gCAAiC87D,IAE5F5H,EAAQvxR,UAAUo5R,0BAA4B,SAAUC,GACpD51R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmByc,+BAAgC+7D,IAE3F9H,EAAQvxR,UAAUs5R,sBAAwB,SAAUC,GAChD91R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBoc,2BAA4Bs8D,IAEvFhI,EAAQvxR,UAAUw5R,iBAAmB,SAAUC,GAC3Ch2R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBqc,sBAAuBu8D,IAElFlI,EAAQvxR,UAAU05R,mBAAqB,SAAUC,GAC7Cl2R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBuc,wBAAyBu8D,IAEpFpI,EAAQvxR,UAAU45R,wBAA0B,SAAUC,GAClDp2R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBsc,6BAA8B08D,IAEzFtI,EAAQvxR,UAAU85R,oBAAsB,SAAUC,GAC9Ct2R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBmd,yBAA0B+7D,IAErFxI,EAAQvxR,UAAUg6R,yBAA2B,SAAU1uE,GACnD7nN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBod,+BAAgC3S,IAE3FimE,EAAQvxR,UAAUi6R,iBAAmB,SAAUvvE,GAC3CjnN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBqd,qBAAsBxT,IAEjF6mE,EAAQvxR,UAAUk6R,wBAA0B,SAAUC,GAClD12R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBsd,6BAA8Bg8D,IAEzF5I,EAAQvxR,UAAUo6R,gBAAkB,SAAUtmG,GAC1CrwL,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBud,qBAAsBtqC,IAEjFy9F,EAAQvxR,UAAUq6R,eAAiB,SAAUC,GACzC72R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB8c,mBAAoB28D,IAE/E/I,EAAQvxR,UAAUu6R,mBAAqB,SAAU3/F,GAC7Cn3L,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBwd,wBAAyBzjC,IAEpF22F,EAAQvxR,UAAUw6R,mBAAqB,SAAUhnG,GAC7C/vL,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmByd,uBAAwB9qC,IAEnF+9F,EAAQvxR,UAAUy6R,eAAiB,SAAUC,GACzCj3R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB0d,mBAAoBm8D,IAE/EnJ,EAAQvxR,UAAU26R,YAAc,SAAUC,GACtCn3R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB2d,eAAgBo8D,IAE3ErJ,EAAQvxR,UAAU66R,eAAiB,SAAUC,GACzCr3R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB4d,kBAAmBq8D,IAE9EvJ,EAAQvxR,UAAU+6R,uBAAyB,SAAUplE,GACjDlyN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBge,4BAA6BlJ,IAExF47D,EAAQvxR,UAAUg7R,oBAAsB,SAAUnlE,GAC9CpyN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBie,yBAA0BjJ,IAErF07D,EAAQvxR,UAAUi7R,2BAA6B,SAAUC,GACrDz3R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBke,gCAAiCm8D,IAE5F3J,EAAQvxR,UAAUm7R,mBAAqB,SAAUC,GAC7C33R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBoe,uBAAwBm8D,IAEnF7J,EAAQvxR,UAAUq7R,4BAA8B,SAAUC,GACtD73R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBme,iCAAkCs8D,IAE7F/J,EAAQvxR,UAAUu7R,0BAA4B,SAAUC,GACpD/3R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBqe,iCAAkCs8D,IAE7FjK,EAAQvxR,UAAUy7R,+BAAiC,SAAUC,GACzDj4R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBse,qCAAsCu8D,IAEjGnK,EAAQvxR,UAAU27R,oBAAsB,SAAUC,GAC9Cn4R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB6d,wBAAyBk9D,IAEpFrK,EAAQvxR,UAAU67R,8BAAgC,SAAUC,GACxDr4R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB8d,mCAAoCm9D,IAE/FvK,EAAQvxR,UAAU+7R,uBAAyB,SAAUC,GACjDv4R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBue,2BAA4B48D,IAEvFzK,EAAQvxR,UAAUi8R,wBAA0B,SAAU7jE,GAClD30N,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBwe,6BAA8BjH,IAEzFm5D,EAAQvxR,UAAUk8R,6BAA+B,SAAUC,GACvD14R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB+d,iCAAkCu9D,IAE7F5K,EAAQvxR,UAAUo8R,4BAA8B,SAAUtyE,GACtDrmN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBye,kCAAmCxV,IAE9FynE,EAAQvxR,UAAUq8R,kCAAoC,SAAUC,GAC5D74R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB0e,2CAA4C+8D,IAEvG/K,EAAQvxR,UAAUu8R,gCAAkC,SAAUC,GAC1D/4R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB2e,sCAAuCg9D,IAElGjL,EAAQvxR,UAAUy8R,qBAAuB,SAAUC,GAC/Cj5R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB4e,0BAA2Bi9D,IAEtFnL,EAAQvxR,UAAU28R,yBAA2B,SAAUpnE,GACnD9xN,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB6e,+BAAgCnK,IAE3Fg8D,EAAQvxR,UAAU48R,eAAiB,SAAU5rD,GACzCvtO,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB+c,mBAAoBoT,IAE/EugD,EAAQvxR,UAAU68R,gBAAkB,SAAUC,GAC1Cr5R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBgd,oBAAqBi/D,IAEhFvL,EAAQvxR,UAAU+8R,qBAAuB,SAAUvrI,GAC/C/tJ,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBgc,yBAA0BrrE,IAErF+/H,EAAQvxR,UAAUg9R,iBAAmB,WACjC,QAAOv5R,KAAKuuR,aAAcvuR,KAAKuuR,YAAYj1I,eAE/Cw0I,EAAQvxR,UAAUi9R,kBAAoB,SAAUjX,GACvCviR,KAAKuuR,YAMVvuR,KAAKuuR,YAAY/oI,aAAa+8H,GALtBA,GACAt/Q,QAAQkD,KAAK,mCAMzB2nR,EAAQvxR,UAAUk9R,mBAAqB,SAAU72I,GACxC5iJ,KAAKuuR,YAIVvuR,KAAKuuR,YAAYkL,mBAAmB72I,GAHhC3/I,QAAQkD,KAAK,mCAKrB2nR,EAAQvxR,UAAUm9R,cAAgB,SAAUj9R,GACnCuD,KAAKuuR,YAIVvuR,KAAKuuR,YAAYmL,cAAcj9R,GAH3BwG,QAAQkD,KAAK,+DAKrB2nR,EAAQvxR,UAAUo9R,eAAiB,WAC1B35R,KAAKuuR,YAIVvuR,KAAKuuR,YAAYvzP,QAHb/3B,QAAQkD,KAAK,+DAKrB2nR,EAAQvxR,UAAUq9R,mBAAqB,WACnC,OAAO55R,KAAKuuR,YAAcvuR,KAAKuuR,YAAYsL,aAAe,MAE9D/L,EAAQvxR,UAAUskN,WAAa,WAC3B,OAAO7gN,KAAK8vG,mBAAmB+wG,cAEnCitE,EAAQvxR,UAAUu9R,WAAa,SAAUzvK,GACrCrqH,KAAK8vG,mBAAmB3J,YAAY,UAAWq1G,GAAiBxyL,MAAMqhG,KAE1EyjK,EAAQvxR,UAAUuxJ,0BAA4B,SAAUpxJ,GACpDsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBic,8BAA+B38N,IAE1FoxR,EAAQvxR,UAAUw9R,mBAAqB,WACnC,OAAO/5R,KAAKuuR,YAAYwL,sBAE5BjM,EAAQvxR,UAAUy9R,SAAW,WACzB,IAAI/oQ,EAAU,iIACdm3E,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK8qB,KAAa,uBAE1D68P,EAAQvxR,UAAU47I,gBAAkB,WAC5B13C,EAAOzgG,KAAKs+N,qBACZt+N,KAAKs+N,mBAAmBnmF,mBAGhC21I,EAAQvxR,UAAU+wJ,6BAA+B,SAAU5wJ,GACvDsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB8b,kCAAmCx8N,IAE9FoxR,EAAQvxR,UAAU09R,mCAAqC,SAAUv9R,GAC7DsD,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmB+b,yCAA0Cz8N,IAErGoxR,EAAQvxR,UAAU6qO,mBAAqB,WAC/BpnO,KAAKs+N,mBACLt+N,KAAKs+N,mBAAmB8I,qBAEnBpnO,KAAK4qO,oBACV5qO,KAAK4qO,mBAAmBxD,sBAGhC0mD,EAAQvxR,UAAU4xI,SAAW,SAAU9N,EAAQt1H,GAC3C,IAAIrD,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiBiG,GAIpD,OAHI1/B,EAAQj5F,KACRA,EAAS1H,KAAKm/I,iBAAiB1e,cAAcJ,IAE7C1/B,EAAQj5F,GACD,KAEJ1H,KAAKmgJ,aAAahS,SAASzmI,EAAQqD,IAE9C+iR,EAAQvxR,UAAUi0G,iBAAmB,SAAUpnG,EAAWqnG,GACtD,IAAIT,EAAQhwG,KAAK8vG,mBAAmBG,iBACpCjwG,KAAKq0G,aAAa7D,iBAAiBpnG,EAAWqnG,EAAUT,IAE5D89K,EAAQvxR,UAAU2zG,kBAAoB,SAAUO,GAC5C,IAAIT,EAAQhwG,KAAK8vG,mBAAmBG,iBACpCjwG,KAAKq0G,aAAanE,kBAAkBO,EAAUT,IAElD89K,EAAQvxR,UAAUm0G,oBAAsB,SAAUtnG,EAAWqnG,GACzD,IAAIT,EAAQhwG,KAAK8vG,mBAAmBG,iBACpCjwG,KAAKq0G,aAAa3D,oBAAoBtnG,EAAWqnG,EAAUT,IAE/D89K,EAAQvxR,UAAUq0G,qBAAuB,SAAUH,GAC/C,IAAIT,EAAQhwG,KAAK8vG,mBAAmBG,iBACpCjwG,KAAKq0G,aAAazD,qBAAqBH,EAAUT,IAErD89K,EAAQvxR,UAAUkQ,cAAgB,SAAUrF,GACxCpH,KAAKq0G,aAAa5nG,cAAcrF,IAEpC0mR,EAAQvxR,UAAU6J,QAAU,WAGpBpG,KAAKguR,gBAGThuR,KAAKguR,eAAgB,EAErBhuR,KAAKquR,mBAAmB6L,gBAExBl6R,KAAKqpG,QAAQjjG,YAEjB0nR,EAAQvxR,UAAUokO,uFAAyF,WAOvGl1N,WAAWo8F,GAAoBp9F,KAAKc,OAAQvL,KAAM,YAAa,MAEnE8tR,EAAQvxR,UAAU49R,gBAAkB,SAAUv0R,GAI1C,OAHI5F,KAAKguR,eACL/qR,QAAQkD,KAAK,4BAA8BP,EAAa,6CAErD5F,KAAKguR,eAEhBF,EAAQvxR,UAAU69R,iBAAmB,WAC7Bp6R,KAAKm6R,gBAAgB,qBAGzBn6R,KAAKk4I,SAASptI,aAAY,SAAU0H,GAAQ,OAAOA,EAAKshL,yBAA2B,SAEvFg6F,EAAQvxR,UAAU89R,mBAAqB,WAEnC,OADAp3R,QAAQkD,KAAK,sSACN,MAEX2nR,EAAQvxR,UAAU4jP,cAAgB,WAC9B,OAAIngP,KAAK+yO,gBACE/yO,KAAK+yO,gBAAgBoN,iBAEhCl9O,QAAQkD,KAAK,yEACN,OAEX2nR,EAAQvxR,UAAU+9R,yBAA2B,SAAUnmK,GACnD,OAAOD,GAAqBC,IAEhC25J,EAAQvxR,UAAUg+R,kBAAoB,SAAUC,GAC5Cv3R,QAAQkD,KAAK,mKAEjB2nR,EAAQvxR,UAAUk+R,aAAe,SAAUr3R,GAClCpD,KAAK+yO,iBACN9vO,QAAQkD,KAAK,yEAEjBnG,KAAK+yO,gBAAgB0nD,aAAar3R,IAEtC0qR,EAAQvxR,UAAUm+R,oBAAsB,WAC/B16R,KAAK+yO,iBACN9vO,QAAQkD,KAAK,yEAEjBnG,KAAK+yO,gBAAgB+sC,uBAEzBgO,EAAQvxR,UAAUo+R,gBAAkB,WAChC36R,KAAKsmR,gBAAgBE,QAEzBsH,EAAQvxR,UAAUq+R,gBAAkB,WAChC56R,KAAKsmR,gBAAgBC,QAEzBuH,EAAQvxR,UAAUs+R,mBAAqB,WACnC,OAAO76R,KAAKsmR,gBAAgBwU,2BAEhChN,EAAQvxR,UAAUw+R,mBAAqB,WACnC,OAAO/6R,KAAKsmR,gBAAgB0U,2BAEhClN,EAAQvxR,UAAU0+R,eAAiB,WAC/B,GAAIhoL,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,uBAC1EvrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,sBACtE,OAAOpoN,KAAKk7R,aAAaD,kBAGjCnN,EAAQvxR,UAAU4+R,iBAAmB,SAAU/3R,GAC3C,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,yBAC1EvrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,wBACtE,OAAOpoN,KAAKk7R,aAAaC,iBAAiB/3R,IAGlD0qR,EAAQvxR,UAAU6+R,uBAAyB,SAAUh4R,GACjD,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,+BAC1EvrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,8BACtE,OAAOpoN,KAAKk7R,aAAaE,uBAAuBh4R,IAGxD0qR,EAAQvxR,UAAU8+R,aAAe,SAAUC,EAAYC,GACnD,GAAItoL,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,qBAC1EvrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,oBACtE,OAAOpoN,KAAKk7R,aAAaG,aAAaC,EAAYC,IAG1DzN,EAAQvxR,UAAUi/R,iBAAmB,SAAUp4R,GAC3C,GAAI6vG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYwrG,qBAAsB,yBAC1EvrG,GAAeM,iBAAiB1kG,EAAQmkG,YAAYo1G,iBAAkB,wBACtE,OAAOpoN,KAAKk7R,aAAaM,iBAAiBp4R,IAGlD0qR,EAAQvxR,UAAUk/R,4BAA8B,SAAUC,EAAeC,GAChE37R,KAAKqnR,kBACNpkR,QAAQkD,KAAK,8DAEjBnG,KAAKqnR,iBAAiBoU,4BAA4BC,EAAeC,IAErE7N,EAAQvxR,UAAUq/R,6BAA+B,SAAUF,GAClD17R,KAAKqnR,kBACNpkR,QAAQkD,KAAK,8DAEjBnG,KAAKqnR,iBAAiBuU,6BAA6BF,IAEvD5N,EAAQvxR,UAAUs/R,sBAAwB,WACjC77R,KAAKqnR,kBACNpkR,QAAQkD,KAAK,8DAEjBnG,KAAKqnR,iBAAiBI,iBAE1BqG,EAAQvxR,UAAUihQ,+BAAiC,SAAUn9H,EAAQy7J,GAEjE,IAAIp0R,EAAS1H,KAAKm/I,iBAAiB1e,cAAcJ,GACjDrgI,KAAK0rL,YAAYC,yBAAyBjkL,EAAQo0R,IAEtDhO,EAAQvxR,UAAU2uL,8BAAgC,SAAU7qD,EAAQknC,GAEhE,IAAI7/J,EAAS1H,KAAKm/I,iBAAiB1e,cAAcJ,GAC5C34H,IACDA,EAAS1H,KAAKm/I,iBAAiB/kB,iBAAiBiG,IAE/C34H,EAIL1H,KAAK0rL,YAAYqwG,wBAAwBr0R,EAAQ6/J,GAH7CtkK,QAAQC,MAAM,oBAAsBm9H,EAAS,gBAKrDytJ,EAAQvxR,UAAUy/R,cAAgB,WAE1Bh8R,KAAK4jR,oBACL5jR,KAAK4jR,mBAAmBqY,iBAG5Bj8R,KAAK0rL,YAAYuwG,kBAErBnO,EAAQvxR,UAAU2/R,eAAiB,SAAUC,GACzCn8R,KAAK8vG,mBAAmB3J,YAAYi3G,GAAmBid,kBAAmB8hE,IAE9ErO,EAAQvxR,UAAUs2N,cAAgB,WAC9B,OAAO7yN,KAAK0yL,YAAYmgC,eAAc,IAE1Ci7D,EAAQvxR,UAAU6/R,kBAAoB,WAClC,OAAOp8R,KAAK0yL,YAAYmgC,eAAc,IAE1Ci7D,EAAQvxR,UAAUiuP,yBAA2B,SAAUpnP,GAEnD,YADe,IAAXA,IAAqBA,EAAS,IAC3BpD,KAAK0yL,YAAY83D,yBAAyBpnP,IAErD0qR,EAAQvxR,UAAUkuP,uBAAyB,SAAUrnP,GAEjD,YADe,IAAXA,IAAqBA,EAAS,IAC3BpD,KAAK0yL,YAAY+3D,uBAAuBrnP,IAEnD0qR,EAAQvxR,UAAUmuP,gBAAkB,WAChC,OAAO1qP,KAAK0yL,YAAYg4D,mBAE5BojC,EAAQvxR,UAAU40M,YAAc,SAAUnvC,QACvB,IAAXA,IAAqBA,GAAS,GAClChiK,KAAK0yL,YAAYye,YAAYnvC,IAEjC8rH,EAAQvxR,UAAUg1P,iBAAmB,SAAUnuP,GAC3C,IAAIsE,EAAS1H,KAAKm/I,iBAAiB1e,cAAcr9H,EAAOi9H,QACxD,GAAK34H,EAAL,CAIA,IAAI0hO,EAAe,CACfxpF,SAAUx8I,EAAOw8I,SACjB2vC,UAAWnsL,EAAOmsL,WAAa,KAC/B7nL,OAAQA,GAER20R,EAAY17L,EAAQv9F,EAAOmsL,WAC3B8sG,GACAr8R,KAAKkoM,YAAYylC,mBAAmByjB,mBAAmBhuP,EAAOw8I,UAElE5/I,KAAK0yL,YAAY6+D,iBAAiBnoB,EAAchmO,EAAOkyK,SAAUlyK,EAAOmyK,gBAZpEtyK,QAAQkD,KAAK,gCAAkC/C,EAAOi9H,SAc9DytJ,EAAQvxR,UAAU+/R,WAAa,SAAU7/R,EAAKo+G,GACtC76G,KAAKigI,gBACLjgI,KAAKigI,eAAeq8J,WAAW7/R,EAAKo+G,IAG5CizK,EAAQvxR,UAAUggS,YAAc,SAAU1tE,GAClC7uN,KAAKigI,gBACLjgI,KAAKigI,eAAes8J,YAAY1tE,IAGxCi/D,EAAQvxR,UAAUigS,cAAgB,WAC1Bx8R,KAAKigI,gBACLjgI,KAAKigI,eAAew8J,SAG5B3O,EAAQvxR,UAAUmgS,2BAA6B,SAAUhM,GACrD,GAAK1wR,KAAK28R,6BAIV,OAAO38R,KAAK28R,6BAA6BC,iBAAiBlM,GAHtDztR,QAAQkD,KAAK,0FAKrB2nR,EAAQvxR,UAAUsgS,gCAAkC,SAAUnM,EAAahrR,GACvE,GAAK1F,KAAK28R,6BAIV,OAAO38R,KAAK28R,6BAA6BG,sBAAsBpM,EAAahrR,GAHxEzC,QAAQkD,KAAK,0FAKrB2nR,EAAQvxR,UAAUwgS,qBAAuB,WAChC/8R,KAAK4qO,mBAIV5qO,KAAK4qO,mBAAmBoyD,aAHpB/5R,QAAQkD,KAAK,2FAKrB2nR,EAAQvxR,UAAU0gS,iCAAmC,WACjD,GAAKj9R,KAAK28R,6BAIV,OAAO38R,KAAK28R,6BAA6BO,yBAHrCj6R,QAAQkD,KAAK,0FAKrB2nR,EAAQvxR,UAAUqgS,iBAAmB,SAAUO,GAC3C,GAAKn9R,KAAKs+N,mBAAV,CAIA,IAAIhhM,EAAMt9B,KAAKs+N,mBAAmBmhD,cAAc0d,GAOhD,OALAn9R,KAAK0yL,YAAYi6D,qBAAqBrvN,EAAIqxJ,QAErC3uL,KAAK8vG,mBAAmB+0G,6BACzB7kN,KAAK0yL,YAAYC,eAEdr1J,EAVHr6B,QAAQC,MAAM,4IAatB4qR,EAAQvxR,UAAUkjR,cAAgB,SAAU0d,GACxC,IAAIlsQ,EAAU,oLAEd,OADAm3E,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK8qB,KAAa,4BAC/CjxB,KAAK48R,iBAAiBO,IAEjCrP,EAAQvxR,UAAUugS,sBAAwB,SAAUK,EAAoBz3R,GAC/D1F,KAAKs+N,mBAIVt+N,KAAKs+N,mBAAmB8+D,mBAAmBD,EAAoBz3R,GAH3DzC,QAAQC,MAAM,6EAKtB4qR,EAAQvxR,UAAU2gS,uBAAyB,WAClCl9R,KAAKs+N,mBAIVt+N,KAAKs+N,mBAAmB4+D,yBAHpBj6R,QAAQC,MAAM,6EAMtB4qR,EAAQvxR,UAAU6gS,mBAAqB,SAAUD,EAAoBz3R,GACjE,IAAIurB,EAAU,uNACdm3E,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK8qB,KAAa,iCACtDjxB,KAAK88R,sBAAsBK,EAAoBz3R,IAEnDooR,EAAQvxR,UAAU8gS,mBAAqB,SAAUn+R,EAAO4kH,EAAOw5K,GAC3Dr6R,QAAQkD,KAAK,wFACbnG,KAAKy/Q,cAAc,CAAE5hL,IAAKimB,EAAOy7J,SAAUrgR,EAAOyvL,OAAQ,KAAMxqC,OAAQ,QAE5E2pI,EAAQvxR,UAAUghS,YAAc,SAAUt1H,EAAUq1H,GAChDr6R,QAAQkD,KAAK,iFACb,IAAIq3R,EAAev1H,EAASxgK,KAAI,SAAUsD,GAAW,OAAOA,EAAQxK,QACpEP,KAAKy/Q,cAAc,CAAE5hL,IAAK,KAAM0hL,SAAU,KAAM5wF,OAAQ,KAAMxqC,OAAQq5I,KAE1E1P,EAAQvxR,UAAUwzK,SAAW,SAAUjsD,EAAOw5K,GAC1Cr6R,QAAQkD,KAAK,8EACbnG,KAAKy/Q,cAAc,CAAE5hL,IAAKimB,EAAOy7J,SAAU,KAAM5wF,OAAQ,KAAMxqC,OAAQ,QAE3E2pI,EAAQvxR,UAAUkhS,wBAA0B,WACxCx6R,QAAQkD,KAAK,uHACbnG,KAAK09R,wBAET5P,EAAQvxR,UAAUohS,yBAA2B,WACzC16R,QAAQkD,KAAK,wHACbnG,KAAK09R,wBAET5P,EAAQvxR,UAAUmhS,qBAAuB,WACjC19R,KAAKwuR,iBACLxuR,KAAKwuR,iBAAiBoP,eAGtB36R,QAAQkD,KAAK,sFAGrB2nR,EAAQvxR,UAAUshS,sBAAwB,WACtC56R,QAAQkD,KAAK,iHACbnG,KAAK89R,0BAEThQ,EAAQvxR,UAAUuhS,uBAAyB,WACvC76R,QAAQkD,KAAK,kHACbnG,KAAK+9R,sBAETjQ,EAAQvxR,UAAUwhS,mBAAqB,WAC/B/9R,KAAKwuR,iBACLxuR,KAAKwuR,iBAAiBwP,aAGtB/6R,QAAQkD,KAAK,oFAIrB2nR,EAAQvxR,UAAU0hS,qBAAuB,SAAUC,GAC/Cj7R,QAAQkD,KAAK,8GACbnG,KAAKm+R,qBAAqBD,IAG9BpQ,EAAQvxR,UAAU4hS,qBAAuB,SAAUD,QACjC,IAAVA,IAAoBA,EAAQ,IAC5Bl+R,KAAK4qO,oBACL3nO,QAAQkD,KAAK,+HACbnG,KAAKo+R,uBAAuB,CACxBF,MAAOA,EACPG,OAAO,KAIXp7R,QAAQkD,KAAK,wFAGrB2nR,EAAQvxR,UAAU6hS,uBAAyB,SAAUh7R,GAC7CpD,KAAK4qO,mBACL5qO,KAAK4qO,mBAAmB0zD,aAAal7R,GAGrCH,QAAQkD,KAAK,0FAGrB2nR,EAAQvxR,UAAUgiS,wBAA0B,WACxC,OAAIv+R,KAAK4qO,mBACE5qO,KAAK4qO,mBAAmB4zD,iBAG/Bv7R,QAAQkD,KAAK,0FACN,KAGf2nR,EAAQvxR,UAAUkiS,mBAAqB,WAEnC,OADAx7R,QAAQkD,KAAK,gHACNnG,KAAK0+R,uBAEhB5Q,EAAQvxR,UAAUmiS,oBAAsB,WACpC,GAAI1+R,KAAKwuR,iBACL,OAAOxuR,KAAKwuR,iBAAiBhT,cAG7Bv4Q,QAAQkD,KAAK,mFAGrB2nR,EAAQvxR,UAAUoiS,cAAgB,WAE9B,OADA17R,QAAQkD,KAAK,wFACNnG,KAAK4+R,uBAEhB9Q,EAAQvxR,UAAUqiS,oBAAsB,WACpC,GAAI5+R,KAAKwuR,iBACL,OAAOxuR,KAAKwuR,iBAAiBoQ,sBAG7B37R,QAAQkD,KAAK,8EAGrB2nR,EAAQvxR,UAAUsiS,mBAAqB,SAAUvhI,EAAUwhI,GACvD77R,QAAQkD,KAAK,gHACbnG,KAAKsjR,YAAYhmH,EAAUwhI,IAE/BhR,EAAQvxR,UAAUwiS,oBAAsB,SAAUzhI,EAAUwhI,GACxD77R,QAAQkD,KAAK,iGACbnG,KAAKsjR,YAAYhmH,EAAUwhI,IAE/BhR,EAAQvxR,UAAU+mR,YAAc,SAAUhmH,EAAUwhI,GAC5C9+R,KAAKwuR,iBACLxuR,KAAKwuR,iBAAiBlL,YAAYhmH,EAAUwhI,GAG5C77R,QAAQkD,KAAK,uEAGrB2nR,EAAQvxR,UAAUyiS,oBAAsB,WAEpC,OADA/7R,QAAQkD,KAAK,+GACNnG,KAAKi/R,sBAEhBnR,EAAQvxR,UAAU2iS,qBAAuB,WAErC,OADAj8R,QAAQkD,KAAK,gHACNnG,KAAKi/R,sBAEhBnR,EAAQvxR,UAAU0iS,mBAAqB,WACnC,OAAOj/R,KAAKm/R,mBAAmBC,iBAEnCtR,EAAQvxR,UAAU8iS,cAAgB,WAC9Bp8R,QAAQkD,KAAK,qGAEjB2nR,EAAQvxR,UAAU+iS,oBAAsB,WAEpC,OADAr8R,QAAQkD,KAAK,+EACNnG,KAAKu/R,wBAEhBzR,EAAQvxR,UAAUgjS,qBAAuB,WACrC,OAAOv/R,KAAK0yL,YAAYu8D,8BAE5B6+B,EAAQvxR,UAAUijS,mBAAqB,WAEnC,OADAv8R,QAAQkD,KAAK,6EACNnG,KAAKy/R,uBAEhB3R,EAAQvxR,UAAUkjS,oBAAsB,WACpC,OAAOz/R,KAAK0yL,YAAYw8D,6BAE5B4+B,EAAQvxR,UAAUmjS,uBAAyB,SAAUxgS,GACjD,OAAOc,KAAKk4I,SAAS4H,OAAO5gJ,IAEhC4uR,EAAQvxR,UAAUojS,qBAAuB,WACrC,OAAO3/R,KAAKk4I,SAASsjI,eAEzBsS,EAAQvxR,UAAUqjS,0BAA4B,WAC1C,OAAO5/R,KAAKw/I,gBAAgBqgJ,mBAEhC/R,EAAQvxR,UAAUujS,sBAAwB,WACtC,OAAO9/R,KAAKw/I,gBAAgBugJ,eAEhCjS,EAAQvxR,UAAU6wJ,sBAAwB,SAAUxhI,GAChD5rB,KAAK8vG,mBAAmB3J,YAAY,qBAAsBv6E,IAE9DkiQ,EAAQvxR,UAAUyjS,yBAA2B,WACzC,OAAOhgS,KAAKw/I,gBAAgB4jF,kBAEhC0qD,EAAQvxR,UAAU0jS,wBAA0B,WACxC,OAAOjgS,KAAKw/I,gBAAgB0gJ,iBAEhCpS,EAAQvxR,UAAU4jS,sBAAwB,WACtC,OAAOngS,KAAKw/I,gBAAgB4gJ,qBAEhCtS,EAAQvxR,UAAU8jS,uBAAyB,WACvCrgS,KAAKw/I,gBAAgB8gJ,gBAEzBxS,EAAQvxR,UAAUgkS,2BAA6B,WAC3CvgS,KAAKw/I,gBAAgBghJ,oBAEzB1S,EAAQvxR,UAAUkkS,wBAA0B,WACxCzgS,KAAKw/I,gBAAgBkhJ,iBAEzB5S,EAAQvxR,UAAUokS,uBAAyB,WACvC3gS,KAAKw/I,gBAAgBohJ,gBAEzB9S,EAAQvxR,UAAUskS,mBAAqB,SAAUlnM,GAC7C35F,KAAKw/I,gBAAgBshJ,SAASnnM,IAElCk0L,GAAc,CACV/+K,GAAS,qBACVg/K,EAAQvxR,UAAW,wBAAoB,GAC1CsxR,GAAc,CACV/+K,GAAS,eACVg/K,EAAQvxR,UAAW,kBAAc,GACpCsxR,GAAc,CACV/+K,GAAS,iBACVg/K,EAAQvxR,UAAW,oBAAgB,GACtCsxR,GAAc,CACVj/K,GAAU,gBACXk/K,EAAQvxR,UAAW,mBAAe,GACrCsxR,GAAc,CACVj/K,GAAU,kBACXk/K,EAAQvxR,UAAW,qBAAiB,GACvCsxR,GAAc,CACVj/K,GAAU,qBACXk/K,EAAQvxR,UAAW,wBAAoB,GAC1CsxR,GAAc,CACVj/K,GAAU,wBACXk/K,EAAQvxR,UAAW,2BAAuB,GAC7CsxR,GAAc,CACVj/K,GAAU,uBACXk/K,EAAQvxR,UAAW,0BAAsB,GAC5CsxR,GAAc,CACVj/K,GAAU,iBACXk/K,EAAQvxR,UAAW,oBAAgB,GACtCsxR,GAAc,CACVj/K,GAAU,wBACXk/K,EAAQvxR,UAAW,2BAAuB,GAC7CsxR,GAAc,CACVj/K,GAAU,iBACXk/K,EAAQvxR,UAAW,oBAAgB,GACtCsxR,GAAc,CACVj/K,GAAU,mBACXk/K,EAAQvxR,UAAW,sBAAkB,GACxCsxR,GAAc,CACVj/K,GAAU,YACXk/K,EAAQvxR,UAAW,eAAW,GACjCsxR,GAAc,CACVj/K,GAAU,aACXk/K,EAAQvxR,UAAW,gBAAY,GAClCsxR,GAAc,CACVj/K,GAAU,mBACXk/K,EAAQvxR,UAAW,sBAAkB,GACxCsxR,GAAc,CACVj/K,GAAU,oBACXk/K,EAAQvxR,UAAW,uBAAmB,GACzCsxR,GAAc,CACVj/K,GAAU,oBACXk/K,EAAQvxR,UAAW,uBAAmB,GACzCsxR,GAAc,CACVj/K,GAAU,uBACXk/K,EAAQvxR,UAAW,0BAAsB,GAC5CsxR,GAAc,CACV/+K,GAAS,oBACVg/K,EAAQvxR,UAAW,uBAAmB,GACzCsxR,GAAc,CACV/+K,GAAS,qBACVg/K,EAAQvxR,UAAW,wBAAoB,GAC1CsxR,GAAc,CACV/+K,GAAS,mBACVg/K,EAAQvxR,UAAW,sBAAkB,GACxCsxR,GAAc,CACVj/K,GAAU,gBACXk/K,EAAQvxR,UAAW,mBAAe,GACrCsxR,GAAc,CACV/+K,GAAS,uBACVg/K,EAAQvxR,UAAW,0BAAsB,GAC5CsxR,GAAc,CACVj/K,GAAU,eACXk/K,EAAQvxR,UAAW,kBAAc,GACpCsxR,GAAc,CACVj/K,GAAU,0BACXk/K,EAAQvxR,UAAW,6BAAyB,GAC/CsxR,GAAc,CACV/+K,GAAS,qBACVg/K,EAAQvxR,UAAW,wBAAoB,GAC1CsxR,GAAc,CACV/+K,GAAS,iBACVg/K,EAAQvxR,UAAW,oBAAgB,GACtCsxR,GAAc,CACV/+K,GAAS,oBACVg/K,EAAQvxR,UAAW,uBAAmB,GACzCsxR,GAAc,CACV/+K,GAAS,oBACVg/K,EAAQvxR,UAAW,uBAAmB,GACzCsxR,GAAc,CACV/+K,GAAS,uBACVg/K,EAAQvxR,UAAW,0BAAsB,GAC5CsxR,GAAc,CACV/+K,GAAS,2BACVg/K,EAAQvxR,UAAW,oCAAgC,GACtDsxR,GAAc,CACV/+K,GAAS,uBACVg/K,EAAQvxR,UAAW,0BAAsB,GAC5CsxR,GAAc,CACVv/K,IACDw/K,EAAQvxR,UAAW,OAAQ,MAC9BsxR,GAAc,CACVr/K,IACDs/K,EAAQvxR,UAAW,yFAA0F,MAChHuxR,EAAUD,GAAc,CACpBn/K,GAAK,YACNo/K,GACIA,EAh7CiB,GAy7CxBiT,GAAqD,WACrD,IAAI98R,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD08R,GAAuD,SAAU3/R,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Ds8R,GAAgD,SAAU7zL,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvD8zL,GAAmC,SAAUr8R,GAE7C,SAASq8R,IACL,IAAInhS,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAMohS,0BAA4B,GAC3BphS,EAsEX,OA1EAghS,GAAaG,EAAmBr8R,GAMhCq8R,EAAkB3kS,UAAUqzG,SAAW,SAAUC,GAC7C7vG,KAAKwqG,OAASqF,EAActrG,OAAO,sBAEvC28R,EAAkB3kS,UAAUwzI,SAAW,SAAUqxJ,EAAkBh+R,GAC/D,GAAgC,oBAArBg+R,EAAiC,CAExC,IAAIj2R,EAAOi2R,EACX,OAAOj2R,EAAK/H,GAEX,GAAgC,kBAArBg+R,EAA+B,CAE3C,IAAItoM,EAAasoM,EACjB,OAAOphS,KAAKqhS,mBAAmBvoM,EAAY11F,GAG3CH,QAAQC,MAAM,yDAA0Dk+R,IAGhFF,EAAkB3kS,UAAU8kS,mBAAqB,SAAUvoM,EAAY11F,GACnE,IACI,IAAIk+R,EAAqBthS,KAAKuhS,yBAAyBzoM,GAGnDtqF,EAAS8yR,EAAmBl+R,EAAO1G,MAAO0G,EAAOimG,QAASjmG,EAAOyvL,SAAUzvL,EAAOs5G,SAAUt5G,EAAO1G,MAAO0G,EAAOoP,KAAMpP,EAAO7C,KAAM6C,EAAOwE,OAAQxE,EAAOw8I,SAAUx8I,EAAOwG,IAAKxG,EAAOyG,UAAWzG,EAAO+qI,SAAU/qI,EAAOsE,OAAQtE,EAAOwhI,aAC7O,OAAOp2H,EAEX,MAAOhC,GAWH,OAPAvJ,QAAQ4a,IAAI,uCAEZ5a,QAAQ4a,IAAI,gBAAkBi7E,GAE9B71F,QAAQ4a,IAAI,WAAYza,GAExBH,QAAQ4a,IAAI,eAAiBrR,GACtB,OAGf00R,EAAkB3kS,UAAUglS,yBAA2B,SAAUzoM,GAE7D,GAAI94F,KAAKmhS,0BAA0BroM,GAC/B,OAAO94F,KAAKmhS,0BAA0BroM,GAG1C,IAAI0oM,EAAexhS,KAAKyhS,mBAAmB3oM,GACvC4oM,EAAc,IAAIC,SAAS,iHAAkHH,GAGjJ,OADAxhS,KAAKmhS,0BAA0BroM,GAAc4oM,EACtCA,GAEXR,EAAkB3kS,UAAUklS,mBAAqB,SAAU3oM,GAGvD,OAAIA,EAAW/3F,QAAQ,WAAa,EACzB+3F,EAGA,UAAYA,EAAa,KAGxCkoM,GAAc,CACVC,GAAU,EAAGhyL,GAAU,mBACxBiyL,EAAkB3kS,UAAW,WAAY,MAC5C2kS,EAAoBF,GAAc,CAC9BtyL,GAAK,sBACNwyL,GACIA,EA3E2B,CA4EpCt6K,IAQEg7K,GAAqD,WACrD,IAAI39R,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDu9R,GAAuD,SAAUxgS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dm9R,GAAiC,SAAUj9R,GAE3C,SAASi9R,IACL,IAAI/hS,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAGhE,OAFAD,EAAMgiS,cAAgB,GACtBhiS,EAAMiiS,iBAAmB,GAClBjiS,EA4DX,OAjEA6hS,GAAaE,EAAiBj9R,GAS9Bi9R,EAAgBvlS,UAAU26O,YAAc,SAAU38M,EAAK70B,GACnD,IAAIu8R,EAAoBjiS,KAAK+hS,cAAcxnQ,GAC3C,GAAI0nQ,EACA,OAAOA,EAEX,IAAIC,EAAeliS,KAAKgiS,iBAAiBznQ,GACrCv1B,EAAOhF,KACX,IAAKkiS,EAAc,CAEfA,EAAe,GACfliS,KAAKgiS,iBAAiBznQ,GAAO2nQ,EAE7B,IAAIC,EAAS,IAAIp2R,eACjBo2R,EAAOj2R,OAAS,WACZlH,EAAKo9R,iBAAiBpiS,KAAMu6B,IAEhC4nQ,EAAOn2R,KAAK,MAAOuuB,GACnB4nQ,EAAO71R,OAOX,OAJI5G,GACAw8R,EAAa5iS,KAAKoG,GAGf,MAEXo8R,EAAgBvlS,UAAU6lS,iBAAmB,SAAUC,EAAY9nQ,GAC/D,GAA0B,MAAtB8nQ,EAAW91R,QAA0C,OAAxB81R,EAAWj2R,SAA5C,CAMApM,KAAK+hS,cAAcxnQ,GAAO8nQ,EAAWj2R,UAAYi2R,EAAWC,aAG5D,IADA,IAAIC,EAAYviS,KAAKgiS,iBAAiBznQ,GAC7Bh9B,EAAI,EAAGA,EAAIglS,EAAU9kS,OAAQF,IAAK,CACvC,IAAImI,EAAW68R,EAAUhlS,GAIzBmI,IAEJ,GAAI1F,KAAKgrO,OAAQ,CACb,IAAIw3D,EAASxiS,KACbuL,OAAOE,YAAW,WACd+2R,EAAOx3D,OAAOoiB,WACf,SAnBHnqP,QAAQkD,KAAK,gCAAkCk8R,EAAW91R,OAAS,MAAQguB,IAsBnFsnQ,GAAc,CACVjzL,GAAU,WACXkzL,EAAgBvlS,UAAW,cAAU,GACxCulS,EAAkBD,GAAc,CAC5BnzL,GAAK,oBACNozL,GACIA,EAlEyB,CAmElCl7K,IAQE67K,GAAqD,WACrD,IAAIx+R,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDo+R,GAAuD,SAAUrhS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dg+R,GAA8D,WAC9D,IAAK,IAAIvvR,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEPi+R,GAAiC,SAAU/9R,GAE3C,SAAS+9R,IACL,OAAkB,OAAX/9R,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAkX/D,IAAI6iS,EA+BJ,OAnZAJ,GAAaG,EAAiB/9R,GAI9Bg+R,EAAoBD,EAQpBA,EAAgBE,sBAAwB,SAAUC,EAAKn1B,GACnD,IAAIo1B,EAAiBH,EAAkBI,mBAAmB5iS,IAAI0iS,GAC1DC,GAAkBA,EAAevlS,OAAS,GACE,IAAxCulS,EAAejiS,QAAQ6sQ,IACvBo1B,EAAe1jS,KAAKsuQ,IAIxBi1B,EAAkBI,mBAAmB3iS,IAAIyiS,EAAK,CAACn1B,IAC/Cm1B,EAAIvyL,iBAAiB,UAAWqyL,EAAkBK,oBAClDH,EAAIvyL,iBAAiB,YAAaqyL,EAAkBK,sBAU5DN,EAAgBO,yBAA2B,SAAUJ,EAAKn1B,GACtD,IAAIo1B,EAAiBH,EAAkBI,mBAAmB5iS,IAAI0iS,GAC1DK,EAAiB,GACjBJ,GAAkBA,EAAevlS,SACjC2lS,EAAiBT,GAAiBK,GAAgBzyM,QAAO,SAAU8yM,GAAmB,OAAOA,IAAoBz1B,KACjHi1B,EAAkBI,mBAAmB3iS,IAAIyiS,EAAKK,IAEpB,IAA1BA,EAAe3lS,SACfslS,EAAIryL,oBAAoB,UAAWmyL,EAAkBK,oBACrDH,EAAIryL,oBAAoB,YAAamyL,EAAkBK,sBAU/DN,EAAgBM,mBAAqB,SAAU97R,GAC3C,IAAIk8R,EAAmBT,EAAkBU,mBACrCC,EAAiC,YAAfp8R,EAAM3H,KAC5B,KAAI+jS,KAEIp8R,EAAM69J,SAAW79J,EAAM1I,SAAW0I,EAAM49J,YAI5Cs+H,GAAoBE,IAAoBF,IAAqBE,GAAjE,CAGAX,EAAkBU,mBAAqBC,EACvC,IAAIT,EAAM37R,EAAMrL,OAAOwuF,cACvB,GAAKw4M,EAAL,CAGA,IAAIU,EAAoBZ,EAAkBI,mBAAmB5iS,IAAI0iS,GAC7DU,GACAA,EAAkBllS,SAAQ,SAAUqvQ,GAChCA,EAAWnhQ,cAAc,CAAEhN,KAAM+jS,EAAkB72K,GAAOsF,qBAAuBtF,GAAOuF,0BAIpG0wK,EAAgBrmS,UAAU2I,KAAO,WAC7B,IAAIw+R,EAA2B1jS,KAAK6/Q,iBAAiBp1Q,KAAKzK,MAC1DA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOG,gCAAiC42K,GACnF1jS,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAK2jS,0BAA0Bl5R,KAAKzK,OAChHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOY,0BAA2Bm2K,GAC7E1jS,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOI,+BAAgC22K,IAEtFd,EAAgBrmS,UAAU6xR,2BAA6B,SAAUC,GAC7D,IAAItuR,EAAQC,KACZA,KAAKquR,mBAAqBA,EAC1B,IAAI0U,EAAM/iS,KAAK8vG,mBAAmBw0F,cAClCu+F,EAAkBC,sBAAsBC,EAAK1U,GAC7CruR,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM6jS,6BAA6BvV,OAEhFuU,EAAgBrmS,UAAUqnS,6BAA+B,SAAUvV,GAC/D,IAAI0U,EAAM/iS,KAAK8vG,mBAAmBw0F,cAClCu+F,EAAkBM,yBAAyBJ,EAAK1U,IAEpDuU,EAAgBrmS,UAAUonS,0BAA4B,WAGlD,GAAK3jS,KAAK6jS,oBAAV,CAGA,IAAIn/P,EAAM1kC,KAAK6jS,oBAAoBn8R,OAC/Bo8R,EAA0B9jS,KAAKm/I,iBAAiB1e,cAAc/7F,EAAI2yE,SAClE3yE,IAAQo/P,GACR9jS,KAAK6/Q,qBAGb+iB,EAAgBrmS,UAAUwnS,eAAiB,WACvC,OAAOlB,EAAkBU,oBAS7BX,EAAgBrmS,UAAU2sP,8BAAgC,WACtD,OAAIlpP,KAAK8vG,mBAAmBswG,gCAAkCpgN,KAAK6jS,oBACxD,KAIN7jS,KAAKgkS,yBAAyBr3R,SAAS+nM,eAGrC10M,KAAK6jS,oBAFD,MAIfjB,EAAgBrmS,UAAUynS,yBAA2B,SAAUC,GAC3D,IAAIC,EAAWD,EACf,MAAOC,EAAU,CACb,IAAIl/D,EAAWhlO,KAAK8vG,mBAAmB2V,WAAWy+K,EAAU7xD,GAAS+S,wBACrE,GAAIpgB,EACA,OAAOA,EAAS2b,kBAEpBujD,EAAWA,EAASnhJ,WAExB,OAAO,MAEX6/I,EAAgBrmS,UAAUsjR,iBAAmB,WACzC7/Q,KAAK6jS,oBAAsB,KAC3B7jS,KAAKuiP,eAAc,IAEvBqgD,EAAgBrmS,UAAU4sO,eAAiB,WACvC,OAAOnpO,KAAK6jS,qBAEhBjB,EAAgBrmS,UAAU2tO,eAAiB,SAAUtqF,EAAUvf,EAAQ0qH,EAAUjM,QACnD,IAAtBA,IAAgCA,GAAoB,GACxD,IAAIqlD,EAAankS,KAAKm/I,iBAAiB1e,cAAcJ,GAIhD8jK,GAILnkS,KAAK6jS,oBAAsBM,EAAa,CAAEvkJ,SAAUA,EAAU2vC,UAAW/uF,EAASuqJ,GAAWrjP,OAAQy8R,GAAe,KACpHnkS,KAAKuiP,cAAczD,IAJf9+O,KAAK6jS,oBAAsB,MAMnCjB,EAAgBrmS,UAAU02O,cAAgB,SAAU7J,GAChD,OAAgC,MAA5BppO,KAAK6jS,sBAGF7jS,KAAK6jS,oBAAoBn8R,SAAW0hO,EAAa1hO,QACpD1H,KAAKujO,aAAa6F,EAAaxpF,SAAUwpF,EAAa75C,aAE9DqzG,EAAgBrmS,UAAU+yP,iBAAmB,SAAUvkP,GACnD,OAAO/K,KAAKujO,aAAax4N,EAAQ60I,SAAU70I,EAAQwkL,YAEvDqzG,EAAgBrmS,UAAUmqQ,uBAAyB,SAAU09B,GACzD,GAAkC,MAA9BpkS,KAAKqkS,sBACL,OAAO,EAEX,IAAI38R,EAAS08R,EAAcr1J,YACvB0R,EAAiB2jJ,EAAcjyH,qBAAqB6qF,cACpDhoJ,EAASovL,EAAc5nL,YACvBlvB,EAAKttF,KAAKqkS,sBAAuBC,EAAgBh3M,EAAG5lF,OAAQ68R,EAAwBj3M,EAAGmzD,eAC3F,OAAO/4I,IAAW48R,GACd7jJ,IAAmB8jJ,GACnBvvL,GAAUsvL,EAAc9nL,aAEhComL,EAAgBrmS,UAAU+1Q,mBAAqB,WAC3CtyQ,KAAKqkS,sBAAwB,MAEjCzB,EAAgBrmS,UAAU81P,iBAAmB,WACzC,OAAOryP,KAAKqkS,uBAEhBzB,EAAgBrmS,UAAUwgQ,iBAAmB,SAAUt8G,EAAgB/4I,GACnE1H,KAAKqkS,sBAAwB,CAAE5jJ,eAAgBA,EAAgB/4I,OAAQA,IAE3Ek7R,EAAgBrmS,UAAUm0P,oBAAsB,SAAU8zC,EAAgB58J,EAAWsoI,EAASngB,EAAmB3oP,GAI7G,QAHkB,IAAdwgI,IAAwBA,EAAY,WACxB,IAAZsoI,IAAsBA,GAAU,QACV,IAAtBngB,IAAgCA,GAAoB,GACpDA,EAAmB,CACnB,IAAIjgJ,EAAqB9vG,KAAK8vG,mBAC1B20L,EAAkBzkS,KAAKqyP,mBACvBnzG,EAAiBl/I,KAAKmvO,wBAAwB3yG,oBAClD,GAAI0zI,EAAS,CACT,IAAIr3J,EAAW/I,EAAmB0iH,yBAClC,GAAI35G,EAAU,CACV,IAAIz1G,EAAS,CACT4tP,UAAyB,WAAdppH,EACX88J,uBAAwBD,EACxBE,mBAAoBH,EACpBtlJ,eAAgBA,GAEpBslJ,EAAiB3rL,EAASz1G,QAG7B,CACGy1G,EAAW/I,EAAmBwiH,8BAClC,GAAIz5G,GAAYzxG,EAAO,CACfhE,EAAS,CACT3G,IAAK2K,EAAM3K,IACXioS,uBAAwBD,EACxBE,mBAAoBH,EACpBtlJ,eAAgBA,EAChB93I,MAAOA,GAEXo9R,EAAiB3rL,EAASz1G,KAItC,IAAKohS,EACD,OAAO,EAEX,IAAuC,IAAnCA,EAAe/jJ,eACf,OAAOzgJ,KAAK4kS,cAAcJ,EAAe98R,QAE7C1H,KAAKmvO,wBAAwB0hC,eAAe2zB,EAAe98R,OAAQkgI,GACnE,IAAI4qI,EAAiBxyQ,KAAKmvO,wBAAwBogC,mBAAmBi1B,EAAe98R,OAAO80G,aACvFgsI,EAAWgqB,EAAezE,cAC1B82B,EAAcr8C,EAASg8C,EAAe/jJ,gBACtCmkH,EAAcigC,EAAY99B,iBAC1BoJ,EAAavL,EAAY4/B,EAAe98R,OAAO0vG,eACnD,QAAI+4J,IAEAA,EAAWl+F,sBAAsB8D,SAC1B,IAIf6sH,EAAgBrmS,UAAUuoS,iBAAmB,WACzC,QAAS9kS,KAAK6jS,qBAElBjB,EAAgBrmS,UAAUgnO,aAAe,SAAU3jF,EAAUmrG,GACzD,OAAgC,MAA5B/qP,KAAK6jS,sBAGF7jS,KAAK6jS,oBAAoBjkJ,WAAaA,GAAY5/I,KAAK6jS,oBAAoBt0G,YAAc/uF,EAASuqJ,KAE7G63C,EAAgBrmS,UAAU29K,sBAAwB,SAAUkiD,EAAU2oE,EAASC,QACrD,IAAlBA,IAA4BA,GAAgB,GAChD,IAAIC,EAAkB7zL,GAAU0B,mBAC5BoyL,EAAgB9zL,GAAU2B,kBAC1BgyL,IACAG,GAAiB,KAAOH,GAExBC,IACAE,GAAiB,qBAErB,IAAI34Q,EAAQlvB,MAAMd,UAAU0X,MAAM7R,MAAMg6N,EAASr2E,iBAAiBk/I,IAC9DE,EAAe9nS,MAAMd,UAAU0X,MAAM7R,MAAMg6N,EAASr2E,iBAAiBm/I,IACzE,IAAKC,EAAa1nS,OACd,OAAO8uB,EAEX,IAAI64Q,EAAO,SAAUz5R,EAAGxH,GAAK,OAAOwH,EAAE4kF,QAAO,SAAUpG,GAAW,OAA+B,IAAxBhmF,EAAEpD,QAAQopF,OACnF,OAAOi7M,EAAK74Q,EAAO44Q,IAEvBvC,EAAgBrmS,UAAUymQ,UAAY,SAAU5mC,EAAUzhD,EAAIqqH,QAC/C,IAAPrqH,IAAiBA,GAAK,QACJ,IAAlBqqH,IAA4BA,GAAgB,GAChD,IAAIK,EAAoBrlS,KAAKk6K,sBAAsBkiD,EAAU,KAAM4oE,GAC/DM,EAAU3qH,EAAKx+F,EAAKkpN,GAAqBA,EAAkB,GAC/D,QAAIC,IACAA,EAAQvvH,SACD,IAIf6sH,EAAgBrmS,UAAUi+K,yBAA2B,SAAU4hD,EAAUmpE,EAAav0C,GAClF,IACI0f,EADAnrH,EAAYvlJ,KAAKk6K,sBAAsBkiD,EAAUmpE,EAAc,wBAA0B,MAGzF70B,EADA60B,EACevgM,EAAUugD,GAAW,SAAUrgC,GAAM,OAAOA,EAAGtqB,SAASjuF,SAAS+nM,kBAGjEnvD,EAAUxkJ,QAAQ4L,SAAS+nM,eAE9C,IAAI8wF,EAAY90B,GAAgB1f,GAAa,EAAI,GACjD,OAAIw0C,EAAY,GAAKA,GAAajgJ,EAAU9nJ,OACjC,KAEJ8nJ,EAAUigJ,IAErB5C,EAAgBrmS,UAAUkpS,6BAA+B,SAAUrpE,GAC/D,IAAIspE,EAAoBtpE,EAASr2E,iBAAiB,IAAMgzB,GAAsBI,qBAC9E,IAAKusH,EAAkBjoS,OACnB,OAAO,EAEX,IAAK,IAAIF,EAAI,EAAGA,EAAImoS,EAAkBjoS,OAAQF,IAC1C,GAAImoS,EAAkBnoS,GAAGq9F,SAASjuF,SAAS+nM,eACvC,OAAO,EAGf,OAAO,GAEXkuF,EAAgBrmS,UAAUopS,mBAAqB,SAAUnzR,EAAMozR,QAC7C,IAAVA,IAAoBA,EAAQ,GAChC,IAAIxwM,EAAU,EACd,MAAO5iF,GAA8B,OAAtBkvI,GAAYlvI,MAAoB4iF,GAAWwwM,EACtDpzR,EAAOA,EAAKkzG,cAEhB,OAA0B,OAAtBg8B,GAAYlvI,GACL,KAEJA,GAEXowR,EAAgBrmS,UAAUgmP,cAAgB,SAAUzD,GAChD,IAAI13O,EAAQ,CACR3H,KAAMktH,GAAOsC,mBACb6vH,kBAAmBA,EACnBl/F,SAAU,KACVl4I,OAAQ,KACRqjP,SAAU,KACVnhP,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChB0lL,UAAW,KACX2H,iBAAiB,GAErB,GAAIl3L,KAAK6jS,oBAAqB,CAC1B,IAAIjkJ,EAAWx4I,EAAMw4I,SAAW5/I,KAAK6jS,oBAAoBjkJ,SACrD2vC,EAAYnoL,EAAMmoL,UAAYvvL,KAAK6jS,oBAAoBt0G,UAC3DnoL,EAAMM,OAAS1H,KAAK6jS,oBAAoBn8R,OACxC,IAAI+gP,EAASzoP,KAAK0yL,YAAYu+D,oBAAoB,CAAErxG,SAAUA,EAAU2vC,UAAWA,IAC/Ek5D,IACArhP,EAAM8vL,gBAAkBuxD,EAAO1iB,eAGvC/lO,KAAKq0G,aAAa5nG,cAAcrF,IAEpCw7R,EAAgBrmS,UAAUqoS,cAAgB,SAAUl9R,EAAQspP,GACxD,IAAI6e,EAAU7e,EACRhxP,KAAKkiP,iBAAiB2jD,aACtB7lS,KAAKkiP,iBAAiB4jD,cAC5B,IAAKj2B,EACD,OAAO,EAEX,IAAIjwH,EAAWiwH,EAAQjwH,SAAU2vC,EAAYsgF,EAAQtgF,UACjD8gF,EAAgBrwQ,KAAKqyP,mBAIzB,IAHK3qP,GAAU2oQ,IACX3oQ,EAAS2oQ,EAAc3oQ,QAEX,MAAZk4I,IAAqBl4I,EACrB,OAAO,EAIX,GAFA1H,KAAK0yL,YAAY+sD,kBAAkB,CAAE7/F,SAAUA,EAAUl4I,OAAQA,EAAQ6nL,UAAWA,IACpFvvL,KAAKkqO,eAAetqF,EAAUl4I,EAAQ84F,EAAS+uF,IAAY,GACvDvvL,KAAK+yO,gBAAiB,CACtB,IAAI3J,EAAe,CAAExpF,SAAUA,EAAU2vC,UAAWA,EAAW7nL,OAAQA,GACvE1H,KAAK+yO,gBAAgByN,eAAepX,GAExC,OAAO,GAEXw5D,EAAgBrmS,UAAUw1P,2BAA6B,SAAUf,GAC7D,QAAIhxP,KAAKquR,mBAAmB0X,wBAAwB/0C,KAG/CA,GACDhxP,KAAKquR,mBAAmB3zG,4BAErB,IAGXkoH,EAAgBoD,kBAAoB,oBACpCpD,EAAgBW,oBAAqB,EACrCX,EAAgBK,mBAAqB,IAAI3rN,IACzCorN,GAAc,CACV9zL,GAAU,qBACXg0L,EAAgBrmS,UAAW,wBAAoB,GAClDmmS,GAAc,CACV9zL,GAAU,4BACXg0L,EAAgBrmS,UAAW,+BAA2B,GACzDmmS,GAAc,CACV9zL,GAAU,cACXg0L,EAAgBrmS,UAAW,iBAAa,GAC3CmmS,GAAc,CACV9zL,GAAU,YACXg0L,EAAgBrmS,UAAW,eAAW,GACzCmmS,GAAc,CACV9zL,GAAU,gBACXg0L,EAAgBrmS,UAAW,mBAAe,GAC7CmmS,GAAc,CACV9zL,GAAU,qBACXg0L,EAAgBrmS,UAAW,wBAAoB,GAClDmmS,GAAc,CACV5zL,GAAS,oBACV8zL,EAAgBrmS,UAAW,uBAAmB,GACjDmmS,GAAc,CACVp0L,IACDs0L,EAAgBrmS,UAAW,OAAQ,MACtCqmS,EAAkBC,EAAoBH,GAAc,CAChDh0L,GAAK,oBACNk0L,GACIA,EApZyB,CAqZlCh8K,IAQEq/K,GAAqD,WACrD,IAAIhiS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD4hS,GAAuD,SAAU7kS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwhS,GAA8B,SAAUthS,GAExC,SAASshS,IACL,IAAIpmS,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAMqmS,UAAY,GACXrmS,EAqfX,OAzfAkmS,GAAaE,EAActhS,GAM3BshS,EAAa5pS,UAAU6xR,2BAA6B,SAAUC,GAC1D,IAAItuR,EAAQC,KACZA,KAAKquR,mBAAqBA,EAC1BruR,KAAKmnH,mBAAmBnnH,KAAKquR,mBAAoB1hK,GAAOsF,sBAAsB,WAC1E1zH,EAAQwB,EAAMqmS,WAAW,SAAUljB,GAAS,OAAOp/H,GAAYo/H,EAAM/4L,QAASy4M,GAAgBoD,yBAElGhmS,KAAKmnH,mBAAmBnnH,KAAKquR,mBAAoB1hK,GAAOuF,mBAAmB,WACvE3zH,EAAQwB,EAAMqmS,WAAW,SAAUljB,GAAS,OAAOh/H,GAAeg/H,EAAM/4L,QAASy4M,GAAgBoD,0BAGzGG,EAAa5pS,UAAUkqN,eAAiB,WACpC,IAAI01E,EAAen8R,KAAK8vG,mBAAmB22G,iBAC3C,OAAI01E,GAGGn8R,KAAKquR,mBAAmBhoR,UAEnC8/R,EAAa5pS,UAAU8pS,qBAAuB,SAAUjjS,GACpD,IAAIkjS,EAAaljS,EAAOqoL,YAAYiX,wBAChC6jG,EAAavmS,KAAKwmS,gBAClBzqR,EAAI/b,KAAKymS,kBAAkBrjS,EAAQkjS,EAAWpuN,IAAMquN,EAAWruN,KAC/Du+B,EAAYrzG,EAAO+qK,OAAOrrB,YAAc,EAAK1/I,EAAO+qK,OAAOrrB,YAAc,IAC7E1/I,EAAO+qK,OAAOh2H,MAAMs+D,SAAWA,EAAW,KAC1C,IAKItlG,EALAu1R,EAAgBH,EAAWtuN,MAAQsuN,EAAWvuN,KAC9C2uN,EAAOD,EAAgBjwL,EA2B3B,SAASmwL,IACL,OAAON,EAAWruN,MAAQsuN,EAAWvuN,KAAO,EAEhD,SAAS6uN,IACL,OAAOP,EAAWtuN,KAAOuuN,EAAWvuN,KAAOy+B,EA1B3Cz2G,KAAK8vG,mBAAmB6Q,eAExBxvG,EAAI01R,IACA11R,EAAI,IACJA,EAAIy1R,KAEJz1R,EAAIw1R,IACJx1R,EAAI,KAKRA,EAAIy1R,IACAz1R,EAAIw1R,IACJx1R,EAAI01R,KAEJ11R,EAAI,IACJA,EAAI,IAGZ/N,EAAO+qK,OAAOh2H,MAAM6/B,KAAO7mE,EAAI,KAC/B/N,EAAO+qK,OAAOh2H,MAAM+/B,IAAMn8D,EAAI,MAQlCoqR,EAAa5pS,UAAU2xK,6BAA+B,SAAU9qK,GAC5D,IAAIkqF,EAAKttF,KAAK8mS,sBAAsB1jS,EAAOmkK,YAAap2J,EAAIm8E,EAAGn8E,EAAG4K,EAAIuxE,EAAGvxE,EACrEoyJ,EAAS/qK,EAAO+qK,OAAQ44H,EAAS3jS,EAAO2jS,OAAQ34H,EAAShrK,EAAOgrK,OACpEpuK,KAAKgnS,cAAc,CACf74H,OAAQA,EACRh9J,EAAGA,EACH4K,EAAGA,EACHgrR,OAAQA,EACR34H,OAAQA,EACRyvE,kBAAkB,IAEtB79O,KAAKinS,qBAAqB7jS,EAAO3D,KAAM2D,EAAO+qK,OAAQ,KAAM/qK,EAAOmkK,WAAYnkK,EAAOsE,OAAQtE,EAAO2H,UAEzGo7R,EAAa5pS,UAAUuqS,sBAAwB,SAAUt6R,GACrD,IAAI+5R,EAAavmS,KAAKwmS,gBACtB,MAAO,CACHr1R,EAAG3E,EAAEo7J,QAAU2+H,EAAWvuN,KAC1Bj8D,EAAGvP,EAAEs7J,QAAUy+H,EAAWruN,MAGlCiuN,EAAa5pS,UAAUwhP,4BAA8B,SAAU36O,GAC3D,IAAIkjS,EAAaljS,EAAOqoL,YAAYiX,wBAChCwkG,EAAY9jS,EAAO8jS,WAAa,OAChCX,EAAavmS,KAAKwmS,gBAClBr1R,EAAIm1R,EAAWtuN,KAAOuuN,EAAWvuN,KACnB,UAAdkvN,IACA/1R,GAAM/N,EAAO+qK,OAAOtrB,YAAcyjJ,EAAWhtP,OAEjDt5C,KAAKgnS,cAAc,CACf74H,OAAQ/qK,EAAO+qK,OACf13D,SAAUrzG,EAAOqzG,SACjBuzC,UAAW5mJ,EAAO4mJ,UAClB+8I,OAAQ3jS,EAAO2jS,OACf34H,OAAQhrK,EAAOgrK,OACfj9J,EAAGA,EACH4K,EAAGuqR,EAAWpuN,IAAMquN,EAAWruN,IAAMouN,EAAW1rN,OAChDijK,iBAAkBz6O,EAAOy6O,mBAE7B79O,KAAKinS,qBAAqB7jS,EAAO3D,KAAM2D,EAAO+qK,OAAQ/qK,EAAOqoL,YAAa,KAAMroL,EAAOsE,OAAQtE,EAAO2H,UAE1Go7R,EAAa5pS,UAAUyhP,2BAA6B,SAAU56O,GAC1D,IAAIkjS,EAAaljS,EAAOqoL,YAAYiX,wBAChC6jG,EAAavmS,KAAKwmS,gBACtBxmS,KAAKgnS,cAAc,CACf74H,OAAQ/qK,EAAO+qK,OACf13D,SAAUrzG,EAAOqzG,SACjBswL,OAAQ3jS,EAAO2jS,OACf34H,OAAQhrK,EAAOgrK,OACfj9J,EAAGm1R,EAAWtuN,KAAOuuN,EAAWvuN,KAChCj8D,EAAGuqR,EAAWpuN,IAAMquN,EAAWruN,IAC/B2lK,iBAAkBz6O,EAAOy6O,mBAE7B79O,KAAKinS,qBAAqB7jS,EAAO3D,KAAM2D,EAAO+qK,OAAQ/qK,EAAOqoL,YAAa,KAAMroL,EAAOsE,OAAQtE,EAAO2H,UAE1Go7R,EAAa5pS,UAAU0qS,qBAAuB,SAAUxnS,EAAM0uK,EAAQsd,EAAalkB,EAAY7/J,EAAQqD,GACnG,IAAIrF,EAAW1F,KAAK8vG,mBAAmB+2G,0BACvC,GAAInhN,EAAU,CACV,IAAItC,EAAS,CACTsE,OAAQA,EACRqD,QAASA,EACTojK,OAAQA,EACR1uK,KAAMA,EACNgsL,YAAaA,EACblkB,WAAYA,GAEhB7hK,EAAStC,KAGjB+iS,EAAa5pS,UAAUyqS,cAAgB,SAAU5jS,GAC7C,IAAI+N,EAAI/N,EAAO+N,EACX4K,EAAI3Y,EAAO2Y,EACX3Y,EAAO2jS,SACP51R,GAAK/N,EAAO2jS,QAEZ3jS,EAAOgrK,SACPryJ,GAAK3Y,EAAOgrK,QAGZhrK,EAAOy6O,mBACP1sO,EAAInR,KAAKmnS,kBAAkB/jS,EAAQ+N,GACnC4K,EAAI/b,KAAKymS,kBAAkBrjS,EAAQ2Y,IAEvC3Y,EAAO+qK,OAAOh2H,MAAM6/B,KAAO7mE,EAAI,KAC/B/N,EAAO+qK,OAAOh2H,MAAM+/B,IAAMn8D,EAAI,MAElCoqR,EAAa5pS,UAAU0mR,gBAAkB,WACrC,OAAOjjR,KAAKomS,UAAU3+R,KAAI,SAAUy7Q,GAAS,OAAOA,EAAM/4L,YAE9Dg8M,EAAa5pS,UAAUiqS,cAAgB,WAKnC,IAAI9/E,EAAc1mN,KAAKymN,iBACnB2gF,EAAYpnS,KAAK8vG,mBAAmBw0F,cACpCoiB,IAAgB0gF,EAAUl5R,OAC1Bw4M,EAAc0gF,EAAU1jJ,iBAE5B,IAAIvrG,EAAQsyC,iBAAiBi8H,GACzB2gF,EAAS3gF,EAAYhkB,wBACzB,MAAO,CACHxqH,IAAKmvN,EAAOnvN,IAAM30D,WAAW40B,EAAMmvP,iBAAmB,EACtDtvN,KAAMqvN,EAAOrvN,KAAOz0D,WAAW40B,EAAMovP,kBAAoB,EACzDtvN,MAAOovN,EAAOpvN,MAAQ10D,WAAW40B,EAAMqvP,mBAAqB,EAC5DrvN,OAAQkvN,EAAOlvN,OAAS50D,WAAW40B,EAAMsvP,oBAAsB,IAGvEtB,EAAa5pS,UAAUkqS,kBAAoB,SAAUrjS,EAAQ2Y,GACzD,IAAIqrR,EAAYpnS,KAAK8vG,mBAAmBw0F,cACpCojG,EAAaN,EAAU1jJ,gBACvBgjE,EAAc1mN,KAAKymN,iBACnB8/E,EAAa7/E,EAAYhkB,wBACzBilG,EAAeP,EAAU1jJ,gBAAgBg/C,wBACzCklG,EAASlhF,IAAgB0gF,EAAUl5R,KACnC87I,EAAY90I,KAAKsM,IAAI,IAAK+kR,EAAW3rN,QACrCwqN,EAAO,EACPhiS,EAAO4mJ,WAAa5mJ,EAAO4mJ,UAAYA,EACvCA,EAAY5mJ,EAAO4mJ,UAEd5mJ,EAAO+qK,OAAOnnB,aAAe,IAClCgD,EAAY5mJ,EAAO+qK,OAAO7rB,aAC1B8iJ,EAAOr+I,GAAkB3jJ,EAAO+qK,QAAUnkB,GAE9C,IAAI69I,EAAiBD,EAAU7gJ,GAAkB2gJ,GAAcA,EAAWjjG,UAAa8hG,EAAW3rN,OAC9FgtN,IACAC,GAAkB3yR,KAAKiH,IAAIwrR,EAAazvN,IAAMquN,EAAWruN,MAE7D,IAAI4vN,EAAOD,EAAiB79I,EAAYo7I,EACxC,OAAOlwR,KAAKsM,IAAItM,KAAKuM,IAAI1F,EAAG,GAAI7G,KAAKiH,IAAI2rR,KAE7C3B,EAAa5pS,UAAU4qS,kBAAoB,SAAU/jS,EAAQ+N,GACzD,IAAIi2R,EAAYpnS,KAAK8vG,mBAAmBw0F,cACpCojG,EAAaN,EAAU1jJ,gBACvBgjE,EAAc1mN,KAAKymN,iBACnB8/E,EAAa7/E,EAAYhkB,wBACzBilG,EAAeP,EAAU1jJ,gBAAgBg/C,wBACzCklG,EAASlhF,IAAgB0gF,EAAUl5R,KACnCigK,EAAS/qK,EAAO+qK,OAChB13D,EAAWvhG,KAAKsM,IAAI,IAAK+kR,EAAWjtP,OACpC8rP,EAAO,EACPhiS,EAAOqzG,UAAYrzG,EAAOqzG,SAAWA,EACrCA,EAAWrzG,EAAOqzG,SAEb03D,EAAOtrB,YAAc,IAC1BpsC,EAAW03D,EAAOtrB,YAClBsrB,EAAOh2H,MAAMs+D,SAAWA,EAAW,KACnC2uL,EAAOn+I,GAAiBknB,GAAU13D,GAEtC,IAAIiwL,EAAgBkB,EAAU3gJ,GAAiBygJ,GAAcA,EAAWpgJ,WAAci/I,EAAWjtP,MAC7FsuP,IACAlB,GAAiBxxR,KAAKiH,IAAIwrR,EAAa3vN,KAAOuuN,EAAWvuN,OAE7D,IAAI2uN,EAAOD,EAAgBjwL,EAAW2uL,EACtC,OAAOlwR,KAAKsM,IAAItM,KAAKuM,IAAItQ,EAAG,GAAI+D,KAAKiH,IAAIwqR,KAE7CR,EAAa5pS,UAAUwrS,8BAAgC,SAAU3kS,GAC7D,IAAIwzK,EAAU52K,KAAKymN,iBACf8/E,EAAa3vH,EAAQ8rB,wBACrB4jG,EAAaljS,EAAO+mF,QAAQu4G,wBAC5BslG,EAAiBzB,EAAWruN,IAAMouN,EAAWpuN,IAC7C+vN,EAAkB1B,EAAWvuN,KAAOsuN,EAAWtuN,KAC/CkwN,EAAcF,EACdG,EAAeF,EACf55D,EAAQjrO,EAAO+qK,OAAOh2H,MAAM+/B,IAC5BA,EAAMj4D,SAASouN,EAAMphI,UAAU,EAAGohI,EAAM5wO,OAAS,GAAI,IACrD2qS,EAAShlS,EAAO+qK,OAAOh2H,MAAM6/B,KAC7BA,EAAO/3D,SAASmoR,EAAOn7L,UAAU,EAAGm7L,EAAO3qS,OAAS,GAAI,IACxD4qS,EAAa98R,OAAOy+F,aAAY,WAChC,IAAIs+L,EAAQ1xH,EAAQ8rB,wBAChB6lG,EAAQnlS,EAAO+mF,QAAQu4G,wBACvB8lG,EAA+B,GAAbD,EAAMrwN,KAA0B,GAAdqwN,EAAMvwN,MAA6B,GAAhBuwN,EAAM3tN,QAA8B,GAAf2tN,EAAMjvP,MACtF,GAAIkvP,EACAplS,EAAOq4K,gBADX,CAIA,IAAIgtH,EAAiBH,EAAMpwN,IAAMqwN,EAAMrwN,IACvC,GAAIuwN,GAAkBP,EAAa,CAC/B,IAAIQ,EAASxwN,EAAM8vN,EAAiBS,EACpCrlS,EAAO+qK,OAAOh2H,MAAM+/B,IAAMwwN,EAAS,KAEvCR,EAAcO,EACd,IAAIE,EAAkBL,EAAMtwN,KAAOuwN,EAAMvwN,KACzC,GAAI2wN,GAAmBR,EAAc,CACjC,IAAIS,EAAU5wN,EAAOiwN,EAAkBU,EACvCvlS,EAAO+qK,OAAOh2H,MAAM6/B,KAAO4wN,EAAU,KAEzCT,EAAeQ,KAChB,KACCrrQ,EAAM,WACY,MAAd+qQ,GACA98R,OAAOw+F,cAAcs+L,GAEzBA,OAAahpS,GAEjB,OAAOi+B,GAEX6oQ,EAAa5pS,UAAUwxK,SAAW,SAAU3qK,GACxC,IAAIrD,EAAQC,KACRi+O,EAAQ76O,EAAO66O,MAAOz1F,EAASplJ,EAAOolJ,OAAQ01F,EAAa96O,EAAO86O,WAAYC,EAAiB/6O,EAAO+6O,eAAgBxjN,EAAQv3B,EAAOu3B,MAAOkuQ,EAAczlS,EAAOylS,YAAajzH,EAAmBxyK,EAAOwyK,iBAAkBkoE,EAAmB16O,EAAO06O,iBAAkBO,EAAkBj7O,EAAOi7O,gBAC/R+oD,EAAYpnS,KAAK8vG,mBAAmBw0F,cACxC,GAAK8iG,EAAL,CAIA,IAAI1kQ,EAAMsiE,EAAUhlG,KAAKomS,WAAW,SAAUljB,GAAS,OAAOA,EAAM/4L,UAAYq+D,KAChF,IAAa,IAAT9lH,EAAY,CACZ,IAAIwgP,EAAQljR,KAAKomS,UAAU1jQ,GAC3B,MAAO,CAAEsrI,SAAUk1G,EAAMl1G,SAAU86H,kBAAmB5lB,EAAM4lB,mBAEhE,IAAI3M,EAAen8R,KAAKymN,iBAGxB01E,EAAazhQ,YAAY8tH,GACD,MAApBA,EAAOrwG,MAAM+/B,MACbswE,EAAOrwG,MAAM+/B,IAAM,OAEE,MAArBswE,EAAOrwG,MAAM6/B,OACbwwE,EAAOrwG,MAAM6/B,KAAO,OAIxB,IAAIu/K,EAAW5qP,SAASa,cAAc,OAClCw8B,EAAQhqC,KAAK8kM,YAAYC,WAAW/6J,MACpCA,GACA85G,GAAYyzG,EAAUvtN,GAE1B85G,GAAYyzG,EAAU,YACtBzzG,GAAY0E,EAAQxoJ,KAAK8vG,mBAAmB6Q,cAAgB,SAAW,UACvEmjC,GAAY0E,EAAQ,kBAChBxoJ,KAAKi6K,gBAAgB8pH,kBACrBjgJ,GAAY0E,EAAQo6I,GAAgBoD,mBAExCzuC,EAAS78N,YAAY8tH,GACrB2zI,EAAazhQ,YAAY68N,GACrBsxC,EACA7oS,KAAK+oS,eAAexxC,GAAU,GAG9Bv3P,KAAKgpS,kBAAkBzxC,GAE3B,IAYI0xC,EAZAC,GAAc,EACdC,EAA2B,SAAU/hS,GACrC,GAAKmwP,EAAS38J,SAASjuF,SAAS+nM,eAAhC,CAGA,IAAIj4M,EAAM2K,EAAMy9J,OAASz9J,EAAM09J,QAC3BroK,IAAQo3K,GAAQK,QAChBuH,EAAU,CAAEnW,cAAel+J,MAG/BgiS,EAAwB,SAAUhiS,GAAS,OAAOq0K,EAAU,CAAElU,WAAYngK,KAC1EiiS,EAAwB,SAAUjiS,GAAS,OAAOq0K,EAAU,CAAE0M,WAAY/gL,KAE1Eq0K,EAAY,SAAU6tH,QACF,IAAhBA,IAA0BA,EAAc,IAC5C,IAAI/hI,EAAa+hI,EAAY/hI,WAAY4gB,EAAamhH,EAAYnhH,WAAY7iB,EAAgBgkI,EAAYhkI,cAI1GvlK,EAAMwpS,wBAAwB,CAAEhiI,WAAYA,EAAY4gB,WAAYA,GAAc3/B,IAE9EzoJ,EAAMypS,gCAAgC,CAAEC,mBAAoB9uQ,EAAO4sI,WAAYA,EAAY4gB,WAAYA,KAGvG+gH,IAGJA,GAAc,EACd/M,EAAavhQ,YAAY28N,GACzB6vC,EAAU12L,oBAAoB,UAAWy4L,GACzC/B,EAAU12L,oBAAoB,YAAa04L,GAC3ChC,EAAU12L,oBAAoB,aAAc24L,GAC5CjC,EAAU12L,oBAAoB,cAAe04L,GAC7CrpS,EAAMs0G,aAAa3D,oBAAoBic,GAAOuD,mBAAoBk5K,GAC9DjrD,GACAA,EAAe52E,GAAc4gB,GAAc7iB,GAE/CvlK,EAAMqmS,UAAYrmS,EAAMqmS,UAAU71M,QAAO,SAAU2yL,GAAS,OAAOA,EAAM/4L,UAAYq+D,KACjFygJ,GACAA,MAoCR,OAjCIrzH,GACAA,EAAiB,CAAE6F,UAAWA,IAIlClwK,OAAOE,YAAW,WACVyyO,GACAkpD,EAAU52L,iBAAiB,UAAW24L,GAEtClrD,IACAmpD,EAAU52L,iBAAiB,YAAa44L,GACxCrpS,EAAMs0G,aAAa7D,iBAAiBmc,GAAOuD,mBAAoBk5K,GAC/DhC,EAAU52L,iBAAiB,aAAc64L,GACzCjC,EAAU52L,iBAAiB,cAAe44L,MAE/C,GACCtrD,GACAA,IAEAO,IAGA4qD,EAAyBjpS,KAAK+nS,8BAA8B,CACxD59M,QAASk0J,EACTlwE,OAAQ3lB,EACRizB,UAAWA,KAGnBz7K,KAAKomS,UAAU9mS,KAAK,CAChB6qF,QAASq+D,EACTwlB,SAAUyN,EACVqtH,kBAAmBG,IAEhB,CACHj7H,SAAUyN,EACVqtH,kBAAmBG,GApHnBhmS,QAAQkD,KAAK,4DAuHrBggS,EAAa5pS,UAAUgtS,wBAA0B,SAAUnmS,EAAQrH,GAC/D,IAAIwrK,EAAankK,EAAOmkK,WAAY4gB,EAAa/kL,EAAO+kL,WACpD/gL,EAAQmgK,GAA0B4gB,EACtC,IAAK/gL,EACD,OAAO,EAEX,IAAIsiS,EAAmB1kM,EAAUhlG,KAAKomS,WAAW,SAAUljB,GAAS,OAAOA,EAAM/4L,UAAYpuF,KAC7F,IAA0B,IAAtB2tS,EACA,OAAO,EAEX,IAAK,IAAInsS,EAAImsS,EAAkBnsS,EAAIyC,KAAKomS,UAAU3oS,OAAQF,IAAK,CAC3D,IAAI2lR,EAAQljR,KAAKomS,UAAU7oS,GAC3B,GAAIuoH,GAAqBo9J,EAAM/4L,QAAS/iF,GACpC,OAAO,EAMf,OAAOpH,KAAKmjR,2BAA2B/7Q,EAAMrL,SAEjDoqS,EAAa5pS,UAAU4mR,2BAA6B,SAAUj+J,GAC1D,IAAKllH,KAAKomS,UAAU3oS,OAChB,OAAO,EAEX,MAAOynH,GAAMA,IAAOv4G,SAASuB,KAAM,CAC/B,GAAIg3G,EAAG8+B,UAAUppD,SAAS,8BAAqD,OAArBsqB,EAAGQ,cACzD,OAAO,EAEXR,EAAKA,EAAGQ,cAEZ,OAAO,GAIXygL,EAAa5pS,UAAUitS,gCAAkC,SAAUpmS,GAC/D,IAAIqmS,EAAqBrmS,EAAOqmS,mBAAoBliI,EAAankK,EAAOmkK,WAAY4gB,EAAa/kL,EAAO+kL,WAKpGwhH,EAAoB,KASxB,GARIpiI,EAEAoiI,EAAoBpiI,EAEf4gB,IAELwhH,EAAoBxhH,EAAWC,QAAQ,IAEvCuhH,GAAqBF,EAAoB,CAGzC,IAAIG,EAAYriI,EAAaA,EAAWsiI,QAAU,EAC9CC,EAAYviI,EAAaA,EAAWwiI,QAAU,EAC9CC,EAAS90R,KAAKiH,IAAIstR,EAAmBI,QAAUD,GAAa,EAC5DK,EAAS/0R,KAAKiH,IAAIstR,EAAmBM,QAAUD,GAAa,EAChE,GAAIE,GAAUC,EACV,OAAO,EAGf,OAAO,GAEX9D,EAAa5pS,UAAU2tS,WAAa,SAAU/7H,GAC1C,OAAQtpB,GAAcspB,EAAQ,aAAeA,EAAOzoD,cAChDyoD,EAASA,EAAOzoD,cAEpB,OAAOm/B,GAAcspB,EAAQ,YAAcA,EAAS,MAExDg4H,EAAa5pS,UAAUwsS,eAAiB,SAAU56H,EAAQ06H,GACtD,IAAItxC,EAAWv3P,KAAKkqS,WAAW/7H,GAC1BopF,IAGLlzG,GAAoBkzG,EAAU,qBAAsBsxC,GAChDA,GACA7oS,KAAKgpS,kBAAkBzxC,KAG/B4uC,EAAa5pS,UAAUysS,kBAAoB,SAAU76H,GACjD,IAAItrK,EAAS7C,KAAKymN,iBACd2/E,EAAY/oS,MAAMd,UAAU0X,MAAMrW,KAAKiF,EAAOkjJ,iBAAiB,cAC/DokJ,EAAW/D,EAAU3oS,OACrB2sS,EAAkB/sS,MAAMd,UAAU0X,MAAMrW,KAAKiF,EAAOkjJ,iBAAiB,+BACrEskJ,EAAcD,EAAgB3sS,OAC9B85P,EAAWv3P,KAAKkqS,WAAW/7H,GAC/B,GAAKopF,KAAY4yC,GAAY,IAAMtnS,EAAO+3F,SAASuzE,GAAnD,CAGA,IAAIzrI,EAAM0jQ,EAAUrlS,QAAQw2P,GAC5B,GAAI8yC,EAAa,CACb,IAAIC,EAAqBzlJ,GAAc0yG,EAAU,oBAC7C+yC,EACI5nQ,IAAQynQ,EAAW,GACnBhuN,EAAKiuN,GAAiBzhJ,sBAAsB,WAAY4uG,GAGvD70N,IAAQynQ,EAAWE,EAAc,GACtCD,EAAgB,GAAGzhJ,sBAAsB,cAAe4uG,QAGvD70N,IAAQynQ,EAAW,GACxBhuN,EAAKiqN,GAAWz9I,sBAAsB,WAAY4uG,GAEtD,IAAIn0P,EAAS,CACT3D,KAAM,eACNmK,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnC6+I,SAAUA,GAEdv3P,KAAKq0G,aAAa5nG,cAAcrJ,KAEpC8iS,GAAc,CACVt3L,GAAU,gBACXu3L,EAAa5pS,UAAW,mBAAe,GAC1C2pS,GAAc,CACVt3L,GAAU,oBACXu3L,EAAa5pS,UAAW,uBAAmB,GAC9C4pS,EAAeD,GAAc,CACzBx3L,GAAK,iBACNy3L,GACIA,EA1fsB,CA2f/Bv/K,IAQE2jL,GAAqD,WACrD,IAAItmS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDkmS,GAAuD,SAAUnpS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8lS,GAAgD,SAAUr9L,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvDs9L,GAA+B,SAAU7lS,GAEzC,SAAS6lS,IACL,OAAkB,OAAX7lS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAiB/D,OAnBAuqS,GAAaG,EAAe7lS,GAI5B6lS,EAAcnuS,UAAUqzG,SAAW,SAAUE,GACzC9vG,KAAK2qS,QAAU76L,EAAmB46G,WAEtCggF,EAAcnuS,UAAUgI,OAAS,SAAU3D,GACvC,OAAO,IAAIgqS,GAAOhqS,EAAMZ,KAAK6qS,UAAUpgS,KAAKzK,QAEhD0qS,EAAcnuS,UAAUsuS,UAAY,WAChC,OAAO7qS,KAAK2qS,SAEhBH,GAAc,CACVC,GAAU,EAAGx7L,GAAU,wBACxBy7L,EAAcnuS,UAAW,WAAY,MACxCmuS,EAAgBF,GAAc,CAC1B97L,GAAK,kBACNg8L,GACIA,EApBuB,CAqBhC9jL,IACEgkL,GAAwB,WACxB,SAASA,EAAOhqS,EAAMkqS,GAClB9qS,KAAKY,KAAOA,EACZZ,KAAK8qS,cAAgBA,EAWzB,OATAF,EAAOruS,UAAUsuS,UAAY,WACzB,OAAO7qS,KAAK8qS,iBAEhBF,EAAOruS,UAAUshB,IAAM,SAAUoT,GACzBjxB,KAAK8qS,iBAEL7nS,QAAQ4a,IAAI,WAAa7d,KAAKY,KAAO,KAAOqwB,IAG7C25Q,EAdgB,GAuBvBG,GAAqD,WACrD,IAAI9mS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0mS,GAAuD,SAAU3pS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DsmS,GAAqC,SAAUpmS,GAE/C,SAASomS,IACL,OAAkB,OAAXpmS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA0G/D,OA5GA+qS,GAAaE,EAAqBpmS,GAIlComS,EAAoB1uS,UAAUwiJ,cAAgB,WAC1C,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMqsQ,sBAAwB/nQ,EAAE+nQ,0BAGxC6+B,EAAoB1uS,UAAUk1Q,uBAAyB,SAAUiI,GAC7D15Q,KAAK05Q,eAAiBA,GAM1BuxB,EAAoB1uS,UAAU8+H,2BAA6B,SAAU3zH,EAAQyuF,GACzE,IAAI+9J,EAAcl0P,KAAKkrS,uBAAuBxjS,GAE9C,IAAKwsP,EACD,OAAQ,EAEZ,IAAIi3C,EAAkBx+R,SAASa,cAAc,QAE7C29R,EAAgBhzP,MAAMyqG,SAAW,QAGjC,IAAIwoJ,EAAiBprS,KAAKosQ,sBAAsBI,sBAChD4+B,EAAe1wQ,YAAYywQ,GAG3BnrS,KAAKqrS,8BAA8B3jS,EAAQyjS,GACtCh1M,GAIDn2F,KAAKsrS,mBAAmBp3C,EAAai3C,GAIzC,IAAII,EAAsBJ,EAAgBtoJ,YAE1CuoJ,EAAexwQ,YAAYuwQ,GAG3B,IAAIx1E,EAAkB31N,KAAK8vG,mBAAmB4lH,qBAC9C,OAAO61E,EAAsB51E,GAEjCs1E,EAAoB1uS,UAAU2uS,uBAAyB,SAAUxjS,GAC7D,IAAImoK,EAAO,KAUX,OARA7vK,KAAK05Q,eAAe5U,sBAAqB,SAAU0mC,GAC/C,GAAIA,aAAyBhxC,GAAmB,CAC5C,IAAIixC,EAAoBD,EACpBC,EAAkB18J,cAAgBrnI,IAClCmoK,EAAO47H,OAIZ57H,EAAOA,EAAKxpK,SAAW,MAElC4kS,EAAoB1uS,UAAU8uS,8BAAgC,SAAU3jS,EAAQyjS,GAC5E,IAAIprS,EAAQC,KACRkoP,EAASloP,KAAK0yL,YAAYu1D,qBAAqBvgP,GACnDwgP,EAAO3pP,SAAQ,SAAU+xO,GAAS,OAAOvwO,EAAMurS,mBAAmBh7D,EAAO66D,OAE7EF,EAAoB1uS,UAAU+uS,mBAAqB,SAAUh7D,EAAO66D,GAEhE,IAAIO,EAAap7D,EAAMq7D,WAAU,GAEjCD,EAAWvzP,MAAMmB,MAAQ,GAEzBoyP,EAAWvzP,MAAMyqG,SAAW,SAC5B8oJ,EAAWvzP,MAAM6/B,KAAO,GAIxB,IAAI4zN,EAAej/R,SAASa,cAAc,OACtCq3I,GAAc6mJ,EAAY,mBAC1B5nJ,GAAY8nJ,EAAc,aAC1B9nJ,GAAY8nJ,EAAc,iBAC1BA,EAAazzP,MAAMyqG,SAAW,UAG9BkB,GAAY8nJ,EAAc,UAI9BA,EAAazzP,MAAMknC,QAAU,YAI7BusN,EAAalxQ,YAAYgxQ,GACzBP,EAAgBzwQ,YAAYkxQ,IAEhCZ,GAAc,CACVp8L,GAAU,gBACXq8L,EAAoB1uS,UAAW,mBAAe,GACjDyuS,GAAc,CACVp8L,GAAU,uBACXq8L,EAAoB1uS,UAAW,0BAAsB,GACxDyuS,GAAc,CACV18L,IACD28L,EAAoB1uS,UAAW,gBAAiB,MACnD0uS,EAAsBD,GAAc,CAChCt8L,GAAK,wBACNu8L,GACIA,EA7G6B,CA8GtCrkL,IAQEilL,GAAqD,WACrD,IAAI5nS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwnS,GAAuD,SAAUzqS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DonS,GAAyC,SAAUlnS,GAEnD,SAASknS,IACL,OAAkB,OAAXlnS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAwD/D,OA1DA6rS,GAAaE,EAAyBlnS,GAItCknS,EAAwBxvS,UAAUiiQ,aAAe,SAAUp7P,GACvD,IAAIrD,EAAQC,KACRw/L,EAAa,CACbE,gBAAiBt8L,EAAOs8L,iBAAmB,EAC3Cn5E,SAAUnjH,EAAOq7P,WACjB9+D,YAAa3/L,KAAK2/L,YAAYl1L,KAAKzK,KAAMoD,GACzCw8L,WAAY5/L,KAAK4/L,WAAWn1L,KAAKzK,KAAMoD,GACvCy8L,WAAY7/L,KAAK6/L,WAAWp1L,KAAKzK,KAAMoD,IAE3CpD,KAAK8/L,YAAYP,cAAcC,GAAY,GAG3C,IAAI8+D,EAAyB,WAAc,OAAOv+P,EAAM+/L,YAAYC,iBAAiBP,IACrF,OAAO8+D,GAEXytC,EAAwBxvS,UAAUojM,YAAc,SAAUv8L,EAAQmkK,GAC9DvnK,KAAKgsS,WAAazkI,EAAWK,QAC7B5nK,KAAKisS,iBACL,IAAIrrK,EAAW2mC,aAAsB76J,aAAsC,IAAxB66J,EAAW3mC,SAC9Dx9H,EAAOs7P,cAAc99H,IAEzBmrK,EAAwBxvS,UAAU0vS,eAAiB,WAC/CjsS,KAAKksS,cAAgBlsS,KAAKmsS,SAASh0P,MAAMi0P,OACzCpsS,KAAKqsS,cAAgBrsS,KAAKmsS,SAASh0P,MAAMm0P,WACzCtsS,KAAKusS,oBAAsBvsS,KAAKmsS,SAASh0P,MAAMq0P,iBAE/CxsS,KAAKmsS,SAASh0P,MAAMi0P,OAAS,YAE7BpsS,KAAKmsS,SAASh0P,MAAMm0P,WAAa,OACjCtsS,KAAKmsS,SAASh0P,MAAMq0P,iBAAmB,QAE3CT,EAAwBxvS,UAAUqjM,WAAa,SAAUx8L,EAAQmkK,GAC7DnkK,EAAOw7P,YAAY5+P,KAAKo/P,cACxBp/P,KAAKysS,cAETV,EAAwBxvS,UAAUkwS,WAAa,WAE3CzsS,KAAKmsS,SAASh0P,MAAMi0P,OAASpsS,KAAKksS,cAClClsS,KAAKmsS,SAASh0P,MAAMm0P,WAAatsS,KAAKqsS,cACtCrsS,KAAKmsS,SAASh0P,MAAMq0P,iBAAmBxsS,KAAKusS,qBAEhDR,EAAwBxvS,UAAUsjM,WAAa,SAAUz8L,EAAQmkK,GAC7DvnK,KAAKo/P,aAAe73F,EAAWK,QAAU5nK,KAAKgsS,WAC9C5oS,EAAOu7P,WAAW3+P,KAAKo/P,eAE3B0sC,GAAc,CACVl9L,GAAU,gBACXm9L,EAAwBxvS,UAAW,mBAAe,GACrDuvS,GAAc,CACVl9L,GAAU,aACXm9L,EAAwBxvS,UAAW,gBAAY,GAClDwvS,EAA0BD,GAAc,CACpCp9L,GAAK,4BACNq9L,GACIA,EA3DiC,CA4D1CnlL,IAQE8lL,GAAqD,WACrD,IAAIzoS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDqoS,GAAuD,SAAUtrS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DioS,GAAoC,SAAU/nS,GAE9C,SAAS+nS,IACL,OAAO/nS,EAAOjH,KAAKoC,OAASA,KA+HhC,OAjIA0sS,GAAaE,EAAoB/nS,GAIjC+nS,EAAmBrwS,UAAUwiJ,cAAgB,WACzC,IAAIh/I,EAAQC,KACZA,KAAKwqG,OAASxqG,KAAK6vG,cAActrG,OAAO,sBAExC,CACIvE,KAAKi/F,QACLj/F,KAAK8tK,aACL9tK,KAAKi6K,gBACLj6K,KAAKmoM,oBACP5pM,SAAQ,SAAUsuS,GAAW,OAAOA,EAAQze,2BAA2BruR,MACrEkzG,GAAeQ,aAAa5kG,EAAQmkG,YAAYu0K,kBAChDvnR,KAAKqnR,iBAAiB+G,2BAA2BpuR,OAGzD4sS,EAAmBrwS,UAAUilR,QAAU,SAAUhuQ,EAAM24R,EAAUv+H,GAC7D,IAAI7tK,EAAQC,KACZA,KAAKwT,KAAOA,EACZxT,KAAK8sS,aAAeX,EACpBnsS,KAAK4tK,KAAOA,EACZ5tK,KAAK4+Q,kBAAkBmuB,sCAAsCZ,GAC7DnsS,KAAKsnH,kBAAkB,IAAI8wJ,GAAcp4Q,KAAKwT,OAG9CxT,KAAKgtS,gBACLhtS,KAAKmnH,mBAAmBnnH,KAAM2sH,GAAOsF,sBAAsB,WACvDlyH,EAAMyT,KAAKy5R,+BAA8B,MAE7CjtS,KAAKmnH,mBAAmBnnH,KAAM2sH,GAAOuF,mBAAmB,WACpDnyH,EAAMyT,KAAKy5R,+BAA8B,MAE7C,IAAI3gB,EAAwBtsR,KAAK8qO,sBAAsBC,cAAc/qO,KAAK8sS,aAAc9sS,KAAKktS,kBAAkBziS,KAAKzK,OACpHA,KAAKqnH,gBAAe,WAAc,OAAOilK,QAE7CsgB,EAAmBrwS,UAAU4wS,cAAgB,WACzC,OAAOl6L,GAAeQ,aAAa5kG,EAAQmkG,YAAYgF,oBAE3D40L,EAAmBrwS,UAAU6wS,YAAc,WACvC,OAAOn6L,GAAeQ,aAAa5kG,EAAQmkG,YAAYq6L,gBAE3DT,EAAmBrwS,UAAU+wS,cAAgB,WACzC,OAAOr6L,GAAeQ,aAAa5kG,EAAQmkG,YAAYu6L,kBAE3DX,EAAmBrwS,UAAUixS,cAAgB,WACzC,OAAOv6L,GAAeQ,aAAa5kG,EAAQmkG,YAAYy6L,uBAE3Db,EAAmBrwS,UAAU2wS,kBAAoB,WAC7C,IAAI9lS,EAAQ,CACR3H,KAAMktH,GAAOmD,wBACblmH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBi5I,YAAa9iJ,KAAK8sS,aAAahqJ,YAC/BR,aAActiJ,KAAK8sS,aAAaxqJ,cAEpCtiJ,KAAKq0G,aAAa5nG,cAAcrF,IAEpCwlS,EAAmBrwS,UAAUywS,cAAgB,WACzC,IAAI1oI,EAAWtkK,KAAK8vG,mBAAmB6Q,cAAgB,SAAW,SAClE3gH,KAAKwT,KAAKk6R,YAAYppI,IAE1BsoI,EAAmBrwS,UAAU29R,cAAgB,WACzCl6R,KAAKwT,KAAK0mR,iBAEd0S,EAAmBrwS,UAAU8J,OAAS,WAClC,OAAOrG,KAAK4tK,MAEhBg/H,EAAmBrwS,UAAUwpS,wBAA0B,SAAU/0C,GAC7D,IAAI28C,EAAsB3tS,KAAKwT,KAAKo6R,yBAChCC,EAAe7oM,EAAU2oM,GAAqB,SAAU9yJ,GAAa,OAAOA,EAAUjgD,SAASjuF,SAAS+nM,kBACxGo5F,EAAUD,GAAgB78C,GAAa,EAAI,GAC/C,QAAI88C,EAAU,GAAKA,GAAWH,EAAoBlwS,UAGlC,IAAZqwS,EACO9tS,KAAK+tS,kBAET/tS,KAAKi6K,gBAAgB+oF,UAAU2qC,EAAoBG,MAE9DlB,EAAmBrwS,UAAUwxS,gBAAkB,WAC3C,IAAIpwJ,EAAc39I,KAAKm/I,iBAAiBpjB,yBAAyB,GACjE,QAAK4hB,IAGDA,EAAYjoC,cACZioC,EAAc39I,KAAKm/I,iBAAiBlX,sBAAsB0V,EAAa,IAE3E39I,KAAKi6K,gBAAgBy2E,oBAAoB,CAAEjwG,eAAgB,EAAG/4I,OAAQi2I,KAC/D,IAEXivJ,EAAmBrwS,UAAUm+K,yBAA2B,SAAUC,QACnD,IAAPA,IAAiBA,GAAK,GAC1B36K,KAAKwT,KAAKknK,yBAAyBC,IAEvCgyH,GAAc,CACV/9L,GAAU,cACXg+L,EAAmBrwS,UAAW,iBAAa,GAC9CowS,GAAc,CACV/9L,GAAU,YACXg+L,EAAmBrwS,UAAW,eAAW,GAC5CowS,GAAc,CACV/9L,GAAU,iBACXg+L,EAAmBrwS,UAAW,oBAAgB,GACjDowS,GAAc,CACV/9L,GAAU,oBACXg+L,EAAmBrwS,UAAW,uBAAmB,GACpDowS,GAAc,CACV79L,GAAS,qBACV89L,EAAmBrwS,UAAW,wBAAoB,GACrDowS,GAAc,CACV/9L,GAAU,kBACXg+L,EAAmBrwS,UAAW,qBAAiB,GAClDowS,GAAc,CACV/9L,GAAU,0BACXg+L,EAAmBrwS,UAAW,6BAAyB,GAC1DowS,GAAc,CACV/9L,GAAU,qBACXg+L,EAAmBrwS,UAAW,wBAAoB,GACrDowS,GAAc,CACV/9L,GAAU,uBACXg+L,EAAmBrwS,UAAW,0BAAsB,GACvDowS,GAAc,CACV/9L,GAAU,sBACXg+L,EAAmBrwS,UAAW,yBAAqB,GACtDowS,GAAc,CACVr+L,IACDs+L,EAAmBrwS,UAAW,gBAAiB,MAC3CqwS,EAlI4B,CAmIrChmL,IAQEonL,GAAqD,WACrD,IAAI/pS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD2pS,GAAuD,SAAU5sS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DupS,GAA0B,SAAUrpS,GAEpC,SAASqpS,EAAS/B,GACd,IAAIpsS,EAAQ8E,EAAOjH,KAAKoC,UAAMX,GAAW,IAASW,KAElD,OADAD,EAAMosS,SAAWA,EACVpsS,EAsFX,OA1FAiuS,GAAaE,EAAUrpS,GAMvBqpS,EAAS3xS,UAAUwiJ,cAAgB,WAC/B,IAAIh/I,EAAQC,KACZA,KAAKwqG,OAASxqG,KAAK6vG,cAActrG,OAAO,YACxC,IAAIiP,EAAO,CACP0mR,cAAe,WAAc,OAAOn6R,EAAM+tG,YAAY/tG,IACtD2tS,YAAa,SAAUppI,GAAY,OAAOxgB,GAAY/jJ,EAAMsG,SAAUi+J,IACtE2oI,8BAA+B,SAAU3oJ,GAAe,OAAOvkJ,EAAMskJ,oBAAoBu+I,GAAgBoD,kBAAmB1hJ,IAC5Ho2B,yBAA0B16K,KAAK06K,yBAAyBjwK,KAAKzK,MAC7Dq4Q,oBAAqBr4Q,KAAKq4Q,oBAAoB5tQ,KAAKzK,MACnD4tS,uBAAwB5tS,KAAK4tS,uBAAuBnjS,KAAKzK,OAE7DA,KAAKmuS,IAAMnuS,KAAKsnH,kBAAkB,IAAIslL,IACtC,IAAIxlJ,EAAWpnJ,KAAKouS,iBACpBpuS,KAAK2uK,YAAYvnB,GACjBpnJ,KAAKmuS,IAAI3sB,QAAQhuQ,EAAMxT,KAAKmsS,SAAUnsS,KAAKqG,UAC3CrG,KAAKquS,oBACLxpS,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,OAExCkuS,EAAS3xS,UAAU8xS,kBAAoB,WACnC,IAAItuS,EAAQC,KACR4tK,EAAO5tK,KAAKqG,SAChBrG,KAAKmsS,SAASzxQ,YAAYkzI,GAC1B5tK,KAAKqnH,gBAAe,WAChBtnH,EAAMosS,SAASvxQ,YAAYgzI,GAC3B7tK,EAAMyqG,OAAO3sF,IAAI,6BAGzBqwR,EAAS3xS,UAAU87Q,oBAAsB,SAAUj1Q,GAC/CihJ,GAAoBrkJ,KAAKsuS,iBAAkBz/R,EAAQqpQ,iBAAiB2U,YAAazpR,EAAOoxI,YACxF6P,GAAoBrkJ,KAAKsuS,iBAAkBz/R,EAAQqpQ,iBAAiB4U,OAAQ1pR,EAAOynP,QACnFxmG,GAAoBrkJ,KAAKsuS,iBAAkBz/R,EAAQqpQ,iBAAiB6U,MAAO3pR,EAAO6nK,OAClFjrK,KAAKqkJ,oBAAoBx1I,EAAQqpQ,iBAAiB2U,YAAazpR,EAAOoxI,YACtEx0I,KAAKqkJ,oBAAoBx1I,EAAQqpQ,iBAAiB4U,OAAQ1pR,EAAOynP,QACjE7qP,KAAKqkJ,oBAAoBx1I,EAAQqpQ,iBAAiB6U,MAAO3pR,EAAO6nK,QAEpEijI,EAAS3xS,UAAU6xS,eAAiB,WAChC,IAAIG,EAAYvuS,KAAKmuS,IAAIhB,gBAAkB,0DAA4D,GACnGlvF,EAAUj+M,KAAKmuS,IAAIf,cAAgB,4CAA8C,GACjFoB,EAAYxuS,KAAKmuS,IAAIb,gBAAkB,kDAAoD,GAC3FmB,EAAYzuS,KAAKmuS,IAAIX,gBAAkB,gCAAkC,GACzEpmJ,EAAsB,qEAA2EmnJ,EAAY,qKAA6KtwF,EAAU,6CAA+CuwF,EAAY,sEAAwEC,EAAY,uBACvb,OAAOrnJ,GAEX8mJ,EAAS3xS,UAAU01K,oBAAsB,WACrC,OAAOjyK,KAAKsuS,kBAEhBJ,EAAS3xS,UAAUqxS,uBAAyB,WACxC,IAAID,EAAsB,CACtB3tS,KAAKiuR,aAAa5nR,UAKtB,OAHIrG,KAAKuuR,aACLof,EAAoBruS,KAAKU,KAAKuuR,YAAYloR,UAEvCsnS,EAAoBp9M,QAAO,SAAU20B,GAAM,OAAOtI,GAAUsI,OAEvEgpL,EAAS3xS,UAAUw9K,kBAAoB,SAAUC,GAC7C,IAAI2zH,EAAsB3tS,KAAK4tS,yBAC/B,GAAI5zH,EAAY,CACZ,GAAI2zH,EAAoBlwS,OAAS,EAC7B,OAAOuC,KAAKi6K,gBAAgB+oF,UAAU7mL,EAAKwxN,IAE/C,IAAIe,EAAavyN,EAAKn8E,KAAKm/I,iBAAiBpjB,0BAC5C,GAAI/7H,KAAKi6K,gBAAgB2qH,cAAc8J,GAAY,GAC/C,OAAO,EAGf,OAAO1uS,KAAKmuS,IAAIJ,mBAEpBG,EAAS3xS,UAAU69K,aAAe,aAClC6zH,GAAc,CACVr/L,GAAU,qBACXs/L,EAAS3xS,UAAW,wBAAoB,GAC3C0xS,GAAc,CACVr/L,GAAU,kBACXs/L,EAAS3xS,UAAW,qBAAiB,GACxC0xS,GAAc,CACV76H,GAAY,aACb86H,EAAS3xS,UAAW,oBAAgB,GACvC0xS,GAAc,CACV76H,GAAY,YACb86H,EAAS3xS,UAAW,mBAAe,GACtC0xS,GAAc,CACV76H,GAAY,oBACb86H,EAAS3xS,UAAW,wBAAoB,GACpC2xS,EA3FkB,CA4F3Bn1H,IAQE41H,GAAqD,WACrD,IAAI1qS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDsqS,GAAuD,SAAUvtS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DkqS,GAAqC,SAAUhqS,GAE/C,SAASgqS,IACL,OAAkB,OAAXhqS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAsG/D,OAxGA2uS,GAAaE,EAAqBhqS,GAIlCgqS,EAAoBtyS,UAAU4wR,iBAAmB,SAAUc,GACvDjuR,KAAKiuR,aAAeA,GAExB4gB,EAAoBtyS,UAAU0/R,eAAiB,WACvCj8R,KAAKy7K,WACLz7K,KAAKy7K,aAGbozH,EAAoBtyS,UAAUw/R,wBAA0B,SAAUr0R,EAAQ6/J,GACtE,IAAIxnK,EAAQC,KACZA,KAAK8uS,UAAUpnS,GAAQ,SAAU6iL,GAC7BxqL,EAAM+tK,aAAaI,6BAA6B,CAC5CxmK,OAAQA,EACRjI,KAAM,aACN8nK,WAAYA,EACZ4G,OAAQoc,MAEbhjB,EAAWxrK,SAElB8yS,EAAoBtyS,UAAUovL,yBAA2B,SAAUjkL,EAAQ+jL,GACvE,IAAI1rL,EAAQC,KACZA,KAAK8uS,UAAUpnS,GAAQ,SAAU6iL,GAC7BxqL,EAAM+tK,aAAaiwE,4BAA4B,CAC3Ct+O,KAAM,aACNgsL,YAAaA,EACbtd,OAAQoc,EACRszD,kBAAkB,EAClBn2O,OAAQA,MAEb+jL,IAEPojH,EAAoBtyS,UAAUuyS,UAAY,SAAUpnS,EAAQo2O,EAAkBryD,GAC1E,IAOIhQ,EAPA17K,EAAQC,KACR2zQ,EAAgB3zQ,KAAK2vM,cAAcmkE,yBAAyBpsQ,EAAQ,eACpE6iL,EAAQ59K,SAASa,cAAc,OACnC+8K,EAAMnlE,aAAa,OAAQ,gBAC3B0+B,GAAYymC,EAAO,WACnBvqL,KAAK+uS,YAAc/uS,KAAKmnH,mBAAmBojE,EAAO,WAAW,SAAU/9K,GAAK,OAAOzM,EAAMivS,gBAAgBxiS,EAAG+9K,MAC5GopF,EAAcoC,WAAWp6G,MAAK,SAAUE,GAAO,OAAO0uB,EAAM7vJ,YAAYmhI,MAExE,IAAIwiF,EAAkB5yD,GAAezrL,KAAKiuR,aAAa5nR,SACnD83O,EAAiB,SAAU3xO,GAC3B9E,EAAOwyG,gBAAe,EAAO,eAC7B,IAAIspL,EAAkBh3R,aAAayiS,cAInC,GAHIlvS,EAAMgvS,cACNhvS,EAAMgvS,YAAchvS,EAAMgvS,eAE1BvL,GAAmB/3G,GAAe7uE,GAAU6uE,GAAc,CAC1D,IAAI1Q,EAAch7K,EAAMk6K,gBAAgB0rH,mBAAmBl6G,GACvD1Q,GACAA,EAAYhF,UAIpBlI,EAAc7tK,KAAK8tK,aAAaC,SAAS,CACzCkwE,OAAO,EACPz1F,OAAQ+hC,EACR2zD,YAAY,EACZC,eAAgBA,EAChBL,iBAAkB,WAAc,OAAOA,EAAiBvzD,IACxD8zD,gBAAiBA,IAEjBxwE,IACA7tK,KAAKy7K,UAAYA,EAAY5N,EAAYG,UAE7C2lG,EAAcE,cAAcl4G,MAAK,SAAUprE,GAGvCutJ,EAAiBvzD,GACbh6F,EAAOqlF,kBACPrlF,EAAOqlF,iBAAiB,CAAE/6B,UAAW,aAAc4gC,UAAWA,OAGtE/zK,EAAOwyG,gBAAe,EAAM,gBAEhC20L,EAAoBtyS,UAAUyyS,gBAAkB,SAAUxiS,EAAG81J,GACrD91J,EAAEs4J,UAAY+O,GAAQE,KACtBvnK,EAAE6tK,kBACFr6K,KAAKi6K,gBAAgBO,yBAAyBlY,GAAM,EAAO91J,EAAEo0H,YAGjEp0H,EAAEmpK,iBACF31K,KAAKi6K,gBAAgB+oF,UAAU1gG,EAAM91J,EAAEo0H,YAE3CiuK,EAAoBtyS,UAAU8gQ,cAAgB,SAAU31P,GAEpD,OAAOA,EAAO6vG,mBAElBq3L,GAAc,CACVhgM,GAAU,kBACXigM,EAAoBtyS,UAAW,qBAAiB,GACnDqyS,GAAc,CACVhgM,GAAU,iBACXigM,EAAoBtyS,UAAW,oBAAgB,GAClDqyS,GAAc,CACVhgM,GAAU,oBACXigM,EAAoBtyS,UAAW,uBAAmB,GACrDsyS,EAAsBD,GAAc,CAChClgM,GAAK,gBACNmgM,GACIA,EAzG6B,CA0GtCjoL,IAQEsoL,GAAqD,WACrD,IAAIjrS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD6qS,GAAuD,SAAU9tS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAI5DyqS,GAA6B,SAAUvqS,GAEvC,SAASuqS,IACL,IAAIrvS,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAGhE,OAFAD,EAAMsvS,iBAAmB,GACzBtvS,EAAMuvS,YAAc,GACbvvS,EA8PX,OAnQAmvS,GAAaE,EAAavqS,GAO1BuqS,EAAY7yS,UAAU2I,KAAO,WACzBlF,KAAKwqG,OAASxqG,KAAK6vG,cAActrG,OAAO,gBAE5C6qS,EAAY7yS,UAAUgzS,mBAAqB,WACvCvvS,KAAKsvS,YAAY/wS,QAAQyB,KAAKwvS,eAAe/kS,KAAKzK,OAClDA,KAAKsvS,YAAY7xS,OAAS,GAE9B2xS,EAAY7yS,UAAUizS,eAAiB,SAAUC,GAC7C,IAAItlN,EAAUslN,EAAsBjwG,WAAWj5E,SAC3CmpL,EAAoBD,EAAsBC,kBAG9C,GAFAvlN,EAAQumB,oBAAoB,YAAag/L,GAErCD,EAAsBE,aAAc,CACpC,IAAIC,EAAqBH,EAAsBG,mBAC/CzlN,EAAQumB,oBAAoB,aAAck/L,EAAoB,CAAEnpL,SAAS,MAGjF2oL,EAAY7yS,UAAUwjM,iBAAmB,SAAU38L,GAC/C,IAAIqsS,EAAwB1hR,EAAK/tB,KAAKsvS,aAAa,SAAUliN,GAAQ,OAAOA,EAAKoyG,aAAep8L,KAC3FqsS,IAGLzvS,KAAKwvS,eAAeC,GACpBzrM,EAAgBhkG,KAAKsvS,YAAaG,KAEtCL,EAAY7yS,UAAUszS,kBAAoB,SAAUC,GAChD,IAAI1I,EAAYpnS,KAAK8vG,mBAAmBw0F,cACpCyrG,EAAQ3I,EAAUt/I,cAAc,QAChCrnD,EAAOsvM,IAGP1rJ,GAAoB0rJ,EAAO,kBAAmBD,IAGtDV,EAAY7yS,UAAU6vR,WAAa,WAC/B,OAAOpsR,KAAKqxL,UAEhB+9G,EAAY7yS,UAAUgjM,cAAgB,SAAUn8L,EAAQ4sS,QAC/B,IAAjBA,IAA2BA,GAAe,GAC9C,IAAIC,EAAgBjwS,KAAKssK,YAAY7hK,KAAKzK,KAAMoD,GAChDA,EAAOmjH,SAAS/V,iBAAiB,YAAay/L,GAC9C,IAAItlH,EAAgB,KAChBm2B,EAAgB9gN,KAAK8vG,mBAAmB46E,kBACxCslH,IAAiBlvF,IACjBn2B,EAAgB3qL,KAAK0nL,aAAaj9K,KAAKzK,KAAMoD,GAC7CA,EAAOmjH,SAAS/V,iBAAiB,aAAcm6E,EAAe,CAAElkE,SAAS,KAE7EzmH,KAAKsvS,YAAYhwS,KAAK,CAClBkgM,WAAYp8L,EACZssS,kBAAmBO,EACnBL,mBAAoBjlH,EACpBglH,aAAcK,KAItBZ,EAAY7yS,UAAUmrL,aAAe,SAAUtkL,EAAQ+kL,GACnD,IAAIpoL,EAAQC,KACZA,KAAKkwS,kBAAoB9sS,EACzBpD,KAAKqxL,UAAW,EAChB,IAAI5I,EAAQN,EAAWC,QAAQ,GAC/BpoL,KAAKmwS,cAAgB1nH,EACrBzoL,KAAKkoL,WAAaO,EAClB,IAAI2nH,EAAiB,SAAU5jS,GAAK,OAAOzM,EAAM6nL,YAAYp7K,EAAGpJ,EAAOmjH,WACnE8pL,EAAgB,SAAU7jS,GAAK,OAAOzM,EAAMuwS,UAAU9jS,EAAGpJ,EAAOmjH,WAChEgqL,EAAoB,SAAU/jS,GAASA,EAAE6/Q,YACzC7/Q,EAAEmpK,kBAEF55K,EAASqH,EAAOmjH,SAChBi6J,EAAS,CAIT,CAAEzkR,OAAQ4Q,SAAUlN,KAAM,YAAagxG,SAAU8/L,EAAmBhxS,QAAS,CAAEknH,SAAS,IACxF,CAAE1qH,OAAQA,EAAQ0D,KAAM,YAAagxG,SAAU2/L,EAAgB7wS,QAAS,CAAEknH,SAAS,IACnF,CAAE1qH,OAAQA,EAAQ0D,KAAM,WAAYgxG,SAAU4/L,EAAe9wS,QAAS,CAAEknH,SAAS,IACjF,CAAE1qH,OAAQA,EAAQ0D,KAAM,cAAegxG,SAAU4/L,EAAe9wS,QAAS,CAAEknH,SAAS,KAGxFzmH,KAAKwwS,mBAAmBhwB,GAEO,IAA3Bp9Q,EAAOs8L,iBACP1/L,KAAKywS,aAAahoH,EAAOzoL,KAAKkoL,WAAY9kL,EAAOmjH,WAIzD6oL,EAAY7yS,UAAU+vK,YAAc,SAAUlpK,EAAQmkK,GAClD,IAAIxnK,EAAQC,KACRwM,EAAI+6J,EACR,KAAInkK,EAAOstS,iBAAkBttS,EAAOstS,eAAenpI,MAM/C/6J,EAAEmkS,iCAGNnkS,EAAEmkS,gCAAiC,EAET,IAAtBppI,EAAW1lB,QAAf,CAGA7hJ,KAAKkwS,kBAAoB9sS,EACzBpD,KAAKqxL,UAAW,EAChBrxL,KAAK4wS,gBAAkBrpI,EACvB,IAAI6/H,EAAYpnS,KAAK8vG,mBAAmBw0F,cACxCtkM,KAAK6vS,mBAAkB,GACvB,IAAIgB,EAAiB,SAAUzpS,GAAS,OAAOrH,EAAMssK,YAAYjlK,EAAOhE,EAAOmjH,WAC3EuqL,EAAe,SAAU1pS,GAAS,OAAOrH,EAAMgxS,UAAU3pS,EAAOhE,EAAOmjH,WACvEyqL,EAAe,SAAU5pS,GAAS,OAAOA,EAAMuuK,kBAC/C55K,EAASqrS,EACT5mB,EAAS,CACT,CAAEzkR,OAAQA,EAAQ0D,KAAM,YAAagxG,SAAUogM,GAC/C,CAAE90S,OAAQA,EAAQ0D,KAAM,UAAWgxG,SAAUqgM,GAC7C,CAAE/0S,OAAQA,EAAQ0D,KAAM,cAAegxG,SAAUugM,IAGrDhxS,KAAKwwS,mBAAmBhwB,GAEO,IAA3Bp9Q,EAAOs8L,iBACP1/L,KAAKqsK,YAAY9E,EAAYnkK,EAAOmjH,YAG5C6oL,EAAY7yS,UAAUi0S,mBAAqB,SAAUhwB,GACjDA,EAAOjiR,SAAQ,SAAU0yS,GACrB,IAAIl1S,EAASk1S,EAAal1S,OAAQ0D,EAAOwxS,EAAaxxS,KAAMgxG,EAAWwgM,EAAaxgM,SAAUlxG,EAAU0xS,EAAa1xS,QACrHxD,EAAOy0G,iBAAiB/wG,EAAMgxG,EAAUlxG,MAE5CS,KAAKqvS,iBAAiB/vS,MAAK,WACvBkhR,EAAOjiR,SAAQ,SAAU0yS,GACrB,IAAIl1S,EAASk1S,EAAal1S,OAAQ0D,EAAOwxS,EAAaxxS,KAAMgxG,EAAWwgM,EAAaxgM,SAAUlxG,EAAU0xS,EAAa1xS,QACrHxD,EAAO20G,oBAAoBjxG,EAAMgxG,EAAUlxG,UAMvD6vS,EAAY7yS,UAAU20S,sBAAwB,SAAUD,EAAcE,GAElE,IAAIzxG,EAAkB1/L,KAAKkwS,kBAAkBxwG,gBACzC0xG,EAAoB3wM,EAAOi/F,GAAmBA,EAAkB,EACpE,OAAOj4B,GAAcwpI,EAAcE,EAAYC,IAEnDhC,EAAY7yS,UAAU80S,oBAAsB,SAAUrpH,GAClD,IAAK,IAAIzqL,EAAI,EAAGA,EAAIyqL,EAAUvqL,OAAQF,IAClC,GAAIyqL,EAAUzqL,GAAG0qL,aAAejoL,KAAKkoL,WAAWD,WAC5C,OAAOD,EAAUzqL,GAGzB,OAAO,MAEX6xS,EAAY7yS,UAAUk0S,aAAe,SAAUQ,EAAcE,EAAYjsL,GACrE,IAAKllH,KAAKqxL,SAAU,CAEhB,IAAKrxL,KAAKqxL,UAAYrxL,KAAKkxS,sBAAsBD,EAAcE,GAC3D,OAEJnxS,KAAKqxL,UAAW,EAChB,IAAIztE,EAAU,CACVnkH,KAAMktH,GAAOuD,mBACbtmH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChB9N,OAAQmpH,GAEZllH,KAAKq0G,aAAa5nG,cAAcm3G,GAChC5jH,KAAKkwS,kBAAkBvwG,YAAYwxG,GAQnCnxS,KAAKkwS,kBAAkBrwG,WAAWsxG,GAEtCnxS,KAAKkwS,kBAAkBrwG,WAAWoxG,IAEtC7B,EAAY7yS,UAAUqrL,YAAc,SAAUO,EAAYjjE,GACtD,IAAIujE,EAAQzoL,KAAKqxS,oBAAoBlpH,EAAWC,SAC3CK,GAILzoL,KAAKywS,aAAahoH,EAAOzoL,KAAKkoL,WAAYhjE,IAI9CkqL,EAAY7yS,UAAU8vK,YAAc,SAAU9E,EAAYriD,GACtDllH,KAAKywS,aAAalpI,EAAYvnK,KAAK4wS,gBAAiB1rL,IAExDkqL,EAAY7yS,UAAU+zS,UAAY,SAAUnoH,EAAYjjE,GACpD,IAAIujE,EAAQzoL,KAAKqxS,oBAAoBlpH,EAAWmpH,gBAM3C7oH,IACDA,EAAQzoL,KAAKmwS,eAMjBnwS,KAAKuxS,WAAW9oH,EAAOvjE,IAO3BkqL,EAAY7yS,UAAUw0S,UAAY,SAAUxpI,EAAYriD,GACpDllH,KAAKuxS,WAAWhqI,EAAYriD,IAEhCkqL,EAAY7yS,UAAUg1S,WAAa,SAAUC,EAActsL,GACvD,GAAIllH,KAAKqxL,SAAU,CACfrxL,KAAKqxL,UAAW,EAChBrxL,KAAKkwS,kBAAkBtwG,WAAW4xG,GAClC,IAAI71K,EAAU,CACVl8H,KAAMktH,GAAOwD,mBACbvmH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChB9N,OAAQmpH,GAEZllH,KAAKq0G,aAAa5nG,cAAckvH,GAEpC37H,KAAK6vS,mBAAkB,GACvB7vS,KAAK4wS,gBAAkB,KACvB5wS,KAAKkoL,WAAa,KAClBloL,KAAKmwS,cAAgB,KACrBnwS,KAAKkwS,kBAAoB,KACzBlwS,KAAKqvS,iBAAiB9wS,SAAQ,SAAU4M,GAAQ,OAAOA,OACvDnL,KAAKqvS,iBAAiB5xS,OAAS,GAEnC0xS,GAAc,CACVvgM,GAAU,kBACXwgM,EAAY7yS,UAAW,qBAAiB,GAC3C4yS,GAAc,CACVvgM,GAAU,cACXwgM,EAAY7yS,UAAW,iBAAa,GACvC4yS,GAAc,CACVvgM,GAAU,YACXwgM,EAAY7yS,UAAW,eAAW,GACrC4yS,GAAc,CACV7gM,IACD8gM,EAAY7yS,UAAW,OAAQ,MAClC4yS,GAAc,CACV3gM,IACD4gM,EAAY7yS,UAAW,qBAAsB,MAChD6yS,EAAcD,GAAc,CACxBzgM,GAAK,gBACN0gM,GACIA,EApQqB,CAqQ9BxoL,IAQE6qL,GAAqD,WACrD,IAAIxtS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDotS,GAAuD,SAAUrwS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DgtS,GAAgC,SAAU9sS,GAE1C,SAAS8sS,IACL,OAAkB,OAAX9sS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoJ/D,IAAI4xS,EAcJ,OApKAH,GAAaE,EAAgB9sS,GAI7B+sS,EAAmBD,EACnBA,EAAep1S,UAAU8uL,aAAe,SAAU3jL,EAAQ0kL,EAAWtnF,QAClD,IAAXA,IAAqBA,EAAS,OAClC,IAAI+sM,EAAgB7xS,KAAK8xS,qBAAqBpqS,GAC9C1H,KAAKy9P,iBAAiB/1P,EAAQmqS,EAAezlH,EAAWtnF,IAE5D6sM,EAAep1S,UAAUkhQ,iBAAmB,SAAU/1P,EAAQ6mB,EAAM69J,EAAWtnF,QAC5D,IAAXA,IAAqBA,EAAS,OAE9Bv2E,IAAS6iF,GAAUuB,UAAYpkF,IAAS6iF,GAAUwB,YAClDrkF,EAAO,MAGX7mB,EAAOsyG,QAAQzrF,EAAMu2E,GACrB,IAAIitM,EAAiB3lH,IAAcpsL,KAAK8vG,mBAAmB2yG,sBAEtDsvF,GACD/xS,KAAKgyS,uBAAuBtqS,EAAQo9F,GAGxC9kG,KAAKiyS,gBAAgBvqS,GACrB1H,KAAKqtI,6BAETskK,EAAep1S,UAAU01S,gBAAkB,SAAUC,GAEjD,IAAIC,EAAgBnyS,KAAK2sL,+BACrBh4E,EAAY,EAChBw9L,EAAc5zS,SAAQ,SAAUmmC,GACxBA,IAAQwtQ,IACRxtQ,EAAIg2E,aAAa/F,GACjBA,QAIJu9L,EAAgBn4L,WAChBm4L,EAAgBx3L,aAAa/F,GAGjC,IAAIy9L,EAAUpyS,KAAKm/I,iBAAiB5W,uCACpC6pK,EAAQ7hN,QAAO,SAAU7rD,GAAO,OAAwB,MAAjBA,EAAIq1E,aAAsBx7G,SAAQ,SAAUmmC,GAAO,OAAOA,EAAIg2E,mBAIzGi3L,EAAep1S,UAAU8vL,cAAgB,WACrCrsL,KAAKqtI,6BAETskK,EAAep1S,UAAU2hR,aAAe,WAEpC,IAAIk0B,EAAUpyS,KAAKm/I,iBAAiB5W,uCAChC8pK,EAAaD,EAAQ7hN,QAAO,SAAU7oF,GAAU,QAASA,EAAOqyG,aACpE,OAAOs4L,GAAcA,EAAW50S,OAAS,GAE7Ck0S,EAAep1S,UAAU8wI,0BAA4B,WACjD,IAAIjmI,EAAQ,CACR3H,KAAMktH,GAAO1S,mBACbrwG,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCuqS,EAAep1S,UAAUy1S,uBAAyB,SAAUM,EAAcxtM,GACtE9kG,KAAKm/I,iBAAiB5W,uCAAuChqI,SAAQ,SAAUg0S,GAEvEA,IAAkBD,GAGlBC,EAAcv4L,aAAQ36G,EAAWylG,OAI7C6sM,EAAep1S,UAAUu1S,qBAAuB,SAAUpqS,GACtD,IAAIqnN,EAUJ,GARIA,EADArnN,EAAOm1G,YAAYkyG,aACJrnN,EAAOm1G,YAAYkyG,aAE7B/uN,KAAK8vG,mBAAmBg/G,kBACd9uN,KAAK8vG,mBAAmBg/G,kBAGxB8iF,EAAiBY,uBAE/Bn1S,MAAMC,QAAQyxN,IAAiBA,EAAatxN,QAAU,EAEvD,OADAwF,QAAQkD,KAAK,oFAAsF4oN,GAC5F,KAEX,IAGIvgN,EAHAkiQ,EAAe3hD,EAAahuN,QAAQ2G,EAAOqyG,WAC3C04L,EAAa/hC,EAAe,EAC5BgiC,EAAkBhiC,GAAgB3hD,EAAatxN,OAAS,EAS5D,OANI+Q,EADAikS,GAAcC,EACL3jF,EAAa,GAGbA,EAAa2hD,EAAe,GAGrCkhC,EAAiBY,sBAAsBzxS,QAAQyN,GAAU,GACzDvL,QAAQkD,KAAK,8BAAgCqI,GACtC,MAEJA,GAEXmjS,EAAep1S,UAAUowL,6BAA+B,WAEpD,IAAIgmH,EAA0B3yS,KAAKm/I,iBAAiB5W,uCAChDqqK,EAAqBD,EAAwBpiN,QAAO,SAAU7oF,GAAU,QAASA,EAAOqyG,aAIxF84L,EAAiB,GAsBrB,OArBAF,EAAwBp0S,SAAQ,SAAUmmC,EAAKxlC,GAAS,OAAO2zS,EAAenuQ,EAAI2yE,SAAWn4G,KAE7F0zS,EAAmBrkR,MAAK,SAAU5iB,EAAGxH,GACjC,IAAI2uS,EAAKnnS,EAAE8uG,eACPs4L,EAAK5uS,EAAEs2G,eACX,GAAU,MAANq4L,GAAoB,MAANC,EACd,OAAOD,EAAKC,EAEX,GAAU,MAAND,GAAoB,MAANC,EAAY,CAE/B,IAAI3pK,EAAOypK,EAAelnS,EAAE0rG,SACxBgyB,EAAOwpK,EAAe1uS,EAAEkzG,SAC5B,OAAO+xB,EAAOC,EAAO,GAAK,EAEzB,OAAU,MAAN0pK,GACG,EAGD,KAGRH,GAGXjB,EAAep1S,UAAUw4R,aAAe,WACpC,OAAO/0R,KAAK2sL,+BAA+BllL,KAAI,SAAUC,GAAU,MAAO,CACtE6mB,KAAM7mB,EAAOqyG,UACbjX,MAAOp7F,EAAO2vG,aAGtBs6L,EAAep1S,UAAUy2S,eAAiB,WACtC,OAAOhzS,KAAK2sL,+BAA+BllL,KAAI,SAAUC,GAAU,MAAO,CACtE6mB,KAAM7mB,EAAOqyG,UACbryG,OAAQA,OAIhBiqS,EAAea,sBAAwB,CAACphM,GAAUuB,SAAUvB,GAAUwB,UAAW,MACjF8+L,GAAc,CACV9iM,GAAU,qBACX+iM,EAAep1S,UAAW,wBAAoB,GACjDm1S,GAAc,CACV9iM,GAAU,cACX+iM,EAAep1S,UAAW,iBAAa,GAC1Cm1S,GAAc,CACV9iM,GAAU,YACX+iM,EAAep1S,UAAW,eAAW,GACxCo1S,EAAiBC,EAAmBF,GAAc,CAC9ChjM,GAAK,mBACNijM,GACIA,EArKwB,CAsKjC/qL,IAQEqsL,GAAqD,WACrD,IAAIhvS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD4uS,GAAuD,SAAU7xS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwuS,GAAmC,SAAUtuS,GAE7C,SAASsuS,IACL,IAAIpzS,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAMqzS,eAAiBC,EAAoBC,qBAAqBrwQ,OACzDljC,EAyDX,IAAIszS,EASJ,OAtEAJ,GAAaE,EAAmBtuS,GAMhCwuS,EAAsBF,EAItBA,EAAkB52S,UAAUwwS,sCAAwC,SAAUZ,GAC1EA,EAASkH,EAAoBE,cAAgBvzS,KAAKozS,gBAEtDD,EAAkB52S,UAAU+oR,wBAA0B,SAAUl+Q,GAC5D,OAAOi+G,GAAqBrlH,KAAK8vG,mBAAoB1oG,EAAO,aAKhE+rS,EAAkB52S,UAAU6oR,oBAAsB,SAAUh+Q,GACxD,IAAIk2B,EAAMt9B,KAAKgjR,oBAAoB57Q,EAAMrL,QACzC,OAAOuhC,GAEX61Q,EAAkB52S,UAAUymR,oBAAsB,SAAU74L,GACxD,IAAI87B,EAAU97B,EACd,MAAO87B,EAAS,CACZ,IAAIhG,EAAagG,EAAQotL,EAAoBE,cAC7C,GAAI9yM,EAAOwf,GAAa,CACpB,IAAIuzL,EAAoBvzL,IAAejgH,KAAKozS,eAC5C,OAAOI,EAEXvtL,EAAUA,EAAQP,cAEtB,OAAO,GAEXytL,EAAkB52S,UAAUk3S,wBAA0B,SAAUrsS,GAC5D,IAAI49N,EAAWhlO,KAAKslR,wBAAwBl+Q,GAC5C,OAAO49N,EAAWA,EAAS2b,kBAAoB,MAEnDwyD,EAAkB52S,UAAUq0P,sBAAwB,SAAUxpP,GAC1D,IAEI+J,EACA4K,EAHA23R,EAAsB1zS,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUgB,kBAC3E5lG,EAAIpF,EAWR,GARiB,MAAboF,EAAEo7J,SAAgC,MAAbp7J,EAAEs7J,SACvB32J,EAAI3E,EAAEo7J,QACN7rJ,EAAIvP,EAAEs7J,UAGN32J,EAAI3E,EAAE2E,EACN4K,EAAIvP,EAAEuP,GAEN23R,EAAqB,CACrB,IAAIxrG,EAAcloM,KAAKmoM,mBAAmBC,wBACtCurG,EAASzrG,EAAYylC,mBAAmBC,qBACxCgmE,EAAS1rG,EAAYylC,mBAAmB0tC,qBAC5ClqQ,GAAKyiS,EAAO57N,KACZj8D,GAAK43R,EAAOz7N,IAEhB,MAAO,CAAE/mE,EAAGA,EAAG4K,EAAGA,IAGtBo3R,EAAkBG,qBAAuB,IAAI/pI,GAC7C4pI,EAAkBI,aAAe,qBACjCL,GAAc,CACVtkM,GAAU,uBACXukM,EAAkB52S,UAAW,0BAAsB,GACtD42S,EAAoBE,EAAsBH,GAAc,CACpDxkM,GAAK,sBACNykM,GACIA,EAvE2B,CAwEpCvsL,IAQEitL,GAAqD,WACrD,IAAI5vS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwvS,GAAuD,SAAUzyS,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DovS,GAAuC,SAAUlvS,GAEjD,SAASkvS,IACL,OAAkB,OAAXlvS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA+Q/D,OAjRA6zS,GAAaE,EAAuBlvS,GAKpCkvS,EAAsBx3S,UAAU8zP,mBAAqB,SAAU5zP,EAAKu3S,GAGhE,IAAI/tL,EAAU+tL,EACVv4K,GAAW,EAIf,OAAQA,EAAU,CACd,OAAQh/H,GACJ,KAAKo3K,GAAQQ,GACTpuD,EAAUjmH,KAAKi0S,aAAahuL,GAC5B,MACJ,KAAK4tD,GAAQU,KACTtuD,EAAUjmH,KAAKk0S,aAAajuL,GAC5B,MACJ,KAAK4tD,GAAQS,MAELruD,EADAjmH,KAAK8vG,mBAAmB6Q,cACd3gH,KAAKm0S,cAAcluL,GAGnBjmH,KAAKo0S,eAAenuL,GAElC,MACJ,KAAK4tD,GAAQO,KAELnuD,EADAjmH,KAAK8vG,mBAAmB6Q,cACd3gH,KAAKo0S,eAAenuL,GAGpBjmH,KAAKm0S,cAAcluL,GAEjC,MACJ,QACIA,EAAU,KACVhjH,QAAQkD,KAAK,uCAAyC1J,GACtD,MAGJg/H,GADAxV,GACWjmH,KAAKq0S,oBAAoBpuL,GAM5C,OAAOA,GAEX8tL,EAAsBx3S,UAAU83S,oBAAsB,SAAUljD,GAC5D,IACIpmP,EADArD,EAASypP,EAASzpP,OAEtB,OAAQypP,EAAS5hE,WACb,KAAKn+E,GAAUc,WACXnnG,EAAU/K,KAAKqoP,eAAekL,gBAAgBpC,EAASvxG,UACvD,MACJ,KAAKxuC,GAAUe,cACXpnG,EAAU/K,KAAKqoP,eAAemL,mBAAmBrC,EAASvxG,UAC1D,MACJ,QACI70I,EAAU/K,KAAKk4I,SAAS4H,OAAOqxG,EAASvxG,UACxC,MAER,IAAK70I,EACD,OAAO,EAEX,IAAI6tG,EAAoBlxG,EAAOixG,oBAAoB5tG,GACnD,OAAQ6tG,GAEZm7L,EAAsBx3S,UAAU43S,cAAgB,SAAUG,GACtD,IAAKA,EACD,OAAO,KAEX,IAAIC,EAAYv0S,KAAKm/I,iBAAiB5X,sBAAsB+sK,EAAS5sS,QACrE,OAAK6sS,EAGE,CACH30J,SAAU00J,EAAS10J,SACnBl4I,OAAQ6sS,EACRhlH,UAAW+kH,EAAS/kH,WALb,MAQfwkH,EAAsBx3S,UAAU63S,eAAiB,SAAUE,GACvD,IAAKA,EACD,OAAO,KAEX,IAAIE,EAAax0S,KAAKm/I,iBAAiB1lB,qBAAqB66K,EAAS5sS,QAErE,OAAK8sS,EAGE,CACH50J,SAAU00J,EAAS10J,SACnBl4I,OAAQ8sS,EACRjlH,UAAW+kH,EAAS/kH,WALb,MAQfwkH,EAAsBx3S,UAAUk4S,YAAc,SAAUjjD,GAEpD,IAAItyP,EAAQsyP,EAAY5xG,SACpB5qC,EAASw8I,EAAYjiE,UACzB,GAAIvvL,KAAK00S,qBAAqBljD,GAC1B,OAAQx8I,GACJ,KAAK5D,GAAUe,cAEX,OAAO,KACX,KAAKf,GAAUc,WAGX,OAAIlyG,KAAKk4I,SAASm1G,iBACP,CAAEztG,SAAU5/I,KAAKw/I,gBAAgBC,kBAAmB8vC,UAAW,MAEtEvvL,KAAKqoP,eAAegF,eAAej8I,GAAUe,eACtC,CAAEytC,SAAU,EAAG2vC,UAAWn+E,GAAUe,eAExC,KACX,QAEI,OAAInyG,KAAKqoP,eAAegF,eAAej8I,GAAUe,eACtC,CAAEytC,SAAU,EAAG2vC,UAAWn+E,GAAUe,eAExC,KAGnB,MAAO,CAAEytC,SAAU1gJ,EAAQ,EAAGqwL,UAAWv6E,IAE7C++L,EAAsBx3S,UAAU23S,aAAe,SAAUI,GACrD,IAAKA,EACD,OAAO,KAEX,IAAIK,EAAW30S,KAAKy0S,YAAYH,GAChC,OAAIK,EACO,CACH/0J,SAAU+0J,EAAS/0J,SACnBl4I,OAAQ4sS,EAAS5sS,OACjB6nL,UAAWolH,EAASplH,WAGrB,MAEXwkH,EAAsBx3S,UAAUm4S,qBAAuB,SAAUljD,GAC7D,IAAIx8I,EAASw8I,EAAYjiE,UACrBrwL,EAAQsyP,EAAY5xG,SACxB,GAAI5qC,IAAW5D,GAAUc,WAAY,CACjC,IAAI0iM,EAAe50S,KAAKqoP,eAAe9jC,sBAAsB9mN,OAAS,EACtE,OAAOm3S,GAAgB11S,EAE3B,GAAI81G,IAAW5D,GAAUe,cAAe,CACpC,IAAI0iM,EAAkB70S,KAAKqoP,eAAe5jC,yBAAyBhnN,OAAS,EAC5E,OAAOo3S,GAAmB31S,EAE9B,IAAI41S,EAAgB90S,KAAKw/I,gBAAgBG,iBACzC,OAAOm1J,GAAiB51S,GAE5B60S,EAAsBx3S,UAAUw4S,YAAc,SAAUvjD,GAEpD,IAAItyP,EAAQsyP,EAAY5xG,SACpB5qC,EAASw8I,EAAYjiE,UACrBylH,EAAahgM,EAAmB,IAAV91G,EAAcA,IAAUc,KAAKw/I,gBAAgBC,kBAEvE,OAAIu1J,EACIhgM,IAAW5D,GAAUc,WACd,KAEN8C,GAODh1G,KAAKk4I,SAASm1G,iBACPrtP,KAAKi1S,kBAPRj1S,KAAKqoP,eAAegF,eAAej8I,GAAUc,YACtClyG,KAAKk1S,wBAET,KAWR,CAAEt1J,SAAU1gJ,EAAQ,EAAGqwL,UAAWv6E,IAE7C++L,EAAsBx3S,UAAU03S,aAAe,SAAUK,GACrD,IAAKA,EACD,OAAO,KAEX,IAAIa,EAAWn1S,KAAK+0S,YAAY,CAAEn1J,SAAU00J,EAAS10J,SAAU2vC,UAAW+kH,EAAS/kH,YACnF,OAAI4lH,EACO,CACHv1J,SAAUu1J,EAASv1J,SACnBl4I,OAAQ4sS,EAAS5sS,OACjB6nL,UAAW4lH,EAAS5lH,WAGrB,MAEXwkH,EAAsBx3S,UAAU04S,gBAAkB,WAC9C,IAAIG,EAAcp1S,KAAKw/I,gBAAgBG,iBACvC,MAAO,CAAEC,SAAUw1J,EAAa7lH,UAAW,OAE/CwkH,EAAsBx3S,UAAU24S,sBAAwB,WACpD,IAAIG,EAAkBr1S,KAAKqoP,eAAe9jC,sBAAsB9mN,OAAS,EACzE,MAAO,CAAEmiJ,SAAUy1J,EAAiB9lH,UAAWn+E,GAAUc,aAE7D6hM,EAAsBx3S,UAAU62P,kBAAoB,SAAUjC,EAAUH,GACpE,OAAIA,EACOhxP,KAAKs1S,2BAA2BnkD,GAEpCnxP,KAAKu1S,0BAA0BpkD,IAE1C4iD,EAAsBx3S,UAAUg5S,0BAA4B,SAAUpkD,GAClE,IAAI57H,EAAmBv1H,KAAKm/I,iBAAiBpjB,yBACzCy5K,EAAcrkD,EAASvxG,SACvB61J,EAActkD,EAAS5hE,UAEvBmmH,EAAY11S,KAAKm/I,iBAAiB1lB,qBAAqB03H,EAASzpP,QAEpE,IAAKguS,EAAW,CACZA,EAAYngL,EAAiB,GAC7B,IAAIo/K,EAAW30S,KAAKy0S,YAAYtjD,GAChC,GAAIxwJ,EAAQg0M,GACR,OAAO,KAIX,IAAKA,EAASplH,YAAcvvL,KAAKw/I,gBAAgBm2J,YAAYhB,GACzD,OAAO,KAEXa,EAAcb,EAAWA,EAAS/0J,SAAW,KAC7C61J,EAAcd,EAAWA,EAASplH,UAAY,KAElD,MAAO,CAAE3vC,SAAU41J,EAAa9tS,OAAQguS,EAAWnmH,UAAWkmH,IAElE1B,EAAsBx3S,UAAU+4S,2BAA6B,SAAUnkD,GACnE,IAAI57H,EAAmBv1H,KAAKm/I,iBAAiBpjB,yBACzCy5K,EAAcrkD,EAASvxG,SACvB61J,EAActkD,EAAS5hE,UAEvBmmH,EAAY11S,KAAKm/I,iBAAiB5X,sBAAsB4pH,EAASzpP,QAErE,IAAKguS,EAAW,CACZA,EAAYv5N,EAAKo5C,GACjB,IAAI4/K,EAAWn1S,KAAK+0S,YAAY,CAAEn1J,SAAUuxG,EAASvxG,SAAU2vC,UAAW4hE,EAAS5hE,YACnF,GAAI5uF,EAAQw0M,GACR,OAAO,KAIX,IAAKA,EAAS5lH,YAAcvvL,KAAKw/I,gBAAgBm2J,YAAYR,GACzD,OAAO,KAEXK,EAAcL,EAAWA,EAASv1J,SAAW,KAC7C61J,EAAcN,EAAWA,EAAS5lH,UAAY,KAElD,MAAO,CAAE3vC,SAAU41J,EAAa9tS,OAAQguS,EAAWnmH,UAAWkmH,IAElE3B,GAAc,CACVllM,GAAU,qBACXmlM,EAAsBx3S,UAAW,wBAAoB,GACxDu3S,GAAc,CACVllM,GAAU,aACXmlM,EAAsBx3S,UAAW,gBAAY,GAChDu3S,GAAc,CACVllM,GAAU,mBACXmlM,EAAsBx3S,UAAW,sBAAkB,GACtDu3S,GAAc,CACVllM,GAAU,oBACXmlM,EAAsBx3S,UAAW,uBAAmB,GACvDw3S,EAAwBD,GAAc,CAClCplM,GAAK,0BACNqlM,GACIA,EAlR+B,CAmRxCntL,IAQEgvL,GAAqD,WACrD,IAAI3xS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDuxS,GAAuD,SAAUx0S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DmxS,GAAuC,SAAUjxS,GAEjD,SAASixS,IACL,OAAkB,OAAXjxS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAkD/D,OApDA41S,GAAaE,EAAuBjxS,GAIpCixS,EAAsBv5S,UAAUg6K,YAAc,SAAU7uK,EAAQ8K,EAAMw4N,EAAQtuO,EAAOq5S,EAAmBC,QACrE,IAA3BA,IAAqCA,GAAyB,GAClE,IACI7+F,EADA3oM,EAAS,KAET5G,EAASF,EAAOm1G,YAUpB,GATIk5L,EAEA5+F,EAAY4+F,EAEPC,IAEL7+F,EAAY3kM,GAAQA,EAAK+8K,WAAa3nL,EAAOquS,wBACzCruS,EAAOquS,wBAA0BruS,EAAOsuS,gBAE5C/+F,EAAW,CACX,IAAI/zM,EAAS,CACT1G,MAAOA,EACP8V,KAAMA,EACNjS,KAAMiS,EAAOA,EAAKjS,KAAO,KACzBqH,OAAQA,EACRF,OAAQA,EACRkC,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,cAOrCp1G,EAAO4nO,OAASA,EAChBx8N,EAASxO,KAAK8vI,kBAAkBC,SAASonE,EAAW/zM,QAEnD,GAAIwE,EAAO6uK,QACZ,OAAO7uK,EAAO6uK,QAAQ/5K,IAAU,GAMpC,OAHc,MAAV8R,GAAkBnR,MAAMC,QAAQZ,KAChC8R,EAAS9R,EAAMsU,KAAK,OAEjBxC,GAEXqnS,GAAc,CACVjnM,GAAU,sBACXknM,EAAsBv5S,UAAW,yBAAqB,GACzDu5S,EAAwBD,GAAc,CAClCnnM,GAAK,0BACNonM,GACIA,EArD+B,CAsDxClvL,IAQEuvL,GAAqD,WACrD,IAAIlyS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD8xS,GAA+B,SAAUvxS,GAEzC,SAASuxS,EAAcrjG,GACnB,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,kBAAmB,UAAY/yM,KA+BpE,OAjCAm2S,GAAaC,EAAevxS,GAI5BuxS,EAAc75S,UAAUw3L,WAAa,WACjC,OAAO/zL,KAAKm1K,OAAOxqB,SAEvByrJ,EAAc75S,UAAUu7P,OAAS,WAExB93P,KAAK+zL,cACN/zL,KAAK01K,UAAS,IAGtB0gI,EAAc75S,UAAUi7P,kBAAoB,WACxC3yP,EAAOtI,UAAUi7P,kBAAkB55P,KAAKoC,MACxCA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOyD,uBAAwBpwH,KAAKq2S,SAAS5rS,KAAKzK,QAQjGo2S,EAAc75S,UAAU85S,SAAW,SAAUjvS,GACrCA,EAAM42J,UACN52J,EAAMxG,MACNZ,KAAKm1K,OAAOv0K,MACZZ,KAAKm1K,OAAOv0K,OAASwG,EAAMxG,MAC3BwG,EAAM4hD,IACNhpD,KAAKm1K,OAAOnsH,KAAO5hD,EAAM4hD,IACzBhpD,KAAK01K,UAAS,GAAO,IAGtB0gI,EAlCuB,CAmChCx+C,IAQE0+C,GAAyB,CAAC,YAAa,WAAY,aAAc,cAEjEC,GAA2C,WAC3C,SAASA,IACLv2S,KAAKw2S,iBAAmB,SAAUptS,GAAa,OAAOo2F,EAAS82M,GAAwBltS,IAc3F,OAXAmtS,EAA0Bh6S,UAAUkP,WAAa,SAAUy5F,EAAQ75F,GAC/DE,OAAOE,WAAWy5F,EAAQ75F,IAG9BkrS,EAA0Bh6S,UAAUi0G,iBAAmB,SAAUrmB,EAAS1qF,EAAMgxG,EAAUgmM,GACtFtsN,EAAQqmB,iBAAiB/wG,EAAMgxG,EAAUgmM,IAG7CF,EAA0Bh6S,UAAUkQ,cAAgB,SAAUrD,EAAWqnG,GACrEA,KAEG8lM,EAhBmC,GAyB1CG,GAAqD,WACrD,IAAIzyS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDqyS,GAAuD,SAAUt1S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DiyS,GAAsC,SAAU/xS,GAEhD,SAAS+xS,IACL,OAAkB,OAAX/xS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAkE/D,OApEA02S,GAAaE,EAAsB/xS,GAInC+xS,EAAqBr6S,UAAUwiJ,cAAgB,WAC3C/+I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCztH,KAAK6nO,0BAA0Bp9N,KAAKzK,OACvHA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuC/wH,KAAK64Q,+BAA+BpuQ,KAAKzK,QAEtI42S,EAAqBr6S,UAAUsrO,0BAA4B,WACvD7nO,KAAK2uL,UAETioH,EAAqBr6S,UAAUs8Q,+BAAiC,WAC5D74Q,KAAK2uL,UAETioH,EAAqBr6S,UAAUoyL,OAAS,WAOpC3uL,KAAK62S,aACLprS,WAAWzL,KAAK62S,WAAWpsS,KAAKzK,MAAO,MAE3C42S,EAAqBr6S,UAAUs6S,WAAa,WACxC,IAAIzzS,EAAS,CACTmlR,wBAAyBvoR,KAAKmoM,mBAAmBy/D,2BAA2Bt+G,4BAC5Ek/H,sBAAuBxoR,KAAKupJ,2BAEhCvpJ,KAAKyoR,kBAAkBrlR,IAE3BwzS,EAAqBr6S,UAAUksR,kBAAoB,SAAUrlR,GACzD,IAAI0zS,EAAsB92S,KAAKuoR,0BAA4BnlR,EAAOmlR,yBAC9DvoR,KAAKwoR,wBAA0BplR,EAAOolR,sBAC1C,GAAIsuB,EAAqB,CACrB92S,KAAKuoR,wBAA0BnlR,EAAOmlR,wBACtCvoR,KAAKwoR,sBAAwBplR,EAAOolR,sBACpC,IAAI5kK,EAAU,CACVnkH,KAAMktH,GAAOqE,gCACbpnH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcm3G,KAIxCgzL,EAAqBr6S,UAAU+sJ,0BAA4B,WACvD,OAAOtpJ,KAAKuoR,yBAGhBquB,EAAqBr6S,UAAUgtJ,wBAA0B,WACrD,OAAOvpJ,KAAKwoR,uBAEhBmuB,GAAc,CACV/nM,GAAU,cACXgoM,EAAqBr6S,UAAW,iBAAa,GAChDo6S,GAAc,CACV/nM,GAAU,YACXgoM,EAAqBr6S,UAAW,eAAW,GAC9Co6S,GAAc,CACV/nM,GAAU,uBACXgoM,EAAqBr6S,UAAW,0BAAsB,GACzDo6S,GAAc,CACVroM,IACDsoM,EAAqBr6S,UAAW,gBAAiB,MACpDq6S,EAAuBD,GAAc,CACjCjoM,GAAK,yBACNkoM,GACIA,EArE8B,CAsEvChwL,IAQEmwL,GAAqD,WACrD,IAAI9yS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0yS,GAAuD,SAAU31S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DsyS,GAAgC,SAAUpyS,GAE1C,SAASoyS,IACL,OAAkB,OAAXpyS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAuD/D,OAzDA+2S,GAAaE,EAAgBpyS,GAI7BoyS,EAAe16S,UAAU26S,sBAAwB,SAAUtvS,EAAQxE,EAAQq2O,EAAmBa,GAC1Ft6O,KAAKu6O,kBAAkB3yO,EAAO4yO,eAAgBp3O,EAAQq2O,EAAmBa,GACzEt6O,KAAK45O,yBAAyBhyO,EAAQxE,EAAQq2O,IAElDw9D,EAAe16S,UAAUg+O,kBAAoB,SAAU48D,EAAY/zS,EAAQq2O,EAAmBa,GAC1F,GAAIr0I,GAAgBkxM,GAEhB,IADA,IAAIC,EAAaz6S,OAAOsD,KAAKk3S,GACpB55S,EAAI,EAAGA,EAAI65S,EAAW35S,OAAQF,IAAK,CACxC,IAAIwmJ,EAAYqzJ,EAAW75S,GACvB85S,EAAOF,EAAWpzJ,GAClBuzJ,OAAe,EACC,kBAATD,EACPC,EAAet3S,KAAK8vI,kBAAkBC,SAASsnK,EAAMj0S,GAEhC,oBAATi0S,IACZC,EAAeD,EAAKj0S,IAEpBk0S,EACA79D,EAAkB11F,GAEbu2F,GACLA,EAAqBv2F,KAKrCkzJ,EAAe16S,UAAUq9O,yBAA2B,SAAUhyO,EAAQxE,EAAQq2O,GAC1E,IAAIt1H,EAAYv8G,EAAOu8G,UACvB,GAAIA,EAAW,CACX,IAAIozL,OAAiB,EACrB,GAAgC,oBAArB3vS,EAAOu8G,UAA0B,CACxC,IAAIqzL,EAAgB5vS,EAAOu8G,UAC3BozL,EAAiBC,EAAcp0S,QAG/Bm0S,EAAiB3vS,EAAOu8G,UAEE,kBAAnBozL,EACP99D,EAAkB89D,GAEbl6S,MAAMC,QAAQi6S,IACnBA,EAAeh5S,SAAQ,SAAUk2P,GAC7Bhb,EAAkBgb,QAKlCuiD,GAAc,CACVpoM,GAAU,sBACXqoM,EAAe16S,UAAW,yBAAqB,GAClD06S,EAAiBD,GAAc,CAC3BtoM,GAAK,mBACNuoM,GACIA,EA1DwB,CA2DjCrwL,IAQE6wL,GAAqD,WACrD,IAAIxzS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDozS,GAAuD,SAAUr2S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DgzS,GAAoC,SAAU9yS,GAE9C,SAAS8yS,IACL,OAAkB,OAAX9yS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAgC/D,OAlCAy3S,GAAaE,EAAoB9yS,GAIjC8yS,EAAmBp7S,UAAUggP,aAAe,SAAUphJ,GAClDn7F,KAAK43S,gBAAkBz8M,EACvB,IAAI/zF,EAAQ,CACR3H,KAAMktH,GAAOsE,2BACbrnH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCuwS,EAAmBp7S,UAAU8/O,eAAiB,WAC1Cr8O,KAAK43S,gBAAkB,KACvB,IAAIxwS,EAAQ,CACR3H,KAAMktH,GAAOsE,2BACbrnH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCuwS,EAAmBp7S,UAAUg5O,UAAY,SAAU7tO,GAC/C,QAAS1H,KAAK43S,iBAAmB53S,KAAK43S,gBAAgB72S,QAAQ2G,IAAW,GAE7EgwS,GAAc,CACV9oM,GAAU,cACX+oM,EAAmBp7S,UAAW,iBAAa,GAC9Cm7S,GAAc,CACV9oM,GAAU,YACX+oM,EAAmBp7S,UAAW,eAAW,GAC5Co7S,EAAqBD,GAAc,CAC/BhpM,GAAK,uBACNipM,GACIA,EAnC4B,CAoCrC/wL,IAQEixL,GAAqD,WACrD,IAAI5zS,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwzS,GAAuD,SAAUz2S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DozS,GAAwC,SAAUlzS,GAElD,SAASkzS,IACL,IAAIh4S,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAKhE,OAJAD,EAAMi4S,iBAAmB,GACzBj4S,EAAMk4S,kBAAoB,GAC1Bl4S,EAAMy7G,QAAS,EACfz7G,EAAMm4S,qBAAuB,EACtBn4S,EAkFX,OAzFA83S,GAAaE,EAAwBlzS,GASrCkzS,EAAuBx7S,UAAUwiJ,cAAgB,WAC7C,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GAAK,OAAOtE,EAAMmoM,YAAc7jM,EAAE6jM,gBAElF6vG,EAAuBx7S,UAAUkgO,SAAW,WACxC,OAAOz8N,KAAKw7G,QAEhBu8L,EAAuBx7S,UAAUovB,MAAQ,WACjC3rB,KAAKw7G,QAGLx7G,KAAK8vG,mBAAmBw9G,iCAMxBttN,KAAK8vG,mBAAmB6Q,gBAG5B3gH,KAAKm4S,iCACLn4S,KAAKw7G,QAAS,IAElBu8L,EAAuBx7S,UAAU0nI,OAAS,WACjCjkI,KAAKw7G,SAGVx7G,KAAKo4S,QACLp4S,KAAKw7G,QAAS,IAElBu8L,EAAuBx7S,UAAUysG,kBAAoB,SAAU79F,GACvDnL,KAAKw7G,OACLx7G,KAAKg4S,iBAAiB14S,KAAK6L,GAG3BA,KAGR4sS,EAAuBx7S,UAAU87S,mBAAqB,SAAUltS,GACxDnL,KAAKw7G,OACLx7G,KAAKi4S,kBAAkB34S,KAAK6L,GAG5BA,KAGR4sS,EAAuBx7S,UAAU47S,+BAAiC,WAC9D,IAAIp4S,EAAQC,KAGZA,KAAKk4S,uBACL,IAAII,EAA2Bt4S,KAAKk4S,qBACpCl4S,KAAKkoM,YAAYm6E,oBAAmB,GACpCriR,KAAKi4S,kBAAkB34S,MAAK,WAEpBS,EAAMm4S,uBAAyBI,GAC/Bv4S,EAAMmoM,YAAYm6E,oBAAmB,OAIjD01B,EAAuBx7S,UAAU67S,MAAQ,WACrC,IAAIG,EAAWv4S,KAAKg4S,iBACpBh4S,KAAKg4S,iBAAmB,GACxB,IAAIQ,EAAYx4S,KAAKi4S,kBACrBj4S,KAAKi4S,kBAAoB,GACD,IAApBM,EAAS96S,QAAqC,IAArB+6S,EAAU/6S,SAGvC8N,OAAOE,YAAW,WAAc,OAAO8sS,EAASh6S,SAAQ,SAAU4M,GAAQ,OAAOA,SAAe,GAChGI,OAAOE,YAAW,WAAc,OAAO+sS,EAAUj6S,SAAQ,SAAU4M,GAAQ,OAAOA,SAAe,OAErG2sS,GAAc,CACVlpM,GAAU,uBACXmpM,EAAuBx7S,UAAW,0BAAsB,GAC3Du7S,GAAc,CACVxpM,IACDypM,EAAuBx7S,UAAW,gBAAiB,MACtDw7S,EAAyBD,GAAc,CACnCppM,GAAK,2BACNqpM,GACIA,EA1FgC,CA2FzCnxL,IAQE6xL,GAAqD,WACrD,IAAIx0S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDo0S,GAAuD,SAAUr3S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dg0S,GAAqC,SAAU9zS,GAE/C,SAAS8zS,IACL,OAAkB,OAAX9zS,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA6F/D,IAAI44S,EAWJ,OA1GAH,GAAaE,EAAqB9zS,GAIlC+zS,EAAwBD,EACxBA,EAAoBp8S,UAAU29I,uBAAyB,SAAU7+C,GAC7D,IAAIt7F,EAAQC,KACRwoI,EAAmB,GACnBqwK,EAAgB74S,KAAK8vG,mBAAmBuI,aACxCygM,EAAuB94S,KAAK8vG,mBAAmBiyG,yBAenD,OAdI82F,GAAiBC,IACjB71S,QAAQkD,KAAK,kIACb2yS,GAAuB,GAIvBA,EACAz9M,EAAgB98F,SAAQ,SAAUw6S,EAAa75S,GAC3CspI,EAAiBlpI,KAAKS,EAAMi5S,yBAAyBD,EAAa75S,OAItEspI,EAAiBlpI,KAAKU,KAAKg5S,4BAExBxwK,GAGXmwK,EAAoBp8S,UAAUy8S,yBAA2B,SAAUD,EAAa75S,GAE5E,IAEI4jG,EAFAm2M,EAAoBj5S,KAAKk5S,sBAAsBH,GAI/Cj2M,EADAi2M,EACQ3nM,GAAUmB,qBAAuB,IAAMwmM,EAAY1hM,QAGnDuhM,EAAsBO,4BAElC,IAAIC,EAAiBp5S,KAAK8vG,mBAAmBm6G,wBAK7C,GAJApjH,GAAUoyM,EAAmBG,GAC7BH,EAAoBj5S,KAAKw3H,cAAcxM,aAAaiuL,GACpDA,EAAkBn2M,MAAQA,GAErB9iG,KAAK8vG,mBAAmBuI,aAAc,CAGvC,IAAIghM,EAAuB14M,EAAQs4M,EAAkBv+P,QAAUimD,EAAQs4M,EAAkBzrK,cAAgB7sC,EAAQs4M,EAAkBniC,mBAC/HuiC,IACAJ,EAAkB1oN,QAAS,GAI/BrxF,GAASA,EAAQ,IACjB+5S,EAAkB9+C,yBAA0B,GAEhD,IAAIjlH,EAAS,IAAInhC,GAAOklM,EAAmB,KAAMn2M,GAAO,GAExD,OADA9iG,KAAKqpG,QAAQ6B,WAAWgqC,GACjBA,GAEXyjK,EAAoBp8S,UAAU28S,sBAAwB,SAAUH,GAC5D,IAAIO,EAAUt5S,KAAK8vG,mBAAmBm6G,wBAClC35E,EAAiBtwI,KAAK8vG,mBAAmBygC,oBACzCjzG,EAAM,CACNmvF,WAAY6jB,EAAe,QAAS,UAEpCipK,EAAmCD,IAClCA,EAAQ19I,cAAgB09I,EAAQE,uBAAyBF,EAAQG,sBAOtE,GALKF,IACDj8Q,EAAIs+H,aAAe,uBAInBm9I,EAAa,CACb,IAAInxS,EAASmxS,EAAYl8L,YACzB50G,GAAOq1B,EAAK,CAERmvF,WAAYzsH,KAAKm/I,iBAAiB5P,wBAAwBwpK,EAAa,UACvElpK,kBAAmBjoI,EAAOioI,oBAE1BjoI,EAAOg0J,cACP3zJ,GAAOq1B,EAAK,CACRuuK,mBAAoB,CAChBgsB,cAAejwN,EAAOg0J,aACtBk8D,oBAAqBlwN,EAAOikM,sBAIxCvuK,EAAI25E,aAAe8hM,EAAY/7L,gBAG/B1/E,EAAI25E,cAAe,EAEvB,OAAO35E,GAGXq7Q,EAAoBQ,4BAA8B/nM,GAAUmB,qBAC5DmmM,GAAc,CACV9pM,GAAU,qBACX+pM,EAAoBp8S,UAAW,wBAAoB,GACtDm8S,GAAc,CACV9pM,GAAU,kBACX+pM,EAAoBp8S,UAAW,qBAAiB,GACnDo8S,EAAsBC,EAAwBF,GAAc,CACxDhqM,GAAK,wBACNiqM,GACIA,EA3G6B,CA4GtC/xL,IAQE8yL,GAAqD,WACrD,IAAIz1S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDq1S,GAAuD,SAAUt4S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Di1S,GAAiC,SAAU/0S,GAE3C,SAAS+0S,IACL,IAAI75S,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAMhE,OALAD,EAAMquO,YAAc,EACpBruO,EAAM85S,qBAAuB,EAC7B95S,EAAM+5S,wBAA0B,EAChC/5S,EAAMuuO,YAAc,EACpBvuO,EAAMg6S,eAAiB,EAChBh6S,EAgSX,OAxSA25S,GAAaE,EAAiB/0S,GAU9B+0S,EAAgBr9S,UAAUwiJ,cAAgB,WACtC/+I,KAAKw7G,OAASx7G,KAAK8vG,mBAAmB48G,eACtC1sN,KAAKspN,kBAAoBtpN,KAAK8vG,mBAAmBs5G,sBACjDppN,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2B,oBAAqBtuH,KAAKioO,eAAex9N,KAAKzK,OAChGA,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoB,qBAAsB9vG,KAAKg6S,4BAA4BvvS,KAAKzK,OAC7GA,KAAKioO,kBAET2xE,EAAgBr9S,UAAUyyP,sBAAwB,SAAUirD,EAAYC,EAAUC,EAAiBC,GAC/F,IAAI98Q,EAAMt9B,KAAKk4I,SAAS82G,sBAAsBirD,EAAYC,EAAUl6S,KAAKy/I,kBAAmBz/I,KAAK2/I,kBAIjG,OAHIriH,GACAt9B,KAAKq6S,iBAEF/8Q,GAEXs8Q,EAAgBr9S,UAAU0rO,eAAiB,SAAUqyE,GACjDt6S,KAAKq6S,iBACL,IAAIE,EAAyB,CACzB96S,KAAMktH,GAAOiE,yBACbk3H,UAASwyD,GAAoBA,EAAkBxyD,QAC/C34D,UAASmrH,GAAoBA,EAAkBnrH,QAC/C44D,UAASuyD,GAAoBA,EAAkBvyD,QAC/CF,mBAAkByyD,GAAoBA,EAAkBzyD,iBACxDj+O,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAc8tS,IAEpCX,EAAgBr9S,UAAUy9S,4BAA8B,WACpDh6S,KAAKq6S,iBACL,IAAIE,EAAyB,CACzB96S,KAAMktH,GAAOiE,yBACbk3H,SAAS,EACT34D,SAAS,EACT44D,SAAS,EAGTF,kBAAkB,EAClBj+O,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAc8tS,IAEpCX,EAAgBr9S,UAAUukS,SAAW,SAAUnnM,GAC3C,GAAK35F,KAAKw7G,QAAUx7G,KAAKouO,cAAgBz0I,EAAzC,CAGA35F,KAAKouO,YAAcz0I,EACnB,IAAIvyF,EAAQ,CACR3H,KAAMktH,GAAO2B,oBACbw5H,SAAS,EACTD,kBAAkB,EAClB14D,SAAS,EACT44D,SAAS,EACTn+O,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKioO,eAAe7gO,KAExBwyS,EAAgBr9S,UAAUgyO,eAAiB,WACvC,OAAOvuO,KAAKsuO,aAEhBsrE,EAAgBr9S,UAAUujJ,OAAS,SAAU5gJ,GACzC,OAAOc,KAAKk4I,SAAS4H,OAAO5gJ,IAEhC06S,EAAgBr9S,UAAUoyO,WAAa,SAAU3lL,GAC7C,OAAOhpD,KAAKk4I,SAASy2F,WAAW3lL,IAEpC4wP,EAAgBr9S,UAAU8xP,mBAAqB,SAAU79D,GACrD,OAAOxwL,KAAKk4I,SAASm2G,mBAAmB79D,IAE5CopH,EAAgBr9S,UAAU8jJ,qBAAuB,WAC7C,OAAI1/C,EAAQ3gG,KAAKw6S,eAAiB75M,EAAQ3gG,KAAKy6S,iBACpC,EAEJvlS,KAAKuM,IAAIzhB,KAAKy6S,gBAAgBv6J,OAASlgJ,KAAKy6S,gBAAgBx6J,UAAYjgJ,KAAKw6S,aAAat6J,OAAQ,IAE7G05J,EAAgBr9S,UAAUoxP,yBAA2B,WACjD,IAAIC,EAAiB5tP,KAAKw6S,aAAex6S,KAAKw6S,aAAat6J,OAAS,EAChE2tG,EAAgB7tP,KAAKy6S,gBAAkBz6S,KAAKy6S,gBAAgBv6J,OAASlgJ,KAAKy6S,gBAAgBx6J,UAAY,EAC1G,MAAO,CAAE2tG,eAAgBA,EAAgBC,cAAeA,IAE5D+rD,EAAgBr9S,UAAUozP,aAAe,SAAU5kP,GAC/C,IAAK/K,KAAKk4I,SAASy3G,aAAa5kP,GAC5B,OAAO,EAEX,IAAI2vS,EAAe3vS,EAAQ60I,UAAY5/I,KAAK65S,sBAAwB9uS,EAAQ60I,UAAY5/I,KAAK85S,wBAC7F,OAAOY,GAEXd,EAAgBr9S,UAAUqqI,QAAU,WAChC,OAAO5mI,KAAKk4I,SAAStR,WAEzBgzK,EAAgBr9S,UAAU8wP,eAAiB,WACvC,OAAOrtP,KAAKk4I,SAASm1G,kBAEzBusD,EAAgBr9S,UAAU25L,4BAA8B,SAAUykH,EAAcC,GAC5E,OAAO56S,KAAKk4I,SAASg+C,4BAA4BykH,EAAcC,IAEnEhB,EAAgBr9S,UAAUuO,YAAc,SAAUpF,GAC9C,OAAO1F,KAAKk4I,SAASptI,YAAYpF,IAErCk0S,EAAgBr9S,UAAUogL,QAAU,WAChC,OAAO38K,KAAKk4I,SAASykC,WAEzBi9H,EAAgBr9S,UAAUs+S,aAAe,SAAU37S,GAC/C,IAAIo+B,EAAMt9B,KAAKk4I,SAAS2iK,aAAa37S,GAErC,OADAo+B,EAAIsiH,SAAW1gJ,EACRo+B,GAEXs8Q,EAAgBr9S,UAAUkjJ,gBAAkB,WACxC,OAAOz/I,KAAKw6S,aAAex6S,KAAKw6S,aAAa56J,UAAY,GAE7Dg6J,EAAgBr9S,UAAUojJ,eAAiB,WACvC,OAAO3/I,KAAKy6S,gBAAkBz6S,KAAKy6S,gBAAgB76J,UAAY,GAEnEg6J,EAAgBr9S,UAAUi/Q,YAAc,WACpC,OAAOx7Q,KAAKk4I,SAASsjI,eAEzBo+B,EAAgBr9S,UAAUu+S,gBAAkB,SAAU57S,GAClD,OAAOgW,KAAKkG,MAAMlc,EAAQc,KAAK+6S,WAEnCnB,EAAgBr9S,UAAUs/Q,kBAAoB,SAAU38Q,GACpD,GAAKc,KAAKw7G,OAAV,CAGA,IAAIw/L,EAAah7S,KAAK86S,gBAAgB57S,GACtCc,KAAK8gS,SAASka,KAElBpB,EAAgBr9S,UAAUo5S,YAAc,SAAUn9Q,GAC9C,IAAKx4B,KAAKw7G,OACN,OAAO,EAEX,IAAIy/L,EAAUj7S,KAAK86S,gBAAgBtiR,EAAIonH,UACvC,OAAOq7J,IAAYj7S,KAAKouO,aAE5BwrE,EAAgBr9S,UAAUsjS,gBAAkB,WACxC,OAAO7/R,KAAKk4I,SAAS0mJ,uBAEzBgb,EAAgBr9S,UAAU6mO,eAAiB,WACvC,OAAOpjO,KAAKouO,aAEhBwrE,EAAgBr9S,UAAU+jS,aAAe,WACrCtgS,KAAK8gS,SAAS9gS,KAAKouO,YAAc,IAErCwrE,EAAgBr9S,UAAUikS,iBAAmB,WACzCxgS,KAAK8gS,SAAS9gS,KAAKouO,YAAc,IAErCwrE,EAAgBr9S,UAAUmkS,cAAgB,WACtC1gS,KAAK8gS,SAAS,IAElB8Y,EAAgBr9S,UAAUqkS,aAAe,WACrC,IAAItjI,EAAWt9J,KAAKk4I,SAASsjI,cACzB0/B,EAAWhmS,KAAKkG,MAAMkiJ,EAAWt9J,KAAK+6S,UAC1C/6S,KAAK8gS,SAASoa,IAElBtB,EAAgBr9S,UAAUwjS,YAAc,WACpC,OAAO//R,KAAK+6S,UAEhBnB,EAAgBr9S,UAAU2jS,cAAgB,WACtC,OAAOlgS,KAAKm7S,YAEhBvB,EAAgBr9S,UAAU6+S,YAAc,WAEpCp7S,KAAK+6S,SAAW/6S,KAAK8vG,mBAAmBq5G,yBACnB,MAAjBnpN,KAAK+6S,UAAoB/6S,KAAK+6S,SAAW,KACzC/6S,KAAK+6S,SAAW,MAGxBnB,EAAgBr9S,UAAU89S,eAAiB,WACnCr6S,KAAKw7G,QACLx7G,KAAKo7S,cACDp7S,KAAKspN,kBACLtpN,KAAKq7S,wBAGLr7S,KAAKs7S,gCAITt7S,KAAKu7S,2BAETv7S,KAAKw6S,aAAex6S,KAAKk4I,SAAS2iK,aAAa76S,KAAK65S,sBAChD75S,KAAKw6S,eACLx6S,KAAKw6S,aAAa56J,SAAW5/I,KAAK65S,sBAEtC75S,KAAKy6S,gBAAkBz6S,KAAKk4I,SAAS2iK,aAAa76S,KAAK85S,yBACnD95S,KAAKy6S,kBACLz6S,KAAKy6S,gBAAgB76J,SAAW5/I,KAAK85S,yBAEzC95S,KAAKw7S,eAAe/6M,EAAOzgG,KAAKw6S,cAAgBx6S,KAAKw6S,aAAat6J,OAAS,IAE/E05J,EAAgBr9S,UAAUi/S,eAAiB,SAAU9+S,GAC7CsD,KAAKsuO,cAAgB5xO,IAGzBsD,KAAKsuO,YAAc5xO,EACnBsD,KAAKq0G,aAAa5nG,cAAc,CAAEhN,KAAMktH,GAAOwE,0CAEnDyoL,EAAgBr9S,UAAUk/S,YAAc,WACpCz7S,KAAK+5S,eAAiB,EACtB/5S,KAAK65S,qBAAuB,EAC5B75S,KAAK85S,yBAA2B,EAChC95S,KAAKouO,YAAc,EACnBpuO,KAAKm7S,WAAa,GAEtBvB,EAAgBr9S,UAAU++S,6BAA+B,WAMrD,GAFAt7S,KAAK+5S,eAAiB/5S,KAAKk4I,SAASwjK,sBAEhC17S,KAAK+5S,gBAAkB,EACvB/5S,KAAKy7S,kBADT,CAIA,IAAIE,EAAqB37S,KAAK+5S,eAAiB,EAC/C/5S,KAAKm7S,WAAajmS,KAAKkG,MAAM,EAAuBpb,KAAK+6S,UAAY,EACjE/6S,KAAKouO,aAAepuO,KAAKm7S,aACzBn7S,KAAKouO,YAAcpuO,KAAKm7S,WAAa,KAEpClgK,GAAUj7I,KAAKouO,cAAgBpuO,KAAKouO,YAAc,KACnDpuO,KAAKouO,YAAc,GAEvB,IAAIwtE,EAAuB57S,KAAK+6S,SAAW/6S,KAAKouO,YAC5CytE,EAAsB77S,KAAK+6S,UAAY/6S,KAAKouO,YAAc,GAAM,EAMpE,GALIytE,EAAqBF,IACrBE,EAAqBF,GAEzB37S,KAAK65S,qBAAuB75S,KAAKk4I,SAAS4jK,6BAA6BF,GAEnEC,IAAuBF,EAEvB37S,KAAK85S,wBAA0B95S,KAAKk4I,SAASsjI,cAAgB,MAE5D,CACD,IAAIugC,EAAsB/7S,KAAKk4I,SAAS4jK,6BAA6BD,EAAqB,GAI1F77S,KAAK85S,wBAA0BiC,EAAsB,KAG7DnC,EAAgBr9S,UAAU6jS,kBAAoB,WAC1C,OAAOpgS,KAAK+5S,gBAEhBH,EAAgBr9S,UAAU8+S,sBAAwB,WAE9C,GADAr7S,KAAK+5S,eAAiB/5S,KAAKk4I,SAASsjI,cACR,IAAxBx7Q,KAAK+5S,eAAT,CAIA,IAAIiC,EAAch8S,KAAK+5S,eAAiB,EACxC/5S,KAAKm7S,WAAajmS,KAAKkG,MAAM,EAAgBpb,KAAK+6S,UAAY,EAC1D/6S,KAAKouO,aAAepuO,KAAKm7S,aACzBn7S,KAAKouO,YAAcpuO,KAAKm7S,WAAa,KAEpClgK,GAAUj7I,KAAKouO,cAAgBpuO,KAAKouO,YAAc,KACnDpuO,KAAKouO,YAAc,GAEvBpuO,KAAK65S,qBAAuB75S,KAAK+6S,SAAW/6S,KAAKouO,YACjDpuO,KAAK85S,wBAA2B95S,KAAK+6S,UAAY/6S,KAAKouO,YAAc,GAAM,EACtEpuO,KAAK85S,wBAA0BkC,IAC/Bh8S,KAAK85S,wBAA0BkC,QAd/Bh8S,KAAKy7S,eAiBb7B,EAAgBr9S,UAAUg/S,yBAA2B,WACjDv7S,KAAK+6S,SAAW/6S,KAAKk4I,SAASsjI,cAC9Bx7Q,KAAKm7S,WAAa,EAClBn7S,KAAKouO,YAAc,EACnBpuO,KAAK65S,qBAAuB,EAC5B75S,KAAK85S,wBAA0B95S,KAAKk4I,SAASsjI,cAAgB,GAEjEm+B,GAAc,CACV/qM,GAAU,aACXgrM,EAAgBr9S,UAAW,gBAAY,GAC1Co9S,GAAc,CACV/qM,GAAU,cACXgrM,EAAgBr9S,UAAW,iBAAa,GAC3Co9S,GAAc,CACV/qM,GAAU,YACXgrM,EAAgBr9S,UAAW,eAAW,GACzCo9S,GAAc,CACVrrM,IACDsrM,EAAgBr9S,UAAW,gBAAiB,MAC/Cq9S,EAAkBD,GAAc,CAC5BjrM,GAAK,oBACNkrM,GACIA,EAzSyB,CA0SlChzL,IAQEq1L,GAAqD,WACrD,IAAIh4S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD43S,GAAuD,SAAU76S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dw3S,GAA+C,SAAUt3S,GAEzD,SAASs3S,IACL,OAAkB,OAAXt3S,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAwC/D,OA1CAi8S,GAAaE,EAA+Bt3S,GAI5Cs3S,EAA8B5/S,UAAUwiJ,cAAgB,WACpD,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMqsQ,sBAAwB/nQ,EAAE+nQ,sBAChCrsQ,EAAMonH,mBAAmBpnH,EAAMs0G,aAAcsY,GAAOmE,0BAA2B/wH,EAAMq8S,oBAAoB3xS,KAAK1K,IAC9GA,EAAMonH,mBAAmBpnH,EAAMs0G,aAAcsY,GAAOqE,gCAAiCjxH,EAAMytQ,0BAA0B/iQ,KAAK1K,IAC1HA,EAAMs8S,oBAGdF,EAA8B5/S,UAAU+/S,UAAY,WAChD,OAAQt8S,KAAK8vG,mBAAmB0+G,4BAEpC2tF,EAA8B5/S,UAAUixQ,0BAA4B,WAChExtQ,KAAKq8S,iBAETF,EAA8B5/S,UAAU6/S,oBAAsB,WAC1Dp8S,KAAKq8S,iBAETF,EAA8B5/S,UAAU8/S,cAAgB,WACpD,IAAIr8S,KAAKs8S,YAAT,CAGA,IAAIr8J,EAAYjgJ,KAAK8vG,mBAAmBmnH,uBACpCkxD,EAAanoR,KAAKosQ,sBAAsBqf,yBAAyB9nI,gBACrE,GAAIwkI,EAAa,EAAG,CAChB,IAAIo0B,EAAcrnS,KAAKkG,MAAM+sQ,EAAaloI,GAC1CjgJ,KAAK8vG,mBAAmB3J,YAAY,qBAAsBo2M,MAGlEL,GAAc,CACVttM,GAAU,uBACXutM,EAA8B5/S,UAAW,0BAAsB,GAClE2/S,GAAc,CACV5tM,IACD6tM,EAA8B5/S,UAAW,gBAAiB,MAC7D4/S,EAAgCD,GAAc,CAC1CxtM,GAAK,kCACNytM,GACIA,EA3CuC,CA4ChDv1L,IAQE41L,GAAqD,WACrD,IAAIv4S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDm4S,GAAuD,SAAUp7S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D+3S,GAA4B,SAAU73S,GAEtC,SAAS63S,IACL,IAAI38S,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAM48S,aAAe,EACd58S,EAoCX,OAxCAy8S,GAAaE,EAAY73S,GAMzB63S,EAAWngT,UAAU2I,KAAO,WACxBlF,KAAKw7G,OAASx7G,KAAK8vG,mBAAmBgjH,eACtC9yN,KAAK48S,aAAe58S,KAAK8vG,mBAAmBijH,4BAEhD2pF,EAAWngT,UAAUsyL,cAAgB,WAC7B7uL,KAAK48S,cAGT58S,KAAKm3H,UAETulL,EAAWngT,UAAU46H,OAAS,WAC1Bn3H,KAAK28S,gBAETD,EAAWngT,UAAUm5K,SAAW,SAAU3qK,EAAS+3F,EAAOpmG,GAClDsD,KAAKw7G,SACDzwG,EAAQ8xS,iBAAmB78S,KAAK28S,eAChC5xS,EAAQ8xS,eAAiB78S,KAAK28S,aAC9B5xS,EAAQ+xS,YAAc,IAE1B/xS,EAAQ+xS,YAAYh6M,GAASpmG,IAGrCggT,EAAWngT,UAAU4xI,SAAW,SAAUpjI,EAAS+3F,GAC/C,GAAK9iG,KAAKw7G,QAAUzwG,EAAQ8xS,iBAAmB78S,KAAK28S,aAGpD,OAAO5xS,EAAQ+xS,YAAYh6M,IAE/B25M,GAAc,CACVnuM,IACDouM,EAAWngT,UAAW,OAAQ,MACjCmgT,EAAaD,GAAc,CACvB/tM,GAAK,eACNguM,GACIA,EAzCoB,CA0C7B91L,IAQEm2L,GAAqD,WACrD,IAAI94S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD04S,GAAuD,SAAU37S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Ds4S,GAAwC,SAAUp4S,GAElD,SAASo4S,IACL,OAAkB,OAAXp4S,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA8C/D,OAhDA+8S,GAAaE,EAAwBp4S,GAIrCo4S,EAAuB1gT,UAAU2I,KAAO,WAChClF,KAAKk4I,SAASykC,YAAcvrE,GAAUU,6BACtC9xG,KAAKs+N,mBAAqBt+N,KAAKk4I,UAEnCl4I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoC,yBAA0B/uH,KAAK4+F,mBAAmBn0F,KAAKzK,QAE7Gi9S,EAAuB1gT,UAAUqiG,mBAAqB,SAAUx3F,GAOxDA,EAAM09F,SAAWsM,GAAUoB,cAG/BxyG,KAAKk9S,kBAAkB91S,EAAMoL,KAAMpL,EAAMM,SAE7Cu1S,EAAuB1gT,UAAU2gT,kBAAoB,SAAUnyS,EAASrD,GACpE,IAAI1H,KAAK8vG,mBAAmB+0G,4BAA5B,CAIA,GAAI7kN,KAAKs+N,qBAAuBvzN,EAAQ+pL,cAAe,CACnD,IAAIqoH,EAAqBn9S,KAAK8vG,mBAAmBqjH,gCAC7CkL,EAAc,IAAInC,GAAYihF,EAAoBn9S,KAAKs+N,mBAAmBC,eAC9EF,EAAYb,cAAczyN,EAAQlI,OAAQ,CAAC6E,IAC3C1H,KAAKs+N,mBAAmB8+E,YAAY/+E,GAGxCr+N,KAAK0yL,YAAYC,iBAErBqqH,GAAc,CACVpuM,GAAU,aACXquM,EAAuB1gT,UAAW,gBAAY,GACjDygT,GAAc,CACVpuM,GAAU,gBACXquM,EAAuB1gT,UAAW,mBAAe,GACpDygT,GAAc,CACV1uM,IACD2uM,EAAuB1gT,UAAW,OAAQ,MAC7C0gT,EAAyBD,GAAc,CACnCtuM,GAAK,2BACNuuM,GACIA,EAjDgC,CAkDzCr2L,IAQEy2L,GAAqD,WACrD,IAAIp5S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDg5S,GAAuD,SAAUj8S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D44S,GAAgD,SAAUnwM,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvDowM,GAAqC,SAAU34S,GAE/C,SAAS24S,IACL,IAAIz9S,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAKhE,OADAD,EAAM09S,WAAY,EACX19S,EA8MX,OArNAs9S,GAAaG,EAAqB34S,GASlC24S,EAAoBjhT,UAAUqzG,SAAW,SAAUC,GAC/C7vG,KAAKwqG,OAASqF,EAActrG,OAAO,wBAEvCi5S,EAAoBjhT,UAAU2I,KAAO,WACjClF,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOS,mBAAoBptH,KAAK8/H,gBAAgBr1H,KAAKzK,OAChGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOU,qBAAsBrtH,KAAK8/H,gBAAgBr1H,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOW,oBAAqBttH,KAAK8/H,gBAAgBr1H,KAAKzK,OACjGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOY,0BAA2BvtH,KAAK8/H,gBAAgBr1H,KAAKzK,OACvGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOa,qBAAsBxtH,KAAK8/H,gBAAgBr1H,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO8D,kBAAmBzwH,KAAK09S,gBAAgBjzS,KAAKzK,QAGnGw9S,EAAoBjhT,UAAUohT,UAAY,SAAUj4S,GAGhD,IAAI1F,KAAKy9S,UAAT,CAIA,IAAIG,EAAa59S,KAAK8vG,mBAAmBk/G,kBACrC4uF,GACAA,EAAWr/S,SAAQ,SAAUs/S,GACzB,GAAIA,EAAiBj0S,IAAK,CACtB,IAAIk0S,EAAqBD,EAAiBj0S,IAAI6kR,0BAC9C/oR,EAASo4S,SAOzBN,EAAoBjhT,UAAUwhT,QAAU,SAAUr4S,GAC9C1F,KAAKy9S,WAAY,EACjB/3S,IACA1F,KAAKy9S,WAAY,GAErBD,EAAoBjhT,UAAUujI,gBAAkB,SAAU14H,GACtDpH,KAAK29S,WAAU,SAAUjvB,GACrBA,EAAoBsvB,cAAc52S,OAG1Co2S,EAAoBjhT,UAAUmhT,gBAAkB,SAAUt2S,GAC9B,eAApBA,EAAMwgI,WAGV5nI,KAAK29S,WAAU,SAAUjvB,GACrBA,EAAoBuvB,cAAc72S,OAG1Co2S,EAAoBjhT,UAAU0hT,cAAgB,SAAU72S,GACpD,IAAIrH,EAAQC,KACZA,KAAK+9S,SAAQ,WACT,IAAI71G,EAAcnoM,EAAMooM,mBAAmBC,wBAC3CF,EAAYylC,mBAAmBotC,4BAA4B3zQ,EAAM4wE,UAGzEwlO,EAAoBjhT,UAAU2hT,iBAAmB,SAAU92S,GACvD,IAAIoH,EAAS,GASb,OARIpH,EAAM+zF,QACN/zF,EAAM+zF,QAAQ58F,SAAQ,SAAUmJ,GAC5B8G,EAAOlP,KAAKoI,MAGXN,EAAMM,QACX8G,EAAOlP,KAAK8H,EAAMM,QAEf8G,GAEXgvS,EAAoBjhT,UAAU4hT,aAAe,SAAU/2S,GACnD,IAAIoH,EAAS,GASb,OARIpH,EAAM+zF,QACN/zF,EAAM+zF,QAAQ58F,SAAQ,SAAUmJ,GAC5B8G,EAAOlP,KAAKoI,EAAOs1G,eAGlB51G,EAAMM,QACX8G,EAAOlP,KAAK8H,EAAMM,OAAOs1G,YAEtBxuG,GAEXgvS,EAAoBjhT,UAAUyhT,cAAgB,SAAU52S,GACpD,IAAIrH,EAAQC,KACZA,KAAK+9S,SAAQ,WACT,OAAQ32S,EAAM3H,MACV,KAAKktH,GAAOS,mBACZ,KAAKT,GAAOU,qBACZ,KAAKV,GAAOW,oBACZ,KAAKX,GAAOa,qBACR,IAAI4wL,EAAWh3S,EACfrH,EAAMs+S,mBAAmBD,GACzB,MACJ,KAAKzxL,GAAOY,0BACR,IAAI+wL,EAAmBl3S,EACvBrH,EAAMw+S,wBAAwBD,GAC9B,MACJ,KAAK3xL,GAAOM,2BAGRhqH,QAAQkD,KAAK,sHAEb,WAIhBq3S,EAAoBjhT,UAAUgiT,wBAA0B,SAAUD,GAE9D,IAAIE,EAAoBF,EAAiB15K,YACrC65K,EAAmB,KACvB,GAAID,EAAmB,CACnB,IAAIx+L,EAAUw+L,EAAkBx9L,aAChCy9L,EAAmBz+S,KAAKm/I,iBAAiB5+B,uBAAuBP,GAEhEw+L,IAAsBC,IAG1Bz+S,KAAKwqG,OAAO3sF,IAAI,8BAAgCygS,EAAmB,eAAiBE,EAAkBz8L,cACtG/hH,KAAKm/I,iBAAiBrM,qBAAqB2rK,EAAkBD,EAAkBz8L,aAAc,wBAEjGy7L,EAAoBjhT,UAAU8hT,mBAAqB,SAAUD,GACzD,IAAIr+S,EAAQC,KAGR0+S,EAAeN,EAAS12S,OACxBmwQ,EAAc,KAMlB,GALI6mC,IACA7mC,EAAc73Q,KAAKm/I,iBAAiB/kB,iBAAiBskL,EAAa1hM,cAIlE0hM,GAAiB7mC,EAArB,CAKA,IAAI8mC,EAAgB3+S,KAAKk+S,iBAAiBE,GAC1C,OAAQA,EAAS3+S,MACb,KAAKktH,GAAOS,mBAKJ,IAAIwxL,EAAaR,EACbS,EAAcT,EAASv0S,UAAU++H,iBACjCk2K,EAAeD,EAAYp3S,KAAI,SAAU2L,GAAK,MAAO,CAAG0vF,MAAO1vF,EAAE0vF,UACrE9iG,KAAKm/I,iBAAiBj0B,iBAAiB,CAAEl+F,MAAO8xR,EAAcl1K,YAAY,GAAQ,sBAClF5pI,KAAKwqG,OAAO3sF,IAAI,8BAAgCugS,EAAS3+S,KAAO,cAAgBm/S,EAAWx6M,SAE/F,MACJ,KAAKuoB,GAAOU,qBAKJ,IAAI0xL,EAAeX,EACfS,EAAcT,EAASv0S,UAAU++H,iBACjCk2K,EAAeD,EAAYp3S,KAAI,SAAU2L,GAAK,MAAO,CAAG0vF,MAAO1vF,EAAE0vF,MAAO+R,KAAMzhG,EAAEyhG,SACpF70G,KAAKm/I,iBAAiBj0B,iBAAiB,CAAEl+F,MAAO8xR,GAAgB,sBAChE9+S,KAAKwqG,OAAO3sF,IAAI,8BAAgCugS,EAAS3+S,KAAO,cAAgBs/S,EAAahqM,SAEjG,MACJ,KAAK4X,GAAOW,oBAEJ,IAAI0xL,EAAcZ,EACdS,EAAcT,EAASv0S,UAAU++H,iBACjCk2K,EAAeD,EAAYp3S,KAAI,SAAU2L,GAAK,MAAO,CAAG0vF,MAAO1vF,EAAE0vF,MAAOkS,OAAQ5hG,EAAE4hG,WACtFh1G,KAAKm/I,iBAAiBj0B,iBAAiB,CAAEl+F,MAAO8xR,GAAgB,sBAChE9+S,KAAKwqG,OAAO3sF,IAAI,8BAAgCugS,EAAS3+S,KAAO,aAAeu/S,EAAYhqM,QAE/F,MACJ,KAAK2X,GAAOa,qBACR,IAAIyxL,EAAiBb,EACrBO,EAAcpgT,SAAQ,SAAUmJ,GAC5B3H,EAAMyqG,OAAO3sF,IAAI,8BAAgCugS,EAAS3+S,KAAO,kBAAoBiI,EAAOw1G,kBAC5F,IAAIyjB,EAAe,CAAC,CAAElkI,IAAKiL,EAAOs1G,WAAYse,SAAU5zH,EAAOw1G,mBAC/Dn9G,EAAMo/I,iBAAiBze,gBAAgBC,GAAc,EAAOs+K,EAAexjL,SAAU,yBAEzF,MAER,IAAIysE,EAAcloM,KAAKmoM,mBAAmBC,wBACtC7+C,EAA0B2+C,EAAY3+C,0BACtC0lE,EAAejvN,KAAK8vG,mBAAmBk/G,kBACvCC,GACAA,EAAa1wN,SAAQ,SAAU2gT,GACvBA,EAAKt1S,KACLs1S,EAAKt1S,IAAI+nR,4BAA4BpoI,QAKrD+zJ,GAAc,CACV1uM,GAAU,qBACX4uM,EAAoBjhT,UAAW,wBAAoB,GACtD+gT,GAAc,CACV1uM,GAAU,uBACX4uM,EAAoBjhT,UAAW,0BAAsB,GACxD+gT,GAAc,CACVC,GAAU,EAAGtuM,GAAU,mBACxBuuM,EAAoBjhT,UAAW,WAAY,MAC9C+gT,GAAc,CACVhvM,IACDkvM,EAAoBjhT,UAAW,OAAQ,MAC1CihT,EAAsBF,GAAc,CAChC5uM,GAAK,wBACN8uM,GACIA,EAtN6B,CAuNtC52L,IAQEu4L,GAAqD,WACrD,IAAIl7S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD86S,GAAuD,SAAU/9S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D06S,GAAkC,SAAUx6S,GAE5C,SAASw6S,IACL,OAAkB,OAAXx6S,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAwD/D,OA1DAm/S,GAAaE,EAAkBx6S,GAI/Bw6S,EAAiB9iT,UAAUmgM,cAAgB,SAAUz1L,EAAcg1L,EAAqBO,EAAwB13F,GAC5G,GAA2B,MAAvBm3F,EACA,MAAO,CACHn5L,UAAW,KACX05L,uBAAwBA,EACxB13F,OAAQA,EACRu2F,mBAAoB,MAG5B,IAAI18L,EAAWqB,KAAKi+L,0BAA0Bd,SAASl2L,GACvD,OAAItI,GAAYA,EAAS2gT,gBACd,CACH9iH,uBAAwBA,EACxB15L,UAAWnE,EAAS2gT,gBAAgBrjH,GACpCn3F,OAAQA,EACRu2F,mBAAoB,MAGrB,MAEXgkH,EAAiB9iT,UAAUgjT,0BAA4B,SAAU75S,GAC7D,IAAI85S,EAAyB,WACzB,SAASA,KAgBT,OAdAA,EAAQjjT,UAAUg8F,QAAU,SAAUn1F,GAClC,OAAO,GAEXo8S,EAAQjjT,UAAU8J,OAAS,WACvB,IAAIo5S,EAAiB/5S,EAAS1F,KAAKoD,QAC/B3D,SAAcggT,EAClB,MAAa,WAAThgT,GAA8B,WAATA,GAA8B,YAATA,EACnCuoJ,GAAa,SAAWy3J,EAAiB,WAE7CA,GAEXD,EAAQjjT,UAAU2I,KAAO,SAAU9B,GAC/BpD,KAAKoD,OAASA,GAEXo8S,EAjBiB,GAmB5B,OAAOA,GAEXH,EAAiB9iT,UAAUggM,wBAA0B,SAAUmjH,GAC3D,QAAKA,IAGEA,EAAUnjT,WAAa,WAAYmjT,EAAUnjT,YAExD6iT,GAAc,CACVxwM,GAAU,8BACXywM,EAAiB9iT,UAAW,iCAA6B,GAC5D8iT,EAAmBD,GAAc,CAC7B1wM,GAAK,qBACN2wM,GACIA,EA3D0B,CA4DnCz4L,IAQE+4L,GAAqD,WACrD,IAAI17S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDs7S,GAAuD,SAAUv+S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dk7S,GAA2C,SAAUh7S,GAErD,SAASg7S,IACL,OAAkB,OAAXh7S,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAuG/D,OAzGA2/S,GAAaE,EAA2Bh7S,GAIxCg7S,EAA0BtjT,UAAUwiJ,cAAgB,WAChD/+I,KAAK8/S,kBAAoB,CACrBC,cAAe,CACX5hH,oBAAqB,CAAC,UAAW,WACjCC,mBAAoB,CAAC,mBAAoB,sBAAuB,sBAEpE4hH,mBAAoB,CAChB7hH,oBAAqB,GACrBC,mBAAoB,CAAC,YAEzByc,gBAAiB,CACb1c,oBAAqB,GACrBC,mBAAoB,CAAC,YAEzB6hH,qBAAsB,CAClB9hH,oBAAqB,GACrBC,mBAAoB,IAExB8hH,oBAAqB,CACjB/hH,oBAAqB,GACrBC,mBAAoB,IAExB+hH,wBAAyB,CACrBhiH,oBAAqB,GACrBC,mBAAoB,IAExBgiH,uBAAwB,CACpBjiH,oBAAqB,GACrBC,mBAAoB,IAExBiiH,wBAAyB,CACrBliH,oBAAqB,CAAC,wBACtBC,mBAAoB,CAAC,qBAEzBkiH,+BAAgC,CAC5BniH,oBAAqB,GACrBC,mBAAoB,IAExBxiC,aAAc,CACVuiC,oBAAqB,GACrBC,mBAAoB,CAAC,UAAW,oBAChCkhH,gBAAiBt/S,KAAKs8L,iBAAiBijH,0BAA0B90S,KAAKzK,KAAKs8L,mBAE/EnkF,WAAY,CACRgmF,oBAAqB,CAAC,YACtBC,mBAAoB,CAAC,UAAW,sBAAuB,mBAAoB,mBAAoB,UAAW,WAAY,qBAE1Hy5B,cAAe,CACX15B,oBAAqB,GACrBC,mBAAoB,CAAC,oBACrBkhH,gBAAiBt/S,KAAKs8L,iBAAiBijH,0BAA0B90S,KAAKzK,KAAKs8L,mBAE/EikH,sBAAuB,CACnBpiH,oBAAqB,GACrBC,mBAAoB,CAAC,UAAW,oBAChCkhH,gBAAiBt/S,KAAKs8L,iBAAiBijH,0BAA0B90S,KAAKzK,KAAKs8L,mBAE/EkkH,sBAAuB,CACnBriH,oBAAqB,GACrBC,mBAAoB,CAAC,UAAW,oBAChCkhH,gBAAiBt/S,KAAKs8L,iBAAiBijH,0BAA0B90S,KAAKzK,KAAKs8L,mBAE/EmkH,iBAAkB,CACdtiH,oBAAqB,GACrBC,mBAAoB,CAAC,oBACrBkhH,gBAAiBt/S,KAAKs8L,iBAAiBijH,0BAA0B90S,KAAKzK,KAAKs8L,mBAE/E/rG,OAAQ,CACJ4tG,oBAAqB,CAAC,iBAAkB,iBAAkB,WAAY,YACtEC,mBAAoB,CAAC,mBAAoB,kBAAmB,mBAAoB,4BAEpFzlG,gBAAiB,CACbwlG,oBAAqB,CAAC,iBAAkB,iBAAkB,WAAY,YACtEC,mBAAoB,CAAC,mBAAoB,kBAAmB,mBAAoB,4BAEpFsiH,YAAa,CACTviH,oBAAqB,GACrBC,mBAAoB,CAAC,qBAEzB5hG,UAAW,CACP2hG,oBAAqB,GACrBC,mBAAoB,CAAC,UAAW,qBAEpCuiH,iBAAkB,CACdxiH,oBAAqB,GACrBC,mBAAoB,MAIhCyhH,EAA0BtjT,UAAU4gM,SAAW,SAAUv8L,GACrD,OAAOZ,KAAK8/S,kBAAkBl/S,IAElCg/S,GAAc,CACVhxM,GAAU,qBACXixM,EAA0BtjT,UAAW,wBAAoB,GAC5DqjT,GAAc,CACVtxM,IACDuxM,EAA0BtjT,UAAW,gBAAiB,MACzDsjT,EAA4BD,GAAc,CACtClxM,GAAK,8BACNmxM,GACIA,EA1GmC,CA2G5Cj5L,IAQEg6L,GAAuD,SAAUv/S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAO5Dk8S,GAAuB,WACvB,SAASA,KAmIT,OAjIAA,EAAMtkT,UAAU4wR,iBAAmB,SAAUc,GACzCjuR,KAAKiuR,aAAeA,GAExB4yB,EAAMtkT,UAAUwiJ,cAAgB,WAC5B/+I,KAAK0lO,kBAAoB1lO,KAAK8vG,mBAAmBo/G,iBAC7ClvN,KAAK8vG,mBAAmBiI,sBACxB/3G,KAAKs+N,mBAAqBt+N,KAAKk4I,UAE/Bl4I,KAAK8vG,mBAAmBsuG,yBACxBp+M,KAAK4qO,mBAAqB5qO,KAAKk4I,WAGvC0oK,GAAc,CACVhyM,GAAU,0BACXiyM,EAAMtkT,UAAW,6BAAyB,GAC7CqkT,GAAc,CACVhyM,GAAU,oBACXiyM,EAAMtkT,UAAW,uBAAmB,GACvCqkT,GAAc,CACVhyM,GAAU,YACXiyM,EAAMtkT,UAAW,eAAW,GAC/BqkT,GAAc,CACVhyM,GAAU,cACXiyM,EAAMtkT,UAAW,iBAAa,GACjCqkT,GAAc,CACVhyM,GAAU,YACXiyM,EAAMtkT,UAAW,eAAW,GAC/BqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,sBACXiyM,EAAMtkT,UAAW,yBAAqB,GACzCqkT,GAAc,CACVhyM,GAAU,gBACXiyM,EAAMtkT,UAAW,mBAAe,GACnCqkT,GAAc,CACVhyM,GAAU,aACXiyM,EAAMtkT,UAAW,gBAAY,GAChCqkT,GAAc,CACVhyM,GAAU,oBACXiyM,EAAMtkT,UAAW,uBAAmB,GACvCqkT,GAAc,CACVhyM,GAAU,iBACXiyM,EAAMtkT,UAAW,oBAAgB,GACpCqkT,GAAc,CACVhyM,GAAU,iBACXiyM,EAAMtkT,UAAW,oBAAgB,GACpCqkT,GAAc,CACVhyM,GAAU,qBACXiyM,EAAMtkT,UAAW,wBAAoB,GACxCqkT,GAAc,CACVhyM,GAAU,4BACXiyM,EAAMtkT,UAAW,+BAA2B,GAC/CqkT,GAAc,CACVhyM,GAAU,2BACXiyM,EAAMtkT,UAAW,8BAA0B,GAC9CqkT,GAAc,CACV9xM,GAAS,oBACV+xM,EAAMtkT,UAAW,uBAAmB,GACvCqkT,GAAc,CACVhyM,GAAU,oBACXiyM,EAAMtkT,UAAW,uBAAmB,GACvCqkT,GAAc,CACV9xM,GAAS,uBACV+xM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,iBACXiyM,EAAMtkT,UAAW,oBAAgB,GACpCqkT,GAAc,CACVhyM,GAAU,0BACXiyM,EAAMtkT,UAAW,6BAAyB,GAC7CqkT,GAAc,CACVhyM,GAAU,mBACXiyM,EAAMtkT,UAAW,sBAAkB,GACtCqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,yBACXiyM,EAAMtkT,UAAW,4BAAwB,GAC5CqkT,GAAc,CACVhyM,GAAU,0BACXiyM,EAAMtkT,UAAW,iBAAa,GACjCqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,mBACXiyM,EAAMtkT,UAAW,sBAAkB,GACtCqkT,GAAc,CACVhyM,GAAU,kBACXiyM,EAAMtkT,UAAW,qBAAiB,GACrCqkT,GAAc,CACVhyM,GAAU,8BACXiyM,EAAMtkT,UAAW,iCAA6B,GACjDqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVhyM,GAAU,sBACXiyM,EAAMtkT,UAAW,yBAAqB,GACzCqkT,GAAc,CACVhyM,GAAU,qBACXiyM,EAAMtkT,UAAW,wBAAoB,GACxCqkT,GAAc,CACVhyM,GAAU,wBACXiyM,EAAMtkT,UAAW,2BAAuB,GAC3CqkT,GAAc,CACV9xM,GAAS,2BACV+xM,EAAMtkT,UAAW,8BAA0B,GAC9CqkT,GAAc,CACVhyM,GAAU,0BACXiyM,EAAMtkT,UAAW,6BAAyB,GAC7CqkT,GAAc,CACVhyM,GAAU,aACXiyM,EAAMtkT,UAAW,gBAAY,GAChCqkT,GAAc,CACVhyM,GAAU,uBACXiyM,EAAMtkT,UAAW,0BAAsB,GAC1CqkT,GAAc,CACVtyM,IACDuyM,EAAMtkT,UAAW,gBAAiB,MACrCskT,EAAQD,GAAc,CAClBlyM,GAAK,UACNmyM,GACIA,EApIe,GA6ItBC,GAAqD,WACrD,IAAI78S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDy8S,GAAuD,SAAU1/S,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dq8S,GAAgB,EAChBC,GAAiB,EACjBC,GAAmB,EACnBC,GAAmB,EACnBC,GAAmB,CAEnB,kBAAmB,CACfrzJ,aAAc,GACdszJ,mBAAoB,GACpBC,eAAiC,EAAjBL,GAChBhhK,UAAW,GACX64E,oBAAqB,KAEzB,oBAAqB,CACjB/qE,aAA8B,EAAhBizJ,GACdK,mBAAoB,GACpBC,eAAgC,EAAhBN,GAChB/gK,UAA2B,EAAhB+gK,GACXloF,oBAAqB,KAEzB,kBAAmB,CACf/qE,aAAiC,EAAnBmzJ,GACdG,mBAAoB,GACpBC,eAAmC,EAAnBJ,GAChBjhK,UAA8B,EAAnBihK,GACXpoF,oBAAqB,KAEzB,kBAAmB,CACf/qE,aAAiC,EAAnBozJ,GACdE,mBAAoB,GACpBC,eAAmC,EAAnBH,GAChBlhK,UAA8B,EAAnBkhK,GACXroF,oBAAqB,MAazByoF,GAAwB,CACxBxzJ,aAAc,CAAC,iBACfszJ,mBAAoB,CAAC,kBACrBC,eAAgB,CAAC,wBACjBrhK,UAAW,CAAC,UACZ64E,oBAAqB,CAAC,8BAEtB0oF,GAAmB,GACnBC,GAA6B,SAAU58S,GAEvC,SAAS48S,IACL,OAAkB,OAAX58S,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAyE/D,OA3EA8gT,GAAaW,EAAa58S,GAI1B48S,EAAYllT,UAAUy8N,gBAAkB,SAAUhvL,EAAOvtC,GACrD,IAAIilT,EAAW,aAAe13Q,EAAM5qB,MAAM,YAAc,WAAa4qB,EAAM5qB,MAAM,UAAY,SAAW4qB,EAAM5qB,MAAM,UAAY,SAAW,UACvIkoF,EAAe85M,GAAiBM,GAAUjlT,GAC1CklT,EAAkB,EACjBH,GAAiBx3Q,KAClBw3Q,GAAiBx3Q,GAAS,IAE9B,IAAIpe,EAAO41R,GAAiBx3Q,GAAOvtC,GACnC,GAAY,MAARmvB,EACA,OAAOA,EAEX,GAAI21R,GAAsB9kT,GAAM,CAC5B,IAAIunJ,EAAYu9J,GAAsB9kT,GAClC4lJ,EAAM11I,SAASa,cAAc,OACjCs2I,GAAYzB,EAAKr4G,GACjBq4G,EAAIlqG,MAAMyqG,SAAW,WACrB,IAAI19B,EAAK8+B,EAAU17I,QAAO,SAAUs5S,EAAQC,GACxC,IAAIC,EAAan1S,SAASa,cAAc,OAIxC,OAHAs0S,EAAW3pQ,MAAMyqG,SAAW,SAC5BkB,GAAYg+J,EAAYD,GACxBD,EAAOlnR,YAAYonR,GACZA,IACRz/J,GACH,GAAI11I,SAASuB,KAAM,CACfvB,SAASuB,KAAKwsB,YAAY2nH,GAC1B,IAAI0/J,GAAoD,IAAzCtlT,EAAIuM,cAAcjI,QAAQ,UAAmB,SAAW,QACvE4gT,EAAkB1hS,SAAS1U,OAAOk/E,iBAAiBy6B,GAAI68L,GAAW,IAClEp1S,SAASuB,KAAK0sB,YAAYynH,IAIlC,OADAm/J,GAAiBx3Q,GAAOvtC,GAAOklT,GAAmBr6M,EAC3Ck6M,GAAiBx3Q,GAAOvtC,IAEnCglT,EAAYllT,UAAUylT,YAAc,WAChC,IAAIh4Q,EAAQhqC,KAAK+kM,WAAW/6J,MAC5B,QAASA,GAASA,EAAMjpC,QAAQ,SAAW,GAE/C0gT,EAAYllT,UAAUu8N,oBAAsB,WACxC,IAAI9uL,EAAQhqC,KAAK+kM,WAAWk9G,YAC5B,OAAOjiT,KAAKg5N,gBAAgBhvL,EAAO,wBAEvCy3Q,EAAYllT,UAAUwoM,SAAW,WAC7B,IAAIm9G,EAAM,wCACNh9L,EAAKllH,KAAKmsS,SACVgW,EAAa,KACjB,MAAOj9L,EAAI,CAEP,GADAi9L,EAAaD,EAAIt3P,KAAKs6D,EAAG6+B,WACpBo+J,EAID,MAHAj9L,EAAKA,EAAGQ,oBAAiBrmH,EAMjC,IAAK8iT,EACD,MAAO,GAEX,IAAIn4Q,EAAQm4Q,EAAW,GACnBC,OAAkC/iT,IAAlB8iT,EAAW,GAC/B,GAAIC,EAAe,CACf,IAAIC,EAAar4Q,EAAMjhC,QAAQ,MAAO,aACtCq/F,IAAO,WAAc,OAAOnlG,QAAQkD,KAAK,uEAAyE6jC,EAAQ,SAAWq4Q,EAAa,OAAS,mBAE/J,MAAO,CAAEr4Q,MAAOA,EAAOk7E,GAAIA,EAAI+8L,YAAaj4Q,EAAMjhC,QAAQ,SAAU,MAExEg4S,GAAc,CACVnyM,GAAU,aACX6yM,EAAYllT,UAAW,gBAAY,GACtCklT,EAAcV,GAAc,CACxBryM,GAAK,gBACN+yM,GACIA,EA5EqB,CA6E9B76L,IAQE07L,GAAqD,WACrD,IAAIr+S,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDi+S,GAAuD,SAAUlhT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D69S,GAAuC,SAAU39S,GAEjD,SAAS29S,IACL,IAAIziT,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAiBhE,OAbAD,EAAM0iT,cAAgB,CAAEx9M,KAAM,GAAIy9M,QAAQ,GAC1C3iT,EAAM4iT,cAAgB,CAAE19M,KAAM,GAAIy9M,QAAQ,GAI1C3iT,EAAM6iT,aAAe,GACrB7iT,EAAM8iT,SAAU,EAGhB9iT,EAAM+iT,iBAAkB,EACxB/iT,EAAMgjT,cAAgB,EACtBhjT,EAAMijT,UAAY,EAClBjjT,EAAMkjT,eAAiB,IAAI1gN,IACpBxiG,EA4IX,OA/JAuiT,GAAaE,EAAuB39S,GAqBpC29S,EAAsBjmT,UAAU+9Q,aAAe,SAAU71E,GACrDzkM,KAAK8iT,gBAAkBr+G,EAAYzkM,KAAK+iT,cACxC/iT,KAAK+iT,cAAgBt+G,GAEzB+9G,EAAsBjmT,UAAU2I,KAAO,WACnClF,KAAKmsP,mBAAqBnsP,KAAK8vG,mBAAmBi1G,4BAMtDy9F,EAAsBjmT,UAAU2mT,uBAAyB,SAAUt9S,IAChC,IAA3B5F,KAAKmsP,mBACLlpP,QAAQkD,KAAK,kCAAoCP,EAAa,yCAGtE48S,EAAsBjmT,UAAU4pO,WAAa,SAAUg9E,EAAMjkT,EAAO+lG,GAChEjlG,KAAKkjT,uBAAuBj+M,GAC5B,IAAIm+M,EAAW,CAAED,KAAMA,EAAMjkT,MAAOA,EAAOmkT,cAAerjT,KAAKgjT,WAC/DhjT,KAAKsjT,cAActjT,KAAKilG,GAAOm+M,GAC/BpjT,KAAKw6Q,YAETgoC,EAAsBjmT,UAAU8kP,WAAa,SAAU8hE,GACnDnjT,KAAKijT,eAAeplN,IAAIslN,IAE5BX,EAAsBjmT,UAAU+mT,cAAgB,SAAUC,EAAUJ,GAChEI,EAASt+M,KAAK3lG,KAAK6jT,GACnBI,EAASb,QAAS,GAEtBF,EAAsBjmT,UAAUinT,aAAe,SAAUD,GACrD,IAAIA,EAASb,OAAb,CAGA,IAAIe,EAAgBzjT,KAAK8iT,gBAAkB,GAAK,EAGhDS,EAASt+M,KAAK12E,MAAK,SAAU5iB,EAAGxH,GAAK,OAAOwH,EAAEzM,QAAUiF,EAAEjF,MAAQukT,GAAiBt/S,EAAEjF,MAAQyM,EAAEzM,OAASiF,EAAEk/S,YAAc13S,EAAE03S,eAC1HE,EAASb,QAAS,IAEtBF,EAAsBjmT,UAAU6vP,eAAiB,SAAU+2D,GACvDnjT,KAAKkjT,uBAAuB,iBAC5BljT,KAAK4iT,aAAatjT,KAAK6jT,GACvBnjT,KAAKw6Q,YAETgoC,EAAsBjmT,UAAUmnT,aAAe,SAAUC,GACrD3jT,KAAKkjT,uBAAuB,gBAC5B,IAAIU,EAAa5jT,KAAKyiT,cAClBoB,EAAUD,EAAW3+M,KACrB6+M,EAAa9jT,KAAK2iT,cAClBoB,EAAUD,EAAW7+M,KACrB29M,EAAe5iT,KAAK4iT,aACpBoB,GAAa,IAAI3nS,MAAOS,UACxBouJ,GAAY,IAAI7uJ,MAAOS,UAAaknS,EAEpCC,EAAcN,GAAU,EACxBz7G,EAAcloM,KAAKmoM,mBAAmBC,wBAC1C,MAAO67G,GAAe/4I,EAAWy4I,EAAQ,CACrC,IAAIO,EAAuBh8G,EAAYylC,mBAAmBktC,8BAC1D,IAAKqpC,EAAsB,CACvB,IAAIf,OAAO,EACX,GAAIU,EAAQpmT,OACRuC,KAAKwjT,aAAaI,GAClBT,EAAOU,EAAQ11R,MAAMg1R,UAEpB,GAAIY,EAAQtmT,OACbuC,KAAKwjT,aAAaM,GAClBX,EAAOY,EAAQ51R,MAAMg1R,SAEpB,KAAIP,EAAanlT,OAGjB,CACDuC,KAAKijT,eAAexmB,QACpB,MAJA0mB,EAAOP,EAAaz0R,MAMnBnuB,KAAKijT,eAAezrO,IAAI2rO,IACzBA,IAGRj4I,GAAY,IAAI7uJ,MAAOS,UAAaknS,EAEpCH,EAAQpmT,QAAUsmT,EAAQtmT,QAAUmlT,EAAanlT,OACjDuC,KAAKmkT,eAGLnkT,KAAKokT,eAGb5B,EAAsBjmT,UAAU6nT,YAAc,WAC1CpkT,KAAK6iT,SAAU,EACf,IAAIz7S,EAAQ,CACR3H,KAAMktH,GAAO+D,4BACb7mH,UAAW7J,KAAK8vG,mBAAmB4I,eACnC9uG,IAAK5J,KAAK8vG,mBAAmB2I,UAEjCz4G,KAAKq0G,aAAa5nG,cAAcrF,IAEpCo7S,EAAsBjmT,UAAUu+H,eAAiB,WACxC96H,KAAKmsP,mBAGVnsP,KAAK0jT,cAAc,IAEvBlB,EAAsBjmT,UAAUi+Q,SAAW,WAClCx6Q,KAAKmsP,oBAGLnsP,KAAK6iT,UACN7iT,KAAK6iT,SAAU,EACf7iT,KAAKmkT,kBAGb3B,EAAsBjmT,UAAU4nT,aAAe,WAG3C,IAAIz+S,EAAW1F,KAAK0jT,aAAaj5S,KAAKzK,KAAM,IACxCuL,OAAO84S,sBACP94S,OAAO84S,sBAAsB3+S,GAExB6F,OAAO+4S,4BACZ/4S,OAAO+4S,4BAA4B5+S,GAGnC6F,OAAOE,WAAW/F,EAAU,IAGpC88S,EAAsBjmT,UAAU+2R,aAAe,WAC3C,OAAQtzR,KAAK6iT,SAEjBN,GAAc,CACV3zM,GAAU,uBACX4zM,EAAsBjmT,UAAW,0BAAsB,GAC1DgmT,GAAc,CACVj0M,IACDk0M,EAAsBjmT,UAAW,OAAQ,MAC5CimT,EAAwBD,GAAc,CAClC7zM,GAAK,0BACN8zM,GACIA,EAhK+B,CAiKxC57L,IAQE29L,GAAqD,WACrD,IAAItgT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDkgT,GAAuD,SAAUnjT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8/S,GAAmC,SAAU5/S,GAE7C,SAAS4/S,IACL,IAAI1kT,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAM2kT,2BAA6B,EAC5B3kT,EAkPX,OAtPAwkT,GAAaE,EAAmB5/S,GAMhC4/S,EAAkBloT,UAAUwiJ,cAAgB,WACxC,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMmoM,YAAc7jM,EAAE6jM,gBAG9Bu8G,EAAkBloT,UAAUupR,uBAAyB,SAAU1+Q,GAC3D,IAAI3K,EAAM2K,EAAMy9J,OAASz9J,EAAM09J,QAC3B6/I,EAAMv9S,EAAM49J,OACZ4/I,EAAOx9S,EAAM69J,SAAW79J,EAAM1I,QAC9BoxP,EAAc9vP,KAAK4+Q,kBAAkB60B,wBAAwBrsS,GACjE,IAAK0oP,EACD,OAAO,EAEX,IAAI+0D,GAAY,EAChB,OAAQpoT,GACJ,KAAKo3K,GAAQe,UACb,KAAKf,GAAQgB,SAEJ+vI,GAASD,IACV3kT,KAAK8kT,eAAeroT,GACpBooT,GAAY,GAEhB,MACJ,KAAKhxI,GAAQO,KACb,KAAKP,GAAQS,MAELswI,IAASD,IACT3kT,KAAK+kT,kBAAkBtoT,EAAKqzP,GAC5B+0D,GAAY,GAEhB,MACJ,KAAKhxI,GAAQQ,GACb,KAAKR,GAAQU,KAELqwI,IAASD,IACT3kT,KAAKglT,eAAevoT,EAAKqzP,GACzB+0D,GAAY,GAEhB,MACJ,KAAKhxI,GAAQc,UAEJiwI,GAASD,IACV3kT,KAAKilT,WAAWn1D,GAChB+0D,GAAY,GAEhB,MACJ,KAAKhxI,GAAQa,QAEJkwI,GAASD,IACV3kT,KAAKklT,SAASp1D,GACd+0D,GAAY,GAEhB,MAKR,OAHIA,GACAz9S,EAAMuuK,iBAEHkvI,GASXJ,EAAkBloT,UAAU4oT,iCAAmC,WAC3D,IAAI/2R,GAAM,IAAI/R,MAAOS,UACjBsoR,EAAOh3Q,EAAMpuB,KAAK0kT,2BACtB,OAAQtf,EAAO,KAEnBqf,EAAkBloT,UAAU6oT,8BAAgC,WACxDplT,KAAK0kT,4BAA6B,IAAIroS,MAAOS,WAEjD2nS,EAAkBloT,UAAU8oT,WAAa,SAAUC,GAC/C,IAAIC,EAAcD,EAAeC,YAAaC,EAAaF,EAAeE,WAAYC,EAAeH,EAAeG,aAAcC,EAAaJ,EAAeI,WAAYC,EAAcL,EAAeK,YAYvM,GAXIllN,EAAOglN,IACPzlT,KAAKkoM,YAAYylC,mBAAmB0jB,oBAAoBo0D,GAExDhlN,EAAO8kN,IACPvlT,KAAKkoM,YAAYylC,mBAAmByjB,mBAAmBm0D,EAAaC,GAGxExlT,KAAK66H,sBAAsBC,iBAG3B96H,KAAKi6K,gBAAgBiwD,eAAew7E,EAAYC,EAAa,MAAM,GAC/D3lT,KAAK+yO,gBAAiB,CACtB,IAAI3J,EAAe,CAAExpF,SAAU8lK,EAAYn2H,UAAW,KAAM7nL,OAAQi+S,GACpE3lT,KAAK+yO,gBAAgByN,eAAepX,KAG5Cq7E,EAAkBloT,UAAU0oT,WAAa,SAAU9zD,GAC/C,IAAInxP,KAAKmlT,mCAAT,CAGA,IAAIj9G,EAAcloM,KAAKmoM,mBAAmBC,wBACtChvE,EAAiB8uE,EAAYylC,mBAAmBC,qBAChD1W,EAAiBl3N,KAAK8vG,mBAAmByyC,oBACzCqjK,EAAkBxsL,EAAejhD,OAASihD,EAAelhD,IACzDl4E,KAAKmoM,mBAAmBy/D,2BAA2Bt+G,8BACnDs8J,GAAmB1uF,GAEvB,IAAI2uF,EAAoB7lT,KAAKw/I,gBAAgB+uF,iBACzCu3E,EAAyB1sL,EAAelhD,IAAM0tO,EAC9CG,EAAuB/lT,KAAKw/I,gBAAgB6uG,mBAAmBy3D,EAAyBD,GACxFN,EAAcQ,EACdC,EAAmBhmT,KAAKw/I,gBAAgBM,OAAOqxG,EAASvxG,UAAUM,OAClE+lK,EAAgBD,EAAmBJ,EAAkBC,EACrDH,EAAa1lT,KAAKw/I,gBAAgB6uG,mBAAmB43D,EAAgBJ,GACrEr3D,EAAcxuP,KAAKw/I,gBAAgBG,iBACnC+lK,EAAal3D,IACbk3D,EAAal3D,GAEb+2D,EAAc/2D,IACd+2D,EAAc/2D,GAElBxuP,KAAKqlT,WAAW,CACZE,YAAaA,EACbC,WAAY,MACZC,aAAc,KACdC,WAAYA,EACZC,YAAax0D,EAASzpP,SAE1B1H,KAAKolT,kCAETX,EAAkBloT,UAAU2oT,SAAW,SAAU/zD,GAC7C,IAAInxP,KAAKmlT,mCAAT,CAGA,IAAIj9G,EAAcloM,KAAKmoM,mBAAmBC,wBACtChvE,EAAiB8uE,EAAYylC,mBAAmBC,qBAChD1W,EAAiBl3N,KAAK8vG,mBAAmByyC,oBACzCqjK,EAAkBxsL,EAAejhD,OAASihD,EAAelhD,IACzDl4E,KAAKmoM,mBAAmBy/D,2BAA2Bt+G,8BACnDs8J,GAAmB1uF,GAEvB,IAAI2uF,EAAoB7lT,KAAKw/I,gBAAgB+uF,iBACzC23E,EAAsB9sL,EAAelhD,IACrCiuO,EAAoBnmT,KAAKw/I,gBAAgB6uG,mBAAmB63D,EAAsBL,GAClFN,EAAcY,EACdtvH,EAAiB72L,KAAKw/I,gBAAgBM,OAAOqxG,EAASvxG,UACtDqmK,EAAgBpvH,EAAe32C,OAAS22C,EAAe52C,UAAY2lK,EAAkBC,EACrFH,EAAa1lT,KAAKw/I,gBAAgB6uG,mBAAmB43D,EAAgBJ,GACrEtmK,EAAWv/I,KAAKw/I,gBAAgBC,kBAChCimK,EAAanmK,IACbmmK,EAAanmK,GAEbgmK,EAAchmK,IACdgmK,EAAchmK,GAElBv/I,KAAKqlT,WAAW,CACZE,YAAaA,EACbC,WAAY,SACZC,aAAc,KACdC,WAAYA,EACZC,YAAax0D,EAASzpP,SAE1B1H,KAAKolT,kCAETX,EAAkBloT,UAAU6pT,gBAAkB,SAAUC,EAAiBC,GACrE,IAAIC,EAAeF,EAGnB,GAAIC,EAAQ,CACR,IAAI9zS,EAAOxS,KAAKw/I,gBAAgBM,OAAOumK,GACnC7zS,GAAQA,EAAKgzN,OACb+gF,GAAgB,GAGxB,OAAOA,GAGX9B,EAAkBloT,UAAUyoT,eAAiB,SAAUvoT,EAAK00P,GACxD,IAAIq1D,EAAQ/pT,IAAQo3K,GAAQQ,GACxBoyI,EAAqBD,EAAQxmT,KAAKw/I,gBAAgBC,kBAAoBz/I,KAAKw/I,gBAAgBG,iBAC/F3/I,KAAKqlT,WAAW,CACZE,YAAakB,EACbjB,WAAY,KACZC,aAAct0D,EAASzpP,OACvBg+S,WAAY1lT,KAAKomT,gBAAgBK,GAAqBD,GACtDb,YAAax0D,EAASzpP,UAI9B+8S,EAAkBloT,UAAUwoT,kBAAoB,SAAUtoT,EAAK00P,GAC3D,IAAIu1D,EAAUjqT,IAAQo3K,GAAQO,KAC1B/9B,EAAar2I,KAAKm/I,iBAAiBpjB,yBACnC4qL,EAAiBD,EAAUrwK,EAAW,GAAKl6D,EAAKk6D,GACpDr2I,KAAKqlT,WAAW,CACZE,YAAap0D,EAASvxG,SACtB4lK,WAAY,KACZC,aAAckB,EACdjB,WAAYv0D,EAASvxG,SACrB+lK,YAAagB,KAKrBlC,EAAkBloT,UAAUuoT,eAAiB,SAAUroT,GACnD,IAAImqT,EAAUnqT,IAAQo3K,GAAQe,UAC1Bv+B,EAAar2I,KAAKm/I,iBAAiBpjB,yBACnC4qL,EAAiBC,EAAUvwK,EAAW,GAAKl6D,EAAKk6D,GAChDkvK,EAAcqB,EAAU5mT,KAAKw/I,gBAAgBC,kBAAoBz/I,KAAKw/I,gBAAgBG,iBAC1F3/I,KAAKqlT,WAAW,CACZE,YAAaA,EACbC,WAAY,KACZC,aAAckB,EACdjB,WAAY1lT,KAAKomT,gBAAgBb,GAAcqB,GAC/CjB,YAAagB,KAGrBnC,GAAc,CACV51M,GAAU,sBACX61M,EAAkBloT,UAAW,yBAAqB,GACrDioT,GAAc,CACV51M,GAAU,oBACX61M,EAAkBloT,UAAW,uBAAmB,GACnDioT,GAAc,CACV51M,GAAU,oBACX61M,EAAkBloT,UAAW,uBAAmB,GACnDioT,GAAc,CACV51M,GAAU,0BACX61M,EAAkBloT,UAAW,6BAAyB,GACzDioT,GAAc,CACV11M,GAAS,oBACV21M,EAAkBloT,UAAW,uBAAmB,GACnDioT,GAAc,CACV51M,GAAU,qBACX61M,EAAkBloT,UAAW,wBAAoB,GACpDioT,GAAc,CACV51M,GAAU,uBACX61M,EAAkBloT,UAAW,0BAAsB,GACtDioT,GAAc,CACVl2M,IACDm2M,EAAkBloT,UAAW,gBAAiB,MACjDkoT,EAAoBD,GAAc,CAC9B91M,GAAK,sBACN+1M,GACIA,EAvP2B,CAwPpC79L,IAQEigM,GAAqD,WACrD,IAAI5iT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwiT,GAAuD,SAAUzlT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DoiT,GAAgD,SAAU35M,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAMvD45M,GAA2C,SAAUniT,GAErD,SAASmiT,IACL,IAAIjnT,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAKhE,OAHAD,EAAMknT,QAAU,EAEhBlnT,EAAMmnT,aAAe,EACdnnT,EAuGX,OA9GA8mT,GAAaG,EAA2BniT,GASxCmiT,EAA0BzqT,UAAUkhN,OAAS,SAAU5tG,GACnD7vG,KAAKwqG,OAASqF,EAActrG,OAAO,8BAEvCyiT,EAA0BzqT,UAAUwiJ,cAAgB,WAChD/+I,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOmE,0BAA2B9wH,KAAKgsP,aAAavhP,KAAKzK,OACpGA,KAAKmnT,aAAehlK,KACpBniJ,KAAKwqG,OAAO3sF,IAAI,kBAAoB7d,KAAKmnT,eAE7CH,EAA0BzqT,UAAUknR,aAAe,WAC/C,OAAOzjR,KAAKonT,YAEhBJ,EAA0BzqT,UAAUwxP,oBAAsB,WACtD,OAAO/tP,KAAK8tP,kBAEhBk5D,EAA0BzqT,UAAUyvP,aAAe,WAC/C,GAAKhsP,KAAKonT,WAAV,CAGA,IAAIl/G,EAAcloM,KAAKmoM,mBAAmBC,wBACtCi/G,EAAan/G,EAAYylC,mBAAmBC,qBAAqB11J,IACjEovO,EAAgBtnT,KAAKunT,kBACrBxhL,EAAoBshL,IAAernT,KAAKinT,SAAWK,IAAkBtnT,KAAKknT,aAC1EnhL,IACA/lI,KAAKinT,QAAUI,EACfrnT,KAAKknT,aAAeI,EACpBtnT,KAAKwnT,qBAGbR,EAA0BzqT,UAAUirT,gBAAkB,WAClDxnT,KAAKynT,qBAAqBznT,KAAKmnT,cAC/BnnT,KAAK0nT,cAAgB1nT,KAAK2nT,YAAc3nT,KAAK4nT,kBAC7C5nT,KAAK6nT,WAAa7nT,KAAK4nT,kBAAoB5nT,KAAKknT,aAChD,IAAIY,EAAgB9nT,KAAKinT,QAAUjnT,KAAK6nT,WACpC/5D,EAAmBg6D,EAAgB9nT,KAAK0nT,cAC5C1nT,KAAKwqG,OAAO3sF,IAAI,wBAA0BiwO,EAAmB,KAAO9tP,KAAK0nT,cAAgB,MAAQI,EAAgB,KACjH9nT,KAAK+nT,oBAAoBj6D,IAE7Bk5D,EAA0BzqT,UAAUkrT,qBAAuB,SAAU7sO,GAC7DA,IAAW56E,KAAK4nT,oBAChB5nT,KAAK4nT,kBAAoBhtO,EACzB56E,KAAKq0G,aAAa5nG,cAAc,CAAEhN,KAAMktH,GAAO4E,uCAGvDy1L,EAA0BzqT,UAAUyrT,YAAc,WAC9ChoT,KAAKynT,qBAAqBznT,KAAK2nT,aAC/B3nT,KAAK0nT,cAAgB,EACrB1nT,KAAK+nT,oBAAoB,IAE7Bf,EAA0BzqT,UAAUwrT,oBAAsB,SAAUE,GAEhE,IAAIC,EAAsC,kBAAdD,EAAyB/yS,KAAKkG,MAAM6sS,GAAa,KACzEjoT,KAAK8tP,mBAAqBo6D,IAG9BloT,KAAK8tP,iBAAmBo6D,EACxBloT,KAAKq0G,aAAa5nG,cAAc,CAAEhN,KAAMktH,GAAOgE,+BAEnDq2L,EAA0BzqT,UAAU4tP,eAAiB,SAAUw9D,GAC3D3nT,KAAK2nT,YAAcA,EACnB3nT,KAAKonT,WAA4B,MAAfO,GACX3nT,KAAKmnT,aAAe,GACpBQ,EAAc3nT,KAAKmnT,aACtBnnT,KAAKonT,WACLpnT,KAAKwnT,kBAGLxnT,KAAKgoT,eAGbhB,EAA0BzqT,UAAUgtR,qBAAuB,WACvD,OAAOvpR,KAAK4nT,mBAEhBZ,EAA0BzqT,UAAUywO,qBAAuB,SAAUm7E,GACjE,OAAOA,EAAanoT,KAAK8tP,kBAE7Bk5D,EAA0BzqT,UAAUgrT,gBAAkB,WAClD,IAAIr/G,EAAcloM,KAAKmoM,mBAAmBC,wBACtC1lK,EAAMwlK,EAAYylC,mBAAmBC,qBACzC,OAAOlrM,EAAIy1C,OAASz1C,EAAIw1C,KAE5B8uO,EAA0BzqT,UAAUkgR,0BAA4B,SAAUv8H,GACtE,GAAIlgJ,KAAK0nT,eAAiB,EACtB,OAAOxnK,EAEX,IAAIkoK,EAAiBpoT,KAAK2nT,YAAc3nT,KAAKunT,kBACzCO,EAAgB5nK,EAASkoK,EACzBC,EAAcroT,KAAK6nT,WAAaC,EACpC,OAAOO,GAEXvB,GAAc,CACVl4M,GAAU,uBACXo4M,EAA0BzqT,UAAW,0BAAsB,GAC9DuqT,GAAc,CACVC,GAAU,EAAG93M,GAAU,mBACxB+3M,EAA0BzqT,UAAW,SAAU,MAClDuqT,GAAc,CACVx4M,IACD04M,EAA0BzqT,UAAW,gBAAiB,MACzDyqT,EAA4BF,GAAc,CACtCp4M,GAAK,8BACNs4M,GACIA,EA/GmC,CAgH5CpgM,IAQE0hM,GAAqD,WACrD,IAAIrkT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDikT,GAAuD,SAAUlnT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D6jT,GAAmC,SAAU3jT,GAE7C,SAAS2jT,IACL,OAAkB,OAAX3jT,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAiD/D,OAnDAsoT,GAAaE,EAAmB3jT,GAIhC2jT,EAAkBjsT,UAAU2I,KAAO,WAC/BlF,KAAK+0L,qBAAuB/0L,KAAK8vG,mBAAmBklF,yBACpDh1L,KAAK+vL,oBAAsB/vL,KAAK8vG,mBAAmBkgF,0BAEvDw4H,EAAkBjsT,UAAUksT,8BAAgC,SAAU19S,GAClE,GAAI/K,KAAK+vL,oBAAqB,CAC1B,IAAI24H,EAAmB,SAAUl2S,GAAQ,OAAOA,EAAK02J,oBACrDlpK,KAAK2oT,YAAY59S,EAAQm+J,mBAAoBw/I,KAGrDF,EAAkBjsT,UAAUqsT,+BAAiC,SAAU79S,GACnE,GAAI/K,KAAK+vL,oBAAqB,CAC1B,IAAI24H,EAAmB,SAAUl2S,GAAQ,OAAOA,EAAKgkL,qBACrDx2L,KAAK2oT,YAAY59S,EAAQm+J,mBAAoBw/I,KAGrDF,EAAkBjsT,UAAUosT,YAAc,SAAU7gT,EAAU4gT,GAC1D,IAAI3oT,EAAQC,KACP8H,GAGLA,EAASvJ,SAAQ,SAAUmiH,GACvB,GAAKA,EAAMxlB,MAAX,CAMA,IAAI2tN,EACJ,GAJInoM,EAAMuoD,eACNlpK,EAAM4oT,YAAYD,EAAiBhoM,GAAQgoM,GAG3C3oT,EAAMg1L,qBAAsB,CAE5B,IAAI+zH,EAAkB/6R,EAAK26R,EAAiBhoM,GAAQ,cAAc,GAClEmoM,EAAgBpoN,EAAOqoN,QAIvBD,IAAgB9oT,EAAMgwL,qBAAsBhwL,EAAMgwL,oBAAoBrvE,GAE1EA,EAAMuvE,iBAAiB44H,QAG/BN,GAAc,CACVj6M,IACDk6M,EAAkBjsT,UAAW,OAAQ,MACxCisT,EAAoBD,GAAc,CAC9B75M,GAAK,sBACN85M,GACIA,EApD2B,CAqDpC5hM,IAQEmiM,GAAqD,WACrD,IAAI9kT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0kT,GAAuD,SAAU3nT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DskT,GAAsC,SAAUpkT,GAEhD,SAASokT,IACL,OAAkB,OAAXpkT,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA6F/D,OA/FA+oT,GAAaE,EAAsBpkT,GAInCokT,EAAqB1sT,UAAUwiJ,cAAgB,WAC3C,IAAIh/I,EAAQC,KACZA,KAAKmoM,mBAAmBm+C,WAAU,SAAUjiP,GACxCtE,EAAMqsQ,sBAAwB/nQ,EAAE+nQ,0BAGxC68C,EAAqB1sT,UAAUo8N,yBAA2B,SAAU5tN,GAChE,IAAIhL,EAAQC,KACRmrS,EAAkBx+R,SAASa,cAAc,OAC7CxN,KAAKkpT,mBAAmBn+S,EAASogS,GAGjC,IAAIC,EAAiBprS,KAAKosQ,sBAAsBI,sBAChD4+B,EAAe1wQ,YAAYywQ,GAC3B,IAAIrmE,EAAcpD,GAAgBC,uBAAuB52N,EAAS/K,KAAKgrO,OAAQhrO,KAAK+tG,MAAM+B,oBACtF47F,EAAQo5B,EAAcA,EAAYp5B,WAAQrsM,EAC1C0iO,EAAmB+C,EAAcA,EAAY/C,sBAAmB1iO,EAChEuvO,EAAY,GACZu6E,EAAoBnpT,KAAKm/I,iBAAiBlmB,0BAC1CmwL,EAAgBppT,KAAKm/I,iBAAiBpjB,yBACtCstL,EAA2BF,EAAkB54N,QAAO,SAAU7rD,GAAO,OAAO0kR,EAAcroT,QAAQ2jC,IAAQ,KAC9G2kR,EAAyB9qT,SAAQ,SAAUmmC,GACvC,IAAIsgM,EAAW,IAAIqN,GAAS3mC,EAAO3rM,EAAMguG,MAAOrpE,EAAK35B,EAAS,MAAM,GAAM,EAAOogS,GAAiB,GAClGv8D,EAAUtvO,KAAK0lO,MAEnB4J,EAAUrwO,SAAQ,SAAUymO,GAAY,OAAOmmE,EAAgBzwQ,YAAYsqM,EAAS3+N,aAChFqlM,GACA1rM,KAAKirO,SAASkgE,EAAdnrS,CAA+B0rM,GAMnC,IADA,IAAI49G,EAAgB,EACX/rT,EAAI,EAAGA,EAAI4tS,EAAgBrjS,SAASrK,OAAQF,IAAK,CACtD,IAAImjH,EAAQyqL,EAAgBrjS,SAASvK,GACjCmjH,EAAMsmC,aAAesiK,IACrBA,EAAgB5oM,EAAMsmC,cAa9B,OATAokJ,EAAexwQ,YAAYuwQ,GAC3Bv8D,EAAUrwO,SAAQ,SAAUymO,GAExBA,EAASoc,SACTpc,EAAS5+N,aAET27N,GACAA,IAEGunF,GAEXL,EAAqB1sT,UAAU2sT,mBAAqB,SAAUn+S,EAASogS,GAGnE,IAAIvrJ,EAAW70I,EAAQ60I,SACnBx8I,EAAS,CACT2H,QAASA,EACTm4N,UAAWtjF,EAAW,IAAM,EAC5B6jF,SAAUzjO,KAAK0jO,sBAAsBC,kBAAkB54N,GACvD8gO,eAAgBjsF,IAAa5/I,KAAK+tG,MAAMyxC,gBAAgBC,kBACxDqsF,cAAelsF,IAAa5/I,KAAK+tG,MAAMyxC,gBAAgBG,iBACvDgjF,aAAa,EACb5/G,WAAYh4G,EAAQ+2G,gBAEpBsgI,EAAUpiP,KAAK0jO,sBAAsByJ,qBAAqB/pO,GAC9D0gJ,GAAYqnJ,EAAiB/oD,EAAQpxO,KAAK,OAE9Cg4S,GAAc,CACVp6M,GAAU,UACXq6M,EAAqB1sT,UAAW,aAAS,GAC5CysT,GAAc,CACVp6M,GAAU,WACXq6M,EAAqB1sT,UAAW,cAAU,GAC7CysT,GAAc,CACVp6M,GAAU,qBACXq6M,EAAqB1sT,UAAW,wBAAoB,GACvDysT,GAAc,CACVp6M,GAAU,0BACXq6M,EAAqB1sT,UAAW,6BAAyB,GAC5DysT,GAAc,CACVp6M,GAAU,aACXq6M,EAAqB1sT,UAAW,gBAAY,GAC/CysT,GAAc,CACVp6M,GAAU,uBACXq6M,EAAqB1sT,UAAW,0BAAsB,GACzDysT,GAAc,CACV16M,IACD26M,EAAqB1sT,UAAW,gBAAiB,MACpD0sT,EAAuBD,GAAc,CACjCt6M,GAAK,yBACNu6M,GACIA,EAhG8B,CAiGvCriM,IAQE2iM,GAAqD,WACrD,IAAItlT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDklT,GAAuD,SAAUnoT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8kT,GAAgC,SAAU5kT,GAE1C,SAAS4kT,IACL,IAAI1pT,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAIjC,OAHAD,EAAM2pT,iCAAkC,EACxC3pT,EAAM4pT,oBAAqB,EAC3B5pT,EAAM6pT,oBAAqB,EACpB7pT,EA2LX,OAjMAwpT,GAAaE,EAAgB5kT,GAQ7B4kT,EAAeltT,UAAUwiJ,cAAgB,WACrC,IAAIh/I,EAAQC,KACR26I,EAAQ36I,KAAK8vG,mBAAmB6Q,cACpC3gH,KAAK2uK,YAAY3uK,KAAKk3O,eACtBl3O,KAAK6pT,QAAQlhK,sBAAsB,aAAcmb,GAAiBnpB,EAAQ,OAAS,QAAS36I,KAAK8vG,qBACjG9vG,KAAK8pT,WAAWnhK,sBAAsB,aAAcmb,GAAiBnpB,EAAQ,OAAS,WAAY36I,KAAK8vG,qBACvG9vG,KAAK+pT,OAAOphK,sBAAsB,aAAcmb,GAAiBnpB,EAAQ,WAAa,OAAQ36I,KAAK8vG,qBACnG9vG,KAAKgqT,OAAOrhK,sBAAsB,aAAcmb,GAAiBnpB,EAAQ,QAAU,OAAQ36I,KAAK8vG,qBAChG,IAAI6rK,EAAW37Q,KAAK8vG,mBAAmB48G,eACnCkvD,EAAyBD,IAAa37Q,KAAK8vG,mBAAmB+5G,4BAC7D+xD,GAIL57Q,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOiE,yBAA0B5wH,KAAKgoO,oBAAoBv9N,KAAKzK,OAC1G,CACI,CAAEklH,GAAIllH,KAAK6pT,QAASvoT,GAAItB,KAAKiqT,UAAUx/S,KAAKzK,OAC5C,CAAEklH,GAAIllH,KAAK8pT,WAAYxoT,GAAItB,KAAKkqT,aAAaz/S,KAAKzK,OAClD,CAAEklH,GAAIllH,KAAK+pT,OAAQzoT,GAAItB,KAAKmqT,SAAS1/S,KAAKzK,OAC1C,CAAEklH,GAAIllH,KAAKgqT,OAAQ1oT,GAAItB,KAAKoqT,SAAS3/S,KAAKzK,QAC5CzB,SAAQ,SAAU6uF,GAChB,IAAI83B,EAAK93B,EAAK83B,GAAI5jH,EAAK8rF,EAAK9rF,GAC5BvB,EAAMonH,mBAAmBjC,EAAI,QAAS5jH,GACtCvB,EAAMonH,mBAAmBjC,EAAI,WAAW,SAAU14G,GAC1CA,EAAEs4J,UAAY+O,GAAQG,OAASxnK,EAAEs4J,UAAY+O,GAAQM,QACrD3nK,EAAEmpK,iBACFr0K,WAIZtB,KAAKgoO,uBAnBDhoO,KAAKwlJ,cAAa,IAqB1BikK,EAAeltT,UAAUyrO,oBAAsB,WAC3ChoO,KAAKqqT,yBACLrqT,KAAKsqT,kBACLtqT,KAAKuqT,sBACLvqT,KAAKwqT,kBAETf,EAAeltT,UAAU0tT,UAAY,WAC5BjqT,KAAK0pT,iCACN1pT,KAAKw/I,gBAAgBkhJ,iBAG7B+oB,EAAeltT,UAAUguT,oBAAsB,WAC3C,IAAIE,EAAazqT,KAAKw/I,gBAAgB0gJ,gBAAkB,EACpD9xD,EAAcpuO,KAAKw/I,gBAAgB4jF,iBACnCsnF,EAAYD,EAAar8E,EAAc,EAAI,EAC/CpuO,KAAK2qT,UAAU9gO,UAAY7pF,KAAK4qT,aAAaF,IAEjDjB,EAAeltT,UAAUquT,aAAe,SAAUluT,GAC9C,IAAIm8G,EAAW74G,KAAK8vG,mBAAmBi3G,mCACvC,OAAIluG,EACOA,EAAS,CAAEn8G,MAAOA,IAEtB++I,GAAmB/+I,IAE9B+sT,EAAeltT,UAAU26O,YAAc,WACnC,IAAI5mG,EAAiBtwI,KAAK8vG,mBAAmBygC,oBACzCs6K,EAAUv6K,EAAe,OAAQ,QACjCw6K,EAAQx6K,EAAe,KAAM,MAC7By6K,EAAQz6K,EAAe,KAAM,MAC7B06K,EAAW16K,EAAe,YAAa,cACvC26K,EAAc36K,EAAe,eAAgB,iBAC7C46K,EAAU56K,EAAe,WAAY,aACrC66K,EAAU76K,EAAe,WAAY,aACrCm+B,EAASzuK,KAAK+uK,YACdq8I,EAAqB,MAAQ38I,EAAS,iBAAmBA,EAAS,UAAYA,EAAS,gBAAkBA,EAAS,UAAYA,EAAS,aACvI48I,EAAyB,MAAQ58I,EAAS,kBAAoBA,EAAS,yBAA2BA,EAAS,eAAiBA,EAAS,kBACzI,MAAkB,uDAA4DA,EAAS,0CAAgD48I,EAAyB,IAAMD,EAAqB,uHAA+H38I,EAAS,2HAAmIA,EAAS,QAAWq8I,EAAQ,6CAAgDr8I,EAAS,yHAAiIA,EAAS,QAAWs8I,EAAQ,6CAAgDt8I,EAAS,2RAA6Su8I,EAAW,uHAAmIC,EAAc,4IAAsJx8I,EAAS,gBAAmBo8I,EAAU,iDAAoDp8I,EAAS,8GAAsHA,EAAS,aAAgBs8I,EAAQ,iDAAoDt8I,EAAS,0LAAwMy8I,EAAU,mHAA+HC,EAAU,sEAEt+D1B,EAAeltT,UAAU4tT,SAAW,WAC3BnqT,KAAK2pT,oBACN3pT,KAAKw/I,gBAAgB8gJ,gBAG7BmpB,EAAeltT,UAAU2tT,aAAe,WAC/BlqT,KAAK0pT,iCACN1pT,KAAKw/I,gBAAgBghJ,oBAG7BipB,EAAeltT,UAAU6tT,SAAW,WAC3BpqT,KAAK4pT,oBACN5pT,KAAKw/I,gBAAgBohJ,gBAG7B6oB,EAAeltT,UAAU8tT,uBAAyB,WAC9C,IAAIj8E,EAAcpuO,KAAKw/I,gBAAgB4jF,iBACnC07D,EAAc9+R,KAAKw/I,gBAAgBqgJ,kBACnCsb,EAAan7S,KAAKw/I,gBAAgB0gJ,gBACtClgS,KAAK0pT,gCAAkD,IAAhBt7E,EACvC/pF,GAAoBrkJ,KAAK6pT,QAAS,cAAe7pT,KAAK0pT,iCACtD7sJ,GAAgB78J,KAAK6pT,QAAS7pT,KAAK0pT,iCACnCrlK,GAAoBrkJ,KAAK8pT,WAAY,cAAe9pT,KAAK0pT,iCACzD7sJ,GAAgB78J,KAAK8pT,WAAY9pT,KAAK0pT,iCACtC,IAAI4B,EAAqBtrT,KAAKurT,uBAC1BC,EAAa1sB,GAAe1wD,IAAiB+sE,EAAa,EAC9Dn7S,KAAK2pT,mBAAqB6B,GAAcF,EACxCjnK,GAAoBrkJ,KAAK+pT,OAAQ,cAAe/pT,KAAK2pT,oBACrD9sJ,GAAgB78J,KAAK+pT,OAAQ/pT,KAAK2pT,oBAClC3pT,KAAK4pT,oBAAsB9qB,GAAewsB,GAAsBl9E,IAAiB+sE,EAAa,EAC9F92J,GAAoBrkJ,KAAKgqT,OAAQ,cAAehqT,KAAK4pT,oBACrD/sJ,GAAgB78J,KAAKgqT,OAAQhqT,KAAK4pT,qBAEtCH,EAAeltT,UAAU+tT,gBAAkB,WACvC,IAKIxoE,EACAE,EANA5T,EAAcpuO,KAAKw/I,gBAAgB4jF,iBACnC23E,EAAW/6S,KAAKw/I,gBAAgBugJ,cAChCjB,EAAc9+R,KAAKw/I,gBAAgBqgJ,kBACnCviI,EAAWt9J,KAAKw/I,gBAAgBqgJ,kBAChC7/R,KAAKw/I,gBAAgB4gJ,oBAAsB,KAG3CpgS,KAAKurT,uBACLzpE,EAAWE,EAAS,GAGpBF,EAAYi5D,EAAW3sE,EAAe,EACtC4T,EAASF,EAAWi5D,EAAW,EAC3Bjc,GAAe98C,EAAS1kF,IACxB0kF,EAAS1kF,IAGjBt9J,KAAKyrT,iBAAiB5hO,UAAY7pF,KAAK4qT,aAAa9oE,GAChD9hP,KAAKm/R,mBAAmBusB,YACxB1rT,KAAK2rT,gBAAgB9hO,UAAY,IAGjC7pF,KAAK2rT,gBAAgB9hO,UAAY7pF,KAAK4qT,aAAa5oE,IAG3DynE,EAAeltT,UAAUgvT,qBAAuB,WAC5C,IAAIzsB,EAAc9+R,KAAKw/I,gBAAgBqgJ,kBACnCsb,EAAan7S,KAAKw/I,gBAAgB0gJ,gBACtC,OAAOpB,GAA8B,IAAfqc,GAE1BsO,EAAeltT,UAAUiuT,eAAiB,WACtC,IAAIoB,EAAgB5rT,KAAKw/I,gBAAgBqgJ,kBACrCsb,EAAan7S,KAAKw/I,gBAAgB0gJ,gBAClC5iI,EAAWsuJ,EACX5rT,KAAKw/I,gBAAgB4gJ,oBAAsB,KAC/C,GAAIwrB,EACA5rT,KAAK6rT,QAAQhiO,UAAY7pF,KAAK4qT,aAAazP,GAC3Cn7S,KAAK8rT,cAAcjiO,UAAY7pF,KAAK4qT,aAAattJ,OAEhD,CACD,IAAIyuJ,EAAW/rT,KAAK8vG,mBAAmBygC,mBAAxBvwI,CAA4C,OAAQ,QACnEA,KAAK6rT,QAAQhiO,UAAYkiO,EACzB/rT,KAAK8rT,cAAcjiO,UAAYkiO,IAGvCvC,GAAc,CACV56M,GAAU,oBACX66M,EAAeltT,UAAW,uBAAmB,GAChDitT,GAAc,CACV56M,GAAU,uBACX66M,EAAeltT,UAAW,0BAAsB,GACnDitT,GAAc,CACVp2I,GAAY,YACbq2I,EAAeltT,UAAW,eAAW,GACxCitT,GAAc,CACVp2I,GAAY,eACbq2I,EAAeltT,UAAW,kBAAc,GAC3CitT,GAAc,CACVp2I,GAAY,WACbq2I,EAAeltT,UAAW,cAAU,GACvCitT,GAAc,CACVp2I,GAAY,WACbq2I,EAAeltT,UAAW,cAAU,GACvCitT,GAAc,CACVp2I,GAAY,kBACbq2I,EAAeltT,UAAW,qBAAiB,GAC9CitT,GAAc,CACVp2I,GAAY,qBACbq2I,EAAeltT,UAAW,wBAAoB,GACjDitT,GAAc,CACVp2I,GAAY,oBACbq2I,EAAeltT,UAAW,uBAAmB,GAChDitT,GAAc,CACVp2I,GAAY,cACbq2I,EAAeltT,UAAW,iBAAa,GAC1CitT,GAAc,CACVp2I,GAAY,YACbq2I,EAAeltT,UAAW,eAAW,GACxCitT,GAAc,CACVl7M,IACDm7M,EAAeltT,UAAW,gBAAiB,MACvCktT,EAlMwB,CAmMjC7pT,IAQEosT,GAAqD,WACrD,IAAI/nT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD2nT,GAAuD,SAAU5qT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DunT,GAAuC,SAAUrnT,GAEjD,SAASqnT,IACL,OAAkB,OAAXrnT,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAiD/D,OAnDAgsT,GAAaE,EAAuBrnT,GAIpCqnT,EAAsB3vT,UAAUwuO,cAAgB,SAAU5gJ,EAASzkF,EAAUymT,QACnD,IAAlBA,IAA4BA,EAAgB,IAEhD,IAAIC,EAAmBpsT,KAAKgnH,wBAGxBqlM,EAAoBtiT,GAASrE,EAAUymT,GACvCG,EAA2B,WAC3B,IAAIC,EAAiB,IAAIhhT,OAAOihT,eAAeH,GAE/C,OADAE,EAAeE,QAAQtiO,GAChB,WAAc,OAAOoiO,EAAeG,eAE3CC,EAAc,WAEd,IAAIC,EAAgB/pK,GAAY14D,GAC5B0iO,EAAiB7lK,GAAa78D,GAE9B2iO,GAAU,EACVC,EAAkC,WAClC,GAAID,EAAS,CACT,IAAIxxL,EAAWunB,GAAY14D,GACvB6iO,EAAYhmK,GAAa78D,GACzB8iO,EAAU3xL,IAAasxL,GAAiBI,IAAcH,EACtDI,IACAL,EAAgBtxL,EAChBuxL,EAAiBG,EACjBtnT,KAEJ0mT,EAAiB3gT,WAAWshT,EAAiCZ,KAKrE,OAFAY,IAEO,WAAc,OAAOD,GAAU,IAEtCI,EAAiBltT,KAAK8vG,mBAAmBwwG,kCACzC6sG,IAAyB5hT,OAAOihT,eACpC,OAAIW,IAAyBD,EAClBZ,IAGAK,KAGfT,EAAwBD,GAAc,CAClCv9M,GAAK,0BACNw9M,GACIA,EApD+B,CAqDxCtlM,IAQEwmM,GAAqD,WACrD,IAAInpT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD+oT,GAAuD,SAAUhsT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,IAGhE,SAAWipR,GACPA,EAAYA,EAAY,WAAa,GAAK,UAC1CA,EAAYA,EAAY,UAAY,GAAK,UAF7C,CAGGA,KAAgBA,GAAc,KACjC,IAAI0/B,GAAyC,SAAUzoT,GAEnD,SAASyoT,IACL,IAAIvtT,EAAQ8E,EAAOjH,KAAKoC,KAAMstT,EAAwBr4I,WAAaj1K,KAGnE,OAFAD,EAAMwtT,YAAa,EACnBxtT,EAAMytT,kBAAmB,EAClBztT,EA2HX,OAhIAqtT,GAAaE,EAAyBzoT,GAOtCyoT,EAAwB/wT,UAAU87Q,oBAAsB,SAAUj1Q,GAC9DihJ,GAAoBrkJ,KAAKytT,gBAAiB5+S,EAAQqpQ,iBAAiB2U,YAAazpR,EAAOoxI,YACvF6P,GAAoBrkJ,KAAKytT,gBAAiB5+S,EAAQqpQ,iBAAiB4U,OAAQ1pR,EAAOynP,QAClFxmG,GAAoBrkJ,KAAKytT,gBAAiB5+S,EAAQqpQ,iBAAiB6U,MAAO3pR,EAAO6nK,QAErFqiJ,EAAwB/wT,UAAUwiJ,cAAgB,WAC9C/+I,KAAKsnH,kBAAkB,IAAI8wJ,GAAcp4Q,OACzCA,KAAKwlJ,cAAa,GAClBxlJ,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOkB,uBAAwB7tH,KAAK0tT,iBAAiBjjT,KAAKzK,OACrGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOmB,uBAAwB9tH,KAAK0tT,iBAAiBjjT,KAAKzK,OACrGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKu3O,mBAAmB9sO,KAAKzK,OACrGA,KAAK8vG,mBAAmBiI,sBAAwB/3G,KAAK8vG,mBAAmB9lG,cACxEhK,KAAK6/F,qBAET7/F,KAAKi/F,QAAQivL,2BAA2BluR,OAE5CstT,EAAwB/wT,UAAUoxT,oBAAsB,SAAUC,GAC9DvpK,GAAoBrkJ,KAAKytT,gBAAiB,6BAA8BG,IAAgBhgC,GAAYigC,SACpGxpK,GAAoBrkJ,KAAKytT,gBAAiB,6BAA8BG,IAAgBhgC,GAAYkgC,SAExGR,EAAwB/wT,UAAUsjG,mBAAqB,WACnD,IAAI7/F,KAAK8vG,mBAAmBo0G,2BAA5B,CAGA,IAAI6pG,EAAW/tT,KAAKwtK,qBAAqB6sB,2BAA2B,CAChEzwL,IAAK5J,KAAK8vG,mBAAmB2I,WAEjCz4G,KAAKguT,YAAYD,EAAUngC,GAAYigC,WAE3CP,EAAwB/wT,UAAUy3R,kBAAoB,WAClD,IAAIh0R,KAAK8vG,mBAAmBs0G,0BAA5B,CAGA,IAAI2pG,EAAW/tT,KAAKwtK,qBAAqB8sB,0BAA0B,CAC/D1wL,IAAK5J,KAAK8vG,mBAAmB2I,WAEjCz4G,KAAKguT,YAAYD,EAAUngC,GAAYkgC,UAE3CR,EAAwB/wT,UAAUyxT,YAAc,SAAUD,EAAUtuT,GAChE,IAAIM,EAAQC,KACRA,KAAKutT,aAGTvtT,KAAK2tT,oBAAoBluT,GACzBO,KAAKiuT,uBACLjuT,KAAKutT,YAAa,EACdQ,GACAA,EAASpyJ,MAAK,SAAUkU,GACpB9vK,EAAMwtT,YAAa,EACnBxtT,EAAM0tT,gBAAgB/yR,YAAYm1I,EAAKxpK,UACvCtG,EAAMmuT,cAAgBr+I,EAClB9vK,EAAMytT,mBACNztT,EAAMytT,kBAAmB,EACzBztT,EAAMkuT,2BAIlBjuT,KAAKwlJ,cAAa,KAEtB8nK,EAAwB/wT,UAAU0xT,qBAAuB,WACjDjuT,KAAKutT,WACLvtT,KAAKwtT,kBAAmB,EAGvBxtT,KAAKkuT,gBAGVluT,KAAKkuT,cAAgBluT,KAAKw4G,aAAa1K,YAAY9tG,KAAKkuT,eACxDxmK,GAAa1nJ,KAAKytT,mBAEtBH,EAAwB/wT,UAAU6iG,YAAc,WAC5Cp/F,KAAKiuT,uBACLjuT,KAAKwlJ,cAAa,IAEtB8nK,EAAwB/wT,UAAU6J,QAAU,WACxCpG,KAAKiuT,uBACLppT,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCstT,EAAwB/wT,UAAU4xT,kBAAoB,WAClD,IAAIvnL,EAAU5mI,KAAKw/I,gBAAgB5Y,UAC/Bw9E,EAA0BpkN,KAAK8vG,mBAAmBs0G,0BAClDx9E,IAAYw9E,EACZpkN,KAAKg0R,oBAGLh0R,KAAKo/F,eAGbkuN,EAAwB/wT,UAAUmxT,iBAAmB,WACjD1tT,KAAKmuT,qBAETb,EAAwB/wT,UAAUg7O,mBAAqB,WAK/Cv3O,KAAKm/I,iBAAiBrO,YAAc9wI,KAAKw/I,gBAAgB5Y,WACzD5mI,KAAKo/F,eAKbkuN,EAAwBr4I,SAAW,sNACnCo4I,GAAc,CACVz+M,GAAU,yBACX0+M,EAAwB/wT,UAAW,4BAAwB,GAC9D8wT,GAAc,CACVz+M,GAAU,oBACX0+M,EAAwB/wT,UAAW,uBAAmB,GACzD8wT,GAAc,CACVz+M,GAAU,YACX0+M,EAAwB/wT,UAAW,eAAW,GACjD8wT,GAAc,CACVz+M,GAAU,qBACX0+M,EAAwB/wT,UAAW,wBAAoB,GAC1D8wT,GAAc,CACVj6I,GAAY,oBACbk6I,EAAwB/wT,UAAW,uBAAmB,GACzD8wT,GAAc,CACV/+M,IACDg/M,EAAwB/wT,UAAW,gBAAiB,MAChD+wT,EAjIiC,CAkI1C1tT,IAQEwuT,GAAqD,WACrD,IAAInqT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD+pT,GAAuD,SAAUhtT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D2pT,GAAkC,SAAUzpT,GAE5C,SAASypT,EAAiBlrT,QACP,IAAXA,IAAqBA,EAAS,IAClC,IAAIrD,EAAQ8E,EAAOjH,KAAKoC,KAAMsuT,EAAiBp3E,YAAY9zO,KAAYpD,KACvED,EAAMwuT,yBAA0B,EAChCxuT,EAAMyuT,wBAAyB,EAC/B,IAAIvgT,EAAQ7K,EAAO6K,MAAOwgT,EAAUrrT,EAAOqrT,QAAS3qM,EAAQ1gH,EAAO0gH,MAAOyqM,EAA0BnrT,EAAOmrT,wBAAyBC,EAAyBprT,EAAOorT,uBAYpK,OAXAzuT,EAAMkO,MAAQA,EACdlO,EAAM2uT,cAAgBtrT,EAAOsrT,eAAiB,UAC9C3uT,EAAM0uT,QAAqB,MAAXA,GAAkBA,EAClC1uT,EAAM+jH,MAAQA,GAAS,GACvB/jH,EAAM4uT,WAAavrT,EAAOurT,YAAc,SACT,MAA3BJ,IACAxuT,EAAMwuT,wBAA0BA,GAEN,MAA1BC,IACAzuT,EAAMyuT,uBAAyBA,GAE5BzuT,EAgLX,OAlMAquT,GAAaE,EAAkBzpT,GAoB/BypT,EAAiBp3E,YAAc,SAAU9zO,GACrC,IAAIsrT,EAAgBtrT,EAAOsrT,eAAiB,UACxC9mL,EAAYxkI,EAAOwkI,WAAa,WACpC,MAAkB,2BAA8B8mL,EAAgB,2DAA+DA,EAAgB,+GAAqHA,EAAgB,kHAAwHA,EAAgB,sHAA8HA,EAAgB,yGAA+GA,EAAgB,0LAAkM9mL,EAAY,OAAS8mL,EAAgB,4CAEp5BJ,EAAiB/xT,UAAUwiJ,cAAgB,WACvC,GAAI/+I,KAAK8jH,MAAMrmH,OAAQ,CACnB,IAAImxT,EAAe5uT,KAAK8jH,MACxB9jH,KAAK8jH,MAAQ,GACb9jH,KAAK+vK,SAAS6+I,GAElB,IAAIt+K,EAAiBtwI,KAAK8vG,mBAAmBygC,oBAC7CvwI,KAAK6uT,eAAexrI,SAAS/yC,EAAe,UAAW,YACnDtwI,KAAKiO,OACLjO,KAAK8uT,SAAS9uT,KAAKiO,OAEnBjO,KAAKyuT,SACLzuT,KAAK+uT,WAAW/uT,KAAKyuT,SAEzBzuT,KAAKgvT,cAAchvT,KAAK2uT,YACxB3uT,KAAKivT,oBAAoBjvT,KAAKuuT,yBAC9BvuT,KAAKkvT,mBAAmBlvT,KAAKwuT,wBAC7BxuT,KAAKmvT,sBACLnvT,KAAKovT,uBAETd,EAAiB/xT,UAAU4yT,oBAAsB,WAC7C,IAAIpvT,EAAQC,KACZA,KAAKqvT,iBAAiB30R,YAAYipI,GAAW,qBAAsB3jK,KAAK8vG,mBAAoB,OAC5F9vG,KAAKsvT,iBAAiB50R,YAAYipI,GAAW,mBAAoB3jK,KAAK8vG,mBAAoB,OAC1F9vG,KAAKmnH,mBAAmBnnH,KAAKuvT,UAAW,SAAS,WAAc,OAAOxvT,EAAMyvT,uBAC5ExvT,KAAKmnH,mBAAmBnnH,KAAKuvT,UAAW,WAAW,SAAU/iT,GACzD,OAAQA,EAAEs4J,SACN,KAAK+O,GAAQG,MACTj0K,EAAMyvT,oBACN,MACJ,KAAK37I,GAAQS,MACTv0K,EAAMyvT,mBAAkB,GACxB,MACJ,KAAK37I,GAAQO,KACTr0K,EAAMyvT,mBAAkB,GACxB,WAIhBlB,EAAiB/xT,UAAU6yT,oBAAsB,WAC7C,IAAIK,GAAYzvT,KAAKwuT,uBACrBhpK,GAAaxlJ,KAAK0vT,SAAU1vT,KAAKiiH,WAAajiH,KAAKuuT,yBACnD/oK,GAAaxlJ,KAAKsvT,iBAAkBG,GAAYzvT,KAAKiiH,UACrDujC,GAAaxlJ,KAAKqvT,iBAAkBI,IAAazvT,KAAKiiH,WAE1DqsM,EAAiB/xT,UAAUwlH,WAAa,WACpC,OAAO/hH,KAAKiiH,UAEhBqsM,EAAiB/xT,UAAUyyT,cAAgB,SAAUv4D,GACjD,IAAI7oF,EAAO5tK,KAAKqG,SACZrG,KAAK2uT,aAAel4D,GACpBvyG,GAAe0pB,EAAM,2BAA6B5tK,KAAK2uT,YAE3D3uT,KAAK2uT,WAAal4D,EAClB,IAAIk5D,EAAS,2BAA6B3vT,KAAK2uT,WAE/C,OADA7qK,GAAY8pB,EAAM+hJ,GACX3vT,MAEXsuT,EAAiB/xT,UAAUizT,kBAAoB,SAAUvtM,GACrD,OAAIjiH,KAAKwuT,wBACLxuT,KAAKiiH,UAAW,EAChBjiH,KAAKovT,sBACL5pK,GAAaxlJ,KAAKmoJ,YAAY,GACvBnoJ,OAEXiiH,EAAuB,MAAZA,EAAmBA,GAAYjiH,KAAKiiH,SAC3CjiH,KAAKiiH,WAAaA,IAGtBjiH,KAAKiiH,SAAWA,EAChBjiH,KAAKovT,sBACL5pK,GAAaxlJ,KAAKmoJ,WAAYlmC,GAC9BjiH,KAAKyM,cAAc,CAAEhN,KAAMO,KAAKiiH,SAAWqsM,EAAiBsB,eAAiBtB,EAAiBuB,mBALnF7vT,OAQfsuT,EAAiB/xT,UAAUwzK,SAAW,SAAUjsD,GAC5C,IAAI/jH,EAAQC,KACZ8jH,EAAMvlH,SAAQ,SAAU6uF,GAAQ,OAAOrtF,EAAM+vT,QAAQ1iO,OAEzDkhO,EAAiB/xT,UAAUuzT,QAAU,SAAU1iO,GAC3C,IAAIytD,EAAY76I,KAAKmoJ,WACjBjjC,EAAK93B,aAAgBxtF,GAAYwtF,EAAK/mF,SAAW+mF,EACrD02D,GAAY5+B,EAAI,iBAChB4+B,GAAY5+B,EAAI,MAAQllH,KAAK0uT,cAAgB,eAC7C7zK,EAAUngH,YAAYwqF,GACtBllH,KAAK8jH,MAAMxkH,KAAK4lH,IAEpBopM,EAAiB/xT,UAAUwzT,SAAW,SAAUl7M,EAAM31G,GAClD,IAAI8wT,EAAahwT,KAAK8jH,MAAM5kH,GAC5BmlJ,GAAoB2rK,EAAY,YAAan7M,IAEjDy5M,EAAiB/xT,UAAUuyT,SAAW,SAAU7gT,GAE5C,OADAjO,KAAKiwT,OAAO9hT,UAAYF,EACjBjO,MAEXsuT,EAAiB/xT,UAAU2zT,sBAAwB,SAAU5rJ,GACzDxgB,GAAY9jJ,KAAKuvT,UAAWjrJ,IAEhCgqJ,EAAiB/xT,UAAUwyT,WAAa,SAAUN,EAAS0B,GAOvD,OANAnwT,KAAKyuT,QAAUA,EACfzuT,KAAKowT,wBACLpwT,KAAKwvT,kBAAkBf,GAClB0B,GACDnwT,KAAK6uT,eAAen5I,SAAS+4I,GAE1BzuT,MAEXsuT,EAAiB/xT,UAAU8zT,UAAY,WACnC,OAAOrwT,KAAKyuT,SAEhBH,EAAiB/xT,UAAU+zT,eAAiB,SAAU15D,GAClD,IAAI72P,EAAQC,KAKZ,OAJAA,KAAK6uT,eAAevrI,eAAc,SAAU28D,GACxClgP,EAAMgvT,WAAW9uE,GAAc,GAC/B2W,EAAW3W,MAERjgP,MAEXsuT,EAAiB/xT,UAAU0yT,oBAAsB,SAAUp6M,GAIvD,OAHA70G,KAAKuuT,wBAA0B15M,EAC/B70G,KAAKovT,sBACLpvT,KAAKowT,wBACEpwT,MAEXsuT,EAAiB/xT,UAAU2yT,mBAAqB,SAAUr6M,GAKtD,OAJA70G,KAAKwuT,uBAAyB35M,EAC1BA,GACA70G,KAAKwvT,mBAAkB,GAEpBxvT,MAEXsuT,EAAiB/xT,UAAU6zT,sBAAwB,WAC/C/rK,GAAoBrkJ,KAAKqG,SAAU,eAAgBrG,KAAKyuT,SACpDzuT,KAAKuuT,0BAA4BvuT,KAAKyuT,SACtC3qK,GAAY9jJ,KAAKuvT,UAAW,+BAC5BvvT,KAAKuvT,UAAU1pK,gBAAgB,cAG/B3B,GAAelkJ,KAAKuvT,UAAW,+BAC/BvvT,KAAKuvT,UAAUnqM,aAAa,WAAY,MAE5Ci/B,GAAoBrkJ,KAAKmoJ,WAAY,+BAAgCnoJ,KAAKyuT,UAE9EH,EAAiBsB,eAAiB,WAClCtB,EAAiBuB,gBAAkB,YACnCxB,GAAc,CACVj7I,GAAY,cACbk7I,EAAiB/xT,UAAW,iBAAa,GAC5C8xT,GAAc,CACVj7I,GAAY,qBACbk7I,EAAiB/xT,UAAW,wBAAoB,GACnD8xT,GAAc,CACVj7I,GAAY,qBACbk7I,EAAiB/xT,UAAW,wBAAoB,GACnD8xT,GAAc,CACVj7I,GAAY,aACbk7I,EAAiB/xT,UAAW,gBAAY,GAC3C8xT,GAAc,CACVj7I,GAAY,mBACbk7I,EAAiB/xT,UAAW,sBAAkB,GACjD8xT,GAAc,CACVj7I,GAAY,WACbk7I,EAAiB/xT,UAAW,cAAU,GACzC8xT,GAAc,CACVj7I,GAAY,eACbk7I,EAAiB/xT,UAAW,kBAAc,GAC7C8xT,GAAc,CACV//M,IACDggN,EAAiB/xT,UAAW,gBAAiB,MACzC+xT,EAnM0B,CAoMnC1uT,IAQE2wT,GAAqD,WACrD,IAAItsT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDksT,GAAuD,SAAUnvT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8rT,GAAyB,SAAU5rT,GAEnC,SAAS4rT,EAAQ19G,GACb,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAMywT,EAAQv5E,YAAYnkC,KAAY/yM,KAgB9D,OAfAD,EAAM2wT,UAAW,EACjB3wT,EAAM4wT,YAAa,EACnB5wT,EAAM6wT,kBAAoB,CACtBz/S,EAAG,EACH4K,EAAG,GAEPhc,EAAM6iJ,SAAW,CACbzxI,EAAG,EACH4K,EAAG,GAEPhc,EAAM6rB,KAAO,CACT0tB,WAAOj6C,EACPu7E,YAAQv7E,GAEZU,EAAMgzM,OAASA,EACRhzM,EAuTX,OAzUAwwT,GAAaE,EAAS5rT,GAoBtB4rT,EAAQv5E,YAAc,SAAUnkC,GAC5B,IAAI27G,EAAiB37G,GAAUA,EAAO27G,eAAkB,UACxD,MAAkB,2BAA8BA,EAAgB,yFAAiGA,EAAgB,6GAAmHA,EAAgB,qHAA2HA,EAAgB,mIAAyIA,EAAgB,kDAE5lB+B,EAAQl0T,UAAUwiJ,cAAgB,WAC9B,IAAIh/I,EAAQC,KACRstF,EAAKttF,KAAK+yM,OAAQjwM,EAAYwqF,EAAGxqF,UAAW4tT,EAAWpjO,EAAGojO,SAAUG,EAAevjO,EAAGujO,aAAc5iT,EAAQq/E,EAAGr/E,MAAOwoG,EAAWnpB,EAAGmpB,SAAUn9D,EAAQg0C,EAAGh0C,MAAO0wG,EAAY18D,EAAG08D,UAAWpvE,EAAS0S,EAAG1S,OAAQk2O,EAAWxjO,EAAGwjO,SAAU3/S,EAAIm8E,EAAGn8E,EAAG4K,EAAIuxE,EAAGvxE,EACvP6xJ,EAAO5tK,KAAKqG,SACZvD,GACA9C,KAAK+wT,iBAAiBjuT,GAErB+tT,EAOD/sK,GAAY9jJ,KAAKuvT,UAAW,cANxBthT,GACAjO,KAAK8uT,SAAS7gT,GAElBjO,KAAKgxT,YAAwB,MAAZN,EAAmBA,EAAW1wT,KAAK0wT,WAKxD1wT,KAAKmnH,mBAAmBnnH,KAAKuvT,UAAW,aAAa,SAAU/iT,GAC3D,GAAIohK,EAAKhzE,SAASpuF,EAAEiuK,gBAChB7M,EAAKhzE,SAASjuF,SAAS+nM,gBACvB30M,EAAMkxT,iBAAiBr2N,SAASpuF,EAAEzQ,QAClCyQ,EAAEmpK,qBAHN,CAMA,IAAIS,EAAUr2K,EAAMmxT,gBAAgBppK,cAAc,uDAC9CsuB,GACAA,EAAQL,YAGZ/1K,KAAK2wT,aAGT3wT,KAAKgqJ,UAAyB,MAAbA,EAAoBA,EAAY,IACjDhqJ,KAAKy2G,SAAuB,MAAZA,EAAmBA,EAAW,IAC9Cz2G,KAAK0mN,YAAc1mN,KAAK8tK,aAAa24C,iBACjCntK,GACAt5C,KAAK+2P,SAASz9M,GAEdshC,GACA56E,KAAK4sR,UAAUhyM,GAEf56E,KAAKmxT,iBACLnxT,KAAKmxT,kBAEJ73Q,GAAUshC,GACX56E,KAAKoxT,cAELN,EACA9wT,KAAKqxT,UAEAlgT,GAAK4K,IACV/b,KAAKsxT,cAAcngT,EAAG4K,GAE1B/b,KAAK2wT,YAAa,EAClB3wT,KAAKkxT,gBAAgB/4Q,MAAMyiC,OAAS,MAExC61O,EAAQl0T,UAAU40T,gBAAkB,WAChC,IAAIpxT,EAAQC,KACR4tK,EAAO5tK,KAAKqG,SAChBunK,EAAKmI,QACL/1K,KAAKg7B,MAAQ,WACT4yI,EAAKloD,cAAc9qF,YAAYgzI,GAC/B7tK,EAAMqG,YAGdqqT,EAAQl0T,UAAUg1T,wBAA0B,SAAUpgT,EAAG4K,GACrD/b,KAAK4wT,kBAAoB,CAAEz/S,EAAGA,EAAG4K,EAAGA,IAExC00S,EAAQl0T,UAAUi1T,uBAAyB,SAAUpuT,GACjD,IAAImjS,EAAavmS,KAAK0mN,YAAYhkB,wBAC9Bl2L,EAAIpJ,EAAOoJ,EAAG03O,EAAS9gP,EAAO8gP,OAAQH,EAAQ3gP,EAAO2gP,MAAO0tE,EAAiBruT,EAAOquT,eAAgBC,EAAYtuT,EAAOsuT,UACvHC,EAAYnlT,EAAEo7J,QAAU5nK,KAAK4wT,kBAAkBz/S,EAC/CygT,EAAYplT,EAAEs7J,QAAU9nK,KAAK4wT,kBAAkB70S,EAC/Cu9B,EAAQt5C,KAAK82P,WACbl8K,EAAS56E,KAAK6xT,YAEdC,EAASvrB,EAAWvuN,MAAQxrE,EAAEo7J,SAAW5nK,KAAK4iJ,SAASzxI,GAAK,GAC5Do1R,EAAWtuN,OAASzrE,EAAEo7J,SAAW2+H,EAAWtuN,OAASj4E,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAAO1+B,EACxFw4Q,IAEGA,EADA5tE,EAICytE,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,MAGtD25O,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAG3Dy5O,EAGUE,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAAO1+B,GACtEq4Q,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAO9D25O,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAAO1+B,GAG7Dq4Q,EAAY,GAAKnlT,EAAEo7J,QAAU5nK,KAAK4iJ,SAASzxI,EAAIo1R,EAAWvuN,KAAO1+B,GAIlFq4Q,EAAYG,EAAQ,EAAIH,EACxB,IAAII,EAEJxrB,EAAWruN,KAAO1rE,EAAEs7J,SAAW9nK,KAAK4iJ,SAAS7mI,GAAK,GAC9CwqR,EAAWpuN,QAAU3rE,EAAEs7J,SAAWy+H,EAAWpuN,QAAUn4E,KAAK4iJ,SAAS7mI,EAAIwqR,EAAWruN,IAAM0C,GAC1FmpK,IAIC6tE,EAAY,GAAKplT,EAAEs7J,QAAU9nK,KAAK4iJ,SAAS7mI,EAAIwqR,EAAWruN,KAAOw5O,GAAa,IAG1EE,EAAY,GAAKplT,EAAEs7J,QAAU9nK,KAAK4iJ,SAAS7mI,EAAIwqR,EAAWruN,OAE9D6rK,IAGA6tE,EAAY,GAAKplT,EAAEs7J,QAAU9nK,KAAK4iJ,SAAS7mI,EAAIwqR,EAAWruN,IAAM0C,GAG5Dg3O,EAAY,GAAKplT,EAAEs7J,QAAU9nK,KAAK4iJ,SAAS7mI,EAAIwqR,EAAWruN,IAAM0C,GAEzE,OADAg3O,EAAYG,EAAQ,EAAIH,EACjB,CAAED,UAAWA,EAAWC,UAAWA,IAE9CnB,EAAQl0T,UAAU60T,YAAc,WAC5B,IAAI9jO,EAAKttF,KAAK4rB,KAAM0tB,EAAQg0C,EAAGh0C,MAAOshC,EAAS0S,EAAG1S,OAC7CthC,GACDt5C,KAAK+2P,SAAS/2P,KAAKqG,SAASw8I,aAE3BjoE,GACD56E,KAAK4sR,UAAU5sR,KAAKqG,SAAS2gJ,eAGrCypK,EAAQl0T,UAAU+0T,cAAgB,SAAUngT,EAAG4K,QACjC,IAAN5K,IAAgBA,EAAI,QACd,IAAN4K,IAAgBA,EAAI,GACxB,IAAIoyJ,EAASnuK,KAAKqG,SAClBrG,KAAK8tK,aAAak5H,cAAc,CAC5B74H,OAAQA,EACRh9J,EAAGA,EACH4K,EAAGA,EACH06F,SAAUz2G,KAAKy2G,SACfuzC,UAAWhqJ,KAAKgqJ,UAChB6zF,kBAAkB,IAEtB79O,KAAK4iJ,SAASzxI,EAAI8O,SAASkuJ,EAAOh2H,MAAM6/B,KAAM,IAC9Ch4E,KAAK4iJ,SAAS7mI,EAAIkE,SAASkuJ,EAAOh2H,MAAM+/B,IAAK,KAEjDu4O,EAAQl0T,UAAUs1T,UAAY,WAC1B,OAAO7xT,KAAK4rB,KAAKgvD,QAErB61O,EAAQl0T,UAAUqwR,UAAY,SAAUhyM,GACpC,IAAIgzF,EAAO5tK,KAAKqG,SACZ2rT,GAAY,EAChB,GAAsB,kBAAXp3O,IAAgD,IAAzBA,EAAO75E,QAAQ,KAC7C+oJ,GAAe8jB,EAAMhzF,GACrBA,EAASmsE,GAAkB6mB,GAC3BokJ,GAAY,MAEX,CACDp3O,EAAS1lE,KAAKuM,IAAIzhB,KAAKgqJ,UAAWpvE,GAClC,IAAImtE,EAAe6lB,EAAK7lB,aACpBA,GAAgBA,EAAazF,cAAiB1nE,EAAS56E,KAAK4iJ,SAAS7mI,EAAIgsI,EAAazF,eACtF1nE,EAASmtE,EAAazF,aAAetiJ,KAAK4iJ,SAAS7mI,GAGvD/b,KAAK4rB,KAAKgvD,SAAWA,IAGzB56E,KAAK4rB,KAAKgvD,OAASA,EACdo3O,GAIDpkJ,EAAKz1H,MAAM4xG,UAAY,QACvB6jB,EAAKz1H,MAAM6xG,UAAY,SAJvBF,GAAe8jB,EAAMhzF,KAO7B61O,EAAQl0T,UAAUu6P,SAAW,WACzB,OAAO92P,KAAK4rB,KAAK0tB,OAErBm3Q,EAAQl0T,UAAUw6P,SAAW,SAAUz9M,GACnC,IAAIs0H,EAAO5tK,KAAKqG,SACZ2rT,GAAY,EAChB,GAAqB,kBAAV14Q,IAA8C,IAAxBA,EAAMv4C,QAAQ,KAC3C4oJ,GAAcikB,EAAMt0H,GACpBA,EAAQ2tG,GAAiB2mB,GACzBokJ,GAAY,MAEX,CACD14Q,EAAQpkC,KAAKuM,IAAIzhB,KAAKy2G,SAAUn9D,GAChC,IAAIyuG,EAAe6lB,EAAK7lB,aACpBA,GAAgBA,EAAajF,aAAgBxpG,EAAQt5C,KAAK4iJ,SAASzxI,EAAI42I,EAAajF,cACpFxpG,EAAQyuG,EAAajF,YAAc9iJ,KAAK4iJ,SAASzxI,GAGrDnR,KAAK4rB,KAAK0tB,QAAUA,IAGxBt5C,KAAK4rB,KAAK0tB,MAAQA,EACb04Q,GAIDpkJ,EAAKz1H,MAAMu+D,SAAW,QACtBk3D,EAAKz1H,MAAMs+D,SAAW,SAJtBkzC,GAAcikB,EAAMt0H,KAO5Bm3Q,EAAQl0T,UAAU80T,OAAS,WACvB,IAAIzjJ,EAAO5tK,KAAKqG,SACZ8K,EAAKy8J,EAAK7lB,aAAajF,YAAc,EAAM9iJ,KAAK82P,WAAa,EAC7D/6O,EAAK6xJ,EAAK7lB,aAAazF,aAAe,EAAMtiJ,KAAK6xT,YAAc,EACnE7xT,KAAKsxT,cAAcngT,EAAG4K,IAE1B00S,EAAQl0T,UAAUy0T,YAAc,SAAUN,GAItC,GAHIA,IAAa1wT,KAAK0wT,WAClB1wT,KAAK0wT,SAAWA,GAEhBA,EAAU,CACV,IAAIuB,EAAkBjyT,KAAKiyT,gBAAkB,IAAIryT,GAAU6wT,EAAQyB,oBACnElyT,KAAKw4G,aAAatN,WAAW+mN,GAC7B,IAAIrkJ,EAAOqkJ,EAAgB5rT,SAC3BunK,EAAKlzI,YAAYopH,GAAYggB,GAAiB,QAAS9jK,KAAK8vG,oBAAqB,mCACjF9vG,KAAKmyT,kBAAkBF,GACvBA,EAAgB9qM,mBAAmBymD,EAAM,QAAS5tK,KAAKoyT,UAAU3nT,KAAKzK,YAErE,GAAIA,KAAKiyT,gBAAiB,CACvBrkJ,EAAO5tK,KAAKiyT,gBAAgB5rT,SAChCunK,EAAKloD,cAAc9qF,YAAYgzI,GAC/B5tK,KAAKiyT,gBAAkBjyT,KAAK8tG,YAAY9tG,KAAKiyT,mBAGrDxB,EAAQl0T,UAAUw0T,iBAAmB,SAAUsB,GAC3CA,EAAc/hJ,mBAAmBtwK,MACjCA,KAAKkxT,gBAAgBx2R,YAAY23R,EAAchsT,WAEnDoqT,EAAQl0T,UAAU41T,kBAAoB,SAAUtwK,EAAQe,GACpD,IAAIquK,EAAmBjxT,KAAKixT,iBACxBzpJ,EAAUypJ,EAAiBnpT,SAC3BgL,EAAM00J,EAAQ/pK,OACF,MAAZmlJ,IACAA,EAAW9vI,GAEf8vI,EAAW1tI,KAAKuM,IAAI,EAAGvM,KAAKsM,IAAIohI,EAAU9vI,IAC1C,IAAI86J,EAAO/rB,EAAOx7I,SAClBy9I,GAAY8pB,EAAM,6BACD,IAAbhrB,EACAquK,EAAiBtoK,sBAAsB,aAAcilB,GAEhDhrB,IAAa9vI,EAClBm+S,EAAiBtoK,sBAAsB,YAAailB,GAGpDpG,EAAQ5kB,EAAW,GAAG+F,sBAAsB,WAAYilB,GAE5D/rB,EAAOyuB,mBAAmBtwK,OAE9BywT,EAAQl0T,UAAUonJ,cAAgB,WAC9B,OAAOkD,GAAe7mJ,KAAKkxT,kBAE/BT,EAAQl0T,UAAUgnJ,aAAe,WAC7B,OAAOuD,GAAc9mJ,KAAKkxT,kBAE9BT,EAAQl0T,UAAUuyT,SAAW,SAAU7gT,GACnCjO,KAAKiwT,OAAO9hT,UAAYF,GAG5BwiT,EAAQl0T,UAAU61T,UAAY,WAC1BpyT,KAAKg7B,SAETy1R,EAAQl0T,UAAU6J,QAAU,WACpBpG,KAAKiyT,kBACLjyT,KAAKiyT,gBAAkBjyT,KAAK8tG,YAAY9tG,KAAKiyT,kBAEjD,IAAIrkJ,EAAO5tK,KAAKqG,SACZunK,GAAQA,EAAK7lB,cACb/nJ,KAAKg7B,QAETn2B,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCywT,EAAQyB,mBAAqB,gCAC7B1B,GAAc,CACV5hN,GAAU,iBACX6hN,EAAQl0T,UAAW,oBAAgB,GACtCi0T,GAAc,CACVp9I,GAAY,oBACbq9I,EAAQl0T,UAAW,uBAAmB,GACzCi0T,GAAc,CACVp9I,GAAY,cACbq9I,EAAQl0T,UAAW,iBAAa,GACnCi0T,GAAc,CACVp9I,GAAY,qBACbq9I,EAAQl0T,UAAW,wBAAoB,GAC1Ci0T,GAAc,CACVp9I,GAAY,WACbq9I,EAAQl0T,UAAW,cAAU,GAChCi0T,GAAc,CACVliN,IACDmiN,EAAQl0T,UAAW,gBAAiB,MAChCk0T,EA1UiB,CA2U1B7wT,IAQE0yT,GAAqD,WACrD,IAAIruT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDiuT,GAAuD,SAAUlxT,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D6tT,GAA0B,SAAU3tT,GAEpC,SAAS2tT,EAASz/G,GACd,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,IAAW/yM,KAgBzC,OAfAD,EAAM0yT,gBAAkB,utBACxB1yT,EAAM++F,UAAY,GAClB/+F,EAAM2yT,SAAU,EAChB3yT,EAAM+5G,UAAW,EACjB/5G,EAAM4yT,eAAgB,EACtB5yT,EAAM6yT,aAAc,EACpB7yT,EAAM8yT,kBAAoB,GAC1B9yT,EAAM+yT,sBAAwB,KAC9B/yT,EAAMgzT,YAAa,EACnBhzT,EAAMizT,aAAe,CACjB7hT,EAAG,EACH4K,EAAG,EACHu9B,MAAO,EACPshC,OAAQ,GAEL76E,EAyRX,OA3SAuyT,GAAaE,EAAU3tT,GAoBvB2tT,EAASj2T,UAAUwiJ,cAAgB,WAC/B,IAAIh/I,EAAQC,KACR4tK,EAAO5tK,KAAKqG,SACZinF,EAAKttF,KAAK+yM,OAAQ2/G,EAAUplO,EAAGolO,QAAS5zN,EAAYxR,EAAGwR,UAAWm0N,EAAc3lO,EAAG2lO,YACvFnvK,GAAY8pB,EAAM,aAClB5tK,KAAKkzT,YAAclzT,KAAKuvT,UACxB1qT,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAKmnH,mBAAmBymD,EAAM,WAAW,SAAUphK,GAC3CohK,EAAKhzE,SAASpuF,EAAEiuK,gBAGpB16K,EAAM+tK,aAAak7H,kBAAkBp7H,MAErC8kJ,GACA1yT,KAAKmzT,WAAWT,GAEhBO,GACAjzT,KAAKozT,eAAeH,GAExBjzT,KAAKqzT,cACDv0N,GACA9+F,KAAKszT,aAAax0N,IAG1B0zN,EAASj2T,UAAU40T,gBAAkB,WACjC,IAAIvjJ,EAAO5tK,KAAKqG,SACZinF,EAAKttF,KAAK+yM,OAAQ81F,EAAcv7M,EAAGu7M,YAAa5qD,EAAQ3wJ,EAAG2wJ,MAC3DpwE,EAAc7tK,KAAK8tK,aAAaC,SAAS,CACzCkwE,MAAOA,EACPz1F,OAAQolB,EACRswE,YAAY,EACZC,eAAgBn+O,KAAKoG,QAAQqE,KAAKzK,MAClC6oS,YAAaA,IAEbh7H,IACA7tK,KAAKg7B,MAAQ6yI,EAAYG,WAGjCwkJ,EAASj2T,UAAU82T,YAAc,WAC7B,IAAIzlJ,EAAO5tK,KAAKqG,SAChB,GAAKunK,EAAL,CAGA,IAAI2lJ,EAAS,IAAIC,UACbC,EAAWF,EAAOG,gBAAgB1zT,KAAKyyT,gBAAiB,aAAavkT,KACzE0/J,EAAKlzI,YAAY+4R,EAAS9uK,YAC1B3kJ,KAAK2zT,cAETnB,EAASj2T,UAAUo3T,UAAY,WAC3B,IAAI/lJ,EAAO5tK,KAAKqG,SAChBrG,KAAK4zT,WAAa,CACdC,QAAS,CAAE1pO,QAASyjF,EAAK9lB,cAAc,0BACvC5vE,IAAK,CAAEiS,QAASyjF,EAAK9lB,cAAc,sBACnCgsK,SAAU,CAAE3pO,QAASyjF,EAAK9lB,cAAc,2BACxC7vE,MAAO,CAAEkS,QAASyjF,EAAK9lB,cAAc,wBACrCisK,YAAa,CAAE5pO,QAASyjF,EAAK9lB,cAAc,8BAC3C3vE,OAAQ,CAAEgS,QAASyjF,EAAK9lB,cAAc,yBACtCksK,WAAY,CAAE7pO,QAASyjF,EAAK9lB,cAAc,6BAC1C9vE,KAAM,CAAEmS,QAASyjF,EAAK9lB,cAAc,yBAG5C0qK,EAASj2T,UAAU03T,kBAAoB,SAAUp5I,GAC7C,OAAO76K,KAAK4zT,WAAW/4I,GAAM1wF,SAEjCqoO,EAASj2T,UAAUmiQ,cAAgB,SAAUlyP,GACzCxM,KAAK+yT,YAAa,EAClB/yT,KAAKuxT,wBAAwB/kT,EAAEo7J,QAASp7J,EAAEs7J,UAE9C0qJ,EAASj2T,UAAU23T,SAAW,SAAU1nT,EAAGquK,GACvC,GAAK76K,KAAK+yT,WAAV,CAGA,IAAI7uE,IAAWrpE,EAAKz7J,MAAM,SACtB4kO,IAAYnpE,EAAKz7J,MAAM,UACvB2kO,IAAUlpE,EAAKz7J,MAAM,QACrB6kO,IAAappE,EAAKz7J,MAAM,WACxB+0S,EAAejwE,GAAUF,EACzBowE,EAAarwE,GAASE,EACtB32J,EAAKttF,KAAKwxT,uBAAuB,CAAEhlT,EAAGA,EAAG03O,OAAQA,EAAQH,MAAOA,IAAU4tE,EAAYrkO,EAAGqkO,UAAWC,EAAYtkO,EAAGskO,UACnHyC,EAAa,EACbC,EAAY,EAChB,GAAIH,GAAgBxC,EAAW,CAC3B,IAAI/pL,EAAYs8G,GAAU,EAAI,EAC1BqwE,EAAWv0T,KAAK82P,WAChBx7H,EAAWi5L,EAAY5C,EAAY/pL,EACnC4sL,GAAY,EACZtwE,IACAmwE,EAAaE,EAAWj5L,GACpBt7H,KAAK4iJ,SAASzxI,EAAIkjT,GAAc,GAAK/4L,GAAYt7H,KAAKy2G,YACtD+9M,GAAY,EACZH,EAAa,IAGhBG,GACDx0T,KAAK+2P,SAASz7H,GAGtB,GAAI84L,GAAcxC,EAAW,CACrBhqL,EAAYm8G,GAAS,EAAI,EAA7B,IACI0wE,EAAYz0T,KAAK6xT,YACjB7E,EAAYyH,EAAa7C,EAAYhqL,EACrC8sL,GAAa,EACb3wE,IACAuwE,EAAYG,EAAYzH,GACpBhtT,KAAK4iJ,SAAS7mI,EAAIu4S,GAAa,GAAKtH,GAAahtT,KAAKgqJ,aACtD0qK,GAAa,EACbJ,EAAY,IAGfI,GACD10T,KAAK4sR,UAAUogC,GAGvBhtT,KAAKuxT,wBAAwB/kT,EAAEo7J,QAASp7J,EAAEs7J,UACtCusJ,GAAcC,IACdt0T,KAAKsxT,cAActxT,KAAK4iJ,SAASzxI,EAAIkjT,EAAYr0T,KAAK4iJ,SAAS7mI,EAAIu4S,KAG3E9B,EAASj2T,UAAUqiQ,YAAc,WAC7B5+P,KAAK+yT,YAAa,EAClB,IAAI3vT,EAAS,CACT3D,KAAM,SACNmK,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,gBAEvC14G,KAAKyM,cAAcrJ,IAEvBovT,EAASj2T,UAAUo4T,YAAc,SAAUnoT,GACvCxM,KAAK85G,UAAW,EAChB95G,KAAKuxT,wBAAwB/kT,EAAEo7J,QAASp7J,EAAEs7J,UAE9C0qJ,EAASj2T,UAAUq4T,OAAS,SAAUpoT,GAClC,GAAKxM,KAAK85G,SAAV,CAGA,IAAIxsB,EAAKttF,KAAK4iJ,SAAUzxI,EAAIm8E,EAAGn8E,EAAG4K,EAAIuxE,EAAGvxE,EACrCgzE,EAAK/uF,KAAKwxT,uBAAuB,CACjChlT,EAAGA,EACHu3O,OAAO,EACP0tE,gBAAgB,EAChBC,UAAW1xT,KAAK6xT,YAAc7xT,KAAK2jJ,kBACnCguK,EAAY5iO,EAAG4iO,UAAWC,EAAY7iO,EAAG6iO,UAC7C5xT,KAAKsxT,cAAcngT,EAAIwgT,EAAW51S,EAAI61S,GACtC5xT,KAAKuxT,wBAAwB/kT,EAAEo7J,QAASp7J,EAAEs7J,WAE9C0qJ,EAASj2T,UAAUs4T,UAAY,WAC3B70T,KAAK85G,UAAW,GAEpB04M,EAASj2T,UAAUu4T,eAAiB,WAChC,GAAI90T,KAAK4yT,YAAa,CAClB,IAAItlO,EAAKttF,KAAKgzT,aAAc7hT,EAAIm8E,EAAGn8E,EAAG4K,EAAIuxE,EAAGvxE,EAAGu9B,EAAQg0C,EAAGh0C,MAAOshC,EAAS0S,EAAG1S,OAC9E56E,KAAK+2P,SAASz9M,GACdt5C,KAAK4sR,UAAUhyM,GACf56E,KAAKsxT,cAAcngT,EAAG4K,QAGtB/b,KAAKgzT,aAAa15Q,MAAQt5C,KAAK82P,WAC/B92P,KAAKgzT,aAAap4O,OAAS56E,KAAK6xT,YAChC7xT,KAAKgzT,aAAa7hT,EAAInR,KAAK4iJ,SAASzxI,EACpCnR,KAAKgzT,aAAaj3S,EAAI/b,KAAK4iJ,SAAS7mI,EACpC/b,KAAKsxT,cAAc,EAAG,GACtBtxT,KAAK4sR,UAAU,QACf5sR,KAAK+2P,SAAS,QAElB/2P,KAAK4yT,aAAe5yT,KAAK4yT,YACzB5yT,KAAK+0T,uBAETvC,EAASj2T,UAAUw4T,oBAAsB,WACrCvvK,GAAaxlJ,KAAKg1T,cAAeh1T,KAAK4yT,aACtCptK,GAAaxlJ,KAAKi1T,aAAcj1T,KAAK4yT,cAEzCJ,EAASj2T,UAAU24T,0BAA4B,WACvCl1T,KAAK6yT,kBAAkBp1T,SACvBuC,KAAK6yT,kBAAkBt0T,SAAQ,SAAU42T,GAAmB,OAAOA,OACnEn1T,KAAK6yT,kBAAkBp1T,OAAS,GAEhCuC,KAAK8yT,wBACL9yT,KAAK8yT,wBACL9yT,KAAK8yT,sBAAwB,OAGrCN,EAASj2T,UAAU6J,QAAU,WACzBpG,KAAKszT,cAAa,GAClBtzT,KAAKmzT,YAAW,GAChBnzT,KAAKo1T,mBAAqBp1T,KAAK8tG,YAAY9tG,KAAKo1T,oBAChDp1T,KAAKk1T,4BACLrwT,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCwyT,EAASj2T,UAAU+2T,aAAe,SAAUx0N,GACxC,IAAI/+F,EAAQC,KACa,mBAAd8+F,IACPA,EAAY,CACR+0N,QAAS/0N,EACT5mB,IAAK4mB,EACLg1N,SAAUh1N,EACV7mB,MAAO6mB,EACPi1N,YAAaj1N,EACb3mB,OAAQ2mB,EACRk1N,WAAYl1N,EACZ9mB,KAAM8mB,IAGdniG,OAAOsD,KAAK6+F,GAAWvgG,SAAQ,SAAUs8K,GACrC,IAAIl2K,EAAIm6F,EACJ1rF,EAAIynK,EACJx8J,IAAQ1Z,EAAEyO,GACV8xG,EAAKnlH,EAAMk0T,kBAAkB7gT,GAC7BhQ,EAASrD,EAAM6zT,WAAWxgT,GAAGosL,YAAc,CAC3Cj5E,SAAUrB,EACVy6E,YAAa5/L,EAAM2+P,cAAcj0P,KAAK1K,GACtC8/L,WAAY,SAAUrzL,GAAK,OAAOzM,EAAMm0T,SAAS1nT,EAAG4G,IACpDwsL,WAAY7/L,EAAM6+P,YAAYn0P,KAAK1K,MAEjCA,EAAM++F,UAAU1rF,KAAOiL,IAASte,EAAMgnH,WAAc1oG,KAClDA,GACAte,EAAM+/L,YAAYP,cAAcn8L,GAChC8hH,EAAG/sE,MAAMk9Q,cAAgB,QAGzBt1T,EAAM+/L,YAAYC,iBAAiB38L,GACnC8hH,EAAG/sE,MAAMk9Q,cAAgB,QAE7Bt1T,EAAM6zT,WAAWxgT,GAAGosL,WAAanhL,EAAMjb,OAAS/D,OAI5DmzT,EAASj2T,UAAU42T,WAAa,SAAUT,GACtC,GAAIA,IAAY1yT,KAAK0yT,QAArB,CAGA1yT,KAAK0yT,QAAUA,EACf,IAAItvT,EAASpD,KAAKs1T,yBAA2B,CACzC/uM,SAAUvmH,KAAKkzT,YACfvzH,YAAa3/L,KAAK20T,YAAYlqT,KAAKzK,MACnC6/L,WAAY7/L,KAAK40T,OAAOnqT,KAAKzK,MAC7B4/L,WAAY5/L,KAAK60T,UAAUpqT,KAAKzK,OAEhC0yT,GACA1yT,KAAK8/L,YAAYP,cAAcn8L,GAC/BpD,KAAKs1T,wBAA0BlyT,IAG/BpD,KAAK8/L,YAAYC,iBAAiB38L,GAClCpD,KAAKs1T,6BAA0Bj2T,KAGvCmzT,EAASj2T,UAAU62T,eAAiB,SAAUH,GAC1C,IAAIlzT,EAAQC,KACZ,IAAKizT,EAMD,OALAjzT,KAAKk1T,iCACDl1T,KAAKo1T,qBACLp1T,KAAK8tG,YAAY9tG,KAAKo1T,oBACtBp1T,KAAKo1T,mBAAqBp1T,KAAKg1T,aAAeh1T,KAAKi1T,kBAAe51T,IAI1E,IAAIkwT,EAAYvvT,KAAKuvT,UACrB,GAAKA,GAAa0D,IAAgBjzT,KAAK2yT,cAAvC,CAGA,IAAIyC,EAAqBp1T,KAAKo1T,mBAC1Bp1T,KAAKkrG,WAAW,IAAItrG,GAAqB,0CACzCguK,EAAOwnJ,EAAmB/uT,SAC9BunK,EAAKlzI,YAAY16B,KAAKg1T,aAAelxJ,GAAiB,WAAY9jK,KAAK8vG,qBACvEg0C,GAAY9jJ,KAAKg1T,aAAc,kCAC/BpnJ,EAAKlzI,YAAY16B,KAAKi1T,aAAenxJ,GAAiB,WAAY9jK,KAAK8vG,qBACvEg0C,GAAY9jJ,KAAKi1T,aAAc,kCAC/BnxK,GAAY9jJ,KAAKi1T,aAAc,aAC/BG,EAAmBjuM,mBAAmBymD,EAAM,QAAS5tK,KAAK80T,eAAerqT,KAAKzK,OAC9EA,KAAKmyT,kBAAkBiD,EAAoB,GAC3Cp1T,KAAK6yT,kBAAkBvzT,KAAKU,KAAKmnH,mBAAmBooM,EAAW,WAAYvvT,KAAK80T,eAAerqT,KAAKzK,QACpGA,KAAK8yT,sBAAwB9yT,KAAKmnH,mBAAmBnnH,KAAM,UAAU,WACjED,EAAM6yT,aAAc,EACpB7yT,EAAMg1T,2BAGdxC,GAAc,CACV3jN,GAAU,gBACX4jN,EAASj2T,UAAW,mBAAe,GAC/Bi2T,EA5SkB,CA6S3B/B,IAQE8E,GAAqD,WACrD,IAAItxT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDkxT,GAAkC,SAAU3wT,GAE5C,SAAS2wT,EAAiBziH,EAAQhvD,EAAWqzG,GAGzC,YAFkB,IAAdrzG,IAAwBA,EAAY,sBACtB,IAAdqzG,IAAwBA,EAAY,QACjCvyP,EAAOjH,KAAKoC,KAAM+yM,EAAQhvD,EAAWqzG,IAAcp3P,KA8B9D,OAlCAu1T,GAAaC,EAAkB3wT,GAM/B2wT,EAAiBj5T,UAAUwiJ,cAAgB,WACvCl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MAChCA,KAAK+yM,OAAOF,oBACZ7yM,KAAKy1T,+BAGbD,EAAiBj5T,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GACnD,IAAI5W,EAAM/hG,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,GAItD,OAHIx9G,KAAKm1K,OAAOz4K,QAAUA,IACtBsD,KAAKm1K,OAAOz4K,MAAQ+jG,EAAO/jG,GAASA,EAAQ,IAEzCkqG,GAEX4uN,EAAiBj5T,UAAUk5T,4BAA8B,WACrD,IAAIC,EAAU,IAAI9wS,OAAO,IAAM5kB,KAAK+yM,OAAOF,mBAAqB,KAC5D4iH,EAA8B,SAAUruT,GACpCA,EAAM3K,MAAQi5T,EAAQ7pT,KAAKzE,EAAM3K,MACjC2K,EAAMuuK,kBAGd31K,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQ,WAAYsgJ,GACjDz1T,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQ,SAAS,SAAU3oK,GACpD,IAAIkrB,EAAOlrB,EAAEmpT,cAAcC,QAAQ,QAC/BnlO,EAAK/4D,GAAM,SAAUhzB,GAAK,OAAQgxT,EAAQ7pT,KAAKnH,OAC/C8H,EAAEmpK,qBAIP6/I,EAnC0B,CAoCnCr+D,IAQE0+D,GAAqD,WACrD,IAAI5xT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwxT,GAAiC,SAAUjxT,GAE3C,SAASixT,EAAgB/iH,GACrB,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,eAAgB,KAAM,aAAe/yM,KAe1E,OAjBA61T,GAAaC,EAAiBjxT,GAI9BixT,EAAgBv5T,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GAClD,IAAI5W,EAAM/hG,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,GAEtD,OADAx9G,KAAKm1K,OAAOz4K,MAAQA,EACbkqG,GAEXkvN,EAAgBv5T,UAAUw1M,QAAU,SAAU12J,GAE1C,OADAr7C,KAAKm1K,OAAO95H,KAAOA,EACZr7C,MAEX81T,EAAgBv5T,UAAUy1M,QAAU,SAAU3vJ,GAE1C,OADAriD,KAAKm1K,OAAO9yH,KAAOA,EACZriD,MAEJ81T,EAlByB,CAmBlC3+D,IAQE4+D,GAAqD,WACrD,IAAI9xT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0xT,GAAuD,SAAU30T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DsxT,GAA0B,SAAUpxT,GAEpC,SAASoxT,EAASljH,GACd,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAQkjH,EAAShhJ,WAAaj1K,KAE5D,OADAD,EAAMk2P,eAAiB,MAChBl2P,EAoEX,OAxEAg2T,GAAaE,EAAUpxT,GAMvBoxT,EAAS15T,UAAU2I,KAAO,WACtB4+I,GAAY9jJ,KAAKk2T,QAAQ7vT,SAAU,oBAEvC4vT,EAAS15T,UAAU+mL,cAAgB,SAAUszE,GACzC,IAAI72P,EAAQC,KACRm2T,EAAex/D,GAAgBE,cAWnC,OAVA72P,KAAKmnH,mBAAmBnnH,KAAKkqL,MAAOisI,GAAc,WAC9C,IAAIC,EAAY7yS,WAAWxjB,EAAMmqL,MAAM/7C,YACvCpuI,EAAMm2T,QAAQxgJ,SAAS0gJ,EAAUz4T,YAAY,GAC7Ci5P,EAAWw/D,GAAa,MAE5Bp2T,KAAKmnH,mBAAmBnnH,KAAKk2T,QAASC,GAAc,WAChD,IAAIE,EAAct2T,EAAMm2T,QAAQ/nL,WAChCpuI,EAAMmqL,MAAMxU,SAAS2gJ,GAAa,GAClCz/D,EAAWrzO,WAAW8yS,OAEnBr2T,MAEXi2T,EAAS15T,UAAU+5T,eAAiB,SAAUh9Q,GAE1C,OADAt5C,KAAKk2T,QAAQn/D,SAASz9M,GACft5C,MAEXi2T,EAAS15T,UAAUg6T,kBAAoB,SAAUj9Q,GAE7C,OADAt5C,KAAKkqL,MAAM6sE,SAASz9M,GACbt5C,MAEXi2T,EAAS15T,UAAUi6T,YAAc,SAAUC,GAGvC,OAFAz2T,KAAKk2T,QAAQM,YAAYC,GACzBz2T,KAAKkqL,MAAMwsI,OAAOD,GACXz2T,MAEXi2T,EAAS15T,UAAUo6T,YAAc,SAAUC,GAGvC,OAFA52T,KAAKk2T,QAAQS,YAAYC,GACzB52T,KAAKkqL,MAAM2sI,OAAOD,GACX52T,MAEXi2T,EAAS15T,UAAU4xI,SAAW,WAC1B,OAAOnuI,KAAKkqL,MAAM/7C,YAEtB8nL,EAAS15T,UAAUm5K,SAAW,SAAUh5K,GACpC,OAAIsD,KAAKmuI,aAAezxI,IAGxBsD,KAAKkqL,MAAMxU,SAASh5K,GAAO,GAC3BsD,KAAKk2T,QAAQxgJ,SAASh5K,GAAO,GAC7BsD,KAAKyM,cAAc,CAAEhN,KAAMk3P,GAAgBE,iBAJhC72P,MAOfi2T,EAAS15T,UAAUu6T,QAAU,SAAUxxN,GAGnC,OAFAtlG,KAAKk2T,QAAQY,QAAQxxN,GACrBtlG,KAAKkqL,MAAM4sI,QAAQxxN,GACZtlG,MAEXi2T,EAAShhJ,SAAW,8SACpB+gJ,GAAc,CACV5iJ,GAAY,WACb6iJ,EAAS15T,UAAW,cAAU,GACjCy5T,GAAc,CACV5iJ,GAAY,YACb6iJ,EAAS15T,UAAW,eAAW,GAClCy5T,GAAc,CACV5iJ,GAAY,UACb6iJ,EAAS15T,UAAW,aAAS,GAChCy5T,GAAc,CACV1nN,IACD2nN,EAAS15T,UAAW,OAAQ,MACxB05T,EAzEkB,CA0E3BlgE,IAQEghE,GAAqD,WACrD,IAAI9yT,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0yT,GAAuD,SAAU31T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DsyT,GAA8B,SAAUpyT,GAExC,SAASoyT,EAAalkH,GAClB,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAMi3T,EAAahiJ,WAAaj1K,KAUxD,OATAD,EAAMic,EAAI,EACVjc,EAAMmc,EAAI,EACVnc,EAAM6a,EAAI,EACV7a,EAAMob,EAAI,EACVpb,EAAMm3T,oBAAqB,EAC3Bn3T,EAAMo3T,uBAAwB,EAC9Bp3T,EAAMq3T,yBAA0B,EAChCr3T,EAAMs3T,cAAe,EACrBt3T,EAAMu3T,OAASvkH,EAAOukH,OACfv3T,EAmNX,OA/NAg3T,GAAaE,EAAcpyT,GAc3BoyT,EAAa16T,UAAUwiJ,cAAgB,WACnC,IAAI6uB,EAAO5tK,KAAKqG,SAChBrG,KAAKu3T,mBACLv3T,KAAKmnH,mBAAmBnnH,KAAKw3T,YAAa,YAAax3T,KAAKy3T,sBAAsBhtT,KAAKzK,OACvFA,KAAKmnH,mBAAmBymD,EAAM,YAAa5tK,KAAK03T,sBAAsBjtT,KAAKzK,OAC3EA,KAAKmnH,mBAAmBnnH,KAAK23T,YAAa,YAAa33T,KAAK43T,kBAAkBntT,KAAKzK,OACnFA,KAAKmnH,mBAAmBymD,EAAM,YAAa5tK,KAAK63T,kBAAkBptT,KAAKzK,OACvEA,KAAKmnH,mBAAmBnnH,KAAK83T,cAAe,YAAa93T,KAAK+3T,oBAAoBttT,KAAKzK,OACvFA,KAAKmnH,mBAAmBymD,EAAM,YAAa5tK,KAAKg4T,oBAAoBvtT,KAAKzK,OAIzEA,KAAKmnH,mBAAmBx6G,SAAU,UAAW3M,KAAK+wS,UAAUtmS,KAAKzK,OACjEA,KAAKmnH,mBAAmBnnH,KAAKi4T,aAAc,QAASj4T,KAAKk4T,mBAAmBztT,KAAKzK,QAErFi3T,EAAa16T,UAAU47T,oBAAsB,WACzC,OAAOn4T,KAAKo4T,gBAAkBp4T,KAAKw3T,YAAY90H,yBAEnDu0H,EAAa16T,UAAU87T,eAAiB,WACpC,OAAOr4T,KAAKs4T,gBAAkBt4T,KAAK23T,YAAYj1H,yBAEnDu0H,EAAa16T,UAAUg8T,iBAAmB,WACtC,OAAOv4T,KAAKw4T,kBAAoBx4T,KAAK83T,cAAcp1H,yBAEvDu0H,EAAa16T,UAAUk7T,sBAAwB,SAAUjrT,GACrDxM,KAAKm4T,sBACLn4T,KAAKk3T,oBAAqB,EAC1Bl3T,KAAKy4T,YAAYjsT,IAErByqT,EAAa16T,UAAUm7T,sBAAwB,SAAUlrT,GACjDxM,KAAKk3T,oBACLl3T,KAAKy4T,YAAYjsT,IAGzByqT,EAAa16T,UAAUq7T,kBAAoB,SAAUprT,GACjDxM,KAAKq4T,iBACLr4T,KAAKm3T,uBAAwB,EAC7Bn3T,KAAK04T,cAAclsT,IAEvByqT,EAAa16T,UAAUs7T,kBAAoB,SAAUrrT,GAC7CxM,KAAKm3T,uBACLn3T,KAAK04T,cAAclsT,IAG3ByqT,EAAa16T,UAAUw7T,oBAAsB,SAAUvrT,GACnDxM,KAAKu4T,mBACLv4T,KAAKo3T,yBAA0B,EAC/Bp3T,KAAK24T,gBAAgBnsT,IAEzByqT,EAAa16T,UAAUy7T,oBAAsB,SAAUxrT,GAC/CxM,KAAKo3T,yBACLp3T,KAAK24T,gBAAgBnsT,IAG7ByqT,EAAa16T,UAAUw0S,UAAY,WAC/B/wS,KAAKk3T,oBAAqB,EAC1Bl3T,KAAKm3T,uBAAwB,EAC7Bn3T,KAAKo3T,yBAA0B,GAEnCH,EAAa16T,UAAUk8T,YAAc,SAAUjsT,GAC3C,IAAIosT,EAAU54T,KAAKo4T,gBACnB,GAAIQ,EAAS,CACT,IAAIznT,EAAI3E,EAAEo7J,QAAUgxJ,EAAQ5gP,KACxBj8D,EAAIvP,EAAEs7J,QAAU8wJ,EAAQ1gP,IAC5B/mE,EAAI+D,KAAKuM,IAAItQ,EAAG,GAChBA,EAAI+D,KAAKsM,IAAIrQ,EAAGynT,EAAQt/Q,OACxBv9B,EAAI7G,KAAKuM,IAAI1F,EAAG,GAChBA,EAAI7G,KAAKsM,IAAIzF,EAAG68S,EAAQh+O,QACxB56E,KAAK64T,iBAAiB1nT,EAAIynT,EAAQt/Q,MAAO,EAAIv9B,EAAI68S,EAAQh+O,UAGjEq8O,EAAa16T,UAAUm8T,cAAgB,SAAUlsT,GAC7C,IAAIssT,EAAU94T,KAAKs4T,gBACnB,GAAIQ,EAAS,CACT,IAAIC,EAAS/4T,KAAKg5T,kBACdC,EAAaF,EAAOr2H,wBACpBvxL,EAAI3E,EAAEo7J,QAAUkxJ,EAAQ9gP,KAC5B7mE,EAAI+D,KAAKuM,IAAItQ,EAAG,GAChBA,EAAI+D,KAAKsM,IAAIrQ,EAAG2nT,EAAQx/Q,OACxBt5C,KAAKgc,EAAI,EAAI7K,EAAI2nT,EAAQx/Q,MACzBy/Q,EAAO5gR,MAAM6/B,KAAQ7mE,EAAI8nT,EAAW3/Q,MAAQ,EAAK,KACjDt5C,KAAK2uL,WAGbsoI,EAAa16T,UAAUo8T,gBAAkB,SAAUnsT,GAC/C,IAAI0sT,EAAYl5T,KAAKw4T,kBACrB,GAAIU,EAAW,CACX,IAAIH,EAAS/4T,KAAKm5T,oBACdF,EAAaF,EAAOr2H,wBACpBvxL,EAAI3E,EAAEo7J,QAAUsxJ,EAAUlhP,KAC9B7mE,EAAI+D,KAAKuM,IAAItQ,EAAG,GAChBA,EAAI+D,KAAKsM,IAAIrQ,EAAG+nT,EAAU5/Q,OAC1Bt5C,KAAKmb,EAAIhK,EAAI+nT,EAAU5/Q,MACvBy/Q,EAAO5gR,MAAM6/B,KAAQ7mE,EAAI8nT,EAAW3/Q,MAAQ,EAAK,KACjDt5C,KAAK2uL,WAGbsoI,EAAa16T,UAAUoyL,OAAS,WAC5B,IAAI7hK,EAAQuhI,GAAMU,QAAiB,IAAT/uJ,KAAKgc,EAAShc,KAAKkc,EAAGlc,KAAK4a,EAAG5a,KAAKmb,GACzDi+S,EAAgB/qK,GAAMU,QAAiB,IAAT/uJ,KAAKgc,EAAS,EAAG,GAC/Cq9S,EAAYvsS,EAAMsiI,eAElBgT,EAAcpiK,KAAKs3T,OACnBgC,EAAgBjrK,GAAMC,WAAW8T,EAAYj0B,YAC7CmrL,EAAclqK,iBAAmBiqK,IACjCr5T,KAAKq3T,cAAe,GAExBj1J,EAAYsT,SAAS2jJ,GACrBr5T,KAAKo5T,cAAcjhR,MAAMohR,gBAAkBH,EAAchqK,eACzDpvJ,KAAKw5T,gBAAgBrhR,MAAMohR,gBAAkBF,GAMjDpC,EAAa16T,UAAUs8T,iBAAmB,SAAUY,EAAYC,GAC5D,IAAId,EAAU54T,KAAKo4T,iBAAmBp4T,KAAKm4T,sBAC3C,GAAIS,EAAS,CACT,IAAIe,EAAU35T,KAAKw5T,gBACfI,EAAcD,EAAQj3H,wBAC1B+2H,EAAavkT,KAAKuM,IAAI,EAAGg4S,GACzBA,EAAavkT,KAAKsM,IAAI,EAAGi4S,GACzBC,EAAaxkT,KAAKuM,IAAI,EAAGi4S,GACzBA,EAAaxkT,KAAKsM,IAAI,EAAGk4S,GACzB15T,KAAKkc,EAAIu9S,EACTz5T,KAAK4a,EAAI8+S,EACTC,EAAQxhR,MAAM6/B,KAAQyhP,EAAab,EAAQt/Q,MAAQsgR,EAAYtgR,MAAQ,EAAK,KAC5EqgR,EAAQxhR,MAAM+/B,KAAQ,EAAIwhP,GAAcd,EAAQh+O,OAASg/O,EAAYh/O,OAAS,EAAK,KACnF56E,KAAK2uL,WAGbsoI,EAAa16T,UAAUg7T,iBAAmB,WACtC,IAAIU,EAAehB,EAAagB,aAC5B4B,EAAY5B,EAAaxwT,KAAI,SAAUqlB,EAAO5tB,GAC9C,MAAO,mCAAuCA,EAAQ,6BAAgC4tB,EAAQ,+CAAmDA,EAAQ,cAE7J9sB,KAAKi4T,aAAapuO,UAAYgwO,EAAU7oT,KAAK,KAEjDimT,EAAa16T,UAAUm5K,SAAW,SAAUr3J,GACxC,IAAIyO,EAAQuhI,GAAMC,WAAWjwI,GACzBivE,EAAKxgE,EAAMwiI,QAASpmJ,EAAIokF,EAAG,GAAIl6E,EAAIk6E,EAAG,GAAInpF,EAAImpF,EAAG,GACrDttF,KAAKgc,GAAK/J,MAAM/I,GAAK,EAAIA,GAAK,IAC9BlJ,KAAKmb,EAAI2R,EAAMnhB,EACf,IAAI2sT,EAAkBt4T,KAAKs4T,iBAAmBt4T,KAAKq4T,iBAC/CG,EAAoBx4T,KAAKw4T,mBAAqBx4T,KAAKu4T,mBACvDv4T,KAAKg5T,kBAAkB7gR,MAAM6/B,MAASh4E,KAAKgc,EAAI,IAAMs8S,EAAgBh/Q,MAAS,KAC9Et5C,KAAKm5T,oBAAoBhhR,MAAM6/B,KAAQh4E,KAAKmb,EAAIq9S,EAAkBl/Q,MAAS,KAC3Et5C,KAAK64T,iBAAiBzlT,EAAGjP,IAE7B8yT,EAAa16T,UAAU27T,mBAAqB,SAAU1rT,GAClD,IAAIzQ,EAASyQ,EAAEzQ,OACf,GAAK0kG,EAAO1kG,EAAOitD,IAAnB,CAGA,IAAIA,EAAK/oC,SAASlkB,EAAOitD,GAAI,IAC7BhpD,KAAK01K,SAASuhJ,EAAagB,aAAajvQ,IACxChpD,KAAKoG,YAET6wT,EAAa16T,UAAUu9T,eAAiB,WACpC,IAAIhtS,EAAQuhI,GAAMU,QAAiB,IAAT/uJ,KAAKgc,EAAShc,KAAKkc,EAAGlc,KAAK4a,EAAG5a,KAAKmb,GACzDk+S,EAAYvsS,EAAMsiI,eAClB6oK,EAAehB,EAAagB,aAC3Bj4T,KAAKq3T,cAAgBY,EAAa,KAAOoB,IAI9CpB,EAAeA,EAAa1nO,QAAO,SAAUwpO,GAAgB,OAAOA,GAAgBV,KAEpFpB,EAAe,CAACoB,GAAWvlT,OAAOmkT,GAE9BA,EAAax6T,OAASw5T,EAAa+C,kBACnC/B,EAAeA,EAAahkT,MAAM,EAAGgjT,EAAa+C,kBAEtD/C,EAAagB,aAAeA,IAEhChB,EAAa16T,UAAU6J,QAAU,WAC7BpG,KAAK85T,iBACLj1T,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCi3T,EAAa+C,gBAAkB,EAC/B/C,EAAagB,aAAe,GAC5BhB,EAAahiJ,SAAW,2jCACxB+hJ,GAAc,CACV5jJ,GAAY,kBACb6jJ,EAAa16T,UAAW,qBAAiB,GAC5Cy6T,GAAc,CACV5jJ,GAAY,gBACb6jJ,EAAa16T,UAAW,mBAAe,GAC1Cy6T,GAAc,CACV5jJ,GAAY,oBACb6jJ,EAAa16T,UAAW,uBAAmB,GAC9Cy6T,GAAc,CACV5jJ,GAAY,gBACb6jJ,EAAa16T,UAAW,mBAAe,GAC1Cy6T,GAAc,CACV5jJ,GAAY,sBACb6jJ,EAAa16T,UAAW,yBAAqB,GAChDy6T,GAAc,CACV5jJ,GAAY,kBACb6jJ,EAAa16T,UAAW,qBAAiB,GAC5Cy6T,GAAc,CACV5jJ,GAAY,wBACb6jJ,EAAa16T,UAAW,2BAAuB,GAClDy6T,GAAc,CACV5jJ,GAAY,iBACb6jJ,EAAa16T,UAAW,oBAAgB,GAC3Cy6T,GAAc,CACV1oN,IACD2oN,EAAa16T,UAAW,gBAAiB,MACrC06T,EAhOsB,CAiO/Br3T,IAQEq6T,GAAqD,WACrD,IAAIh2T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD41T,GAAuD,SAAU74T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dw1T,GAA+B,SAAUt1T,GAEzC,SAASs1T,EAAcpnH,EAAQhvD,EAAWq2K,EAAYC,GAClD,IAAIt6T,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EACnB,6PAA2QsnH,EAAY,kBAAqBA,EAAY,IAAO,IAAM,oPAA+Pt2K,IAAc/jJ,KAK7lB,OAJAD,EAAMq6T,WAAaA,EACnBr6T,EAAMu6T,mBAAoB,EAC1Bv6T,EAAMw6T,oBAAqB,EAC3Bx6T,EAAMy6T,WAAY,EACXz6T,EAmFX,OA3FAk6T,GAAaE,EAAet1T,GAU5Bs1T,EAAc59T,UAAUwiJ,cAAgB,WACpC,IAAIh/I,EAAQC,KACZ6E,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpC,IAAIy6T,EAAYz6T,KAAK+uK,YAAc,WACnC/uK,KAAK06T,cAAct1M,aAAa,KAAMq1M,GACtC/9J,GAAmB18J,KAAKu3P,SAAUkjE,GAClC,IAAIE,EAAe,WACX56T,EAAMy6T,UACNz6T,EAAMy6T,WAAY,EAGlBz6T,EAAMi3P,eAGVj3P,EAAM66T,gBAAkB76T,EAAMqxM,eAE9BxjC,EAAO5tK,KAAKqG,SA0BhB,GAzBArG,KAAKmnH,mBAAmBymD,EAAM,aAAa,SAAUphK,IAC5CzM,EAAMy6T,WACPz6T,EAAM66T,iBACN76T,EAAM66T,gBAAgB7zM,WACtBnK,GAAU78G,EAAM66T,gBAAgBv0T,WAChCunK,EAAKhzE,SAASpuF,EAAEzQ,UAChBgE,EAAMy6T,WAAY,MAG1Bx6T,KAAKmnH,mBAAmBymD,EAAM,WAAW,SAAUphK,GAC/C,OAAQA,EAAEs4J,SACN,KAAK+O,GAAQQ,GACb,KAAKR,GAAQU,KACb,KAAKV,GAAQG,MACb,KAAKH,GAAQM,MACTwmJ,IACJ,KAAK9mJ,GAAQK,OACLn0K,EAAMu6T,mBACN9tT,EAAEmpK,iBAEN,UAGZ31K,KAAKmnH,mBAAmBnnH,KAAKu3P,SAAU,QAASojE,GAChD36T,KAAKmnH,mBAAmBnnH,KAAKgsL,OAAQ,QAAS2uI,GAC1C36T,KAAKo6T,WAAY,CACjB,IAAIS,EAAO/2J,GAAiB9jK,KAAKo6T,WAAYp6T,KAAK8vG,oBAC9C+qN,GACA76T,KAAKyqL,MAAM/vJ,YAAYmgS,KAInCV,EAAc59T,UAAU+5P,aAAe,WAC/B71J,EAAOzgG,KAAKw2P,YACZh6F,GAAkBx8J,KAAKu3P,SAAUv3P,KAAKu2P,cAGtCv2P,KAAKu3P,SAAS1xG,gBAAgB,mBAElChhJ,EAAOtI,UAAU+5P,aAAa14P,KAAKoC,OAEvCm6T,EAAc59T,UAAU+/J,aAAe,SAAUC,GAE7C,OADAD,GAAat8J,KAAKu3P,SAAUh7F,GACrBv8J,MAEXm6T,EAAc59T,UAAUk7P,cAAgB,SAAUn+M,GAE9C,OADAmwG,GAAgBzpJ,KAAKu3P,SAAUj+M,GACxBt5C,MAEXm6T,EAAc59T,UAAU01K,oBAAsB,WAC1C,OAAOjyK,KAAKu3P,UAEhB2iE,GAAc,CACV9mJ,GAAY,WACb+mJ,EAAc59T,UAAW,cAAU,GACtC29T,GAAc,CACV9mJ,GAAY,aACb+mJ,EAAc59T,UAAW,gBAAY,GACxC29T,GAAc,CACV9mJ,GAAY,kBACb+mJ,EAAc59T,UAAW,qBAAiB,GAC7C29T,GAAc,CACV9mJ,GAAY,UACb+mJ,EAAc59T,UAAW,aAAS,GAC9B49T,EA5FuB,CA6FhCxjE,IAQEmkE,GAAqD,WACrD,IAAI72T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDy2T,GAA+B,SAAUl2T,GAEzC,SAASk2T,EAAchoH,GACnB,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAQ,kBAAmB,gBAAkB/yM,KAI3E,OAHI+yM,GAAUA,EAAOjmL,QACjB/sB,EAAMrD,MAAQq2M,EAAOjmL,OAElB/sB,EA6DX,OAnEA+6T,GAAaC,EAAel2T,GAQ5Bk2T,EAAcx+T,UAAUwiJ,cAAgB,WACpCl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MAChCA,KAAKtD,OACLsD,KAAK01K,SAAS11K,KAAKtD,QAG3Bq+T,EAAcx+T,UAAU60M,WAAa,WACjC,IAAIrxM,EAAQC,KACRg7T,EAAWh7T,KAAKqG,SAASq8L,wBACzBu4H,EAAcj7T,KAAKkrG,WAAW,IAAIsnN,GAAS,CAC3C9B,UAAU,EACVzyE,OAAO,EACP4yE,cAAc,EACdp6M,SAAU,IACVn9D,MAAO,IACPshC,OAAQ,IACRzpE,EAAG6pT,EAAS/iP,MAAQ,IACpBl8D,EAAGi/S,EAAS9iP,IAAM,OAEtBl4E,KAAKs6T,mBAAoB,EACzBx2K,GAAYm3K,EAAY50T,SAAU,mBAClC,IAAI60T,EAAal7T,KAAKkrG,WAAW,IAAI+rN,GAAa,CAAEK,OAAQt3T,QA0B5D,OAzBAk7T,EAAW7zM,gBAAe,WAClB4zM,EAAYl0M,WACZhnH,EAAM+tG,YAAYmtN,MAG1BA,EAAY3qJ,mBAAmBtwK,MAC/Bi7T,EAAYlK,iBAAiBmK,GAC7BA,EAAWxlJ,SAAS11K,KAAKmuI,YACzB8sL,EAAY5zM,gBAAe,WAGlBtnH,EAAMw6T,mBAOPx6T,EAAMw6T,oBAAqB,GAN3Bx6T,EAAMw6T,oBAAqB,EACvBW,EAAWn0M,WACXhnH,EAAM+tG,YAAYotN,IAMtBn7T,EAAMgnH,WACNhnH,EAAMkyK,sBAAsB8D,QAEhCh2K,EAAMu6T,mBAAoB,KAEvBW,GAEXF,EAAcx+T,UAAUm5K,SAAW,SAAU5oJ,GACzC,OAAI9sB,KAAKtD,QAAUowB,EACR9sB,MAEXA,KAAK06T,cAAcviR,MAAMohR,gBAAkBzsS,EACpCjoB,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAM8sB,KAEhDiuS,EAAcx+T,UAAU4xI,SAAW,WAC/B,OAAOnuI,KAAKtD,OAETq+T,EApEuB,CAqEhCZ,IAQEgB,GAAqD,WACrD,IAAIl3T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD82T,GAAoC,SAAUv2T,GAE9C,SAASu2T,EAAmBroH,GACxB,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,kBAAmB,WAAa/yM,KAwErE,OA1EAm7T,GAAaC,EAAoBv2T,GAIjCu2T,EAAmB7+T,UAAUwiJ,cAAgB,WACzC,IAAIh/I,EAAQC,KACZ6E,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQ,QAAQ,WACzC,IAAIkmJ,EAAe93S,WAAWxjB,EAAMo1K,OAAOz4K,OACvCA,EAAQuV,MAAMopT,GAAgB,GAAKt7T,EAAMu7T,eAAeD,EAAa19T,YACrEoC,EAAMrD,QAAUA,GAChBqD,EAAM21K,SAASh5K,OAI3B0+T,EAAmB7+T,UAAU++T,eAAiB,SAAU5+T,GACpD,GAAc,KAAVA,EACA,MAAO,GAEPsD,KAAKu7T,YACL7+T,EAAQsD,KAAKw7T,gBAAgB9+T,IAEjC,IAAI2hB,EAAMkF,WAAW7mB,GAOrB,OANgB,MAAZsD,KAAKwhB,KAAenD,EAAMre,KAAKwhB,IAC/B9kB,EAAQsD,KAAKwhB,IAAI7jB,WAEA,MAAZqC,KAAKyhB,KAAepD,EAAMre,KAAKyhB,MACpC/kB,EAAQsD,KAAKyhB,IAAI9jB,YAEdjB,GAEX0+T,EAAmB7+T,UAAUi/T,gBAAkB,SAAU9+T,GACrD,GAAIsD,KAAKu7T,UAAW,CAChB,IAAIE,EAAcl4S,WAAW7mB,GAAO6gB,QAAQvd,KAAKu7T,WACjD7+T,EAAQ6mB,WAAWk4S,GAAa99T,WAEpC,OAAOjB,GAEX0+T,EAAmB7+T,UAAUm6T,OAAS,SAAUl1S,GAC5C,OAAIxhB,KAAKwhB,MAAQA,IAGjBxhB,KAAKwhB,IAAMA,EACXqpI,GAAqB7qJ,KAAKm1K,OAAQ,MAAO3zJ,IAH9BxhB,MAMfo7T,EAAmB7+T,UAAUs6T,OAAS,SAAUp1S,GAC5C,OAAIzhB,KAAKyhB,MAAQA,IAGjBzhB,KAAKyhB,IAAMA,EACXopI,GAAqB7qJ,KAAKm1K,OAAQ,MAAO1zJ,IAH9BzhB,MAMfo7T,EAAmB7+T,UAAUm/T,aAAe,SAAUH,GAElD,OADAv7T,KAAKu7T,UAAYA,EACVv7T,MAEXo7T,EAAmB7+T,UAAUu6T,QAAU,SAAUxxN,GAC7C,OAAItlG,KAAKslG,OAASA,IAGlBtlG,KAAKslG,KAAOA,EACZulD,GAAqB7qJ,KAAKm1K,OAAQ,OAAQ7vE,IAH/BtlG,MAMfo7T,EAAmB7+T,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GACrD9gH,EAAQsD,KAAKw7T,gBAAgB9+T,GAC7B,IAAIi/T,EAAkB37T,KAAKs7T,eAAe5+T,GAC1C,OAAIA,GAASi/T,EACF37T,KAEJ6E,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,IAEhD49M,EA3E4B,CA4ErC5F,IAQEoG,GAAqD,WACrD,IAAI33T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDu3T,GAA8B,SAAUh3T,GAExC,SAASg3T,EAAa9oH,GAClB,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,iBAAkB,UAAY/yM,KA+CnE,OAjDA47T,GAAaC,EAAch3T,GAI3Bg3T,EAAat/T,UAAUwiJ,cAAgB,WACnCl6I,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpC,IAAIstF,EAAKttF,KAAK+yM,OAAQvxL,EAAM8rE,EAAG9rE,IAAKC,EAAM6rE,EAAG7rE,IAAK6jF,EAAOhY,EAAGgY,KACjD,MAAP9jF,GACAxhB,KAAKw2T,YAAYh1S,GAEV,MAAPC,GACAzhB,KAAK22T,YAAYl1S,GAErBzhB,KAAK82T,QAAQxxN,GAAQ,IAEzBu2N,EAAat/T,UAAUi7P,kBAAoB,WACvC,IAAIz3P,EAAQC,KACR47I,EAAO8E,KACPz7B,EAAY22B,EAAO,SAAW,QAClC57I,KAAKmnH,mBAAmBnnH,KAAKm1K,OAAQlwD,GAAW,SAAUz4G,GACtD,IAAI9P,EAAQ8P,EAAEzQ,OAAOW,MACrBqD,EAAM21K,SAASh5K,OAGvBm/T,EAAat/T,UAAUi6T,YAAc,SAAU95T,GAG3C,OAFAsD,KAAKwhB,IAAM9kB,EACXsD,KAAKm1K,OAAO/vD,aAAa,MAAO1oH,EAAMiB,YAC/BqC,MAEX67T,EAAat/T,UAAUo6T,YAAc,SAAUj6T,GAG3C,OAFAsD,KAAKyhB,IAAM/kB,EACXsD,KAAKm1K,OAAO/vD,aAAa,MAAO1oH,EAAMiB,YAC/BqC,MAEX67T,EAAat/T,UAAUu6T,QAAU,SAAUp6T,GAEvC,OADAsD,KAAKm1K,OAAO/vD,aAAa,OAAQ1oH,EAAMiB,YAChCqC,MAEX67T,EAAat/T,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GAC/B,MAAZx9G,KAAKwhB,MACL9kB,EAAQwY,KAAKuM,IAAI8B,WAAW7mB,GAAQsD,KAAKwhB,KAAK7jB,YAElC,MAAZqC,KAAKyhB,MACL/kB,EAAQwY,KAAKsM,IAAI+B,WAAW7mB,GAAQsD,KAAKyhB,KAAK9jB,YAElD,IAAIipG,EAAM/hG,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,GAEtD,OADAx9G,KAAKm1K,OAAOz4K,MAAQA,EACbkqG,GAEJi1N,EAlDsB,CAmD/B1kE,IAQE2kE,GAAqD,WACrD,IAAI73T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDy3T,GAAuD,SAAU16T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dq3T,GAAwB,SAAUn3T,GAElC,SAASm3T,EAAOtN,QACU,IAAlBA,IAA4BA,EAAgB,WAChD,IAAI3uT,EAAQ8E,EAAOjH,KAAKoC,KAAiB,0BAA6B0uT,EAAgB,iCAAsC1uT,KAI5H,OAHAD,EAAM2uT,cAAgBA,EACtB3uT,EAAMR,QAAU,GAChBQ,EAAMk8T,QAAU,GACTl8T,EAuIX,OA9IA+7T,GAAaE,EAAQn3T,GASrBm3T,EAAOz/T,UAAU2I,KAAO,WACpBlF,KAAKmnH,mBAAmBnnH,KAAKqG,SAAU,UAAWrG,KAAKi7K,cAAcxwK,KAAKzK,QAE9Eg8T,EAAOz/T,UAAU0+K,cAAgB,SAAUzuK,GACvC,IAAI/P,EAAM+P,EAAEs4J,QACZ,OAAQroK,GACJ,KAAKo3K,GAAQG,MACT,GAAKh0K,KAAKk8T,cAGL,CACD,IAAIx5R,EAAM1iC,KAAKi8T,QAAQl7T,QAAQf,KAAKk8T,eACpCl8T,KAAKm8T,gBAAgBz5R,QAJrB1iC,KAAK01K,SAAS11K,KAAKmuI,YAMvB,MACJ,KAAK0lC,GAAQU,KACb,KAAKV,GAAQQ,GACT,IAAIiyI,EAAS7pT,IAAQo3K,GAAQU,KACzB6nJ,OAAkB,EAEtB,GADA5vT,EAAEmpK,iBACG31K,KAAKk8T,cAGL,CACD,IAAIG,EAAar8T,KAAKi8T,QAAQl7T,QAAQf,KAAKk8T,eACvCrpE,EAAUwpE,GAAc/V,EAAS,GAAK,GAC1CzzD,EAAU39O,KAAKsM,IAAItM,KAAKuM,IAAIoxO,EAAS,GAAI7yP,KAAKi8T,QAAQx+T,OAAS,GAC/D2+T,EAAkBp8T,KAAKi8T,QAAQppE,QAN/BupE,EAAkBp8T,KAAKi8T,QAAQ3V,EAAS,EAAItmT,KAAKi8T,QAAQx+T,OAAS,GAQtEuC,KAAKs8T,cAAcF,GACnB,QAGZJ,EAAOz/T,UAAUggU,WAAa,SAAUC,GACpC,IAAIz8T,EAAQC,KAEZ,OADAw8T,EAAYj+T,SAAQ,SAAUk+T,GAAc,OAAO18T,EAAM6iL,UAAU65I,MAC5Dz8T,MAEXg8T,EAAOz/T,UAAUqmL,UAAY,SAAU65I,GACnC,IAAI//T,EAAQ+/T,EAAW//T,MAAOg7B,EAAO+kS,EAAW/kS,KAC5CglS,EAAgB1oM,GAAat8F,GAAQh7B,GAGzC,OAFAsD,KAAKT,QAAQD,KAAK,CAAE5C,MAAOA,EAAOg7B,KAAMglS,IACxC18T,KAAK28T,aAAajgU,EAAOggU,GAClB18T,MAEXg8T,EAAOz/T,UAAUogU,aAAe,SAAUjgU,EAAOg7B,GAC7C,IAAI33B,EAAQC,KACR48T,EAASjwT,SAASa,cAAc,OACpCovT,EAAOx3M,aAAa,OAAQ,UAC5B0+B,GAAY84K,EAAQ,gBACpB94K,GAAY84K,EAAQ,MAAQ58T,KAAK0uT,cAAgB,cACjDkO,EAAO/yO,UAAY,SAAWnyD,EAAO,UACrCklS,EAAOh7K,UAAY,EACnB5hJ,KAAKi8T,QAAQ38T,KAAKs9T,GAClB58T,KAAKmnH,mBAAmBy1M,EAAQ,aAAa,WAAc,OAAO78T,EAAMu8T,cAAcM,MACtF58T,KAAKmnH,mBAAmBy1M,EAAQ,cAAc,WAAc,OAAO78T,EAAM88T,sBACzE78T,KAAKmnH,mBAAmBy1M,EAAQ,SAAS,WAAc,OAAO78T,EAAM21K,SAASh5K,MAC7EsD,KAAKqG,SAASq0B,YAAYkiS,IAE9BZ,EAAOz/T,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GACzC,GAAIx9G,KAAKtD,QAAUA,EAEf,OADAsD,KAAK88T,mBACE98T,KAEX,GAAa,MAATtD,EAEA,OADAsD,KAAKqgH,QACErgH,KAEX,IAAIkf,EAAM8lF,EAAUhlG,KAAKT,SAAS,SAAUkjL,GAAU,OAAOA,EAAO/lL,QAAUA,KAC9E,IAAa,IAATwiB,EAAY,CACZ,IAAIujK,EAASziL,KAAKT,QAAQ2f,GAC1Blf,KAAKtD,MAAQ+lL,EAAO/lL,MACpBsD,KAAK+8T,aAA8B,MAAft6I,EAAO/qJ,KAAe+qJ,EAAO/qJ,KAAO+qJ,EAAO/lL,MAC/DsD,KAAKs8T,cAAct8T,KAAKi8T,QAAQ/8S,IAC3Bs+F,GACDx9G,KAAKg9T,kBAGb,OAAOh9T,MAEXg8T,EAAOz/T,UAAU4/T,gBAAkB,SAAUj9S,GACzC,OAAOlf,KAAK01K,SAAS11K,KAAKT,QAAQ2f,GAAKxiB,QAE3Cs/T,EAAOz/T,UAAU4xI,SAAW,WACxB,OAAOnuI,KAAKtD,OAEhBs/T,EAAOz/T,UAAU0gU,gBAAkB,WAC/B,OAAOj9T,KAAK+8T,cAEhBf,EAAOz/T,UAAU2gU,mBAAqB,WAClC,IAAIn9T,EAAQC,KACZA,KAAK68T,mBACL,IAAI39S,EAAM8lF,EAAUhlG,KAAKT,SAAS,SAAUkjL,GAAU,OAAOA,EAAO/lL,QAAUqD,EAAMrD,UACvE,IAATwiB,GACAlf,KAAKs8T,cAAct8T,KAAKi8T,QAAQ/8S,KAGxC88S,EAAOz/T,UAAU8jH,MAAQ,WACrBrgH,KAAKtD,MAAQ,KACbsD,KAAK+8T,aAAe,KACpB/8T,KAAK68T,mBACL78T,KAAKg9T,mBAEThB,EAAOz/T,UAAU+/T,cAAgB,SAAUp3M,GAClCA,EAAG6iC,eAGR/nJ,KAAK68T,mBACL78T,KAAKk8T,cAAgBh3M,EACrB4+B,GAAY9jJ,KAAKk8T,cAAeF,EAAOmB,cACvCp/J,GAAgB/9J,KAAKk8T,eAAe,GACpCl8T,KAAKk8T,cAAcnmJ,UAEvBimJ,EAAOz/T,UAAUsgU,iBAAmB,WAC3B78T,KAAKk8T,eAAkBl8T,KAAKk8T,cAAcn0K,eAG/C7D,GAAelkJ,KAAKk8T,cAAeF,EAAOmB,cAC1Cp/J,GAAgB/9J,KAAKk8T,eAAe,GACpCl8T,KAAKk8T,cAAgB,OAEzBF,EAAOz/T,UAAUygU,gBAAkB,WAC/Bh9T,KAAKyM,cAAc,CAAEhN,KAAMk3P,GAAgBE,gBAC3C72P,KAAK88T,oBAETd,EAAOz/T,UAAUugU,iBAAmB,WAChC98T,KAAKyM,cAAc,CAAEhN,KAAMu8T,EAAOoB,uBAEtCpB,EAAOoB,oBAAsB,eAC7BpB,EAAOmB,aAAe,iBACtBpB,GAAc,CACVztN,IACD0tN,EAAOz/T,UAAW,OAAQ,MACtBy/T,EA/IgB,CAgJzBp8T,IAQEy9T,GAAqD,WACrD,IAAIp5T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDg5T,GAAuD,SAAUj8T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D44T,GAA0B,SAAU14T,GAEpC,SAAS04T,EAASxqH,GACd,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,YAAa,YAAa,YAAc/yM,KAgG7E,OAlGAq9T,GAAaE,EAAU14T,GAIvB04T,EAAShhU,UAAU2I,KAAO,WACtB,IAAInF,EAAQC,KACZA,KAAKw9T,cAAgBx9T,KAAKkrG,WAAW,IAAI8wN,GAAO,WAChDh8T,KAAKw9T,cAAcltJ,mBAAmBtwK,MACtCA,KAAKu3P,SAAS31G,SAAW,EACzB5hJ,KAAKw9T,cAAcr2M,mBAAmBnnH,KAAKw9T,cAAexB,GAAOoB,qBAAqB,WAAkBr9T,EAAM09T,UAC1G19T,EAAM09T,cAEVz9T,KAAKw9T,cAAcr2M,mBAAmBnnH,KAAKw9T,cAAe7mE,GAAgBE,eAAe,WACrF92P,EAAM21K,SAAS31K,EAAMy9T,cAAcrvL,YAAY,GAAO,GAClDpuI,EAAM09T,UACN19T,EAAM09T,eAIlBF,EAAShhU,UAAU60M,WAAa,WAC5B,IAAIrxM,EAAQC,KACR09T,EAAU19T,KAAKw9T,cAAcn3T,SAC7Bs3T,EAAwB39T,KAAKmnH,mBAAmBx6G,SAASuB,KAAM,SAAS,SAAU1B,IAC7EkxT,EAAQ9iO,SAASpuF,EAAEzQ,SAAWgE,EAAM09T,UACrC19T,EAAM09T,cAGVG,EAAsB59T,KAAKmnH,mBAAmBu2M,EAAS,YAAY,SAAUlxT,IACxEkxT,EAAQ9iO,SAASpuF,EAAEiuK,gBAAkB16K,EAAM09T,UAC5C19T,EAAM09T,cAGV5vJ,EAAc7tK,KAAK8tK,aAAaC,SAAS,CACzCkwE,OAAO,EACPz1F,OAAQk1K,EACRx/E,YAAY,EACZC,eAAgB,WACZp+O,EAAM09T,SAAW,KACjB19T,EAAMu6T,mBAAoB,EAC1BsD,IACAD,IACI59T,EAAMgnH,WACNhnH,EAAMkyK,sBAAsB8D,WAkBxC,OAdIlI,IACA7tK,KAAKy9T,SAAW5vJ,EAAYG,UAEhChuK,KAAKs6T,mBAAoB,EACzB7wK,GAAgBi0K,EAASz2K,GAAiBjnJ,KAAKu3P,WAC/CmmE,EAAQvlR,MAAM4xG,UAAYlD,GAAe7mJ,KAAK8tK,aAAa24C,kBAAoB,KAC/Ei3G,EAAQvlR,MAAMyqG,SAAW,WACzB5iJ,KAAK8tK,aAAaiwE,4BAA4B,CAC1Ct+O,KAAM,UACNgsL,YAAazrL,KAAKu3P,SAClBppF,OAAQuvJ,EACR7/E,kBAAkB,IAEtB79O,KAAKw9T,cAAcN,qBACZl9T,KAAKw9T,eAEhBD,EAAShhU,UAAUggU,WAAa,SAAUh9T,GACtC,IAAIQ,EAAQC,KAEZ,OADAT,EAAQhB,SAAQ,SAAUkkL,GAAU,OAAO1iL,EAAM6iL,UAAUH,MACpDziL,MAEXu9T,EAAShhU,UAAUqmL,UAAY,SAAUH,GAErC,OADAziL,KAAKw9T,cAAc56I,UAAUH,GACtBziL,MAEXu9T,EAAShhU,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,EAAQqgN,GACnD,GAAI79T,KAAKtD,QAAUA,EACf,OAAOsD,KAEN69T,GACD79T,KAAKw9T,cAAc9nJ,SAASh5K,GAAO,GAEvC,IAAIggH,EAAW18G,KAAKw9T,cAAcrvL,WAClC,OAAIzxB,IAAa18G,KAAKmuI,WACXnuI,MAEXA,KAAK06T,cAAc7wO,UAAY7pF,KAAKw9T,cAAcP,kBAC3Cp4T,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,KAEvD+/M,EAAShhU,UAAU6J,QAAU,WACrBpG,KAAKy9T,UACLz9T,KAAKy9T,WAETz9T,KAAK8tG,YAAY9tG,KAAKw9T,eACtB34T,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCs9T,GAAc,CACV1uN,GAAU,iBACX2uN,EAAShhU,UAAW,oBAAgB,GACvC+gU,GAAc,CACVhvN,IACDivN,EAAShhU,UAAW,OAAQ,MACxBghU,EAnGkB,CAoG3BpD,IAQE2D,GAAqD,WACrD,IAAI75T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDy5T,GAAuD,SAAU18T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dq5T,GAA+B,SAAUn5T,GAEzC,SAASm5T,EAAcjrH,GACnB,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,EAAQirH,EAAc/oJ,WAAaj1K,KAIjE,OAHAD,EAAMk+T,OAAS,EACfl+T,EAAMm+T,QAAU,EAChBn+T,EAAMo+T,QAAU,EACTp+T,EAiLX,OAvLA+9T,GAAaE,EAAen5T,GAQ5Bm5T,EAAczhU,UAAUwiJ,cAAgB,WACpC,IAAIh/I,EAAQC,KACZ6E,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,MACpCA,KAAKo+T,aAAe,CAChB73M,SAAUvmH,KAAKq+T,cACf3+H,gBAAiB,EACjBC,YAAa,SAAUnzL,GACnBzM,EAAMu+T,iBAAmBv+T,EAAMs+T,cAAc37H,yBAEjD7C,WAAY,SAAUrzL,GAAK,OAAOzM,EAAMw+T,mBAAmB/xT,IAC3DozL,WAAY,cAEhB5/L,KAAK8/L,YAAYP,cAAcv/L,KAAKo+T,cACpCp+T,KAAKw+T,YACAn7I,SAAS,IACT+yE,cAAc,GACdqB,cAAc,IACdi/D,OAAO,GACPG,OAAO,KACPnhJ,SAAS,GAAK11K,KAAKy+T,SACnBn7I,eAAc,SAAU5mL,GACZ,MAATA,GAA2B,KAAVA,IACjBA,EAAQ,KAEZA,EAAQqD,EAAMy+T,YAAYlD,eAAe5+T,GACzC,IAAIgiU,EAAan7S,WAAW7mB,GACxBgiU,EAAa,MACbA,GAA0B,KAE9B3+T,EAAM21K,SAASgpJ,MAEnB1+T,KAAK2+T,oBACDl+N,EAAOzgG,KAAKmuI,aACZnuI,KAAKw+T,YAAY9oJ,SAAS11K,KAAK4+T,uBAAuB5+T,KAAKmuI,YAAYxwI,YAE3EqC,KAAKmnH,mBAAmBnnH,KAAM22P,GAAgBE,eAAe,WACrD92P,EAAMy+T,YAAYvoJ,kBAAkBr7E,SAASjuF,SAAS+nM,gBAG1D30M,EAAM4+T,wBAGdX,EAAczhU,UAAUoiU,kBAAoB,WACxC,IAAIhD,EAAkB37T,KAAK4+T,uBAAuB5+T,KAAKmuI,YACvDnuI,KAAKw+T,YAAY9oJ,SAASimJ,EAAgBh+T,aAE9CqgU,EAAczhU,UAAUsiU,oBAAsB,SAAUC,GACpD,IAAIr8H,EAAOziM,KAAKs+T,kBAAoB,CAAEhlR,MAAO,GAAIshC,OAAQ,IACrDmkP,EAAe/+T,KAAK++T,aACpBC,EAAUv8H,EAAKnpJ,MAAQ,EACvB2lR,EAAUx8H,EAAK7nH,OAAS,EAC5BmkP,EAAa5mR,MAAM6/B,KAAOgnP,EAA8B,EAApB9pT,KAAKgqT,IAAIJ,GAAe,KAC5DC,EAAa5mR,MAAM+/B,IAAM+mP,EAA8B,EAApB/pT,KAAKiqT,IAAIL,GAAe,MAE/Dd,EAAczhU,UAAU6iU,eAAiB,WACrC,IAAIjuT,EAAInR,KAAKk+T,QACTniT,EAAI/b,KAAKm+T,QACTW,EAAU5pT,KAAKmqT,MAAMtjT,EAAG5K,GAC5BnR,KAAKy+T,QAAUz+T,KAAKs/T,UAAUR,GAC9B9+T,KAAKi+T,OAAS/oT,KAAKqqT,KAAMpuT,EAAIA,EAAM4K,EAAIA,GACvC/b,KAAK6+T,oBAAoBC,IAE7Bd,EAAczhU,UAAUijU,mBAAqB,WACzC,IAAIV,EAAU9+T,KAAKy/T,UAAUz/T,KAAKmuI,YAC9B8vL,EAASj+T,KAAK0/T,YAClB1/T,KACK2/T,WAAWzqT,KAAKgqT,IAAIJ,GAAWb,GAC/B2B,WAAW1qT,KAAKiqT,IAAIL,GAAWb,IAExCD,EAAczhU,UAAUojU,WAAa,SAAUvyS,GAK3C,OAJIptB,KAAKk+T,UAAY9wS,IACjBptB,KAAKk+T,QAAU9wS,EACfptB,KAAKo/T,kBAEFp/T,MAEXg+T,EAAczhU,UAAUqjU,WAAa,SAAUxyS,GAK3C,OAJIptB,KAAKm+T,UAAY/wS,IACjBptB,KAAKm+T,QAAU/wS,EACfptB,KAAKo/T,kBAEFp/T,MAEXg+T,EAAczhU,UAAUgiU,mBAAqB,SAAU/xT,GACnD,IAAIi2L,EAAOziM,KAAKs+T,iBACZU,EAAUv8H,EAAKnpJ,MAAQ,EACvB2lR,EAAUx8H,EAAK7nH,OAAS,EACxBzpE,EAAI3E,EAAEo7J,QAAU66B,EAAKzqH,KACrBj8D,EAAIvP,EAAEs7J,QAAU26B,EAAKvqH,IACrB2nP,EAAK1uT,EAAI6tT,EACTc,EAAK/jT,EAAIkjT,EACTH,EAAU5pT,KAAKmqT,MAAMS,EAAID,GAC7B7/T,KAAK01K,SAASopJ,GAAS,IAE3Bd,EAAczhU,UAAU+iU,UAAY,SAAUR,GAC1C,OAAOA,EAAU5pT,KAAK6qT,GAAK,KAE/B/B,EAAczhU,UAAUkjU,UAAY,SAAUhB,GAC1C,OAAOA,EAAU,IAAMvpT,KAAK6qT,IAEhC/B,EAAczhU,UAAUqiU,uBAAyB,SAAUH,GACvD,OAAOA,EAAU,EAAI,IAAMA,EAAUA,GAEzCT,EAAczhU,UAAUyjU,kBAAoB,SAAUlB,GAQlD,OAPAA,GAAqB,EAAV5pT,KAAK6qT,GACZjB,GAAW5pT,KAAK6qT,GAChBjB,GAAqB,EAAV5pT,KAAK6qT,GAEXjB,GAAW5pT,KAAK6qT,KACrBjB,GAAqB,EAAV5pT,KAAK6qT,IAEbjB,GAEXd,EAAczhU,UAAUmjU,UAAY,WAChC,OAAO1/T,KAAKi+T,QAEhBD,EAAczhU,UAAU0jU,UAAY,SAAUt7T,GAC1C,OAAI3E,KAAKi+T,SAAWt5T,IAGpB3E,KAAKi+T,OAASt5T,EACd3E,KAAKw/T,sBAHMx/T,MAMfg+T,EAAczhU,UAAU+mL,cAAgB,SAAUszE,GAC9C,IAAI72P,EAAQC,KAIZ,OAHAA,KAAKmnH,mBAAmBnnH,KAAM22P,GAAgBE,eAAe,WACzDD,EAAW72P,EAAM0+T,YAEdz+T,MAEXg+T,EAAczhU,UAAU4xI,SAAW,SAAU2wL,GACzC,OAAOA,EAAU9+T,KAAKy/T,UAAUz/T,KAAKy+T,SAAWz+T,KAAKy+T,SAEzDT,EAAczhU,UAAUm5K,SAAW,SAAU+oJ,EAASK,GAClD,IAAIoB,EAcJ,OATIA,EAJCpB,EAIcL,EAHAz+T,KAAKggU,kBAAkBhgU,KAAKy/T,UAAUhB,IAKzDA,EAAUz+T,KAAKs/T,UAAUY,GACrBlgU,KAAKy+T,UAAYA,IACjBz+T,KAAKy+T,QAAUvpT,KAAKkG,MAAMqjT,GAC1Bz+T,KAAKw/T,qBACLx/T,KAAK6+T,oBAAoBqB,GACzBlgU,KAAKyM,cAAc,CAAEhN,KAAMk3P,GAAgBE,iBAExC72P,MAEXg+T,EAAczhU,UAAUw6P,SAAW,SAAUz9M,GAEzC,OADAqwG,GAAc3pJ,KAAKqG,SAAUizC,GACtBt5C,MAEXg+T,EAAczhU,UAAU6J,QAAU,WAC9BpG,KAAK8/L,YAAYC,iBAAiB//L,KAAKo+T,cACvCv5T,EAAOtI,UAAU6J,QAAQxI,KAAKoC,OAElCg+T,EAAc/oJ,SAAW,8iBACzB8oJ,GAAc,CACV3qJ,GAAY,WACb4qJ,EAAczhU,UAAW,cAAU,GACtCwhU,GAAc,CACV3qJ,GAAY,kBACb4qJ,EAAczhU,UAAW,qBAAiB,GAC7CwhU,GAAc,CACV3qJ,GAAY,iBACb4qJ,EAAczhU,UAAW,oBAAgB,GAC5CwhU,GAAc,CACV3qJ,GAAY,gBACb4qJ,EAAczhU,UAAW,mBAAe,GAC3CwhU,GAAc,CACVnvN,GAAU,gBACXovN,EAAczhU,UAAW,mBAAe,GACpCyhU,EAxLuB,CAyLhCjoE,IAQEoqE,GAAqD,WACrD,IAAIl8T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD87T,GAAgC,SAAUv7T,GAE1C,SAASu7T,EAAertH,GACpB,OAAOluM,EAAOjH,KAAKoC,KAAM+yM,EAAQ,qBAAuB/yM,KAO5D,OATAmgU,GAAaC,EAAgBv7T,GAI7Bu7T,EAAe7jU,UAAUm5K,SAAW,SAAUh5K,EAAO8gH,GAGjD,OAFA34G,EAAOtI,UAAUm5K,SAAS93K,KAAKoC,KAAMtD,EAAO8gH,GAC5C6mC,GAAoBrkJ,KAAKqG,SAAU,cAAerG,KAAKmuI,YAChDnuI,MAEJogU,EAVwB,CAWjCxoE,IAQEyoE,GAAqD,WACrD,IAAIp8T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDg8T,GAAuD,SAAUj/T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAS5D47T,GAAoC,SAAU17T,GAE9C,SAAS07T,IACL,IAAIxgU,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAMygU,WAAa,GACZzgU,EAyHX,OA7HAsgU,GAAaE,EAAoB17T,GAMjC07T,EAAmBhkU,UAAUwiJ,cAAgB,WACzC/+I,KAAKw7G,OAASx7G,KAAK8vG,mBAAmBu/G,mBACtCrvN,KAAKygU,aAAezgU,KAAK8vG,mBAAmBy/G,0BAEhDgxG,EAAmBhkU,UAAUmkU,aAAe,SAAU31T,EAASiqG,EAAQ66D,GAEnE,IAAI8wJ,GAAiB3gU,KAAKw7G,SAAWzwG,EAAQ07J,OAC7C,GAAIk6J,EACA3gU,KAAK4gU,oBAAoB/wJ,OAD7B,CAIA,IAAIziF,EAAOptF,KAAK6gU,aAAa91T,GAAS,GAMtC,OAAQiqG,GACJ,KAAK5D,GAAUsB,YACX1yG,KAAK4gU,oBAAoBxzO,EAAKpV,MAC9BoV,EAAKpV,KAAO63F,EACZ,MACJ,KAAKz+D,GAAUqB,aACXzyG,KAAK4gU,oBAAoBxzO,EAAKnV,OAC9BmV,EAAKnV,MAAQ43F,EACb,MACJ,QACI7vK,KAAK4gU,oBAAoBxzO,EAAKikO,QAC9BjkO,EAAKikO,OAASxhJ,EACd,MAER7vK,KAAKwgU,WAAWjyS,MAAK,SAAU5iB,EAAGxH,GAC9B,OAAOA,EAAE28T,iBAAmBn1T,EAAEm1T,oBAElC9gU,KAAKg+R,WAAWh+R,KAAKygU,gBAEzBF,EAAmBhkU,UAAUskU,aAAe,SAAU91T,EAASg2T,QACxC,IAAfA,IAAyBA,GAAa,GAE1C,IADA,IAAIzjS,EAAM,KACD//B,EAAI,EAAGA,EAAIyC,KAAKwgU,WAAW/iU,OAAQF,IAAK,CAC7C,IAAI6vF,EAAOptF,KAAKwgU,WAAWjjU,GAC3B,GAAI6vF,EAAKriF,UAAYA,EAAS,CAC1BuyB,EAAM8vD,EACN,OAYR,OATK9vD,GAAOyjS,IACRzjS,EAAM,CACFvyB,QAASA,GAEb/K,KAAKwgU,WAAWlhU,KAAKg+B,IAErBA,GACAt9B,KAAKghU,eAAe1jS,GAEjBA,GAEXijS,EAAmBhkU,UAAUykU,eAAiB,SAAU5zO,GACpDA,EAAK0zO,kBAAmB,IAAIzkT,MAAOS,WAEvCyjT,EAAmBhkU,UAAUqkU,oBAAsB,SAAU/wJ,GACzD7vK,KAAKw4G,aAAa1K,YAAY+hE,IAElC0wJ,EAAmBhkU,UAAUyhS,WAAa,SAAUtqC,GAEhD,IAAK,IAAIn2P,EAAIm2P,EAAYn2P,EAAIyC,KAAKwgU,WAAW/iU,OAAQF,IAAK,CACtD,IAAI6vF,EAAOptF,KAAKwgU,WAAWjjU,GAC3ByC,KAAK4gU,oBAAoBxzO,EAAKikO,QAC9BrxT,KAAK4gU,oBAAoBxzO,EAAKpV,MAC9Bh4E,KAAK4gU,oBAAoBxzO,EAAKnV,OAG9Bj4E,KAAKwgU,WAAW/iU,OAASi2P,IACzB1zP,KAAKwgU,WAAW/iU,OAASi2P,IAGjC6sE,EAAmBhkU,UAAU8D,IAAM,SAAU0K,EAASiqG,GAClD,GAAKjqG,EAAQ07J,OAAb,CAGA,IACInpI,EADA8vD,EAAOptF,KAAK6gU,aAAa91T,GAE7B,GAAIqiF,EACA,OAAQ4nB,GACJ,KAAK5D,GAAUsB,YACPtlB,EAAKpV,OACL16C,EAAM8vD,EAAKpV,KACXoV,EAAKpV,UAAO34E,GAEhB,MACJ,KAAK+xG,GAAUqB,aACPrlB,EAAKnV,QACL36C,EAAM8vD,EAAKnV,MACXmV,EAAKnV,WAAQ54E,GAEjB,MACJ,QACQ+tF,EAAKikO,SACL/zR,EAAM8vD,EAAKikO,OACXjkO,EAAKikO,YAAShyT,GAElB,MAGZ,OAAOi+B,IAEXijS,EAAmBhkU,UAAU6J,QAAU,WACnCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,MAC9BA,KAAKg+R,WAAW,IAEpBsiC,GAAc,CACVhyN,IACDiyN,EAAmBhkU,UAAW,gBAAiB,MAClD+jU,GAAc,CACV9xN,IACD+xN,EAAmBhkU,UAAW,UAAW,MAC5CgkU,EAAqBD,GAAc,CAC/B5xN,GAAK,uBACN6xN,GACIA,EA9H4B,CA+HrC35M,IAQEq6M,GAAqD,WACrD,IAAIh9T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD48T,GAAuD,SAAU7/T,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dw8T,GAAkC,SAAUt8T,GAE5C,SAASs8T,IACL,OAAkB,OAAXt8T,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA8F/D,OAhGAihU,GAAaE,EAAkBt8T,GAI/Bs8T,EAAiB5kU,UAAUupS,YAAc,WACrC,IACIv2G,EADA3vC,EAAW,EAYf,OAVI5/I,KAAKqoP,eAAe6oC,uBACpB3hG,EAAYn+E,GAAUc,WAEjBlyG,KAAKk4I,SAASsjI,eACnBjsF,EAAY,KACZ3vC,EAAW5/I,KAAKw/I,gBAAgBC,mBAE3Bz/I,KAAKqoP,eAAe+oC,4BACzB7hG,EAAYn+E,GAAUe,oBAEL9yG,IAAdkwL,EAA0B,KAAO,CAAE3vC,SAAUA,EAAU2vC,UAAWA,IAE7E4xI,EAAiB5kU,UAAUspS,WAAa,WACpC,IAAIjmJ,EACA2vC,EAAY,KACZ6xI,EAAoBphU,KAAKqoP,eAAe+oC,0BACxCiwC,EAAiBrhU,KAAKqoP,eAAe6oC,uBAazC,OAZIkwC,GACA7xI,EAAYn+E,GAAUe,cACtBytC,EAAWwhL,EAAoB,GAE1BphU,KAAKk4I,SAASsjI,eACnBjsF,EAAY,KACZ3vC,EAAW5/I,KAAKw/I,gBAAgBG,kBAE3B0hL,IACL9xI,EAAYn+E,GAAUc,WACtB0tC,EAAWyhL,EAAiB,QAEZhiU,IAAbugJ,EAAyB,KAAO,CAAEA,SAAUA,EAAU2vC,UAAWA,IAE5E4xI,EAAiB5kU,UAAUoyO,WAAa,SAAUgjB,GAC9C,OAAQA,EAAQpiE,WACZ,KAAKn+E,GAAUc,WACX,OAAOlyG,KAAKqoP,eAAe9jC,sBAAsBotC,EAAQ/xG,UAC7D,KAAKxuC,GAAUe,cACX,OAAOnyG,KAAKqoP,eAAe5jC,yBAAyBktC,EAAQ/xG,UAChE,QACI,OAAO5/I,KAAKk4I,SAAS4H,OAAO6xG,EAAQ/xG,YAGhDuhL,EAAiB5kU,UAAU4lP,QAAU,SAAUm/E,EAAMC,GAEjD,OAAKD,IAASC,KAITD,IAASC,IAAWD,GAAQC,KAI1BD,EAAK1hL,WAAa2hL,EAAK3hL,UAAY0hL,EAAK/xI,WAAagyI,EAAKhyI,YAGrE4xI,EAAiB5kU,UAAUilU,OAAS,SAAUF,EAAMC,GAChD,OAAQD,EAAK/xI,WACT,KAAKn+E,GAAUc,WAEX,GAAIqvN,EAAKhyI,YAAcn+E,GAAUc,WAC7B,OAAO,EAEX,MACJ,KAAKd,GAAUe,cAEX,GAAIovN,EAAKhyI,YAAcn+E,GAAUe,cAC7B,OAAO,EAEX,MACJ,QAEI,GAAI1R,EAAO8gO,EAAKhyI,WACZ,OAAOgyI,EAAKhyI,YAAcn+E,GAAUc,WAExC,MAER,OAAOovN,EAAK1hL,SAAW2hL,EAAK3hL,UAEhCshL,GAAc,CACVtyN,GAAU,aACXuyN,EAAiB5kU,UAAW,gBAAY,GAC3C2kU,GAAc,CACVtyN,GAAU,mBACXuyN,EAAiB5kU,UAAW,sBAAkB,GACjD2kU,GAAc,CACVtyN,GAAU,oBACXuyN,EAAiB5kU,UAAW,uBAAmB,GAClD4kU,EAAmBD,GAAc,CAC7BxyN,GAAK,qBACNyyN,GACIA,EAjG0B,CAkGnCv6M,IAQE66M,GAAqD,WACrD,IAAIx9T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDo9T,GAAuD,SAAUrgU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dg9T,GAAmC,SAAU98T,GAE7C,SAAS88T,IACL,OAAkB,OAAX98T,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAkB/D,OApBAyhU,GAAaE,EAAmB98T,GAIhC88T,EAAkBplU,UAAUw5O,SAAW,SAAU3M,GAC7C,IAAIxpF,EAAWwpF,EAAaxpF,SAAU2vC,EAAY65C,EAAa75C,UAAW7nL,EAAS0hO,EAAa1hO,OAChG,OAAO1H,KAAK4hU,mBAAmBhiL,EAAUl4I,EAAQ6nL,IAErDoyI,EAAkBplU,UAAUqlU,mBAAqB,SAAUhiL,EAAUl4I,EAAQ6nL,GACzE,OAAO3vC,EAAW,KAAoB,MAAb2vC,EAAoB,OAASA,GAAa,IAAM7nL,EAAO2vG,SAEpFsqN,EAAkBplU,UAAU89F,OAAS,SAAUwnO,EAAOC,GAClD,IAAIC,EAAYF,EAAMn6T,SAAWo6T,EAAMp6T,OACnCs6T,EAAgBH,EAAMtyI,YAAcuyI,EAAMvyI,UAC1C0yI,EAAaJ,EAAMjiL,WAAakiL,EAAMliL,SAC1C,OAAOmiL,GAAaC,GAAiBC,GAEzCN,EAAoBD,GAAc,CAC9BhzN,GAAK,sBACNizN,GACIA,EArB2B,CAsBpC/6M,IAQEs7M,GAAqD,WACrD,IAAIj+T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD69T,GAAuD,SAAU9gU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Dy9T,GAAgC,SAAUv9T,GAE1C,SAASu9T,IACL,OAAkB,OAAXv9T,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA2H/D,OA7HAkiU,GAAaE,EAAgBv9T,GAI7Bu9T,EAAe7lU,UAAU2I,KAAO,WAC5BlF,KAAK8wR,oBAAoB9wR,KAAK8vG,mBAAmBy0G,uBACjDvkN,KAAKgxR,uBAAuBhxR,KAAK8vG,mBAAmB20G,2BAExD29G,EAAe7lU,UAAUqqI,QAAU,SAAUmkH,GACzC,IAAI1oM,EAAO0oM,IAAa35I,GAAUc,WAAalyG,KAAKqiU,cAAgBriU,KAAKsiU,iBACzE,OAAO1hO,EAAev+C,IAE1B+/Q,EAAe7lU,UAAU8wP,eAAiB,SAAUtC,GAChD,OAAQ/qP,KAAK4mI,QAAQmkH,IAEzBq3E,EAAe7lU,UAAUgmU,cAAgB,SAAU/xI,EAAOu6D,GACtD,IAAI1oM,EAAO0oM,IAAa35I,GAAUc,WAAalyG,KAAKqiU,cAAgBriU,KAAKsiU,iBACzE,GAAI1hO,EAAev+C,GACf,OAAO,EAEX,IAAK,IAAI9kD,EAAI,EAAGA,EAAI8kD,EAAK5kD,OAAQF,IAAK,CAClC,IAAIwN,EAAUs3C,EAAK9kD,GACf0+Q,EAAclxQ,EAAQm1I,OAASn1I,EAAQk1I,UAAY,EAGvD,GAAIg8H,GAAezrF,EACf,OAAOjzL,EAGf,OAAO8kD,EAAK5kD,OAAS,GAEzB2kU,EAAe7lU,UAAUu0R,oBAAsB,SAAU1mR,GACrDpK,KAAKqiU,cAAgBriU,KAAKwiU,oBAAoBp4T,GAAS,GACvD,IAAIhD,EAAQ,CACR3H,KAAMktH,GAAOoB,8BACbnkH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCg7T,EAAe7lU,UAAUy0R,uBAAyB,SAAU5mR,GACxDpK,KAAKsiU,iBAAmBtiU,KAAKwiU,oBAAoBp4T,GAAS,GAC1D,IAAIhD,EAAQ,CACR3H,KAAMktH,GAAOoB,8BACbnkH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCg7T,EAAe7lU,UAAUimU,oBAAsB,SAAUC,EAAS1+E,GAC9D,IAAIhkP,EAAQC,KACRioK,EAAW,GACf,GAAIw6J,EAAS,CACT,IAAIC,EAAe,EACnBD,EAAQlkU,SAAQ,SAAUokU,EAAUzjU,GAChC,IAAI6L,EAAU,IAAIkjL,GAClBluL,EAAMspG,QAAQ6B,WAAWngG,GACzBA,EAAQxK,KAAOoiU,EACf,IAAIC,EAAW7+E,EAAQ91D,GAAQqJ,qBAAuBrJ,GAAQsJ,wBAC9DxsL,EAAQi+C,GAAK45Q,EAAW1jU,EACxB6L,EAAQwkL,UAAYw0D,EAAQ3yI,GAAUc,WAAad,GAAUe,cAC7DpnG,EAAQimL,UAAU0xI,GAClB33T,EAAQgnL,aAAahyL,EAAM+vG,mBAAmBuoH,oBAAoBttN,GAAS6vE,QAC3E7vE,EAAQomL,YAAYjyL,GACpBwjU,GAAgB33T,EAAQk1I,UACxBgoB,EAAS3oK,KAAKyL,MAGtB,OAAOk9J,GAEXm6J,EAAe7lU,UAAUgoN,oBAAsB,WAC3C,OAAOvkN,KAAKqiU,eAEhBD,EAAe7lU,UAAUkoN,uBAAyB,WAC9C,OAAOzkN,KAAKsiU,kBAEhBF,EAAe7lU,UAAUynR,wBAA0B,WAC/C,OAAOhkR,KAAK6iU,eAAe7iU,KAAKqiU,gBAEpCD,EAAe7lU,UAAU20R,qBAAuB,WAC5C,OAAOlxR,KAAKqiU,cAAgBriU,KAAKqiU,cAAc5kU,OAAS,GAE5D2kU,EAAe7lU,UAAU60R,wBAA0B,WAC/C,OAAOpxR,KAAKsiU,iBAAmBtiU,KAAKsiU,iBAAiB7kU,OAAS,GAElE2kU,EAAe7lU,UAAUg3P,gBAAkB,SAAUr0P,GACjD,OAAOc,KAAKqiU,cAAcnjU,IAE9BkjU,EAAe7lU,UAAUi3P,mBAAqB,SAAUt0P,GACpD,OAAOc,KAAKsiU,iBAAiBpjU,IAEjCkjU,EAAe7lU,UAAUumU,oBAAsB,SAAUp9T,GACjDk7F,EAAe5gG,KAAKqiU,gBAGxBriU,KAAKqiU,cAAc9jU,QAAQmH,IAE/B08T,EAAe7lU,UAAUwmU,uBAAyB,SAAUr9T,GACpDk7F,EAAe5gG,KAAKsiU,mBAGxBtiU,KAAKsiU,iBAAiB/jU,QAAQmH,IAElC08T,EAAe7lU,UAAU2nR,2BAA6B,WAClD,OAAOlkR,KAAK6iU,eAAe7iU,KAAKsiU,mBAEpCF,EAAe7lU,UAAUsmU,eAAiB,SAAU56J,GAChD,IAAKA,GAAgC,IAApBA,EAASxqK,OACtB,OAAO,EAEX,IAAIulU,EAAW7mP,EAAK8rF,GACpB,OAAO+6J,EAAS9iL,OAAS8iL,EAAS/iL,WAEtCkiL,GAAc,CACVvzN,GAAU,cACXwzN,EAAe7lU,UAAW,iBAAa,GAC1C4lU,GAAc,CACVvzN,GAAU,YACXwzN,EAAe7lU,UAAW,eAAW,GACxC4lU,GAAc,CACV7zN,IACD8zN,EAAe7lU,UAAW,OAAQ,MACrC6lU,EAAiBD,GAAc,CAC3BzzN,GAAK,mBACN0zN,GACIA,EA9HwB,CA+HjCx7M,IAQEq8M,GAAqD,WACrD,IAAIh/T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD4+T,GAAgC,WAChC,SAASA,EAAeC,GACpBnjU,KAAKmjU,iBAAmBA,EAE5B,OAAOD,EAJwB,GAM/BE,GAAoC,SAAUv+T,GAE9C,SAASu+T,EAAmBD,EAAkBE,EAAcC,GACxD,IAAIvjU,EAAQ8E,EAAOjH,KAAKoC,KAAMmjU,IAAqBnjU,KAGnD,OAFAD,EAAMsjU,aAAeA,EACrBtjU,EAAMujU,WAAaA,EACZvjU,EAEX,OAPAkjU,GAAaG,EAAoBv+T,GAO1Bu+T,EAR4B,CASrCF,IACEK,GAA+B,WAC/B,SAASA,EAAcC,GACnBxjU,KAAKyjU,YAAc,GACnBzjU,KAAKwjU,aAAeA,GAA8BD,EAAcG,mBAChE1jU,KAAKyjU,YAAc,IAAIpmU,MAAM2C,KAAKwjU,cAsBtC,OApBAD,EAAchnU,UAAU4xB,IAAM,WAC1B,OAAOnuB,KAAKyjU,YAAYt1S,OAE5Bo1S,EAAchnU,UAAU+C,KAAO,SAAU8tF,GACrC,IAAIu2O,EAAmBv2O,EAAK+1O,kBAAoB/1O,EAAK+1O,iBAAiB1lU,OAAS,EAC1EkmU,IAGD3jU,KAAKyjU,YAAYhmU,SAAWuC,KAAKwjU,cACjCxjU,KAAKyjU,YAAY34S,QAErB9qB,KAAKyjU,YAAYnkU,KAAK8tF,KAE1Bm2O,EAAchnU,UAAUkgS,MAAQ,WAC5Bz8R,KAAKyjU,YAAc,IAEvBF,EAAchnU,UAAUqnU,oBAAsB,WAC1C,OAAO5jU,KAAKyjU,YAAYhmU,QAE5B8lU,EAAcG,mBAAqB,GAC5BH,EA1BuB,GAmC9BM,GAAqD,WACrD,IAAI5/T,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDw/T,GAAuD,SAAUziU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Do/T,GAAiC,SAAUl/T,GAE3C,SAASk/T,IACL,IAAIhkU,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAyBhE,OAxBAD,EAAMojU,iBAAmB,GACzBpjU,EAAMikU,eAAgB,EACtBjkU,EAAMkkU,cAAe,EACrBlkU,EAAMmkU,WAAY,EAClBnkU,EAAMokU,WAAY,EAClBpkU,EAAM6+F,mBAAqB,SAAUx3F,GACjC,IAAIg9T,EAAsBrkU,EAAMikU,eAAiBjkU,EAAMkkU,cAAgBlkU,EAAMmkU,WAAankU,EAAMokU,UAChG,GAAKC,EAAL,CAGA,IAAI70I,EAAYnoL,EAAMmoL,UAAW3vC,EAAWx4I,EAAMw4I,SAAUl4I,EAASN,EAAMM,OAAQmrL,EAAWzrL,EAAMyrL,SAAUn2L,EAAQ0K,EAAM1K,MACxH2nU,EAAkB,CAClB90I,UAAWA,EACX3vC,SAAUA,EACVqzC,SAAUvrL,EAAOs1G,WACjBN,SAAUhgH,EACVm2L,SAAUA,GAEd9yL,EAAMojU,iBAAiB7jU,KAAK+kU,KAEhCtkU,EAAMukU,YAAc,WAChBvkU,EAAMwkU,UAAU9nC,QAChB18R,EAAMykU,UAAU/nC,SAEb18R,EA4MX,OAvOA8jU,GAAaE,EAAiBl/T,GA6B9Bk/T,EAAgBxnU,UAAU2I,KAAO,WAC7B,GAAKlF,KAAK8vG,mBAAmB01G,wBAA7B,CAGA,IAAIi/G,EAAgBzkU,KAAK8vG,mBAAmB41G,8BACxC++G,GAAiB,IAGrBzkU,KAAKukU,UAAY,IAAIhB,GAAckB,GACnCzkU,KAAKwkU,UAAY,IAAIjB,GAAckB,GACnCzkU,KAAK0kU,yBACL1kU,KAAK2kU,0BACL3kU,KAAK4kU,oBACL5kU,KAAK6kU,mBACL7kU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoC,yBAA0B/uH,KAAK4+F,oBAGjF5+F,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2B,oBAAqBtuH,KAAKskU,aAC5EtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOG,gCAAiC9sH,KAAKskU,aACxFtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKskU,aACjFtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOY,0BAA2BvtH,KAAKskU,aAClFtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOI,+BAAgC/sH,KAAKskU,aACvFtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOS,mBAAoBptH,KAAKskU,aAC3EtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOW,oBAAqBttH,KAAKskU,aAC5EtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOU,qBAAsBrtH,KAAKskU,aAC7EtkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOgF,mBAAoB3xH,KAAKskU,gBAE/EP,EAAgBxnU,UAAUu+R,wBAA0B,WAChD,OAAO96R,KAAKukU,UAAYvkU,KAAKukU,UAAUX,sBAAwB,GAEnEG,EAAgBxnU,UAAUy+R,wBAA0B,WAChD,OAAOh7R,KAAKwkU,UAAYxkU,KAAKwkU,UAAUZ,sBAAwB,GAEnEG,EAAgBxnU,UAAUiqR,KAAO,WAC7B,GAAKxmR,KAAKukU,UAAV,CAGA,IAAIO,EAAa9kU,KAAKukU,UAAUp2S,MAC3B22S,GAAeA,EAAW3B,mBAG/BnjU,KAAK+kU,cAAcD,GAAY,SAAUT,GAAmB,OAAOA,EAAgBxxI,YAC/EiyI,aAAsB1B,GACtBpjU,KAAKglU,yBAAyBF,EAAW3B,iBAAkB2B,EAAWzB,cAGtErjU,KAAKglU,yBAAyBF,EAAW3B,kBAE7CnjU,KAAKwkU,UAAUllU,KAAKwlU,MAExBf,EAAgBxnU,UAAUgqR,KAAO,WAC7B,GAAKvmR,KAAKwkU,UAAV,CAGA,IAAIS,EAAajlU,KAAKwkU,UAAUr2S,MAC3B82S,GAAeA,EAAW9B,mBAG/BnjU,KAAK+kU,cAAcE,GAAY,SAAUZ,GAAmB,OAAOA,EAAgB3nN,YAC/EuoN,aAAsB7B,GACtBpjU,KAAKglU,yBAAyBC,EAAW9B,iBAAkB8B,EAAW3B,YAGtEtjU,KAAKglU,yBAAyBC,EAAW9B,kBAE7CnjU,KAAKukU,UAAUjlU,KAAK2lU,MAExBlB,EAAgBxnU,UAAUwoU,cAAgB,SAAU7/N,EAAQggO,GACxD,IAAInlU,EAAQC,KACZklG,EAAOi+N,iBAAiB5kU,SAAQ,SAAU8lU,GACtC,IAAIzkL,EAAWykL,EAAgBzkL,SAAU2vC,EAAY80I,EAAgB90I,UAAW0D,EAAWoxI,EAAgBpxI,SACvGu+D,EAAc,CAAE5xG,SAAUA,EAAU2vC,UAAWA,GAC/C41I,EAAaplU,EAAM4uO,WAAW6iB,GAE7B2zE,EAAW1/K,WAGhB0/K,EAAWvyI,aAAaK,EAAUiyI,EAAeb,QAGzDN,EAAgBxnU,UAAUyoU,yBAA2B,SAAU7B,EAAkBv/R,GAC7E,IAAIslM,EACJ,GAAItlM,EAAJ,CACI,IAAIk+M,EAAWl+M,EAAMk+M,SACjBE,EAASp+M,EAAMo+M,OACnB9Y,EAAkB,CACd35C,UAAWuyD,EAASvyD,UACpB3vC,SAAUkiG,EAASliG,SACnBqzC,SAAUrvJ,EAAMwhS,YAAYpoN,YAEhCh9G,KAAKqlU,mBAAmBn8F,GACxB,IAAIo8F,EAAkB,CAClBv+C,cAAejlC,EAASliG,SACxBonI,eAAgBllC,EAASvyD,UACzB03F,YAAajlC,EAAOpiG,SACpBsnI,aAAcllC,EAAOzyD,UACrB43F,YAAavjP,EAAMwhS,YACnBjqO,QAASv3D,EAAMu3D,SAEnBn7F,KAAKi/F,QAAQw7L,aAAa6qC,OAjB9B,CAoBA,IAAIjB,EAAkBlB,EAAiB,GACnCvjL,EAAWykL,EAAgBzkL,SAAU2vC,EAAY80I,EAAgB90I,UACjEiiE,EAAc,CAAE5xG,SAAUA,EAAU2vC,UAAWA,GAC/C/2J,EAAMx4B,KAAK2uO,WAAW6iB,GAC1BtoB,EAAkB,CACd35C,UAAW80I,EAAgB90I,UAC3B3vC,SAAUpnH,EAAIonH,SACdqzC,SAAUoxI,EAAgBpxI,UAE9BjzL,KAAKqlU,mBAAmBn8F,KAE5B66F,EAAgBxnU,UAAU8oU,mBAAqB,SAAUn8F,GACrD,IAAItpF,EAAWspF,EAAgBtpF,SAAUqzC,EAAWi2C,EAAgBj2C,SAAU1D,EAAY25C,EAAgB35C,UAC1GvvL,KAAKi/F,QAAQmyJ,mBAAmBxxG,GAChC5/I,KAAKi/F,QAAQoyJ,oBAAoBp+D,GAC7BhgF,GAAeQ,aAAa5kG,EAAQmkG,YAAYwrG,uBAChDx+M,KAAKi/F,QAAQy7L,sBAEjB16R,KAAKi6K,gBAAgBiwD,eAAetqF,EAAUqzC,EAAU1D,GAAW,IAEvEw0I,EAAgBxnU,UAAUmoU,uBAAyB,WAC/C,IAAI3kU,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO0D,2BAA2B,WACzEtwH,EAAMkkU,cAAe,KAEzBjkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO2D,2BAA2B,WACzE,IAAIprB,EAAS,IAAIg+N,GAAenjU,EAAMojU,kBACtCpjU,EAAMwlU,uBAAuBrgO,GAC7BnlG,EAAMkkU,cAAe,MAG7BF,EAAgBxnU,UAAUooU,wBAA0B,WAChD,IAAI5kU,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO4D,4BAA4B,WAC1ExwH,EAAMikU,eAAgB,KAE1BhkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO6D,4BAA4B,WAC1EzwH,EAAMikU,eAAgB,EACtB,IAAIwB,GAAoBzlU,EAAMkkU,eAAiBlkU,EAAMmkU,YAAcnkU,EAAMokU,UACzE,GAAIqB,EAAkB,CAClB,IAAItgO,EAAS,IAAIg+N,GAAenjU,EAAMojU,kBACtCpjU,EAAMwlU,uBAAuBrgO,QAIzC6+N,EAAgBxnU,UAAUqoU,kBAAoB,WAC1C,IAAI7kU,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO4B,mBAAmB,WACjExuH,EAAMmkU,WAAY,KAEtBlkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO6B,iBAAiB,WAC/D,IAAItpB,EAAS,IAAIg+N,GAAenjU,EAAMojU,kBACtCpjU,EAAMwlU,uBAAuBrgO,GAC7BnlG,EAAMmkU,WAAY,MAG1BH,EAAgBxnU,UAAUsoU,iBAAmB,WACzC,IAAI9kU,EAAQC,KACZA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO8B,kBAAkB,WAChE1uH,EAAMokU,WAAY,KAEtBnkU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO+B,gBAAgB,SAAUtnH,GACxE,IAAI89F,EAAS,IAAIk+N,GAAmBrjU,EAAMojU,iBAAkB/7T,EAAMi8T,aAAcj8T,EAAMk8T,YACtFvjU,EAAMwlU,uBAAuBrgO,GAC7BnlG,EAAMokU,WAAY,MAG1BJ,EAAgBxnU,UAAUgpU,uBAAyB,SAAUrgO,GACzDllG,KAAKukU,UAAUjlU,KAAK4lG,GACpBllG,KAAKmjU,iBAAmB,GACxBnjU,KAAKwkU,UAAU/nC,SAEnBsnC,EAAgBxnU,UAAUoyO,WAAa,SAAUgjB,GAC7C,OAAQA,EAAQpiE,WACZ,KAAKn+E,GAAUc,WACX,OAAOlyG,KAAKqoP,eAAe9jC,sBAAsBotC,EAAQ/xG,UAC7D,KAAKxuC,GAAUe,cACX,OAAOnyG,KAAKqoP,eAAe5jC,yBAAyBktC,EAAQ/xG,UAChE,QACI,OAAO5/I,KAAKk4I,SAAS4H,OAAO6xG,EAAQ/xG,YAGhDkkL,GAAc,CACVl1N,GAAU,oBACXm1N,EAAgBxnU,UAAW,uBAAmB,GACjDunU,GAAc,CACVl1N,GAAU,YACXm1N,EAAgBxnU,UAAW,eAAW,GACzCunU,GAAc,CACVl1N,GAAU,aACXm1N,EAAgBxnU,UAAW,gBAAY,GAC1CunU,GAAc,CACVl1N,GAAU,mBACXm1N,EAAgBxnU,UAAW,sBAAkB,GAChDunU,GAAc,CACVx1N,IACDy1N,EAAgBxnU,UAAW,OAAQ,MACtCwnU,EAAkBD,GAAc,CAC5Bp1N,GAAK,oBACNq1N,GACIA,EAxOyB,CAyOlCn9M,IAQE6+M,GAAqD,WACrD,IAAIxhU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDohU,GAAuD,SAAUrkU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DghU,GAA2C,SAAU9gU,GAErD,SAAS8gU,IACL,IAAI5lU,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAM6lU,uBAAyB,GACxB7lU,EAyBX,OA7BA0lU,GAAaE,EAA2B9gU,GAMxC8gU,EAA0BppU,UAAUspU,gBAAkB,SAAU9hU,GAC5D,IAAIhE,EAAQC,KACR+D,GACAA,EAAWxF,SAAQ,SAAUunU,GAAiB,OAAO/lU,EAAMgmU,aAAaD,OAGhFH,EAA0BppU,UAAUwpU,aAAe,SAAUD,GAKzD,IAAIE,EAAeF,EAAc9oI,cAAcj0L,QAAQ,kBAAmB,SAASC,cAE/Ei9T,EAAiBD,EAAahoT,cAElChe,KAAK4lU,uBAAuBK,GAAkBH,EAAcI,gBAEhEP,EAA0BppU,UAAU6zK,kBAAoB,SAAU+1J,GAC9D,OAAOnmU,KAAK4lU,uBAAuBO,IAEvCR,EAA4BD,GAAc,CACtCh3N,GAAK,8BACNi3N,GACIA,EA9BmC,CA+B5C/+M,IAQEw/M,GAAqD,WACrD,IAAIniU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD+hU,GAAuD,SAAUhlU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D2hU,GAAqC,SAAUzhU,GAE/C,SAASyhU,IACL,OAAkB,OAAXzhU,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAmD/D,OArDAomU,GAAaE,EAAqBzhU,GAIlCyhU,EAAoB/pU,UAAUg0Q,WAAa,SAAUF,EAAezoI,GAChE,IAAI2+L,EACAC,EACAC,EASJ,GARIp2D,EAAc3oQ,kBAAkBo4G,IAChC0mN,EAAiB,oBAAsB5+L,EACvC2+L,EAAavmU,KAAKm/I,iBAAiBqnL,GAAgBn2D,EAAc3oQ,UAGjE++T,EAAe,kBAAoB7+L,EACnC2+L,EAAavmU,KAAKm/I,iBAAiBsnL,GAAcp2D,EAAc3oQ,SAE/D6+T,EACA,MAAO,CACH7+T,OAAQ6+T,EACR9lL,eAAgB4vH,EAAc5vH,iBAI1C6lL,EAAoB/pU,UAAUq0Q,0BAA4B,SAAUx3N,EAAOwpG,GACvE,IAAIrtB,EAAmBv1H,KAAKm/I,iBAAiBpjB,yBACzCr0H,EAAS6tH,EAA8B,UAAbqtB,EAAuB,EAAIrtB,EAAiB93H,OAAS,GACnF,GAAKiK,EAAL,CAGA,IAAI8qQ,EAAiBxyQ,KAAKmvO,wBAAwBogC,mBAAmB7nQ,EAAO80G,aACxEkqN,EAAgBl0D,EAAezE,cAAc30N,GAC7C35C,EAAOinU,GAAiBA,EAAc/pJ,UAC1C,GAAIl9K,GAAQkwO,GAAcm3B,aAAc,CACpC,IAAIliI,EAAc5kI,KAAKm/I,iBAAiBlX,sBAAsBvgI,EAAQ0xC,GACtE,MAAO,CACHqnG,eAAgBrnG,EAChB1xC,OAAQk9H,GAGhB,MAAO,CACH6b,eAAiBimL,EAAqBttR,GAAJ,EAClC1xC,OAAQA,KAGhB2+T,GAAc,CACVz3N,GAAU,qBACX03N,EAAoB/pU,UAAW,wBAAoB,GACtD8pU,GAAc,CACVz3N,GAAU,4BACX03N,EAAoB/pU,UAAW,+BAA2B,GAC7D+pU,EAAsBD,GAAc,CAChC33N,GAAK,wBACN43N,GACIA,EAtD6B,CAuDtC1/M,IAQE+/M,GAAuD,SAAUtlU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DiiU,GAAkC,WAClC,SAASA,KAqET,OAnEAA,EAAiBrqU,UAAUkpI,gBAAkB,SAAUpqF,EAAMggD,EAAiBs6B,GAC1E,IAAI51H,EAAQC,KACRs9B,EAAM,GACNupS,EAAe,GAqCnB,OApCAxrR,EAAK98C,SAAQ,SAAUmmC,GACnB,IAAI98B,EAAS7H,EAAM+mU,oBAAoBpiS,EAAK22D,EAAiBs6B,GACzDoxM,GAAc,EACdC,EAAWp/T,EACXq+G,EAAUvhF,EAAImxE,oBAClB,MAAOoQ,EAAS,CACZ,IAAIghN,EAAY,KAIhB,GAAIhhN,EAAQpE,YACRoE,EAAUA,EAAQpQ,wBADtB,CAKA,IAAIqxN,EAAoBL,EAAa5gN,EAAQjF,cAC7C,GAAIkmN,EAAmB,CACnBA,EAAkBp/T,SAASxI,KAAK0nU,GAEhCD,GAAc,EAGd,MAEJE,EAAYlnU,EAAMonU,mBAAmBlhN,GACjCghN,IACAA,EAAUn/T,SAAW,CAACk/T,GACtBH,EAAaI,EAAUjnN,SAAWinN,EAClCD,EAAWC,EACXhhN,EAAUA,EAAQpQ,sBAGtBkxN,GACAzpS,EAAIh+B,KAAK0nU,MAGV1pS,GAEXspS,EAAiBrqU,UAAU4qU,mBAAqB,SAAUjsO,GACtD,IAAIksO,EAAYthO,EAAoB5K,EAAM0mB,iBAAkB,CAAC,aAI7D,OAHIwlN,IACAA,EAAUpnN,QAAU9kB,EAAM8lB,cAEvBomN,GAEXR,EAAiBrqU,UAAUuqU,oBAAsB,SAAUpiS,EAAK22D,EAAiBs6B,GAC7E,IAAI0xM,EAAevhO,EAAoBphE,EAAIm4E,aAY3C,OAXAwqN,EAAavkO,MAAQp+D,EAAIs4E,WACzBqqN,EAAa/tR,MAAQ5U,EAAIw4E,iBACzBmqN,EAAanpN,SAAWx5E,EAAI05E,mBAC5BipN,EAAa3+L,cAAgBhkG,EAAI05E,mBAAqB/iB,EAAgBt6F,QAAQ2jC,GAAO,KACrF2iS,EAAa/oN,MAAQ55E,EAAI85E,gBACzB6oN,EAAa1+L,WAAajkG,EAAI85E,gBAAkBmX,EAAa50H,QAAQ2jC,GAAO,KAC5E2iS,EAAaxsN,QAAUn2E,EAAIg6E,gBAAkBh6E,EAAIo2E,aAAe,KAChEusN,EAAaxyN,MAAOnwE,EAAIk4E,kBAAcv9G,EACtCgoU,EAAaryN,OAAStwE,EAAI23E,WAAa33E,EAAI83E,YAAc,KACzD6qN,EAAa94S,KAAOmW,EAAIq1E,UAAYr1E,EAAIq1E,UAAY,KACpDstN,EAAa1yN,UAAkC,MAAtBjwE,EAAI+1E,eAAyB/1E,EAAI+1E,eAAiB,KACpE4sN,GAEXT,EAAmBD,GAAc,CAC7Bj4N,GAAK,qBACNk4N,GACIA,EAtE0B,GA+EjCU,GAAuD,SAAUjmU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAK5D4iU,GAAuC,WACvC,SAASA,KAkIT,OAhIAA,EAAsBhrU,UAAU4wO,qBAAuB,SAAU/pO,GAC7D,IAAIg/O,EAAU,GAmDd,OAlDI3hJ,EAAOr9F,EAAOokU,gBACdplF,EAAQ9iP,KAAK8D,EAAOokU,eAExBplF,EAAQ9iP,KAAK,UACb8iP,EAAQ9iP,KAAK8D,EAAOkgO,WAAa,eAAiB,mBAC9ClgO,EAAO6gO,WACPme,EAAQ9iP,KAAK,mBAEjB8iP,EAAQ9iP,KAAK8D,EAAO8/N,UAAY,cAAgB,cAC5C9/N,EAAO2H,QAAQ+pL,eACfstD,EAAQ9iP,KAAK,iBAEb8D,EAAO2H,QAAQgpL,cACfquD,EAAQ9iP,KAAK,mBAEb8D,EAAO2H,QAAQqtE,QACfgqK,EAAQ9iP,KAAK,iBAEjB8iP,EAAQ9iP,KAAK,gBAAkB8D,EAAOqgO,UAClCrgO,EAAO2H,QAAQy6N,MACf4c,EAAQ9iP,KAAK,kBAEb8D,EAAOgqO,cACPgV,EAAQ9iP,KAAK,qBAEb8D,EAAO2/G,aACPq/H,EAAQ9iP,KAAK,gBACb8iP,EAAQ9iP,KAAK8D,EAAO2H,QAAQk3G,SAAW,wBAA0B,4BAEjE7+G,EAAO2H,QAAQsmL,UACf+wD,EAAQ9iP,KAAK,mBAEjBulG,EAAQu9I,EAASpiP,KAAKosO,8BAA8BhpO,EAAO2H,QAAS3H,EAAOsoM,QAC3E7mG,EAAQu9I,EAASpiP,KAAKynU,wBAAwBrkU,EAAO2H,QAAS3H,EAAOsoM,QAErE02C,EAAQ9iP,KAAK8D,EAAOu/N,YAAc,2BAA6B,4BAC3Dv/N,EAAOyoO,gBACPuW,EAAQ9iP,KAAK,gBAEb8D,EAAO0oO,eACPsW,EAAQ9iP,KAAK,eAEb8D,EAAOgqO,eACHhqO,EAAO4xG,SAAW5D,GAAUsB,aAC5B0vI,EAAQ9iP,KAAK,4BAEb8D,EAAO4xG,SAAW5D,GAAUqB,cAC5B2vI,EAAQ9iP,KAAK,+BAGd8iP,GAEXmlF,EAAsBhrU,UAAU6vO,8BAAgC,SAAUrhO,EAAS2gM,GAC/E,IAAIpuK,EAAM,GACNhrB,EAAU,SAAUo1T,GACE,kBAAXA,EACPpqS,EAAIh+B,KAAKooU,GAEJrqU,MAAMC,QAAQoqU,IACnBA,EAAOnpU,SAAQ,SAAUiO,GAAK,OAAO8wB,EAAIh+B,KAAKkN,OAIlDu5M,EAAW/lN,KAAK8vG,mBAAmBg2G,cACvC,GAAIC,EAAU,CACV,GAAwB,oBAAbA,EAEP,OADA9iN,QAAQkD,KAAK,8EACN,GAEXmM,EAAQyzM,GAGZ,IAAI8wE,EAAe72R,KAAK8vG,mBAAmBm2G,kBAC3C,GAAI4wE,EAAc,CACd,IAAIzzR,EAAS,CACT7C,KAAMwK,EAAQxK,KACdiS,KAAMzH,EACN60I,SAAU70I,EAAQ60I,SAClBorF,OAAQt/B,EACR9hM,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,cAEjCmvN,EAAqB9wC,EAAazzR,GACtCkP,EAAQq1T,GAEZ,OAAOrqS,GAEXiqS,EAAsBhrU,UAAUkrU,wBAA0B,SAAU18T,EAAS2gM,GACzE,IAAIpuK,EAAM,GAOV,OANAt9B,KAAKssO,qBAAqBvhO,EAAS2gM,GAAO,SAAU3nD,GAChDzmH,EAAIh+B,KAAKykJ,MACV,SAAUA,OAINzmH,GAEXiqS,EAAsBhrU,UAAU+vO,qBAAuB,SAAUvhO,EAAS2gM,EAAO+tC,EAAmBa,GAChG,IAAIstF,EAAiB,CACjBrnU,KAAMwK,EAAQxK,KACdiS,KAAMzH,EACN60I,SAAU70I,EAAQ60I,SAClBh2I,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCsyH,OAAQt/B,EACRriG,QAASrpG,KAAK8vG,mBAAmB0I,cAErCx4G,KAAK25O,eAAeY,kBAAkBv6O,KAAK8vG,mBAAmBo2G,gBAAiB0hH,EAAgBnuF,EAAmBa,IAEtHitF,EAAsBhrU,UAAUonO,kBAAoB,SAAU54N,GAC1D,OAAIA,EAAQmwF,MACDnwF,EAAQquC,MAGZruC,EAAQlI,OAAUkI,EAAQlI,OAAOu2C,MAAQ,EAAK,GAEzDkuR,GAAc,CACV14N,GAAU,mBACX24N,EAAsBhrU,UAAW,sBAAkB,GACtD+qU,GAAc,CACV14N,GAAU,uBACX24N,EAAsBhrU,UAAW,0BAAsB,GAC1DgrU,EAAwBD,GAAc,CAClC54N,GAAK,0BACN64N,GACIA,EAnI+B,GA4ItCM,GAAqD,WACrD,IAAI5jU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwjU,GAA8B,SAAUjjU,GAExC,SAASijU,EAAa9+Q,GAClB,IAAIjpD,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAIjC,OAHAD,EAAMitB,MAAQ86S,EAAaC,sBAC3BhoU,EAAMslB,QAAU,EAChBtlB,EAAMipD,GAAKA,EACJjpD,EAsEX,OA5EA8nU,GAAaC,EAAcjjU,GAQ3BijU,EAAavrU,UAAU86G,MAAQ,WAC3B,OAAOr3G,KAAKgpD,IAEhB8+Q,EAAavrU,UAAU6nB,KAAO,WAC1BpkB,KAAKgtB,MAAQ86S,EAAaE,cAC1BhoU,KAAKioU,sBAETH,EAAavrU,UAAU2rU,WAAa,WAChC,OAAOloU,KAAKqlB,SAEhByiT,EAAavrU,UAAU4rU,sBAAwB,WAE3CnoU,KAAKqlB,UACLrlB,KAAKgtB,MAAQ86S,EAAaC,uBAE9BD,EAAavrU,UAAUykO,SAAW,WAC9B,OAAOhhO,KAAKgtB,OAEhB86S,EAAavrU,UAAU6rU,eAAiB,SAAU/iT,GAC9C,IAAIgjT,EAA2BroU,KAAKsoU,2BAA2BjjT,GAC3DgjT,IACAroU,KAAKgtB,MAAQ86S,EAAaS,aAC1BvoU,KAAKwoU,qBAETxoU,KAAKyoU,uBAAsB,IAE/BX,EAAavrU,UAAUutI,QAAU,SAAUzkH,EAASjiB,GAChDpD,KAAK0oU,cAAcrjT,EAASjiB,IAEhC0kU,EAAavrU,UAAUosU,WAAa,SAAUtjT,EAASg9B,EAAMq9F,GACzD1/I,KAAK0oU,cAAcrjT,EAAS,CAAEjb,QAASi4C,EAAMi7G,SAAU5d,KAE3DooL,EAAavrU,UAAU+rU,2BAA6B,SAAUjjT,GAG1D,IAAIujT,EAA0BvjT,IAAYrlB,KAAKqlB,QAG3CwjT,EAAoB7oU,KAAK+mH,UAC7B,OAAO6hN,GAA2BC,GAEtCf,EAAavrU,UAAUmsU,cAAgB,SAAUrjT,EAASjiB,GAItDpD,KAAKyoU,wBACL,IAAIJ,EAA2BroU,KAAKsoU,2BAA2BjjT,GAC3DgjT,IACAroU,KAAKgtB,MAAQ86S,EAAagB,aAC1B9oU,KAAK+oU,oBAAoB3lU,KAGjC0kU,EAAavrU,UAAUksU,sBAAwB,SAAU3+L,QACrC,IAAZA,IAAsBA,GAAU,GAGpC,IAAI1iI,EAAQ,CACR3H,KAAMqoU,EAAakB,oBACnBl/L,QAASA,EACTm/L,MAAOjpU,MAEXA,KAAKyM,cAAcrF,IAEvB0gU,EAAakB,oBAAsB,eACnClB,EAAaC,sBAAwB,eACrCD,EAAaE,cAAgB,UAC7BF,EAAagB,aAAe,SAC5BhB,EAAaS,aAAe,SACrBT,EA7EsB,CA8E/BlhN,IAQEsiN,GAAqD,WACrD,IAAIjlU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD6kU,GAAuD,SAAU9nU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DykU,GAAgD,SAAUh8N,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvDi8N,GAAoC,SAAUxkU,GAE9C,SAASwkU,IACL,IAAItpU,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAIhE,OAHAD,EAAMupU,sBAAwB,EAC9BvpU,EAAMwpU,OAAS,GACfxpU,EAAMy7G,QAAS,EACRz7G,EAiFX,IAAIypU,EAWJ,OAlGAN,GAAaG,EAAoBxkU,GAQjC2kU,EAAuBH,EACvBA,EAAmB9sU,UAAUwiJ,cAAgB,WACzC/+I,KAAKypU,sBAAwBzpU,KAAK8vG,mBAAmB+4G,qCACrD,IAAIjC,EAA0B5mN,KAAK8vG,mBAAmB62G,6BAClDC,GAA2BA,EAA0B,IACrD5mN,KAAK0pU,yBAA2B9pR,GAAE71C,SAAS/J,KAAK2pU,yBAAyBl/T,KAAKzK,MAAO4mN,KAG7FyiH,EAAmB9sU,UAAUqzG,SAAW,SAAUC,GAC9C7vG,KAAKwqG,OAASqF,EAActrG,OAAO,uBAEvC8kU,EAAmB9sU,UAAUqtU,SAAW,SAAUX,GAC9CjpU,KAAKupU,OAAOjqU,KAAK2pU,GAIjBA,EAAMz4N,iBAAiBs3N,GAAakB,oBAAqBhpU,KAAK6pU,aAAap/T,KAAKzK,OAChFA,KAAK8pU,oBAETT,EAAmB9sU,UAAUwtU,YAAc,SAAUd,GACjDrpR,GAAEokD,gBAAgBhkG,KAAKupU,OAAQN,IAEnCI,EAAmB9sU,UAAU6J,QAAU,WACnCvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,MAC9BA,KAAKw7G,QAAS,GAElB6tN,EAAmB9sU,UAAUstU,aAAe,WACxC7pU,KAAKspU,wBACLtpU,KAAK8pU,mBAC6B,GAA9B9pU,KAAKspU,uBACLtpU,KAAKyM,cAAc,CAAEhN,KAAM+pU,EAAqBQ,+BAGxDX,EAAmB9sU,UAAUutU,iBAAmB,WACxC9pU,KAAK0pU,yBACL1pU,KAAK0pU,2BAGL1pU,KAAK2pU,4BAGbN,EAAmB9sU,UAAUotU,yBAA2B,WACpD,GAAK3pU,KAAKw7G,OAIV,GADAx7G,KAAKiqU,mBAC6B,MAA9BjqU,KAAKypU,uBAAiCzpU,KAAKspU,uBAAyBtpU,KAAKypU,sBACzEzpU,KAAKwqG,OAAO3sF,IAAI,4CADpB,CAIA,IAAIqsT,EAAc,KAClBlqU,KAAKupU,OAAOhrU,SAAQ,SAAU0qU,GACtBA,EAAMjoG,aAAe8mG,GAAaC,wBAClCmC,EAAcjB,MAGlBiB,IACAA,EAAY9lT,OACZpkB,KAAKspU,wBACLtpU,KAAKiqU,sBAGbZ,EAAmB9sU,UAAU6iS,cAAgB,WACzC,IAAI5wR,EAAS,GAKb,OAJAxO,KAAKupU,OAAOhrU,SAAQ,SAAU0qU,GAC1B,IAAI37O,EAAK27O,EAAMkB,oBAAqBnhR,EAAKskC,EAAGtkC,GAAIh8B,EAAQsgE,EAAGtgE,MAC3Dxe,EAAOw6C,GAAMh8B,KAEVxe,GAEX66T,EAAmB9sU,UAAU0tU,iBAAmB,WACxCjqU,KAAKwqG,OAAOqgM,aACZ7qS,KAAKwqG,OAAO3sF,IAAI,4CAA8C7d,KAAKspU,sBAAnD,cACM7sS,KAAKC,UAAU18B,KAAKo/R,mBAGlDiqC,EAAmB9sU,UAAUmvT,UAAY,WACrC,OAAO1rT,KAAKspU,sBAAwB,GAGxCD,EAAmBW,4BAA8B,sBACjDb,GAAc,CACV76N,IACD+6N,EAAmB9sU,UAAW,gBAAiB,MAClD4sU,GAAc,CACVC,GAAU,EAAGn6N,GAAU,mBACxBo6N,EAAmB9sU,UAAW,WAAY,MAC7C8sU,EAAqBG,EAAuBL,GAAc,CACtDz6N,GAAK,uBACN26N,GACIA,EAnG4B,CAoGrCziN,IAQEwjN,GAAuD,SAAU/oU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAG5D0lU,GAA+B,WAC/B,SAASA,KA+CT,OA7CAA,EAAc9tU,UAAU+tU,WAAa,SAAUriK,EAAUsiK,GACrD,IAAIC,EAAS,SAAUz/T,EAAS23B,GAAO,MAAO,CAAG+nS,WAAY/nS,EAAK33B,QAASA,IACvE2/T,EAAiBziK,EAASxgK,IAAI+iU,GAElC,OADAE,EAAen8S,KAAKvuB,KAAK2qU,gBAAgBlgU,KAAKzK,KAAMuqU,IAC7CG,EAAejjU,KAAI,SAAU2lF,GAAQ,OAAOA,EAAKriF,YAE5Ds/T,EAAc9tU,UAAUouU,gBAAkB,SAAUJ,EAAaK,EAAaC,GAI1E,IAHA,IAAIxiK,EAAQuiK,EAAY7/T,QACpBu9J,EAAQuiK,EAAY9/T,QAEfxN,EAAI,EAAGuV,EAAMy3T,EAAY9sU,OAAQF,EAAIuV,EAAKvV,IAAK,CACpD,IAAIutU,EAAaP,EAAYhtU,GAEzBwtU,EAAaD,EAAWv8S,OAAS6iF,GAAUwB,UAC3CnR,EAASzhG,KAAKmuI,SAASk6B,EAAOyiK,EAAWpjU,QACzCg6F,EAAS1hG,KAAKmuI,SAASm6B,EAAOwiK,EAAWpjU,QACzCsjU,OAAmB,EACnBC,EAAqBH,EAAWpjU,OAAOm1G,YAAYxZ,WASvD,GANI2nO,EAFAC,EAEmBA,EAAmBxpO,EAAQC,EAAQ2mE,EAAOC,EAAOyiK,GAIjDnrR,GAAE4hD,kBAAkBC,EAAQC,EAAQ1hG,KAAK8vG,mBAAmBq7G,kBAE1D,IAArB6/G,EACA,OAAOF,EAAWv8S,OAAS6iF,GAAUuB,SAAWq4N,GAAuC,EAApBA,EAI3E,OAAOJ,EAAYH,WAAaI,EAAYJ,YAEhDJ,EAAc9tU,UAAU4xI,SAAW,SAAUk6B,EAAO3gK,GAChD,OAAO1H,KAAKmgJ,aAAahS,SAASzmI,EAAQ2gK,IAE9C+hK,GAAc,CACVx7N,GAAU,uBACXy7N,EAAc9tU,UAAW,0BAAsB,GAClD6tU,GAAc,CACVx7N,GAAU,iBACXy7N,EAAc9tU,UAAW,oBAAgB,GAC5C8tU,EAAgBD,GAAc,CAC1B17N,GAAK,kBACN27N,GACIA,EAhDuB,GAyD9Ba,GAAqD,WACrD,IAAIjnU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD6mU,GAAuD,SAAU9pU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DymU,GAAoC,SAAUvmU,GAE9C,SAASumU,IACL,IAAIrrU,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAGhE,OAFAD,EAAM61H,OAAQ,EACd71H,EAAMsrU,eAAiB,GAChBtrU,EA4HX,OAjIAmrU,GAAaE,EAAoBvmU,GAOjCumU,EAAmB7uU,UAAU+uU,WAAa,WAetC,GAdAtrU,KAAK41H,MACmB,MAApB51H,KAAKurU,aACsB,MAApBvrU,KAAKkoM,aACyB,MAA9BloM,KAAKosQ,uBACuB,MAA5BpsQ,KAAK8rQ,qBACwB,MAA7B9rQ,KAAKisQ,sBAC+B,MAApCjsQ,KAAKqsQ,6BAC6B,MAAlCrsQ,KAAK+rQ,2BAC8B,MAAnC/rQ,KAAKksQ,4BAC4B,MAAjClsQ,KAAKssQ,0BAC0B,MAA/BtsQ,KAAKgsQ,wBAC2B,MAAhChsQ,KAAKmsQ,yBACkB,MAAvBnsQ,KAAKwrU,gBACkB,MAAvBxrU,KAAK05Q,eACZ15Q,KAAK41H,MAAO,CACZ,IAAI61M,EAAMzrU,KAAK0rU,oBACf1rU,KAAKqrU,eAAe9sU,SAAQ,SAAUmG,GAAK,OAAOA,EAAE+mU,MACpDzrU,KAAKqrU,eAAe5tU,OAAS,IAGrC2tU,EAAmB7uU,UAAU+pP,UAAY,SAAU5gP,GAC3C1F,KAAK41H,MACLlwH,EAAS1F,KAAK0rU,qBAGd1rU,KAAKqrU,eAAe/rU,KAAKoG,IAGjC0lU,EAAmB7uU,UAAUmvU,kBAAoB,WAC7C,MAAO,CACHt/D,sBAAuBpsQ,KAAKosQ,sBAC5BN,oBAAqB9rQ,KAAK8rQ,oBAC1BG,qBAAsBjsQ,KAAKisQ,qBAC3BI,4BAA6BrsQ,KAAKqsQ,4BAClCN,0BAA2B/rQ,KAAK+rQ,0BAChCG,2BAA4BlsQ,KAAKksQ,2BACjCI,yBAA0BtsQ,KAAKssQ,yBAC/BN,uBAAwBhsQ,KAAKgsQ,uBAC7BG,wBAAyBnsQ,KAAKmsQ,wBAC9Bq/D,eAAgBxrU,KAAKwrU,eACrBtjI,YAAaloM,KAAKkoM,YAClBqjI,YAAavrU,KAAKurU,YAClB7xD,eAAgB15Q,KAAK05Q,iBAG7B0xD,EAAmB7uU,UAAUovU,uBAAyB,SAAUx9B,GAC5DnuS,KAAKwrU,eAAiBr9B,EACtBnuS,KAAKsrU,cAETF,EAAmB7uU,UAAUk1Q,uBAAyB,SAAUiI,GAC5D15Q,KAAK05Q,eAAiBA,EACtB15Q,KAAKsrU,cAETF,EAAmB7uU,UAAUyuR,8BAAgC,SAAUmjB,GACnEnuS,KAAKosQ,sBAAwB+hC,EAC7BnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU0uR,4BAA8B,SAAUkjB,GACjEnuS,KAAK8rQ,oBAAsBqiC,EAC3BnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU2uR,6BAA+B,SAAUijB,GAClEnuS,KAAKisQ,qBAAuBkiC,EAC5BnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU4uR,iCAAmC,SAAUgjB,GACtEnuS,KAAKssQ,yBAA2B6hC,EAChCnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU6uR,+BAAiC,SAAU+iB,GACpEnuS,KAAKgsQ,uBAAyBmiC,EAC9BnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU8uR,gCAAkC,SAAU8iB,GACrEnuS,KAAKmsQ,wBAA0BgiC,EAC/BnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU+uR,oCAAsC,SAAU6iB,GACzEnuS,KAAKqsQ,4BAA8B8hC,EACnCnuS,KAAKsrU,cAETF,EAAmB7uU,UAAUgvR,kCAAoC,SAAU4iB,GACvEnuS,KAAK+rQ,0BAA4BoiC,EACjCnuS,KAAKsrU,cAETF,EAAmB7uU,UAAUivR,mCAAqC,SAAU2iB,GACxEnuS,KAAKksQ,2BAA6BiiC,EAClCnuS,KAAKsrU,cAETF,EAAmB7uU,UAAUwlR,2BAA6B,SAAUosB,GAChEnuS,KAAKkoM,YAAcimG,EACnBnuS,KAAKsrU,cAETF,EAAmB7uU,UAAU6xR,2BAA6B,SAAU+f,GAChEnuS,KAAKurU,YAAcp9B,EACnBnuS,KAAKsrU,cAETF,EAAmB7uU,UAAUy8Q,kBAAoB,WAC7C,OAAOh5Q,KAAKwrU,gBAEhBJ,EAAmB7uU,UAAUo9Q,kBAAoB,WAC7C,OAAO35Q,KAAK05Q,gBAEhB0xD,EAAmB7uU,UAAUqvU,sBAAwB,WACjD,OAAO5rU,KAAKurU,aAEhBH,EAAmB7uU,UAAUqrQ,yBAA2B,WACpD,OAAO5nQ,KAAKosQ,uBAEhBg/D,EAAmB7uU,UAAUg9Q,4BAA8B,WACvD,OAAOv5Q,KAAKssQ,0BAEhB8+D,EAAmB7uU,UAAUk9Q,+BAAiC,WAC1D,OAAOz5Q,KAAKqsQ,6BAEhB++D,EAAmB7uU,UAAU6rM,sBAAwB,WACjD,OAAOpoM,KAAKkoM,aAEhBkjI,EAAqBD,GAAc,CAC/Bz8N,GAAK,uBACN08N,GACIA,EAlI4B,CAmIrCxkN,IAQEilN,GAAqD,WACrD,IAAI5nU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwnU,GAAuD,SAAUzqU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DonU,GAAgD,SAAUlnU,GAE1D,SAASknU,IACL,OAAOlnU,EAAOjH,KAAKoC,OAASA,KA8EhC,OAhFA6rU,GAAaE,EAAgClnU,GAI7CknU,EAA+BxvU,UAAUilR,QAAU,SAAUhuQ,EAAM25P,EAAWhlH,GAC1EnoJ,KAAKwT,KAAOA,EACZxT,KAAKmtQ,UAAYA,EACjBntQ,KAAKmoJ,WAAaA,EAClBnoJ,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOqE,gCAAiChxH,KAAKwtQ,0BAA0B/iQ,KAAKzK,OACvHA,KAAKwtQ,4BAEL,IAAIw+D,EAAuBhsU,KAAKisU,2BAA2BxhU,KAAKzK,MAChEA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiCu+M,GACnFhsU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuCi7M,GACzFhsU,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiBouH,GACrFhsU,KAAKisU,6BACLjsU,KAAKmoM,mBAAmBwjI,uBAAuB3rU,OAEnD+rU,EAA+BxvU,UAAUwiJ,cAAgB,WACrD/+I,KAAKgqN,UAAYhqN,KAAK8vG,mBAAmB6Q,eAE7CorN,EAA+BxvU,UAAUixQ,0BAA4B,WACjExtQ,KAAKksU,mBACLlsU,KAAKisU,8BAETF,EAA+BxvU,UAAU0vU,2BAA6B,WAClE,IAAIE,EAAiBnsU,KAAK8tQ,qBAAqBvkH,0BAG3C6iL,EAAepsU,KAAKm/I,iBAAiB1gB,gCACrC4tM,GAAiBrsU,KAAKgqN,WAAamiH,EACnCj1G,EAAiBl3N,KAAK8vG,mBAAmByyC,oBACzC8pL,IACAD,GAAgBl1G,GAEpBl3N,KAAKwT,KAAK84T,yBAAyBF,GACnCpsU,KAAKwT,KAAK+4T,8BAA8B,qBAAsBH,GAAgBl1G,GAG9E,IAAIs1G,EAAcxsU,KAAKm/I,iBAAiB5gB,+BACpCkuM,EAAezsU,KAAKgqN,WAAamiH,EACjCM,IACAD,GAAet1G,GAEnBl3N,KAAKwT,KAAKk5T,wBAAwBF,GAClCxsU,KAAKwT,KAAKm5T,6BAA6B,qBAAsBH,GAAet1G,IAEhF60G,EAA+BxvU,UAAU2vU,iBAAmB,WACxD,IAAIU,EAAiB5sU,KAAK8tQ,qBAAqBxkH,4BAC3CujL,EAAqB7pL,KACrBsgE,EAA6BtjN,KAAK8vG,mBAAmBwzG,6BACrD4T,EAAiB01G,GAAkB5sU,KAAK8vG,mBAAmByyC,qBAA4B,EACvFuqL,EAA6C,IAAnB51G,GAAwB21G,EAAsB,GAAK31G,EAC7E61G,EAAuBzpH,EAAsD,EAAzBwpH,EACpDE,EAAetsL,MAAiBksL,EACpC5sU,KAAKwT,KAAKy5T,mBAAmBJ,GAC7B7sU,KAAKwT,KAAKo5Q,UAAUmgD,GAGpB/sU,KAAKwT,KAAK24Q,kBAAkB4gD,GAAuBC,EAAe,EAAI,IACtEhtU,KAAKwT,KAAK05T,mBAAmBH,IAEjChB,EAA+BxvU,UAAU48Q,YAAc,WACnD,OAAOn5Q,KAAKmtQ,WAEhB4+D,EAA+BxvU,UAAUmlM,aAAe,WACpD,OAAO1hM,KAAKmoJ,YAEhB2jL,GAAc,CACVl9N,GAAU,yBACXm9N,EAA+BxvU,UAAW,4BAAwB,GACrEuvU,GAAc,CACVl9N,GAAU,qBACXm9N,EAA+BxvU,UAAW,wBAAoB,GACjEuvU,GAAc,CACVl9N,GAAU,uBACXm9N,EAA+BxvU,UAAW,0BAAsB,GACnEuvU,GAAc,CACVx9N,IACDy9N,EAA+BxvU,UAAW,gBAAiB,MACvDwvU,EAjFwC,CAkFjDnlN,IAQEumN,GAAqD,WACrD,IAAIlpU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD8oU,GAAuD,SAAU/rU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D0oU,GAA0C,SAAUxoU,GAEpD,SAASwoU,IACL,OAAOxoU,EAAOjH,KAAKoC,KAAMqtU,EAAyBp4J,WAAaj1K,KAsCnE,OAxCAmtU,GAAaE,EAA0BxoU,GAIvCwoU,EAAyB9wU,UAAUwiJ,cAAgB,WAC/C,IAAIh/I,EAAQC,KACRwT,EAAO,CACPo5Q,UAAW,SAAUhyM,GAAU,OAAOkvE,GAAe/pJ,EAAMsG,SAAUu0E,IACrEsyP,mBAAoB,SAAUtyP,GAAU,OAAOkvE,GAAe/pJ,EAAMooJ,WAAYvtE,IAChFuxM,kBAAmB,SAAUvxM,GAAU,OAAOkvE,GAAe/pJ,EAAMotQ,UAAWvyL,IAC9E0xP,yBAA0B,SAAUhzR,GAAS,OAAOqwG,GAAc5pJ,EAAMutU,aAAch0R,IACtFozR,wBAAyB,SAAUpzR,GAAS,OAAOqwG,GAAc5pJ,EAAMwtU,YAAaj0R,IACpF2zR,mBAAoB,SAAUO,GAAe,OAAOnpL,GAAoBtkJ,EAAMsG,SAAU,yBAA0BmnU,IAClHb,6BAA8B,SAAUroK,EAAU3yB,GAC9C,OAAO0S,GAAoBtkJ,EAAMwtU,YAAajpK,EAAU3yB,IAE5D46L,8BAA+B,SAAUjoK,EAAU3yB,GAC/C,OAAO0S,GAAoBtkJ,EAAMutU,aAAchpK,EAAU3yB,KAGjE3xI,KAAK4tQ,WAAa5tQ,KAAKsnH,kBAAkB,IAAIykN,IAC7C/rU,KAAK4tQ,WAAW4T,QAAQhuQ,EAAMxT,KAAKmtQ,UAAWntQ,KAAKmoJ,YACnDnoJ,KAAKsnH,kBAAkB,IAAI6pJ,IAAmB,SAAU73N,GAAS,OAAOv5C,EAAMooJ,WAAWhwG,MAAMmB,MAAQA,EAAQ,UAEnH+zR,EAAyBp4J,SAAW,qaACpCm4J,GAAc,CACVh6J,GAAY,gBACbi6J,EAAyB9wU,UAAW,mBAAe,GACtD6wU,GAAc,CACVh6J,GAAY,iBACbi6J,EAAyB9wU,UAAW,oBAAgB,GACvD6wU,GAAc,CACVh6J,GAAY,cACbi6J,EAAyB9wU,UAAW,iBAAa,GACpD6wU,GAAc,CACVh6J,GAAY,eACbi6J,EAAyB9wU,UAAW,kBAAc,GACrD6wU,GAAc,CACV9+N,IACD++N,EAAyB9wU,UAAW,gBAAiB,MACjD8wU,EAzCkC,CA0C3CztU,IAQE6tU,GAAqD,WACrD,IAAIxpU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDopU,GAAuD,SAAUrsU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DgpU,GAAoC,SAAU9oU,GAE9C,SAAS8oU,IACL,OAAkB,OAAX9oU,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoC/D,OAtCAytU,GAAaE,EAAoB9oU,GAIjC8oU,EAAmBpxU,UAAUwiJ,cAAgB,WACzC,IAAItuC,EAAWzwG,KAAK4tU,qBAAqBnjU,KAAKzK,MAC9CA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOc,gCAAiChd,GACnFzwG,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOoE,sCAAuCtgB,GACzFzwG,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmBQ,gBAAiBntG,IAEzFk9N,EAAmBpxU,UAAUqxU,qBAAuB,WAChD,IAAIjrG,EAAc3iO,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACnEwzB,EAAe88F,EAAc,EAAI3iO,KAAKm/I,iBAAiB5gB,+BACvDuH,EAAgB68F,EAAc,EAAI3iO,KAAKm/I,iBAAiB1gB,gCACxDoH,GAAgB7lI,KAAKg2H,YACrBh2H,KAAKg2H,UAAY6P,EACjB7lI,KAAKq0G,aAAa5nG,cAAc,CAAEhN,KAAMktH,GAAO0E,mCAE/CyU,GAAiB9lI,KAAKi2H,aACtBj2H,KAAKi2H,WAAa6P,EAClB9lI,KAAKq0G,aAAa5nG,cAAc,CAAEhN,KAAMktH,GAAO2E,qCAGvDq8M,EAAmBpxU,UAAUq2Q,oBAAsB,WAC/C,OAAO5yQ,KAAKi2H,YAEhB03M,EAAmBpxU,UAAUo2Q,mBAAqB,WAC9C,OAAO3yQ,KAAKg2H,WAEhB03M,GAAc,CACV9+N,GAAU,qBACX++N,EAAmBpxU,UAAW,wBAAoB,GACrDmxU,GAAc,CACVp/N,IACDq/N,EAAmBpxU,UAAW,gBAAiB,MAClDoxU,EAAqBD,GAAc,CAC/Bh/N,GAAK,uBACNi/N,GACIA,EAvC4B,CAwCrC/mN,IAQEinN,GAAqD,WACrD,IAAI5pU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwpU,GAAyB,SAAUjpU,GAEnC,SAASipU,EAAQlgE,EAAY/yH,EAAW9sC,EAAOiH,GAC3C,IAAIj1G,EAAQ8E,EAAOjH,KAAKoC,OAASA,KACjCD,EAAM6uO,UAAY,GAClB7uO,EAAM86I,UAAYA,EAClB96I,EAAMguG,MAAQA,EACdhuG,EAAMgL,QAAU6iQ,EAAWj/B,aAC3B5uO,EAAMi1G,OAASA,EACfj1G,EAAM6tQ,WAAaA,EACnB,IAAIxmH,EAAWrnJ,EAAMquS,iBAGrB,OAFAruS,EAAM4uK,YAAYvnB,GAClBrnJ,EAAMguU,mBACE/4N,GACJ,KAAK5D,GAAUsB,YACXk7J,EAAWzpC,eAAepkO,GAC1B,MACJ,KAAKqxG,GAAUqB,aACXm7J,EAAWvpC,gBAAgBtkO,GAC3B,MACJ,QACQ6tQ,EAAW7nC,gBAAkBh4H,EAAM+B,mBAAmBi6F,uBACtD6jE,EAAWnpC,oBAAoB1kO,GAG/B6tQ,EAAWrpC,iBAAiBxkO,GAEhC,MASR,OAPI6tQ,EAAW7nC,cACXhmO,EAAMiuU,0BAGNjuU,EAAMqmO,kBACNrmO,EAAM6tQ,WAAWpgC,iBAAiBztO,EAAMsG,WAAYtG,EAAMgL,QAAQgpL,eAE/Dh0L,EA4NX,OA/PA8tU,GAAaC,EAASjpU,GAqCtBipU,EAAQvxU,UAAUyxU,uBAAyB,WACvC,IAAIjuU,EAAQC,KACRoD,EAASpD,KAAK4tQ,WAAW/mC,sBAAsB7mO,KAAKqG,SAAUrG,KAAKg1G,QACnEtvG,EAAW,SAAUk2J,GACrB,GAAI77J,EAAMgnH,UAAW,CACjB,IAAI6mD,EAAOhS,EAAav1J,SACxBtG,EAAMsG,SAASq0B,YAAYkzI,GACvB7tK,EAAM6tQ,WAAWnnC,eAAiBtpB,GAAQilB,iBAC1CriO,EAAM6tQ,WAAWpjC,yBAAyB58D,GAE9C7tK,EAAM0kO,oBAAoB7oE,QAG1B77J,EAAMguG,MAAM1E,QAAQyE,YAAY8tD,IAIpCqyK,EAAmBjuU,KAAK+tG,MAAMmgO,mBAAmB7tU,IAAIL,KAAK+K,QAAS/K,KAAKg1G,QAC5E,GAAIi5N,EACAvoU,EAASuoU,OAER,CACD,IAAIj0I,EAAmBqoC,GAAchiO,IAAIL,KAAK4tQ,WAAWnnC,cACrDxsC,EAAmBgoC,GAAmB5hO,IAAIL,KAAK4tQ,WAAWnnC,cAC1DnpM,EAAMt9B,KAAK+tG,MAAMy/D,qBAAqBusB,yBAAyB32L,EAAQ42L,EAAkBC,GAC7F,GAAI38J,EACAA,EAAIq+H,KAAKj2J,OAER,CACD,IAAIyoU,EAA2Bl7N,GAAeQ,aAAa5kG,EAAQmkG,YAAYo8G,oBACtD,yBAArBn1B,GAAgDk0I,EAIhDlrU,QAAQC,MAAM,kCAAoC+2L,EAAmB,cAHrEh3L,QAAQkD,KAAK,qIAU7B2nU,EAAQvxU,UAAU6pO,gBAAkB,WAChC,IAAIrmO,EAAQC,KACRq7C,EAAOr7C,KAAK4tQ,WAAWjpC,kBAAkB3kO,KAAKg1G,QAC9Co5N,EAAgBnmU,GAAO,GAAIjI,KAAK4uO,WACpCvzL,EAAK98C,SAAQ,SAAUmmC,GACnB,IAAIo+D,EAAQp+D,EAAI2yE,QACZg3N,EAAmBtuU,EAAM6uO,UAAU9rI,GAInCurO,GAAoBA,EAAiBt/L,cAAgBrqG,IACrD3kC,EAAM0pO,aAAa,CAAC4kG,IACpBA,EAAmB,MAEC,MAApBA,EACAtuU,EAAMuuU,YAAY5pS,GAGlB0pS,EAActrO,GAAS,QAG/B,IAAIyrO,EAAoB7nO,GAAqB0nO,GACxC79O,QAAO,SAAUy0I,GAAY,QAAOA,GAAWjlO,EAAMyuU,0BAA0BxpG,MACpFhlO,KAAKypO,aAAa8kG,GAClBvuU,KAAKuoJ,eAAeltG,IAExByyR,EAAQvxU,UAAUgsJ,eAAiB,SAAUltG,GACzC,IAAIt7C,EAAQC,KACZ,GAAKA,KAAK+tG,MAAM+B,mBAAmBm4G,mBAAnC,CAGA,IAAIwmH,EAAkB,GACtBpzR,EAAK98C,SAAQ,SAAUmmC,GACnB,IAAIsgM,EAAWjlO,EAAM6uO,UAAUlqM,EAAIs4E,YAC/BgoH,GACAypG,EAAgBnvU,KAAK0lO,EAAS3+N,aAGtCuiJ,GAAiB5oJ,KAAKqG,SAAUooU,KAEpCX,EAAQvxU,UAAUiyU,0BAA4B,SAAUxpG,GACpD,IAAI0pG,GAAc,EACdC,GAAY,EAEZjnU,EAASs9N,EAASj2F,YACtB,GAAIrnI,EAAO80G,aAAex8G,KAAKg1G,OAC3B,OAAO05N,EAGX,IAAInpK,EAAUy/D,EAASsB,YACnBsoG,EAAU5uU,KAAK+tG,MAAMksE,gBAAgBg5D,cAAcjO,EAAS2b,mBAC5DkuF,EAAsBtpK,GAAWqpK,EACrC,GAAIC,EAAqB,CACrB,IAAIC,EAAW9pG,EAASj2F,YACpBxZ,EAAmBv1H,KAAK+tG,MAAMoxC,iBAAiBpjB,yBAC/CgzM,EAAqBx5M,EAAiBx0H,QAAQ+tU,IAAa,EAC/D,OAAOC,EAAqBJ,EAAYD,EAE5C,OAAOA,GAEXZ,EAAQvxU,UAAU+xU,YAAc,SAAU5pS,GACtC,IAAIsgM,EAAW,IAAIqN,GAASryO,KAAK4tQ,WAAWhpC,WAAY5kO,KAAK+tG,MAAOrpE,EAAK1kC,KAAK+K,QAAS/K,KAAK4tQ,YAAY,EAAO5tQ,KAAK4tQ,WAAW/oC,gBAAiB7kO,KAAKqG,SAAUrG,KAAK4tQ,WAAWtnC,aAC/KtmO,KAAK4uO,UAAUlqM,EAAI2yE,SAAW2tH,EAC9BhlO,KAAKqG,SAASq0B,YAAYsqM,EAAS3+N,WAEvCynU,EAAQvxU,UAAUsyO,YAAc,SAAU7lL,GACtC,OAAOhpD,KAAK4uO,UAAU5lL,IAE1B8kR,EAAQvxU,UAAUwyO,mBAAqB,SAAUrnO,GAC7C,IAAI3H,EAAQC,KACRgvU,EAAWryU,OAAOsD,KAAKD,KAAK4uO,WAC3BnnO,KAAI,SAAU7G,GAAQ,OAAOb,EAAM6uO,UAAUhuO,MAC7C2vF,QAAO,SAAU0+O,GAAO,OAAOA,IAAqD,IAA9CA,EAAI54F,qBAAqBt1O,QAAQ2G,MAC5E,OAAOsnU,EAASvxU,OAASuxU,EAAS,GAAK,MAE3ClB,EAAQvxU,UAAU6J,QAAU,WACxBvB,EAAOtI,UAAU6J,QAAQxI,KAAKoC,MAC9BA,KAAKkvU,mBAETpB,EAAQvxU,UAAU2yU,gBAAkB,WAChC,IAAIC,EAAiBzoO,GAAqB1mG,KAAK4uO,WAAWr+I,QAAO,SAAU//E,GAAM,OAAa,MAANA,KACxFxQ,KAAKypO,aAAa0lG,IAEtBrB,EAAQvxU,UAAUmlM,aAAe,WAC7B,OAAO1hM,KAAK66I,WAEhBizL,EAAQvxU,UAAUkoO,oBAAsB,SAAU2qG,GAC9C,IAAIrvU,EAAQC,KACRA,KAAKovU,uBACLnsU,QAAQC,MAAM,+DAElBlD,KAAKovU,sBAAwBA,EAC7BpvU,KAAKqnH,gBAAe,WAChBtnH,EAAMguG,MAAMmgO,mBAAmBxN,aAAa3gU,EAAMgL,QAAShL,EAAMi1G,OAAQo6N,GACzErvU,EAAMqvU,sBAAwB,SAGtCtB,EAAQvxU,UAAUqqO,oBAAsB,WACpC,OAAO5mO,KAAKovU,uBAEhBtB,EAAQvxU,UAAU6xS,eAAiB,WAC/B,IAAID,EAAMnuS,KAAK4tQ,WACXh6B,EAAgB,GAChB3zF,EAAYjgJ,KAAK+K,QAAQk1I,UACzBovL,EAAalhC,EAAIhhE,qBAAqBntO,KAAKg1G,QAAQhkG,KAAK,KACxDs+T,EAAiBt7M,GAAah0H,KAAK+K,QAAQi+C,IAC3CumR,EAAgBphC,EAAI9gE,kCACpBmiG,EAAcrhC,EAAIlhE,oBAClBwiG,EAAuBz7M,GAAaw7M,GACpCE,EAAcvhC,EAAI1hE,wBAClBkjG,EAAS3vU,KAAK+K,QAAQukL,oBACtBpwC,EAAiBl/I,KAAK+tG,MAAMohI,wBAAwB3yG,oBAoBxD,OAnBAo3G,EAAct0O,KAAK,QACnBs0O,EAAct0O,KAAK,eACnBs0O,EAAct0O,KAAK,eAAkBqwU,EAAS,qBAAyBzwL,EAAiBl/I,KAAK+K,QAAQ60I,SAAW,GAAK,KACrHg0F,EAAct0O,KAAKgwU,EAAiB,YAAeA,EAAiB,IAAO,IAC3E17F,EAAct0O,KAAKkwU,EAAc,sBAAyBC,EAAuB,IAAO,IACxF77F,EAAct0O,KAAK,aAAgBU,KAAK+uK,YAAc,KACtD6kE,EAAct0O,KAAK,WAAc+vU,EAAa,KAC1ClhC,EAAIpoE,eACJ6N,EAAct0O,KAAK,kBAEnBU,KAAK+tG,MAAM+B,mBAAmBuvG,kBAC9Bu0B,EAAct0O,KAAK,oBAAuBU,KAAK+K,QAAQgpL,aAAe,OAAS,SAAW,KAE1F/zL,KAAK+K,QAAQmwF,OACb04I,EAAct0O,KAAK,mBAAqBU,KAAK+K,QAAQk3G,SAAW,OAAS,UAE7E2xH,EAAct0O,KAAK,mBAAsB2gJ,EAAY,OAASyvL,EAAc,IAAMH,EAAgB,MAElG37F,EAAct0O,KAAK,UACZs0O,EAAc5iO,KAAK,KAE9B88T,EAAQvxU,UAAUwxU,iBAAmB,WACjC/tU,KAAKg1O,aACL,IAAI7P,EAAOnlO,KAAKqG,SAGZrG,KAAK4tQ,WAAWngC,+BAChBztO,KAAK+tG,MAAMm4H,UAAUC,WAAWnmO,KAAK4tQ,WAAWlgC,sBAAsBjjO,KAAKzK,KAAK4tQ,WAAYzoC,GAAOnlO,KAAK+K,QAAQ60I,SAAU,iBAG1H5/I,KAAK4tQ,WAAWlgC,sBAAsBvI,GAE1CnlO,KAAK4tQ,WAAW1oC,mCAEpB4oG,EAAQvxU,UAAUy4O,WAAa,WAC3B,IAAIj1O,EAAQC,KACR4vU,EAAM5vU,KAAK+tG,MAAM+B,mBACrB8/N,EAAIxwH,WAAWp/M,KAAKqG,SAAUm8N,GAAcgN,0BAA2BxvO,KAAK4tQ,YAC5E5tQ,KAAKqnH,gBAAe,WAAc,OAAOuoN,EAAIxwH,WAAWr/M,EAAMsG,SAAUm8N,GAAcgN,0BAA2B,UAErHs+F,EAAQvxU,UAAUktO,aAAe,SAAUmF,GACvC,IAAI7uO,EAAQC,KACZ4uO,EAAUrwO,SAAQ,SAAUymO,GAExB,GAAKA,EAAL,CAIA,IAAIh8K,EAAKg8K,EAASj2F,YAAY13B,QAC1Bt3G,EAAM6uO,UAAU5lL,KAAQg8K,IAG5BA,EAASoc,SACTpc,EAAS5+N,UACTrG,EAAM6uO,UAAU5lL,GAAM,WAG9B8kR,EAAQvxU,UAAU6rO,gBAAkB,SAAU1iO,GAC1CigG,EAAc3lG,KAAK4uO,WAAW,SAAUnyO,EAAKuoO,GACpCA,GAGLt/N,EAASs/N,OAGV8oG,EAhQiB,CAiQ1BluU,IAQEiwU,GAAqD,WACrD,IAAI5rU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDwrU,GAAkD,WASlD,OARAA,GAAanzU,OAAOsL,QAAU,SAAS4M,GACnC,IAAK,IAAIzB,EAAG7V,EAAI,EAAGwnB,EAAIpkB,UAAUlD,OAAQF,EAAIwnB,EAAGxnB,IAE5C,IAAK,IAAI8G,KADT+O,EAAIzS,UAAUpD,GACA6V,EAAOzW,OAAOJ,UAAU6D,eAAexC,KAAKwV,EAAG/O,KACzDwQ,EAAExQ,GAAK+O,EAAE/O,IAEjB,OAAOwQ,GAEJi7T,GAAW1tU,MAAMpC,KAAMW,YAE9BovU,GAAuD,SAAU1uU,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA;;;;;;GAEhE,SAASqrU,KACL,IAII1yS,EAJA18B,EAAO2qK,GAAsB3hF,aAAa,QAC1CqmP,EAAiBlmD,GAAoB1pR,IAAIO,GACzCsvU,EAAgBxlD,GAAmBrqR,IAAIO,GACvCuvU,EAAexlD,GAAkBtqR,IAAIO,GAEzC,OAAQA,GACJ,KAAKqgR,GAAkB7sG,KACvB,KAAK6sG,GAAkB3sG,MACvB,KAAK2sG,GAAkBgJ,WACvB,KAAKhJ,GAAkBkJ,SACvB,KAAKlJ,GAAkBmJ,UACvB,KAAKnJ,GAAkBoJ,cACvB,KAAKpJ,GAAkBsJ,YACvB,KAAKtJ,GAAkBuJ,aACvB,KAAKvJ,GAAkBwJ,iBACnBntP,EACI,eAAkB2yS,EAAiB,kEACvC,MACJ,KAAKhvD,GAAkB+I,OACnB1sP,EACI,eAAkB6yS,EAAe,wFAAkGD,EAAgB,2EAAmFD,EAAiB,0GAC3P,MACJ,KAAKhvD,GAAkBiJ,WACvB,KAAKjJ,GAAkBqJ,cACnBhtP,EACI,eAAkB4yS,EAAgB,yFAAmGD,EAAiB,sFAC1J,MACJ,QAAS,MAAO,GAEpB,OAAO3yS,EAEX,IAAI8yS,GAAkC,SAAUvrU,GAE5C,SAASurU,IACL,IAAIrwU,EAAQ8E,EAAOjH,KAAKoC,KAAMgwU,OAAsBhwU,KAGpD,OAFAD,EAAM8vP,aAAe,GACrB9vP,EAAMa,KAAO2qK,GAAsB3hF,aAAa,QACzC7pF,EAqJX,OA1JA8vU,GAAaO,EAAkBvrU,GAO/BurU,EAAiB7zU,UAAUwiJ,cAAgB,WACvC,IAAIh/I,EAAQC,KACZA,KAAKynN,mBAAqBznN,KAAK8vG,mBAAmBi6F,uBAClD,IAAIv2L,EAAO,CACP24Q,kBAAmB,SAAUvxM,GAAU,OAAO76E,EAAMotQ,UAAUh1N,MAAMyiC,OAASA,IAE7EuzN,EAAMnuS,KAAKsnH,kBAAkB,IAAIsjK,GAAuB5qR,KAAKY,OACjEutS,EAAI3sB,QAAQhuQ,EAAMxT,KAAKmoJ,WAAYnoJ,KAAKmtQ,UAAWntQ,KAAKu3P,UACxDv3P,KAAKqwU,mBACLrwU,KAAKswU,0BACLtwU,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOyE,6BAA8BpxH,KAAKuwU,uBAAuB9lU,KAAKzK,QAErHowU,EAAiB7zU,UAAUsuR,cAAgB,SAAU1vN,EAAOz1D,GACpDy1D,EAAMp6D,QAAQf,KAAKY,OAAS,GAC5B8E,KAMR0qU,EAAiB7zU,UAAU+zU,wBAA0B,WACjD,IAAIvwU,EAAQC,KACZA,KAAK6qR,cAAc,CAAC5J,GAAkBiJ,WAAYjJ,GAAkBqJ,gBAAgB,WAChF,IAAIkmD,EAAkB,WAAc,OAAOzwU,EAAMotQ,UAAU7lH,WAAa,GACxEvnJ,EAAMonH,mBAAmBpnH,EAAMotQ,UAAW,SAAUqjE,OAG5DJ,EAAiB7zU,UAAU8zU,iBAAmB,WAC1C,IAAItwU,EAAQC,KACRywG,EAAW,WAAc,OAAO1wG,EAAM0wU,SAAW1wU,EAAM+vG,mBAAmBm4G,oBAC9EjoN,KAAK8vG,mBAAmBU,iBAAiB4sG,GAAmBQ,gBAAiBntG,GAC7EA,KAGJ2/N,EAAiB7zU,UAAU08Q,mBAAqB,WAC5C,OAAOj5Q,KAAKmtQ,WAEhBijE,EAAiB7zU,UAAUm0U,uBAAyB,WAChD1wU,KAAK2wU,kBAAoB,MAE7BP,EAAiB7zU,UAAUq0U,UAAY,SAAUzmP,GACzCnqF,KAAKywU,SACLznL,GAAmBhpJ,KAAKmoJ,WAAYh+D,EAASnqF,KAAK2wU,mBAGlD3wU,KAAKmoJ,WAAWztH,YAAYyvD,GAEhCnqF,KAAK2wU,kBAAoBxmP,GAE7BimP,EAAiB7zU,UAAUgsJ,eAAiB,SAAU48E,GAC9CnlO,KAAKywU,WACLloL,GAAevoJ,KAAKmoJ,WAAYg9E,EAAMnlO,KAAK2wU,mBAC3C3wU,KAAK2wU,kBAAoBxrG,IAGjCirG,EAAiB7zU,UAAUs0U,UAAY,SAAU1rG,GAC7CnlO,KAAKmoJ,WAAWvtH,YAAYuqM,IAEhCirG,EAAiB7zU,UAAUg0U,uBAAyB,WAChD,IAAIxwU,EAAQC,KACR8wU,EAAoB9wU,KAAKY,OAASqgR,GAAkBoJ,eACjDrqR,KAAKY,OAASqgR,GAAkBwJ,kBAChCzqR,KAAKY,OAASqgR,GAAkBgJ,WACnC8mD,EAAUjB,GAAW,GAAI9vU,KAAK6vP,cAClC7vP,KAAK6vP,aAAe,GACpB7vP,KAAK0wU,yBACL,IAAI5lF,EAAa,SAAUrC,GACvB,IAAIxoI,EAAawoI,EAAOxnI,gBACpB+vN,EAAkBD,EAAQ9wN,GAC9B,GAAI+wN,EACAjxU,EAAM8vP,aAAa5vI,GAAc+wN,SAC1BD,EAAQ9wN,GACflgH,EAAMwoJ,eAAeyoL,EAAgB3qU,cAEpC,CACD,IAAI69N,EAAUnkO,EAAMkxU,WAAWxoF,GAC/B1oP,EAAM8vP,aAAa5vI,GAAcikH,EACjCnkO,EAAM6wU,UAAU1sG,EAAQ79N,YAG5B6qU,EAAe,SAAUzoF,GACzB,IAAI0oF,EAAsB1oF,EAAO1iB,cAC7BpD,EAAc5iO,EAAM+vG,mBAAmBq3B,iBAAmB/1B,GAAUiB,iBACpE++N,EAAUrxU,EAAM0nN,oBAAsBkb,EACtCvjN,EAAQ0xT,GACPM,GAAWD,EACVC,IAAYD,EAClB,OAAO/xT,GAEPiyT,EAAkBrxU,KAAK4mP,aAC3ByqF,EAAgB9gP,OAAO2gP,GAAc3yU,QAAQusP,GAC7CpkJ,GAAqBqqO,GAASxyU,SAAQ,SAAU2lO,GAAW,OAAOnkO,EAAM8wU,UAAU3sG,EAAQ79N,cAE9F+pU,EAAiB7zU,UAAUqqP,WAAa,WACpC,OAAQ5mP,KAAKY,MACT,KAAKqgR,GAAkBiJ,WACvB,KAAKjJ,GAAkBkJ,SACvB,KAAKlJ,GAAkBmJ,UACvB,KAAKnJ,GAAkBoJ,cACnB,OAAOrqR,KAAK0yL,YAAY41D,gBAC5B,KAAK24B,GAAkBqJ,cACvB,KAAKrJ,GAAkBsJ,YACvB,KAAKtJ,GAAkBuJ,aACvB,KAAKvJ,GAAkBwJ,iBACnB,OAAOzqR,KAAK0yL,YAAY61D,mBAC5B,QACI,OAAOvoP,KAAK0yL,YAAYk0D,eAGpCwpF,EAAiB7zU,UAAU00U,WAAa,SAAUxoF,GAC9C,IAAIzzI,EACJ,OAAQh1G,KAAKY,MACT,KAAKqgR,GAAkBsJ,YACvB,KAAKtJ,GAAkBkJ,SACvB,KAAKlJ,GAAkB7sG,KACnBp/D,EAAS5D,GAAUsB,YACnB,MACJ,KAAKuuK,GAAkBuJ,aACvB,KAAKvJ,GAAkBmJ,UACvB,KAAKnJ,GAAkB3sG,MACnBt/D,EAAS5D,GAAUqB,aACnB,MACJ,QACIuC,EAAS,KACT,MAER,IAAI13E,EAAM,IAAIwwS,GAAQrlF,EAAQzoP,KAAMA,KAAK+tG,MAAOiH,GAChD,OAAO13E,GAEXyyS,GAAc,CACVnhO,GAAU,gBACXwhO,EAAiB7zU,UAAW,mBAAe,GAC9CwzU,GAAc,CACVnhO,GAAU,UACXwhO,EAAiB7zU,UAAW,aAAS,GACxCwzU,GAAc,CACV38J,GAAY,cACbg9J,EAAiB7zU,UAAW,iBAAa,GAC5CwzU,GAAc,CACV38J,GAAY,eACbg9J,EAAiB7zU,UAAW,kBAAc,GAC7CwzU,GAAc,CACV38J,GAAY,aACbg9J,EAAiB7zU,UAAW,gBAAY,GAC3CwzU,GAAc,CACVzhO,IACD8hO,EAAiB7zU,UAAW,gBAAiB,MACzC6zU,EA3J0B,CA4JnCxwU,IAUE0xU,GAAsB,WACtB,SAASA,EAAKnlC,EAAU1lS,EAAarD,GAC5BqD,GAILzG,KAAKyG,YAAcA,GACnB,IAAI8qU,IAAkBhtU,OAAO4nS,EAAU1lS,GAAa,SAAU4iG,GAC1D,IAAImoO,EAAW,IAAItjC,GAAS/B,GAC5B9iM,EAAQ6B,WAAWsmO,KACpBpuU,IAPCH,QAAQC,MAAM,gDActB,OALAouU,EAAK/0U,UAAU6J,QAAU,WACjBpG,KAAKyG,aAAezG,KAAKyG,YAAYmD,KACrC5J,KAAKyG,YAAYmD,IAAIxD,WAGtBkrU,EAjBc,GAqBrBC,GAAiC,WACjC,SAASA,KAkMT,OAhMAA,EAAgBh1U,UAAUgI,OAAS,SAAU4nS,EAAU1lS,EAAagrU,EAAYruU,GAC5E,IAAIunN,IAAUlkN,EAAYkkN,MACtB+mH,EAAoB1xU,KAAK4zG,qBAAqBxwG,GAC9CsnG,EAAc1qG,KAAK2xU,gBAAgBlrU,EAAYw5M,aAAcyxH,GAC7DhnU,EAAwB1K,KAAK4xU,oBAAoBzlC,EAAU1lS,EAAarD,GAC5E,GAAKsnG,EAAL,CAGA,IAAIC,EAAgB,CAChBjgG,sBAAuBA,EACvBggG,YAAaA,EACbigH,MAAOA,GAEPngH,EAAS,IAAIogM,GAAO,WAAW,WAAc,OAAOnkS,EAAYkkN,SAChEknH,EAAgB,IAAIjnC,GAAO,WAAW,WAAc,OAAOjgM,EAAcggH,SACzEthH,EAAU,IAAIkB,GAAQI,EAAeknO,GACzC7xU,KAAK8xU,6BAA6BzoO,EAASqoO,GAC3C1xU,KAAK+xU,wBAAwB1oO,EAASqoO,GACtCD,EAAWpoO,GACXrpG,KAAKgyU,kBAAkB3oO,GACvBrpG,KAAKiyU,uBAAuB5oO,EAAS5iG,GACrC,IAAIyrU,EAAej/N,GAAeQ,aAAa5kG,EAAQmkG,YAAYy6L,sBACnEjjM,EAAO3sF,IAAI,0CAA4Cq0T,KAE3DX,EAAgBh1U,UAAUw1U,wBAA0B,SAAU1oO,EAASqoO,GACnE,IAAIS,EAAoBnyU,KAAKoyU,4BAA4BV,GACrDvhK,EAA4B9mE,EAAQuE,QAAQ,6BAChDuiE,EAA0B01J,gBAAgBsM,IAE9CZ,EAAgBh1U,UAAUq3G,qBAAuB,SAAUxwG,GACvD,IAAIivU,EAAuBjvU,EAASA,EAAOuH,QAAU,KACjD2nU,EAAar/N,GAAeW,uBAC5B2+N,EAAa,GACbC,EAAW,GAEf,SAASC,EAAUt/N,EAAau/N,GAC5B,SAASC,EAAoBC,GACpBJ,EAASI,EAAcv/N,cACxBm/N,EAASI,EAAcv/N,aAAc,EACrCk/N,EAAWjzU,KAAKszU,GAChB3/N,GAAeC,SAAS0/N,EAAez/N,IAG/Cw/N,EAAoBD,GAChBA,EAAIG,kBACJH,EAAIG,iBAAiBt0U,QAAQk0U,EAAUhoU,KAAK,KAAM0oG,IAS1D,OANIk/N,GACAA,EAAqB9zU,QAAQk0U,EAAUhoU,KAAK,MAAM,IAElD6nU,GACAA,EAAW/zU,QAAQk0U,EAAUhoU,KAAK,MAAOwoG,GAAeY,mBAErD0+N,GAEXhB,EAAgBh1U,UAAUu1U,6BAA+B,SAAUzoO,EAASqoO,GACxE,IAAIx0I,EAAwB7zF,EAAQuE,QAAQ,yBACxCklO,EAAkB9yU,KAAK+yU,oBAAoBrB,GAAmB,SAAU9iU,GAAU,OAAOA,EAAOokU,eAAiBpkU,EAAOokU,eAAiB,MAC7IF,EAAgBv0U,SAAQ,SAAU00U,GAC9B/1I,EAAsBge,yBAAyB+3H,EAASj2I,cAAei2I,EAAS/M,oBAGxFqL,EAAgBh1U,UAAUq1U,oBAAsB,SAAUzlC,EAAU1lS,EAAarD,GAC7E,IAAI2sG,EAAqB3sG,EAASA,EAAO2sG,mBAAqB,KAC1DpP,EAAQoP,KACRA,EAAqB,IAAIwmM,IAE7B,IAAI5vR,EAAO,CACPlgB,YAAaA,EACb0lS,SAAUA,EACVnhE,OAAQ5nO,EAASA,EAAO4nO,OAAS,KACjCC,SAAU7nO,EAASA,EAAO6nO,SAAW,KACrC9hO,oBAAqB/F,EAASA,EAAO+F,oBAAsB,KAC3D4mG,mBAAoBA,GAKxB,OAHI3sG,GAAUA,EAAOsH,uBACjBzC,GAAO0e,EAAMvjB,EAAOsH,uBAEjBic,GAEX4qT,EAAgBh1U,UAAU61U,4BAA8B,SAAUV,GAC9D,IAAI3tU,EAAa,CACb,CAAEi5L,cAAe,aAAckpI,eAAgBtuE,IAC/C,CAAE56D,cAAe,gBAAiBkpI,eAAgB9vB,IAClD,CAAEp5G,cAAe,iBAAkBkpI,eAAgB9F,IACnD,CAAEpjI,cAAe,mBAAoBkpI,eAAgB1Q,IACrD,CAAEx4H,cAAe,kBAAmBkpI,eAAgBpQ,IACpD,CAAE94H,cAAe,qBAAsBkpI,eAAgB9K,IACvD,CAAEp+H,cAAe,eAAgBkpI,eAAgBrK,IACjD,CAAE7+H,cAAe,WAAYkpI,eAAgB3I,IAC7C,CAAEvgI,cAAe,WAAYkpI,eAAgBjQ,IAC7C,CAAEj5H,cAAe,gBAAiBkpI,eAAgBlI,IAClD,CAAEhhI,cAAe,gBAAiBkpI,eAAgBnL,IAClD,CAAE/9H,cAAe,aAAckpI,eAAgBv5C,IAC/C,CAAE3vF,cAAe,eAAgBkpI,eAAgB10D,IACjD,CAAEx0E,cAAe,eAAgBkpI,eAAgBzc,IACjD,CAAEzsH,cAAe,mBAAoBkpI,eAAgB5Y,IACrD,CAAEtwH,cAAe,mBAAoBkpI,eAAgB5X,IACrD,CAAEtxH,cAAe,UAAWkpI,eAAgBzV,IAC5C,CAAEzzH,cAAe,WAAYkpI,eAAgB1T,IAC7C,CAAEx1H,cAAe,iBAAkBkpI,eAAgBkK,IACnD,CAAEpzI,cAAe,yBAA0BkpI,eAAgBmH,KAE3D6F,EAAqBlzU,KAAK+yU,oBAAoBrB,GAAmB,SAAU9iU,GAAU,OAAOA,EAAOujU,kBAAoBvjU,EAAOujU,kBAAoB,MAEtJ,OADApuU,EAAaA,EAAW+P,OAAOo/T,GACxBnvU,GAEXwtU,EAAgBh1U,UAAUo1U,gBAAkB,SAAU1xH,EAAcyxH,GAChE,IAAIyB,EAAgBnzU,KAAKozU,iBAAiBnzH,EAAcyxH,GACxD,GAAKyB,EAAL,CAIA,IAAIplO,EAAQ,CACRolO,EAAetyB,GAAOsgB,GAAkBQ,GAAmB2E,GAC3DnqB,GAA+BruB,GAASn1E,GAAuB0mG,GAC/DQ,GAA2BqM,GAAuBzyH,GAClDutH,GAA2BiC,GAAsBld,GACjDq2B,GAAgBhzB,GAAalyJ,GAAuB9tC,GAAcguG,GAClE+oF,GAAcnoE,GAAqBg1C,GAAej+I,GAAkBm6I,GACpE0qC,GAAiB9zD,GAAao7C,GAAmBz5K,GAAeq6K,GAChE0b,GAAqBiH,GAAmB/H,GAAYlmC,GAAck0B,GAClEpuJ,GAAa2uJ,GAAqB4D,GAAqBnwG,GAAoBuhC,GAC3E2iE,GAAiBuQ,GAAmBsO,GAAa1N,GAAuB+B,GACxEmB,GAAgBL,GAAsBjF,GAAgBgG,GAAoBI,GAC1EyQ,GAAmB7P,GAAqBsE,GAAwBuF,GAChE+d,GAAoBwD,GAAiB4B,GAA2BiB,GAChEW,GAAuB8B,GAAoBgB,GAAee,GAC1DuC,IAEA0F,EAAcrzU,KAAK+yU,oBAAoBrB,GAAmB,SAAU9iU,GAAU,OAAOA,EAAOm/F,MAAQn/F,EAAOm/F,MAAQ,MACvHA,EAAMzuG,KAAK8C,MAAM2rG,EAAOslO,GAGxB,IAAIC,EAAoB,GAMxB,OALAvlO,EAAMxvG,SAAQ,SAAU4sG,GAChBmoO,EAAkBvyU,QAAQoqG,GAAQ,GAClCmoO,EAAkBh0U,KAAK6rG,MAGxBmoO,IAEX/B,EAAgBh1U,UAAUw2U,oBAAsB,SAAUQ,EAAgBC,GACtE,MAAO,GAAG1/T,OAAO1R,MAAM,GAAImxU,EAAe9rU,IAAI+rU,KAElDjC,EAAgBh1U,UAAUy1U,kBAAoB,SAAU3oO,GACpD,IAAIyG,EAAqBzG,EAAQuE,QAAQ,sBACrCuxC,EAAmB91C,EAAQuE,QAAQ,oBACnCrjG,EAAaulG,EAAmBw1B,gBACpC6Z,EAAiBroB,cAAcvsH,GAAc,GAAI,oBACjD,IAAI2tI,EAAW7uC,EAAQuE,QAAQ,YAC/BsqC,EAASvsH,SAEb4lT,EAAgBh1U,UAAU01U,uBAAyB,SAAU5oO,EAAS5iG,GAClE,IAAI4tG,EAAehL,EAAQuE,QAAQ,gBAC/B6lO,EAAa,CACbh0U,KAAMktH,GAAOkD,iBACbjmH,IAAKnD,EAAYmD,IACjBC,UAAWpD,EAAYoD,WAE3BwqG,EAAa5nG,cAAcgnU,IAE/BlC,EAAgBh1U,UAAU62U,iBAAmB,SAAUnzH,EAAcyxH,GAE5DzxH,IACDA,EAAe7uG,GAAUU,4BAE7B,IAAI4hO,EAAkB,GACtBhC,EAAkBnzU,SAAQ,SAAUqQ,GAChC+2F,EAAc/2F,EAAO+kU,WAAW,SAAUl3U,EAAKC,GAC3Cg3U,EAAgBj3U,GAAOC,QAG/B,IAAIy2U,EAAgBO,EAAgBzzH,GACpC,GAAIx/G,EAAO0yO,GACP,OAAOA,EAEPlzH,IAAiB7uG,GAAUQ,yBAC3B3uG,QAAQC,MAAM,8DAAkE2L,EAAQmkG,YAAY4gO,uBAAyB,qBAEjI3wU,QAAQC,MAAM,+DAAiE+8M,GAC3EA,IAAiB7uG,GAAUS,yBAC3B5uG,QAAQC,MAAM,wFAA4F2L,EAAQmkG,YAAY6gO,uBAAyB,qBAEvJ5zH,IAAiB7uG,GAAUW,4BAC3B9uG,QAAQC,MAAM,2FAA+F2L,EAAQmkG,YAAY8gO,yBAA2B,qBAE5J7zH,IAAiB7uG,GAAUU,4BAC3B7uG,QAAQC,MAAM,iEAAqE2L,EAAQmkG,YAAY+gO,yBAA2B,sBAGnIxC,EAnMyB;;;;;;;;;;;;;AA4MpC,SAASyC,GAA6BC,GAClC,IAAIC,EAAgBD,EAAQrlU,OAAO,SAAU,IAC7CslU,EAAcC,UAAU,UAAU,WAC9B,MAAO,CACHC,SAAU,IACVxmE,WAAY,CAAC,WAAY,SAAU,WAAY,SAAUymE,IACzD3oI,OAAO,MAInB,SAAS2oI,GAA2BC,EAAUtpG,EAAQC,EAAUspG,GAC5D,IAAI9tU,EACA+tU,EAAmBD,EAAOj7O,OAE9B,GADA7yF,EAAcukO,EAAOypG,MAAMD,GACtB/tU,EAAL,CAIA,IAAI0lS,EAAWmoC,EAAS,GACpB9pU,EAAa,CACbwgO,OAAQA,EACRC,SAAUA,GAEVi0E,EAAO,IAAIoyB,GAAKnlC,EAAU1lS,EAAa+D,GACvCkqU,EAAqBF,EAAmB,mBACxCG,EAA0B3pG,EAAO4pG,OAAOF,GAAoB,SAAUjgE,GACtEhuQ,EAAYmD,IAAIm2F,eAAe00K,MAEnCzpC,EAAO6pG,IAAI,YAAY,WACnBF,IACIz1B,GACAA,EAAK94S,UAET84S,EAAO,aAlBPj8S,QAAQkD,KAAK;;;;;;GA4BrB,IAAImsU,IAAa,EACjB,SAASwC,KAGL,GAFA7xU,QAAQkD,KAAK,uHAETmsU,GAAJ,CAGAA,IAAa,EACW,qBAAb3lU,UAA6BA,SAASooU,iBAC7C9xU,QAAQC,MAAM,gHAIlB,IAAI8xU,EAAiBr4U,OAAO4H,OAAO6J,YAAY7R,WAE/C8vJ,GAAcrlJ,eAAezI,SAAQ,SAAU9B,GAC3CE,OAAOC,eAAeo4U,EAAgBv4U,EAAK,CACvC6D,IAAK,SAAUsU,GACX5U,KAAKi1U,oBAAoBx4U,EAAKmY,IAElCvU,IAAK,WACD,OAAOL,KAAKk1U,oBAAoBz4U,IAEpCI,YAAY,EACZC,cAAc,OAGtB,IAAIq4U,EAAoBH,EACxBG,EAAkBF,oBAAsB,SAAUx4U,EAAKC,GAC9CsD,KAAKo1U,eACNp1U,KAAKo1U,aAAe,IAExBp1U,KAAKo1U,aAAa34U,GAAOC,EAEzB,IAAI24U,EAAe,GACnBA,EAAa54U,GAAO,CAAEoK,aAAcnK,GACpCsD,KAAKq2S,SAASg/B,IAElBF,EAAkB9+B,SAAW,SAAU3sS,GAC/B1J,KAAKs1U,cACLjpL,GAAc1iJ,gBAAgBD,EAAS1J,KAAKu1U,aAAcv1U,KAAK4J,IAAK5J,KAAK6J,YAGjFsrU,EAAkBD,oBAAsB,SAAUz4U,GAI9C,OAHKuD,KAAKo1U,eACNp1U,KAAKo1U,aAAe,IAEjBp1U,KAAKo1U,aAAa34U,IAE7B04U,EAAkBK,eAAiB,SAAUj2U,GACzC,IAAI4J,EAAsBnJ,KAAKmJ,oBAAoBsB,KAAKzK,MACxDA,KAAKu1U,aAAelpL,GAAcniJ,4BAA4B3K,EAASS,MACvE,IAAIwK,EAAa,CACbrB,oBAAqBA,GAEzBnJ,KAAKy1U,QAAU,IAAInE,GAAKtxU,KAAMA,KAAKu1U,aAAc/qU,GACjDxK,KAAK4J,IAAMrK,EAAQqK,IACnB5J,KAAK6J,UAAYtK,EAAQsK,UACzB7J,KAAKs1U,cAAe,GAGxBH,EAAkBO,gBAAkB,WAChC,IAAK,IAAIn4U,EAAI,EAAGA,EAAIyC,KAAKssG,WAAW7uG,OAAQF,IAAK,CAC7C,IAAIivG,EAAYxsG,KAAKssG,WAAW/uG,GAChCyC,KAAK21U,yBAAyBnpO,KAGtC2oO,EAAkBQ,yBAA2B,SAAUnpO,GACnD,IAAI5rG,EAAOg1U,GAAYppO,EAAU01C,UAC7BxlJ,EAAQ8vG,EAAUqpO,UAClBxpL,GAAcrlJ,eAAejG,QAAQH,IAAS,IAC9CZ,KAAKY,GAAQlE,IAGrBy4U,EAAkBW,iBAAmB,SAAU1yU,KAC/C+xU,EAAkBY,iBAAmB,SAAU3yU,KAC/C+xU,EAAkBa,yBAA2B,SAAUppO,GACnD,IAAIJ,EAAYxsG,KAAKssG,WAAWM,GAChC5sG,KAAK21U,yBAAyBnpO,IAElC2oO,EAAkBhsU,oBAAsB,SAAUC,EAAWhC,GACzD,IAAI6uU,EAAiB7sU,EAAUJ,cAC3BktU,EAAe,IAAIC,MAAMF,GACzBG,EAAqBF,EACzBE,EAAmBC,cAAgBjvU,EACnCpH,KAAKyM,cAAcypU,GACnB,IAAII,EAAiB,KAAOL,EACQ,oBAAzBj2U,KAAKs2U,IACZt2U,KAAKs2U,GAAgBJ,IAI7BvpU,SAASooU,gBAAgB,UAAW,CAAEx4U,UAAWy4U,KAErD,SAASY,GAAYW,GACjB,GAAwB,kBAAbA,EAAuB,CAC9B,IAAI/nU,EAAS+nU,EAASxtU,QAAQ,aAAa,SAAUoD,GACjD,OAAOA,EAAE,GAAG6R,iBAEhB,OAAOxP,EAGP,OAAO+nU;;;;;;GAUf,IAAIC,GAAqD,WACrD,IAAIvyU,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDmyU,GAAuD,SAAUp1U,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D+xU,GAA8B,SAAU7xU,GAExC,SAAS6xU,EAAatzU,GAClB,IAAIrD,EAAQ8E,EAAOjH,KAAKoC,KAAM02U,EAAax/F,YAAY9zO,EAAOkhK,YAActkK,KAM5E,OALAD,EAAM+jH,MAAQ,GACd/jH,EAAMqD,OAASA,EACXA,EAAO0gH,OACP1gH,EAAO0gH,MAAMvlH,SAAQ,SAAU6uF,GAAQ,OAAOrtF,EAAM+vT,QAAQ1iO,MAEzDrtF,EAgJX,OAxJAy2U,GAAaE,EAAc7xU,GAU3B6xU,EAAax/F,YAAc,SAAU5yE,GACjC,MAAkB,uBAA0BA,EAAW,yEAAiFA,EAAWA,EAAW,UAAY,IAAM,mFAA2FA,EAAWA,EAAW,QAAU,IAAM,4BAErToyK,EAAan6U,UAAU0+K,cAAgB,SAAUzuK,GAC7C,OAAQA,EAAEs4J,SACN,KAAK+O,GAAQS,MACb,KAAKT,GAAQO,KACT,IAAKp0K,KAAK22U,QAAQ/7O,SAASjuF,SAAS+nM,eAChC,OAEJ,IAAI+vF,EAAkBzkS,KAAK8jH,MAAM/iH,QAAQf,KAAK42U,YAC1CjmE,EAAenkQ,EAAEs4J,UAAY+O,GAAQS,MAAQp/J,KAAKsM,IAAIijR,EAAkB,EAAGzkS,KAAK8jH,MAAMrmH,OAAS,GAAKyX,KAAKuM,IAAIgjR,EAAkB,EAAG,GACtI,GAAIA,IAAoB9zB,EACpB,OAEJnkQ,EAAEmpK,iBACF,IAAIkhK,EAAW72U,KAAK8jH,MAAM6sJ,GAC1B3wQ,KAAK82U,gBAAgBD,GACrBA,EAASE,cAAchhK,QACvB,MACJ,KAAKlC,GAAQQ,GACb,KAAKR,GAAQU,KACT/nK,EAAEylM,kBACF,QAGZykI,EAAan6U,UAAU69K,aAAe,SAAU5tK,GAC5C,IAAIA,EAAE6tK,iBAAN,CAGA,IAAI/sF,EAAKttF,KAAMi6K,EAAkB3sF,EAAG2sF,gBAAiB08J,EAAUrpP,EAAGqpP,QAAS5mC,EAAQziN,EAAGyiN,MAAO6mC,EAAatpP,EAAGspP,WACzGliI,EAAgB/nM,SAAS+nM,cAE7B,GADAloM,EAAEmpK,iBACEghK,EAAQ/7O,SAAS85G,GAEjBz6B,EAAgB+oF,UAAU+sC,EAAOvjS,EAAEo0H,eAInC,GAAIq5C,EAAgBwrH,6BAA6BsK,GAE7C6mC,EAAWG,cAAchhK,YAExB,CACD,IAAIszD,EAASpvD,EAAgBO,yBAAyBu1H,GAAO,EAAOvjS,EAAEo0H,UAClEyoG,EAEAA,EAAOtzD,QAIP6gK,EAAWG,cAAchhK,WAKzC2gK,EAAan6U,UAAUy6U,uBAAyB,SAAU5zU,GACtDpD,KAAKi3U,oBAAsB7zU,GAE/BszU,EAAan6U,UAAU26U,iBAAmB,WACtC,IAAI/rC,EAAkBnrS,KAAKqG,SAASslS,WAAU,GAC1CwrC,EAAahsC,EAAgBrjJ,cAAc,iBAE/CqjJ,EAAgBhzP,MAAMyqG,SAAW,QAGjC5iJ,KAAKqG,SAASq0B,YAAYywQ,GAC1B,IAAI10L,EAAW,EACXuzC,EAAY,EAgBhB,OAfAhqJ,KAAK8jH,MAAMvlH,SAAQ,SAAU64U,GACzB1vL,GAAayvL,GACb,IAAIE,EAASD,EAAYE,WAAWC,YAAY5sK,WAAW,MAAM,SAAUz8J,GAAQ,OAAOA,EAAKy9R,WAAU,MAC3F,MAAV0rC,IAGJF,EAAWz8S,YAAY28S,GACnB5gO,EAAW00L,EAAgBtoJ,cAC3BpsC,EAAW00L,EAAgBtoJ,aAE3BmH,EAAYmhJ,EAAgBnkJ,eAC5BgD,EAAYmhJ,EAAgBnkJ,kBAGpChnJ,KAAKqG,SAASu0B,YAAYuwQ,GACnB,CAAEvwN,OAAQovE,EAAW1wG,MAAOm9D,IAEvCigO,EAAan6U,UAAUi7U,cAAgB,WAC/Bx3U,KAAK8jH,MAAMrmH,OAAS,GACpBuC,KAAK82U,gBAAgB92U,KAAK8jH,MAAM,KAGxC4yN,EAAan6U,UAAUuzT,QAAU,SAAU1iO,GACvC,IAAI2pP,EAAgBpqU,SAASa,cAAc,QAC3CupU,EAAc3xN,aAAa,WAAY,MACvC2xN,EAAc3xN,aAAa,OAAQ,YACnC2xN,EAAcr8S,YAAY0yD,EAAKn/E,OAC/B61I,GAAYizL,EAAe,UAC3B/2U,KAAK22U,QAAQj8S,YAAYq8S,GACzBz6K,GAAay6K,EAAe3pP,EAAKqqP,YACjC,IAAIryU,EAAU,CACVkyU,WAAYlqP,EACZ2pP,cAAeA,GAEnB/2U,KAAK8jH,MAAMxkH,KAAK8F,GAChB2xU,EAAcvmO,iBAAiB,QAASxwG,KAAK82U,gBAAgBrsU,KAAKzK,KAAMoF,KAE5EsxU,EAAan6U,UAAUm7U,SAAW,SAAUJ,GACxC,IAAIF,EAAcrpT,EAAK/tB,KAAK8jH,OAAO,SAAU1+G,GAAW,OAAOA,EAAQkyU,aAAeA,KAClFF,GACAp3U,KAAK82U,gBAAgBM,IAG7BV,EAAan6U,UAAUu6U,gBAAkB,SAAU1xU,GAC/C,IAAIrF,EAAQC,KACRA,KAAKoD,OAAOu0U,eACZ33U,KAAKoD,OAAOu0U,cAAc,CAAEvqP,KAAMhoF,EAAQkyU,aAE1Ct3U,KAAK42U,aAAexxU,GAIxBsiJ,GAAa1nJ,KAAK+vS,OAClB3qS,EAAQkyU,WAAWC,YAAY57K,MAAK,SAAUztJ,GAC1CnO,EAAMgwS,MAAMr1Q,YAAYxsB,GACxB,IAAI82R,GAAiBjlS,EAAMk6K,gBAAgB8pH,iBAC3ChkS,EAAMk6K,gBAAgB+oF,UAAUjjQ,EAAMgwS,OAAO,EAAO/K,GAChD5/R,EAAQkyU,WAAWM,uBACnBxyU,EAAQkyU,WAAWM,sBAAsB73U,EAAMk3U,wBAGnDj3U,KAAK42U,YACL1yL,GAAelkJ,KAAK42U,WAAWG,cAAe,mBAElDjzL,GAAY1+I,EAAQ2xU,cAAe,mBACnC/2U,KAAK42U,WAAaxxU,GAhBdilG,GAAcrqG,KAAKoD,OAAOy0U,sBAkBlCpB,GAAc,CACVrjK,GAAY,YACbsjK,EAAan6U,UAAW,eAAW,GACtCk6U,GAAc,CACVrjK,GAAY,UACbsjK,EAAan6U,UAAW,aAAS,GAC7Bm6U,EAzJsB,CA0J/B39J;;;;;;;AAQF,SAAS++J,GAAkB10U,GACvB,OAAO,IAAI0mK,IAAU,SAAUQ,GAC3B,IAAIytK,EAAc,IAAIhsU,eACtBgsU,EAAY/rU,KAAK,MAAO5I,EAAOm3B,KAC/Bw9S,EAAYzrU,OACZyrU,EAAYC,mBAAqB,WACE,IAA3BD,EAAYE,YAA2C,MAAvBF,EAAYxrU,QAC5C+9J,EAAQ7tI,KAAKzT,MAAM+uT,EAAYz1C;;;;;;IAY/C,SAAW41C,GACPA,EAAkC,iBAAmB,gBACrDA,EAAkC,gBAAkB,eACpDA,EAAkC,sBAAwB,qBAC1DA,EAAkC,sBAAwB,qBAC1DA,EAAkC,kBAAoB,iBACtDA,EAAkC,WAAa,UAC/CA,EAAkC,aAAe,aAPrD,CAQGrpU,EAAQqpU,oCAAsCrpU,EAAQqpU,kCAAoC;;;;;;;AAQ7F,IAAIC,GAAqD,WACrD,IAAIl0U,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD8zU,GAAuD,SAAU/2U,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D0zU,GAA6B,SAAUxzU,GAEvC,SAASwzU,EAAY3pB,EAAe4pB,QACV,IAAlB5pB,IAA4BA,EAAgB,gBAC/B,IAAb4pB,IAAuBA,EAAW,WACtC,IAAIv4U,EAAQ8E,EAAOjH,KAAKoC,KAAMq4U,EAAYnhG,YAAYw3E,IAAgB,IAAS1uT,KAM/E,OALAD,EAAM2uT,cAAgBA,EACtB3uT,EAAMu4U,SAAWA,EACjBv4U,EAAM8vP,aAAe,IAAIv4K,IACzBv3E,EAAMkgJ,UAAY,GAClBlgJ,EAAM2I,aAAc,EACb3I,EAiOX,OA3OAo4U,GAAaE,EAAaxzU,GAY1BwzU,EAAY97U,UAAUwiJ,cAAgB,WAClC/+I,KAAK84Q,oBACL94Q,KAAKigJ,UAAYjgJ,KAAKu4U,gBACtBv4U,KAAKw4U,oBACL3zU,EAAOtI,UAAUwiJ,cAAcnhJ,KAAKoC,OAExCq4U,EAAY97U,UAAUi8U,kBAAoB,WACtC,IAAI/nO,EAAWzwG,KAAKy4U,gBAAgBhuU,KAAKzK,MACrC04U,EAAkB14U,KAAK8qO,sBAAsBC,cAAc/qO,KAAKqG,SAAUoqG,GAC9EzwG,KAAKqnH,eAAeqxN,IAExBL,EAAY97U,UAAUw9K,kBAAoB,SAAUC,GAChDh6K,KAAK24U,SAAS3+J,EAAah6K,KAAKkH,MAAMs0Q,cAAgB,EAAI,IAE9D68D,EAAY97U,UAAUs9K,UAAY,SAAUrtK,GACxC3H,EAAOtI,UAAUs9K,UAAUj8K,KAAKoC,KAAMwM,GACtC,IAAIzQ,EAASyQ,EAAEzQ,OACX8oJ,GAAc9oJ,EAAQ,0BACtBiE,KAAK44U,oBAAsBx8K,GAAgBrgK,GAAU,IAG7Ds8U,EAAY97U,UAAUu9K,WAAa,SAAUttK,GACzC3H,EAAOtI,UAAUu9K,WAAWl8K,KAAKoC,KAAMwM,GAClCxM,KAAKiyK,sBAAsBr3E,SAASpuF,EAAEiuK,iBACvCz6K,KAAK44U,oBAAsB,OAGnCP,EAAY97U,UAAU0+K,cAAgB,SAAUzuK,GAC5C,OAAQA,EAAEs4J,SACN,KAAK+O,GAAQQ,GACb,KAAKR,GAAQU,KACLv0K,KAAK64U,SAASrsU,EAAEs4J,UAAY+O,GAAQQ,KACpC7nK,EAAEmpK,iBAEN,QAGZ0iK,EAAY97U,UAAU69K,aAAe,SAAU5tK,GACvCxM,KAAK64U,SAASrsU,EAAEo0H,UAChBp0H,EAAEmpK,iBAIF31K,KAAKi6K,gBAAgB+oF,UAAUhjQ,KAAKqG,UAAWmG,EAAEo0H,WAGzDy3M,EAAY97U,UAAUs8U,SAAW,SAAUl+J,GACvC,GAAgC,MAA5B36K,KAAK44U,oBACL,OAAO,EAEX,IAAI/oE,EAAU7vQ,KAAK44U,qBAAuBj+J,GAAM,EAAI,GACpD,QAAIk1F,EAAU,GAAKA,GAAW7vQ,KAAKkH,MAAMs0Q,iBAGzCx7Q,KAAK24U,SAAS9oE,IACP,IAEXwoE,EAAY97U,UAAUu8U,kBAAoB,WACtC,OAAO94U,KAAK44U,qBAEhBP,EAAY97U,UAAUo8U,SAAW,SAAUI,GACvC,IAAIh5U,EAAQC,KACZA,KAAKoxP,mBAAmB2nF,GACxBxtU,OAAOE,YAAW,WACd,IAAIk9O,EAAc5oP,EAAM8vP,aAAaxvP,IAAI04U,GACrCpwF,GACAA,EAAY19F,KAAK8qB,UAEtB,KAEPsiK,EAAY97U,UAAUy8U,eAAiB,SAAUp5L,GAC7C,IAAIiwB,EAAO7vK,KAAK6vP,aAAaxvP,IAAIu/I,GACjC,OAAOiwB,GAAQA,EAAK4hF,cAExB4mF,EAAYnhG,YAAc,SAAUw3E,GAChC,MAAkB,yDAA4DA,EAAgB,qGAA2GA,EAAgB,wEAE7N2pB,EAAY97U,UAAUg8U,cAAgB,WAClC,OAAOv4U,KAAK8vG,mBAAmB+oH,qBAEnCw/G,EAAY97U,UAAU60P,mBAAqB,SAAUlyP,GACjD,IAAIwgJ,EAAU1/I,KAAKkH,MAAMs0Q,cACzB,GAAqB,kBAAVt8Q,GAAsBA,EAAQ,GAAKA,GAASwgJ,EACnDz8I,QAAQkD,KAAK,6CAA+CjH,OADhE,CAIA,IAAI+8Q,EAAc/8Q,EAAQc,KAAKigJ,UAC3Bi8H,EAAiBD,EAAcj8Q,KAAKigJ,UACpC2tB,EAAO5tK,KAAKqG,SACZ4yU,EAAmBrrK,EAAK62B,UACxB83E,EAAiB3uG,EAAK5mB,aACtBkyL,EAAsBD,EAAmB18D,EACzC48D,EAA0BF,EAAmBh9D,EAC7Cm9D,EAA4BF,EAAsBh9D,EACtD,GAAIi9D,EAEAvrK,EAAK62B,UAAYw3E,OAEhB,GAAIm9D,EAA2B,CAEhC,IAAIt8D,EAAoBZ,EAAiBK,EACzC3uG,EAAK62B,UAAYq4E,KAGzBu7D,EAAY97U,UAAU88U,oBAAsB,SAAUC,GAClDt5U,KAAKs5U,iBAAmBA,GAE5BjB,EAAY97U,UAAUg8N,aAAe,WACjC,OAAOv4N,KAAKigJ,WAEhBo4L,EAAY97U,UAAUg9U,aAAe,WACjC,OAAOv5U,KAAKqG,SAASo+L,WAEzB4zI,EAAY97U,UAAUw1L,aAAe,SAAU9xC,GAC3CjgJ,KAAKigJ,UAAYA,EACjBjgJ,KAAKu4F,WAET8/O,EAAY97U,UAAUg8F,QAAU,WAC5B,IAAIx4F,EAAQC,KACZ,GAAkB,MAAdA,KAAKkH,QAAiBlH,KAAK0I,YAA/B,CAGA,IAAI40J,EAAWt9J,KAAKkH,MAAMs0Q,cAC1Bx7Q,KAAKmoJ,WAAWhwG,MAAMyiC,OAAS0iF,EAAWt9J,KAAKigJ,UAAY,KAE3D12C,IAAU,WAAc,OAAOxpG,EAAMooJ,WAAW7F,cAAgBgb,EAAWv9J,EAAMkgJ,aAAc,WACvFlgJ,EAAM2I,cAGV3I,EAAMy5U,mBACNz5U,EAAM04U,wBAGdJ,EAAY97U,UAAUi9U,iBAAmB,WACrC,IAAIz5U,EAAQC,KACZA,KAAK6vP,aAAatxP,SAAQ,SAAUqhD,EAAGggG,GAAY,OAAO7/I,EAAM8wU,UAAUjxL,OAE9Ey4L,EAAY97U,UAAUk8U,gBAAkB,WACpC,IAAI58K,EAAM77J,KAAKqG,SACXyoP,EAAWjzF,EAAI4oC,UACfsqD,EAAcD,EAAWjzF,EAAI7U,aAC7BzH,EAAWrqI,KAAKkG,MAAM0zO,EAAW9uP,KAAKigJ,WACtCP,EAAUxqI,KAAKkG,MAAM2zO,EAAc/uP,KAAKigJ,WAC5CjgJ,KAAKy5U,mBAAmBl6L,EAAUG,IAEtC24L,EAAY97U,UAAUk9U,mBAAqB,SAAU9tT,EAAOs4G,GACxD,IAAIlkI,EAAQC,KAEZA,KAAK6vP,aAAatxP,SAAQ,SAAUqhD,EAAGggG,IAC9BA,EAAWj0H,GAASi0H,EAAW3b,IAAW2b,IAAa7/I,EAAM64U,qBAC9D74U,EAAM8wU,UAAUjxL,MAIxB,IAAK,IAAIA,EAAWj0H,EAAOi0H,GAAY3b,EAAQ2b,IACvC5/I,KAAK6vP,aAAar4K,IAAIooE,IAItBA,EAAW5/I,KAAKkH,MAAMs0Q,eACtBx7Q,KAAK05U,UAAU95L,IAI3By4L,EAAY97U,UAAUm9U,UAAY,SAAU95L,GACxC,IAAI7/I,EAAQC,KACRtD,EAAQsD,KAAKkH,MAAM44I,OAAOF,GAC1BqL,EAAOt+I,SAASa,cAAc,OAOlC,GANAs2I,GAAYmH,EAAM,wBAClBnH,GAAYmH,EAAM,MAAQjrJ,KAAK0uT,cAAgB,sBAC/CzjK,EAAK7lC,aAAa,OAA0B,SAAlBplH,KAAKs4U,SAAsB,WAAa,UAClEt7K,GAAe/R,EAAMjrJ,KAAKkH,MAAMs0Q,eAChCt+G,GAAgBjS,EAAMrL,EAAW,GACjCqL,EAAK7lC,aAAa,WAAY,MACU,oBAA7BplH,KAAKkH,MAAMyyU,cAA8B,CAChD,IAAI5lJ,EAAa/zL,KAAKkH,MAAMyyU,cAAc/5L,GAC1Cme,GAAgB9S,IAAQ8oC,GACxB91B,GAAehT,EAAM8oC,GAEzB9oC,EAAK9yG,MAAMyiC,OAAS56E,KAAKigJ,UAAY,KACrCgL,EAAK9yG,MAAM+/B,IAAMl4E,KAAKigJ,UAAYL,EAAW,KAC7C,IAAI6xG,EAAezxP,KAAKs5U,iBAAiB58U,EAAOuuJ,GAChDwmG,EAAa/+E,oBAAoB,WAAW,WAAc,OAAO3yK,EAAM64U,oBAAsBh5L,KAC7FqL,EAAKvwH,YAAY+2N,EAAaprP,UAE1BrG,KAAK6vP,aAAar4K,IAAIooE,EAAW,GACjC5/I,KAAK6vP,aAAaxvP,IAAIu/I,EAAW,GAAGqL,KAAKtC,sBAAsB,WAAYsC,GAEtEjrJ,KAAK6vP,aAAar4K,IAAIooE,EAAW,GACtC5/I,KAAK6vP,aAAaxvP,IAAIu/I,EAAW,GAAGqL,KAAKtC,sBAAsB,cAAesC,GAG9EjrJ,KAAKmoJ,WAAWztH,YAAYuwH,GAEhCjrJ,KAAK6vP,aAAavvP,IAAIs/I,EAAU,CAAE6xG,aAAcA,EAAcxmG,KAAMA,KAExEotL,EAAY97U,UAAUs0U,UAAY,SAAUjxL,GACxC,IAAI98I,EAAY9C,KAAK6vP,aAAaxvP,IAAIu/I,GACtC5/I,KAAKmoJ,WAAWvtH,YAAY93B,EAAUmoJ,MACtCjrJ,KAAK8tG,YAAYhrG,EAAU2uP,cAC3BzxP,KAAK6vP,aAAal/I,OAAOivC,IAE7By4L,EAAY97U,UAAUu8Q,kBAAoB,WACtC,IAAI/4Q,EAAQC,KACZA,KAAK0yK,oBAAoB,UAAU,WAAc,OAAO3yK,EAAM04U,sBAElEJ,EAAY97U,UAAUshL,SAAW,SAAU32K,GACvClH,KAAKkH,MAAQA,GAEjBmxU,EAAY97U,UAAU6J,QAAU,WACxBpG,KAAK0I,cAGT1I,KAAKw5U,mBACLx5U,KAAK0I,aAAc,EACnB7D,EAAOtI,UAAU6J,QAAQxI,KAAKoC,QAElCo4U,GAAc,CACVxpO,GAAU,0BACXypO,EAAY97U,UAAW,6BAAyB,GACnD67U,GAAc,CACVhlK,GAAY,eACbilK,EAAY97U,UAAW,kBAAc,GACjC87U,EA5OqB,CA6O9Bt/J;;;;;;;AAQF,SAAS6gK,GAAuBn4O,EAAQC,EAAQ2mE,EAAOC,EAAO3mE,QAClC,IAApBA,IAA8BA,GAAkB,GACpD1+F,QAAQkD,KAAK,+GACb,IAAI0zU,EAAep5O,EAAO4nE,IAAUA,EAAMntE,MACtC4+O,EAAer5O,EAAO6nE,IAAUA,EAAMptE,MACtC6+O,EAAgBF,GAAgBC,EAChCE,GAAiBH,IAAiBC,EACtC,OAAIC,EACOv4O,EAAkB6mE,EAAM5rK,IAAK6rK,EAAM7rK,IAAKklG,GAE/Cq4O,EACOx4O,EAAkBC,EAAQC,EAAQC,GAEzCk4O,EACO,GAEH;;;;;;IASZ,SAAWI,GACPA,EAAoB,QAAU,OAC9BA,EAAoB,WAAa,WAFrC,CAGGprU,EAAQorU,sBAAwBprU,EAAQorU,oBAAsB;;;;;;;AAQjE,IAAIC,GAAsC,WACtC,SAASA,KA4BT,OA1BAA,EAAqB39U,UAAU2hM,KAAO,SAAUi8I,EAAqBh8I,EAAqBC,EAAoB/6L,EAAe25L,GACzH,IAAIj9L,EAAQC,UACe,IAAvBo+L,IAAiCA,EAAqB,IAC1D,IAAIh5L,EAAUpF,KAAK+E,cAAco1U,EAAqB92U,EAAe25L,GAOrE,OANAmB,EAAoB5/L,SAAQ,SAAWqH,GACnC7F,EAAMsgG,aAAaj7F,EAASQ,GAAY,MAE5Cw4L,EAAmB7/L,SAAQ,SAAWqH,GAClC7F,EAAMsgG,aAAaj7F,EAASQ,GAAY,MAErCR,GAEX80U,EAAqB39U,UAAU8jG,aAAe,SAAUj7F,EAASQ,EAAYM,GACzEd,EAAQK,UAAUG,EAAY5F,KAAKiG,kBAAkBb,EAASQ,EAAYM,KAE9Eg0U,EAAqB39U,UAAU0J,kBAAoB,SAAUb,EAASQ,EAAYM,GAC9E,OAAO,WACH,OAAId,EAAQD,UAAUS,GACXR,EAAQE,WAAWM,EAAYjF,YAEtCuF,GACAjD,QAAQkD,KAAK,sDAAwDP,EAAa,MAE/E,QAGRs0U,EA7B8B;;;;;;IAsCzC,SAAWE,GACPA,EAAU,UAAY,SACtBA,EAAU,iBAAmB,gBAC7BA,EAAU,iBAAmB,gBAC7BA,EAAU,oBAAsB,mBAChCA,EAAU,OAAS,MACnBA,EAAU,cAAgB,aAC1BA,EAAU,cAAgB,aAC1BA,EAAU,iBAAmB,gBAC7BA,EAAU,QAAU,OACpBA,EAAU,WAAa,UACvBA,EAAU,UAAY,SACtBA,EAAU,OAAS,MACnBA,EAAU,YAAc,WACxBA,EAAU,QAAU,OACpBA,EAAU,eAAiB,cAC3BA,EAAU,kBAAoB,iBAC9BA,EAAU,aAAe,aAjB7B,CAkBGvrU,EAAQurU,YAAcvrU,EAAQurU,UAAY,KAC7C,SAAWC,GACPA,EAAe,OAAS,MACxBA,EAAe,SAAW,QAC1BA,EAAe,UAAY,SAC3BA,EAAe,QAAU,OAJ7B,CAKGxrU,EAAQwrU,iBAAmBxrU,EAAQwrU,eAAiB;;;;;;;AAQvD,IAAIC,GAA8B,qBAAXttU,EAAyB,GAAKA,EACrDstU,GAAUlsU,YAAqC,qBAAhBA,YAA8B,GAAKA,YAClEksU,GAAUC,kBAAiD,qBAAtBA,kBAAoC,GAAKA,kBAC9ED,GAAUE,kBAAiD,qBAAtBA,kBAAoC,GAAKA,kBAC9EF,GAAUG,iBAA+C,qBAArBA,iBAAmC,GAAKA,iBAC5EH,GAAUpwL,KAAuB,qBAATA,KAAuB,GAAKA,KACpDowL,GAAU5tU,WAAmC,qBAAfA,WAA6B,GAAKA,WAEhE,IA8RIguU,GA9RAC,GAA8D,WAC9D,IAAK,IAAIvnU,EAAI,EAAG7V,EAAI,EAAGmuJ,EAAK/qJ,UAAUlD,OAAQF,EAAImuJ,EAAInuJ,IAAK6V,GAAKzS,UAAUpD,GAAGE,OACxE,IAAIkH,EAAItH,MAAM+V,GAAI1Q,EAAI,EAA3B,IAA8BnF,EAAI,EAAGA,EAAImuJ,EAAInuJ,IACzC,IAAK,IAAIoO,EAAIhL,UAAUpD,GAAIgQ,EAAI,EAAGo+I,EAAKhgJ,EAAElO,OAAQ8P,EAAIo+I,EAAIp+I,IAAK7K,IAC1DiC,EAAEjC,GAAKiJ,EAAE4B,GACjB,OAAO5I,GAEPi2U,GAAuC,WACvC,SAASA,EAAsBx+G,EAAUtsH,EAAoBzG,EAASgL,EAAc8qC,EAAkBlgD,EAASp1F,EAAWgmL,GACtH7vL,KAAK66U,OAAS,EAEd76U,KAAK86U,YAAc,GACnB96U,KAAKo8N,SAAWA,EAChBp8N,KAAK8vG,mBAAqBA,EAC1B9vG,KAAKqpG,QAAUA,EACfrpG,KAAKq0G,aAAeA,EACpBr0G,KAAKm/I,iBAAmBA,EACxBn/I,KAAKi/F,QAAUA,EACfj/F,KAAK6J,UAAYA,EACjB7J,KAAK6vL,oBAAsBA,EAC3B7vL,KAAKo8N,SAASlhI,OAAQ,EACtBl7F,KAAKo8N,SAAShjL,OAAS,EACvBp5C,KAAKo8N,SAASpzK,GAAK4xR,EAAsBG,aACzC/6U,KAAKo8N,SAAS4+G,gBAAkB,GAChCh7U,KAAKo8N,SAASlzD,mBAAqB,GACnClpK,KAAKo8N,SAAS6+G,kBAAoB,GAClCj7U,KAAKo8N,SAAS5lC,oBAAsB,GAEpCx2L,KAAK++I,gBA4OT,OAzOA67L,EAAsBr+U,UAAUwiJ,cAAgB,WAE5C/+I,KAAKiwN,0BAA4BjwN,KAAK8vG,mBAAmBquG,8BACzDn+M,KAAKi3R,gBAAkBj3R,KAAK8vG,mBAAmB2/G,qBAC/CzvN,KAAK64S,cAAgB74S,KAAK8vG,mBAAmBuI,aAC7Cr4G,KAAK0lO,kBAAoB1lO,KAAK8vG,mBAAmBo/G,kBAErD0rH,EAAsBr+U,UAAU2+U,kBAAoB,WAChD,OAAOt7R,GAAEgmD,YAAY5lG,KAAK86U,cAE9BF,EAAsBr+U,UAAUoyO,WAAa,SAAU3lL,GACnD,OAAOhpD,KAAK86U,YAAY9xR,IAE5B4xR,EAAsBr+U,UAAU+zR,WAAa,SAAUlmR,GAQnD,GAPApK,KAAKo8N,SAAS5lC,oBAAsB,KACpCx2L,KAAKo8N,SAASlzD,mBAAqB,KACnClpK,KAAKo8N,SAAS6+G,kBAAoB,KAClCj7U,KAAKo8N,SAASluC,eAAiB,KAC/BluL,KAAKo8N,SAAS7oC,oBACdvzL,KAAK66U,OAAS,EACd76U,KAAK86U,YAAc,IACd1wU,EAGD,OAFApK,KAAKo8N,SAAS4+G,gBAAkB,QAChCh7U,KAAKo8N,SAASlzD,mBAAqB,IAOvClpK,KAAKo8N,SAAS4+G,gBAAkBh7U,KAAKm7U,kBAAkB/wU,EAASpK,KAAKo8N,SAAUw+G,EAAsBQ,YAEzGR,EAAsBr+U,UAAUkjR,cAAgB,SAAU47D,EAAanzK,GACnE,IAAIozK,EAAqB,CACrBn3L,OAAQ,GACRwqC,OAAQ,GACR9wF,IAAK,IAEL09O,EAAkB,GAQtB,OAPAv7U,KAAKw7U,cAAcH,EAAaC,EAAoBC,GACpDv7U,KAAKy7U,cAAcJ,EAAaC,EAAoBC,GACpDv7U,KAAK07U,WAAWL,EAAaC,GAC7Bt7U,KAAK27U,gBAAgBJ,GACjBrzK,GACAtoH,GAAEooH,oBAAoBhoK,KAAKo8N,SAAS4+G,gBAAiB9yK,GAElDozK,GAEXV,EAAsBr+U,UAAUo/U,gBAAkB,SAAUJ,GACxD,IAAIK,EAAmBL,EAAgB99U,OAAS,EAWhD,GAVIm+U,GACAL,EAAgBh9U,SAAQ,SAAUwM,GAC9BA,EAAQ0pL,aAAY,GAAO,GAAO,MAO1Cz0L,KAAK6vL,oBAAoBiG,qCACrB8lJ,EAAkB,CAClB,IAAIh4N,EAAU,CACVnkH,KAAMktH,GAAOwC,wBACbvlH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcm3G,KAGxCg3N,EAAsBr+U,UAAUm/U,WAAa,SAAUL,EAAaC,GAChE,IAAIv7U,EAAQC,KACR69F,EAAMw9O,EAAYx9O,IAAK0hL,EAAW87D,EAAY97D,SAClD,IAAI3/N,GAAEghD,eAAe/C,GAArB,CAIA,IAAIg+O,EAAWh+O,EAAIp2F,KAAI,SAAU2lF,GAAQ,OAAOrtF,EAAM+7U,WAAW1uP,EAAMrtF,EAAMq8N,SAAUw+G,EAAsBQ,cAEzGppM,EAA+B,kBAAbutI,GAAyBA,GAAY,EAC3D,GAAIvtI,EAAU,CAGV,IAAI+pM,EAAuB/7U,KAAKo8N,SAAS4+G,gBACrCgB,EAAmBD,EAAqB9nU,MAAM,EAAGsrQ,GACjD08D,EAAkBF,EAAqB9nU,MAAMsrQ,EAAUw8D,EAAqBt+U,QAChFuC,KAAKo8N,SAAS4+G,gBAAkBL,GAAiBqB,EAAkBH,EAAUI,QAG7Ej8U,KAAKo8N,SAAS4+G,gBAAkBL,GAAiB36U,KAAKo8N,SAAS4+G,gBAAiBa,GAGpFP,EAAmBz9O,IAAMg+O,IAE7BjB,EAAsBr+U,UAAUi/U,cAAgB,SAAUH,EAAaC,EAAoBC,GACvF,IAAIx7U,EAAQC,KACRmkJ,EAASk3L,EAAYl3L,OACzB,IAAIvkG,GAAEghD,eAAeujD,GAArB,CAGA,IAAI+3L,EAAgB,GACpB/3L,EAAO5lJ,SAAQ,SAAU6uF,GACrB,IAAIriF,EAAUhL,EAAMo8U,cAAc/uP,GAC7BriF,IAKDA,EAAQgpL,cACRwnJ,EAAgBj8U,KAAKyL,GAGzBA,EAAQmmL,yBAGRgrJ,EAAcnxU,EAAQi+C,KAAM,SAErBjpD,EAAM+6U,YAAY/vU,EAAQi+C,IACjCsyR,EAAmBn3L,OAAO7kJ,KAAKyL,OAEnC/K,KAAKo8N,SAAS4+G,gBAAkBh7U,KAAKo8N,SAAS4+G,gBAAgBzqP,QAAO,SAAUxlF,GAAW,OAAQmxU,EAAcnxU,EAAQi+C,SAE5H4xR,EAAsBr+U,UAAUk/U,cAAgB,SAAUJ,EAAaC,EAAoBC,GACvF,IAAIx7U,EAAQC,KACR2uL,EAAS0sJ,EAAY1sJ,OACrB/uI,GAAEghD,eAAe+tF,IAGrBA,EAAOpwL,SAAQ,SAAU6uF,GACrB,IAAIriF,EAAUhL,EAAMo8U,cAAc/uP,GAC7BriF,IAGLA,EAAQ2jL,WAAWthG,IACdriF,EAAQqjL,YAAcrjL,EAAQgpL,cAC/BwnJ,EAAgBj8U,KAAKyL,GAEzBhL,EAAMq8U,gBAAgBrxU,EAASqiF,EAAMwtP,EAAsBQ,WAAW,GACtEE,EAAmB3sJ,OAAOrvL,KAAKyL,QAGvC6vU,EAAsBr+U,UAAU4/U,cAAgB,SAAU57U,GACtD,IACIwK,EADAsxU,EAAgBr8U,KAAK8vG,mBAAmBugF,mBAE5C,GAAIzwI,GAAE6gD,OAAO47O,GAAgB,CAEzB,IAAIrzR,EAAKqzR,EAAc97U,GAEvB,GADAwK,EAAU/K,KAAK86U,YAAY9xR,IACtBj+C,EAED,OADA9H,QAAQC,MAAM,kCAAoC8lD,EAAK,yCAChD,UAMX,GADAj+C,EAAU60C,GAAE7xB,KAAK/tB,KAAKo8N,SAAS4+G,iBAAiB,SAAUxoU,GAAQ,OAAOA,EAAKjS,OAASA,MAClFwK,EAED,OADA9H,QAAQC,MAAM,4DAA6D3C,GACpE,KAGf,OAAOwK,GAEX6vU,EAAsBr+U,UAAU4+U,kBAAoB,SAAU/wU,EAASvH,EAAQu2C,GAC3E,IAAIr5C,EAAQC,KAEZ,GAAuB,kBAAZoK,EAAX,CAIA,IAAI69J,EAAW,GAKf,OAJA79J,EAAQ7L,SAAQ,SAAUokU,GACtB,IAAInwT,EAAOzS,EAAM+7U,WAAWnZ,EAAU9/T,EAAQu2C,GAC9C6uH,EAAS3oK,KAAKkT,MAEXy1J,EARHhlK,QAAQkD,KAAK,kKAUrBy0U,EAAsBr+U,UAAUu/U,WAAa,SAAUnZ,EAAU9/T,EAAQu2C,GACrE,IAAI5mC,EAAO,IAAIy7K,GAcf,OAbAjuL,KAAKqpG,QAAQ6B,WAAW14F,GACxBA,EAAK0oF,OAAQ,EACbl7F,KAAKo8U,gBAAgB5pU,EAAMmwT,EAAUvpR,GAAO,GACxCv2C,IAAW7C,KAAKiwN,4BAChBz9M,EAAK3P,OAASA,GAElB2P,EAAK4mC,MAAQA,EACb5mC,EAAKm9K,aAAagzI,EAAU3iU,KAAK66U,OAAOl9U,YACpCqC,KAAK86U,YAAYtoU,EAAKw2C,KACtB/lD,QAAQkD,KAAK,+BAAiCqM,EAAKw2C,GAAK,gFAE5DhpD,KAAK86U,YAAYtoU,EAAKw2C,IAAMx2C,EAC5BxS,KAAK66U,SACEroU,GAEXooU,EAAsBr+U,UAAU6/U,gBAAkB,SAAUrxU,EAASxK,EAAM64C,EAAO4oE,GAC9E,GAAIhiH,KAAK64S,cACL9tS,EAAQ6mL,WAAU,GACd5vE,IACAj3G,EAAQk3G,UAAW,QAkBvB,GAbIjiH,KAAK0lO,kBAGD1lO,KAAKi3R,gBACLlsR,EAAQ6mL,UAAU5xL,KAAKi3R,gBAAgB12R,IAGvCwK,EAAQ6mL,WAAU,GAItB7mL,EAAQ6mL,WAAU,GAElB5vE,EAAa,CACb,IAAI3mB,EAAkBr7F,KAAKm/I,iBAAiBhZ,qBACxCm2M,EAAqBjhP,EAAkBA,EAAgB59F,OAAS,EAEhE8+U,EAAiBnjS,EAAQkjS,EAC7BvxU,EAAQk3G,WAAWl3G,EAAQ8mL,QAAS7xL,KAAK+hH,WAAWw6N,KAIhE3B,EAAsBr+U,UAAUwlH,WAAa,SAAU3oE,GACnD,IAAIojS,EAAkBx8U,KAAK8vG,mBAAmB84G,0BAC9C,OAAyB,IAArB4zH,GAGGpjS,EAAQojS,GAEnB5B,EAAsBQ,UAAY,EAClCR,EAAsBG,aAAe,eAC9BH,EAjQ+B,GAoQtC6B,GAAqD,WACrD,IAAIx4U,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDo4U,GAAuD,SAAUr7U,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,IAGhE,SAAW+1U,GACPA,EAAcA,EAAc,UAAY,GAAK,SAC7CA,EAAcA,EAAc,eAAiB,GAAK,cAClDA,EAAcA,EAAc,sBAAwB,GAAK,qBACzDA,EAAcA,EAAc,cAAgB,GAAK,cAJrD,CAKGA,KAAkBA,GAAgB,KACrC,IAAIiC,GAAoC,SAAU93U,GAE9C,SAAS83U,IACL,IAAI58U,EAAmB,OAAX8E,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAEhE,OADAD,EAAM68U,yBAA0B,EACzB78U,EA4yBX,OAhzBA08U,GAAaE,EAAoB93U,GAMjC83U,EAAmBpgV,UAAU2I,KAAO,WAChC,IAAI23U,EAAwB78U,KAAKuyR,aAAa9nR,KAAKzK,KAAM,CAAEslG,KAAMz2F,EAAQ8+Q,wBAAwBiF,aAC7FkqD,EAAwC98U,KAAKuyR,aAAa9nR,KAAKzK,KAAM,CACrEslG,KAAMz2F,EAAQ8+Q,wBAAwBiF,WACtCmqD,qBAAqB,EACrBl1F,kBAAkB,EAClBC,SAAS,IAEb9nP,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0BiwN,GAC5E98U,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOI,+BAAgC8vN,GAClF78U,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOQ,2BAA4BntH,KAAKg9U,eAAevyU,KAAKzK,OACvGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOM,2BAA4BjtH,KAAKuyR,aAAa9nR,KAAKzK,KAAM,CAAEslG,KAAMz2F,EAAQ8+Q,wBAAwBuF,SACnJlzR,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOiB,uBAAwB5tH,KAAKi9U,iBAAiBxyU,KAAKzK,OACrGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO/Q,qBAAsB57G,KAAK47K,gBAAgBnxK,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO1S,mBAAoBj6G,KAAKqsL,cAAc5hL,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOG,gCAAiC+vN,GACnF,IAAIK,EAAqBl9U,KAAKuyR,aAAa9nR,KAAKzK,KAAM,CAClDslG,KAAMz2F,EAAQ8+Q,wBAAwB6E,IACtC3qC,kBAAkB,EAClBC,SAAS,IAEb9nP,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB8b,kCAAmCgkH,GACvGl9U,KAAKmnH,mBAAmBnnH,KAAK8vG,mBAAoBstG,GAAmB+b,yCAA0C+jH,GAC9Gl9U,KAAKo8N,SAAW,IAAInuC,GACpBjuL,KAAKm9U,YAAc,IAAIvC,GAAsB56U,KAAKo8N,SAAUp8N,KAAK8vG,mBAAoB9vG,KAAKw4G,aAAcx4G,KAAKq0G,aAAcr0G,KAAKm/I,iBAAkBn/I,KAAKi/F,QAASj/F,KAAK6J,UAAW7J,KAAK6vL,qBACrL7vL,KAAKkrG,WAAWlrG,KAAKo8N,WAEzBugH,EAAmBpgV,UAAUovB,MAAQ,WACjC,IAAIvhB,EAAUpK,KAAK8vG,mBAAmB9lG,aAClCI,GACApK,KAAKswR,WAAWlmR,IAGxBuyU,EAAmBpgV,UAAUyyP,sBAAwB,SAAUirD,EAAYC,EAAUC,EAAiBC,GAClG,IAAIgjC,EACA9/S,GAAM,EAIV,EAAG,CACC8/S,GAAmB,EAMnB,IALA,IAAIC,EAAkBr9U,KAAKquP,mBAAmB4rD,GAC1CqjC,EAAgBt9U,KAAKquP,mBAAmB6rD,GAExC36J,EAAWrqI,KAAKuM,IAAI47T,EAAiBljC,GACrCz6J,EAAUxqI,KAAKsM,IAAI87T,EAAeljC,GAC7Bx6J,EAAWL,EAAUK,GAAYF,EAASE,IAAY,CAC3D,IAAI70I,EAAU/K,KAAK8/I,OAAOF,GAC1B,GAAI70I,EAAQknL,mBAAoB,CAC5B,IAAIhyC,EAAYjgJ,KAAK8vG,mBAAmBuoH,oBAAoBttN,GAC5DA,EAAQgnL,aAAa9xC,EAAUrlE,QAC/BwiQ,GAAmB,EACnB9/S,GAAM,GAGV8/S,GACAp9U,KAAKu9U,mBAEJH,GACT,OAAO9/S,GAEXq/S,EAAmBpgV,UAAUghV,WAAa,WAEtC,IADA,IAAIC,EAAa,EACRjgV,EAAI,EAAGA,EAAIyC,KAAKy9U,cAAchgV,OAAQF,IAAK,CAGhD,IAAI+6N,EAAgBt4N,KAAK8vG,mBAAmBq3B,iBAAmB/1B,GAAUgB,kBACrErnG,EAAU/K,KAAKy9U,cAAclgV,GACjC,GAAIqiD,GAAE+gD,QAAQ51F,EAAQk1I,WAAY,CAC9B,IAAIA,EAAYjgJ,KAAK8vG,mBAAmBuoH,oBAAoBttN,EAASutN,GACrEvtN,EAAQgnL,aAAa9xC,EAAUrlE,OAAQqlE,EAAU+xC,WAErDjnL,EAAQimL,UAAUwsJ,GAClBzyU,EAAQomL,YAAY5zL,GACpBigV,GAAczyU,EAAQk1I,YAG9B08L,EAAmBpgV,UAAUmhV,aAAe,SAAUr/G,GAClD,IAAIs/G,EAAsB,GAC1B39U,KAAKy9U,cAAcl/U,SAAQ,SAAUwM,GACf,MAAdA,EAAQi+C,KACR20R,EAAoB5yU,EAAQi+C,IAAMj+C,MAG1C,IAAI6yU,EAAsB,SAAU7yU,GAC5BA,GAAyB,MAAdA,EAAQi+C,IAAiD,MAAnC20R,EAAoB5yU,EAAQi+C,KAC7Dj+C,EAAQmmL,0BAGZ2sJ,EAAU,SAAU9yU,GAIpB,GAHA6yU,EAAoB7yU,GACpB6yU,EAAoB7yU,EAAQmkL,YAC5B0uJ,EAAoB7yU,EAAQ25I,SACxB35I,EAAQk+J,eACJl+J,EAAQm+J,mBAAoB,CAM5B,IAAI40K,GAA+B,GAAlB/yU,EAAQquC,MAErB2kS,EAAe1/G,EAAY5B,aAAeqhH,IAAe/yU,EAAQk3G,SAChE87N,GACDhzU,EAAQm+J,mBAAmB3qK,QAAQs/U,KAKnDA,EAAQ79U,KAAKo8N,WAGjBugH,EAAmBpgV,UAAUqjR,kBAAoB,SAAU33G,EAAUuoB,EAAO6uF,GACxE,IAAIt/Q,EAAQC,UACM,IAAdq/Q,IAAwBA,EAAY,GACxC,IAAI2+D,EAAkBh+U,KAAKquP,mBAAmB79D,GAC1CytJ,EAAoBj+U,KAAK8/I,OAAOk+L,GACpC,OAAIC,IAAsBh2K,EAAS,KAGnCA,EAAS1pK,SAAQ,SAAUwM,GACvB60C,GAAEokD,gBAAgBjkG,EAAMq8N,SAAS4+G,gBAAiBjwU,MAEtDk9J,EAAS1pK,SAAQ,SAAUwM,EAASmU,GAChC0gC,GAAEukD,gBAAgBpkG,EAAMq8N,SAAS4+G,gBAAiBjwU,EAASmK,KAAKuM,IAAIu8T,EAAkB3+D,EAAW,GAAKngQ,MAE1Glf,KAAKuyR,aAAa,CACdjtL,KAAMz2F,EAAQ8+Q,wBAAwBiF,WACtC/qC,kBAAkB,EAClBC,SAAS,EACTsrC,iBAAiB,KAEd,IAEXupD,EAAmBpgV,UAAUwiR,oBAAsB,SAAUh0Q,EAASylL,GAClE,IAAIwtJ,EAA2B,MAATxtJ,EAAgBxwL,KAAKquP,mBAAmB79D,GAAS,KACnEytJ,EAAuC,MAAnBD,EAA0Bh+U,KAAK8/I,OAAOk+L,GAAmB,KACjF,GAAKC,GAAsBlzU,GAAWkzU,IAAsBlzU,GAAoB,MAATylL,EAAvE,CAOA,IAAI0tJ,EAAYl+U,KAAKw/Q,qBAAqBhvF,EAAOytJ,GAC7Cj+U,KAAKm+U,oBAAsBn+U,KAAKm+U,qBAAuBF,IACvDj+U,KAAKm+U,mBAAmB5sJ,eAAe,MACvCvxL,KAAKm+U,mBAAqB,MAE9BF,EAAkB1sJ,eAAe2sJ,GACjCl+U,KAAKm+U,mBAAqBF,OAZlBj+U,KAAKm+U,qBACLn+U,KAAKm+U,mBAAmB5sJ,eAAe,MACvCvxL,KAAKm+U,mBAAqB,OAYtCxB,EAAmBpgV,UAAUijR,qBAAuB,SAAUhvF,EAAOzlL,GACjE,IAAKA,EAAS,CACV,IAAI7L,EAAQc,KAAKquP,mBAAmB79D,GAEpC,GADAzlL,EAAU/K,KAAK8/I,OAAO5gJ,GAAS,IAC1B6L,EACD,MAAO,QAGf,IAAIm1I,EAASn1I,EAAQm1I,OAAQD,EAAYl1I,EAAQk1I,UACjD,OAAOuwC,EAAQtwC,EAASD,EAAY,EAAI,QAAU,SAEtD08L,EAAmBpgV,UAAU4iR,0BAA4B,WACrD,OAAOn/Q,KAAKm+U,oBAEhBxB,EAAmBpgV,UAAUqiS,oBAAsB,WAC/C,OAAO,GAEX+9C,EAAmBpgV,UAAUi/Q,YAAc,WACvC,OAAIx7Q,KAAKy9U,cACEz9U,KAAKy9U,cAAchgV,OAEvB,GAEXk/U,EAAmBpgV,UAAUm/S,oBAAsB,WAC/C,IAAI0iC,EAAkBp+U,KAAKy9U,eAAiBz9U,KAAKy9U,cAAc,KAAOz9U,KAAKo8N,SAC3E,OAAIgiH,EACO,EAEJp+U,KAAKo8N,SAAS5lC,oBAAsBx2L,KAAKo8N,SAAS5lC,oBAAoB/4L,OAAS,GAE1Fk/U,EAAmBpgV,UAAUu/S,6BAA+B,SAAUuiC,GAClE,IAAID,EAAkBp+U,KAAKy9U,eAAiBz9U,KAAKy9U,cAAc,KAAOz9U,KAAKo8N,SAC3E,GAAIgiH,EACA,OAAOC,EAEX,IAAItzU,EAAU/K,KAAKo8N,SAAS6+G,kBAAkBoD,GAC9C,GAAIr+U,KAAK8vG,mBAAmBu5F,yBAExB,MAAOt+L,EAAQk3G,UAAYl3G,EAAQkwU,mBAAqBlwU,EAAQkwU,kBAAkBx9U,OAAS,EACvFsN,EAAUA,EAAQkwU,kBAAkB,GAG5C,OAAOlwU,EAAQ60I,UAEnB+8L,EAAmBpgV,UAAUs+S,aAAe,SAAU37S,GAClD,GAAI0gD,GAAE+gD,QAAQ3gG,KAAKy9U,eACf,OAAO,KAEX,IAAI1yU,EAAU/K,KAAKy9U,cAAcv+U,GACjC,OAAI6L,EACO,CACHm1I,OAAQn1I,EAAQm1I,OAChBD,UAAWl1I,EAAQk1I,WAGpB,MAEX08L,EAAmBpgV,UAAU0gV,iBAAmB,WAK5C,IAAIl9U,EAAQC,KACZ,IAAIA,KAAK48U,wBAAT,CAGA58U,KAAK48U,yBAA0B,EAC/B,IAAI13O,EAAS,WACTnlG,EAAM68U,yBAA0B,EAChC,IAAI90F,EAAU/nP,EAAM+vG,mBAAmBs9G,gBACvCrtN,EAAMwyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwB6E,IAAK3qC,kBAAkB,EAAMC,QAASA,KAEjG9nP,KAAK8vG,mBAAmBi1G,2BACxB7/G,IAGAllG,KAAK66H,sBAAsBuxH,eAAelnJ,KAGlDy3O,EAAmBpgV,UAAUq/K,gBAAkB,SAAUx0K,GACrD,IAAIA,EAAMs3K,gBAAV,CAGA,IAAIopE,EAAU9nP,KAAK8vG,mBAAmBs9G,gBACtCptN,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwBmF,OAAQjrC,kBAAkB,EAAMC,QAASA,MAEvG60F,EAAmBpgV,UAAU8vL,cAAgB,WACzC,IAAIy7D,EAAU9nP,KAAK8vG,mBAAmBs9G,gBACtCptN,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwBsF,KAAMprC,kBAAkB,EAAMC,QAASA,EAASsrC,iBAAiB,KAE/HupD,EAAmBpgV,UAAUogL,QAAU,WACnC,OAAOvrE,GAAUU,4BAErB6qO,EAAmBpgV,UAAUygV,eAAiB,WACtCh9U,KAAKm/I,iBAAiB3gC,gBACtBx+G,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwBuF,QAG1DlzR,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwBqF,aAGlE2pD,EAAmBpgV,UAAU+hV,iBAAmB,SAAUC,GAQtD,IAAIC,EAAiB5+R,GAAEghD,eAAe29O,GAClClgH,EAAc,IAAInC,IAAY,EAAOl8N,KAAKo8N,UAI9C,OAHIoiH,GAAkBx+U,KAAK8vG,mBAAmBuI,eAC1CgmH,EAAY7B,cAET6B,GAEXs+G,EAAmBpgV,UAAUi6N,4CAA8C,SAAUpzN,GACjF,IAAKpD,KAAK8vG,mBAAmB0mH,8CACzB,OAAO,EAGX,GAAkC,MAA9BpzN,EAAOm7U,oBACP,OAAO,EAEX,IAAIE,EAAyB7+R,GAAE2wC,OAAOntF,EAAOm7U,qBAAqB,SAAU/rP,GACxE,OAAkB,MAAVA,EAAGqL,KAAerL,EAAGqL,IAAIpgG,OAAS,GAAoB,MAAb+0F,EAAG2xD,QAAkB3xD,EAAG2xD,OAAO1mJ,OAAS,KAEzFihV,EAA2D,MAA1BD,GAAmE,GAAjCA,EAAuBhhV,OAC9F,OAAOihV,GAEX/B,EAAmBpgV,UAAUg2R,aAAe,SAAUnvR,GAClD,IAAIrD,EAAQC,KACZ,IAAIA,KAAKw2N,4CAA4CpzN,GAArD,CAaA,IAAIi7N,EAAcr+N,KAAKs+U,iBAAiBl7U,EAAOm7U,qBAC/C,OAAQn7U,EAAOkiG,MACX,KAAKz2F,EAAQ8+Q,wBAAwBiF,WAEjC5yR,KAAK2+U,cAAcv7U,EAAOmvI,WAAYnvI,EAAOm7U,oBAAqBn7U,EAAO8kK,aAAcm2D,IAAej7N,EAAO25U,qBAEjH,KAAKluU,EAAQ8+Q,wBAAwBmF,OAEjC9yR,KAAK4+U,SAASvgH,GAElB,KAAKxvN,EAAQ8+Q,wBAAwBuF,MACjClzR,KAAK6+U,QAAQxgH,GACjB,KAAKxvN,EAAQ8+Q,wBAAwBqF,UAEjChzR,KAAKo9S,YAAY/+E,GAErB,KAAKxvN,EAAQ8+Q,wBAAwBsF,KAEjCjzR,KAAK8+U,OAAO17U,EAAOm7U,oBAAqBlgH,GAE5C,KAAKxvN,EAAQ8+Q,wBAAwB6E,IAEjCxyR,KAAK++U,kBAMb/+U,KAAKu9U,aACLv9U,KAAK09U,aAAar/G,GAClB,IAAIj3N,EAAQ,CACR3H,KAAMktH,GAAO2B,oBACb1kH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBi+O,QAAS1kP,EAAO0kP,QAChBD,iBAAkBzkP,EAAOykP,iBACzB14D,QAAS/rL,EAAO+rL,QAChB44D,SAAS,GAEb/nP,KAAKq0G,aAAa5nG,cAAcrF,GAC5BpH,KAAKgrO,QACLz/N,OAAOE,YAAW,WACd1L,EAAMirO,OAAOoiB,WACd,KAGXuvF,EAAmBpgV,UAAUqqI,QAAU,WACnC,IAAIo4M,EAAcp/R,GAAE+gD,QAAQ3gG,KAAKo8N,SAAS4+G,kBAA6D,IAAzCh7U,KAAKo8N,SAAS4+G,gBAAgBv9U,OAC5F,OAAOmiD,GAAE+gD,QAAQ3gG,KAAKo8N,WAAa4iH,IAAgBh/U,KAAKm/I,iBAAiBrO,WAE7E6rM,EAAmBpgV,UAAU8wP,eAAiB,WAC1C,OAAOztM,GAAE6gD,OAAOzgG,KAAKy9U,gBAAkBz9U,KAAKy9U,cAAchgV,OAAS,GAEvEk/U,EAAmBpgV,UAAU25L,4BAA8B,SAAUykH,EAAcC,GAE/E,IAEIl7J,EAFAu/L,GAAerkC,EACfskC,GAAa,EAEb1wU,EAAS,GACTunL,EAAuB/1L,KAAK8vG,mBAAmBklF,yBA6BnD,OA5BAh1L,KAAKq0R,+BAA8B,SAAUtpR,GACzC,IAAIo0U,EAAoBF,IAAgBC,EAEnCD,GACGl0U,IAAY6vS,GAAe7vS,IAAY4vS,IACvCskC,GAAc,GAGtB,IAAIG,EAAoBr0U,EAAQmwF,OAAS66F,EACzC,IAAKqpJ,EAAmB,CACpB,IAAIzkP,EAAUskP,IAAgBC,EAC1BG,EAAiBt0U,EAAQqrL,eAAe12C,IACxC/kD,GAAW0kP,IACX7wU,EAAOlP,KAAKyL,GAGhBo0U,IACIp0U,IAAY6vS,GAAe7vS,IAAY4vS,IACvCukC,GAAa,EAETx/L,EADA30I,IAAY6vS,EACFA,EAGAD,OAKnBnsS,GAEXmuU,EAAmBpgV,UAAU6zR,cAAgB,SAAUtlE,GACnD7nN,QAAQC,MAAM,wEAElBy5U,EAAmBpgV,UAAU2iO,iBAAmB,WAC5C,OAAOl/N,KAAKo8N,SAAWp8N,KAAKo8N,SAASlzD,mBAAqB,MAE9DyzK,EAAmBpgV,UAAUgiO,YAAc,WACvC,OAAOv+N,KAAKo8N,UAEhBugH,EAAmBpgV,UAAUujJ,OAAS,SAAU5gJ,GAC5C,OAAOc,KAAKy9U,cAAcv+U,IAE9By9U,EAAmBpgV,UAAUozP,aAAe,SAAU5kP,GAClD,OAAO/K,KAAKy9U,cAAc18U,QAAQgK,IAAY,GAElD4xU,EAAmBpgV,UAAU8xP,mBAAqB,SAAUixF,GACxD,GAAIt/U,KAAK4mI,UACL,OAAQ,EAIZ,IAAI24M,EAAgB,EAChBC,EAAax/U,KAAKy9U,cAAchgV,OAAS,EAE7C,GAAI6hV,GAAgB,EAEhB,OAAO,EAEX,IAAItc,EAAWpjR,GAAEu8B,KAAKn8E,KAAKy9U,eAC3B,GAAIza,EAAS9iL,QAAUo/L,EACnB,OAAOt/U,KAAKy9U,cAAchgV,OAAS,EAEvC,MAAO,EAAM,CACT,IAAIgiV,EAAavqU,KAAKkG,OAAOmkU,EAAgBC,GAAc,GACvD3oJ,EAAiB72L,KAAKy9U,cAAcgC,GACxC,GAAIz/U,KAAK0/U,aAAa7oJ,EAAgByoJ,GAClC,OAAOG,EAEP5oJ,EAAe32C,OAASo/L,EACxBC,EAAgBE,EAAa,EAExB5oJ,EAAe32C,OAASo/L,IAC7BE,EAAaC,EAAa,KAItC9C,EAAmBpgV,UAAUmjV,aAAe,SAAU30U,EAASu0U,GAC3D,IAAIxwF,EAAW/jP,EAAQm1I,OACnB6uG,EAAchkP,EAAQm1I,OAASn1I,EAAQk1I,UACvC0/L,EAAa7wF,GAAYwwF,GAAgBvwF,EAAcuwF,EAC3D,OAAOK,GAEXhD,EAAmBpgV,UAAU63R,gBAAkB,SAAU1uR,GACjD1F,KAAKo8N,SAAS4+G,iBACdh7U,KAAKo8N,SAAS4+G,gBAAgBz8U,SAAQ,SAAUwM,EAAS7L,GAAS,OAAOwG,EAASqF,EAAS7L,OAGnGy9U,EAAmBpgV,UAAUuO,YAAc,SAAUpF,GACjD1F,KAAK4/U,gCAAgC5/U,KAAKo8N,SAASlzD,mBAAoBxjK,EAAUg1U,GAAc50G,OAAQ,IAE3G62G,EAAmBpgV,UAAUkjO,uBAAyB,SAAU/5N,GAC5D1F,KAAK4/U,gCAAgC5/U,KAAKo8N,SAAS5lC,oBAAqB9wL,EAAUg1U,GAAcmF,YAAa,IAEjHlD,EAAmBpgV,UAAU83R,8BAAgC,SAAU3uR,GACnE1F,KAAK4/U,gCAAgC5/U,KAAKo8N,SAAS6+G,kBAAmBv1U,EAAUg1U,GAAcoF,mBAAoB,IAEtHnD,EAAmBpgV,UAAUwjV,iBAAmB,SAAUr6U,GACtD1F,KAAK4/U,gCAAgC,CAAC5/U,KAAKo8N,UAAW12N,EAAUg1U,GAAcsF,WAAY,IAO9FrD,EAAmBpgV,UAAUqjV,gCAAkC,SAAUrzT,EAAO7mB,EAAUu6U,EAAe/gV,GACrG,IAAKqtB,EACD,OAAOrtB,EAEX,IAAK,IAAI3B,EAAI,EAAGA,EAAIgvB,EAAM9uB,OAAQF,IAAK,CACnC,IAAIiV,EAAO+Z,EAAMhvB,GAGjB,GAFAmI,EAAS8M,EAAMtT,KAEXsT,EAAKy2J,cAAe,CAEpB,IAAIi3K,EAAe,KACnB,OAAQD,GACJ,KAAKvF,GAAc50G,OACfo6G,EAAe1tU,EAAK02J,mBACpB,MACJ,KAAKwxK,GAAcmF,YACfK,EAAe1tU,EAAKgkL,oBACpB,MACJ,KAAKkkJ,GAAcoF,mBACfI,EAAe1tU,EAAKyoU,kBACpB,MACJ,KAAKP,GAAcsF,WAEfE,EAAgB1tU,EAAKsrI,UAAqC,KAAzBtrI,EAAKyoU,kBACtC,MAEJiF,IACAhhV,EAAQc,KAAK4/U,gCAAgCM,EAAcx6U,EAAUu6U,EAAe/gV,KAIhG,OAAOA,GAIXy9U,EAAmBpgV,UAAU6gT,YAAc,SAAU/+E,GAC7Cr+N,KAAKmgV,kBACLngV,KAAKmgV,iBAAiBC,QAAQ,CAAEr1U,QAAS/K,KAAKo8N,SAAUiC,YAAaA,KAK7Es+G,EAAmBpgV,UAAUi3R,oBAAsB,SAAU6sD,GACzD,IAAI5pN,EAAgBz2H,KAAK8vG,mBAAmBuI,aAI5C,SAASioO,EAA0Br4K,GAC1BA,GAGLA,EAAS1pK,SAAQ,SAAUwM,GACvB,IAAIw1U,EAAyB9pN,EAAgB72E,GAAE6gD,OAAO11F,EAAQm+J,oBAAsBn+J,EAAQmwF,MACxFqlP,IACAx1U,EAAQk3G,SAAWo+N,EACnBC,EAA0Bv1U,EAAQm+J,wBAX1ClpK,KAAKo8N,UACLkkH,EAA0BtgV,KAAKo8N,SAASlzD,oBAc5ClpK,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwB6E,MAC1D,IAAI/mG,EAAc40J,EAAS,YAAc,cACrCj5U,EAAQ,CACRwC,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAChBpK,KAAMktH,GAAOK,0BACbloB,OAAQ2mF,GAEZzrL,KAAKq0G,aAAa5nG,cAAcrF,IAEpCu1U,EAAmBpgV,UAAUuiV,OAAS,SAAUP,EAAqBlgH,GACjEr+N,KAAKwgV,UAAUJ,QAAQ,CACnBr1U,QAAS/K,KAAKo8N,SACdmiH,oBAAqBA,EACrBlgH,YAAaA,KAGrBs+G,EAAmBpgV,UAAUoiV,cAAgB,SAAUpsM,EAAYgsM,EAAqBr2K,EAAcm2D,EAAa0+G,GAC3G/8U,KAAKygV,YACDlC,EACAv+U,KAAKygV,WAAWL,QAAQ,CACpBr1U,QAAS/K,KAAKo8N,SACdmiH,oBAAqBA,EACrBr2K,aAAcA,EACdm2D,YAAaA,KAKjBr+N,KAAK6vL,oBAAoBuuC,4BACzBp+N,KAAKygV,WAAWL,QAAQ,CACpBr1U,QAAS/K,KAAKo8N,SACdiC,YAAaA,EACb0+G,oBAAqBA,IAGzB/8U,KAAK0gV,kBAAkBnuM,IAEvBvyI,KAAK8vG,mBAAmBklF,0BACxBh1L,KAAK6vL,oBAAoBiG,mCAAmCuoC,KAIhEr+N,KAAKo8N,SAASlzD,mBAAqBlpK,KAAKo8N,SAAS4+G,gBACjDh7U,KAAKo8N,SAAS7oC,sBAGtBopJ,EAAmBpgV,UAAUmkV,kBAAoB,SAAUnuM,GAClDA,GAGL3yF,GAAEipH,qBAAqB7oK,KAAKo8N,SAASlzD,oBAAoB,SAAU12J,EAAM/V,GAItC,mBAApB81I,EAAW91I,KAClB+V,EAAKyvG,SAAWswB,EAAW91I,QAIvCkgV,EAAmBpgV,UAAUqiV,SAAW,SAAUvgH,GAC9Cr+N,KAAK2gV,YAAYP,QAAQ,CAAEr1U,QAAS/K,KAAKo8N,SAAUiC,YAAaA,KAEpEs+G,EAAmBpgV,UAAUsiV,QAAU,SAAUxgH,GACzCr+N,KAAK4gV,YACL5gV,KAAK4gV,WAAWR,QAAQ,CAAEr1U,QAAS/K,KAAKo8N,SAAUiC,YAAaA,KAGvEs+G,EAAmBpgV,UAAUskV,cAAgB,WACzC,IAAK7gV,KAAKo8N,SAASlzD,qBAAuBlpK,KAAK8vG,mBAAmB4+G,kCAC9D,OAAO,KAEX,IAAIlgN,EAAS,GAEb,OADAoxC,GAAEipH,qBAAqB7oK,KAAKo8N,SAASlzD,oBAAoB,SAAU12J,EAAM/V,GAAO,OAAO+R,EAAO/R,GAAO+V,EAAKyvG,YACnGzzG,GAEXmuU,EAAmBpgV,UAAU2+U,kBAAoB,WAC7C,OAAOl7U,KAAKm9U,YAAYjC,qBAE5ByB,EAAmBpgV,UAAUoyO,WAAa,SAAU3lL,GAEhD,IAAI83R,EAAyB,iBAAN93R,GAA6D,GAA3CA,EAAGjoD,QAAQktL,GAAQqC,qBAC5D,GAAIwwJ,EAAW,CAKX,IAAIC,EAAQ,KAMZ,OALA/gV,KAAK8K,aAAY,SAAU0H,GACnBA,EAAKw2C,KAAOA,IACZ+3R,EAAQvuU,MAGTuuU,EAGP,OAAO/gV,KAAKm9U,YAAYxuG,WAAW3lL,IAI3C2zR,EAAmBpgV,UAAU+zR,WAAa,SAAUlmR,GAIhD,IAAImoI,EAAavyI,KAAK6gV,gBACtB7gV,KAAKm9U,YAAY7sD,WAAWlmR,GAK5B,IAAI42U,EAAsB,CACtBvhV,KAAMktH,GAAOkB,uBACbjkH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcu0U,GAChChhV,KAAKuyR,aAAa,CACdjtL,KAAMz2F,EAAQ8+Q,wBAAwBiF,WACtCrgJ,WAAYA,EACZ48C,SAAS,KAGjBwtJ,EAAmBpgV,UAAU6gS,mBAAqB,SAAUD,EAAoBz3R,GAC5E,IAAI3F,EAAQC,KACZ,GAA0C,MAAtCA,KAAKihV,8BAAuC,CAC5CjhV,KAAKkhV,wBAA0B,GAC/B,IAAIC,EAAanhV,KAAK8vG,mBAAmBk9G,gCACzChtN,KAAKihV,8BAAgC11U,OAAOE,YAAW,WACnD1L,EAAMqhV,8BACPD,GAEPnhV,KAAKkhV,wBAAwB5hV,KAAK,CAAE69R,mBAAoBA,EAAoBz3R,SAAUA,KAE1Fi3U,EAAmBpgV,UAAU2gS,uBAAyB,WACR,MAAtCl9R,KAAKihV,gCACLz1U,aAAaxL,KAAKihV,+BAClBjhV,KAAKohV,8BAGbzE,EAAmBpgV,UAAU6kV,0BAA4B,WACrD,IAAIrhV,EAAQC,KACZA,KAAKk3H,WAAW23D,gBAChB,IAAIwyJ,EAAqB,GACrBC,EAAe,GAGfC,GAAoB,EAoBxB,GAnBIvhV,KAAKkhV,yBACLlhV,KAAKkhV,wBAAwB3iV,SAAQ,SAAUijV,GAC3C,IAAIC,EAAc1hV,EAAMo9U,YAAY19D,cAAc+hE,EAASrkD,wBAAoB99R,GAC/EiiV,EAAahiV,KAAKmiV,GACdD,EAAS97U,UACT27U,EAAmB/hV,KAAKkiV,EAAS97U,SAAS+E,KAAK,KAAMg3U,IAEL,kBAAzCD,EAASrkD,mBAAmB5d,WACnCgiE,GAAoB,MAIhCvhV,KAAK0hV,oBAAoBJ,OAAcjiV,EAAWkiV,GAE9CF,EAAmB5jV,OAAS,GAC5B8N,OAAOE,YAAW,WACd41U,EAAmB9iV,SAAQ,SAAU4M,GAAQ,OAAOA,SACrD,GAEHm2U,EAAa7jV,OAAS,EAAG,CACzB,IAAImmH,EAAU,CACVh6G,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCj5G,KAAMktH,GAAOgB,iCACb8sC,QAAS6mL,GAEbthV,KAAKq0G,aAAa5nG,cAAcm3G,GAEpC5jH,KAAKkhV,wBAA0B,KAC/BlhV,KAAKihV,mCAAgC5hV,GAEzCs9U,EAAmBpgV,UAAUkjR,cAAgB,SAAU47D,EAAanzK,GAChEloK,KAAKk3H,WAAW23D,gBAChB,IAAI4yJ,EAAczhV,KAAKm9U,YAAY19D,cAAc47D,EAAanzK,GAI1Dq5K,EAAoD,kBAAzBlG,EAAY97D,SAE3C,OADAv/Q,KAAK0hV,oBAAoB,CAACD,GAAcv5K,EAAcq5K,GAC/CE,GAEX9E,EAAmBpgV,UAAUolV,mBAAqB,WAC9C,IAAIC,EAAoB5hV,KAAK8vG,mBAAmB0wG,kCAChD,IAAIohI,EAAJ,CAGA,IAAIC,EAAW,GACf,GAAI7hV,KAAKo8N,UAAYp8N,KAAKo8N,SAAS4+G,gBAC/B,IAAK,IAAI97U,EAAQ,EAAGA,EAAQc,KAAKo8N,SAAS4+G,gBAAgBv9U,OAAQyB,IAAS,CACvE,IAAIsT,EAAOxS,KAAKo8N,SAAS4+G,gBAAgB97U,GACzC2iV,EAASrvU,EAAKw2C,IAAM9pD,EAG5B,OAAO2iV,IAGXlF,EAAmBpgV,UAAUmlV,oBAAsB,SAAUJ,EAAcp5K,EAAcq5K,GACjFA,IACAr5K,EAAeloK,KAAK2hV,sBAExB3hV,KAAKuyR,aAAa,CACdjtL,KAAMz2F,EAAQ8+Q,wBAAwBiF,WACtC2rD,oBAAqB+C,EACrBp5K,aAAcA,EACd2/E,kBAAkB,EAClBC,SAAS,EACTsrC,iBAAiB,IAErB,IAAIhsR,EAAQ,CACR3H,KAAMktH,GAAOmB,uBACblkH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,WAEpB7J,KAAKq0G,aAAa5nG,cAAcrF,IAEpCu1U,EAAmBpgV,UAAUwiV,gBAAkB,WAC3C/+U,KAAKy9U,cAAgBz9U,KAAK8hV,aAAa1B,QAAQ,CAAEr1U,QAAS/K,KAAKo8N,YAEnEugH,EAAmBpgV,UAAU6qO,mBAAqB,WAC9CpnO,KAAKuyR,aAAa,CAAEjtL,KAAMz2F,EAAQ8+Q,wBAAwB6E,IAAK3qC,kBAAkB,EAAMurC,iBAAiB,KAE5GupD,EAAmBpgV,UAAU47I,gBAAkB,WAC3C,IAAIrZ,GAAa,EACjB9+H,KAAK8K,aAAY,SAAUC,GACvBA,EAAQgnL,aAAahnL,EAAQk1I,WAAW,GAIxC,IAAIivC,EAAankL,EAAQmkL,WACrBA,GACAA,EAAW6C,aAAa7C,EAAWjvC,WAAW,GAElDnhB,GAAa,KAEbA,GACA9+H,KAAKonO,sBAGbs1G,GAAc,CACV9tO,GAAU,qBACX+tO,EAAmBpgV,UAAW,wBAAoB,GACrDmgV,GAAc,CACV9tO,GAAU,WACX+tO,EAAmBpgV,UAAW,cAAU,GAC3CmgV,GAAc,CACV9tO,GAAU,wBACX+tO,EAAmBpgV,UAAW,2BAAuB,GACxDmgV,GAAc,CACV9tO,GAAU,eACX+tO,EAAmBpgV,UAAW,kBAAc,GAC/CmgV,GAAc,CACV9tO,GAAU,cACX+tO,EAAmBpgV,UAAW,iBAAa,GAC9CmgV,GAAc,CACV9tO,GAAU,YACX+tO,EAAmBpgV,UAAW,eAAW,GAC5CmgV,GAAc,CACV9tO,GAAU,0BACX+tO,EAAmBpgV,UAAW,6BAAyB,GAC1DmgV,GAAc,CACV9tO,GAAU,gBACX+tO,EAAmBpgV,UAAW,mBAAe,GAChDmgV,GAAc,CACV9tO,GAAU,cACX+tO,EAAmBpgV,UAAW,iBAAa,GAC9CmgV,GAAc,CACV9tO,GAAU,iBACX+tO,EAAmBpgV,UAAW,oBAAgB,GACjDmgV,GAAc,CACV5tO,GAAS,eACV6tO,EAAmBpgV,UAAW,kBAAc,GAC/CmgV,GAAc,CACV5tO,GAAS,qBACV6tO,EAAmBpgV,UAAW,wBAAoB,GACrDmgV,GAAc,CACV5tO,GAAS,eACV6tO,EAAmBpgV,UAAW,kBAAc,GAC/CmgV,GAAc,CACVpuO,IACDquO,EAAmBpgV,UAAW,OAAQ,MACzCogV,EAAqBD,GAAc,CAC/BhuO,GAAK,aACNiuO,GACIA,EAjzB4B,CAkzBrC/1N,IAEEm7N,GAAqD,WACrD,IAAI99U,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD09U,GAAuD,SAAU3gV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Ds9U,GAA6B,SAAUp9U,GAEvC,SAASo9U,IACL,OAAkB,OAAXp9U,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAgB/D,OAlBA+hV,GAAaE,EAAap9U,GAI1Bo9U,EAAY1lV,UAAU6jV,QAAU,SAAUh9U,GACtC,IAAI2H,EAAU3H,EAAO2H,QAASszN,EAAcj7N,EAAOi7N,YACnDr+N,KAAKkiV,cAAc3xP,OAAO8tI,GAC1Br+N,KAAKmiV,kBAAkBv5B,+BAA+B79S,IAE1Di3U,GAAc,CACVpzO,GAAU,sBACXqzO,EAAY1lV,UAAW,yBAAqB,GAC/CylV,GAAc,CACVpzO,GAAU,kBACXqzO,EAAY1lV,UAAW,qBAAiB,GAC3C0lV,EAAcD,GAAc,CACxBtzO,GAAK,gBACNuzO,GACIA,EAnBqB,CAoB9Br7N,IAEEw7N,GAAqD,WACrD,IAAIn+U,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD+9U,GAAuD,SAAUhhV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D29U,GAA2B,SAAUz9U,GAErC,SAASy9U,IACL,OAAkB,OAAXz9U,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA+C/D,OAjDAoiV,GAAaE,EAAWz9U,GAIxBy9U,EAAU/lV,UAAU6jV,QAAU,SAAUh9U,GACpC,IAAImnU,EAAcvqU,KAAKotI,eAAe4lK,iBAClCuvC,EAAa3iS,GAAE6gD,OAAO8pO,IAAgBA,EAAY9sU,OAAS,EAC3Dy1N,EAAYqvH,GACT3iS,GAAE6gD,OAAOr9F,EAAOm7U,sBAKhBv+U,KAAK8vG,mBAAmBmjH,cAE3BuvH,EAAiBtvH,EAAYlzN,KAAKyiV,oBAAoBr/U,EAAOm7U,qBAAuB,KACpFhjP,EAAev7F,KAAKm/I,iBAAiBlZ,kBACrCy8M,EAAiB9iS,GAAEghD,eAAerF,GACtCv7F,KAAK2iV,YAAYp0T,KAAKg8S,EAAagY,EAAYrvH,EAAWsvH,EAAgBp/U,EAAOi7N,YAAaqkH,IAElGJ,EAAU/lV,UAAUkmV,oBAAsB,SAAUlE,GAChD,IAAIqE,EAAa,GACbC,EAAe,SAAU56K,GACrBA,GACAA,EAAS1pK,SAAQ,SAAUwM,GAAW,OAAO63U,EAAW73U,EAAQi+C,KAAM,MAW9E,OAPIu1R,GACAA,EAAoBhgV,SAAQ,SAAUukV,GAClCD,EAAaC,EAAKjlP,KAClBglP,EAAaC,EAAKn0J,QAClBk0J,EAAaC,EAAK3+L,WAGnBy+L,GAEXP,GAAc,CACVzzO,GAAU,gBACX0zO,EAAU/lV,UAAW,mBAAe,GACvC8lV,GAAc,CACVzzO,GAAU,mBACX0zO,EAAU/lV,UAAW,sBAAkB,GAC1C8lV,GAAc,CACVzzO,GAAU,qBACX0zO,EAAU/lV,UAAW,wBAAoB,GAC5C+lV,EAAYD,GAAc,CACtB3zO,GAAK,cACN4zO,GACIA,EAlDmB,CAmD5B17N,IAEEm8N,GAAqD,WACrD,IAAI9+U,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD0+U,GAAuD,SAAU3hV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5Ds+U,GAA8B,SAAUp+U,GAExC,SAASo+U,IACL,OAAkB,OAAXp+U,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAyI/D,OA3IA+iV,GAAaE,EAAcp+U,GAI3Bo+U,EAAa1mV,UAAU6jV,QAAU,SAAUh9U,GACvC,IAAIg5N,EAAWh5N,EAAO2H,QAGlByD,EAAS,GAETgvU,EAAa,CAAE9gV,MAAO,GACtBwmV,EAAgBljV,KAAKm/I,iBAAiB5oB,cAGtC4sN,EAAeD,GAAiB9mH,EAASt+E,UACzCslM,EAAUD,EAAe,CAAC/mH,GAAYA,EAAS6+G,kBACnDj7U,KAAKqjV,8BAA8BD,EAAS50U,EAAQgvU,EAAY0F,EAAe,GAE/E,IAAII,EAAuB90U,EAAO/Q,OAAS,EACvC8lV,GAA2BJ,GAExBG,GACAtjV,KAAK8vG,mBAAmB84F,4BAK/B,OAJI26I,IACAvjV,KAAKwjV,uBAAuBpnH,GAC5Bp8N,KAAKyjV,0BAA0BrnH,EAAS13E,QAASl2I,EAAQgvU,EAAY,IAElEhvU,GAEXy0U,EAAa1mV,UAAU8mV,8BAAgC,SAAUK,EAAel1U,EAAQgvU,EAAY0F,EAAe7wJ,GAC/G,IAAIzyI,GAAEghD,eAAe8iP,GAOrB,IAJA,IAAIC,EAAkB3jV,KAAK8vG,mBAAmBu5F,yBAE1Ch8C,EAA4BrtJ,KAAK8vG,mBAAmBuuG,8BACpD6D,GAAmC70D,GAA6BrtJ,KAAK8vG,mBAAmBmyG,oCACnF1kN,EAAI,EAAGA,EAAImmV,EAAcjmV,OAAQF,IAAK,CAC3C,IAAIwN,EAAU24U,EAAcnmV,GAExBqmV,EAAW74U,EAAQk+J,cACnB46K,EAAoBX,IAAkBU,EACtCE,EAA+Bz2L,GAC/Bu2L,GACsC,IAAtC74U,EAAQm+J,mBAAmBzrK,OAC3BsmV,EAAqC7hI,GACrC0hI,GACA74U,EAAQ+yI,WAC8B,IAAtC/yI,EAAQm+J,mBAAmBzrK,OAI3BumV,EAAqBd,GAAiBn4U,EAAQ+yI,UAC9CmmM,EAAqBN,GAAmB54U,EAAQk3G,WAAc+hO,EAC9DE,GAA2BL,IAAsBI,IAChDH,IAAiCC,EAKtC,GAJIG,GACAlkV,KAAKyjV,0BAA0B14U,EAASyD,EAAQgvU,EAAYnrJ,IAG5D6wJ,IAAiBn4U,EAAQ+yI,UAG7B,GAAI8lM,EAAU,CACV,IAAIO,EAAiBL,GAAgCC,EAGrD,GAAIh5U,EAAQk3G,UAAYkiO,EAAgB,CAEpC,IAAIC,EAAqBD,EAAiB9xJ,EAAUA,EAAU,EAC9DryL,KAAKqjV,8BAA8Bt4U,EAAQkwU,kBAAmBzsU,EAAQgvU,EAAY0F,EAAekB,GAE7FpkV,KAAK8vG,mBAAmB2iF,yBACxBzyL,KAAKwjV,uBAAuBz4U,GAC5B/K,KAAKyjV,0BAA0B14U,EAAQ25I,QAASl2I,EAAQgvU,EAAYnrJ,UAI3E,GAAItnL,EAAQ8mL,QAAU9mL,EAAQk3G,SAAU,CACzC,IAAIitE,EAAalvL,KAAKqkV,iBAAiBt5U,GACvC/K,KAAKyjV,0BAA0Bv0J,EAAY1gL,EAAQgvU,EAAYnrJ,MAK3E4wJ,EAAa1mV,UAAUknV,0BAA4B,SAAU14U,EAASyD,EAAQgvU,EAAYnrJ,GACtF,IAAI0vB,EAAyB/hN,KAAK8vG,mBAAmBiyG,yBACrDvzM,EAAOlP,KAAKyL,GACZA,EAAQqnL,WAAW2vB,EAAyB,EAAI1vB,IAEpD4wJ,EAAa1mV,UAAUinV,uBAAyB,SAAUc,GAGtD,IAAI1kS,GAAE6gD,OAAO6jP,EAAU5/L,SAAvB,CAGA,IAAI6/L,EAAa,IAAIt2J,GACrBjuL,KAAKqpG,QAAQ6B,WAAWq5O,GACxB5nV,OAAOsD,KAAKqkV,GAAW/lV,SAAQ,SAAU9B,GACrC8nV,EAAW9nV,GAAO6nV,EAAU7nV,MAEhC8nV,EAAWnsQ,QAAS,EACpBmsQ,EAAWvzJ,UAAU,MACrBuzJ,EAAWpzJ,YAAY,MAGvBozJ,EAAWp2J,UAAY,KACnBvuI,GAAE6gD,OAAO8jP,EAAWv7R,MACpBu7R,EAAWv7R,GAAK,kBAAoBu7R,EAAWv7R,IAKnDu7R,EAAW7/L,QAAU4/L,EACrBA,EAAU5/L,QAAU6/L,IAExBtB,EAAa1mV,UAAU8nV,iBAAmB,SAAUG,GAChD,GAAI5kS,GAAE6gD,OAAO+jP,EAAWt1J,YACpB,OAAOs1J,EAAWt1J,WAEtB,IAAIA,EAAa,IAAIjB,GAWrB,OAVAjuL,KAAKqpG,QAAQ6B,WAAWgkF,GACxBA,EAAWzoB,QAAS,EACpByoB,EAAWd,YAAa,EACxBc,EAAWrsL,OAAS2hV,EAChB5kS,GAAE6gD,OAAO+jP,EAAWx7R,MACpBkmI,EAAWlmI,GAAK,UAAYw7R,EAAWx7R,IAE3CkmI,EAAW3uL,KAAOikV,EAAWjkV,KAC7B2uL,EAAW91I,MAAQorS,EAAWprS,MAAQ,EACtCorS,EAAWt1J,WAAaA,EACjBA,GAEX8zJ,GAAc,CACVp0O,GAAU,qBACXq0O,EAAa1mV,UAAW,wBAAoB,GAC/C0mV,EAAeD,GAAc,CACzBt0O,GAAK,iBACNu0O,GACIA,EA5IsB,CA6I/Br8N,IAEE69N,GAAqD,WACrD,IAAIxgV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDogV,GAAuD,SAAUrjV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DggV,GAA6B,SAAU9/U,GAEvC,SAAS8/U,IACL,OAAkB,OAAX9/U,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAyL/D,OA3LAykV,GAAaE,EAAa9/U,GAI1B8/U,EAAYpoV,UAAU2I,KAAO,WACzBlF,KAAKm3R,aAAen3R,KAAK8vG,mBAAmB2kH,mBAEhDkwH,EAAYpoV,UAAUgyB,KAAO,SAAUg8S,EAAagY,EAAYrvH,EAAWsvH,EAAgBnkH,EAAaqkH,GACpG,IAAI3iV,EAAQC,KACR0F,EAAW,SAAUqF,GAErBhL,EAAM6kV,oCAAoC75U,EAAQyrL,qBAAqB,GAKnEzrL,EAAQkwU,kBADRsH,EAC4BrvH,EACxBnzN,EAAM8kV,YAAY95U,EAASw/T,EAAaiY,EAAgBnkH,EAAaqkH,GACnE3iV,EAAM+kV,cAAcxa,WAAWv/T,EAAQyrL,oBAAqB+zI,GAGtCx/T,EAAQyrL,oBAAoBviL,MAAM,GAElElU,EAAMglV,mBAAmBh6U,GACrBhL,EAAMo3R,cACNp3R,EAAMo3R,aAAapsR,EAAQkwU,oBAG/B58G,GACAA,EAAYvB,6BAA6Bp3N,GAE7C1F,KAAKglV,oCAAoC3mH,IAE7CsmH,EAAYpoV,UAAU0oV,oBAAsB,SAAUl6U,EAAS23B,GAC3D,MAAO,CAAE+nS,WAAY/nS,EAAK33B,QAASA,IAEvC45U,EAAYpoV,UAAUsoV,YAAc,SAAU95U,EAASw/T,EAAaiY,EAAgBnkH,EAAaqkH,GAK7F,IAAIwC,EAAan6U,EAAQkwU,kBACpB1qP,QAAO,SAAU/9E,GAKlB,IAAI2yU,GAAyB3C,EAAehwU,EAAKw2C,IAM7Co8R,EAAyB1C,GAAmBrkH,GAAeA,EAAYZ,QAAQjrN,GACnF,OAAO2yU,GAAyBC,KAE/B39U,IAAIzH,KAAKilV,oBAAoBx6U,KAAKzK,OAEnCqlV,EAAmB,GACvBH,EAAW3mV,SAAQ,SAAU+mV,GAAiB,OAAOD,EAAiBC,EAAcv6U,QAAQi+C,IAAMs8R,EAAcv6U,WAEhH,IAOIyD,EAPA+2U,EAAex6U,EAAQyrL,oBAEtBjmG,QAAO,SAAU/9E,GAAQ,OAAQ6yU,EAAiB7yU,EAAKw2C,OACvDvhD,IAAIzH,KAAKilV,oBAAoBx6U,KAAKzK,OAcvC,OAXAulV,EAAah3T,KAAKvuB,KAAK8kV,cAAcna,gBAAgBlgU,KAAKzK,KAAMuqU,IAG5D/7T,EADwB,IAAxB+2U,EAAa9nV,OACJynV,EAEkB,IAAtBA,EAAWznV,OACP8nV,EAGAvlV,KAAKwlV,kBAAkBjb,EAAa2a,EAAYK,GAEtD/2U,EAAO/G,KAAI,SAAU2lF,GAAQ,OAAOA,EAAKriF,YAGpD45U,EAAYpoV,UAAUipV,kBAAoB,SAAUjb,EAAa5mO,EAAMnmG,GACnE,IAAI8/B,EAAM,GACN//B,EAAI,EACJgQ,EAAI,EAER,MAAOhQ,EAAIomG,EAAKlmG,QAAU8P,EAAI/P,EAAKC,OAAQ,CAMvC,IAAIwnL,EAAgBjlL,KAAK8kV,cAAcna,gBAAgBJ,EAAa5mO,EAAKpmG,GAAIC,EAAK+P,IAC9E03K,EAAgB,EAChB3nJ,EAAIh+B,KAAKqkG,EAAKpmG,MAGd+/B,EAAIh+B,KAAK9B,EAAK+P,MAItB,MAAOhQ,EAAIomG,EAAKlmG,OACZ6/B,EAAIh+B,KAAKqkG,EAAKpmG,MAGlB,MAAOgQ,EAAI/P,EAAKC,OACZ6/B,EAAIh+B,KAAK9B,EAAK+P,MAElB,OAAO+vB,GAEXqnT,EAAYpoV,UAAUwoV,mBAAqB,SAAUh6U,GACjD,IAAI60C,GAAE+gD,QAAQ51F,EAAQkwU,mBAItB,IADA,IAAIwK,EAAa16U,EAAQkwU,kBAChB19U,EAAI,EAAGA,EAAIkoV,EAAWhoV,OAAQF,IAAK,CACxC,IAAImjH,EAAQ+kO,EAAWloV,GACnBonJ,EAAmB,IAANpnJ,EACbqjH,EAAYrjH,IAAMwN,EAAQkwU,kBAAkBx9U,OAAS,EACzDijH,EAAM+vE,cAAc9rC,GACpBjkC,EAAMiwE,aAAa/vE,GACnBF,EAAMmwE,cAActzL,KAG5BonV,EAAYpoV,UAAUyoV,oCAAsC,SAAU3mH,GAClE,IAAIt+N,EAAQC,KACZ,GAAKA,KAAK8vG,mBAAmBu5F,yBAA7B,CAIA,IAAI3jM,EAAW,SAAUqF,GACrBhL,EAAM6kV,oCAAoC75U,EAAQkwU,mBAAmB,GACrElwU,EAAQkwU,kBAAkB18U,SAAQ,SAAUmiH,GACpCA,EAAMuoD,eACNvjK,EAASg7G,OAIjB29G,GACAA,EAAYrB,qBAAoB,SAAUjyN,GAAW,OAAOrF,EAASqF,QAG7E45U,EAAYpoV,UAAUqoV,oCAAsC,SAAU38K,EAAUy9K,GAC5E,IAAI3lV,EAAQC,KACPA,KAAK8vG,mBAAmBu5F,2BAA4BzpJ,GAAE+gD,QAAQsnE,IAGnEA,EAAS1pK,SAAQ,SAAUonV,GACvB,IAAIC,EAAmB7lV,EAAMo/I,iBAAiB3L,yBAC9CoyM,EAAiBrnV,SAAQ,SAAUsnV,GAC/B,IAAI5uO,EAAe4uO,EAAgBhpO,YAAY5F,aAC/C,GAA4B,kBAAjBA,EAAX,CAIA,IAAI6uO,EAAqB7uO,EACrB2/E,EAAiB72L,EAAMo/I,iBAAiB/kB,iBAAiB0rN,GACzDC,EAAqBnvJ,IAAmB+uJ,EAAa/uJ,eACzD,IAAImvJ,EAGJ,GAAIL,EAEAC,EAAa5yJ,cAAc8yJ,EAAgBxuO,QAAS,UAEnD,CAED,IAAI2uO,EAAoBL,EAAahvJ,0BAA0BC,GAC3DovJ,GACAL,EAAa5yJ,cAAc8yJ,EAAgBxuO,QAAS2uO,EAAkBvpV,WAjB1EwG,QAAQC,MAAM,4GAuB9BwhV,GAAc,CACV91O,GAAU,qBACX+1O,EAAYpoV,UAAW,wBAAoB,GAC9CmoV,GAAc,CACV91O,GAAU,kBACX+1O,EAAYpoV,UAAW,qBAAiB,GAC3CmoV,GAAc,CACVp2O,IACDq2O,EAAYpoV,UAAW,OAAQ,MAClCooV,EAAcD,GAAc,CACxBh2O,GAAK,gBACNi2O,GACIA,EA5LqB,CA6L9B/9N,IAEEq/N,GAAqD,WACrD,IAAIhiV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD4hV,GAAuD,SAAU7kV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DwhV,GAA+B,SAAUthV,GAEzC,SAASshV,IACL,OAAkB,OAAXthV,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA+G/D,OAjHAimV,GAAaE,EAAethV,GAI5BshV,EAAc5pV,UAAUwiJ,cAAgB,WACpC/+I,KAAK64S,cAAgB74S,KAAK8vG,mBAAmBuI,cAEjD8tO,EAAc5pV,UAAUg0F,OAAS,SAAU8tI,GACvC,IAAIjqH,EAAep0G,KAAK2vM,cAAc0kE,qBACtCr0Q,KAAKomV,YAAYhyO,EAAciqH,IAEnC8nH,EAAc5pV,UAAU6pV,YAAc,SAAUhyO,EAAciqH,GAC1D,IAAIt+N,EAAQC,KACRk9H,EAAiB,SAAUnyH,EAASs7U,GAEhCt7U,EAAQk+J,eAGJl+J,EAAQyrL,oBADRpiF,IAAiBiyO,EACat7U,EAAQm+J,mBAAmB34E,QAAO,SAAUm/E,GAGtE,IAAI42K,EAAsB52K,EAAU8mB,qBAAuB9mB,EAAU8mB,oBAAoB/4L,OAAS,EAG9F8oV,EAAwB72K,EAAUnvK,MAC/BR,EAAM4vM,cAAcklE,kBAAkB,CAAE9pQ,QAAS2kK,IAExD,OAAO42K,GAAuBC,KAKJx7U,EAAQm+J,mBAE1CnpK,EAAM0xL,oBAAoB1mL,KAG1BA,EAAQyrL,oBAAsBzrL,EAAQm+J,mBACtCn+J,EAAQ0mL,oBAAoB,QAGpC,GAAIzxL,KAAKwmV,yBAA0B,CAC/B,IAAIC,EAA6B,SAAU17U,EAAS27U,GAGhD,GAAI37U,EAAQm+J,mBACR,IAAK,IAAI3rK,EAAI,EAAGA,EAAIwN,EAAQm+J,mBAAmBzrK,OAAQF,IAAK,CACxD,IAAImyK,EAAY3kK,EAAQm+J,mBAAmB3rK,GAEvCopV,EAAgBD,GACb3mV,EAAM4vM,cAAcklE,kBAAkB,CAAE9pQ,QAAS2kK,IACpDA,EAAUxG,mBACVu9K,EAA2B17U,EAAQm+J,mBAAmB3rK,GAAIopV,GAG1DzpN,EAAewyC,EAAWi3K,GAItCzpN,EAAenyH,EAAS27U,IAExBE,EAAyB,SAAU77U,GAAW,OAAO07U,EAA2B17U,GAAS,IAC7FszN,EAAYrB,oBAAoB4pH,OAE/B,CACD,IAAIC,EAAwB,SAAU97U,GAAW,OAAOmyH,EAAenyH,GAAS,IAChFszN,EAAYvB,6BAA6B+pH,GAAuB,KAGxEV,EAAc5pV,UAAUuqV,4BAA8B,SAAU/7U,GAE5D,IAAI2mL,EAAmB,EACvB3mL,EAAQyrL,oBAAoBj4L,SAAQ,SAAUmiH,GAE1CgxE,IAEAA,GAAoBhxE,EAAMgxE,oBAE9B3mL,EAAQ0mL,oBAAoBC,IAEhCy0J,EAAc5pV,UAAUwqV,gCAAkC,SAAUh8U,GAEhE,IAAI2mL,EAAmB,EACvB3mL,EAAQyrL,oBAAoBj4L,SAAQ,SAAUmiH,GACtCA,EAAMxlB,MACNw2F,GAAoBhxE,EAAMgxE,iBAG1BA,OAGR3mL,EAAQ0mL,oBAAoBC,IAEhCy0J,EAAc5pV,UAAUk1L,oBAAsB,SAAU1mL,GAChD/K,KAAK64S,cACL74S,KAAK8mV,4BAA4B/7U,GAGjC/K,KAAK+mV,gCAAgCh8U,IAG7Co7U,EAAc5pV,UAAUiqV,uBAAyB,WAC7C,OAAOxmV,KAAK8vG,mBAAmBuI,eAAiBr4G,KAAK8vG,mBAAmB4zG,0CAE5EwiI,GAAc,CACVt3O,GAAU,kBACXu3O,EAAc5pV,UAAW,qBAAiB,GAC7C2pV,GAAc,CACV53O,IACD63O,EAAc5pV,UAAW,gBAAiB,MAC7C4pV,EAAgBD,GAAc,CAC1Bx3O,GAAK,kBACNy3O,GACIA,EAlHuB,CAmHhCv/N,IAEEogO,GAAqD,WACrD,IAAI/iV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD2iV,GAAuD,SAAU5lV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DuiV,GAAkC,SAAUriV,GAE5C,SAASqiV,IACL,OAAkB,OAAXriV,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAqE/D,OAvEAgnV,GAAaE,EAAkBriV,GAI/BqiV,EAAiB3qV,UAAUwiJ,cAAgB,WACnC/+I,KAAKk4I,SAASykC,YAAcvrE,GAAUU,6BACtC9xG,KAAKs+N,mBAAqBt+N,KAAKk4I,WAIvCgvM,EAAiB3qV,UAAUk0R,4BAA8B,SAAUlwR,GAC/D,GAAIq/C,GAAE+gD,QAAQ3gG,KAAKs+N,oBACfr7N,QAAQC,MAAM,oEADlB,CAIA,IAAImtL,EAAmBrwL,KAAK8vG,mBAAmBugF,mBAC/C,GAAKA,IAAoBzwI,GAAE+gD,QAAQ0vF,GAAnC,CAKA,IAAIqgG,EAAc,CACdvsI,OAAQ,GACRwqC,OAAQ,GACR9wF,IAAK,IAELspP,EAAmBnnV,KAAKs+N,mBAAmB48G,oBAC3C0G,EAAoB5hV,KAAK8vG,mBAAmB0wG,kCAC5CqhI,EAAWD,EAAoB,KAAO,GAgC1C,OA/BIhiS,GAAE6gD,OAAOlgG,IAKTA,EAAKhC,SAAQ,SAAUokU,EAAUzjU,GAC7B,IAAI8pD,EAAKqnI,EAAiBsyI,GACtBykB,EAAeD,EAAiBn+R,GAIpC,GAHI64R,IACAA,EAAS74R,GAAM9pD,GAEfkoV,EAAc,CACd,IAAIC,EAAiBD,EAAa7mV,OAASoiU,EACvC0kB,GACA32D,EAAY/hG,OAAOrvL,KAAKqjU,GAI5BwkB,EAAiBn+R,QAAM3pD,OAGvBqxR,EAAY7yL,IAAIv+F,KAAKqjU,MAKjC/iR,GAAE+lD,cAAcwhP,GAAkB,SAAUn+R,EAAIj+C,GACxCA,GACA2lR,EAAYvsI,OAAO7kJ,KAAKyL,EAAQxK,SAGjC,CAACmwR,EAAamxD,GA3CjB5+U,QAAQC,MAAM,2GA6CtB+jV,GAAc,CACVr4O,GAAU,aACXs4O,EAAiB3qV,UAAW,gBAAY,GAC3C0qV,GAAc,CACV34O,IACD44O,EAAiB3qV,UAAW,gBAAiB,MAChD2qV,EAAmBD,GAAc,CAC7Bv4O,GAAK,qBACNw4O,GACIA,EAxE0B,CAyEnCtgO,IAEEmtN,GAA2B,CAC3B1gO,WAAYxkG,EAAQmkG,YAAY+gO,yBAChChmO,MAAO,CAACk0O,GAAaK,GAAWW,GAAc0B,GAAawB,GAAee,IAC1EvT,UAAW,CAAE2T,WAAY3K,KAGzB4K,GAAqD,WACrD,IAAItjV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDkjV,GAAuD,SAAUnmV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5D8iV,GAA+B,SAAU5iV,GAEzC,SAAS4iV,EAAcz+R,EAAI0+R,EAAatkV,GACpC,IAAIrD,EAAQ8E,EAAOjH,KAAKoC,KAAMgpD,IAAOhpD,KAOrC,OANAD,EAAM2nV,YAAcA,EACpB3nV,EAAMqD,OAASA,EAGfrD,EAAM+hP,SAAW94L,EAAK5lD,EAAOukV,UAC7B5nV,EAAMiiP,OAASjiP,EAAM+hP,SAAW1+O,EAAOukV,UAChC5nV,EAwHX,OAjIAwnV,GAAaE,EAAe5iV,GAW5B4iV,EAAclrV,UAAUwiJ,cAAgB,WACpC/+I,KAAK4nV,kBAETH,EAAclrV,UAAU4tU,kBAAoB,WACxC,MAAO,CACHnhR,GAAI,GAAKhpD,KAAKq3G,QACdrqF,MAAO,CACH66T,YAAa7nV,KAAKq3G,QAClByqI,SAAU9hP,KAAK8nV,cACf9lG,OAAQhiP,KAAK+nV,YACbC,WAAYhoV,KAAKghO,cAI7BymH,EAAclrV,UAAUozL,aAAe,SAAU5kL,EAASxK,EAAMrB,GACxD0gD,GAAE6gD,OAAOlgG,GAKTwK,EAAQ4kL,aAAapvL,EAAMrB,EAAMvB,YAGjCoN,EAAQ4kL,kBAAatwL,OAAWA,IAGxCooV,EAAclrV,UAAU0rU,mBAAqB,WACzC,IAAIloU,EAAQC,KACRoD,EAASpD,KAAKioV,mBACdroS,GAAE+gD,QAAQ3gG,KAAKoD,OAAO0nN,WAAWlsE,SACjC37I,QAAQkD,KAAK,iDAIjBoF,OAAOE,YAAW,WACd1L,EAAMqD,OAAO0nN,WAAWlsE,QAAQx7I,KACjC,IAEPqkV,EAAclrV,UAAUisU,kBAAoB,aAG5Cif,EAAclrV,UAAU0rV,iBAAmB,WAKvC,IAAI7kV,EAAS,CACT0+O,SAAU9hP,KAAK8nV,cACf9lG,OAAQhiP,KAAK+nV,YACbG,gBAAiBloV,KAAK2oU,WAAWl+T,KAAKzK,KAAMA,KAAKkoU,cACjDigB,aAAcnoV,KAAKooU,eAAe39T,KAAKzK,KAAMA,KAAKkoU,cAClDpzC,UAAW90R,KAAKoD,OAAO0xR,UACvBnwG,YAAa3kL,KAAKoD,OAAOuhL,YACzBt7E,QAASrpG,KAAK8vG,mBAAmB0I,cAErC,OAAOp1G,GAEXqkV,EAAclrV,UAAUuO,YAAc,SAAUpF,EAAU4oQ,EAAUhxG,GAChE,IAAIv9J,EAAQC,KACZA,KAAKioK,SAAS1pK,SAAQ,SAAUwM,EAAS7L,GACrC,IAAI0gJ,EAAW7/I,EAAM+hP,SAAW5iP,EAC5B0gJ,EAAW0d,GACX53J,EAASqF,EAASujQ,EAASrrO,YAIvCwkT,EAAclrV,UAAU6rV,gBAAkB,WACtC,OAAOpoV,KAAKqoV,cAEhBZ,EAAclrV,UAAUujJ,OAAS,SAAUF,EAAU0oM,QACnB,IAA1BA,IAAoCA,GAAwB,GAC3DA,IACDtoV,KAAKqoV,aAAeroV,KAAKoD,OAAOmlV,qBAAqBtlT,QAEzD,IAAIulT,EAAa5oM,EAAW5/I,KAAK8hP,SACjC,OAAO9hP,KAAKioK,SAASugL,IAEzBf,EAAclrV,UAAUurV,YAAc,WAClC,OAAO9nV,KAAK8hP,UAEhB2lG,EAAclrV,UAAUwrV,UAAY,WAChC,OAAO/nV,KAAKgiP,QAGhBylG,EAAclrV,UAAUqrV,eAAiB,WACrC5nV,KAAKioK,SAAW,GAChB,IAAK,IAAI1qK,EAAI,EAAGA,EAAIyC,KAAKoD,OAAOukV,UAAWpqV,IAAK,CAC5C,IAAIqiJ,EAAW5/I,KAAK8hP,SAAWvkP,EAC3BwN,EAAU/K,KAAKw4G,aAAatN,WAAW,IAAI+iF,IAC/CljL,EAAQgnL,aAAa/xL,KAAKoD,OAAO68I,WACjCl1I,EAAQsnL,QAAU,EAClBtnL,EAAQomL,YAAYvxC,GACpB70I,EAAQimL,UAAUhxL,KAAKoD,OAAO68I,UAAYL,GAC1C5/I,KAAKioK,SAAS3oK,KAAKyL,KAG3B08U,EAAclrV,UAAUwsU,oBAAsB,SAAU3lU,GACpD,IAAIrD,EAAQC,KACZA,KAAKioK,SAAS1pK,SAAQ,SAAUwM,EAAS7L,GACrC,IAAIqB,EAAO6C,EAAOgH,QAAUhH,EAAOgH,QAAQlL,QAASG,EACpDU,EAAM4vL,aAAa5kL,EAASxK,EAAMR,EAAM+hP,SAAW5iP,MAEvD,IAAIupV,EAAmC,MAAnBrlV,EAAOk6J,UAAoBl6J,EAAOk6J,UAAY,EAAIl6J,EAAOk6J,cAAWj+J,EACxFW,KAAK0nV,YAAY/e,WAAW3oU,KAAMyoV,IAEtChB,EAAclrV,UAAUmsV,gBAAkB,WACtC1oV,KAAKioK,SAAS1pK,SAAQ,SAAUwM,GAG5BA,EAAQmmL,6BAGhBs2J,GAAc,CACVl5O,IACDm5O,EAAclrV,UAAW,gBAAiB,MAC7CirV,GAAc,CACVh5O,IACDi5O,EAAclrV,UAAW,kBAAmB,MACxCkrV,EAlIuB,CAmIhC3f,IAEE6gB,GAAqD,WACrD,IAAI1kV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDskV,GAAuD,SAAUvnV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DkkV,GAAgD,SAAUz7O,EAAY+B,GACtE,OAAO,SAAUpzG,EAAQU,GAAO0yG,EAAUpzG,EAAQU,EAAK2wG,KAEvD07O,GAA+B,SAAUjkV,GAEzC,SAASikV,EAAc1lV,GACnB,IAAIrD,EAAQ8E,EAAOjH,KAAKoC,OAASA,KAMjC,OALAD,EAAMgpV,mBAAoB,EAC1BhpV,EAAMwpU,OAAS,GACfxpU,EAAMipV,WAAa,EACnBjpV,EAAMu9J,SAAWl6J,EAAO6lV,gBACxBlpV,EAAMqD,OAASA,EACRrD,EA0QX,OAlRA4oV,GAAaG,EAAejkV,GAU5BikV,EAAcvsV,UAAUqzG,SAAW,SAAUC,GACzC7vG,KAAKwqG,OAASqF,EAActrG,OAAO,kBAKvCukV,EAAcvsV,UAAUujJ,OAAS,SAAUF,EAAUspM,QAC1B,IAAnBA,IAA6BA,GAAiB,GAClD,IAAIC,EAAUj0U,KAAKkG,MAAMwkI,EAAW5/I,KAAKoD,OAAOukV,WAC5C1e,EAAQjpU,KAAKupU,OAAO4f,GACxB,IAAKlgB,EAAO,CACR,GAAIigB,EACA,OAAO,KAEXjgB,EAAQjpU,KAAKopV,YAAYD,GAE7B,OAAOlgB,EAAMnpL,OAAOF,IAExBkpM,EAAcvsV,UAAU6sV,YAAc,SAAUvB,GAC5C,IAAIwB,EAAWrpV,KAAKkrG,WAAW,IAAIu8O,GAAcI,EAAa7nV,KAAMA,KAAKoD,SAKzE,OAJApD,KAAKupU,OAAO8f,EAAShyO,SAAWgyO,EAChCrpV,KAAKgpV,aACLhpV,KAAKspV,oBAAoBD,GACzBrpV,KAAKoD,OAAO+7R,mBAAmByqC,SAASyf,GACjCA,GAMXP,EAAcvsV,UAAUqhS,aAAe,WACnC,IAAI2rD,EAAsC,GAAnBvpV,KAAKgpV,WACxBO,EACAvpV,KAAKg+R,cAGTh+R,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GAAS,OAAOA,EAAMd,2BAChEnoU,KAAKoD,OAAO+7R,mBAAmB2qC,qBAEnCgf,EAAcvsV,UAAUktV,iBAAmB,WACvC,IAAI1pV,EAAQC,KACZA,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GAAS,OAAOlpU,EAAM2pV,aAAazgB,OAEjF6f,EAAcvsV,UAAUi/Q,YAAc,WAClC,OAAOx7Q,KAAKs9J,UAEhBwrL,EAAcvsV,UAAUqiS,oBAAsB,WAC1C,OAAO5+R,KAAK+oV,mBAGhBD,EAAcvsV,UAAUosU,WAAa,SAAUM,EAAOvpL,GAG7C1/I,KAAK+mH,YAGV/mH,KAAKwqG,OAAO3sF,IAAI,wBAA0BorT,EAAM5xN,QAAU,eAAiBqoC,GAC3E1/I,KAAK2pV,cAAc1gB,EAAOvpL,GAI1B1/I,KAAK4pV,mBAETd,EAAcvsV,UAAU+sV,oBAAsB,SAAUO,GACpD,IAAI9pV,EAAQC,KAGR8pV,EAAmB9pV,KAAKwpV,mBAAmBj5P,QAAO,SAAUpsF,GAAK,OAAOA,GAAK0lV,KAC7EE,EAAyB,SAAUp+U,EAAGxH,GAAK,OAAOA,EAAEikV,kBAAoBz8U,EAAEy8U,mBAC9E0B,EAAiBv7T,KAAKw7T,GAItB,IAAIC,EAAoBhqV,KAAKoD,OAAO4lN,iBAAmB,EACnDihI,EAAeD,EAAoBhqV,KAAKoD,OAAO4lN,iBAAmB,EAAI,KACtEkhI,EAAoBpB,EAAcqB,yBAA2B,EACjEL,EAAiBvrV,SAAQ,SAAU0qU,EAAO/pU,GACtC,IAAIkrV,EAAyBnhB,EAAMjoG,aAAeymH,GAAc1f,uBAAyB7oU,GAASgrV,EAC9FG,IAAwBL,GAAoB9qV,GAAS+qV,EACzD,GAAIG,GAA0BC,EAAuB,CAIjD,GAAItqV,EAAMuqV,0BAA0BrhB,GAChC,OAGJ,GAAIlpU,EAAMwqV,eAAethB,GACrB,OAGJlpU,EAAMyqV,qBAAqBvhB,QAIvC6f,EAAcvsV,UAAUguV,eAAiB,SAAUthB,GAC/C,IAAIjgF,EAAchpP,KAAKi6K,gBAAgBivE,gCACvC,IAAKF,EACD,OAAO,EAEX,GAA6B,MAAzBA,EAAYz5D,UACZ,OAAO,EAEX,IAAIk7J,EAAkBxhB,EAAM6e,cACxB4C,EAAgBzhB,EAAM8e,YACtB4C,EAAW3hG,EAAYppG,UAAY6qM,GAAmBzhG,EAAYppG,SAAW8qM,EACjF,OAAOC,GAEX7B,EAAcvsV,UAAU+tV,0BAA4B,SAAUrhB,GAC1D,IAAIv1E,EAAau1E,EAAM6e,cACnBn0F,EAAWs1E,EAAM8e,YAAc,EACnC,OAAO/nV,KAAK0yL,YAAY+gE,0BAA0BC,EAAYC,IAElEm1F,EAAcvsV,UAAUiuV,qBAAuB,SAAUI,GAChDA,GAGL5qV,KAAK0pV,aAAakB,IAKtB9B,EAAcvsV,UAAUotV,cAAgB,SAAU1gB,EAAOvpL,GAGrD,GAAuB,kBAAZA,GAAwBA,GAAW,EAC1C1/I,KAAKs9J,SAAW5d,EAChB1/I,KAAK+oV,mBAAoB,OAExB,IAAK/oV,KAAK+oV,kBAAmB,CAE9B,IAAIz6F,GAAgB26E,EAAM5xN,QAAU,GAAKr3G,KAAKoD,OAAOukV,UACjDkD,EAA2Bv8F,EAAetuP,KAAKoD,OAAO0nV,aACtD9qV,KAAKs9J,SAAWutL,IAChB7qV,KAAKs9J,SAAWutL,KAI5B/B,EAAcvsV,UAAU+mR,YAAc,SAAUhmH,EAAUyrL,GACtD/oV,KAAKs9J,SAAWA,EAGZ19G,GAAE6gD,OAAOsoP,KACT/oV,KAAK+oV,kBAAoBA,GAKxB/oV,KAAK+oV,mBACF/oV,KAAKs9J,SAAWt9J,KAAKoD,OAAOukV,YAAc,GAC1C3nV,KAAKs9J,WAGbt9J,KAAK4pV,kBAETd,EAAcvsV,UAAUwuV,gBAAkB,SAAUrlV,GAChD,IAAI3F,EAAQC,KACRsuQ,EAAW,IAAI/kG,GACnBvpK,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GAAS,OAAOA,EAAMn+T,YAAYpF,EAAU4oQ,EAAUvuQ,EAAMu9J,cAE1GwrL,EAAcvsV,UAAUitV,iBAAmB,WAEvC,IAAIwB,EAAkB,SAAUr/U,EAAGxH,GAAK,OAAOwH,EAAE0rG,QAAUlzG,EAAEkzG,SACzDkyN,EAAS3pR,GAAE8mD,qBAAqB1mG,KAAKupU,QAAQh7S,KAAKy8T,GACtD,OAAOzhB,GAEXuf,EAAcvsV,UAAUmtV,aAAe,SAAUzgB,UACtCjpU,KAAKupU,OAAON,EAAM5xN,SACzBr3G,KAAK8tG,YAAYm7N,GACjBjpU,KAAKgpV,aACLhpV,KAAKoD,OAAO+7R,mBAAmB4qC,YAAYd,IAG/C6f,EAAcvsV,UAAUqtV,eAAiB,WACrC,GAAI5pV,KAAK+mH,UAAW,CAKhB/mH,KAAKirV,sCAGL,IAAIrnO,EAAU,CACVnkH,KAAMktH,GAAOwF,qBAEjBnyH,KAAKq0G,aAAa5nG,cAAcm3G,KAGxCklO,EAAcvsV,UAAU0uV,oCAAsC,WAC1D,IAAIlrV,EAAQC,KACRkrV,EAAkB,GACtBlrV,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GACtC,IAAInnF,EAAWmnF,EAAM5xN,QAAUt3G,EAAMqD,OAAOukV,UACxC7lG,GAAY/hP,EAAMu9J,UAClB4tL,EAAgB5rV,KAAK2pU,MAGzBiiB,EAAgBztV,OAAS,GACzBytV,EAAgB3sV,SAAQ,SAAU0qU,GAAS,OAAOlpU,EAAM2pV,aAAazgB,OAG7E6f,EAAcvsV,UAAUyhS,WAAa,WACjC,IAAIj+R,EAAQC,KACZA,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GAAS,OAAOlpU,EAAMyqV,qBAAqBvhB,MACrFjpU,KAAK+oV,mBAAoB,EAKH,IAAlB/oV,KAAKs9J,WACLt9J,KAAKs9J,SAAWt9J,KAAKoD,OAAO6lV,iBAEhCjpV,KAAK4pV,kBAETd,EAAcvsV,UAAU4uV,mBAAqB,SAAUxwC,EAAcC,GACjE,IAAI76S,EAAQC,KACRwO,EAAS,GACT48U,GAAe,EACfC,GAAgB,EAChBC,EAAiB,IAAI/hL,GAErB3pH,GAAE+gD,QAAQg6M,KACV0wC,GAAgB,GAEpB,IAAIE,GAAsB,EAC1BvrV,KAAKwpV,mBAAmBjrV,SAAQ,SAAU0qU,GAClCsiB,IAGAF,GAAkBD,EAAc,IAAMniB,EAAM5xN,QAC5Ck0O,GAAsB,GAG1BH,EAAcniB,EAAM5xN,QACpB4xN,EAAMn+T,aAAY,SAAUC,GACxB,IAAIygV,EAAiBzgV,IAAY4vS,GAAgB5vS,IAAY6vS,GACzDywC,GAAiBG,IACjBh9U,EAAOlP,KAAKyL,GAEZygV,IACAH,GAAiBA,KAEtBC,EAAgBvrV,EAAMu9J,eAG7B,IAAImuL,EAAeF,GAAuBF,EAC1C,OAAOI,EAAe,GAAKj9U,GAK/Bs6U,EAAcqB,yBAA2B,EACzCvB,GAAc,CACVh6O,GAAU,gBACXk6O,EAAcvsV,UAAW,mBAAe,GAC3CqsV,GAAc,CACVh6O,GAAU,oBACXk6O,EAAcvsV,UAAW,uBAAmB,GAC/CqsV,GAAc,CACVC,GAAU,EAAG55O,GAAU,mBACxB65O,EAAcvsV,UAAW,WAAY,MACxCqsV,GAAc,CACVp6O,IACDs6O,EAAcvsV,UAAW,mBAAoB,MACzCusV,EAnRuB,CAoRhCliO,IAEE8kO,GAAqD,WACrD,IAAIznV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDqnV,GAAuD,SAAUtqV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DinV,GAAkC,SAAU/mV,GAE5C,SAAS+mV,IACL,OAAkB,OAAX/mV,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoQ/D,OAtQA0rV,GAAaE,EAAkB/mV,GAI/B+mV,EAAiBrvV,UAAUs+S,aAAe,SAAU37S,GAChD,MAAO,CACH+gJ,UAAWjgJ,KAAKigJ,UAChBC,OAAQlgJ,KAAKigJ,UAAY/gJ,IAIjC0sV,EAAiBrvV,UAAUyyP,sBAAwB,SAAUirD,EAAYC,EAAUC,EAAiBC,GAChG,OAAO,GAEXwxC,EAAiBrvV,UAAU2I,KAAO,WAC9B,IAAInF,EAAQC,KACPA,KAAK8vG,mBAAmBkwG,uBAG7BhgN,KAAKigJ,UAAYjgJ,KAAK8vG,mBAAmBmnH,uBACzCj3N,KAAKgiR,oBACLhiR,KAAKqnH,gBAAe,WAAc,OAAOtnH,EAAM8rV,kBAC/C7rV,KAAK8rV,gBAETF,EAAiBrvV,UAAUuvV,YAAc,WACrC,GAA+D,MAA3D9rV,KAAK8vG,mBAAmBu3G,gCAAyC,CACjE,IAAI75B,EAAY,mLAChB5tI,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAKqnL,KAAe,oCAGlEo+J,EAAiBrvV,UAAUovB,MAAQ,WAC/B3rB,KAAKowR,cAAcpwR,KAAK8vG,mBAAmB+6G,kBAE/C+gI,EAAiBrvV,UAAUwvV,kBAAoB,WACvC/rV,KAAK8qN,aACL9qN,KAAKw4G,aAAa1K,YAAY9tG,KAAK8qN,YACnC9qN,KAAK0yL,YAAY60D,oBACjBvnP,KAAK8qN,WAAa,OAG1B8gI,EAAiBrvV,UAAUylR,kBAAoB,WAC3ChiR,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO/Q,qBAAsB57G,KAAK47K,gBAAgBnxK,KAAKzK,OAClGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAO1S,mBAAoBj6G,KAAKqsL,cAAc5hL,KAAKzK,OAC9FA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOE,yBAA0B7sH,KAAKgsV,mBAAmBvhV,KAAKzK,OACzGA,KAAKmnH,mBAAmBnnH,KAAKq0G,aAAcsY,GAAOwF,oBAAqBnyH,KAAK4pV,eAAen/U,KAAKzK,QAEpG4rV,EAAiBrvV,UAAUq/K,gBAAkB,WACzC57K,KAAKqgH,SAETurO,EAAiBrvV,UAAU8vL,cAAgB,WACvCrsL,KAAKqgH,SAETurO,EAAiBrvV,UAAUyvV,mBAAqB,WAC5C,IAAIC,EAKAA,GADAjsV,KAAKksV,aACWlsV,KAAKmsV,uBAMrBF,GACAjsV,KAAKqgH,SAGburO,EAAiBrvV,UAAU4vV,qBAAuB,WAC9C,OAAQvsS,GAAEuhD,WAAWnhG,KAAKksV,YAAYp3D,UAAW90R,KAAKotI,eAAe2nJ,iBAEzE62D,EAAiBrvV,UAAUogL,QAAU,WACjC,OAAOvrE,GAAUQ,yBAErBg6O,EAAiBrvV,UAAU6zR,cAAgB,SAAUtlE,GACjD9qN,KAAK+rV,oBACL/rV,KAAK8qN,WAAaA,EAEdA,GACA9qN,KAAKqgH,SAGburO,EAAiBrvV,UAAUqqI,QAAU,WACjC,OAAQ5mI,KAAKosV,eAEjBR,EAAiBrvV,UAAU8wP,eAAiB,WACxC,QAASrtP,KAAKosV,eAElBR,EAAiBrvV,UAAU25L,4BAA8B,SAAUykH,EAAcC,GAC7E,OAAO56S,KAAKosV,cAAgBpsV,KAAKosV,cAAcjB,mBAAmBxwC,EAAcC,GAAe,IAEnGgxC,EAAiBrvV,UAAU8jH,MAAQ,WAG/B,GAAKrgH,KAAK8qN,WAAV,CAMA,IAAIuhI,EAAoBzsS,GAAE6gD,OAAOzgG,KAAK8vG,mBAAmBugF,oBACpDg8J,GACDrsV,KAAK6vL,oBAAoBxvE,QAE7BrgH,KAAKssV,aACL,IAAIllV,EAAQpH,KAAKusV,0BACjBvsV,KAAKq0G,aAAa5nG,cAAcrF,KAEpCwkV,EAAiBrvV,UAAUgwV,wBAA0B,WACjD,MAAO,CACH9sV,KAAMktH,GAAO2B,oBACb1kH,IAAK5J,KAAKi/F,QACVp1F,UAAW7J,KAAK6J,UAGhBk+O,SAAS,EACT54D,SAAS,EACT04D,kBAAkB,EAClBC,SAAS,IAGjB8jG,EAAiBrvV,UAAU+vV,WAAa,WAEpCtsV,KAAK6rV,eACL,IAAIpiB,EAAwBzpU,KAAK8vG,mBAAmB+4G,qCACpD7oN,KAAKksV,YAAc,CAEfphI,WAAY9qN,KAAK8qN,WAEjBnmC,YAAa3kL,KAAK2vM,cAAcokE,iBAChC+gB,UAAW90R,KAAKotI,eAAe2nJ,eAC/BoK,mBAAoBn/R,KAAKm/R,mBAIzBsqC,sBAAuBzpU,KAAKwsV,iBAAiB/iB,EAAuB,GACpEwf,gBAAiBjpV,KAAKwsV,iBAAiBxsV,KAAK8vG,mBAAmB25G,6BAA8B,GAC7FT,iBAAkBhpN,KAAK8vG,mBAAmBi5G,sBAC1C9oE,UAAWjgJ,KAAK8vG,mBAAmBmnH,uBAGnC6zH,aAAc9qV,KAAKwsV,iBAAiBxsV,KAAK8vG,mBAAmBm5G,uBAAwB,GAGpF0+H,UAAW3nV,KAAKwsV,iBAAiBxsV,KAAK8vG,mBAAmBy5G,oBAAqB,KAG9Eg/H,qBAAsB,IAAIh/K,IAE9BvpK,KAAKosV,cAAgBpsV,KAAKkrG,WAAW,IAAI49O,GAAc9oV,KAAKksV,eAEhEN,EAAiBrvV,UAAUiwV,iBAAmB,SAAU9vV,EAAO4qG,GAC3D,OAAO5qG,EAAQ,EAAIA,EAAQ4qG,GAE/BskP,EAAiBrvV,UAAUsvV,aAAe,WAClC7rV,KAAKosV,gBACLpsV,KAAKosV,cAAgBpsV,KAAK8tG,YAAY9tG,KAAKosV,iBAGnDR,EAAiBrvV,UAAUqtV,eAAiB,WACxC,IAAIxiV,EAAQpH,KAAKusV,0BACjBvsV,KAAKq0G,aAAa5nG,cAAcrF,IAEpCwkV,EAAiBrvV,UAAUujJ,OAAS,SAAUF,GAC1C,OAAO5/I,KAAKosV,cAAgBpsV,KAAKosV,cAActsM,OAAOF,GAAY,MAEtEgsM,EAAiBrvV,UAAUoyO,WAAa,SAAU3lL,GAC9C,IAAIx6C,EAAS,KAMb,OALAxO,KAAK8K,aAAY,SAAUC,GACnBA,EAAQi+C,KAAOA,IACfx6C,EAASzD,MAGVyD,GAEXo9U,EAAiBrvV,UAAUuO,YAAc,SAAUpF,GAC3C1F,KAAKosV,eACLpsV,KAAKosV,cAAcrB,gBAAgBrlV,IAG3CkmV,EAAiBrvV,UAAUm/S,oBAAsB,WAC7C,OAAO17S,KAAKw7Q,eAEhBowE,EAAiBrvV,UAAUu/S,6BAA+B,SAAUuiC,GAChE,OAAOA,GAEXuN,EAAiBrvV,UAAU8xP,mBAAqB,SAAU79D,GACtD,GAAuB,IAAnBxwL,KAAKigJ,UAAiB,CACtB,IAAIwsM,EAAmBv3U,KAAKkG,MAAMo1K,EAAQxwL,KAAKigJ,WAC3CquG,EAAetuP,KAAKw7Q,cAAgB,EACxC,OAAIixE,EAAmBn+F,EACZA,EAGAm+F,EAIX,OAAO,GAGfb,EAAiBrvV,UAAUi/Q,YAAc,WACrC,OAAOx7Q,KAAKosV,cAAgBpsV,KAAKosV,cAAc5wE,cAAgB,GAEnEowE,EAAiBrvV,UAAUozP,aAAe,SAAU5kP,GAChD,IAAI2hV,EAAe1sV,KAAK2uO,WAAW5jO,EAAQi+C,IAC3C,QAAS0jS,GAEbd,EAAiBrvV,UAAUqhS,aAAe,WAClC59R,KAAKosV,eACLpsV,KAAKosV,cAAcxuD,gBAG3BguD,EAAiBrvV,UAAUyhS,WAAa,WAChCh+R,KAAKosV,eACLpsV,KAAKosV,cAAcpuD,cAI3B4tD,EAAiBrvV,UAAUqiS,oBAAsB,WAC7C,QAAI5+R,KAAKosV,eACEpsV,KAAKosV,cAAcxtD,uBAMlCgtD,EAAiBrvV,UAAU+mR,YAAc,SAAUhmH,EAAUyrL,GACrD/oV,KAAKosV,eACLpsV,KAAKosV,cAAc9oE,YAAYhmH,EAAUyrL,IAGjD4C,GAAc,CACV/8O,GAAU,kBACXg9O,EAAiBrvV,UAAW,qBAAiB,GAChDovV,GAAc,CACV/8O,GAAU,mBACXg9O,EAAiBrvV,UAAW,sBAAkB,GACjDovV,GAAc,CACV/8O,GAAU,wBACXg9O,EAAiBrvV,UAAW,2BAAuB,GACtDovV,GAAc,CACV/8O,GAAU,YACXg9O,EAAiBrvV,UAAW,eAAW,GAC1CovV,GAAc,CACV/8O,GAAU,cACXg9O,EAAiBrvV,UAAW,iBAAa,GAC5CovV,GAAc,CACV/8O,GAAU,gBACXg9O,EAAiBrvV,UAAW,mBAAe,GAC9CovV,GAAc,CACV/8O,GAAU,uBACXg9O,EAAiBrvV,UAAW,0BAAsB,GACrDovV,GAAc,CACVr9O,IACDs9O,EAAiBrvV,UAAW,OAAQ,MACvCovV,GAAc,CACVn9O,IACDo9O,EAAiBrvV,UAAW,oBAAqB,MACpDqvV,EAAmBD,GAAc,CAC7Bj9O,GAAK,aACNk9O,GACIA,EAvQ0B,CAwQnChlO,IAEEgtN,GAAyB,CACzBvgO,WAAYxkG,EAAQmkG,YAAY4gO,uBAChCD,UAAW,CAAEgZ,SAAUf,KAGvBgB,GAA6B,WAC7B,SAASA,KAwBT,OAtBAA,EAAYrwV,UAAUqzG,SAAW,SAAU7B,GACvC/tG,KAAK+tG,MAAQA,GAEjB6+O,EAAYrwV,UAAUswV,YAAc,SAAUC,GAC1C,IAAIC,EAAY/sV,KAAKgtV,0BAIrB,OAHgB,MAAZF,GAAqBA,EAASrvV,SAC9BqvV,EAAW9sV,KAAKitV,uBAEc,IAA3BH,EAAS/rV,QAAQ,KAAc+rV,EAAW,IAAMC,EAAYD,GAEvEF,EAAYrwV,UAAU2wV,uBAAyB,SAAU1vJ,GACrD,IAAI2vJ,EAAentV,KAAKotV,mBAAmB5vJ,GACvCj9L,EAAOP,KAAK+tG,MAAMs/O,eAAeC,UAAUttV,KAAKutV,yBAAyBJ,GAAeA,GAC5F,MAAO,CAAEA,aAAcA,EAAc5sV,KAAMA,IAE/CqsV,EAAYrwV,UAAU6wV,mBAAqB,SAAU5vJ,GACjD,IAAIgwJ,EAAaxtV,KAAK2wN,yBAClBvtN,EAAS,GAGb,OAFAw8C,GAAE33C,OAAO7E,EAAQoqV,GACjB5tS,GAAE33C,OAAO7E,EAAQo6L,GACVp6L,GAEJwpV,EAzBqB,GA4B5Ba,GAA4C,WAC5C,SAASA,EAA2B16I,GAChC/yM,KAAK0tV,aAAe,GACpB,IAAIvuM,EAAmB4zD,EAAO5zD,iBAAkBgB,EAAe4yD,EAAO5yD,aAAcrwC,EAAqBijG,EAAOjjG,mBAAoB69O,EAAsB56I,EAAO46I,oBAAqBC,EAAwB76I,EAAO66I,sBAAuBC,EAA6B96I,EAAO86I,2BAA4BC,EAA0B/6I,EAAO+6I,wBAC7U9tV,KAAKm/I,iBAAmBA,EACxBn/I,KAAKmgJ,aAAeA,EACpBngJ,KAAK8vG,mBAAqBA,EAC1B9vG,KAAK2tV,oBAAsBA,EAC3B3tV,KAAK4tV,sBAAwBA,EAC7B5tV,KAAK6tV,2BAA6BA,EAClC7tV,KAAK8tV,wBAA0BA,EA0EnC,OAxEAL,EAA2BlxV,UAAUwxV,QAAU,SAAUC,GACrDhuV,KAAK0tV,aAAe9tS,GAAE2wC,OAAOy9P,GAAiB,SAAUtpT,GAAO,QAASA,EAAIm4E,YAAY5F,iBAE5Fw2O,EAA2BlxV,UAAU0xV,mBAAqB,SAAUvmV,GAChE,IAAIhL,EAAQsD,KAAKyvI,cAAczvI,KAAK4tV,sBAAuBlmV,GAC3D,OAAgB,MAAThL,EAAgBA,EAAQ,IAEnC+wV,EAA2BlxV,UAAU2xV,oBAAsB,SAAUxmV,EAAQxI,EAAOivV,EAAqB1uV,EAAM+S,GAE3G,IASI47U,EATAC,EAAaruV,KAAK8vG,mBAAmBiyG,yBAA2BvvM,EAAKk2H,cAAgB,EACrF4lN,EAEJ97U,GAAQA,EAAK0oF,QAGTh8F,IAAUmvV,IAAqD,IAAvCruV,KAAK0tV,aAAa3sV,QAAQ2G,IAEhC,IAAVxI,GAAec,KAAK8vG,mBAAmB4pC,oBAAoB15I,KAAKm/I,iBAAiB5oB,gBAGzF63N,EADAE,EACetuV,KAAKuuV,wBAAwB/7U,GAG7BxS,KAAKmgJ,aAAahS,SAASzmI,EAAQ8K,GAEtD,IAAI9V,EAAQsD,KAAKwuV,YAAYL,EAAqB37U,EAAM9K,EAAQ0mV,EAAcpuV,KAAK2tV,oBAAqBluV,GACxG,OAAgB,MAAT/C,EAAgBA,EAAQ,IAEnC+wV,EAA2BlxV,UAAUkzI,cAAgB,SAAU/pI,EAAUgC,GACrE,OAAIhC,EACOA,EAAS,CACZgC,OAAQA,EACRkC,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,eAGlCx4G,KAAKm/I,iBAAiB5P,wBAAwB7nI,EAAQ,OAAO,IAExE+lV,EAA2BlxV,UAAUgyV,wBAA0B,SAAU/7U,GACrE,GAAIxS,KAAK8tV,wBACL,OAAO9tV,KAAK8tV,wBAAwB,CAChCt7U,KAAMA,EACN5I,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,eAGzC,IAAIv4G,EAAO,CAACuS,EAAK/V,KACjB,IAAKuD,KAAK8vG,mBAAmBiyG,yBACzB,MAAOvvM,EAAK3P,OACR2P,EAAOA,EAAK3P,OACZ5C,EAAKX,KAAKkT,EAAK/V,KAGvB,OAAOwD,EAAKykG,UAAU1zF,KAAK,SAE/By8U,EAA2BlxV,UAAUiyV,YAAc,SAAUL,EAAqBpjV,EAASrD,EAAQhL,EAAOixV,EAAqBluV,GAC3H,OAAIkuV,EACOA,EAAoB,CACvBQ,oBAAqBA,EACrBzmV,OAAQA,EACR8K,KAAMzH,EACNrO,MAAOA,EACPkN,IAAK5J,KAAK8vG,mBAAmB2I,SAC7B5uG,UAAW7J,KAAK8vG,mBAAmB4I,eACnCrP,QAASrpG,KAAK8vG,mBAAmB0I,aACjC/4G,KAAMA,IAGE,MAAT/C,EAAgBA,EAAQ,IAE5B+wV,EApFoC,GAuF3CgB,GAA4B,WAC5B,SAASA,KAiCT,OA/BAA,EAAWhhV,SAAW,SAAUq/U,EAAU34U,GACtC,IAAI6sI,EAAMr0I,SAAS69E,aAAej/E,OAClC,GAAKy1I,EAKL,GAAIA,EAAI/zI,UAAUe,iBACdgzI,EAAI/zI,UAAUe,iBAAiBmG,EAAS24U,OAEvC,CAED,IAAI3iQ,EAAUx9E,SAASa,cAAc,KAEjCkhV,EAAQ1tM,EAAI3zI,IAAIS,gBAAgBqG,GACpCg2E,EAAQi7B,aAAa,OAAQspO,GAC7BvkQ,EAAQi7B,aAAa,WAAY0nO,GACjC3iQ,EAAQhyC,MAAMknC,QAAU,OACxB1yE,SAASuB,KAAKwsB,YAAYyvD,GAC1BA,EAAQ19E,cAAc,IAAIC,WAAW,QAAS,CAC1CiiV,SAAS,EACTtiE,YAAY,EACZ74Q,KAAMwtI,KAEVr0I,SAASuB,KAAK0sB,YAAYuvD,GAC1B62D,EAAIv1I,YAAW,WAEXu1I,EAAI3zI,IAAIU,gBAAgB2gV,KACzB,QAzBHzrV,QAAQkD,KAAK,yEA4BdsoV,EAlCoB,GAqC3BG,GAAqD,WACrD,IAAI3qV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDuqV,GAAiB,OACjBC,GAAuC,SAAUjqV,GAEjD,SAASiqV,EAAsB/7I,GAC3B,IAAIhzM,EAAQ8E,EAAOjH,KAAKoC,KAAM+yM,IAAW/yM,KACzCD,EAAMgvV,aAAc,EACpBhvV,EAAMyO,OAAS,GACf,IAAIwgV,EAAiBj8I,EAAOi8I,eAAgBC,EAAkBl8I,EAAOk8I,gBAGrE,OAFAlvV,EAAMivV,eAAiBA,EACvBjvV,EAAMkvV,gBAAkBA,EACjBlvV,EAuGX,OA/GA6uV,GAAaE,EAAuBjqV,GAUpCiqV,EAAsBvyV,UAAU2yV,iBAAmB,SAAU/6U,GACzD,IAAIpU,EAAQC,KACPmU,IAGkB,kBAAZA,GACF,SAAStI,KAAKsI,IACfnU,KAAKmvV,eAGTh7U,EAAUA,EAAQpL,QAAQ,SAAU8lV,IACpC7uV,KAAKwO,QAAU2F,GAGfA,EAAQ5V,SAAQ,SAAUi6B,GACtBz4B,EAAMovV,eACN32T,EAAIj6B,SAAQ,SAAUglC,EAAMrkC,GACV,IAAVA,IACAa,EAAMyO,QAAUzO,EAAMkvV,iBAE1BlvV,EAAMyO,QAAUzO,EAAMqvV,YAAY7rT,EAAKhjC,KAAK7D,OAAS,IACjD6mC,EAAK8rT,aACLtvV,EAAMuvV,iBAAiB/rT,EAAK8rT,qBAMhDP,EAAsBvyV,UAAUgzV,uBAAyB,WAErD,OADAvvV,KAAKmvV,eACE,CACHK,SAAUxvV,KAAKyvV,6BAA6BhlV,KAAKzK,QAGzD8uV,EAAsBvyV,UAAUkzV,6BAA+B,SAAU3lU,EAAQ5qB,EAAOmlK,GACvE,GAATnlK,IACAc,KAAKwO,QAAUxO,KAAKivV,iBAExBjvV,KAAKwO,QAAUxO,KAAKovV,YAAYtlU,GAChC9pB,KAAKsvV,iBAAiBjrL,IAE1ByqL,EAAsBvyV,UAAU+yV,iBAAmB,SAAUjmS,GACzD,IAAK,IAAI9rD,EAAI,EAAGA,GAAK8rD,EAAO9rD,IACxByC,KAAKwO,QAAUxO,KAAKivV,gBAAkBjvV,KAAKovV,YAAY,KAG/DN,EAAsBvyV,UAAUmzV,eAAiB,WAE7C,OADA1vV,KAAKmvV,eACE,CACHK,SAAUxvV,KAAK2vV,qBAAqBllV,KAAKzK,QAGjD8uV,EAAsBvyV,UAAUozV,qBAAuB,SAAUjoV,EAAQxI,GACxD,GAATA,IACAc,KAAKwO,QAAUxO,KAAKivV,iBAExBjvV,KAAKwO,QAAUxO,KAAKovV,YAAYpvV,KAAKiuV,mBAAmBvmV,KAE5DonV,EAAsBvyV,UAAUqzV,aAAe,WAE3C,OADA5vV,KAAKmvV,eACE,CACHK,SAAUxvV,KAAK6vV,mBAAmBplV,KAAKzK,QAG/C8uV,EAAsBvyV,UAAUszV,mBAAqB,SAAUnoV,EAAQxI,EAAOsT,GAC7D,GAATtT,IACAc,KAAKwO,QAAUxO,KAAKivV,iBAExBjvV,KAAKwO,QAAUxO,KAAKovV,YAAYpvV,KAAKkuV,oBAAoBxmV,EAAQxI,EAAOA,EAAOkyG,GAAUO,gBAAiBn/F,KAE9Gs8U,EAAsBvyV,UAAU6yV,YAAc,SAAU1yV,GACpD,GAAIsD,KAAKgvV,eACL,OAAOtyV,EAEX,GAAc,OAAVA,QAA4B2C,IAAV3C,EAClB,MAAO,KAEX,IAAIozV,EACiB,kBAAVpzV,EACPozV,EAAcpzV,EAEiB,oBAAnBA,EAAMiB,SAClBmyV,EAAcpzV,EAAMiB,YAGpBsF,QAAQkD,KAAK,4CACb2pV,EAAc,IAGlB,IAAIC,EAAeD,EAAY/mV,QAAQ,KAAM,MAC7C,MAAO,IAAMgnV,EAAe,KAEhCjB,EAAsBvyV,UAAUysB,MAAQ,WACpC,OAAOhpB,KAAKwO,QAEhBsgV,EAAsBvyV,UAAU4yV,aAAe,WACtCnvV,KAAK+uV,cACN/uV,KAAKwO,QAAUqgV,IAEnB7uV,KAAK+uV,aAAc,GAEhBD,EAhH+B,CAiHxCrB,IAEEuC,GAAqD,WACrD,IAAI/rV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarD2rV,GAAuD,SAAU5uV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,GAE5DurV,GAA4B,SAAUrrV,GAEtC,SAASqrV,IACL,OAAkB,OAAXrrV,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KA2E/D,OA7EAgwV,GAAaE,EAAYrrV,GAIzBqrV,EAAW3zV,UAAUwiJ,cAAgB,WACjC/+I,KAAK4vG,SAAS,CACVy9O,eAAgBrtV,KAAKqtV,eACrBv9O,mBAAoB9vG,KAAK8vG,sBAGjCogP,EAAW3zV,UAAUo0N,uBAAyB,WAC1C,OAAO3wN,KAAK8vG,mBAAmB6gH,uBAAuB,QAE1Du/H,EAAW3zV,UAAUkgG,OAAS,SAAU+gG,GACpC,GAAIx9L,KAAKmwV,qBAEL,OADAltV,QAAQkD,KAAK,+EACN,GAEX,IAAImnF,EAAKttF,KAAKktV,uBAAuB1vJ,GAAa2vJ,EAAe7/P,EAAG6/P,aAAc5sV,EAAO+sF,EAAG/sF,KACxF6vV,EAAe,IAAItkV,KAAK,CAAC,SAAUvL,GAAO,CAE1Cd,KAAM8L,OAAO0B,UAAUe,iBAAmBhO,KAAKqwV,cAAgB,iBAGnE,OADA5B,GAAWhhV,SAASzN,KAAK6sV,YAAYM,EAAaL,UAAWsD,GACtD7vV,GAEX2vV,EAAW3zV,UAAU4yR,gBAAkB,SAAU/rR,GAC7C,OAAOpD,KAAKy8F,OAAOr5F,IAEvB8sV,EAAW3zV,UAAUyyR,aAAe,SAAU5rR,GAC1C,OAAOpD,KAAKktV,uBAAuB9pV,GAAQ7C,MAE/C2vV,EAAW3zV,UAAU8zV,YAAc,WAC/B,MAAO,2BAEXH,EAAW3zV,UAAU0wV,mBAAqB,WACtC,MAAO,cAEXiD,EAAW3zV,UAAUywV,wBAA0B,WAC3C,MAAO,OAEXkD,EAAW3zV,UAAUgxV,yBAA2B,SAAUnqV,GACtD,IAAIkqF,EAAKttF,KAAMm/I,EAAmB7xD,EAAG6xD,iBAAkBgB,EAAe7yD,EAAG6yD,aAAcrwC,EAAqBxiB,EAAGwiB,mBAC3G/gB,EAAK3rF,EAAQuqV,EAAsB5+P,EAAG4+P,oBAAqBC,EAAwB7+P,EAAG6+P,sBAAuBC,EAA6B9+P,EAAG8+P,2BAA4BC,EAA0B/+P,EAAG++P,wBAAyBkB,EAAiBjgQ,EAAGigQ,eAAgBC,EAAkBlgQ,EAAGkgQ,gBAC5R,OAAO,IAAIH,GAAsB,CAC7B3vM,iBAAkBA,EAClBgB,aAAcA,EACdrwC,mBAAoBA,EACpB69O,oBAAqBA,QAAuBtuV,EAC5CuuV,sBAAuBA,QAAyBvuV,EAChDwuV,2BAA4BA,QAA8BxuV,EAC1DyuV,wBAAyBA,QAA2BzuV,EACpD2vV,eAAgBA,IAAkB,EAClCC,gBAAiBA,GAAmB,OAG5CiB,EAAW3zV,UAAU4zV,mBAAqB,WACtC,OAAOnwV,KAAK8vG,mBAAmBihH,uBAEnCk/H,GAAc,CACVrhP,GAAU,qBACXshP,EAAW3zV,UAAW,wBAAoB,GAC7C0zV,GAAc,CACVrhP,GAAU,iBACXshP,EAAW3zV,UAAW,oBAAgB,GACzC0zV,GAAc,CACVrhP,GAAU,mBACXshP,EAAW3zV,UAAW,sBAAkB,GAC3C0zV,GAAc,CACVrhP,GAAU,uBACXshP,EAAW3zV,UAAW,0BAAsB,GAC/C0zV,GAAc,CACV3hP,IACD4hP,EAAW3zV,UAAW,gBAAiB,MAC1C2zV,EAAaD,GAAc,CACvBvhP,GAAK,eACNwhP,GACIA,EA9EoB,CA+E7BtD,IAEE0D,GAAqD,WACrD,IAAIrsV,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBtH,OAAOyH,gBAClB,CAAEtF,UAAW,cAAgBzB,OAAS,SAAU6G,EAAGC,GAAKD,EAAEpF,UAAYqF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAE/D,eAAeiE,KAAIH,EAAEG,GAAKF,EAAEE,KAClEJ,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASG,IAAOtE,KAAK1D,YAAc4H,EADnCD,EAAcC,EAAGC,GAEjBD,EAAE3H,UAAkB,OAAN4H,EAAaxH,OAAO4H,OAAOJ,IAAMG,EAAG/H,UAAY4H,EAAE5H,UAAW,IAAI+H,IAV9B,GAarDisV,GAAuD,SAAUlvV,EAAYtF,EAAQU,EAAKgI,GAC1F,IAA2HP,EAAvHQ,EAAI/D,UAAUlD,OAAQkH,EAAID,EAAI,EAAI3I,EAAkB,OAAT0I,EAAgBA,EAAO9H,OAAOsE,yBAAyBlF,EAAQU,GAAOgI,EACrH,GAAuB,kBAAZzG,SAAoD,oBAArBA,QAAQ4G,SAAyBD,EAAI3G,QAAQ4G,SAASvD,EAAYtF,EAAQU,EAAKgI,QACpH,IAAK,IAAIlH,EAAI8D,EAAW5D,OAAS,EAAGF,GAAK,EAAGA,KAAS2G,EAAI7C,EAAW9D,MAAIoH,GAAKD,EAAI,EAAIR,EAAES,GAAKD,EAAI,EAAIR,EAAEnI,EAAQU,EAAKkI,GAAKT,EAAEnI,EAAQU,KAASkI,GAChJ,OAAOD,EAAI,GAAKC,GAAKhI,OAAOC,eAAeb,EAAQU,EAAKkI,GAAIA,IAEhE,SAAWw4M,GACPA,EAAQA,EAAQ,mBAAqB,GAAK,kBAC1CA,EAAQA,EAAQ,UAAY,GAAK,SACjCA,EAAQA,EAAQ,QAAU,GAAK,QAHnC,CAIGtuM,EAAQsuM,UAAYtuM,EAAQsuM,QAAU,KACzC,IAAIqzI,GAAgC,SAAU3rV,GAE1C,SAAS2rV,IACL,OAAkB,OAAX3rV,GAAmBA,EAAOzC,MAAMpC,KAAMW,YAAcX,KAoP/D,OAtPAswV,GAAaE,EAAgB3rV,GAI7B2rV,EAAej0V,UAAU+wV,UAAY,SAAUmD,EAAwBrtV,QACpD,IAAXA,IAAqBA,EAAS,IAClC,IAAI4qV,EAAkBhuV,KAAK0wV,mBAAmBttV,EAAOizI,WAAYjzI,EAAOu4R,YACpEg1D,EAAiB/wS,GAAEqqD,QAEvBjqG,KAAK4wV,eAAe5C,GAAkBhuV,KAAK6wV,eAAeztV,GAASpD,KAAK8wV,mBAAmB1tV,EAAQ4qV,GAAkBhuV,KAAK+wV,cAAc3tV,EAAQ4qV,GAAkBhuV,KAAKgxV,qBAAqB5tV,EAAQ4qV,GAAkBhuV,KAAKixV,YAAY7tV,EAAQ4qV,GAAkBhuV,KAAKkxV,wBAAwB9tV,EAAQ4qV,GAAkBhuV,KAAKmxV,cAAc/tV,IAC3U,OAAOutV,EAAeF,GAAwBznU,SAElDwnU,EAAej0V,UAAUuuP,WAAa,SAAU2lG,EAAwBrtV,EAAQ4qV,EAAiBx7U,GAC7F,IAAI4+U,EAAahuV,EAAOiuV,oBAAsB,WAAe,OAAO,GAChEvhP,EAAqB9vG,KAAK8vG,mBAC1BzG,EAAUyG,EAAmB0I,aAC7B5uG,EAAMkmG,EAAmB2I,SACzB5uG,EAAYimG,EAAmB4I,eAC/B44O,EAA0BxhP,EAAmBuuG,8BAC7CslI,EAAkB7zO,EAAmBu5F,yBACrCkoJ,EAAgCzhP,EAAmBmyG,oCACnDuvI,EAAaxxV,KAAKm/I,iBAAiB5oB,cAAgB/jH,EAAKsrI,WAAatrI,EAAK0oF,MAC1Eu2P,EAAgBruV,EAAOsuV,YAActuV,EAAOquV,cAC5CE,EAAwBJ,GAAiC/+U,EAAKsrI,UAC9D8zM,EAAmD,IAA1Bp/U,EAAKk/K,mBAA2B4/J,GAA2BK,GAIxF,GAHIF,GAAiBruV,EAAOsuV,YACxB9xS,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAK,4EAA8E,gCAEvHqrV,IAAepuV,EAAOquV,eAAiBG,GAA0BjO,IAClEvgV,EAAOyuV,eAAiBr/U,EAAKuhL,cAC7B3wL,EAAO0uV,eAAoC,QAAnBt/U,EAAK+8K,WAC7BnsL,EAAO2uV,kBAAuC,WAAnBv/U,EAAK+8K,WAHrC,CAQA,IAAIyiK,GAAiC,IAAhBx/U,EAAK4mC,MAC1B,IAAI44S,GAAmBx/U,EAAKsrI,UAA5B,CAGA,IAAIuzM,EAAqBD,EAAW,CAAE5+U,KAAMA,EAAM5I,IAAKA,EAAKy/F,QAASA,IACrE,IAAIgoP,EAAJ,CAGA,IAAIY,EAAiBxB,EAAuBb,eAI5C,GAHA5B,EAAgBzvV,SAAQ,SAAUmJ,EAAQxI,GACtC+yV,EAAezC,SAAS9nV,EAAQxI,EAAOsT,MAEvCpP,EAAO8uV,yBAA0B,CACjC,IAAI/9U,EAAU/Q,EAAO8uV,yBAAyB,CAAE1/U,KAAMA,EAAM5I,IAAKA,EAAKC,UAAWA,EAAWw/F,QAASA,IACjGl1F,GACAs8U,EAAuBvB,iBAAiB/6U,QAIpDq8U,EAAej0V,UAAU40V,cAAgB,SAAU/tV,GAC/C,OAAO,SAAUqtV,GACb,IAAIU,EAAgB/tV,EAAO+uV,cAAgB/uV,EAAO+tV,cAOlD,OANIA,IACI/tV,EAAO+uV,cACPvyS,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAK,8GAAgH,+BAE/JsqV,EAAuBvB,iBAAiBiC,IAErCV,IAGfD,EAAej0V,UAAUs0V,eAAiB,SAAUztV,GAChD,OAAO,SAAUqtV,GACb,IAAII,EAAiBztV,EAAOgvV,cAAgBhvV,EAAOytV,eAOnD,OANIA,IACIztV,EAAOgvV,cACPxyS,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAK,+GAAiH,+BAEhKsqV,EAAuBvB,iBAAiB2B,IAErCJ,IAGfD,EAAej0V,UAAUq0V,eAAiB,SAAU5C,GAChD,OAAO,SAAUyC,GAEb,OADAA,EAAuB1C,QAAQC,GACxByC,IAGfD,EAAej0V,UAAUu0V,mBAAqB,SAAU1tV,EAAQ4qV,GAC5D,IAAIjuV,EAAQC,KACZ,OAAO,SAAUywV,GACb,GAAKrtV,EAAOivV,uBAKHjvV,EAAOkvV,cACZ1yS,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAK,uGAAyG,mCANpH,CAChC,IAAI+yI,EAAyB,IAAI9mB,GAC7B6rB,EAAkBl+I,EAAMo5I,sBAAsBC,sBAAsB40M,EAAiBjuV,EAAMo/I,iBAAiB5E,sBAAuBrB,EAAwB,MAC/Jn5I,EAAMwyV,2BAA2Bt0M,EAAiBwyM,EAAwBrtV,EAAOyqV,4BAKrF,OAAO4C,IAGfD,EAAej0V,UAAUw0V,cAAgB,SAAU3tV,EAAQ4qV,GACvD,OAAO,SAAUyC,GACb,GAAKrtV,EAAO+yF,YAAe/yF,EAAOovV,kBAMzBpvV,EAAO+yF,YACZv2C,GAAEwoD,QAAO,WAAc,OAAOnlG,QAAQkD,KAAK,0FAA4F,iCAPtF,CACjD,IAAIssV,EAAoBhC,EAAuBf,iBAC/C1B,EAAgBzvV,SAAQ,SAAUmJ,EAAQxI,GACtCuzV,EAAkBjD,SAAS9nV,EAAQxI,OAAOG,MAMlD,OAAOoxV,IAGfD,EAAej0V,UAAUy0V,qBAAuB,SAAU5tV,EAAQ4qV,GAC9D,IAAIjuV,EAAQC,KACZ,OAAO,SAAUywV,GACb,IAAI3lG,EAAa/qP,EAAM+qP,WAAWrgP,KAAK1K,EAAO0wV,EAAwBrtV,EAAQ4qV,GAE9E,OADAjuV,EAAMsoP,eAAey6E,oBAAoBh4E,GAClC2lG,IAGfD,EAAej0V,UAAU00V,YAAc,SAAU7tV,EAAQ4qV,GACrD,IAAIjuV,EAAQC,KACZ,OAAO,SAAUywV,GAEb,IAAIv4M,EAAWn4I,EAAMm4I,SACjB+nE,EAAe/nE,EAASykC,UACxB+1K,EAAYzyI,IAAiB7uG,GAAUU,2BACvC6gP,EAAY1yI,IAAiB7uG,GAAUW,2BACvC6gP,GAAgCF,GAAatvV,EAAOyuV,aACpD/mG,EAAa/qP,EAAM+qP,WAAWrgP,KAAK1K,EAAO0wV,EAAwBrtV,EAAQ4qV,GAC9E,GAAIjuV,EAAMo/I,iBAAiB5oB,cACnBm8N,EACAx6M,EAAS6nM,iBAAiBj1F,GAI1B5yG,EAASptI,YAAYggP,QASzB,GAAI1nP,EAAOyvV,sBAAwBD,EAA8B,CAC7D,IAAI10H,EAAgBn+N,EAAM8vL,oBAAoBmX,mBAC9Ck3B,EAAc3/N,QAAQusP,QAMlB4nG,GAGKC,EAFLz6M,EAASm8I,8BAA8BvpC,GAMvC5yG,EAASptI,YAAYggP,GAIjC,OAAO2lG,IAGfD,EAAej0V,UAAU20V,wBAA0B,SAAU9tV,EAAQ4qV,GACjE,IAAIjuV,EAAQC,KACZ,OAAO,SAAUywV,GACb,IAAI3lG,EAAa/qP,EAAM+qP,WAAWrgP,KAAK1K,EAAO0wV,EAAwBrtV,EAAQ4qV,GAE9E,OADAjuV,EAAMsoP,eAAe06E,uBAAuBj4E,GACrC2lG,IAGfD,EAAej0V,UAAUm0V,mBAAqB,SAAUr6M,EAAYslJ,QAC7C,IAAftlJ,IAAyBA,GAAa,GAC1C,IAAI9f,EAAcv2H,KAAKm/I,iBAAiB5oB,cACxC,GAAIolK,GAAcA,EAAWl+R,OACzB,OAAOuC,KAAKm/I,iBAAiBrb,eAAe63J,GAEhD,GAAItlJ,IAAe9f,EAAa,CAE5B,IAAIp7B,EAAUn7F,KAAK8vG,mBAAmBuI,aAChCr4G,KAAKm/I,iBAAiBrb,eAAe,CAAC1yB,GAAUmB,uBAChD,GACN,OAAOpX,EAAQrnF,OAAO9T,KAAKm/I,iBAAiB3Y,wBAA0B,IAE1E,OAAOxmI,KAAKm/I,iBAAiBpjB,0BAEjCy0N,EAAej0V,UAAUg2V,2BAA6B,SAAUt0M,EAAiBwyM,EAAwB5C,GACrG,IAAIiF,EAA6B,GACjC70M,EAAgB1/I,SAAQ,SAAUsoQ,GAC9B,IAAIjiI,EAAciiI,EACbjiI,EAAYziB,aAGjByiB,EAAYziB,cAAc5jH,SAAQ,SAAUgiG,GAAM,OAAOuyP,EAA2BxzV,KAAKihG,SAEzF09C,EAAgBxgJ,OAAS,GAAKwgJ,EAAgB,aAAcn+B,IAC5D9/G,KAAK+yV,kBAAkBtC,EAAwBxyM,EAAiB4vM,GAEhEiF,GAA8BA,EAA2Br1V,OAAS,GAClEuC,KAAKuyV,2BAA2BO,EAA4BrC,EAAwB5C,IAG5F2C,EAAej0V,UAAUw2V,kBAAoB,SAAUtC,EAAwBxyM,EAAiB4vM,GAC5F,IAAI9tV,EAAQC,KACRgzV,EAAkBvC,EAAuBlB,yBACzC0D,EAAc,EAClBh1M,EAAgB1/I,SAAQ,SAAUsoQ,GAC9B,IACIjmQ,EADAgkI,EAAciiI,EAGdjmQ,EADAitV,EACOA,EAA2B,CAC9BjpN,YAAaA,EACbh7H,IAAK7J,EAAM+vG,mBAAmB2I,SAC9B5uG,UAAW9J,EAAM+vG,mBAAmB4I,eACpCrP,QAAStpG,EAAM+vG,mBAAmB0I,eAI/Bz4G,EAAMo/I,iBAAiBvP,6BAA6BhL,EAAa,UAE5EouN,EAAgBxD,SAAS5uV,GAAQ,GAAIqyV,IAAeruN,EAAYpkB,iBAAiB/iH,OAAS,OAGlG8yV,GAAc,CACV3hP,GAAU,0BACX4hP,EAAej0V,UAAW,6BAAyB,GACtDg0V,GAAc,CACV3hP,GAAU,qBACX4hP,EAAej0V,UAAW,wBAAoB,GACjDg0V,GAAc,CACV3hP,GAAU,aACX4hP,EAAej0V,UAAW,gBAAY,GACzCg0V,GAAc,CACV3hP,GAAU,mBACX4hP,EAAej0V,UAAW,sBAAkB,GAC/Cg0V,GAAc,CACV3hP,GAAU,wBACX4hP,EAAej0V,UAAW,2BAAuB,GACpDi0V,EAAiBD,GAAc,CAC3B7hP,GAAK,mBACN8hP,GACIA,EAvPwB,CAwPjC5pO,IAEEqoK,GAAkB,CAClB57K,WAAYxkG,EAAQmkG,YAAYi8K,gBAChClhL,MAAO,CAACmiP,GAAYM,KAGpB0C,GAAmB,OACnBC,GAA4B,WAC5B,SAASA,KA+DT,OA7DAA,EAAWC,aAAe,SAAU5nD,QACV,IAAlBA,IAA4BA,EAAgB,IAChD,IAAI6nD,EAAc,KACdC,EAAY,KACZrzV,EAAO,CAAC,WACPurS,EAAcnmR,UACfmmR,EAAcnmR,QAAU,OAExBmmR,EAAczwQ,UACd96B,EAAKX,KAAK,YAEVksS,EAAc+nD,YACdtzV,EAAKX,KAAK,cAEd,IAAIk0V,EAAMvzV,EAAKwH,KAAI,SAAUhL,GAAO,OAAOA,EAAM,KAAQ+uS,EAAc/uS,GAAO,OAASuU,KAAK,KAC5F,OAAOqiV,EAAc,OAASG,EAAM,IAAMF,GAE9CH,EAAWM,UAAY,SAAUC,EAAYC,GACzC,IAAI5zV,EAAQC,KACRG,EAAQ,GACRuzV,EAAWrtP,aACPqtP,EAAWrtP,WAAWutP,oBACtBF,EAAWrtP,WAAWutP,mBAAmBr1V,SAAQ,SAAUs1V,GACvDl3V,OAAOsD,KAAK4zV,EAAYpsV,KAAKlJ,SAAQ,SAAU9B,GAC3C0D,GAASJ,EAAM+zV,2BAA2BD,EAAY1wM,OAAS1mJ,EAAKo3V,EAAYpsV,IAAIhL,GAAMk3V,SAIlGD,EAAWrtP,WAAW0tP,QACtBp3V,OAAOsD,KAAKyzV,EAAWrtP,WAAW0tP,QAAQx1V,SAAQ,SAAU9B,GACxD0D,GAASJ,EAAM+zV,2BAA2Br3V,EAAKi3V,EAAWrtP,WAAW0tP,OAAOt3V,GAAMk3V,OAI9F,IAAInlV,EAAS,IAAMklV,EAAW9yV,KAAOT,EACrC,OAAKuzV,EAAW5rV,UAAmC,MAAvB4rV,EAAWM,SAGZ,MAAvBN,EAAWM,SACJxlV,EAAS,IAAMklV,EAAWM,SAAW,KAAON,EAAW9yV,KAAO,IAAMsyV,IAE/E1kV,GAAU,IAAM0kV,GACZQ,EAAW5rV,UACX4rV,EAAW5rV,SAASvJ,SAAQ,SAAUgiG,GAClC/xF,GAAUzO,EAAM0zV,UAAUlzP,EAAIozP,MAG/BnlV,EAAS,KAAOklV,EAAW9yV,KAAO,IAAMsyV,IAXpC1kV,EAAS,KAAO0kV,IAa/BC,EAAWW,2BAA6B,SAAUr3V,EAAKC,EAAOi3V,GAC1D,IAAKj3V,GAAmB,KAAVA,GAA0B,IAAVA,EAC1B,MAAO,GAEX,IAAIu3V,EAAWv3V,EAMf,MALwB,mBAAZ,GACJi3V,IACAM,EAAWN,EAAmBj3V,IAG/B,IAAMD,EAAM,KAAQw3V,EAAW,KAEnCd,EAhEoB,GAqE3Be,GAAW,IAAIC,YAAY,CAC3B,EAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,WAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,WAAY,SAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,WAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,WAAY,SAAY,WAC5D,WAAY,WAAY,SAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,WAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,UAAY,WAAY,WAAY,WAC5D,UAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,WAAY,WAAY,SAAY,WAAY,WAC5D,WAAY,SAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,WAAY,WAAY,WAC5D,WAAY,SAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,UAAY,WAAY,WAC5D,WAAY,UAAY,WAAY,WAAY,WAAY,UAC5D,WAAY,WAAY,WAAY,YAEpCC,GAA8B,WAC9B,SAASA,KA0JT,OAxJAA,EAAaC,WAAa,SAAUC,GAChCA,EAAM/1V,QAAQyB,KAAKu0V,UAAU9pV,KAAKzK,QAEtCo0V,EAAaG,UAAY,SAAU3kU,GAC/B5vB,KAAKw0V,QAAQl1V,KAAK,CACdswB,KAAMA,EACN6kU,QAAS,IAAIp4U,KACbq4U,UAAU,KAGlBN,EAAaO,QAAU,SAAU/kU,EAAMzb,EAASugV,QAC3B,IAAbA,IAAuBA,GAAW,GACtC10V,KAAKwqB,MAAMlrB,KAAK,CACZswB,KAAMA,EACN6kU,QAAS,IAAIp4U,KACblI,QAASA,EACTugV,SAAUA,KAGlBN,EAAaQ,WAAa,SAAUC,QACf,IAAbA,IAAuBA,EAAW,mBACtC,IAAIC,EAAa90V,KAAK+0V,kBAClBC,EAAch1V,KAAKi1V,gBAAgBH,GAEvC,OADA90V,KAAKk1V,cACE,IAAIppV,KAAK,CAACkpV,GAAc,CAAEv1V,KAAMo1V,KAE3CT,EAAac,YAAc,WACvBl1V,KAAKw0V,QAAU,GACfx0V,KAAKwqB,MAAQ,IAEjB4pU,EAAaW,gBAAkB,SAAUI,QACvB,IAAVA,IAAoBA,EAAQ,IAMhC,IALA,IAAIC,EAAap1V,KAAKw0V,QAAQ1gV,OAAO9T,KAAKwqB,OACtC1X,EAAMsiV,EAAW33V,OACjB43V,EAAS,GACTC,EAAK,EACLC,EAAK,EACA/hQ,EAAK,EAAGgiQ,EAAeJ,EAAY5hQ,EAAKgiQ,EAAa/3V,OAAQ+1F,IAAM,CACxE,IAAIiiQ,EAAcD,EAAahiQ,GAC3BlG,EAAKttF,KAAK01V,UAAUD,EAAaH,GAAKK,EAAaroQ,EAAGqoQ,WAAYC,EAAetoQ,EAAGsoQ,aAAczhV,EAAUm5E,EAAGn5E,QACnHmhV,GAAMK,EAAWl4V,OAAS0W,EAAQ1W,OAClC83V,GAAMK,EAAan4V,OACnB03V,GAASQ,EAAaxhV,EACtBkhV,GAAUO,EAEd,IAAIC,EAAQ71V,KAAK81V,eAAehjV,EAAKyiV,EAAID,GACzC,OAAOH,EAAQE,EAASQ,GAE5BzB,EAAasB,UAAY,SAAUD,EAAaroU,GAC5C,IAAIjZ,EAAUshV,EAAYthV,QAASyb,EAAO6lU,EAAY7lU,KAAM6kU,EAAUgB,EAAYhB,QAASC,EAAWe,EAAYf,SAC9GhiO,EAAc9yE,GAAE8yE,YAAa2oB,EAAWz7F,GAAEy7F,SAC1C06M,EAAUrjO,EAAY9iG,GACtBomU,EAASD,IAAYnmU,EACrBlU,EAAO1b,KAAKi2V,YAAYxB,GACxBlyU,EAAKviB,KAAKk2V,YAAYzB,GACtB0B,EAAc,GAClB,GAAIH,EAAQ,CACR,IAAII,EAAkB/6M,EAAS,EAAG,GAAKA,EAASr7I,KAAKq2V,kBAAkBN,GAAU,GAAKA,EACtFI,EAAc,KAAa96M,EAAS+6M,EAAgB34V,OAAQ,GAAK24V,EAErE,IAAI9oQ,EAAMn5E,EAAqCnU,KAAKs2V,oBAAoBniV,EAASugV,GAA7D,CAAE9oU,KAAM,EAAGzX,QAAS,IAAoDyX,EAAO0hE,EAAG1hE,KAAM2qU,EAAmBjpQ,EAAGn5E,QAC9H2V,EAAS,QACRksU,EAAS,OAAa,QACvB,OACA36M,EAAS3/H,EAAM,GACf2/H,EAAS94H,EAAI,GACb84H,EAASzvH,EAAO5rB,KAAKq2V,kBAAkBE,GAAoB,EAAG,GAC9Dl7M,EAASzvH,EAAM,GACfyvH,EAASzvH,EAAM,GACfyvH,EAAS06M,EAAQt4V,OAAQ,GACzB49I,EAAS86M,EAAY14V,OAAQ,GAC7Bk4V,EAAa,OAAe7rU,EAASisU,EAAUI,EAC/CP,EAAe,UAEf9rU,EAFe,gBAMd3V,EAAU,WAAqB,WAChCknI,EAASjuH,EAAQ,GACjB2oU,EACAI,EACJ,MAAO,CAAER,WAAYA,EAAYC,aAAcA,EAAczhV,QAASoiV,GAAoB,KAE9FnC,EAAakC,oBAAsB,SAAUniV,EAASugV,GAMlD,YALiB,IAAbA,IAAuBA,GAAW,GAClCA,IACAvgV,EAAUA,EAAQd,MAAM,YAAY,IAExCc,EAAUugV,EAAW8B,KAAKriV,GAAWA,EAC9B,CACHyX,KAAMzX,EAAQ1W,OACd0W,QAASA,IAGjBigV,EAAa0B,eAAiB,SAAUW,EAAMC,EAAMC,GAChD,IAAIt7M,EAAWz7F,GAAEy7F,SACjB,MAAO,eAGHA,EAASo7M,EAAM,GACfp7M,EAASo7M,EAAM,GACfp7M,EAASq7M,EAAM,GACfr7M,EAASs7M,EAAM,GACf,QAERvC,EAAaa,gBAAkB,SAAU9gV,GAErC,IADA,IAAIyiV,EAAQ,IAAI5jV,WAAWmB,EAAQ1W,QAC1BF,EAAI,EAAGA,EAAIq5V,EAAMn5V,OAAQF,IAC9Bq5V,EAAMr5V,GAAK4W,EAAQpD,WAAWxT,GAElC,OAAOq5V,GAEXxC,EAAaiC,kBAAoB,SAAUliV,GACvC,IAAKA,EAAQ1W,OACT,OAAO,EAIX,IAFA,IAAImuB,EAAOzX,EAAQ1W,OACfo5V,EAAW,IAAI7jV,WAAW4Y,GACrBruB,EAAI,EAAGA,EAAIquB,EAAMruB,IACtBs5V,EAASt5V,GAAK4W,EAAQpD,WAAWxT,GAErC,IAAIu5V,GAAM,EACNvpV,EAAI,EACJ7K,EAAI,EACJgM,EAAI,EACR,IAASnR,EAAI,EAAGA,EAAIquB,EAAMruB,IACtBgQ,EAAIspV,EAASt5V,GACbmF,EAAgB,KAAXo0V,EAAMvpV,GACXmB,EAAIwlV,GAASxxV,GACbo0V,EAAOA,IAAQ,EAAKpoV,EAExB,OAAe,EAARooV,GAEX1C,EAAa6B,YAAc,SAAUx6U,GACjC,IAAIC,EAAOD,EAAK+L,WAKhB,OAJA9L,IAAS,EACTA,GAAcD,EAAKgM,aACnB/L,IAAS,EACTA,GAAcD,EAAKiM,aAAe,EAC3BhM,GAEX04U,EAAa8B,YAAc,SAAUz6U,GACjC,IAAI8G,EAAK9G,EAAKe,cAAgB,KAK9B,OAJA+F,IAAO,EACPA,GAAW9G,EAAKgB,WAAa,EAC7B8F,IAAO,EACPA,GAAU9G,EAAKc,UACRgG,GAEX6xU,EAAaI,QAAU,GACvBJ,EAAa5pU,MAAQ,GACd4pU,EA3JsB,GA8JjCnhP,GAAeC,SAAS6gO,IAA0B,GAClD9gO,GAAeC,SAAS0gO,IAAwB,GAChD3gO,GAAeC,SAAS+7K,IAAiB,GAEzCpgR,EAAQ8nP,gBAAkBA,GAC1B9nP,EAAQmvT,cAAgBA,GACxBnvT,EAAQ+oP,WAAaA,GACrB/oP,EAAQksT,cAAgBA,GACxBlsT,EAAQ2jT,SAAWA,GACnB3jT,EAAQy/S,iBAAmBA,GAC3Bz/S,EAAQusT,mBAAqBA,GAC7BvsT,EAAQgtT,aAAeA,GACvBhtT,EAAQinT,gBAAkBA,GAC1BjnT,EAAQ2mT,iBAAmBA,GAC3B3mT,EAAQ4hT,QAAUA,GAClB5hT,EAAQi7J,UAAYA,GACpBj7J,EAAQunS,cAAgBA,GACxBvnS,EAAQ0uT,SAAWA,GACnB1uT,EAAQonT,SAAWA,GACnBpnT,EAAQuxT,eAAiBA,GACzBvxT,EAAQ2uS,oBAAsBA,GAC9B3uS,EAAQmgM,8BAAgCA,GACxCngM,EAAQkhM,yBAA2BA,GACnClhM,EAAQ2zS,sBAAwBA,GAChC3zS,EAAQo8R,oBAAsBA,GAC9Bp8R,EAAQ+/F,UAAYA,GACpB//F,EAAQqrU,qBAAuBA,GAC/BrrU,EAAQ+9U,YAAcA,GACtB/9U,EAAQ4+U,2BAA6BA,GACrC5+U,EAAQ6/F,KAAOA,GACf7/F,EAAQ+3G,SAAWA,GACnB/3G,EAAQs8P,oBAAsBA,GAC9Bt8P,EAAQ+8P,eAAiBA,GACzB/8P,EAAQwjO,SAAWA,GACnBxjO,EAAQklS,sBAAwBA,GAChCllS,EAAQ8yT,kBAAoBA,GAC5B9yT,EAAQqtN,YAAcA,GACtBrtN,EAAQ6oL,2BAA6BA,GACrC7oL,EAAQu/I,WAAaA,GACrBv/I,EAAQw/I,MAAQA,GAChBx/I,EAAQklG,OAASA,GACjBllG,EAAQoxN,UAAYA,GACpBpxN,EAAQkmH,iBAAmBA,GAC3BlmH,EAAQ44G,cAAgBA,GACxB54G,EAAQixG,YAAcA,GACtBjxG,EAAQ6zF,iBAAmBA,EAC3B7zF,EAAQytI,YAAcA,GACtBztI,EAAQjP,UAAYA,GACpBiP,EAAQw9I,cAAgBA,GACxBx9I,EAAQuiG,UAAYA,GACpBviG,EAAQ07F,QAAUA,GAClB17F,EAAQu8T,mBAAqBA,GAC7Bv8T,EAAQmlP,gBAAkBA,GAC1BnlP,EAAQqhV,WAAaA,GACrBrhV,EAAQogR,gBAAkBA,GAC1BpgR,EAAQy2K,WAAaA,GACrBz2K,EAAQquI,sBAAwBA,GAChCruI,EAAQ4/U,WAAaA,GACrB5/U,EAAQ6vL,mBAAqBA,GAC7B7vL,EAAQugS,YAAcA,GACtBvgS,EAAQ4yS,YAAcA,GACtB5yS,EAAQugG,aAAeA,GACvBvgG,EAAQ89G,OAASA,GACjB99G,EAAQqyR,kBAAoBA,GAC5BryR,EAAQmkQ,cAAgBA,GACxBnkQ,EAAQozP,qBAAuBA,GAC/BpzP,EAAQ4zP,sBAAwBA,GAChC5zP,EAAQ+zR,gBAAkBA,GAC1B/zR,EAAQyiU,KAAOA,GACfziU,EAAQi/Q,QAAUA,GAClBj/Q,EAAQ89Q,aAAeA,GACvB99Q,EAAQwyQ,mBAAqBA,GAC7BxyQ,EAAQq/R,SAAWA,GACnBr/R,EAAQ+9R,mBAAqBA,GAC7B/9R,EAAQ0iU,gBAAkBA,GAC1B1iU,EAAQykK,aAAeA,GACvBzkK,EAAQuuM,mBAAqBA,GAC7BvuM,EAAQ2hV,eAAiBA,GACzB3hV,EAAQ65L,kBAAoBA,GAC5B75L,EAAQujH,uBAAyBA,GACjCvjH,EAAQ2kK,YAAcA,GACtB3kK,EAAQq+P,gBAAkBA,GAC1Br+P,EAAQqgQ,wBAA0BA,GAClCrgQ,EAAQy3T,oBAAsBA,GAC9Bz3T,EAAQ2iQ,eAAiBA,GACzB3iQ,EAAQ81P,cAAgBA,GACxB91P,EAAQ2vI,gBAAkBA,GAC1B3vI,EAAQk9R,wBAA0BA,GAClCl9R,EAAQglK,QAAUA,GAClBhlK,EAAQkiQ,QAAUA,GAClBliQ,EAAQ8iM,oBAAsBA,GAC9B9iM,EAAQ+7R,OAASA,GACjB/7R,EAAQ67R,cAAgBA,GACxB77R,EAAQkqK,sBAAwBA,GAChClqK,EAAQokG,eAAiBA,GACzBpkG,EAAQskS,kBAAoBA,GAC5BtkS,EAAQo4P,qBAAuBA,GAC/Bp4P,EAAQujM,aAAeA,GACvBvjM,EAAQ06J,eAAiBA,GACzB16J,EAAQigG,SAAWA,GACnBjgG,EAAQ+zG,oBAAsBA,GAC9B/zG,EAAQ+qS,gBAAkBA,GAC1B/qS,EAAQuzT,eAAiBA,GACzBvzT,EAAQikK,eAAiBA,GACzBjkK,EAAQghO,mBAAqBA,GAC7BhhO,EAAQ2iM,sBAAwBA,GAChC3iM,EAAQs3R,aAAeA,GACvBt3R,EAAQyiM,oBAAsBA,GAC9BziM,EAAQy/F,cAAgBA,GACxBz/F,EAAQs/F,aAAeA,GACvBt/F,EAAQ2/F,WAAaA,GACrB3/F,EAAQ+8I,aAAeA,GACvB/8I,EAAQysK,eAAiBA,GACzBzsK,EAAQogG,UAAYA,GACpBpgG,EAAQokK,cAAgBA,GACxBpkK,EAAQukK,YAAcA,GACtBvkK,EAAQq9S,sBAAwBA,GAChCr9S,EAAQ2zN,cAAgBA,GACxB3zN,EAAQo/K,QAAUA,GAClBp/K,EAAQi5T,aAAeA,GACvBj5T,EAAQw6T,mBAAqBA,GAC7Bx6T,EAAQw7T,cAAgBA,GACxBx7T,EAAQsyT,iBAAmBA,GAC3BtyT,EAAQi3O,YAAcA,GACtBj3O,EAAQu1K,aAAeA,GACvBv1K,EAAQ+nS,qBAAuBA,GAC/B/nS,EAAQgiM,iBAAmBA,GAC3BhiM,EAAQ25S,kBAAoBA,GAC5B35S,EAAQmvN,oBAAsBA,GAC9BnvN,EAAQmmP,eAAiBA,GACzBnmP,EAAQuwK,aAAeA,GACvBvwK,EAAQ8iS,eAAiBA,GACzB9iS,EAAQggS,oBAAsBA,GAC9BhgS,EAAQooS,eAAiBA,GACzBpoS,EAAQ6nU,aAAeA,GACvB7nU,EAAQizR,gBAAkBA,GAC1BjzR,EAAQk8I,aAAeA,GACvBl8I,EAAQmmK,eAAiBA,GACzBnmK,EAAQ4nM,WAAaA,GACrB5nM,EAAQ2pM,mBAAqBA,GAC7B3pM,EAAQk8J,MAAQA,GAChBl8J,EAAQ28J,eAAiBA,GACzB38J,EAAQw4K,cAAgBA,GACxBx4K,EAAQ4qL,qBAAuBA,GAC/B5qL,EAAQ8pM,sBAAwBA,GAChC9pM,EAAQ6tS,WAAaA,GACrB7tS,EAAQinS,sBAAwBA,GAChCjnS,EAAQ2nQ,aAAeA,GACvB3nQ,EAAQ0nS,0BAA4BA,GACpC1nS,EAAQwpU,YAAcA,GACtBxpU,EAAQskV,WAAaA,GACrBtkV,EAAQulV,aAAeA,GACvBvlV,EAAQ+wC,EAAIA,GACZ/wC,EAAQ+qU,uBAAyBA,GACjC/qU,EAAQmlU,6BAA+BA,GACvCnlU,EAAQimU,kCAAoCA,GAC5CjmU,EAAQipU,kBAAoBA,GAC5BjpU,EAAQ0qJ,cAAgBA,K,sGC/j9CxB","file":"js/chunk-30147192.9fa71fdd.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","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _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}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** vue-property-decorator verson 8.5.1 MIT LICENSE copyright 2020 kaorun343 */\n/// \n'use strict';\nimport Vue from 'vue';\nimport Component, { createDecorator, mixins } from 'vue-class-component';\nexport { Component, Vue, mixins as Mixins };\n/** Used for keying reactive provide/inject properties */\nvar reactiveInjectKey = '__reactiveInject__';\n/**\n * decorator of an inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function Inject(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[key] = options || key;\n }\n });\n}\n/**\n * decorator of a reactive inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function InjectReactive(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n var fromKey_1 = !!options ? options.from || options : key;\n var defaultVal_1 = (!!options && options.default) || undefined;\n if (!componentOptions.computed)\n componentOptions.computed = {};\n componentOptions.computed[key] = function () {\n var obj = this[reactiveInjectKey];\n return obj ? obj[fromKey_1] : defaultVal_1;\n };\n componentOptions.inject[reactiveInjectKey] = reactiveInjectKey;\n }\n });\n}\nfunction produceProvide(original) {\n var provide = function () {\n var _this = this;\n var rv = typeof original === 'function' ? original.call(this) : original;\n rv = Object.create(rv || null);\n // set reactive services (propagates previous services if necessary)\n rv[reactiveInjectKey] = this[reactiveInjectKey] || {};\n for (var i in provide.managed) {\n rv[provide.managed[i]] = this[i];\n }\n var _loop_1 = function (i) {\n rv[provide.managedReactive[i]] = this_1[i]; // Duplicates the behavior of `@Provide`\n Object.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i], {\n enumerable: true,\n get: function () { return _this[i]; },\n });\n };\n var this_1 = this;\n for (var i in provide.managedReactive) {\n _loop_1(i);\n }\n return rv;\n };\n provide.managed = {};\n provide.managedReactive = {};\n return provide;\n}\nfunction needToProduceProvide(original) {\n return (typeof original !== 'function' ||\n (!original.managed && !original.managedReactive));\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function Provide(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of a reactive provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function ProvideReactive(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n // inject parent reactive services (if any)\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject = componentOptions.inject || {};\n componentOptions.inject[reactiveInjectKey] = {\n from: reactiveInjectKey,\n default: {},\n };\n }\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managedReactive[k] = key || k;\n });\n}\n/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nfunction applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n/**\n * decorator of model\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function Model(event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n })(target, key);\n };\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n/**\n * decorator of a synced prop\n * @param propName the name to interface with from outside, must be different from decorated property\n * @param options the options for the synced prop\n * @return PropertyDecorator | void\n */\nexport function PropSync(propName, options) {\n if (options === void 0) { options = {}; }\n // @ts-ignore\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[propName] = options;\n (componentOptions.computed || (componentOptions.computed = {}))[k] = {\n get: function () {\n return this[propName];\n },\n set: function (value) {\n // @ts-ignore\n this.$emit(\"update:\" + propName, value);\n },\n };\n })(target, key);\n };\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nexport function Emit(event) {\n return function (_target, propertyKey, descriptor) {\n var key = hyphenate(propertyKey);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n var emitName = event || key;\n if (returnValue === undefined) {\n if (args.length === 0) {\n _this.$emit(emitName);\n }\n else if (args.length === 1) {\n _this.$emit(emitName, args[0]);\n }\n else {\n _this.$emit.apply(_this, [emitName].concat(args));\n }\n }\n else {\n if (args.length === 0) {\n _this.$emit(emitName, returnValue);\n }\n else if (args.length === 1) {\n _this.$emit(emitName, returnValue, args[0]);\n }\n else {\n _this.$emit.apply(_this, [emitName, returnValue].concat(args));\n }\n }\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(emit);\n }\n else {\n emit(returnValue);\n }\n return returnValue;\n };\n };\n}\n/**\n * decorator of a ref prop\n * @param refKey the ref key defined in template\n */\nexport function Ref(refKey) {\n return createDecorator(function (options, key) {\n options.computed = options.computed || {};\n options.computed[key] = {\n cache: false,\n get: function () {\n return this.$refs[refKey || key];\n },\n };\n });\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n","import Vue from 'vue';\nvar VueComponentFactory = /** @class */ (function () {\n function VueComponentFactory() {\n }\n VueComponentFactory.getComponentType = function (parent, component) {\n if (typeof component === 'string') {\n var componentInstance = this.searchForComponentInstance(parent, component);\n if (!componentInstance) {\n console.error(\"Could not find component with name of \" + component + \". Is it in Vue.components?\");\n return null;\n }\n return Vue.extend(componentInstance);\n }\n else {\n // assume a type\n return component;\n }\n };\n VueComponentFactory.createAndMountComponent = function (params, componentType, parent) {\n var details = {\n data: {\n params: Object.freeze(params),\n },\n parent: parent,\n };\n if (parent.componentDependencies) {\n parent.componentDependencies.forEach(function (dependency) {\n return details[dependency] = parent[dependency];\n });\n }\n var component = new componentType(details);\n component.$mount();\n return component;\n };\n VueComponentFactory.searchForComponentInstance = function (parent, component, maxDepth) {\n if (maxDepth === void 0) { maxDepth = 10; }\n var componentInstance = null;\n var currentParent = parent.$parent;\n var depth = 0;\n while (!componentInstance &&\n currentParent &&\n currentParent.$options &&\n (++depth < maxDepth)) {\n componentInstance = currentParent.$options.components[component];\n currentParent = currentParent.$parent;\n }\n if (!componentInstance) {\n console.error(\"Could not find component with name of \" + component + \". Is it in Vue.components?\");\n return null;\n }\n return componentInstance;\n };\n return VueComponentFactory;\n}());\nexport { VueComponentFactory };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { BaseComponentWrapper, Bean } from 'ag-grid-community';\nimport { VueComponentFactory } from './VueComponentFactory';\nvar VueFrameworkComponentWrapper = /** @class */ (function (_super) {\n __extends(VueFrameworkComponentWrapper, _super);\n function VueFrameworkComponentWrapper(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n return _this;\n }\n VueFrameworkComponentWrapper.prototype.createWrapper = function (component) {\n var that = this;\n var DynamicComponent = /** @class */ (function (_super) {\n __extends(DynamicComponent, _super);\n function DynamicComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DynamicComponent.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n };\n DynamicComponent.prototype.hasMethod = function (name) {\n return wrapper.getFrameworkComponentInstance()[name] != null;\n };\n DynamicComponent.prototype.callMethod = function (name, args) {\n var componentInstance = this.getFrameworkComponentInstance();\n var frameworkComponentInstance = wrapper.getFrameworkComponentInstance();\n return frameworkComponentInstance[name].apply(componentInstance, args);\n };\n DynamicComponent.prototype.addMethod = function (name, callback) {\n wrapper[name] = callback;\n };\n DynamicComponent.prototype.overrideProcessing = function (methodName) {\n return that.parent.autoParamsRefresh && methodName === 'refresh';\n };\n DynamicComponent.prototype.processMethod = function (methodName, args) {\n if (methodName === 'refresh') {\n this.getFrameworkComponentInstance().params = args[0];\n }\n if (this.hasMethod(methodName)) {\n return this.callMethod(methodName, args);\n }\n return methodName === 'refresh';\n };\n DynamicComponent.prototype.createComponent = function (params) {\n return that.createComponent(component, params);\n };\n return DynamicComponent;\n }(VueComponent));\n var wrapper = new DynamicComponent();\n return wrapper;\n };\n VueFrameworkComponentWrapper.prototype.createComponent = function (component, params) {\n var componentType = VueComponentFactory.getComponentType(this.parent, component);\n if (!componentType) {\n return;\n }\n return VueComponentFactory.createAndMountComponent(params, componentType, this.parent);\n };\n VueFrameworkComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {\n return function () {\n if (wrapper.overrideProcessing(methodName)) {\n return wrapper.processMethod(methodName, arguments);\n }\n if (wrapper.hasMethod(methodName)) {\n return wrapper.callMethod(methodName, arguments);\n }\n if (mandatory) {\n console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');\n }\n return null;\n };\n };\n VueFrameworkComponentWrapper.prototype.destroy = function () {\n this.parent = null;\n };\n VueFrameworkComponentWrapper = __decorate([\n Bean('frameworkComponentWrapper')\n ], VueFrameworkComponentWrapper);\n return VueFrameworkComponentWrapper;\n}(BaseComponentWrapper));\nexport { VueFrameworkComponentWrapper };\nvar VueComponent = /** @class */ (function () {\n function VueComponent() {\n }\n VueComponent.prototype.getGui = function () {\n return this.component.$el;\n };\n VueComponent.prototype.destroy = function () {\n this.component.$destroy();\n };\n VueComponent.prototype.getFrameworkComponentInstance = function () {\n return this.component;\n };\n VueComponent.prototype.init = function (params) {\n this.component = this.createComponent(params);\n };\n return VueComponent;\n}());\n","import { ComponentUtil } from 'ag-grid-community';\nexport var getAgGridProperties = function () {\n var props = {\n gridOptions: {\n default: function () {\n return {};\n },\n },\n rowDataModel: undefined,\n };\n var watch = {\n rowDataModel: function (currentValue, previousValue) {\n this.processChanges('rowData', currentValue, previousValue);\n },\n };\n ComponentUtil.ALL_PROPERTIES.forEach(function (propertyName) {\n props[propertyName] = {};\n watch[propertyName] = function (currentValue, previousValue) {\n this.processChanges(propertyName, currentValue, previousValue);\n };\n });\n var model = {\n prop: 'rowDataModel',\n event: 'data-model-changed',\n };\n return [props, watch, model];\n};\n","import { ColDefUtil } from 'ag-grid-community';\nvar AgGridColumn = /** @class */ (function () {\n function AgGridColumn() {\n }\n AgGridColumn.hasChildColumns = function (slots) {\n return slots && slots.default && slots.default.length > 0;\n };\n AgGridColumn.mapChildColumnDefs = function (slots) {\n return slots.default.map(function (column) {\n return AgGridColumn.toColDef(column);\n });\n };\n AgGridColumn.toColDef = function (column) {\n var colDef = AgGridColumn.createColDefFromGridColumn(column);\n if (column.children && column.children.length > 0) {\n colDef.children = AgGridColumn.getChildColDefs(column.children);\n }\n return colDef;\n };\n AgGridColumn.getChildColDefs = function (columnChildren) {\n return columnChildren.map(function (column) {\n return AgGridColumn.createColDefFromGridColumn(column);\n });\n };\n AgGridColumn.createColDefFromGridColumn = function (column) {\n var colDef = {};\n AgGridColumn.assign(colDef, column.data.attrs);\n delete colDef.children;\n // booleans passed down just as is are here as property=\"\"\n // convert boolean props to a boolean here\n ColDefUtil.BOOLEAN_PROPERTIES.forEach(function (property) {\n var colDefAsAny = colDef;\n if (colDefAsAny[property] === '') {\n colDefAsAny[property] = true;\n }\n });\n return colDef;\n };\n AgGridColumn.assign = function (colDef, from) {\n // effectively Object.assign - here for IE compatibility\n return [from].reduce(function (r, o) {\n Object.keys(o).forEach(function (k) {\n r[k] = o[k];\n });\n return r;\n }, colDef);\n };\n return AgGridColumn;\n}());\nexport { AgGridColumn };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Bean, ComponentUtil, Grid } from 'ag-grid-community';\nimport { VueFrameworkComponentWrapper } from './VueFrameworkComponentWrapper';\nimport { getAgGridProperties } from './Utils';\nimport { AgGridColumn } from './AgGridColumn';\nvar _a = getAgGridProperties(), props = _a[0], watch = _a[1], model = _a[2];\nvar AgGridVue = /** @class */ (function (_super) {\n __extends(AgGridVue, _super);\n function AgGridVue() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.gridCreated = false;\n _this.isDestroyed = false;\n _this.gridReadyFired = false;\n _this.emitRowModel = null;\n return _this;\n }\n AgGridVue_1 = AgGridVue;\n AgGridVue.kebabProperty = function (property) {\n return property.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n };\n // noinspection JSUnusedGlobalSymbols, JSMethodCanBeStatic\n AgGridVue.prototype.render = function (h) {\n return h('div');\n };\n AgGridVue.prototype.globalEventListener = function (eventType, event) {\n if (this.isDestroyed) {\n return;\n }\n if (eventType === 'gridReady') {\n this.gridReadyFired = true;\n }\n this.updateModelIfUsed(eventType);\n // only emit if someone is listening\n // we allow both kebab and camelCase event listeners, so check for both\n var kebabName = AgGridVue_1.kebabProperty(eventType);\n if (this.$listeners[kebabName]) {\n this.$emit(kebabName, event);\n }\n else if (this.$listeners[eventType]) {\n this.$emit(eventType, event);\n }\n };\n AgGridVue.prototype.processChanges = function (propertyName, currentValue, previousValue) {\n if (this.gridCreated) {\n if (this.skipChange(propertyName, currentValue, previousValue)) {\n return;\n }\n var changes = {};\n changes[propertyName] = {\n currentValue: currentValue,\n previousValue: previousValue,\n };\n ComponentUtil.processOnChange(changes, this.gridOptions, this.gridOptions.api, this.gridOptions.columnApi);\n }\n };\n // noinspection JSUnusedGlobalSymbols\n AgGridVue.prototype.mounted = function () {\n var _this = this;\n // we debounce the model update to prevent a flood of updates in the event there are many individual\n // cell/row updates\n this.emitRowModel = this.debounce(function () {\n _this.$emit('data-model-changed', Object.freeze(_this.getRowData()));\n }, 20);\n var frameworkComponentWrapper = new VueFrameworkComponentWrapper(this);\n var gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this);\n this.checkForBindingConflicts();\n gridOptions.rowData = this.getRowDataBasedOnBindings();\n if (AgGridColumn.hasChildColumns(this.$slots)) {\n gridOptions.columnDefs = AgGridColumn.mapChildColumnDefs(this.$slots);\n }\n var gridParams = {\n globalEventListener: this.globalEventListener.bind(this),\n providedBeanInstances: {\n frameworkComponentWrapper: frameworkComponentWrapper,\n },\n modules: this.modules,\n };\n new Grid(this.$el, gridOptions, gridParams);\n this.gridCreated = true;\n };\n // noinspection JSUnusedGlobalSymbols\n AgGridVue.prototype.destroyed = function () {\n if (this.gridCreated) {\n if (this.gridOptions.api) {\n this.gridOptions.api.destroy();\n }\n this.isDestroyed = true;\n }\n };\n AgGridVue.prototype.checkForBindingConflicts = function () {\n var thisAsAny = this;\n if ((thisAsAny.rowData || this.gridOptions.rowData) &&\n thisAsAny.rowDataModel) {\n console.warn('ag-grid: Using both rowData and rowDataModel. rowData will be ignored.');\n }\n };\n AgGridVue.prototype.getRowData = function () {\n var rowData = [];\n this.gridOptions.api.forEachNode(function (rowNode) {\n rowData.push(rowNode.data);\n });\n return rowData;\n };\n AgGridVue.prototype.updateModelIfUsed = function (eventType) {\n if (this.gridReadyFired &&\n this.$listeners['data-model-changed'] &&\n AgGridVue_1.ROW_DATA_EVENTS.indexOf(eventType) !== -1) {\n if (this.emitRowModel) {\n this.emitRowModel();\n }\n }\n };\n AgGridVue.prototype.getRowDataBasedOnBindings = function () {\n var thisAsAny = this;\n var rowDataModel = thisAsAny.rowDataModel;\n return rowDataModel ? rowDataModel :\n thisAsAny.rowData ? thisAsAny.rowData : thisAsAny.gridOptions.rowData;\n };\n /*\n * Prevents an infinite loop when using v-model for the rowData\n */\n AgGridVue.prototype.skipChange = function (propertyName, currentValue, previousValue) {\n if (this.gridReadyFired &&\n propertyName === 'rowData' &&\n this.$listeners['data-model-changed']) {\n if (currentValue === previousValue) {\n return true;\n }\n if (currentValue && previousValue) {\n var currentRowData = currentValue;\n var previousRowData = previousValue;\n if (currentRowData.length === previousRowData.length) {\n for (var i = 0; i < currentRowData.length; i++) {\n if (currentRowData[i] !== previousRowData[i]) {\n return false;\n }\n }\n return true;\n }\n }\n }\n return false;\n };\n AgGridVue.prototype.debounce = function (func, delay) {\n var timeout;\n return function () {\n var later = function () {\n func();\n };\n window.clearTimeout(timeout);\n timeout = window.setTimeout(later, delay);\n };\n };\n var AgGridVue_1;\n AgGridVue.ROW_DATA_EVENTS = ['rowDataChanged', 'rowDataUpdated', 'cellValueChanged', 'rowValueChanged'];\n __decorate([\n Prop(Boolean)\n ], AgGridVue.prototype, \"autoParamsRefresh\", void 0);\n __decorate([\n Prop({ default: function () { return []; } })\n ], AgGridVue.prototype, \"componentDependencies\", void 0);\n __decorate([\n Prop({ default: function () { return []; } })\n ], AgGridVue.prototype, \"modules\", void 0);\n AgGridVue = AgGridVue_1 = __decorate([\n Bean('agGridVue'),\n Component({\n props: props,\n watch: watch,\n model: model,\n })\n ], AgGridVue);\n return AgGridVue;\n}(Vue));\nexport { AgGridVue };\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\
\"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)(?:\\\\w+:)?'+f+'>',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*);\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\" + align + \">\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"
\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"
\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"
\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find \");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6