/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
var DO_NOT_EXPORT_CODEPAGE = true;
var cptable = {
    version: "1.15.0"
};
cptable[437] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[620] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[737] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[850] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[852] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[857] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[861] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[865] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[866] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[874] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[895] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[932] = function() {
    var e = [], r = {}, t = [], a;
    t[0] = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ��������������������������������".split("");
    for (a = 0; a != t[0].length; ++a)
        if (t[0][a].charCodeAt(0) !== 65533) {
            r[t[0][a]] = 0 + a;
            e[0 + a] = t[0][a]
        }
    t[129] = "����������������������������������������������������������������　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈〉《》「」『』【】＋－±×�÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨￢⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������Å‰♯♭♪†‡¶����◯���".split("");
    for (a = 0; a != t[129].length; ++a)
        if (t[129][a].charCodeAt(0) !== 65533) {
            r[t[129][a]] = 33024 + a;
            e[33024 + a] = t[129][a]
        }
    t[130] = "�������������������������������������������������������������������������������０１２３４５６７８９�������ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ�������ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split("");
    for (a = 0; a != t[130].length; ++a)
        if (t[130][a].charCodeAt(0) !== 65533) {
            r[t[130][a]] = 33280 + a;
            e[33280 + a] = t[130][a]
        }
    t[131] = "����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split("");
    for (a = 0; a != t[131].length; ++a)
        if (t[131][a].charCodeAt(0) !== 65533) {
            r[t[131][a]] = 33536 + a;
            e[33536 + a] = t[131][a]
        }
    t[132] = "����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split("");
    for (a = 0; a != t[132].length; ++a)
        if (t[132][a].charCodeAt(0) !== 65533) {
            r[t[132][a]] = 33792 + a;
            e[33792 + a] = t[132][a]
        }
    t[135] = "����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[135].length; ++a)
        if (t[135][a].charCodeAt(0) !== 65533) {
            r[t[135][a]] = 34560 + a;
            e[34560 + a] = t[135][a]
        }
    t[136] = "���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split("");
    for (a = 0; a != t[136].length; ++a)
        if (t[136][a].charCodeAt(0) !== 65533) {
            r[t[136][a]] = 34816 + a;
            e[34816 + a] = t[136][a]
        }
    t[137] = "����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split("");
    for (a = 0; a != t[137].length; ++a)
        if (t[137][a].charCodeAt(0) !== 65533) {
            r[t[137][a]] = 35072 + a;
            e[35072 + a] = t[137][a]
        }
    t[138] = "����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split("");
    for (a = 0; a != t[138].length; ++a)
        if (t[138][a].charCodeAt(0) !== 65533) {
            r[t[138][a]] = 35328 + a;
            e[35328 + a] = t[138][a]
        }
    t[139] = "����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split("");
    for (a = 0; a != t[139].length; ++a)
        if (t[139][a].charCodeAt(0) !== 65533) {
            r[t[139][a]] = 35584 + a;
            e[35584 + a] = t[139][a]
        }
    t[140] = "����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split("");
    for (a = 0; a != t[140].length; ++a)
        if (t[140][a].charCodeAt(0) !== 65533) {
            r[t[140][a]] = 35840 + a;
            e[35840 + a] = t[140][a]
        }
    t[141] = "����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split("");
    for (a = 0; a != t[141].length; ++a)
        if (t[141][a].charCodeAt(0) !== 65533) {
            r[t[141][a]] = 36096 + a;
            e[36096 + a] = t[141][a]
        }
    t[142] = "����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split("");
    for (a = 0; a != t[142].length; ++a)
        if (t[142][a].charCodeAt(0) !== 65533) {
            r[t[142][a]] = 36352 + a;
            e[36352 + a] = t[142][a]
        }
    t[143] = "����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split("");
    for (a = 0; a != t[143].length; ++a)
        if (t[143][a].charCodeAt(0) !== 65533) {
            r[t[143][a]] = 36608 + a;
            e[36608 + a] = t[143][a]
        }
    t[144] = "����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split("");
    for (a = 0; a != t[144].length; ++a)
        if (t[144][a].charCodeAt(0) !== 65533) {
            r[t[144][a]] = 36864 + a;
            e[36864 + a] = t[144][a]
        }
    t[145] = "����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split("");
    for (a = 0; a != t[145].length; ++a)
        if (t[145][a].charCodeAt(0) !== 65533) {
            r[t[145][a]] = 37120 + a;
            e[37120 + a] = t[145][a]
        }
    t[146] = "����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split("");
    for (a = 0; a != t[146].length; ++a)
        if (t[146][a].charCodeAt(0) !== 65533) {
            r[t[146][a]] = 37376 + a;
            e[37376 + a] = t[146][a]
        }
    t[147] = "����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split("");
    for (a = 0; a != t[147].length; ++a)
        if (t[147][a].charCodeAt(0) !== 65533) {
            r[t[147][a]] = 37632 + a;
            e[37632 + a] = t[147][a]
        }
    t[148] = "����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split("");
    for (a = 0; a != t[148].length; ++a)
        if (t[148][a].charCodeAt(0) !== 65533) {
            r[t[148][a]] = 37888 + a;
            e[37888 + a] = t[148][a]
        }
    t[149] = "����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split("");
    for (a = 0; a != t[149].length; ++a)
        if (t[149][a].charCodeAt(0) !== 65533) {
            r[t[149][a]] = 38144 + a;
            e[38144 + a] = t[149][a]
        }
    t[150] = "����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split("");
    for (a = 0; a != t[150].length; ++a)
        if (t[150][a].charCodeAt(0) !== 65533) {
            r[t[150][a]] = 38400 + a;
            e[38400 + a] = t[150][a]
        }
    t[151] = "����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split("");
    for (a = 0; a != t[151].length; ++a)
        if (t[151][a].charCodeAt(0) !== 65533) {
            r[t[151][a]] = 38656 + a;
            e[38656 + a] = t[151][a]
        }
    t[152] = "����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split("");
    for (a = 0; a != t[152].length; ++a)
        if (t[152][a].charCodeAt(0) !== 65533) {
            r[t[152][a]] = 38912 + a;
            e[38912 + a] = t[152][a]
        }
    t[153] = "����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split("");
    for (a = 0; a != t[153].length; ++a)
        if (t[153][a].charCodeAt(0) !== 65533) {
            r[t[153][a]] = 39168 + a;
            e[39168 + a] = t[153][a]
        }
    t[154] = "����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split("");
    for (a = 0; a != t[154].length; ++a)
        if (t[154][a].charCodeAt(0) !== 65533) {
            r[t[154][a]] = 39424 + a;
            e[39424 + a] = t[154][a]
        }
    t[155] = "����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split("");
    for (a = 0; a != t[155].length; ++a)
        if (t[155][a].charCodeAt(0) !== 65533) {
            r[t[155][a]] = 39680 + a;
            e[39680 + a] = t[155][a]
        }
    t[156] = "����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split("");
    for (a = 0; a != t[156].length; ++a)
        if (t[156][a].charCodeAt(0) !== 65533) {
            r[t[156][a]] = 39936 + a;
            e[39936 + a] = t[156][a]
        }
    t[157] = "����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split("");
    for (a = 0; a != t[157].length; ++a)
        if (t[157][a].charCodeAt(0) !== 65533) {
            r[t[157][a]] = 40192 + a;
            e[40192 + a] = t[157][a]
        }
    t[158] = "����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split("");
    for (a = 0; a != t[158].length; ++a)
        if (t[158][a].charCodeAt(0) !== 65533) {
            r[t[158][a]] = 40448 + a;
            e[40448 + a] = t[158][a]
        }
    t[159] = "����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split("");
    for (a = 0; a != t[159].length; ++a)
        if (t[159][a].charCodeAt(0) !== 65533) {
            r[t[159][a]] = 40704 + a;
            e[40704 + a] = t[159][a]
        }
    t[224] = "����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split("");
    for (a = 0; a != t[224].length; ++a)
        if (t[224][a].charCodeAt(0) !== 65533) {
            r[t[224][a]] = 57344 + a;
            e[57344 + a] = t[224][a]
        }
    t[225] = "����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split("");
    for (a = 0; a != t[225].length; ++a)
        if (t[225][a].charCodeAt(0) !== 65533) {
            r[t[225][a]] = 57600 + a;
            e[57600 + a] = t[225][a]
        }
    t[226] = "����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split("");
    for (a = 0; a != t[226].length; ++a)
        if (t[226][a].charCodeAt(0) !== 65533) {
            r[t[226][a]] = 57856 + a;
            e[57856 + a] = t[226][a]
        }
    t[227] = "����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split("");
    for (a = 0; a != t[227].length; ++a)
        if (t[227][a].charCodeAt(0) !== 65533) {
            r[t[227][a]] = 58112 + a;
            e[58112 + a] = t[227][a]
        }
    t[228] = "����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split("");
    for (a = 0; a != t[228].length; ++a)
        if (t[228][a].charCodeAt(0) !== 65533) {
            r[t[228][a]] = 58368 + a;
            e[58368 + a] = t[228][a]
        }
    t[229] = "����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split("");
    for (a = 0; a != t[229].length; ++a)
        if (t[229][a].charCodeAt(0) !== 65533) {
            r[t[229][a]] = 58624 + a;
            e[58624 + a] = t[229][a]
        }
    t[230] = "����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split("");
    for (a = 0; a != t[230].length; ++a)
        if (t[230][a].charCodeAt(0) !== 65533) {
            r[t[230][a]] = 58880 + a;
            e[58880 + a] = t[230][a]
        }
    t[231] = "����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split("");
    for (a = 0; a != t[231].length; ++a)
        if (t[231][a].charCodeAt(0) !== 65533) {
            r[t[231][a]] = 59136 + a;
            e[59136 + a] = t[231][a]
        }
    t[232] = "����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split("");
    for (a = 0; a != t[232].length; ++a)
        if (t[232][a].charCodeAt(0) !== 65533) {
            r[t[232][a]] = 59392 + a;
            e[59392 + a] = t[232][a]
        }
    t[233] = "����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split("");
    for (a = 0; a != t[233].length; ++a)
        if (t[233][a].charCodeAt(0) !== 65533) {
            r[t[233][a]] = 59648 + a;
            e[59648 + a] = t[233][a]
        }
    t[234] = "����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[234].length; ++a)
        if (t[234][a].charCodeAt(0) !== 65533) {
            r[t[234][a]] = 59904 + a;
            e[59904 + a] = t[234][a]
        }
    t[237] = "����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split("");
    for (a = 0; a != t[237].length; ++a)
        if (t[237][a].charCodeAt(0) !== 65533) {
            r[t[237][a]] = 60672 + a;
            e[60672 + a] = t[237][a]
        }
    t[238] = "����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ￢￤＇＂���".split("");
    for (a = 0; a != t[238].length; ++a)
        if (t[238][a].charCodeAt(0) !== 65533) {
            r[t[238][a]] = 60928 + a;
            e[60928 + a] = t[238][a]
        }
    t[250] = "����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split("");
    for (a = 0; a != t[250].length; ++a)
        if (t[250][a].charCodeAt(0) !== 65533) {
            r[t[250][a]] = 64e3 + a;
            e[64e3 + a] = t[250][a]
        }
    t[251] = "����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split("");
    for (a = 0; a != t[251].length; ++a)
        if (t[251][a].charCodeAt(0) !== 65533) {
            r[t[251][a]] = 64256 + a;
            e[64256 + a] = t[251][a]
        }
    t[252] = "����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[252].length; ++a)
        if (t[252][a].charCodeAt(0) !== 65533) {
            r[t[252][a]] = 64512 + a;
            e[64512 + a] = t[252][a]
        }
    return {
        enc: r,
        dec: e
    }
}();
cptable[936] = function() {
    var e = [], r = {}, t = [], a;
    t[0] = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[0].length; ++a)
        if (t[0][a].charCodeAt(0) !== 65533) {
            r[t[0][a]] = 0 + a;
            e[0 + a] = t[0][a]
        }
    t[129] = "����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split("");
    for (a = 0; a != t[129].length; ++a)
        if (t[129][a].charCodeAt(0) !== 65533) {
            r[t[129][a]] = 33024 + a;
            e[33024 + a] = t[129][a]
        }
    t[130] = "����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split("");
    for (a = 0; a != t[130].length; ++a)
        if (t[130][a].charCodeAt(0) !== 65533) {
            r[t[130][a]] = 33280 + a;
            e[33280 + a] = t[130][a]
        }
    t[131] = "����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split("");
    for (a = 0; a != t[131].length; ++a)
        if (t[131][a].charCodeAt(0) !== 65533) {
            r[t[131][a]] = 33536 + a;
            e[33536 + a] = t[131][a]
        }
    t[132] = "����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split("");
    for (a = 0; a != t[132].length; ++a)
        if (t[132][a].charCodeAt(0) !== 65533) {
            r[t[132][a]] = 33792 + a;
            e[33792 + a] = t[132][a]
        }
    t[133] = "����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split("");
    for (a = 0; a != t[133].length; ++a)
        if (t[133][a].charCodeAt(0) !== 65533) {
            r[t[133][a]] = 34048 + a;
            e[34048 + a] = t[133][a]
        }
    t[134] = "����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split("");
    for (a = 0; a != t[134].length; ++a)
        if (t[134][a].charCodeAt(0) !== 65533) {
            r[t[134][a]] = 34304 + a;
            e[34304 + a] = t[134][a]
        }
    t[135] = "����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split("");
    for (a = 0; a != t[135].length; ++a)
        if (t[135][a].charCodeAt(0) !== 65533) {
            r[t[135][a]] = 34560 + a;
            e[34560 + a] = t[135][a]
        }
    t[136] = "����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split("");
    for (a = 0; a != t[136].length; ++a)
        if (t[136][a].charCodeAt(0) !== 65533) {
            r[t[136][a]] = 34816 + a;
            e[34816 + a] = t[136][a]
        }
    t[137] = "����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split("");
    for (a = 0; a != t[137].length; ++a)
        if (t[137][a].charCodeAt(0) !== 65533) {
            r[t[137][a]] = 35072 + a;
            e[35072 + a] = t[137][a]
        }
    t[138] = "����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split("");
    for (a = 0; a != t[138].length; ++a)
        if (t[138][a].charCodeAt(0) !== 65533) {
            r[t[138][a]] = 35328 + a;
            e[35328 + a] = t[138][a]
        }
    t[139] = "����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split("");
    for (a = 0; a != t[139].length; ++a)
        if (t[139][a].charCodeAt(0) !== 65533) {
            r[t[139][a]] = 35584 + a;
            e[35584 + a] = t[139][a]
        }
    t[140] = "����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split("");
    for (a = 0; a != t[140].length; ++a)
        if (t[140][a].charCodeAt(0) !== 65533) {
            r[t[140][a]] = 35840 + a;
            e[35840 + a] = t[140][a]
        }
    t[141] = "����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split("");
    for (a = 0; a != t[141].length; ++a)
        if (t[141][a].charCodeAt(0) !== 65533) {
            r[t[141][a]] = 36096 + a;
            e[36096 + a] = t[141][a]
        }
    t[142] = "����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split("");
    for (a = 0; a != t[142].length; ++a)
        if (t[142][a].charCodeAt(0) !== 65533) {
            r[t[142][a]] = 36352 + a;
            e[36352 + a] = t[142][a]
        }
    t[143] = "����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split("");
    for (a = 0; a != t[143].length; ++a)
        if (t[143][a].charCodeAt(0) !== 65533) {
            r[t[143][a]] = 36608 + a;
            e[36608 + a] = t[143][a]
        }
    t[144] = "����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split("");
    for (a = 0; a != t[144].length; ++a)
        if (t[144][a].charCodeAt(0) !== 65533) {
            r[t[144][a]] = 36864 + a;
            e[36864 + a] = t[144][a]
        }
    t[145] = "����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split("");
    for (a = 0; a != t[145].length; ++a)
        if (t[145][a].charCodeAt(0) !== 65533) {
            r[t[145][a]] = 37120 + a;
            e[37120 + a] = t[145][a]
        }
    t[146] = "����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split("");
    for (a = 0; a != t[146].length; ++a)
        if (t[146][a].charCodeAt(0) !== 65533) {
            r[t[146][a]] = 37376 + a;
            e[37376 + a] = t[146][a]
        }
    t[147] = "����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split("");
    for (a = 0; a != t[147].length; ++a)
        if (t[147][a].charCodeAt(0) !== 65533) {
            r[t[147][a]] = 37632 + a;
            e[37632 + a] = t[147][a]
        }
    t[148] = "����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split("");
    for (a = 0; a != t[148].length; ++a)
        if (t[148][a].charCodeAt(0) !== 65533) {
            r[t[148][a]] = 37888 + a;
            e[37888 + a] = t[148][a]
        }
    t[149] = "����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split("");
    for (a = 0; a != t[149].length; ++a)
        if (t[149][a].charCodeAt(0) !== 65533) {
            r[t[149][a]] = 38144 + a;
            e[38144 + a] = t[149][a]
        }
    t[150] = "����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split("");
    for (a = 0; a != t[150].length; ++a)
        if (t[150][a].charCodeAt(0) !== 65533) {
            r[t[150][a]] = 38400 + a;
            e[38400 + a] = t[150][a]
        }
    t[151] = "����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split("");
    for (a = 0; a != t[151].length; ++a)
        if (t[151][a].charCodeAt(0) !== 65533) {
            r[t[151][a]] = 38656 + a;
            e[38656 + a] = t[151][a]
        }
    t[152] = "����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split("");
    for (a = 0; a != t[152].length; ++a)
        if (t[152][a].charCodeAt(0) !== 65533) {
            r[t[152][a]] = 38912 + a;
            e[38912 + a] = t[152][a];
        }
    t[153] = "����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split("");
    for (a = 0; a != t[153].length; ++a)
        if (t[153][a].charCodeAt(0) !== 65533) {
            r[t[153][a]] = 39168 + a;
            e[39168 + a] = t[153][a]
        }
    t[154] = "����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split("");
    for (a = 0; a != t[154].length; ++a)
        if (t[154][a].charCodeAt(0) !== 65533) {
            r[t[154][a]] = 39424 + a;
            e[39424 + a] = t[154][a]
        }
    t[155] = "����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split("");
    for (a = 0; a != t[155].length; ++a)
        if (t[155][a].charCodeAt(0) !== 65533) {
            r[t[155][a]] = 39680 + a;
            e[39680 + a] = t[155][a]
        }
    t[156] = "����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split("");
    for (a = 0; a != t[156].length; ++a)
        if (t[156][a].charCodeAt(0) !== 65533) {
            r[t[156][a]] = 39936 + a;
            e[39936 + a] = t[156][a]
        }
    t[157] = "����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split("");
    for (a = 0; a != t[157].length; ++a)
        if (t[157][a].charCodeAt(0) !== 65533) {
            r[t[157][a]] = 40192 + a;
            e[40192 + a] = t[157][a]
        }
    t[158] = "����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split("");
    for (a = 0; a != t[158].length; ++a)
        if (t[158][a].charCodeAt(0) !== 65533) {
            r[t[158][a]] = 40448 + a;
            e[40448 + a] = t[158][a]
        }
    t[159] = "����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split("");
    for (a = 0; a != t[159].length; ++a)
        if (t[159][a].charCodeAt(0) !== 65533) {
            r[t[159][a]] = 40704 + a;
            e[40704 + a] = t[159][a]
        }
    t[160] = "����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split("");
    for (a = 0; a != t[160].length; ++a)
        if (t[160][a].charCodeAt(0) !== 65533) {
            r[t[160][a]] = 40960 + a;
            e[40960 + a] = t[160][a]
        }
    t[161] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split("");
    for (a = 0; a != t[161].length; ++a)
        if (t[161][a].charCodeAt(0) !== 65533) {
            r[t[161][a]] = 41216 + a;
            e[41216 + a] = t[161][a]
        }
    t[162] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split("");
    for (a = 0; a != t[162].length; ++a)
        if (t[162][a].charCodeAt(0) !== 65533) {
            r[t[162][a]] = 41472 + a;
            e[41472 + a] = t[162][a]
        }
    t[163] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������！＂＃￥％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［＼］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�".split("");
    for (a = 0; a != t[163].length; ++a)
        if (t[163][a].charCodeAt(0) !== 65533) {
            r[t[163][a]] = 41728 + a;
            e[41728 + a] = t[163][a]
        }
    t[164] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");
    for (a = 0; a != t[164].length; ++a)
        if (t[164][a].charCodeAt(0) !== 65533) {
            r[t[164][a]] = 41984 + a;
            e[41984 + a] = t[164][a]
        }
    t[165] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");
    for (a = 0; a != t[165].length; ++a)
        if (t[165][a].charCodeAt(0) !== 65533) {
            r[t[165][a]] = 42240 + a;
            e[42240 + a] = t[165][a]
        }
    t[166] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split("");
    for (a = 0; a != t[166].length; ++a)
        if (t[166][a].charCodeAt(0) !== 65533) {
            r[t[166][a]] = 42496 + a;
            e[42496 + a] = t[166][a]
        }
    t[167] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");
    for (a = 0; a != t[167].length; ++a)
        if (t[167][a].charCodeAt(0) !== 65533) {
            r[t[167][a]] = 42752 + a;
            e[42752 + a] = t[167][a]
        }
    t[168] = "����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");
    for (a = 0; a != t[168].length; ++a)
        if (t[168][a].charCodeAt(0) !== 65533) {
            r[t[168][a]] = 43008 + a;
            e[43008 + a] = t[168][a]
        }
    t[169] = "����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");
    for (a = 0; a != t[169].length; ++a)
        if (t[169][a].charCodeAt(0) !== 65533) {
            r[t[169][a]] = 43264 + a;
            e[43264 + a] = t[169][a]
        }
    t[170] = "����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[170].length; ++a)
        if (t[170][a].charCodeAt(0) !== 65533) {
            r[t[170][a]] = 43520 + a;
            e[43520 + a] = t[170][a]
        }
    t[171] = "����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[171].length; ++a)
        if (t[171][a].charCodeAt(0) !== 65533) {
            r[t[171][a]] = 43776 + a;
            e[43776 + a] = t[171][a]
        }
    t[172] = "����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[172].length; ++a)
        if (t[172][a].charCodeAt(0) !== 65533) {
            r[t[172][a]] = 44032 + a;
            e[44032 + a] = t[172][a]
        }
    t[173] = "����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[173].length; ++a)
        if (t[173][a].charCodeAt(0) !== 65533) {
            r[t[173][a]] = 44288 + a;
            e[44288 + a] = t[173][a]
        }
    t[174] = "����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[174].length; ++a)
        if (t[174][a].charCodeAt(0) !== 65533) {
            r[t[174][a]] = 44544 + a;
            e[44544 + a] = t[174][a]
        }
    t[175] = "����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[175].length; ++a)
        if (t[175][a].charCodeAt(0) !== 65533) {
            r[t[175][a]] = 44800 + a;
            e[44800 + a] = t[175][a]
        }
    t[176] = "����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");
    for (a = 0; a != t[176].length; ++a)
        if (t[176][a].charCodeAt(0) !== 65533) {
            r[t[176][a]] = 45056 + a;
            e[45056 + a] = t[176][a]
        }
    t[177] = "����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");
    for (a = 0; a != t[177].length; ++a)
        if (t[177][a].charCodeAt(0) !== 65533) {
            r[t[177][a]] = 45312 + a;
            e[45312 + a] = t[177][a]
        }
    t[178] = "����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split("");
    for (a = 0; a != t[178].length; ++a)
        if (t[178][a].charCodeAt(0) !== 65533) {
            r[t[178][a]] = 45568 + a;
            e[45568 + a] = t[178][a]
        }
    t[179] = "����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split("");
    for (a = 0; a != t[179].length; ++a)
        if (t[179][a].charCodeAt(0) !== 65533) {
            r[t[179][a]] = 45824 + a;
            e[45824 + a] = t[179][a]
        }
    t[180] = "����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split("");
    for (a = 0; a != t[180].length; ++a)
        if (t[180][a].charCodeAt(0) !== 65533) {
            r[t[180][a]] = 46080 + a;
            e[46080 + a] = t[180][a]
        }
    t[181] = "����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split("");
    for (a = 0; a != t[181].length; ++a)
        if (t[181][a].charCodeAt(0) !== 65533) {
            r[t[181][a]] = 46336 + a;
            e[46336 + a] = t[181][a]
        }
    t[182] = "����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split("");
    for (a = 0; a != t[182].length; ++a)
        if (t[182][a].charCodeAt(0) !== 65533) {
            r[t[182][a]] = 46592 + a;
            e[46592 + a] = t[182][a]
        }
    t[183] = "����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split("");
    for (a = 0; a != t[183].length; ++a)
        if (t[183][a].charCodeAt(0) !== 65533) {
            r[t[183][a]] = 46848 + a;
            e[46848 + a] = t[183][a]
        }
    t[184] = "����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split("");
    for (a = 0; a != t[184].length; ++a)
        if (t[184][a].charCodeAt(0) !== 65533) {
            r[t[184][a]] = 47104 + a;
            e[47104 + a] = t[184][a]
        }
    t[185] = "����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split("");
    for (a = 0; a != t[185].length; ++a)
        if (t[185][a].charCodeAt(0) !== 65533) {
            r[t[185][a]] = 47360 + a;
            e[47360 + a] = t[185][a]
        }
    t[186] = "����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split("");
    for (a = 0; a != t[186].length; ++a)
        if (t[186][a].charCodeAt(0) !== 65533) {
            r[t[186][a]] = 47616 + a;
            e[47616 + a] = t[186][a]
        }
    t[187] = "����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split("");
    for (a = 0; a != t[187].length; ++a)
        if (t[187][a].charCodeAt(0) !== 65533) {
            r[t[187][a]] = 47872 + a;
            e[47872 + a] = t[187][a]
        }
    t[188] = "����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split("");
    for (a = 0; a != t[188].length; ++a)
        if (t[188][a].charCodeAt(0) !== 65533) {
            r[t[188][a]] = 48128 + a;
            e[48128 + a] = t[188][a]
        }
    t[189] = "����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split("");
    for (a = 0; a != t[189].length; ++a)
        if (t[189][a].charCodeAt(0) !== 65533) {
            r[t[189][a]] = 48384 + a;
            e[48384 + a] = t[189][a]
        }
    t[190] = "����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split("");
    for (a = 0; a != t[190].length; ++a)
        if (t[190][a].charCodeAt(0) !== 65533) {
            r[t[190][a]] = 48640 + a;
            e[48640 + a] = t[190][a]
        }
    t[191] = "����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split("");
    for (a = 0; a != t[191].length; ++a)
        if (t[191][a].charCodeAt(0) !== 65533) {
            r[t[191][a]] = 48896 + a;
            e[48896 + a] = t[191][a]
        }
    t[192] = "����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split("");
    for (a = 0; a != t[192].length; ++a)
        if (t[192][a].charCodeAt(0) !== 65533) {
            r[t[192][a]] = 49152 + a;
            e[49152 + a] = t[192][a]
        }
    t[193] = "����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split("");
    for (a = 0; a != t[193].length; ++a)
        if (t[193][a].charCodeAt(0) !== 65533) {
            r[t[193][a]] = 49408 + a;
            e[49408 + a] = t[193][a]
        }
    t[194] = "����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split("");
    for (a = 0; a != t[194].length; ++a)
        if (t[194][a].charCodeAt(0) !== 65533) {
            r[t[194][a]] = 49664 + a;
            e[49664 + a] = t[194][a]
        }
    t[195] = "����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split("");
    for (a = 0; a != t[195].length; ++a)
        if (t[195][a].charCodeAt(0) !== 65533) {
            r[t[195][a]] = 49920 + a;
            e[49920 + a] = t[195][a]
        }
    t[196] = "����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split("");
    for (a = 0; a != t[196].length; ++a)
        if (t[196][a].charCodeAt(0) !== 65533) {
            r[t[196][a]] = 50176 + a;
            e[50176 + a] = t[196][a]
        }
    t[197] = "����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split("");
    for (a = 0; a != t[197].length; ++a)
        if (t[197][a].charCodeAt(0) !== 65533) {
            r[t[197][a]] = 50432 + a;
            e[50432 + a] = t[197][a]
        }
    t[198] = "����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split("");
    for (a = 0; a != t[198].length; ++a)
        if (t[198][a].charCodeAt(0) !== 65533) {
            r[t[198][a]] = 50688 + a;
            e[50688 + a] = t[198][a]
        }
    t[199] = "����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split("");
    for (a = 0; a != t[199].length; ++a)
        if (t[199][a].charCodeAt(0) !== 65533) {
            r[t[199][a]] = 50944 + a;
            e[50944 + a] = t[199][a]
        }
    t[200] = "����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split("");
    for (a = 0; a != t[200].length; ++a)
        if (t[200][a].charCodeAt(0) !== 65533) {
            r[t[200][a]] = 51200 + a;
            e[51200 + a] = t[200][a]
        }
    t[201] = "����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split("");
    for (a = 0; a != t[201].length; ++a)
        if (t[201][a].charCodeAt(0) !== 65533) {
            r[t[201][a]] = 51456 + a;
            e[51456 + a] = t[201][a]
        }
    t[202] = "����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split("");
    for (a = 0; a != t[202].length; ++a)
        if (t[202][a].charCodeAt(0) !== 65533) {
            r[t[202][a]] = 51712 + a;
            e[51712 + a] = t[202][a]
        }
    t[203] = "����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split("");
    for (a = 0; a != t[203].length; ++a)
        if (t[203][a].charCodeAt(0) !== 65533) {
            r[t[203][a]] = 51968 + a;
            e[51968 + a] = t[203][a]
        }
    t[204] = "����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split("");
    for (a = 0; a != t[204].length; ++a)
        if (t[204][a].charCodeAt(0) !== 65533) {
            r[t[204][a]] = 52224 + a;
            e[52224 + a] = t[204][a]
        }
    t[205] = "����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split("");
    for (a = 0; a != t[205].length; ++a)
        if (t[205][a].charCodeAt(0) !== 65533) {
            r[t[205][a]] = 52480 + a;
            e[52480 + a] = t[205][a]
        }
    t[206] = "����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split("");
    for (a = 0; a != t[206].length; ++a)
        if (t[206][a].charCodeAt(0) !== 65533) {
            r[t[206][a]] = 52736 + a;
            e[52736 + a] = t[206][a]
        }
    t[207] = "����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split("");
    for (a = 0; a != t[207].length; ++a)
        if (t[207][a].charCodeAt(0) !== 65533) {
            r[t[207][a]] = 52992 + a;
            e[52992 + a] = t[207][a]
        }
    t[208] = "����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split("");
    for (a = 0; a != t[208].length; ++a)
        if (t[208][a].charCodeAt(0) !== 65533) {
            r[t[208][a]] = 53248 + a;
            e[53248 + a] = t[208][a]
        }
    t[209] = "����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split("");
    for (a = 0; a != t[209].length; ++a)
        if (t[209][a].charCodeAt(0) !== 65533) {
            r[t[209][a]] = 53504 + a;
            e[53504 + a] = t[209][a]
        }
    t[210] = "����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split("");
    for (a = 0; a != t[210].length; ++a)
        if (t[210][a].charCodeAt(0) !== 65533) {
            r[t[210][a]] = 53760 + a;
            e[53760 + a] = t[210][a]
        }
    t[211] = "����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split("");
    for (a = 0; a != t[211].length; ++a)
        if (t[211][a].charCodeAt(0) !== 65533) {
            r[t[211][a]] = 54016 + a;
            e[54016 + a] = t[211][a]
        }
    t[212] = "����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split("");
    for (a = 0; a != t[212].length; ++a)
        if (t[212][a].charCodeAt(0) !== 65533) {
            r[t[212][a]] = 54272 + a;
            e[54272 + a] = t[212][a]
        }
    t[213] = "����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split("");
    for (a = 0; a != t[213].length; ++a)
        if (t[213][a].charCodeAt(0) !== 65533) {
            r[t[213][a]] = 54528 + a;
            e[54528 + a] = t[213][a]
        }
    t[214] = "����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split("");
    for (a = 0; a != t[214].length; ++a)
        if (t[214][a].charCodeAt(0) !== 65533) {
            r[t[214][a]] = 54784 + a;
            e[54784 + a] = t[214][a]
        }
    t[215] = "����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split("");
    for (a = 0; a != t[215].length; ++a)
        if (t[215][a].charCodeAt(0) !== 65533) {
            r[t[215][a]] = 55040 + a;
            e[55040 + a] = t[215][a]
        }
    t[216] = "����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split("");
    for (a = 0; a != t[216].length; ++a)
        if (t[216][a].charCodeAt(0) !== 65533) {
            r[t[216][a]] = 55296 + a;
            e[55296 + a] = t[216][a]
        }
    t[217] = "����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split("");
    for (a = 0; a != t[217].length; ++a)
        if (t[217][a].charCodeAt(0) !== 65533) {
            r[t[217][a]] = 55552 + a;
            e[55552 + a] = t[217][a]
        }
    t[218] = "����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split("");
    for (a = 0; a != t[218].length; ++a)
        if (t[218][a].charCodeAt(0) !== 65533) {
            r[t[218][a]] = 55808 + a;
            e[55808 + a] = t[218][a]
        }
    t[219] = "����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split("");
    for (a = 0; a != t[219].length; ++a)
        if (t[219][a].charCodeAt(0) !== 65533) {
            r[t[219][a]] = 56064 + a;
            e[56064 + a] = t[219][a]
        }
    t[220] = "����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split("");
    for (a = 0; a != t[220].length; ++a)
        if (t[220][a].charCodeAt(0) !== 65533) {
            r[t[220][a]] = 56320 + a;
            e[56320 + a] = t[220][a]
        }
    t[221] = "����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split("");
    for (a = 0; a != t[221].length; ++a)
        if (t[221][a].charCodeAt(0) !== 65533) {
            r[t[221][a]] = 56576 + a;
            e[56576 + a] = t[221][a]
        }
    t[222] = "����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split("");
    for (a = 0; a != t[222].length; ++a)
        if (t[222][a].charCodeAt(0) !== 65533) {
            r[t[222][a]] = 56832 + a;
            e[56832 + a] = t[222][a]
        }
    t[223] = "����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split("");
    for (a = 0; a != t[223].length; ++a)
        if (t[223][a].charCodeAt(0) !== 65533) {
            r[t[223][a]] = 57088 + a;
            e[57088 + a] = t[223][a]
        }
    t[224] = "����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split("");
    for (a = 0; a != t[224].length; ++a)
        if (t[224][a].charCodeAt(0) !== 65533) {
            r[t[224][a]] = 57344 + a;
            e[57344 + a] = t[224][a]
        }
    t[225] = "����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split("");
    for (a = 0; a != t[225].length; ++a)
        if (t[225][a].charCodeAt(0) !== 65533) {
            r[t[225][a]] = 57600 + a;
            e[57600 + a] = t[225][a]
        }
    t[226] = "����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split("");
    for (a = 0; a != t[226].length; ++a)
        if (t[226][a].charCodeAt(0) !== 65533) {
            r[t[226][a]] = 57856 + a;
            e[57856 + a] = t[226][a]
        }
    t[227] = "����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split("");
    for (a = 0; a != t[227].length; ++a)
        if (t[227][a].charCodeAt(0) !== 65533) {
            r[t[227][a]] = 58112 + a;
            e[58112 + a] = t[227][a]
        }
    t[228] = "����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split("");
    for (a = 0; a != t[228].length; ++a)
        if (t[228][a].charCodeAt(0) !== 65533) {
            r[t[228][a]] = 58368 + a;
            e[58368 + a] = t[228][a]
        }
    t[229] = "����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split("");
    for (a = 0; a != t[229].length; ++a)
        if (t[229][a].charCodeAt(0) !== 65533) {
            r[t[229][a]] = 58624 + a;
            e[58624 + a] = t[229][a]
        }
    t[230] = "����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split("");
    for (a = 0; a != t[230].length; ++a)
        if (t[230][a].charCodeAt(0) !== 65533) {
            r[t[230][a]] = 58880 + a;
            e[58880 + a] = t[230][a]
        }
    t[231] = "����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split("");
    for (a = 0; a != t[231].length; ++a)
        if (t[231][a].charCodeAt(0) !== 65533) {
            r[t[231][a]] = 59136 + a;
            e[59136 + a] = t[231][a]
        }
    t[232] = "����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split("");
    for (a = 0; a != t[232].length; ++a)
        if (t[232][a].charCodeAt(0) !== 65533) {
            r[t[232][a]] = 59392 + a;
            e[59392 + a] = t[232][a]
        }
    t[233] = "����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split("");
    for (a = 0; a != t[233].length; ++a)
        if (t[233][a].charCodeAt(0) !== 65533) {
            r[t[233][a]] = 59648 + a;
            e[59648 + a] = t[233][a]
        }
    t[234] = "����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split("");
    for (a = 0; a != t[234].length; ++a)
        if (t[234][a].charCodeAt(0) !== 65533) {
            r[t[234][a]] = 59904 + a;
            e[59904 + a] = t[234][a]
        }
    t[235] = "����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split("");
    for (a = 0; a != t[235].length; ++a)
        if (t[235][a].charCodeAt(0) !== 65533) {
            r[t[235][a]] = 60160 + a;
            e[60160 + a] = t[235][a]
        }
    t[236] = "����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split("");
    for (a = 0; a != t[236].length; ++a)
        if (t[236][a].charCodeAt(0) !== 65533) {
            r[t[236][a]] = 60416 + a;
            e[60416 + a] = t[236][a]
        }
    t[237] = "����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");
    for (a = 0; a != t[237].length; ++a)
        if (t[237][a].charCodeAt(0) !== 65533) {
            r[t[237][a]] = 60672 + a;
            e[60672 + a] = t[237][a]
        }
    t[238] = "����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");
    for (a = 0; a != t[238].length; ++a)
        if (t[238][a].charCodeAt(0) !== 65533) {
            r[t[238][a]] = 60928 + a;
            e[60928 + a] = t[238][a]
        }
    t[239] = "����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");
    for (a = 0; a != t[239].length; ++a)
        if (t[239][a].charCodeAt(0) !== 65533) {
            r[t[239][a]] = 61184 + a;
            e[61184 + a] = t[239][a]
        }
    t[240] = "����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");
    for (a = 0; a != t[240].length; ++a)
        if (t[240][a].charCodeAt(0) !== 65533) {
            r[t[240][a]] = 61440 + a;
            e[61440 + a] = t[240][a]
        }
    t[241] = "����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");
    for (a = 0; a != t[241].length; ++a)
        if (t[241][a].charCodeAt(0) !== 65533) {
            r[t[241][a]] = 61696 + a;
            e[61696 + a] = t[241][a]
        }
    t[242] = "����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split("");
    for (a = 0; a != t[242].length; ++a)
        if (t[242][a].charCodeAt(0) !== 65533) {
            r[t[242][a]] = 61952 + a;
            e[61952 + a] = t[242][a]
        }
    t[243] = "����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split("");
    for (a = 0; a != t[243].length; ++a)
        if (t[243][a].charCodeAt(0) !== 65533) {
            r[t[243][a]] = 62208 + a;
            e[62208 + a] = t[243][a]
        }
    t[244] = "����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split("");
    for (a = 0; a != t[244].length; ++a)
        if (t[244][a].charCodeAt(0) !== 65533) {
            r[t[244][a]] = 62464 + a;
            e[62464 + a] = t[244][a]
        }
    t[245] = "����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split("");
    for (a = 0; a != t[245].length; ++a)
        if (t[245][a].charCodeAt(0) !== 65533) {
            r[t[245][a]] = 62720 + a;
            e[62720 + a] = t[245][a]
        }
    t[246] = "����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split("");
    for (a = 0; a != t[246].length; ++a)
        if (t[246][a].charCodeAt(0) !== 65533) {
            r[t[246][a]] = 62976 + a;
            e[62976 + a] = t[246][a]
        }
    t[247] = "����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split("");
    for (a = 0; a != t[247].length; ++a)
        if (t[247][a].charCodeAt(0) !== 65533) {
            r[t[247][a]] = 63232 + a;
            e[63232 + a] = t[247][a]
        }
    t[248] = "����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[248].length; ++a)
        if (t[248][a].charCodeAt(0) !== 65533) {
            r[t[248][a]] = 63488 + a;
            e[63488 + a] = t[248][a]
        }
    t[249] = "����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[249].length; ++a)
        if (t[249][a].charCodeAt(0) !== 65533) {
            r[t[249][a]] = 63744 + a;
            e[63744 + a] = t[249][a]
        }
    t[250] = "����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[250].length; ++a)
        if (t[250][a].charCodeAt(0) !== 65533) {
            r[t[250][a]] = 64e3 + a;
            e[64e3 + a] = t[250][a]
        }
    t[251] = "����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[251].length; ++a)
        if (t[251][a].charCodeAt(0) !== 65533) {
            r[t[251][a]] = 64256 + a;
            e[64256 + a] = t[251][a]
        }
    t[252] = "����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[252].length; ++a)
        if (t[252][a].charCodeAt(0) !== 65533) {
            r[t[252][a]] = 64512 + a;
            e[64512 + a] = t[252][a]
        }
    t[253] = "����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[253].length; ++a)
        if (t[253][a].charCodeAt(0) !== 65533) {
            r[t[253][a]] = 64768 + a;
            e[64768 + a] = t[253][a]
        }
    t[254] = "����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[254].length; ++a)
        if (t[254][a].charCodeAt(0) !== 65533) {
            r[t[254][a]] = 65024 + a;
            e[65024 + a] = t[254][a]
        }
    return {
        enc: r,
        dec: e
    }
}();
cptable[949] = function() {
    var e = [], r = {}, t = [], a;
    t[0] = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[0].length; ++a)
        if (t[0][a].charCodeAt(0) !== 65533) {
            r[t[0][a]] = 0 + a;
            e[0 + a] = t[0][a]
        }
    t[129] = "�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split("");
    for (a = 0; a != t[129].length; ++a)
        if (t[129][a].charCodeAt(0) !== 65533) {
            r[t[129][a]] = 33024 + a;
            e[33024 + a] = t[129][a]
        }
    t[130] = "�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split("");
    for (a = 0; a != t[130].length; ++a)
        if (t[130][a].charCodeAt(0) !== 65533) {
            r[t[130][a]] = 33280 + a;
            e[33280 + a] = t[130][a]
        }
    t[131] = "�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split("");
    for (a = 0; a != t[131].length; ++a)
        if (t[131][a].charCodeAt(0) !== 65533) {
            r[t[131][a]] = 33536 + a;
            e[33536 + a] = t[131][a]
        }
    t[132] = "�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split("");
    for (a = 0; a != t[132].length; ++a)
        if (t[132][a].charCodeAt(0) !== 65533) {
            r[t[132][a]] = 33792 + a;
            e[33792 + a] = t[132][a]
        }
    t[133] = "�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split("");
    for (a = 0; a != t[133].length; ++a)
        if (t[133][a].charCodeAt(0) !== 65533) {
            r[t[133][a]] = 34048 + a;
            e[34048 + a] = t[133][a]
        }
    t[134] = "�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split("");
    for (a = 0; a != t[134].length; ++a)
        if (t[134][a].charCodeAt(0) !== 65533) {
            r[t[134][a]] = 34304 + a;
            e[34304 + a] = t[134][a]
        }
    t[135] = "�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split("");
    for (a = 0; a != t[135].length; ++a)
        if (t[135][a].charCodeAt(0) !== 65533) {
            r[t[135][a]] = 34560 + a;
            e[34560 + a] = t[135][a]
        }
    t[136] = "�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split("");
    for (a = 0; a != t[136].length; ++a)
        if (t[136][a].charCodeAt(0) !== 65533) {
            r[t[136][a]] = 34816 + a;
            e[34816 + a] = t[136][a]
        }
    t[137] = "�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split("");
    for (a = 0; a != t[137].length; ++a)
        if (t[137][a].charCodeAt(0) !== 65533) {
            r[t[137][a]] = 35072 + a;
            e[35072 + a] = t[137][a]
        }
    t[138] = "�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split("");
    for (a = 0; a != t[138].length; ++a)
        if (t[138][a].charCodeAt(0) !== 65533) {
            r[t[138][a]] = 35328 + a;
            e[35328 + a] = t[138][a]
        }
    t[139] = "�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split("");
    for (a = 0; a != t[139].length; ++a)
        if (t[139][a].charCodeAt(0) !== 65533) {
            r[t[139][a]] = 35584 + a;
            e[35584 + a] = t[139][a]
        }
    t[140] = "�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split("");
    for (a = 0; a != t[140].length; ++a)
        if (t[140][a].charCodeAt(0) !== 65533) {
            r[t[140][a]] = 35840 + a;
            e[35840 + a] = t[140][a]
        }
    t[141] = "�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split("");
    for (a = 0; a != t[141].length; ++a)
        if (t[141][a].charCodeAt(0) !== 65533) {
            r[t[141][a]] = 36096 + a;
            e[36096 + a] = t[141][a]
        }
    t[142] = "�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split("");
    for (a = 0; a != t[142].length; ++a)
        if (t[142][a].charCodeAt(0) !== 65533) {
            r[t[142][a]] = 36352 + a;
            e[36352 + a] = t[142][a]
        }
    t[143] = "�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split("");
    for (a = 0; a != t[143].length; ++a)
        if (t[143][a].charCodeAt(0) !== 65533) {
            r[t[143][a]] = 36608 + a;
            e[36608 + a] = t[143][a]
        }
    t[144] = "�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split("");
    for (a = 0; a != t[144].length; ++a)
        if (t[144][a].charCodeAt(0) !== 65533) {
            r[t[144][a]] = 36864 + a;
            e[36864 + a] = t[144][a]
        }
    t[145] = "�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split("");
    for (a = 0; a != t[145].length; ++a)
        if (t[145][a].charCodeAt(0) !== 65533) {
            r[t[145][a]] = 37120 + a;
            e[37120 + a] = t[145][a]
        }
    t[146] = "�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split("");
    for (a = 0; a != t[146].length; ++a)
        if (t[146][a].charCodeAt(0) !== 65533) {
            r[t[146][a]] = 37376 + a;
            e[37376 + a] = t[146][a]
        }
    t[147] = "�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split("");
    for (a = 0; a != t[147].length; ++a)
        if (t[147][a].charCodeAt(0) !== 65533) {
            r[t[147][a]] = 37632 + a;
            e[37632 + a] = t[147][a]
        }
    t[148] = "�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split("");
    for (a = 0; a != t[148].length; ++a)
        if (t[148][a].charCodeAt(0) !== 65533) {
            r[t[148][a]] = 37888 + a;
            e[37888 + a] = t[148][a]
        }
    t[149] = "�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split("");
    for (a = 0; a != t[149].length; ++a)
        if (t[149][a].charCodeAt(0) !== 65533) {
            r[t[149][a]] = 38144 + a;
            e[38144 + a] = t[149][a]
        }
    t[150] = "�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split("");
    for (a = 0; a != t[150].length; ++a)
        if (t[150][a].charCodeAt(0) !== 65533) {
            r[t[150][a]] = 38400 + a;
            e[38400 + a] = t[150][a]
        }
    t[151] = "�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split("");
    for (a = 0; a != t[151].length; ++a)
        if (t[151][a].charCodeAt(0) !== 65533) {
            r[t[151][a]] = 38656 + a;
            e[38656 + a] = t[151][a]
        }
    t[152] = "�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split("");
    for (a = 0; a != t[152].length; ++a)
        if (t[152][a].charCodeAt(0) !== 65533) {
            r[t[152][a]] = 38912 + a;
            e[38912 + a] = t[152][a]
        }
    t[153] = "�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split("");
    for (a = 0; a != t[153].length; ++a)
        if (t[153][a].charCodeAt(0) !== 65533) {
            r[t[153][a]] = 39168 + a;
            e[39168 + a] = t[153][a]
        }
    t[154] = "�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split("");
    for (a = 0; a != t[154].length; ++a)
        if (t[154][a].charCodeAt(0) !== 65533) {
            r[t[154][a]] = 39424 + a;
            e[39424 + a] = t[154][a]
        }
    t[155] = "�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split("");
    for (a = 0; a != t[155].length; ++a)
        if (t[155][a].charCodeAt(0) !== 65533) {
            r[t[155][a]] = 39680 + a;
            e[39680 + a] = t[155][a]
        }
    t[156] = "�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split("");
    for (a = 0; a != t[156].length; ++a)
        if (t[156][a].charCodeAt(0) !== 65533) {
            r[t[156][a]] = 39936 + a;
            e[39936 + a] = t[156][a]
        }
    t[157] = "�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split("");
    for (a = 0; a != t[157].length; ++a)
        if (t[157][a].charCodeAt(0) !== 65533) {
            r[t[157][a]] = 40192 + a;
            e[40192 + a] = t[157][a]
        }
    t[158] = "�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split("");
    for (a = 0; a != t[158].length; ++a)
        if (t[158][a].charCodeAt(0) !== 65533) {
            r[t[158][a]] = 40448 + a;
            e[40448 + a] = t[158][a]
        }
    t[159] = "�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split("");
    for (a = 0; a != t[159].length; ++a)
        if (t[159][a].charCodeAt(0) !== 65533) {
            r[t[159][a]] = 40704 + a;
            e[40704 + a] = t[159][a]
        }
    t[160] = "�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split("");
    for (a = 0; a != t[160].length; ++a)
        if (t[160][a].charCodeAt(0) !== 65533) {
            r[t[160][a]] = 40960 + a;
            e[40960 + a] = t[160][a]
        }
    t[161] = "�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢�".split("");
    for (a = 0; a != t[161].length; ++a)
        if (t[161][a].charCodeAt(0) !== 65533) {
            r[t[161][a]] = 41216 + a;
            e[41216 + a] = t[161][a]
        }
    t[162] = "�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split("");
    for (a = 0; a != t[162].length; ++a)
        if (t[162][a].charCodeAt(0) !== 65533) {
            r[t[162][a]] = 41472 + a;
            e[41472 + a] = t[162][a]
        }
    t[163] = "�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛！＂＃＄％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［￦］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�".split("");
    for (a = 0; a != t[163].length; ++a)
        if (t[163][a].charCodeAt(0) !== 65533) {
            r[t[163][a]] = 41728 + a;
            e[41728 + a] = t[163][a]
        }
    t[164] = "�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split("");
    for (a = 0; a != t[164].length; ++a)
        if (t[164][a].charCodeAt(0) !== 65533) {
            r[t[164][a]] = 41984 + a;
            e[41984 + a] = t[164][a]
        }
    t[165] = "�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split("");
    for (a = 0; a != t[165].length; ++a)
        if (t[165][a].charCodeAt(0) !== 65533) {
            r[t[165][a]] = 42240 + a;
            e[42240 + a] = t[165][a]
        }
    t[166] = "�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split("");
    for (a = 0; a != t[166].length; ++a)
        if (t[166][a].charCodeAt(0) !== 65533) {
            r[t[166][a]] = 42496 + a;
            e[42496 + a] = t[166][a]
        }
    t[167] = "�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split("");
    for (a = 0; a != t[167].length; ++a)
        if (t[167][a].charCodeAt(0) !== 65533) {
            r[t[167][a]] = 42752 + a;
            e[42752 + a] = t[167][a]
        }
    t[168] = "�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ�Ĳ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split("");
    for (a = 0; a != t[168].length; ++a)
        if (t[168][a].charCodeAt(0) !== 65533) {
            r[t[168][a]] = 43008 + a;
            e[43008 + a] = t[168][a]
        }
    t[169] = "�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split("");
    for (a = 0; a != t[169].length; ++a)
        if (t[169][a].charCodeAt(0) !== 65533) {
            r[t[169][a]] = 43264 + a;
            e[43264 + a] = t[169][a]
        }
    t[170] = "�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");
    for (a = 0; a != t[170].length; ++a)
        if (t[170][a].charCodeAt(0) !== 65533) {
            r[t[170][a]] = 43520 + a;
            e[43520 + a] = t[170][a]
        }
    t[171] = "�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");
    for (a = 0; a != t[171].length; ++a)
        if (t[171][a].charCodeAt(0) !== 65533) {
            r[t[171][a]] = 43776 + a;
            e[43776 + a] = t[171][a]
        }
    t[172] = "�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");
    for (a = 0; a != t[172].length; ++a)
        if (t[172][a].charCodeAt(0) !== 65533) {
            r[t[172][a]] = 44032 + a;
            e[44032 + a] = t[172][a]
        }
    t[173] = "�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[173].length; ++a)
        if (t[173][a].charCodeAt(0) !== 65533) {
            r[t[173][a]] = 44288 + a;
            e[44288 + a] = t[173][a]
        }
    t[174] = "�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[174].length; ++a)
        if (t[174][a].charCodeAt(0) !== 65533) {
            r[t[174][a]] = 44544 + a;
            e[44544 + a] = t[174][a]
        }
    t[175] = "�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[175].length; ++a)
        if (t[175][a].charCodeAt(0) !== 65533) {
            r[t[175][a]] = 44800 + a;
            e[44800 + a] = t[175][a]
        }
    t[176] = "�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split("");
    for (a = 0; a != t[176].length; ++a)
        if (t[176][a].charCodeAt(0) !== 65533) {
            r[t[176][a]] = 45056 + a;
            e[45056 + a] = t[176][a]
        }
    t[177] = "�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split("");
    for (a = 0; a != t[177].length; ++a)
        if (t[177][a].charCodeAt(0) !== 65533) {
            r[t[177][a]] = 45312 + a;
            e[45312 + a] = t[177][a]
        }
    t[178] = "�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split("");
    for (a = 0; a != t[178].length; ++a)
        if (t[178][a].charCodeAt(0) !== 65533) {
            r[t[178][a]] = 45568 + a;
            e[45568 + a] = t[178][a]
        }
    t[179] = "�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split("");
    for (a = 0; a != t[179].length; ++a)
        if (t[179][a].charCodeAt(0) !== 65533) {
            r[t[179][a]] = 45824 + a;
            e[45824 + a] = t[179][a]
        }
    t[180] = "�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split("");
    for (a = 0; a != t[180].length; ++a)
        if (t[180][a].charCodeAt(0) !== 65533) {
            r[t[180][a]] = 46080 + a;
            e[46080 + a] = t[180][a]
        }
    t[181] = "�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split("");
    for (a = 0; a != t[181].length; ++a)
        if (t[181][a].charCodeAt(0) !== 65533) {
            r[t[181][a]] = 46336 + a;
            e[46336 + a] = t[181][a]
        }
    t[182] = "�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split("");
    for (a = 0; a != t[182].length; ++a)
        if (t[182][a].charCodeAt(0) !== 65533) {
            r[t[182][a]] = 46592 + a;
            e[46592 + a] = t[182][a]
        }
    t[183] = "�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split("");
    for (a = 0; a != t[183].length; ++a)
        if (t[183][a].charCodeAt(0) !== 65533) {
            r[t[183][a]] = 46848 + a;
            e[46848 + a] = t[183][a]
        }
    t[184] = "�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split("");
    for (a = 0; a != t[184].length; ++a)
        if (t[184][a].charCodeAt(0) !== 65533) {
            r[t[184][a]] = 47104 + a;
            e[47104 + a] = t[184][a]
        }
    t[185] = "�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split("");
    for (a = 0; a != t[185].length; ++a)
        if (t[185][a].charCodeAt(0) !== 65533) {
            r[t[185][a]] = 47360 + a;
            e[47360 + a] = t[185][a]
        }
    t[186] = "�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split("");
    for (a = 0; a != t[186].length; ++a)
        if (t[186][a].charCodeAt(0) !== 65533) {
            r[t[186][a]] = 47616 + a;
            e[47616 + a] = t[186][a]
        }
    t[187] = "�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split("");
    for (a = 0; a != t[187].length; ++a)
        if (t[187][a].charCodeAt(0) !== 65533) {
            r[t[187][a]] = 47872 + a;
            e[47872 + a] = t[187][a]
        }
    t[188] = "�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split("");
    for (a = 0; a != t[188].length; ++a)
        if (t[188][a].charCodeAt(0) !== 65533) {
            r[t[188][a]] = 48128 + a;
            e[48128 + a] = t[188][a]
        }
    t[189] = "�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split("");
    for (a = 0; a != t[189].length; ++a)
        if (t[189][a].charCodeAt(0) !== 65533) {
            r[t[189][a]] = 48384 + a;
            e[48384 + a] = t[189][a]
        }
    t[190] = "�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split("");
    for (a = 0; a != t[190].length; ++a)
        if (t[190][a].charCodeAt(0) !== 65533) {
            r[t[190][a]] = 48640 + a;
            e[48640 + a] = t[190][a]
        }
    t[191] = "�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split("");
    for (a = 0; a != t[191].length; ++a)
        if (t[191][a].charCodeAt(0) !== 65533) {
            r[t[191][a]] = 48896 + a;
            e[48896 + a] = t[191][a]
        }
    t[192] = "�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split("");
    for (a = 0; a != t[192].length; ++a)
        if (t[192][a].charCodeAt(0) !== 65533) {
            r[t[192][a]] = 49152 + a;
            e[49152 + a] = t[192][a]
        }
    t[193] = "�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split("");
    for (a = 0; a != t[193].length; ++a)
        if (t[193][a].charCodeAt(0) !== 65533) {
            r[t[193][a]] = 49408 + a;
            e[49408 + a] = t[193][a]
        }
    t[194] = "�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split("");
    for (a = 0; a != t[194].length; ++a)
        if (t[194][a].charCodeAt(0) !== 65533) {
            r[t[194][a]] = 49664 + a;
            e[49664 + a] = t[194][a]
        }
    t[195] = "�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split("");
    for (a = 0; a != t[195].length; ++a)
        if (t[195][a].charCodeAt(0) !== 65533) {
            r[t[195][a]] = 49920 + a;
            e[49920 + a] = t[195][a]
        }
    t[196] = "�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split("");
    for (a = 0; a != t[196].length; ++a)
        if (t[196][a].charCodeAt(0) !== 65533) {
            r[t[196][a]] = 50176 + a;
            e[50176 + a] = t[196][a]
        }
    t[197] = "�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split("");
    for (a = 0; a != t[197].length; ++a)
        if (t[197][a].charCodeAt(0) !== 65533) {
            r[t[197][a]] = 50432 + a;
            e[50432 + a] = t[197][a]
        }
    t[198] = "�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split("");
    for (a = 0; a != t[198].length; ++a)
        if (t[198][a].charCodeAt(0) !== 65533) {
            r[t[198][a]] = 50688 + a;
            e[50688 + a] = t[198][a]
        }
    t[199] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split("");
    for (a = 0; a != t[199].length; ++a)
        if (t[199][a].charCodeAt(0) !== 65533) {
            r[t[199][a]] = 50944 + a;
            e[50944 + a] = t[199][a]
        }
    t[200] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split("");
    for (a = 0; a != t[200].length; ++a)
        if (t[200][a].charCodeAt(0) !== 65533) {
            r[t[200][a]] = 51200 + a;
            e[51200 + a] = t[200][a]
        }
    t[202] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split("");
    for (a = 0; a != t[202].length; ++a)
        if (t[202][a].charCodeAt(0) !== 65533) {
            r[t[202][a]] = 51712 + a;
            e[51712 + a] = t[202][a]
        }
    t[203] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split("");
    for (a = 0; a != t[203].length; ++a)
        if (t[203][a].charCodeAt(0) !== 65533) {
            r[t[203][a]] = 51968 + a;
            e[51968 + a] = t[203][a]
        }
    t[204] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split("");
    for (a = 0; a != t[204].length; ++a)
        if (t[204][a].charCodeAt(0) !== 65533) {
            r[t[204][a]] = 52224 + a;
            e[52224 + a] = t[204][a]
        }
    t[205] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split("");
    for (a = 0; a != t[205].length; ++a)
        if (t[205][a].charCodeAt(0) !== 65533) {
            r[t[205][a]] = 52480 + a;
            e[52480 + a] = t[205][a]
        }
    t[206] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split("");
    for (a = 0; a != t[206].length; ++a)
        if (t[206][a].charCodeAt(0) !== 65533) {
            r[t[206][a]] = 52736 + a;
            e[52736 + a] = t[206][a]
        }
    t[207] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split("");
    for (a = 0; a != t[207].length; ++a)
        if (t[207][a].charCodeAt(0) !== 65533) {
            r[t[207][a]] = 52992 + a;
            e[52992 + a] = t[207][a]
        }
    t[208] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split("");
    for (a = 0; a != t[208].length; ++a)
        if (t[208][a].charCodeAt(0) !== 65533) {
            r[t[208][a]] = 53248 + a;
            e[53248 + a] = t[208][a]
        }
    t[209] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split("");
    for (a = 0; a != t[209].length; ++a)
        if (t[209][a].charCodeAt(0) !== 65533) {
            r[t[209][a]] = 53504 + a;
            e[53504 + a] = t[209][a]
        }
    t[210] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split("");
    for (a = 0; a != t[210].length; ++a)
        if (t[210][a].charCodeAt(0) !== 65533) {
            r[t[210][a]] = 53760 + a;
            e[53760 + a] = t[210][a]
        }
    t[211] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split("");
    for (a = 0; a != t[211].length; ++a)
        if (t[211][a].charCodeAt(0) !== 65533) {
            r[t[211][a]] = 54016 + a;
            e[54016 + a] = t[211][a]
        }
    t[212] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split("");
    for (a = 0; a != t[212].length; ++a)
        if (t[212][a].charCodeAt(0) !== 65533) {
            r[t[212][a]] = 54272 + a;
            e[54272 + a] = t[212][a]
        }
    t[213] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split("");
    for (a = 0; a != t[213].length; ++a)
        if (t[213][a].charCodeAt(0) !== 65533) {
            r[t[213][a]] = 54528 + a;
            e[54528 + a] = t[213][a]
        }
    t[214] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split("");
    for (a = 0; a != t[214].length; ++a)
        if (t[214][a].charCodeAt(0) !== 65533) {
            r[t[214][a]] = 54784 + a;
            e[54784 + a] = t[214][a]
        }
    t[215] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split("");
    for (a = 0; a != t[215].length; ++a)
        if (t[215][a].charCodeAt(0) !== 65533) {
            r[t[215][a]] = 55040 + a;
            e[55040 + a] = t[215][a]
        }
    t[216] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split("");
    for (a = 0; a != t[216].length; ++a)
        if (t[216][a].charCodeAt(0) !== 65533) {
            r[t[216][a]] = 55296 + a;
            e[55296 + a] = t[216][a]
        }
    t[217] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split("");
    for (a = 0; a != t[217].length; ++a)
        if (t[217][a].charCodeAt(0) !== 65533) {
            r[t[217][a]] = 55552 + a;
            e[55552 + a] = t[217][a]
        }
    t[218] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split("");
    for (a = 0; a != t[218].length; ++a)
        if (t[218][a].charCodeAt(0) !== 65533) {
            r[t[218][a]] = 55808 + a;
            e[55808 + a] = t[218][a]
        }
    t[219] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split("");
    for (a = 0; a != t[219].length; ++a)
        if (t[219][a].charCodeAt(0) !== 65533) {
            r[t[219][a]] = 56064 + a;
            e[56064 + a] = t[219][a]
        }
    t[220] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split("");
    for (a = 0; a != t[220].length; ++a)
        if (t[220][a].charCodeAt(0) !== 65533) {
            r[t[220][a]] = 56320 + a;
            e[56320 + a] = t[220][a]
        }
    t[221] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split("");
    for (a = 0; a != t[221].length; ++a)
        if (t[221][a].charCodeAt(0) !== 65533) {
            r[t[221][a]] = 56576 + a;
            e[56576 + a] = t[221][a]
        }
    t[222] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split("");
    for (a = 0; a != t[222].length; ++a)
        if (t[222][a].charCodeAt(0) !== 65533) {
            r[t[222][a]] = 56832 + a;
            e[56832 + a] = t[222][a]
        }
    t[223] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split("");
    for (a = 0; a != t[223].length; ++a)
        if (t[223][a].charCodeAt(0) !== 65533) {
            r[t[223][a]] = 57088 + a;
            e[57088 + a] = t[223][a]
        }
    t[224] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split("");
    for (a = 0; a != t[224].length; ++a)
        if (t[224][a].charCodeAt(0) !== 65533) {
            r[t[224][a]] = 57344 + a;
            e[57344 + a] = t[224][a]
        }
    t[225] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split("");
    for (a = 0; a != t[225].length; ++a)
        if (t[225][a].charCodeAt(0) !== 65533) {
            r[t[225][a]] = 57600 + a;
            e[57600 + a] = t[225][a]
        }
    t[226] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split("");
    for (a = 0; a != t[226].length; ++a)
        if (t[226][a].charCodeAt(0) !== 65533) {
            r[t[226][a]] = 57856 + a;
            e[57856 + a] = t[226][a]
        }
    t[227] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split("");
    for (a = 0; a != t[227].length; ++a)
        if (t[227][a].charCodeAt(0) !== 65533) {
            r[t[227][a]] = 58112 + a;
            e[58112 + a] = t[227][a]
        }
    t[228] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split("");
    for (a = 0; a != t[228].length; ++a)
        if (t[228][a].charCodeAt(0) !== 65533) {
            r[t[228][a]] = 58368 + a;
            e[58368 + a] = t[228][a]
        }
    t[229] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split("");
    for (a = 0; a != t[229].length; ++a)
        if (t[229][a].charCodeAt(0) !== 65533) {
            r[t[229][a]] = 58624 + a;
            e[58624 + a] = t[229][a]
        }
    t[230] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split("");
    for (a = 0; a != t[230].length; ++a)
        if (t[230][a].charCodeAt(0) !== 65533) {
            r[t[230][a]] = 58880 + a;
            e[58880 + a] = t[230][a]
        }
    t[231] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split("");
    for (a = 0; a != t[231].length; ++a)
        if (t[231][a].charCodeAt(0) !== 65533) {
            r[t[231][a]] = 59136 + a;
            e[59136 + a] = t[231][a]
        }
    t[232] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split("");
    for (a = 0; a != t[232].length; ++a)
        if (t[232][a].charCodeAt(0) !== 65533) {
            r[t[232][a]] = 59392 + a;
            e[59392 + a] = t[232][a]
        }
    t[233] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split("");
    for (a = 0; a != t[233].length; ++a)
        if (t[233][a].charCodeAt(0) !== 65533) {
            r[t[233][a]] = 59648 + a;
            e[59648 + a] = t[233][a]
        }
    t[234] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split("");
    for (a = 0; a != t[234].length; ++a)
        if (t[234][a].charCodeAt(0) !== 65533) {
            r[t[234][a]] = 59904 + a;
            e[59904 + a] = t[234][a]
        }
    t[235] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split("");
    for (a = 0; a != t[235].length; ++a)
        if (t[235][a].charCodeAt(0) !== 65533) {
            r[t[235][a]] = 60160 + a;
            e[60160 + a] = t[235][a]
        }
    t[236] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split("");
    for (a = 0; a != t[236].length; ++a)
        if (t[236][a].charCodeAt(0) !== 65533) {
            r[t[236][a]] = 60416 + a;
            e[60416 + a] = t[236][a]
        }
    t[237] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split("");
    for (a = 0; a != t[237].length; ++a)
        if (t[237][a].charCodeAt(0) !== 65533) {
            r[t[237][a]] = 60672 + a;
            e[60672 + a] = t[237][a]
        }
    t[238] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split("");
    for (a = 0; a != t[238].length; ++a)
        if (t[238][a].charCodeAt(0) !== 65533) {
            r[t[238][a]] = 60928 + a;
            e[60928 + a] = t[238][a]
        }
    t[239] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split("");
    for (a = 0; a != t[239].length; ++a)
        if (t[239][a].charCodeAt(0) !== 65533) {
            r[t[239][a]] = 61184 + a;
            e[61184 + a] = t[239][a]
        }
    t[240] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split("");
    for (a = 0; a != t[240].length; ++a)
        if (t[240][a].charCodeAt(0) !== 65533) {
            r[t[240][a]] = 61440 + a;
            e[61440 + a] = t[240][a]
        }
    t[241] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split("");
    for (a = 0; a != t[241].length; ++a)
        if (t[241][a].charCodeAt(0) !== 65533) {
            r[t[241][a]] = 61696 + a;
            e[61696 + a] = t[241][a]
        }
    t[242] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split("");
    for (a = 0; a != t[242].length; ++a)
        if (t[242][a].charCodeAt(0) !== 65533) {
            r[t[242][a]] = 61952 + a;
            e[61952 + a] = t[242][a]
        }
    t[243] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split("");
    for (a = 0; a != t[243].length; ++a)
        if (t[243][a].charCodeAt(0) !== 65533) {
            r[t[243][a]] = 62208 + a;
            e[62208 + a] = t[243][a]
        }
    t[244] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split("");
    for (a = 0; a != t[244].length; ++a)
        if (t[244][a].charCodeAt(0) !== 65533) {
            r[t[244][a]] = 62464 + a;
            e[62464 + a] = t[244][a]
        }
    t[245] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split("");
    for (a = 0; a != t[245].length; ++a)
        if (t[245][a].charCodeAt(0) !== 65533) {
            r[t[245][a]] = 62720 + a;
            e[62720 + a] = t[245][a]
        }
    t[246] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split("");
    for (a = 0; a != t[246].length; ++a)
        if (t[246][a].charCodeAt(0) !== 65533) {
            r[t[246][a]] = 62976 + a;
            e[62976 + a] = t[246][a]
        }
    t[247] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split("");
    for (a = 0; a != t[247].length; ++a)
        if (t[247][a].charCodeAt(0) !== 65533) {
            r[t[247][a]] = 63232 + a;
            e[63232 + a] = t[247][a]
        }
    t[248] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split("");
    for (a = 0; a != t[248].length; ++a)
        if (t[248][a].charCodeAt(0) !== 65533) {
            r[t[248][a]] = 63488 + a;
            e[63488 + a] = t[248][a]
        }
    t[249] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split("");
    for (a = 0; a != t[249].length; ++a)
        if (t[249][a].charCodeAt(0) !== 65533) {
            r[t[249][a]] = 63744 + a;
            e[63744 + a] = t[249][a]
        }
    t[250] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split("");
    for (a = 0; a != t[250].length; ++a)
        if (t[250][a].charCodeAt(0) !== 65533) {
            r[t[250][a]] = 64e3 + a;
            e[64e3 + a] = t[250][a]
        }
    t[251] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split("");
    for (a = 0; a != t[251].length; ++a)
        if (t[251][a].charCodeAt(0) !== 65533) {
            r[t[251][a]] = 64256 + a;
            e[64256 + a] = t[251][a]
        }
    t[252] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split("");
    for (a = 0; a != t[252].length; ++a)
        if (t[252][a].charCodeAt(0) !== 65533) {
            r[t[252][a]] = 64512 + a;
            e[64512 + a] = t[252][a]
        }
    t[253] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split("");
    for (a = 0; a != t[253].length; ++a)
        if (t[253][a].charCodeAt(0) !== 65533) {
            r[t[253][a]] = 64768 + a;
            e[64768 + a] = t[253][a]
        }
    return {
        enc: r,
        dec: e
    }
}();
cptable[950] = function() {
    var e = [], r = {}, t = [], a;
    t[0] = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[0].length; ++a)
        if (t[0][a].charCodeAt(0) !== 65533) {
            r[t[0][a]] = 0 + a;
            e[0 + a] = t[0][a]
        }
    t[161] = "����������������������������������������������������������������　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢﹣﹤﹥﹦～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／�".split("");
    for (a = 0; a != t[161].length; ++a)
        if (t[161][a].charCodeAt(0) !== 65533) {
            r[t[161][a]] = 41216 + a;
            e[41216 + a] = t[161][a]
        }
    t[162] = "����������������������������������������������������������������＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳０１２３４５６７８９ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖ�".split("");
    for (a = 0; a != t[162].length; ++a)
        if (t[162][a].charCodeAt(0) !== 65533) {
            r[t[162][a]] = 41472 + a;
            e[41472 + a] = t[162][a]
        }
    t[163] = "����������������������������������������������������������������ｗｘｙｚΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split("");
    for (a = 0; a != t[163].length; ++a)
        if (t[163][a].charCodeAt(0) !== 65533) {
            r[t[163][a]] = 41728 + a;
            e[41728 + a] = t[163][a]
        }
    t[164] = "����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split("");
    for (a = 0; a != t[164].length; ++a)
        if (t[164][a].charCodeAt(0) !== 65533) {
            r[t[164][a]] = 41984 + a;
            e[41984 + a] = t[164][a]
        }
    t[165] = "����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split("");
    for (a = 0; a != t[165].length; ++a)
        if (t[165][a].charCodeAt(0) !== 65533) {
            r[t[165][a]] = 42240 + a;
            e[42240 + a] = t[165][a]
        }
    t[166] = "����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split("");
    for (a = 0; a != t[166].length; ++a)
        if (t[166][a].charCodeAt(0) !== 65533) {
            r[t[166][a]] = 42496 + a;
            e[42496 + a] = t[166][a]
        }
    t[167] = "����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split("");
    for (a = 0; a != t[167].length; ++a)
        if (t[167][a].charCodeAt(0) !== 65533) {
            r[t[167][a]] = 42752 + a;
            e[42752 + a] = t[167][a]
        }
    t[168] = "����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split("");
    for (a = 0; a != t[168].length; ++a)
        if (t[168][a].charCodeAt(0) !== 65533) {
            r[t[168][a]] = 43008 + a;
            e[43008 + a] = t[168][a]
        }
    t[169] = "����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split("");
    for (a = 0; a != t[169].length; ++a)
        if (t[169][a].charCodeAt(0) !== 65533) {
            r[t[169][a]] = 43264 + a;
            e[43264 + a] = t[169][a]
        }
    t[170] = "����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split("");
    for (a = 0; a != t[170].length; ++a)
        if (t[170][a].charCodeAt(0) !== 65533) {
            r[t[170][a]] = 43520 + a;
            e[43520 + a] = t[170][a]
        }
    t[171] = "����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split("");
    for (a = 0; a != t[171].length; ++a)
        if (t[171][a].charCodeAt(0) !== 65533) {
            r[t[171][a]] = 43776 + a;
            e[43776 + a] = t[171][a]
        }
    t[172] = "����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split("");
    for (a = 0; a != t[172].length; ++a)
        if (t[172][a].charCodeAt(0) !== 65533) {
            r[t[172][a]] = 44032 + a;
            e[44032 + a] = t[172][a]
        }
    t[173] = "����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split("");
    for (a = 0; a != t[173].length; ++a)
        if (t[173][a].charCodeAt(0) !== 65533) {
            r[t[173][a]] = 44288 + a;
            e[44288 + a] = t[173][a]
        }
    t[174] = "����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split("");
    for (a = 0; a != t[174].length; ++a)
        if (t[174][a].charCodeAt(0) !== 65533) {
            r[t[174][a]] = 44544 + a;
            e[44544 + a] = t[174][a]
        }
    t[175] = "����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split("");
    for (a = 0; a != t[175].length; ++a)
        if (t[175][a].charCodeAt(0) !== 65533) {
            r[t[175][a]] = 44800 + a;
            e[44800 + a] = t[175][a]
        }
    t[176] = "����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split("");
    for (a = 0; a != t[176].length; ++a)
        if (t[176][a].charCodeAt(0) !== 65533) {
            r[t[176][a]] = 45056 + a;
            e[45056 + a] = t[176][a]
        }
    t[177] = "����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split("");
    for (a = 0; a != t[177].length; ++a)
        if (t[177][a].charCodeAt(0) !== 65533) {
            r[t[177][a]] = 45312 + a;
            e[45312 + a] = t[177][a]
        }
    t[178] = "����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split("");
    for (a = 0; a != t[178].length; ++a)
        if (t[178][a].charCodeAt(0) !== 65533) {
            r[t[178][a]] = 45568 + a;
            e[45568 + a] = t[178][a]
        }
    t[179] = "����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split("");
    for (a = 0; a != t[179].length; ++a)
        if (t[179][a].charCodeAt(0) !== 65533) {
            r[t[179][a]] = 45824 + a;
            e[45824 + a] = t[179][a]
        }
    t[180] = "����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split("");
    for (a = 0; a != t[180].length; ++a)
        if (t[180][a].charCodeAt(0) !== 65533) {
            r[t[180][a]] = 46080 + a;
            e[46080 + a] = t[180][a]
        }
    t[181] = "����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split("");
    for (a = 0; a != t[181].length; ++a)
        if (t[181][a].charCodeAt(0) !== 65533) {
            r[t[181][a]] = 46336 + a;
            e[46336 + a] = t[181][a]
        }
    t[182] = "����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split("");
    for (a = 0; a != t[182].length; ++a)
        if (t[182][a].charCodeAt(0) !== 65533) {
            r[t[182][a]] = 46592 + a;
            e[46592 + a] = t[182][a]
        }
    t[183] = "����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split("");
    for (a = 0; a != t[183].length; ++a)
        if (t[183][a].charCodeAt(0) !== 65533) {
            r[t[183][a]] = 46848 + a;
            e[46848 + a] = t[183][a]
        }
    t[184] = "����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split("");
    for (a = 0; a != t[184].length; ++a)
        if (t[184][a].charCodeAt(0) !== 65533) {
            r[t[184][a]] = 47104 + a;
            e[47104 + a] = t[184][a]
        }
    t[185] = "����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split("");
    for (a = 0; a != t[185].length; ++a)
        if (t[185][a].charCodeAt(0) !== 65533) {
            r[t[185][a]] = 47360 + a;
            e[47360 + a] = t[185][a]
        }
    t[186] = "����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split("");
    for (a = 0; a != t[186].length; ++a)
        if (t[186][a].charCodeAt(0) !== 65533) {
            r[t[186][a]] = 47616 + a;
            e[47616 + a] = t[186][a]
        }
    t[187] = "����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split("");
    for (a = 0; a != t[187].length; ++a)
        if (t[187][a].charCodeAt(0) !== 65533) {
            r[t[187][a]] = 47872 + a;
            e[47872 + a] = t[187][a]
        }
    t[188] = "����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split("");
    for (a = 0; a != t[188].length; ++a)
        if (t[188][a].charCodeAt(0) !== 65533) {
            r[t[188][a]] = 48128 + a;
            e[48128 + a] = t[188][a]
        }
    t[189] = "����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split("");
    for (a = 0; a != t[189].length; ++a)
        if (t[189][a].charCodeAt(0) !== 65533) {
            r[t[189][a]] = 48384 + a;
            e[48384 + a] = t[189][a]
        }
    t[190] = "����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split("");
    for (a = 0; a != t[190].length; ++a)
        if (t[190][a].charCodeAt(0) !== 65533) {
            r[t[190][a]] = 48640 + a;
            e[48640 + a] = t[190][a]
        }
    t[191] = "����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split("");
    for (a = 0; a != t[191].length; ++a)
        if (t[191][a].charCodeAt(0) !== 65533) {
            r[t[191][a]] = 48896 + a;
            e[48896 + a] = t[191][a]
        }
    t[192] = "����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split("");
    for (a = 0; a != t[192].length; ++a)
        if (t[192][a].charCodeAt(0) !== 65533) {
            r[t[192][a]] = 49152 + a;
            e[49152 + a] = t[192][a]
        }
    t[193] = "����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split("");
    for (a = 0; a != t[193].length; ++a)
        if (t[193][a].charCodeAt(0) !== 65533) {
            r[t[193][a]] = 49408 + a;
            e[49408 + a] = t[193][a]
        }
    t[194] = "����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split("");
    for (a = 0; a != t[194].length; ++a)
        if (t[194][a].charCodeAt(0) !== 65533) {
            r[t[194][a]] = 49664 + a;
            e[49664 + a] = t[194][a]
        }
    t[195] = "����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split("");
    for (a = 0; a != t[195].length; ++a)
        if (t[195][a].charCodeAt(0) !== 65533) {
            r[t[195][a]] = 49920 + a;
            e[49920 + a] = t[195][a]
        }
    t[196] = "����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split("");
    for (a = 0; a != t[196].length; ++a)
        if (t[196][a].charCodeAt(0) !== 65533) {
            r[t[196][a]] = 50176 + a;
            e[50176 + a] = t[196][a]
        }
    t[197] = "����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split("");
    for (a = 0; a != t[197].length; ++a)
        if (t[197][a].charCodeAt(0) !== 65533) {
            r[t[197][a]] = 50432 + a;
            e[50432 + a] = t[197][a]
        }
    t[198] = "����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[198].length; ++a)
        if (t[198][a].charCodeAt(0) !== 65533) {
            r[t[198][a]] = 50688 + a;
            e[50688 + a] = t[198][a]
        }
    t[201] = "����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split("");
    for (a = 0; a != t[201].length; ++a)
        if (t[201][a].charCodeAt(0) !== 65533) {
            r[t[201][a]] = 51456 + a;
            e[51456 + a] = t[201][a]
        }
    t[202] = "����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split("");
    for (a = 0; a != t[202].length; ++a)
        if (t[202][a].charCodeAt(0) !== 65533) {
            r[t[202][a]] = 51712 + a;
            e[51712 + a] = t[202][a]
        }
    t[203] = "����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split("");
    for (a = 0; a != t[203].length; ++a)
        if (t[203][a].charCodeAt(0) !== 65533) {
            r[t[203][a]] = 51968 + a;
            e[51968 + a] = t[203][a]
        }
    t[204] = "����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split("");
    for (a = 0; a != t[204].length; ++a)
        if (t[204][a].charCodeAt(0) !== 65533) {
            r[t[204][a]] = 52224 + a;
            e[52224 + a] = t[204][a]
        }
    t[205] = "����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split("");
    for (a = 0; a != t[205].length; ++a)
        if (t[205][a].charCodeAt(0) !== 65533) {
            r[t[205][a]] = 52480 + a;
            e[52480 + a] = t[205][a]
        }
    t[206] = "����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split("");
    for (a = 0; a != t[206].length; ++a)
        if (t[206][a].charCodeAt(0) !== 65533) {
            r[t[206][a]] = 52736 + a;
            e[52736 + a] = t[206][a]
        }
    t[207] = "����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split("");
    for (a = 0; a != t[207].length; ++a)
        if (t[207][a].charCodeAt(0) !== 65533) {
            r[t[207][a]] = 52992 + a;
            e[52992 + a] = t[207][a]
        }
    t[208] = "����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split("");
    for (a = 0; a != t[208].length; ++a)
        if (t[208][a].charCodeAt(0) !== 65533) {
            r[t[208][a]] = 53248 + a;
            e[53248 + a] = t[208][a]
        }
    t[209] = "����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split("");
    for (a = 0; a != t[209].length; ++a)
        if (t[209][a].charCodeAt(0) !== 65533) {
            r[t[209][a]] = 53504 + a;
            e[53504 + a] = t[209][a]
        }
    t[210] = "����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split("");
    for (a = 0; a != t[210].length; ++a)
        if (t[210][a].charCodeAt(0) !== 65533) {
            r[t[210][a]] = 53760 + a;
            e[53760 + a] = t[210][a]
        }
    t[211] = "����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split("");
    for (a = 0; a != t[211].length; ++a)
        if (t[211][a].charCodeAt(0) !== 65533) {
            r[t[211][a]] = 54016 + a;
            e[54016 + a] = t[211][a]
        }
    t[212] = "����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split("");
    for (a = 0; a != t[212].length; ++a)
        if (t[212][a].charCodeAt(0) !== 65533) {
            r[t[212][a]] = 54272 + a;
            e[54272 + a] = t[212][a]
        }
    t[213] = "����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split("");
    for (a = 0; a != t[213].length; ++a)
        if (t[213][a].charCodeAt(0) !== 65533) {
            r[t[213][a]] = 54528 + a;
            e[54528 + a] = t[213][a]
        }
    t[214] = "����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split("");
    for (a = 0; a != t[214].length; ++a)
        if (t[214][a].charCodeAt(0) !== 65533) {
            r[t[214][a]] = 54784 + a;
            e[54784 + a] = t[214][a]
        }
    t[215] = "����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split("");
    for (a = 0; a != t[215].length; ++a)
        if (t[215][a].charCodeAt(0) !== 65533) {
            r[t[215][a]] = 55040 + a;
            e[55040 + a] = t[215][a]
        }
    t[216] = "����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split("");
    for (a = 0; a != t[216].length; ++a)
        if (t[216][a].charCodeAt(0) !== 65533) {
            r[t[216][a]] = 55296 + a;
            e[55296 + a] = t[216][a]
        }
    t[217] = "����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split("");
    for (a = 0; a != t[217].length; ++a)
        if (t[217][a].charCodeAt(0) !== 65533) {
            r[t[217][a]] = 55552 + a;
            e[55552 + a] = t[217][a]
        }
    t[218] = "����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split("");
    for (a = 0; a != t[218].length; ++a)
        if (t[218][a].charCodeAt(0) !== 65533) {
            r[t[218][a]] = 55808 + a;
            e[55808 + a] = t[218][a]
        }
    t[219] = "����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split("");
    for (a = 0; a != t[219].length; ++a)
        if (t[219][a].charCodeAt(0) !== 65533) {
            r[t[219][a]] = 56064 + a;
            e[56064 + a] = t[219][a]
        }
    t[220] = "����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split("");
    for (a = 0; a != t[220].length; ++a)
        if (t[220][a].charCodeAt(0) !== 65533) {
            r[t[220][a]] = 56320 + a;
            e[56320 + a] = t[220][a]
        }
    t[221] = "����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split("");
    for (a = 0; a != t[221].length; ++a)
        if (t[221][a].charCodeAt(0) !== 65533) {
            r[t[221][a]] = 56576 + a;
            e[56576 + a] = t[221][a]
        }
    t[222] = "����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split("");
    for (a = 0; a != t[222].length; ++a)
        if (t[222][a].charCodeAt(0) !== 65533) {
            r[t[222][a]] = 56832 + a;
            e[56832 + a] = t[222][a]
        }
    t[223] = "����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split("");
    for (a = 0; a != t[223].length; ++a)
        if (t[223][a].charCodeAt(0) !== 65533) {
            r[t[223][a]] = 57088 + a;
            e[57088 + a] = t[223][a]
        }
    t[224] = "����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split("");
    for (a = 0; a != t[224].length; ++a)
        if (t[224][a].charCodeAt(0) !== 65533) {
            r[t[224][a]] = 57344 + a;
            e[57344 + a] = t[224][a]
        }
    t[225] = "����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split("");
    for (a = 0; a != t[225].length; ++a)
        if (t[225][a].charCodeAt(0) !== 65533) {
            r[t[225][a]] = 57600 + a;
            e[57600 + a] = t[225][a]
        }
    t[226] = "����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split("");
    for (a = 0; a != t[226].length; ++a)
        if (t[226][a].charCodeAt(0) !== 65533) {
            r[t[226][a]] = 57856 + a;
            e[57856 + a] = t[226][a]
        }
    t[227] = "����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split("");
    for (a = 0; a != t[227].length; ++a)
        if (t[227][a].charCodeAt(0) !== 65533) {
            r[t[227][a]] = 58112 + a;
            e[58112 + a] = t[227][a]
        }
    t[228] = "����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split("");
    for (a = 0; a != t[228].length; ++a)
        if (t[228][a].charCodeAt(0) !== 65533) {
            r[t[228][a]] = 58368 + a;
            e[58368 + a] = t[228][a]
        }
    t[229] = "����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split("");
    for (a = 0; a != t[229].length; ++a)
        if (t[229][a].charCodeAt(0) !== 65533) {
            r[t[229][a]] = 58624 + a;
            e[58624 + a] = t[229][a]
        }
    t[230] = "����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split("");
    for (a = 0; a != t[230].length; ++a)
        if (t[230][a].charCodeAt(0) !== 65533) {
            r[t[230][a]] = 58880 + a;
            e[58880 + a] = t[230][a]
        }
    t[231] = "����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split("");
    for (a = 0; a != t[231].length; ++a)
        if (t[231][a].charCodeAt(0) !== 65533) {
            r[t[231][a]] = 59136 + a;
            e[59136 + a] = t[231][a]
        }
    t[232] = "����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split("");
    for (a = 0; a != t[232].length; ++a)
        if (t[232][a].charCodeAt(0) !== 65533) {
            r[t[232][a]] = 59392 + a;
            e[59392 + a] = t[232][a]
        }
    t[233] = "����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split("");
    for (a = 0; a != t[233].length; ++a)
        if (t[233][a].charCodeAt(0) !== 65533) {
            r[t[233][a]] = 59648 + a;
            e[59648 + a] = t[233][a]
        }
    t[234] = "����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split("");
    for (a = 0; a != t[234].length; ++a)
        if (t[234][a].charCodeAt(0) !== 65533) {
            r[t[234][a]] = 59904 + a;
            e[59904 + a] = t[234][a]
        }
    t[235] = "����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split("");
    for (a = 0; a != t[235].length; ++a)
        if (t[235][a].charCodeAt(0) !== 65533) {
            r[t[235][a]] = 60160 + a;
            e[60160 + a] = t[235][a]
        }
    t[236] = "����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split("");
    for (a = 0; a != t[236].length; ++a)
        if (t[236][a].charCodeAt(0) !== 65533) {
            r[t[236][a]] = 60416 + a;
            e[60416 + a] = t[236][a]
        }
    t[237] = "����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split("");
    for (a = 0; a != t[237].length; ++a)
        if (t[237][a].charCodeAt(0) !== 65533) {
            r[t[237][a]] = 60672 + a;
            e[60672 + a] = t[237][a]
        }
    t[238] = "����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split("");
    for (a = 0; a != t[238].length; ++a)
        if (t[238][a].charCodeAt(0) !== 65533) {
            r[t[238][a]] = 60928 + a;
            e[60928 + a] = t[238][a]
        }
    t[239] = "����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split("");
    for (a = 0; a != t[239].length; ++a)
        if (t[239][a].charCodeAt(0) !== 65533) {
            r[t[239][a]] = 61184 + a;
            e[61184 + a] = t[239][a]
        }
    t[240] = "����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split("");
    for (a = 0; a != t[240].length; ++a)
        if (t[240][a].charCodeAt(0) !== 65533) {
            r[t[240][a]] = 61440 + a;
            e[61440 + a] = t[240][a]
        }
    t[241] = "����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split("");
    for (a = 0; a != t[241].length; ++a)
        if (t[241][a].charCodeAt(0) !== 65533) {
            r[t[241][a]] = 61696 + a;
            e[61696 + a] = t[241][a]
        }
    t[242] = "����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split("");
    for (a = 0; a != t[242].length; ++a)
        if (t[242][a].charCodeAt(0) !== 65533) {
            r[t[242][a]] = 61952 + a;
            e[61952 + a] = t[242][a]
        }
    t[243] = "����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split("");
    for (a = 0; a != t[243].length; ++a)
        if (t[243][a].charCodeAt(0) !== 65533) {
            r[t[243][a]] = 62208 + a;
            e[62208 + a] = t[243][a]
        }
    t[244] = "����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split("");
    for (a = 0; a != t[244].length; ++a)
        if (t[244][a].charCodeAt(0) !== 65533) {
            r[t[244][a]] = 62464 + a;
            e[62464 + a] = t[244][a]
        }
    t[245] = "����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split("");
    for (a = 0; a != t[245].length; ++a)
        if (t[245][a].charCodeAt(0) !== 65533) {
            r[t[245][a]] = 62720 + a;
            e[62720 + a] = t[245][a]
        }
    t[246] = "����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split("");
    for (a = 0; a != t[246].length; ++a)
        if (t[246][a].charCodeAt(0) !== 65533) {
            r[t[246][a]] = 62976 + a;
            e[62976 + a] = t[246][a]
        }
    t[247] = "����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split("");
    for (a = 0; a != t[247].length; ++a)
        if (t[247][a].charCodeAt(0) !== 65533) {
            r[t[247][a]] = 63232 + a;
            e[63232 + a] = t[247][a]
        }
    t[248] = "����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split("");
    for (a = 0; a != t[248].length; ++a)
        if (t[248][a].charCodeAt(0) !== 65533) {
            r[t[248][a]] = 63488 + a;
            e[63488 + a] = t[248][a]
        }
    t[249] = "����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split("");
    for (a = 0; a != t[249].length; ++a)
        if (t[249][a].charCodeAt(0) !== 65533) {
            r[t[249][a]] = 63744 + a;
            e[63744 + a] = t[249][a]
        }
    return {
        enc: r,
        dec: e
    }
}();
cptable[1250] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1251] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1252] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1253] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1254] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1255] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1256] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1257] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1258] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[1e4] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[10006] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[10007] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[10008] = function() {
    var e = [], r = {}, t = [], a;
    t[0] = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������������������������������������������".split("");
    for (a = 0; a != t[0].length; ++a)
        if (t[0][a].charCodeAt(0) !== 65533) {
            r[t[0][a]] = 0 + a;
            e[0 + a] = t[0][a]
        }
    t[161] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������　、。・ˉˇ¨〃々―～�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split("");
    for (a = 0; a != t[161].length; ++a)
        if (t[161][a].charCodeAt(0) !== 65533) {
            r[t[161][a]] = 41216 + a;
            e[41216 + a] = t[161][a]
        }
    t[162] = "���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split("");
    for (a = 0; a != t[162].length; ++a)
        if (t[162][a].charCodeAt(0) !== 65533) {
            r[t[162][a]] = 41472 + a;
            e[41472 + a] = t[162][a]
        }
    t[163] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������！＂＃￥％＆＇（）＊＋，－．／０１２３４５６７８９：；＜＝＞？＠ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ［＼］＾＿｀ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ｛｜｝￣�".split("");
    for (a = 0; a != t[163].length; ++a)
        if (t[163][a].charCodeAt(0) !== 65533) {
            r[t[163][a]] = 41728 + a;
            e[41728 + a] = t[163][a]
        }
    t[164] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");
    for (a = 0; a != t[164].length; ++a)
        if (t[164][a].charCodeAt(0) !== 65533) {
            r[t[164][a]] = 41984 + a;
            e[41984 + a] = t[164][a]
        }
    t[165] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");
    for (a = 0; a != t[165].length; ++a)
        if (t[165][a].charCodeAt(0) !== 65533) {
            r[t[165][a]] = 42240 + a;
            e[42240 + a] = t[165][a]
        }
    t[166] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split("");
    for (a = 0; a != t[166].length; ++a)
        if (t[166][a].charCodeAt(0) !== 65533) {
            r[t[166][a]] = 42496 + a;
            e[42496 + a] = t[166][a]
        }
    t[167] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");
    for (a = 0; a != t[167].length; ++a)
        if (t[167][a].charCodeAt(0) !== 65533) {
            r[t[167][a]] = 42752 + a;
            e[42752 + a] = t[167][a]
        }
    t[168] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");
    for (a = 0; a != t[168].length; ++a)
        if (t[168][a].charCodeAt(0) !== 65533) {
            r[t[168][a]] = 43008 + a;
            e[43008 + a] = t[168][a]
        }
    t[169] = "��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");
    for (a = 0; a != t[169].length; ++a)
        if (t[169][a].charCodeAt(0) !== 65533) {
            r[t[169][a]] = 43264 + a;
            e[43264 + a] = t[169][a]
        }
    t[176] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");
    for (a = 0; a != t[176].length; ++a)
        if (t[176][a].charCodeAt(0) !== 65533) {
            r[t[176][a]] = 45056 + a;
            e[45056 + a] = t[176][a]
        }
    t[177] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");
    for (a = 0; a != t[177].length; ++a)
        if (t[177][a].charCodeAt(0) !== 65533) {
            r[t[177][a]] = 45312 + a;
            e[45312 + a] = t[177][a]
        }
    t[178] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split("");
    for (a = 0; a != t[178].length; ++a)
        if (t[178][a].charCodeAt(0) !== 65533) {
            r[t[178][a]] = 45568 + a;
            e[45568 + a] = t[178][a]
        }
    t[179] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split("");
    for (a = 0; a != t[179].length; ++a)
        if (t[179][a].charCodeAt(0) !== 65533) {
            r[t[179][a]] = 45824 + a;
            e[45824 + a] = t[179][a]
        }
    t[180] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split("");
    for (a = 0; a != t[180].length; ++a)
        if (t[180][a].charCodeAt(0) !== 65533) {
            r[t[180][a]] = 46080 + a;
            e[46080 + a] = t[180][a]
        }
    t[181] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split("");
    for (a = 0; a != t[181].length; ++a)
        if (t[181][a].charCodeAt(0) !== 65533) {
            r[t[181][a]] = 46336 + a;
            e[46336 + a] = t[181][a]
        }
    t[182] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split("");
    for (a = 0; a != t[182].length; ++a)
        if (t[182][a].charCodeAt(0) !== 65533) {
            r[t[182][a]] = 46592 + a;
            e[46592 + a] = t[182][a]
        }
    t[183] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split("");
    for (a = 0; a != t[183].length; ++a)
        if (t[183][a].charCodeAt(0) !== 65533) {
            r[t[183][a]] = 46848 + a;
            e[46848 + a] = t[183][a]
        }
    t[184] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split("");
    for (a = 0; a != t[184].length; ++a)
        if (t[184][a].charCodeAt(0) !== 65533) {
            r[t[184][a]] = 47104 + a;
            e[47104 + a] = t[184][a]
        }
    t[185] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split("");
    for (a = 0; a != t[185].length; ++a)
        if (t[185][a].charCodeAt(0) !== 65533) {
            r[t[185][a]] = 47360 + a;
            e[47360 + a] = t[185][a]
        }
    t[186] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split("");
    for (a = 0; a != t[186].length; ++a)
        if (t[186][a].charCodeAt(0) !== 65533) {
            r[t[186][a]] = 47616 + a;
            e[47616 + a] = t[186][a]
        }
    t[187] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split("");
    for (a = 0; a != t[187].length; ++a)
        if (t[187][a].charCodeAt(0) !== 65533) {
            r[t[187][a]] = 47872 + a;
            e[47872 + a] = t[187][a]
        }
    t[188] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split("");
    for (a = 0; a != t[188].length; ++a)
        if (t[188][a].charCodeAt(0) !== 65533) {
            r[t[188][a]] = 48128 + a;
            e[48128 + a] = t[188][a]
        }
    t[189] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split("");
    for (a = 0; a != t[189].length; ++a)
        if (t[189][a].charCodeAt(0) !== 65533) {
            r[t[189][a]] = 48384 + a;
            e[48384 + a] = t[189][a]
        }
    t[190] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split("");
    for (a = 0; a != t[190].length; ++a)
        if (t[190][a].charCodeAt(0) !== 65533) {
            r[t[190][a]] = 48640 + a;
            e[48640 + a] = t[190][a]
        }
    t[191] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split("");
    for (a = 0; a != t[191].length; ++a)
        if (t[191][a].charCodeAt(0) !== 65533) {
            r[t[191][a]] = 48896 + a;
            e[48896 + a] = t[191][a]
        }
    t[192] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split("");
    for (a = 0; a != t[192].length; ++a)
        if (t[192][a].charCodeAt(0) !== 65533) {
            r[t[192][a]] = 49152 + a;
            e[49152 + a] = t[192][a]
        }
    t[193] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split("");
    for (a = 0; a != t[193].length; ++a)
        if (t[193][a].charCodeAt(0) !== 65533) {
            r[t[193][a]] = 49408 + a;
            e[49408 + a] = t[193][a]
        }
    t[194] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split("");
    for (a = 0; a != t[194].length; ++a)
        if (t[194][a].charCodeAt(0) !== 65533) {
            r[t[194][a]] = 49664 + a;
            e[49664 + a] = t[194][a]
        }
    t[195] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split("");
    for (a = 0; a != t[195].length; ++a)
        if (t[195][a].charCodeAt(0) !== 65533) {
            r[t[195][a]] = 49920 + a;
            e[49920 + a] = t[195][a]
        }
    t[196] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split("");
    for (a = 0; a != t[196].length; ++a)
        if (t[196][a].charCodeAt(0) !== 65533) {
            r[t[196][a]] = 50176 + a;
            e[50176 + a] = t[196][a]
        }
    t[197] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split("");
    for (a = 0; a != t[197].length; ++a)
        if (t[197][a].charCodeAt(0) !== 65533) {
            r[t[197][a]] = 50432 + a;
            e[50432 + a] = t[197][a]
        }
    t[198] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split("");
    for (a = 0; a != t[198].length; ++a)
        if (t[198][a].charCodeAt(0) !== 65533) {
            r[t[198][a]] = 50688 + a;
            e[50688 + a] = t[198][a]
        }
    t[199] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split("");
    for (a = 0; a != t[199].length; ++a)
        if (t[199][a].charCodeAt(0) !== 65533) {
            r[t[199][a]] = 50944 + a;
            e[50944 + a] = t[199][a]
        }
    t[200] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split("");
    for (a = 0; a != t[200].length; ++a)
        if (t[200][a].charCodeAt(0) !== 65533) {
            r[t[200][a]] = 51200 + a;
            e[51200 + a] = t[200][a]
        }
    t[201] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split("");
    for (a = 0; a != t[201].length; ++a)
        if (t[201][a].charCodeAt(0) !== 65533) {
            r[t[201][a]] = 51456 + a;
            e[51456 + a] = t[201][a]
        }
    t[202] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split("");
    for (a = 0; a != t[202].length; ++a)
        if (t[202][a].charCodeAt(0) !== 65533) {
            r[t[202][a]] = 51712 + a;
            e[51712 + a] = t[202][a]
        }
    t[203] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split("");
    for (a = 0; a != t[203].length; ++a)
        if (t[203][a].charCodeAt(0) !== 65533) {
            r[t[203][a]] = 51968 + a;
            e[51968 + a] = t[203][a]
        }
    t[204] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split("");
    for (a = 0; a != t[204].length; ++a)
        if (t[204][a].charCodeAt(0) !== 65533) {
            r[t[204][a]] = 52224 + a;
            e[52224 + a] = t[204][a]
        }
    t[205] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split("");
    for (a = 0; a != t[205].length; ++a)
        if (t[205][a].charCodeAt(0) !== 65533) {
            r[t[205][a]] = 52480 + a;
            e[52480 + a] = t[205][a]
        }
    t[206] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split("");
    for (a = 0; a != t[206].length; ++a)
        if (t[206][a].charCodeAt(0) !== 65533) {
            r[t[206][a]] = 52736 + a;
            e[52736 + a] = t[206][a]
        }
    t[207] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split("");
    for (a = 0; a != t[207].length; ++a)
        if (t[207][a].charCodeAt(0) !== 65533) {
            r[t[207][a]] = 52992 + a;
            e[52992 + a] = t[207][a]
        }
    t[208] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split("");
    for (a = 0; a != t[208].length; ++a)
        if (t[208][a].charCodeAt(0) !== 65533) {
            r[t[208][a]] = 53248 + a;
            e[53248 + a] = t[208][a]
        }
    t[209] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split("");
    for (a = 0; a != t[209].length; ++a)
        if (t[209][a].charCodeAt(0) !== 65533) {
            r[t[209][a]] = 53504 + a;
            e[53504 + a] = t[209][a]
        }
    t[210] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split("");
    for (a = 0; a != t[210].length; ++a)
        if (t[210][a].charCodeAt(0) !== 65533) {
            r[t[210][a]] = 53760 + a;
            e[53760 + a] = t[210][a]
        }
    t[211] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split("");
    for (a = 0; a != t[211].length; ++a)
        if (t[211][a].charCodeAt(0) !== 65533) {
            r[t[211][a]] = 54016 + a;
            e[54016 + a] = t[211][a]
        }
    t[212] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split("");
    for (a = 0; a != t[212].length; ++a)
        if (t[212][a].charCodeAt(0) !== 65533) {
            r[t[212][a]] = 54272 + a;
            e[54272 + a] = t[212][a]
        }
    t[213] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split("");
    for (a = 0; a != t[213].length; ++a)
        if (t[213][a].charCodeAt(0) !== 65533) {
            r[t[213][a]] = 54528 + a;
            e[54528 + a] = t[213][a]
        }
    t[214] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split("");
    for (a = 0; a != t[214].length; ++a)
        if (t[214][a].charCodeAt(0) !== 65533) {
            r[t[214][a]] = 54784 + a;
            e[54784 + a] = t[214][a]
        }
    t[215] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split("");
    for (a = 0; a != t[215].length; ++a)
        if (t[215][a].charCodeAt(0) !== 65533) {
            r[t[215][a]] = 55040 + a;
            e[55040 + a] = t[215][a]
        }
    t[216] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split("");
    for (a = 0; a != t[216].length; ++a)
        if (t[216][a].charCodeAt(0) !== 65533) {
            r[t[216][a]] = 55296 + a;
            e[55296 + a] = t[216][a]
        }
    t[217] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split("");
    for (a = 0; a != t[217].length; ++a)
        if (t[217][a].charCodeAt(0) !== 65533) {
            r[t[217][a]] = 55552 + a;
            e[55552 + a] = t[217][a]
        }
    t[218] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split("");
    for (a = 0; a != t[218].length; ++a)
        if (t[218][a].charCodeAt(0) !== 65533) {
            r[t[218][a]] = 55808 + a;
            e[55808 + a] = t[218][a]
        }
    t[219] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split("");
    for (a = 0; a != t[219].length; ++a)
        if (t[219][a].charCodeAt(0) !== 65533) {
            r[t[219][a]] = 56064 + a;
            e[56064 + a] = t[219][a]
        }
    t[220] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split("");
    for (a = 0; a != t[220].length; ++a)
        if (t[220][a].charCodeAt(0) !== 65533) {
            r[t[220][a]] = 56320 + a;
            e[56320 + a] = t[220][a]
        }
    t[221] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split("");
    for (a = 0; a != t[221].length; ++a)
        if (t[221][a].charCodeAt(0) !== 65533) {
            r[t[221][a]] = 56576 + a;
            e[56576 + a] = t[221][a]
        }
    t[222] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split("");
    for (a = 0; a != t[222].length; ++a)
        if (t[222][a].charCodeAt(0) !== 65533) {
            r[t[222][a]] = 56832 + a;
            e[56832 + a] = t[222][a]
        }
    t[223] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split("");
    for (a = 0; a != t[223].length; ++a)
        if (t[223][a].charCodeAt(0) !== 65533) {
            r[t[223][a]] = 57088 + a;
            e[57088 + a] = t[223][a]
        }
    t[224] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split("");
    for (a = 0; a != t[224].length; ++a)
        if (t[224][a].charCodeAt(0) !== 65533) {
            r[t[224][a]] = 57344 + a;
            e[57344 + a] = t[224][a]
        }
    t[225] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split("");
    for (a = 0; a != t[225].length; ++a)
        if (t[225][a].charCodeAt(0) !== 65533) {
            r[t[225][a]] = 57600 + a;
            e[57600 + a] = t[225][a]
        }
    t[226] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split("");
    for (a = 0; a != t[226].length; ++a)
        if (t[226][a].charCodeAt(0) !== 65533) {
            r[t[226][a]] = 57856 + a;
            e[57856 + a] = t[226][a]
        }
    t[227] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split("");
    for (a = 0; a != t[227].length; ++a)
        if (t[227][a].charCodeAt(0) !== 65533) {
            r[t[227][a]] = 58112 + a;
            e[58112 + a] = t[227][a]
        }
    t[228] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split("");
    for (a = 0; a != t[228].length; ++a)
        if (t[228][a].charCodeAt(0) !== 65533) {
            r[t[228][a]] = 58368 + a;
            e[58368 + a] = t[228][a]
        }
    t[229] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split("");
    for (a = 0; a != t[229].length; ++a)
        if (t[229][a].charCodeAt(0) !== 65533) {
            r[t[229][a]] = 58624 + a;
            e[58624 + a] = t[229][a]
        }
    t[230] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split("");
    for (a = 0; a != t[230].length; ++a)
        if (t[230][a].charCodeAt(0) !== 65533) {
            r[t[230][a]] = 58880 + a;
            e[58880 + a] = t[230][a]
        }
    t[231] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split("");
    for (a = 0; a != t[231].length; ++a)
        if (t[231][a].charCodeAt(0) !== 65533) {
            r[t[231][a]] = 59136 + a;
            e[59136 + a] = t[231][a]
        }
    t[232] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split("");
    for (a = 0; a != t[232].length; ++a)
        if (t[232][a].charCodeAt(0) !== 65533) {
            r[t[232][a]] = 59392 + a;
            e[59392 + a] = t[232][a]
        }
    t[233] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split("");
    for (a = 0; a != t[233].length; ++a)
        if (t[233][a].charCodeAt(0) !== 65533) {
            r[t[233][a]] = 59648 + a;
            e[59648 + a] = t[233][a]
        }
    t[234] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split("");
    for (a = 0; a != t[234].length; ++a)
        if (t[234][a].charCodeAt(0) !== 65533) {
            r[t[234][a]] = 59904 + a;
            e[59904 + a] = t[234][a]
        }
    t[235] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split("");
    for (a = 0; a != t[235].length; ++a)
        if (t[235][a].charCodeAt(0) !== 65533) {
            r[t[235][a]] = 60160 + a;
            e[60160 + a] = t[235][a]
        }
    t[236] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split("");
    for (a = 0; a != t[236].length; ++a)
        if (t[236][a].charCodeAt(0) !== 65533) {
            r[t[236][a]] = 60416 + a;
            e[60416 + a] = t[236][a]
        }
    t[237] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");
    for (a = 0; a != t[237].length; ++a)
        if (t[237][a].charCodeAt(0) !== 65533) {
            r[t[237][a]] = 60672 + a;
            e[60672 + a] = t[237][a]
        }
    t[238] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");
    for (a = 0; a != t[238].length; ++a)
        if (t[238][a].charCodeAt(0) !== 65533) {
            r[t[238][a]] = 60928 + a;
            e[60928 + a] = t[238][a]
        }
    t[239] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");
    for (a = 0; a != t[239].length; ++a)
        if (t[239][a].charCodeAt(0) !== 65533) {
            r[t[239][a]] = 61184 + a;
            e[61184 + a] = t[239][a]
        }
    t[240] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");
    for (a = 0; a != t[240].length; ++a)
        if (t[240][a].charCodeAt(0) !== 65533) {
            r[t[240][a]] = 61440 + a;
            e[61440 + a] = t[240][a]
        }
    t[241] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");
    for (a = 0; a != t[241].length; ++a)
        if (t[241][a].charCodeAt(0) !== 65533) {
            r[t[241][a]] = 61696 + a;
            e[61696 + a] = t[241][a]
        }
    t[242] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split("");
    for (a = 0; a != t[242].length; ++a)
        if (t[242][a].charCodeAt(0) !== 65533) {
            r[t[242][a]] = 61952 + a;
            e[61952 + a] = t[242][a]
        }
    t[243] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split("");
    for (a = 0; a != t[243].length; ++a)
        if (t[243][a].charCodeAt(0) !== 65533) {
            r[t[243][a]] = 62208 + a;
            e[62208 + a] = t[243][a]
        }
    t[244] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split("");
    for (a = 0; a != t[244].length; ++a)
        if (t[244][a].charCodeAt(0) !== 65533) {
            r[t[244][a]] = 62464 + a;
            e[62464 + a] = t[244][a]
        }
    t[245] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split("");
    for (a = 0; a != t[245].length; ++a)
        if (t[245][a].charCodeAt(0) !== 65533) {
            r[t[245][a]] = 62720 + a;
            e[62720 + a] = t[245][a]
        }
    t[246] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split("");
    for (a = 0; a != t[246].length; ++a)
        if (t[246][a].charCodeAt(0) !== 65533) {
            r[t[246][a]] = 62976 + a;
            e[62976 + a] = t[246][a]
        }
    t[247] = "�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split("");
    for (a = 0; a != t[247].length; ++a)
        if (t[247][a].charCodeAt(0) !== 65533) {
            r[t[247][a]] = 63232 + a;
            e[63232 + a] = t[247][a]
        }
    return {
        enc: r,
        dec: e
    }
}();
cptable[10029] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[10079] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[10081] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
cptable[28591] = function() {
    var e = "\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
      , r = []
      , t = {};
    for (var a = 0; a != e.length; ++a) {
        if (e.charCodeAt(a) !== 65533)
            t[e.charAt(a)] = a;
        r[a] = e.charAt(a)
    }
    return {
        enc: t,
        dec: r
    }
}();
if (typeof module !== "undefined" && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === "undefined")
    module.exports = cptable;
(function(e, r) {
    "use strict";
    if (typeof cptable === "undefined") {
        if (typeof require !== "undefined") {
            var t = cptable;
            if (typeof module !== "undefined" && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === "undefined")
                module.exports = r(t);
            else
                e.cptable = r(t)
        } else
            throw new Error("cptable not found")
    } else
        cptable = r(cptable)
}
)(this, function(e) {
    "use strict";
    var r = {
        1200: "utf16le",
        1201: "utf16be",
        12000: "utf32le",
        12001: "utf32be",
        16969: "utf64le",
        20127: "ascii",
        65000: "utf7",
        65001: "utf8"
    };
    var t = [874, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1e4];
    var a = [932, 936, 949, 950];
    var n = [65001];
    var i = {};
    var s = {};
    var f = {};
    var o = {};
    var l = function F(e) {
        return String.fromCharCode(e)
    };
    var c = function P(e) {
        return e.charCodeAt(0)
    };
    var h = typeof Buffer !== "undefined";
    var u = function() {};
    if (h) {
        var d = !Buffer.from;
        if (!d)
            try {
                Buffer.from("foo", "utf8")
            } catch (v) {
                d = true
            }
        u = d ? function(e, r) {
            return r ? new Buffer(e,r) : new Buffer(e)
        }
        : Buffer.from.bind(Buffer);
        if (!Buffer.allocUnsafe)
            Buffer.allocUnsafe = function(e) {
                return new Buffer(e)
            }
            ;
        var p = 1024
          , g = Buffer.allocUnsafe(p);
        var m = function L(e) {
            var r = Buffer.allocUnsafe(65536);
            for (var t = 0; t < 65536; ++t)
                r[t] = 0;
            var a = Object.keys(e)
              , n = a.length;
            for (var i = 0, s = a[i]; i < n; ++i) {
                if (!(s = a[i]))
                    continue;
                r[s.charCodeAt(0)] = e[s]
            }
            return r
        };
        var b = function M(r) {
            var t = m(e[r].enc);
            return function a(e, r) {
                var a = e.length;
                var n, i = 0, s = 0, f = 0, o = 0;
                if (typeof e === "string") {
                    n = Buffer.allocUnsafe(a);
                    for (i = 0; i < a; ++i)
                        n[i] = t[e.charCodeAt(i)]
                } else if (Buffer.isBuffer(e)) {
                    n = Buffer.allocUnsafe(2 * a);
                    s = 0;
                    for (i = 0; i < a; ++i) {
                        f = e[i];
                        if (f < 128)
                            n[s++] = t[f];
                        else if (f < 224) {
                            n[s++] = t[((f & 31) << 6) + (e[i + 1] & 63)];
                            ++i
                        } else if (f < 240) {
                            n[s++] = t[((f & 15) << 12) + ((e[i + 1] & 63) << 6) + (e[i + 2] & 63)];
                            i += 2
                        } else {
                            o = ((f & 7) << 18) + ((e[i + 1] & 63) << 12) + ((e[i + 2] & 63) << 6) + (e[i + 3] & 63);
                            i += 3;
                            if (o < 65536)
                                n[s++] = t[o];
                            else {
                                o -= 65536;
                                n[s++] = t[55296 + (o >> 10 & 1023)];
                                n[s++] = t[56320 + (o & 1023)]
                            }
                        }
                    }
                    n = n.slice(0, s)
                } else {
                    n = Buffer.allocUnsafe(a);
                    for (i = 0; i < a; ++i)
                        n[i] = t[e[i].charCodeAt(0)]
                }
                if (!r || r === "buf")
                    return n;
                if (r !== "arr")
                    return n.toString("binary");
                return [].slice.call(n)
            }
        };
        var w = function U(r) {
            var t = e[r].dec;
            var a = Buffer.allocUnsafe(131072)
              , n = 0
              , i = "";
            for (n = 0; n < t.length; ++n) {
                if (!(i = t[n]))
                    continue;
                var s = i.charCodeAt(0);
                a[2 * n] = s & 255;
                a[2 * n + 1] = s >> 8
            }
            return function f(e) {
                var r = e.length
                  , t = 0
                  , n = 0;
                if (2 * r > p) {
                    p = 2 * r;
                    g = Buffer.allocUnsafe(p)
                }
                if (Buffer.isBuffer(e)) {
                    for (t = 0; t < r; t++) {
                        n = 2 * e[t];
                        g[2 * t] = a[n];
                        g[2 * t + 1] = a[n + 1]
                    }
                } else if (typeof e === "string") {
                    for (t = 0; t < r; t++) {
                        n = 2 * e.charCodeAt(t);
                        g[2 * t] = a[n];
                        g[2 * t + 1] = a[n + 1]
                    }
                } else {
                    for (t = 0; t < r; t++) {
                        n = 2 * e[t];
                        g[2 * t] = a[n];
                        g[2 * t + 1] = a[n + 1]
                    }
                }
                return g.slice(0, 2 * r).toString("ucs2")
            }
        };
        var k = function B(r) {
            var t = e[r].enc;
            var a = Buffer.allocUnsafe(131072);
            for (var n = 0; n < 131072; ++n)
                a[n] = 0;
            var i = Object.keys(t);
            for (var s = 0, f = i[s]; s < i.length; ++s) {
                if (!(f = i[s]))
                    continue;
                var o = f.charCodeAt(0);
                a[2 * o] = t[f] & 255;
                a[2 * o + 1] = t[f] >> 8
            }
            return function l(e, r) {
                var t = e.length
                  , n = Buffer.allocUnsafe(2 * t)
                  , i = 0
                  , s = 0
                  , f = 0
                  , o = 0
                  , l = 0;
                if (typeof e === "string") {
                    for (i = o = 0; i < t; ++i) {
                        s = e.charCodeAt(i) * 2;
                        n[o++] = a[s + 1] || a[s];
                        if (a[s + 1] > 0)
                            n[o++] = a[s]
                    }
                    n = n.slice(0, o)
                } else if (Buffer.isBuffer(e)) {
                    for (i = o = 0; i < t; ++i) {
                        l = e[i];
                        if (l < 128)
                            s = l;
                        else if (l < 224) {
                            s = ((l & 31) << 6) + (e[i + 1] & 63);
                            ++i
                        } else if (l < 240) {
                            s = ((l & 15) << 12) + ((e[i + 1] & 63) << 6) + (e[i + 2] & 63);
                            i += 2
                        } else {
                            s = ((l & 7) << 18) + ((e[i + 1] & 63) << 12) + ((e[i + 2] & 63) << 6) + (e[i + 3] & 63);
                            i += 3
                        }
                        if (s < 65536) {
                            s *= 2;
                            n[o++] = a[s + 1] || a[s];
                            if (a[s + 1] > 0)
                                n[o++] = a[s]
                        } else {
                            f = s - 65536;
                            s = 2 * (55296 + (f >> 10 & 1023));
                            n[o++] = a[s + 1] || a[s];
                            if (a[s + 1] > 0)
                                n[o++] = a[s];
                            s = 2 * (56320 + (f & 1023));
                            n[o++] = a[s + 1] || a[s];
                            if (a[s + 1] > 0)
                                n[o++] = a[s]
                        }
                    }
                    n = n.slice(0, o)
                } else {
                    for (i = o = 0; i < t; i++) {
                        s = e[i].charCodeAt(0) * 2;
                        n[o++] = a[s + 1] || a[s];
                        if (a[s + 1] > 0)
                            n[o++] = a[s]
                    }
                }
                if (!r || r === "buf")
                    return n;
                if (r !== "arr")
                    return n.toString("binary");
                return [].slice.call(n)
            }
        };
        var T = function W(r) {
            var t = e[r].dec;
            var a = Buffer.allocUnsafe(131072), n = 0, i, s = 0, f = 0, o = 0;
            for (o = 0; o < 65536; ++o) {
                a[2 * o] = 255;
                a[2 * o + 1] = 253
            }
            for (n = 0; n < t.length; ++n) {
                if (!(i = t[n]))
                    continue;
                s = i.charCodeAt(0);
                f = 2 * n;
                a[f] = s & 255;
                a[f + 1] = s >> 8
            }
            return function l(e) {
                var r = e.length
                  , t = Buffer.allocUnsafe(2 * r)
                  , n = 0
                  , i = 0
                  , s = 0;
                if (Buffer.isBuffer(e)) {
                    for (n = 0; n < r; n++) {
                        i = 2 * e[n];
                        if (a[i] === 255 && a[i + 1] === 253) {
                            i = 2 * ((e[n] << 8) + e[n + 1]);
                            ++n
                        }
                        t[s++] = a[i];
                        t[s++] = a[i + 1]
                    }
                } else if (typeof e === "string") {
                    for (n = 0; n < r; n++) {
                        i = 2 * e.charCodeAt(n);
                        if (a[i] === 255 && a[i + 1] === 253) {
                            i = 2 * ((e.charCodeAt(n) << 8) + e.charCodeAt(n + 1));
                            ++n
                        }
                        t[s++] = a[i];
                        t[s++] = a[i + 1]
                    }
                } else {
                    for (n = 0; n < r; n++) {
                        i = 2 * e[n];
                        if (a[i] === 255 && a[i + 1] === 253) {
                            i = 2 * ((e[n] << 8) + e[n + 1]);
                            ++n
                        }
                        t[s++] = a[i];
                        t[s++] = a[i + 1]
                    }
                }
                return t.slice(0, s).toString("ucs2")
            }
        };
        i[65001] = function H(e) {
            if (typeof e === "string")
                return H(e.split("").map(c));
            var r = e.length
              , t = 0
              , a = 0;
            if (4 * r > p) {
                p = 4 * r;
                g = Buffer.allocUnsafe(p)
            }
            var n = 0;
            if (r >= 3 && e[0] == 239)
                if (e[1] == 187 && e[2] == 191)
                    n = 3;
            for (var i = 1, s = 0, f = 0; n < r; n += i) {
                i = 1;
                f = e[n];
                if (f < 128)
                    t = f;
                else if (f < 224) {
                    t = (f & 31) * 64 + (e[n + 1] & 63);
                    i = 2
                } else if (f < 240) {
                    t = ((f & 15) << 12) + (e[n + 1] & 63) * 64 + (e[n + 2] & 63);
                    i = 3
                } else {
                    t = (f & 7) * 262144 + ((e[n + 1] & 63) << 12) + (e[n + 2] & 63) * 64 + (e[n + 3] & 63);
                    i = 4
                }
                if (t < 65536) {
                    g[s++] = t & 255;
                    g[s++] = t >> 8
                } else {
                    t -= 65536;
                    a = 55296 + (t >> 10 & 1023);
                    t = 56320 + (t & 1023);
                    g[s++] = a & 255;
                    g[s++] = a >>> 8;
                    g[s++] = t & 255;
                    g[s++] = t >>> 8 & 255
                }
            }
            return g.slice(0, s).toString("ucs2")
        }
        ;
        s[65001] = function z(e, r) {
            if (h && Buffer.isBuffer(e)) {
                if (!r || r === "buf")
                    return e;
                if (r !== "arr")
                    return e.toString("binary");
                return [].slice.call(e)
            }
            var t = e.length
              , a = 0
              , n = 0
              , i = 0;
            var s = typeof e === "string";
            if (4 * t > p) {
                p = 4 * t;
                g = Buffer.allocUnsafe(p)
            }
            for (var f = 0; f < t; ++f) {
                a = s ? e.charCodeAt(f) : e[f].charCodeAt(0);
                if (a <= 127)
                    g[i++] = a;
                else if (a <= 2047) {
                    g[i++] = 192 + (a >> 6);
                    g[i++] = 128 + (a & 63)
                } else if (a >= 55296 && a <= 57343) {
                    a -= 55296;
                    ++f;
                    n = (s ? e.charCodeAt(f) : e[f].charCodeAt(0)) - 56320 + (a << 10);
                    g[i++] = 240 + (n >>> 18 & 7);
                    g[i++] = 144 + (n >>> 12 & 63);
                    g[i++] = 128 + (n >>> 6 & 63);
                    g[i++] = 128 + (n & 63)
                } else {
                    g[i++] = 224 + (a >> 12);
                    g[i++] = 128 + (a >> 6 & 63);
                    g[i++] = 128 + (a & 63)
                }
            }
            if (!r || r === "buf")
                return g.slice(0, i);
            if (r !== "arr")
                return g.slice(0, i).toString("binary");
            return [].slice.call(g, 0, i)
        }
    }
    var A = function V() {
        if (h) {
            if (f[t[0]])
                return;
            var r = 0
              , l = 0;
            for (r = 0; r < t.length; ++r) {
                l = t[r];
                if (e[l]) {
                    f[l] = w(l);
                    o[l] = b(l)
                }
            }
            for (r = 0; r < a.length; ++r) {
                l = a[r];
                if (e[l]) {
                    f[l] = T(l);
                    o[l] = k(l)
                }
            }
            for (r = 0; r < n.length; ++r) {
                l = n[r];
                if (i[l])
                    f[l] = i[l];
                if (s[l])
                    o[l] = s[l]
            }
        }
    };
    var E = function(e, r) {
        void r;
        return ""
    };
    var C = function G(e) {
        delete f[e];
        delete o[e]
    };
    var y = function j() {
        if (h) {
            if (!f[t[0]])
                return;
            t.forEach(C);
            a.forEach(C);
            n.forEach(C)
        }
        O = E;
        R = 0
    };
    var S = {
        encache: A,
        decache: y,
        sbcs: t,
        dbcs: a
    };
    A();
    var _ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    var x = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
    var O = E
      , R = 0;
    var I = function X(t, a, n) {
        if (t === R && O) {
            return O(a, n)
        }
        if (o[t]) {
            O = o[R = t];
            return O(a, n)
        }
        if (h && Buffer.isBuffer(a))
            a = a.toString("utf8");
        var i = a.length;
        var s = h ? Buffer.allocUnsafe(4 * i) : []
          , f = 0
          , c = 0
          , d = 0
          , v = 0;
        var p = e[t], g, m = "";
        var b = typeof a === "string";
        if (p && (g = p.enc))
            for (c = 0; c < i; ++c,
            ++d) {
                f = g[b ? a.charAt(c) : a[c]];
                if (f > 255) {
                    s[d] = f >> 8;
                    s[++d] = f & 255
                } else
                    s[d] = f & 255
            }
        else if (m = r[t])
            switch (m) {
            case "utf8":
                if (h && b) {
                    s = u(a, m);
                    d = s.length;
                    break
                }
                for (c = 0; c < i; ++c,
                ++d) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    if (f <= 127)
                        s[d] = f;
                    else if (f <= 2047) {
                        s[d] = 192 + (f >> 6);
                        s[++d] = 128 + (f & 63)
                    } else if (f >= 55296 && f <= 57343) {
                        f -= 55296;
                        v = (b ? a.charCodeAt(++c) : a[++c].charCodeAt(0)) - 56320 + (f << 10);
                        s[d] = 240 + (v >>> 18 & 7);
                        s[++d] = 144 + (v >>> 12 & 63);
                        s[++d] = 128 + (v >>> 6 & 63);
                        s[++d] = 128 + (v & 63)
                    } else {
                        s[d] = 224 + (f >> 12);
                        s[++d] = 128 + (f >> 6 & 63);
                        s[++d] = 128 + (f & 63)
                    }
                }
                break;
            case "ascii":
                if (h && typeof a === "string") {
                    s = u(a, m);
                    d = s.length;
                    break
                }
                for (c = 0; c < i; ++c,
                ++d) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    if (f <= 127)
                        s[d] = f;
                    else
                        throw new Error("bad ascii " + f)
                }
                break;
            case "utf16le":
                if (h && typeof a === "string") {
                    s = u(a, m);
                    d = s.length;
                    break
                }
                for (c = 0; c < i; ++c) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    s[d++] = f & 255;
                    s[d++] = f >> 8
                }
                break;
            case "utf16be":
                for (c = 0; c < i; ++c) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    s[d++] = f >> 8;
                    s[d++] = f & 255
                }
                break;
            case "utf32le":
                for (c = 0; c < i; ++c) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    if (f >= 55296 && f <= 57343)
                        f = 65536 + (f - 55296 << 10) + (a[++c].charCodeAt(0) - 56320);
                    s[d++] = f & 255;
                    f >>= 8;
                    s[d++] = f & 255;
                    f >>= 8;
                    s[d++] = f & 255;
                    f >>= 8;
                    s[d++] = f & 255
                }
                break;
            case "utf32be":
                for (c = 0; c < i; ++c) {
                    f = b ? a.charCodeAt(c) : a[c].charCodeAt(0);
                    if (f >= 55296 && f <= 57343)
                        f = 65536 + (f - 55296 << 10) + (a[++c].charCodeAt(0) - 56320);
                    s[d + 3] = f & 255;
                    f >>= 8;
                    s[d + 2] = f & 255;
                    f >>= 8;
                    s[d + 1] = f & 255;
                    f >>= 8;
                    s[d] = f & 255;
                    d += 4
                }
                break;
            case "utf7":
                for (c = 0; c < i; c++) {
                    var w = b ? a.charAt(c) : a[c].charAt(0);
                    if (w === "+") {
                        s[d++] = 43;
                        s[d++] = 45;
                        continue
                    }
                    if (x.indexOf(w) > -1) {
                        s[d++] = w.charCodeAt(0);
                        continue
                    }
                    var k = X(1201, w);
                    s[d++] = 43;
                    s[d++] = _.charCodeAt(k[0] >> 2);
                    s[d++] = _.charCodeAt(((k[0] & 3) << 4) + ((k[1] || 0) >> 4));
                    s[d++] = _.charCodeAt(((k[1] & 15) << 2) + ((k[2] || 0) >> 6));
                    s[d++] = 45
                }
                break;
            default:
                throw new Error("Unsupported magic: " + t + " " + r[t]);
            }
        else
            throw new Error("Unrecognized CP: " + t);
        s = s.slice(0, d);
        if (!h)
            return n == "str" ? s.map(l).join("") : s;
        if (!n || n === "buf")
            return s;
        if (n !== "arr")
            return s.toString("binary");
        return [].slice.call(s)
    };
    var N = function $(t, a) {
        var n;
        if (n = f[t])
            return n(a);
        if (typeof a === "string")
            return $(t, a.split("").map(c));
        var i = a.length
          , s = new Array(i)
          , o = ""
          , l = 0
          , u = 0
          , d = 1
          , v = 0
          , p = 0;
        var g = e[t], m, b = "";
        if (g && (m = g.dec)) {
            for (u = 0; u < i; u += d) {
                d = 2;
                o = m[(a[u] << 8) + a[u + 1]];
                if (!o) {
                    d = 1;
                    o = m[a[u]]
                }
                if (!o)
                    throw new Error("Unrecognized code: " + a[u] + " " + a[u + d - 1] + " " + u + " " + d + " " + m[a[u]]);
                s[v++] = o
            }
        } else if (b = r[t])
            switch (b) {
            case "utf8":
                if (i >= 3 && a[0] == 239)
                    if (a[1] == 187 && a[2] == 191)
                        u = 3;
                for (; u < i; u += d) {
                    d = 1;
                    if (a[u] < 128)
                        l = a[u];
                    else if (a[u] < 224) {
                        l = (a[u] & 31) * 64 + (a[u + 1] & 63);
                        d = 2
                    } else if (a[u] < 240) {
                        l = ((a[u] & 15) << 12) + (a[u + 1] & 63) * 64 + (a[u + 2] & 63);
                        d = 3
                    } else {
                        l = (a[u] & 7) * 262144 + ((a[u + 1] & 63) << 12) + (a[u + 2] & 63) * 64 + (a[u + 3] & 63);
                        d = 4
                    }
                    if (l < 65536) {
                        s[v++] = String.fromCharCode(l)
                    } else {
                        l -= 65536;
                        p = 55296 + (l >> 10 & 1023);
                        l = 56320 + (l & 1023);
                        s[v++] = String.fromCharCode(p);
                        s[v++] = String.fromCharCode(l)
                    }
                }
                break;
            case "ascii":
                if (h && Buffer.isBuffer(a))
                    return a.toString(b);
                for (u = 0; u < i; u++)
                    s[u] = String.fromCharCode(a[u]);
                v = i;
                break;
            case "utf16le":
                if (i >= 2 && a[0] == 255)
                    if (a[1] == 254)
                        u = 2;
                if (h && Buffer.isBuffer(a))
                    return a.toString(b);
                d = 2;
                for (; u + 1 < i; u += d) {
                    s[v++] = String.fromCharCode((a[u + 1] << 8) + a[u])
                }
                break;
            case "utf16be":
                if (i >= 2 && a[0] == 254)
                    if (a[1] == 255)
                        u = 2;
                d = 2;
                for (; u + 1 < i; u += d) {
                    s[v++] = String.fromCharCode((a[u] << 8) + a[u + 1])
                }
                break;
            case "utf32le":
                if (i >= 4 && a[0] == 255)
                    if (a[1] == 254 && a[2] === 0 && a[3] === 0)
                        u = 4;
                d = 4;
                for (; u < i; u += d) {
                    l = (a[u + 3] << 24) + (a[u + 2] << 16) + (a[u + 1] << 8) + a[u];
                    if (l > 65535) {
                        l -= 65536;
                        s[v++] = String.fromCharCode(55296 + (l >> 10 & 1023));
                        s[v++] = String.fromCharCode(56320 + (l & 1023))
                    } else
                        s[v++] = String.fromCharCode(l)
                }
                break;
            case "utf32be":
                if (i >= 4 && a[3] == 255)
                    if (a[2] == 254 && a[1] === 0 && a[0] === 0)
                        u = 4;
                d = 4;
                for (; u < i; u += d) {
                    l = (a[u] << 24) + (a[u + 1] << 16) + (a[u + 2] << 8) + a[u + 3];
                    if (l > 65535) {
                        l -= 65536;
                        s[v++] = String.fromCharCode(55296 + (l >> 10 & 1023));
                        s[v++] = String.fromCharCode(56320 + (l & 1023))
                    } else
                        s[v++] = String.fromCharCode(l)
                }
                break;
            case "utf7":
                if (i >= 4 && a[0] == 43 && a[1] == 47 && a[2] == 118) {
                    if (i >= 5 && a[3] == 56 && a[4] == 45)
                        u = 5;
                    else if (a[3] == 56 || a[3] == 57 || a[3] == 43 || a[3] == 47)
                        u = 4
                }
                for (; u < i; u += d) {
                    if (a[u] !== 43) {
                        d = 1;
                        s[v++] = String.fromCharCode(a[u]);
                        continue
                    }
                    d = 1;
                    if (a[u + 1] === 45) {
                        d = 2;
                        s[v++] = "+";
                        continue
                    }
                    while (String.fromCharCode(a[u + d]).match(/[A-Za-z0-9+\/]/))
                        d++;
                    var w = 0;
                    if (a[u + d] === 45) {
                        ++d;
                        w = 1
                    }
                    var k = [];
                    var T = "";
                    var A = 0
                      , E = 0
                      , C = 0;
                    var y = 0
                      , S = 0
                      , x = 0
                      , O = 0;
                    for (var R = 1; R < d - w; ) {
                        y = _.indexOf(String.fromCharCode(a[u + R++]));
                        S = _.indexOf(String.fromCharCode(a[u + R++]));
                        A = y << 2 | S >> 4;
                        k.push(A);
                        x = _.indexOf(String.fromCharCode(a[u + R++]));
                        if (x === -1)
                            break;
                        E = (S & 15) << 4 | x >> 2;
                        k.push(E);
                        O = _.indexOf(String.fromCharCode(a[u + R++]));
                        if (O === -1)
                            break;
                        C = (x & 3) << 6 | O;
                        if (O < 64)
                            k.push(C)
                    }
                    T = $(1201, k);
                    for (R = 0; R < T.length; ++R)
                        s[v++] = T.charAt(R)
                }
                break;
            default:
                throw new Error("Unsupported magic: " + t + " " + r[t]);
            }
        else
            throw new Error("Unrecognized CP: " + t);
        return s.slice(0, v).join("")
    };
    var D = function Y(t) {
        return !!(e[t] || r[t])
    };
    e.utils = {
        decode: N,
        encode: I,
        hascp: D,
        magic: r,
        cache: S
    };
    return e
});
var XLSX = {};
function make_xlsx_lib(e) {
    e.version = "0.18.5";
    var r = 1200
      , t = 1252;
    var a;
    if (typeof cptable !== "undefined")
        a = cptable;
    else if (typeof module !== "undefined" && typeof require !== "undefined") {
        a = undefined
    }
    var n = [874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1e4];
    var i = {
        0: 1252,
        1: 65001,
        2: 65001,
        77: 1e4,
        128: 932,
        129: 949,
        130: 1361,
        134: 936,
        136: 950,
        161: 1253,
        162: 1254,
        163: 1258,
        177: 1255,
        178: 1256,
        186: 1257,
        204: 1251,
        222: 874,
        238: 1250,
        255: 1252,
        69: 6969
    };
    var s = function(e) {
        if (n.indexOf(e) == -1)
            return;
        t = i[0] = e
    };
    function f() {
        s(1252)
    }
    var o = function(e) {
        r = e;
        s(e)
    };
    function l() {
        o(1200);
        f()
    }
    function c(e) {
        var r = [];
        for (var t = 0, a = e.length; t < a; ++t)
            r[t] = e.charCodeAt(t);
        return r
    }
    function h(e) {
        var r = [];
        for (var t = 0; t < e.length >> 1; ++t)
            r[t] = String.fromCharCode(e.charCodeAt(2 * t) + (e.charCodeAt(2 * t + 1) << 8));
        return r.join("")
    }
    function u(e) {
        var r = [];
        for (var t = 0; t < e.length >> 1; ++t)
            r[t] = String.fromCharCode(e.charCodeAt(2 * t + 1) + (e.charCodeAt(2 * t) << 8));
        return r.join("")
    }
    var d = function(e) {
        var r = e.charCodeAt(0)
          , t = e.charCodeAt(1);
        if (r == 255 && t == 254)
            return h(e.slice(2));
        if (r == 254 && t == 255)
            return u(e.slice(2));
        if (r == 65279)
            return e.slice(1);
        return e
    };
    var v = function Yw(e) {
        return String.fromCharCode(e)
    };
    var p = function Kw(e) {
        return String.fromCharCode(e)
    };
    if (typeof a !== "undefined") {
        o = function(e) {
            r = e;
            s(e)
        }
        ;
        d = function(e) {
            if (e.charCodeAt(0) === 255 && e.charCodeAt(1) === 254) {
                return a.utils.decode(1200, c(e.slice(2)))
            }
            return e
        }
        ;
        v = function Jw(e) {
            if (r === 1200)
                return String.fromCharCode(e);
            return a.utils.decode(r, [e & 255, e >> 8])[0]
        }
        ;
        p = function qw(e) {
            return a.utils.decode(t, [e])[0]
        }
    }
    var g = null;
    var m = true;
    var b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function w(e) {
        var r = "";
        var t = 0
          , a = 0
          , n = 0
          , i = 0
          , s = 0
          , f = 0
          , o = 0;
        for (var l = 0; l < e.length; ) {
            t = e.charCodeAt(l++);
            i = t >> 2;
            a = e.charCodeAt(l++);
            s = (t & 3) << 4 | a >> 4;
            n = e.charCodeAt(l++);
            f = (a & 15) << 2 | n >> 6;
            o = n & 63;
            if (isNaN(a)) {
                f = o = 64
            } else if (isNaN(n)) {
                o = 64
            }
            r += b.charAt(i) + b.charAt(s) + b.charAt(f) + b.charAt(o)
        }
        return r
    }
    function k(e) {
        var r = "";
        var t = 0
          , a = 0
          , n = 0
          , i = 0
          , s = 0
          , f = 0
          , o = 0;
        e = e.replace(/[^\w\+\/\=]/g, "");
        for (var l = 0; l < e.length; ) {
            i = b.indexOf(e.charAt(l++));
            s = b.indexOf(e.charAt(l++));
            t = i << 2 | s >> 4;
            r += String.fromCharCode(t);
            f = b.indexOf(e.charAt(l++));
            a = (s & 15) << 4 | f >> 2;
            if (f !== 64) {
                r += String.fromCharCode(a)
            }
            o = b.indexOf(e.charAt(l++));
            n = (f & 3) << 6 | o;
            if (o !== 64) {
                r += String.fromCharCode(n)
            }
        }
        return r
    }
    var T = function() {
        return typeof Buffer !== "undefined" && typeof undefined !== "undefined" && typeof {} !== "undefined" && !!{}.node
    }();
    var A = function() {
        if (typeof Buffer !== "undefined") {
            var e = !Buffer.from;
            if (!e)
                try {
                    Buffer.from("foo", "utf8")
                } catch (r) {
                    e = true
                }
            return e ? function(e, r) {
                return r ? new Buffer(e,r) : new Buffer(e)
            }
            : Buffer.from.bind(Buffer)
        }
        return function() {}
    }();
    function E(e) {
        if (T)
            return Buffer.alloc ? Buffer.alloc(e) : new Buffer(e);
        return typeof Uint8Array != "undefined" ? new Uint8Array(e) : new Array(e)
    }
    function C(e) {
        if (T)
            return Buffer.allocUnsafe ? Buffer.allocUnsafe(e) : new Buffer(e);
        return typeof Uint8Array != "undefined" ? new Uint8Array(e) : new Array(e)
    }
    var y = function Zw(e) {
        if (T)
            return A(e, "binary");
        return e.split("").map(function(e) {
            return e.charCodeAt(0) & 255
        })
    };
    function S(e) {
        if (typeof ArrayBuffer === "undefined")
            return y(e);
        var r = new ArrayBuffer(e.length)
          , t = new Uint8Array(r);
        for (var a = 0; a != e.length; ++a)
            t[a] = e.charCodeAt(a) & 255;
        return r
    }
    function _(e) {
        if (Array.isArray(e))
            return e.map(function(e) {
                return String.fromCharCode(e)
            }).join("");
        var r = [];
        for (var t = 0; t < e.length; ++t)
            r[t] = String.fromCharCode(e[t]);
        return r.join("")
    }
    function x(e) {
        if (typeof Uint8Array === "undefined")
            throw new Error("Unsupported");
        return new Uint8Array(e)
    }
    function O(e) {
        if (typeof ArrayBuffer == "undefined")
            throw new Error("Unsupported");
        if (e instanceof ArrayBuffer)
            return O(new Uint8Array(e));
        var r = new Array(e.length);
        for (var t = 0; t < e.length; ++t)
            r[t] = e[t];
        return r
    }
    var R = T ? function(e) {
        return Buffer.concat(e.map(function(e) {
            return Buffer.isBuffer(e) ? e : A(e)
        }))
    }
    : function(e) {
        if (typeof Uint8Array !== "undefined") {
            var r = 0
              , t = 0;
            for (r = 0; r < e.length; ++r)
                t += e[r].length;
            var a = new Uint8Array(t);
            var n = 0;
            for (r = 0,
            t = 0; r < e.length; t += n,
            ++r) {
                n = e[r].length;
                if (e[r]instanceof Uint8Array)
                    a.set(e[r], t);
                else if (typeof e[r] == "string") {
                    throw "wtf"
                } else
                    a.set(new Uint8Array(e[r]), t)
            }
            return a
        }
        return [].concat.apply([], e.map(function(e) {
            return Array.isArray(e) ? e : [].slice.call(e)
        }))
    }
    ;
    function I(e) {
        var r = []
          , t = 0
          , a = e.length + 250;
        var n = E(e.length + 255);
        for (var i = 0; i < e.length; ++i) {
            var s = e.charCodeAt(i);
            if (s < 128)
                n[t++] = s;
            else if (s < 2048) {
                n[t++] = 192 | s >> 6 & 31;
                n[t++] = 128 | s & 63
            } else if (s >= 55296 && s < 57344) {
                s = (s & 1023) + 64;
                var f = e.charCodeAt(++i) & 1023;
                n[t++] = 240 | s >> 8 & 7;
                n[t++] = 128 | s >> 2 & 63;
                n[t++] = 128 | f >> 6 & 15 | (s & 3) << 4;
                n[t++] = 128 | f & 63
            } else {
                n[t++] = 224 | s >> 12 & 15;
                n[t++] = 128 | s >> 6 & 63;
                n[t++] = 128 | s & 63
            }
            if (t > a) {
                r.push(n.slice(0, t));
                t = 0;
                n = E(65535);
                a = 65530
            }
        }
        r.push(n.slice(0, t));
        return R(r)
    }
    var N = /\u0000/g
      , D = /[\u0001-\u0006]/g;
    function F(e) {
        var r = ""
          , t = e.length - 1;
        while (t >= 0)
            r += e.charAt(t--);
        return r
    }
    function P(e, r) {
        var t = "" + e;
        return t.length >= r ? t : wr("0", r - t.length) + t
    }
    function L(e, r) {
        var t = "" + e;
        return t.length >= r ? t : wr(" ", r - t.length) + t
    }
    function M(e, r) {
        var t = "" + e;
        return t.length >= r ? t : t + wr(" ", r - t.length)
    }
    function U(e, r) {
        var t = "" + Math.round(e);
        return t.length >= r ? t : wr("0", r - t.length) + t
    }
    function B(e, r) {
        var t = "" + e;
        return t.length >= r ? t : wr("0", r - t.length) + t
    }
    var W = Math.pow(2, 32);
    function H(e, r) {
        if (e > W || e < -W)
            return U(e, r);
        var t = Math.round(e);
        return B(t, r)
    }
    function z(e, r) {
        r = r || 0;
        return e.length >= 7 + r && (e.charCodeAt(r) | 32) === 103 && (e.charCodeAt(r + 1) | 32) === 101 && (e.charCodeAt(r + 2) | 32) === 110 && (e.charCodeAt(r + 3) | 32) === 101 && (e.charCodeAt(r + 4) | 32) === 114 && (e.charCodeAt(r + 5) | 32) === 97 && (e.charCodeAt(r + 6) | 32) === 108
    }
    var V = [["Sun", "Sunday"], ["Mon", "Monday"], ["Tue", "Tuesday"], ["Wed", "Wednesday"], ["Thu", "Thursday"], ["Fri", "Friday"], ["Sat", "Saturday"]];
    var G = [["J", "Jan", "January"], ["F", "Feb", "February"], ["M", "Mar", "March"], ["A", "Apr", "April"], ["M", "May", "May"], ["J", "Jun", "June"], ["J", "Jul", "July"], ["A", "Aug", "August"], ["S", "Sep", "September"], ["O", "Oct", "October"], ["N", "Nov", "November"], ["D", "Dec", "December"]];
    function j(e) {
        if (!e)
            e = {};
        e[0] = "General";
        e[1] = "0";
        e[2] = "0.00";
        e[3] = "#,##0";
        e[4] = "#,##0.00";
        e[9] = "0%";
        e[10] = "0.00%";
        e[11] = "0.00E+00";
        e[12] = "# ?/?";
        e[13] = "# ??/??";
        e[14] = "m/d/yy";
        e[15] = "d-mmm-yy";
        e[16] = "d-mmm";
        e[17] = "mmm-yy";
        e[18] = "h:mm AM/PM";
        e[19] = "h:mm:ss AM/PM";
        e[20] = "h:mm";
        e[21] = "h:mm:ss";
        e[22] = "m/d/yy h:mm";
        e[37] = "#,##0 ;(#,##0)";
        e[38] = "#,##0 ;[Red](#,##0)";
        e[39] = "#,##0.00;(#,##0.00)";
        e[40] = "#,##0.00;[Red](#,##0.00)";
        e[45] = "mm:ss";
        e[46] = "[h]:mm:ss";
        e[47] = "mmss.0";
        e[48] = "##0.0E+0";
        e[49] = "@";
        e[56] = '"上午/下午 "hh"時"mm"分"ss"秒 "';
        return e
    }
    var X = {
        0: "General",
        1: "0",
        2: "0.00",
        3: "#,##0",
        4: "#,##0.00",
        9: "0%",
        10: "0.00%",
        11: "0.00E+00",
        12: "# ?/?",
        13: "# ??/??",
        14: "m/d/yy",
        15: "d-mmm-yy",
        16: "d-mmm",
        17: "mmm-yy",
        18: "h:mm AM/PM",
        19: "h:mm:ss AM/PM",
        20: "h:mm",
        21: "h:mm:ss",
        22: "m/d/yy h:mm",
        37: "#,##0 ;(#,##0)",
        38: "#,##0 ;[Red](#,##0)",
        39: "#,##0.00;(#,##0.00)",
        40: "#,##0.00;[Red](#,##0.00)",
        45: "mm:ss",
        46: "[h]:mm:ss",
        47: "mmss.0",
        48: "##0.0E+0",
        49: "@",
        56: '"上午/下午 "hh"時"mm"分"ss"秒 "'
    };
    var Y = {
        5: 37,
        6: 38,
        7: 39,
        8: 40,
        23: 0,
        24: 0,
        25: 0,
        26: 0,
        27: 14,
        28: 14,
        29: 14,
        30: 14,
        31: 14,
        50: 14,
        51: 14,
        52: 14,
        53: 14,
        54: 14,
        55: 14,
        56: 14,
        57: 14,
        58: 14,
        59: 1,
        60: 2,
        61: 3,
        62: 4,
        67: 9,
        68: 10,
        69: 12,
        70: 13,
        71: 14,
        72: 14,
        73: 15,
        74: 16,
        75: 17,
        76: 20,
        77: 21,
        78: 22,
        79: 45,
        80: 46,
        81: 47,
        82: 0
    };
    var K = {
        5: '"$"#,##0_);\\("$"#,##0\\)',
        63: '"$"#,##0_);\\("$"#,##0\\)',
        6: '"$"#,##0_);[Red]\\("$"#,##0\\)',
        64: '"$"#,##0_);[Red]\\("$"#,##0\\)',
        7: '"$"#,##0.00_);\\("$"#,##0.00\\)',
        65: '"$"#,##0.00_);\\("$"#,##0.00\\)',
        8: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',
        66: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',
        41: '_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',
        42: '_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',
        43: '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',
        44: '_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'
    };
    function J(e, r, t) {
        var a = e < 0 ? -1 : 1;
        var n = e * a;
        var i = 0
          , s = 1
          , f = 0;
        var o = 1
          , l = 0
          , c = 0;
        var h = Math.floor(n);
        while (l < r) {
            h = Math.floor(n);
            f = h * s + i;
            c = h * l + o;
            if (n - h < 5e-8)
                break;
            n = 1 / (n - h);
            i = s;
            s = f;
            o = l;
            l = c
        }
        if (c > r) {
            if (l > r) {
                c = o;
                f = i
            } else {
                c = l;
                f = s
            }
        }
        if (!t)
            return [0, a * f, c];
        var u = Math.floor(a * f / c);
        return [u, a * f - u * c, c]
    }
    function q(e, r, t) {
        if (e > 2958465 || e < 0)
            return null;
        var a = e | 0
          , n = Math.floor(86400 * (e - a))
          , i = 0;
        var s = [];
        var f = {
            D: a,
            T: n,
            u: 86400 * (e - a) - n,
            y: 0,
            m: 0,
            d: 0,
            H: 0,
            M: 0,
            S: 0,
            q: 0
        };
        if (Math.abs(f.u) < 1e-6)
            f.u = 0;
        if (r && r.date1904)
            a += 1462;
        if (f.u > .9999) {
            f.u = 0;
            if (++n == 86400) {
                f.T = n = 0;
                ++a;
                ++f.D
            }
        }
        if (a === 60) {
            s = t ? [1317, 10, 29] : [1900, 2, 29];
            i = 3
        } else if (a === 0) {
            s = t ? [1317, 8, 29] : [1900, 1, 0];
            i = 6
        } else {
            if (a > 60)
                --a;
            var o = new Date(1900,0,1);
            o.setDate(o.getDate() + a - 1);
            s = [o.getFullYear(), o.getMonth() + 1, o.getDate()];
            i = o.getDay();
            if (a < 60)
                i = (i + 6) % 7;
            if (t)
                i = oe(o, s)
        }
        f.y = s[0];
        f.m = s[1];
        f.d = s[2];
        f.S = n % 60;
        n = Math.floor(n / 60);
        f.M = n % 60;
        n = Math.floor(n / 60);
        f.H = n;
        f.q = i;
        return f
    }
    var Z = new Date(1899,11,31,0,0,0);
    var Q = Z.getTime();
    var ee = new Date(1900,2,1,0,0,0);
    function re(e, r) {
        var t = e.getTime();
        if (r)
            t -= 1461 * 24 * 60 * 60 * 1e3;
        else if (e >= ee)
            t += 24 * 60 * 60 * 1e3;
        return (t - (Q + (e.getTimezoneOffset() - Z.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3)
    }
    function te(e) {
        return e.indexOf(".") == -1 ? e : e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1")
    }
    function ae(e) {
        if (e.indexOf("E") == -1)
            return e;
        return e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/, "$1E").replace(/(E[+-])(\d)$/, "$10$2")
    }
    function ne(e) {
        var r = e < 0 ? 12 : 11;
        var t = te(e.toFixed(12));
        if (t.length <= r)
            return t;
        t = e.toPrecision(10);
        if (t.length <= r)
            return t;
        return e.toExponential(5)
    }
    function ie(e) {
        var r = te(e.toFixed(11));
        return r.length > (e < 0 ? 12 : 11) || r === "0" || r === "-0" ? e.toPrecision(6) : r
    }
    function se(e) {
        var r = Math.floor(Math.log(Math.abs(e)) * Math.LOG10E), t;
        if (r >= -4 && r <= -1)
            t = e.toPrecision(10 + r);
        else if (Math.abs(r) <= 9)
            t = ne(e);
        else if (r === 10)
            t = e.toFixed(10).substr(0, 12);
        else
            t = ie(e);
        return te(ae(t.toUpperCase()))
    }
    function fe(e, r) {
        switch (typeof e) {
        case "string":
            return e;
        case "boolean":
            return e ? "TRUE" : "FALSE";
        case "number":
            return (e | 0) === e ? e.toString(10) : se(e);
        case "undefined":
            return "";
        case "object":
            if (e == null)
                return "";
            if (e instanceof Date)
                return Be(14, re(e, r && r.date1904), r);
        }
        throw new Error("unsupported value in General format: " + e)
    }
    function oe(e, r) {
        r[0] -= 581;
        var t = e.getDay();
        if (e < 60)
            t = (t + 6) % 7;
        return t
    }
    function le(e, r, t, a) {
        var n = "", i = 0, s = 0, f = t.y, o, l = 0;
        switch (e) {
        case 98:
            f = t.y + 543;
        case 121:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = f % 100;
                l = 2;
                break;
            default:
                o = f % 1e4;
                l = 4;
                break;
            }
            break;
        case 109:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = t.m;
                l = r.length;
                break;
            case 3:
                return G[t.m - 1][1];
            case 5:
                return G[t.m - 1][0];
            default:
                return G[t.m - 1][2];
            }
            break;
        case 100:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = t.d;
                l = r.length;
                break;
            case 3:
                return V[t.q][0];
            default:
                return V[t.q][1];
            }
            break;
        case 104:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = 1 + (t.H + 11) % 12;
                l = r.length;
                break;
            default:
                throw "bad hour format: " + r;
            }
            break;
        case 72:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = t.H;
                l = r.length;
                break;
            default:
                throw "bad hour format: " + r;
            }
            break;
        case 77:
            switch (r.length) {
            case 1:
                ;
            case 2:
                o = t.M;
                l = r.length;
                break;
            default:
                throw "bad minute format: " + r;
            }
            break;
        case 115:
            if (r != "s" && r != "ss" && r != ".0" && r != ".00" && r != ".000")
                throw "bad second format: " + r;
            if (t.u === 0 && (r == "s" || r == "ss"))
                return P(t.S, r.length);
            if (a >= 2)
                s = a === 3 ? 1e3 : 100;
            else
                s = a === 1 ? 10 : 1;
            i = Math.round(s * (t.S + t.u));
            if (i >= 60 * s)
                i = 0;
            if (r === "s")
                return i === 0 ? "0" : "" + i / s;
            n = P(i, 2 + a);
            if (r === "ss")
                return n.substr(0, 2);
            return "." + n.substr(2, r.length - 1);
        case 90:
            switch (r) {
            case "[h]":
                ;
            case "[hh]":
                o = t.D * 24 + t.H;
                break;
            case "[m]":
                ;
            case "[mm]":
                o = (t.D * 24 + t.H) * 60 + t.M;
                break;
            case "[s]":
                ;
            case "[ss]":
                o = ((t.D * 24 + t.H) * 60 + t.M) * 60 + Math.round(t.S + t.u);
                break;
            default:
                throw "bad abstime format: " + r;
            }
            l = r.length === 3 ? 1 : 2;
            break;
        case 101:
            o = f;
            l = 1;
            break;
        }
        var c = l > 0 ? P(o, l) : "";
        return c
    }
    function ce(e) {
        var r = 3;
        if (e.length <= r)
            return e;
        var t = e.length % r
          , a = e.substr(0, t);
        for (; t != e.length; t += r)
            a += (a.length > 0 ? "," : "") + e.substr(t, r);
        return a
    }
    var he = /%/g;
    function ue(e, r, t) {
        var a = r.replace(he, "")
          , n = r.length - a.length;
        return Ie(e, a, t * Math.pow(10, 2 * n)) + wr("%", n)
    }
    function de(e, r, t) {
        var a = r.length - 1;
        while (r.charCodeAt(a - 1) === 44)
            --a;
        return Ie(e, r.substr(0, a), t / Math.pow(10, 3 * (r.length - a)))
    }
    function ve(e, r) {
        var t;
        var a = e.indexOf("E") - e.indexOf(".") - 1;
        if (e.match(/^#+0.0E\+0$/)) {
            if (r == 0)
                return "0.0E+0";
            else if (r < 0)
                return "-" + ve(e, -r);
            var n = e.indexOf(".");
            if (n === -1)
                n = e.indexOf("E");
            var i = Math.floor(Math.log(r) * Math.LOG10E) % n;
            if (i < 0)
                i += n;
            t = (r / Math.pow(10, i)).toPrecision(a + 1 + (n + i) % n);
            if (t.indexOf("e") === -1) {
                var s = Math.floor(Math.log(r) * Math.LOG10E);
                if (t.indexOf(".") === -1)
                    t = t.charAt(0) + "." + t.substr(1) + "E+" + (s - t.length + i);
                else
                    t += "E+" + (s - i);
                while (t.substr(0, 2) === "0.") {
                    t = t.charAt(0) + t.substr(2, n) + "." + t.substr(2 + n);
                    t = t.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0.")
                }
                t = t.replace(/\+-/, "-")
            }
            t = t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(e, r, t, a) {
                return r + t + a.substr(0, (n + i) % n) + "." + a.substr(i) + "E"
            })
        } else
            t = r.toExponential(a);
        if (e.match(/E\+00$/) && t.match(/e[+-]\d$/))
            t = t.substr(0, t.length - 1) + "0" + t.charAt(t.length - 1);
        if (e.match(/E\-/) && t.match(/e\+/))
            t = t.replace(/e\+/, "e");
        return t.replace("e", "E")
    }
    var pe = /# (\?+)( ?)\/( ?)(\d+)/;
    function ge(e, r, t) {
        var a = parseInt(e[4], 10)
          , n = Math.round(r * a)
          , i = Math.floor(n / a);
        var s = n - i * a
          , f = a;
        return t + (i === 0 ? "" : "" + i) + " " + (s === 0 ? wr(" ", e[1].length + 1 + e[4].length) : L(s, e[1].length) + e[2] + "/" + e[3] + P(f, e[4].length))
    }
    function me(e, r, t) {
        return t + (r === 0 ? "" : "" + r) + wr(" ", e[1].length + 2 + e[4].length)
    }
    var be = /^#*0*\.([0#]+)/;
    var we = /\).*[0#]/;
    var ke = /\(###\) ###\\?-####/;
    function Te(e) {
        var r = "", t;
        for (var a = 0; a != e.length; ++a)
            switch (t = e.charCodeAt(a)) {
            case 35:
                break;
            case 63:
                r += " ";
                break;
            case 48:
                r += "0";
                break;
            default:
                r += String.fromCharCode(t);
            }
        return r
    }
    function Ae(e, r) {
        var t = Math.pow(10, r);
        return "" + Math.round(e * t) / t
    }
    function Ee(e, r) {
        var t = e - Math.floor(e)
          , a = Math.pow(10, r);
        if (r < ("" + Math.round(t * a)).length)
            return 0;
        return Math.round(t * a)
    }
    function Ce(e, r) {
        if (r < ("" + Math.round((e - Math.floor(e)) * Math.pow(10, r))).length) {
            return 1
        }
        return 0
    }
    function ye(e) {
        if (e < 2147483647 && e > -2147483648)
            return "" + (e >= 0 ? e | 0 : e - 1 | 0);
        return "" + Math.floor(e)
    }
    function Se(e, r, t) {
        if (e.charCodeAt(0) === 40 && !r.match(we)) {
            var a = r.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
            if (t >= 0)
                return Se("n", a, t);
            return "(" + Se("n", a, -t) + ")"
        }
        if (r.charCodeAt(r.length - 1) === 44)
            return de(e, r, t);
        if (r.indexOf("%") !== -1)
            return ue(e, r, t);
        if (r.indexOf("E") !== -1)
            return ve(r, t);
        if (r.charCodeAt(0) === 36)
            return "$" + Se(e, r.substr(r.charAt(1) == " " ? 2 : 1), t);
        var n;
        var i, s, f, o = Math.abs(t), l = t < 0 ? "-" : "";
        if (r.match(/^00+$/))
            return l + H(o, r.length);
        if (r.match(/^[#?]+$/)) {
            n = H(t, 0);
            if (n === "0")
                n = "";
            return n.length > r.length ? n : Te(r.substr(0, r.length - n.length)) + n
        }
        if (i = r.match(pe))
            return ge(i, o, l);
        if (r.match(/^#+0+$/))
            return l + H(o, r.length - r.indexOf("0"));
        if (i = r.match(be)) {
            n = Ae(t, i[1].length).replace(/^([^\.]+)$/, "$1." + Te(i[1])).replace(/\.$/, "." + Te(i[1])).replace(/\.(\d*)$/, function(e, r) {
                return "." + r + wr("0", Te(i[1]).length - r.length)
            });
            return r.indexOf("0.") !== -1 ? n : n.replace(/^0\./, ".")
        }
        r = r.replace(/^#+([0.])/, "$1");
        if (i = r.match(/^(0*)\.(#*)$/)) {
            return l + Ae(o, i[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, i[1].length ? "0." : ".")
        }
        if (i = r.match(/^#{1,3},##0(\.?)$/))
            return l + ce(H(o, 0));
        if (i = r.match(/^#,##0\.([#0]*0)$/)) {
            return t < 0 ? "-" + Se(e, r, -t) : ce("" + (Math.floor(t) + Ce(t, i[1].length))) + "." + P(Ee(t, i[1].length), i[1].length)
        }
        if (i = r.match(/^#,#*,#0/))
            return Se(e, r.replace(/^#,#*,/, ""), t);
        if (i = r.match(/^([0#]+)(\\?-([0#]+))+$/)) {
            n = F(Se(e, r.replace(/[\\-]/g, ""), t));
            s = 0;
            return F(F(r.replace(/\\/g, "")).replace(/[0#]/g, function(e) {
                return s < n.length ? n.charAt(s++) : e === "0" ? "0" : ""
            }))
        }
        if (r.match(ke)) {
            n = Se(e, "##########", t);
            return "(" + n.substr(0, 3) + ") " + n.substr(3, 3) + "-" + n.substr(6)
        }
        var c = "";
        if (i = r.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) {
            s = Math.min(i[4].length, 7);
            f = J(o, Math.pow(10, s) - 1, false);
            n = "" + l;
            c = Ie("n", i[1], f[1]);
            if (c.charAt(c.length - 1) == " ")
                c = c.substr(0, c.length - 1) + "0";
            n += c + i[2] + "/" + i[3];
            c = M(f[2], s);
            if (c.length < i[4].length)
                c = Te(i[4].substr(i[4].length - c.length)) + c;
            n += c;
            return n
        }
        if (i = r.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) {
            s = Math.min(Math.max(i[1].length, i[4].length), 7);
            f = J(o, Math.pow(10, s) - 1, true);
            return l + (f[0] || (f[1] ? "" : "0")) + " " + (f[1] ? L(f[1], s) + i[2] + "/" + i[3] + M(f[2], s) : wr(" ", 2 * s + 1 + i[2].length + i[3].length))
        }
        if (i = r.match(/^[#0?]+$/)) {
            n = H(t, 0);
            if (r.length <= n.length)
                return n;
            return Te(r.substr(0, r.length - n.length)) + n
        }
        if (i = r.match(/^([#0?]+)\.([#0]+)$/)) {
            n = "" + t.toFixed(Math.min(i[2].length, 10)).replace(/([^0])0+$/, "$1");
            s = n.indexOf(".");
            var h = r.indexOf(".") - s
              , u = r.length - n.length - h;
            return Te(r.substr(0, h) + n + r.substr(r.length - u))
        }
        if (i = r.match(/^00,000\.([#0]*0)$/)) {
            s = Ee(t, i[1].length);
            return t < 0 ? "-" + Se(e, r, -t) : ce(ye(t)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(e) {
                return "00," + (e.length < 3 ? P(0, 3 - e.length) : "") + e
            }) + "." + P(s, i[1].length)
        }
        switch (r) {
        case "###,##0.00":
            return Se(e, "#,##0.00", t);
        case "###,###":
            ;
        case "##,###":
            ;
        case "#,###":
            var d = ce(H(o, 0));
            return d !== "0" ? l + d : "";
        case "###,###.00":
            return Se(e, "###,##0.00", t).replace(/^0\./, ".");
        case "#,###.00":
            return Se(e, "#,##0.00", t).replace(/^0\./, ".");
        default:
            ;
        }
        throw new Error("unsupported format |" + r + "|")
    }
    function _e(e, r, t) {
        var a = r.length - 1;
        while (r.charCodeAt(a - 1) === 44)
            --a;
        return Ie(e, r.substr(0, a), t / Math.pow(10, 3 * (r.length - a)))
    }
    function xe(e, r, t) {
        var a = r.replace(he, "")
          , n = r.length - a.length;
        return Ie(e, a, t * Math.pow(10, 2 * n)) + wr("%", n)
    }
    function Oe(e, r) {
        var t;
        var a = e.indexOf("E") - e.indexOf(".") - 1;
        if (e.match(/^#+0.0E\+0$/)) {
            if (r == 0)
                return "0.0E+0";
            else if (r < 0)
                return "-" + Oe(e, -r);
            var n = e.indexOf(".");
            if (n === -1)
                n = e.indexOf("E");
            var i = Math.floor(Math.log(r) * Math.LOG10E) % n;
            if (i < 0)
                i += n;
            t = (r / Math.pow(10, i)).toPrecision(a + 1 + (n + i) % n);
            if (!t.match(/[Ee]/)) {
                var s = Math.floor(Math.log(r) * Math.LOG10E);
                if (t.indexOf(".") === -1)
                    t = t.charAt(0) + "." + t.substr(1) + "E+" + (s - t.length + i);
                else
                    t += "E+" + (s - i);
                t = t.replace(/\+-/, "-")
            }
            t = t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(e, r, t, a) {
                return r + t + a.substr(0, (n + i) % n) + "." + a.substr(i) + "E"
            })
        } else
            t = r.toExponential(a);
        if (e.match(/E\+00$/) && t.match(/e[+-]\d$/))
            t = t.substr(0, t.length - 1) + "0" + t.charAt(t.length - 1);
        if (e.match(/E\-/) && t.match(/e\+/))
            t = t.replace(/e\+/, "e");
        return t.replace("e", "E")
    }
    function Re(e, r, t) {
        if (e.charCodeAt(0) === 40 && !r.match(we)) {
            var a = r.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
            if (t >= 0)
                return Re("n", a, t);
            return "(" + Re("n", a, -t) + ")"
        }
        if (r.charCodeAt(r.length - 1) === 44)
            return _e(e, r, t);
        if (r.indexOf("%") !== -1)
            return xe(e, r, t);
        if (r.indexOf("E") !== -1)
            return Oe(r, t);
        if (r.charCodeAt(0) === 36)
            return "$" + Re(e, r.substr(r.charAt(1) == " " ? 2 : 1), t);
        var n;
        var i, s, f, o = Math.abs(t), l = t < 0 ? "-" : "";
        if (r.match(/^00+$/))
            return l + P(o, r.length);
        if (r.match(/^[#?]+$/)) {
            n = "" + t;
            if (t === 0)
                n = "";
            return n.length > r.length ? n : Te(r.substr(0, r.length - n.length)) + n
        }
        if (i = r.match(pe))
            return me(i, o, l);
        if (r.match(/^#+0+$/))
            return l + P(o, r.length - r.indexOf("0"));
        if (i = r.match(be)) {
            n = ("" + t).replace(/^([^\.]+)$/, "$1." + Te(i[1])).replace(/\.$/, "." + Te(i[1]));
            n = n.replace(/\.(\d*)$/, function(e, r) {
                return "." + r + wr("0", Te(i[1]).length - r.length)
            });
            return r.indexOf("0.") !== -1 ? n : n.replace(/^0\./, ".")
        }
        r = r.replace(/^#+([0.])/, "$1");
        if (i = r.match(/^(0*)\.(#*)$/)) {
            return l + ("" + o).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, i[1].length ? "0." : ".")
        }
        if (i = r.match(/^#{1,3},##0(\.?)$/))
            return l + ce("" + o);
        if (i = r.match(/^#,##0\.([#0]*0)$/)) {
            return t < 0 ? "-" + Re(e, r, -t) : ce("" + t) + "." + wr("0", i[1].length)
        }
        if (i = r.match(/^#,#*,#0/))
            return Re(e, r.replace(/^#,#*,/, ""), t);
        if (i = r.match(/^([0#]+)(\\?-([0#]+))+$/)) {
            n = F(Re(e, r.replace(/[\\-]/g, ""), t));
            s = 0;
            return F(F(r.replace(/\\/g, "")).replace(/[0#]/g, function(e) {
                return s < n.length ? n.charAt(s++) : e === "0" ? "0" : ""
            }))
        }
        if (r.match(ke)) {
            n = Re(e, "##########", t);
            return "(" + n.substr(0, 3) + ") " + n.substr(3, 3) + "-" + n.substr(6)
        }
        var c = "";
        if (i = r.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) {
            s = Math.min(i[4].length, 7);
            f = J(o, Math.pow(10, s) - 1, false);
            n = "" + l;
            c = Ie("n", i[1], f[1]);
            if (c.charAt(c.length - 1) == " ")
                c = c.substr(0, c.length - 1) + "0";
            n += c + i[2] + "/" + i[3];
            c = M(f[2], s);
            if (c.length < i[4].length)
                c = Te(i[4].substr(i[4].length - c.length)) + c;
            n += c;
            return n
        }
        if (i = r.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) {
            s = Math.min(Math.max(i[1].length, i[4].length), 7);
            f = J(o, Math.pow(10, s) - 1, true);
            return l + (f[0] || (f[1] ? "" : "0")) + " " + (f[1] ? L(f[1], s) + i[2] + "/" + i[3] + M(f[2], s) : wr(" ", 2 * s + 1 + i[2].length + i[3].length))
        }
        if (i = r.match(/^[#0?]+$/)) {
            n = "" + t;
            if (r.length <= n.length)
                return n;
            return Te(r.substr(0, r.length - n.length)) + n
        }
        if (i = r.match(/^([#0]+)\.([#0]+)$/)) {
            n = "" + t.toFixed(Math.min(i[2].length, 10)).replace(/([^0])0+$/, "$1");
            s = n.indexOf(".");
            var h = r.indexOf(".") - s
              , u = r.length - n.length - h;
            return Te(r.substr(0, h) + n + r.substr(r.length - u))
        }
        if (i = r.match(/^00,000\.([#0]*0)$/)) {
            return t < 0 ? "-" + Re(e, r, -t) : ce("" + t).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(e) {
                return "00," + (e.length < 3 ? P(0, 3 - e.length) : "") + e
            }) + "." + P(0, i[1].length)
        }
        switch (r) {
        case "###,###":
            ;
        case "##,###":
            ;
        case "#,###":
            var d = ce("" + o);
            return d !== "0" ? l + d : "";
        default:
            if (r.match(/\.[0#?]*$/))
                return Re(e, r.slice(0, r.lastIndexOf(".")), t) + Te(r.slice(r.lastIndexOf(".")));
        }
        throw new Error("unsupported format |" + r + "|")
    }
    function Ie(e, r, t) {
        return (t | 0) === t ? Re(e, r, t) : Se(e, r, t)
    }
    function Ne(e) {
        var r = [];
        var t = false;
        for (var a = 0, n = 0; a < e.length; ++a)
            switch (e.charCodeAt(a)) {
            case 34:
                t = !t;
                break;
            case 95:
                ;
            case 42:
                ;
            case 92:
                ++a;
                break;
            case 59:
                r[r.length] = e.substr(n, a - n);
                n = a + 1;
            }
        r[r.length] = e.substr(n);
        if (t === true)
            throw new Error("Format |" + e + "| unterminated string ");
        return r
    }
    var De = /\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;
    function Fe(e) {
        var r = 0
          , t = ""
          , a = "";
        while (r < e.length) {
            switch (t = e.charAt(r)) {
            case "G":
                if (z(e, r))
                    r += 6;
                r++;
                break;
            case '"':
                for (; e.charCodeAt(++r) !== 34 && r < e.length; ) {}
                ++r;
                break;
            case "\\":
                r += 2;
                break;
            case "_":
                r += 2;
                break;
            case "@":
                ++r;
                break;
            case "B":
                ;
            case "b":
                if (e.charAt(r + 1) === "1" || e.charAt(r + 1) === "2")
                    return true;
            case "M":
                ;
            case "D":
                ;
            case "Y":
                ;
            case "H":
                ;
            case "S":
                ;
            case "E":
                ;
            case "m":
                ;
            case "d":
                ;
            case "y":
                ;
            case "h":
                ;
            case "s":
                ;
            case "e":
                ;
            case "g":
                return true;
            case "A":
                ;
            case "a":
                ;
            case "上":
                if (e.substr(r, 3).toUpperCase() === "A/P")
                    return true;
                if (e.substr(r, 5).toUpperCase() === "AM/PM")
                    return true;
                if (e.substr(r, 5).toUpperCase() === "上午/下午")
                    return true;
                ++r;
                break;
            case "[":
                a = t;
                while (e.charAt(r++) !== "]" && r < e.length)
                    a += e.charAt(r);
                if (a.match(De))
                    return true;
                break;
            case ".":
                ;
            case "0":
                ;
            case "#":
                while (r < e.length && ("0#?.,E+-%".indexOf(t = e.charAt(++r)) > -1 || t == "\\" && e.charAt(r + 1) == "-" && "0#".indexOf(e.charAt(r + 2)) > -1)) {}
                break;
            case "?":
                while (e.charAt(++r) === t) {}
                break;
            case "*":
                ++r;
                if (e.charAt(r) == " " || e.charAt(r) == "*")
                    ++r;
                break;
            case "(":
                ;
            case ")":
                ++r;
                break;
            case "1":
                ;
            case "2":
                ;
            case "3":
                ;
            case "4":
                ;
            case "5":
                ;
            case "6":
                ;
            case "7":
                ;
            case "8":
                ;
            case "9":
                while (r < e.length && "0123456789".indexOf(e.charAt(++r)) > -1) {}
                break;
            case " ":
                ++r;
                break;
            default:
                ++r;
                break;
            }
        }
        return false
    }
    function Pe(e, r, t, a) {
        var n = [], i = "", s = 0, f = "", o = "t", l, c, h;
        var u = "H";
        while (s < e.length) {
            switch (f = e.charAt(s)) {
            case "G":
                if (!z(e, s))
                    throw new Error("unrecognized character " + f + " in " + e);
                n[n.length] = {
                    t: "G",
                    v: "General"
                };
                s += 7;
                break;
            case '"':
                for (i = ""; (h = e.charCodeAt(++s)) !== 34 && s < e.length; )
                    i += String.fromCharCode(h);
                n[n.length] = {
                    t: "t",
                    v: i
                };
                ++s;
                break;
            case "\\":
                var d = e.charAt(++s)
                  , v = d === "(" || d === ")" ? d : "t";
                n[n.length] = {
                    t: v,
                    v: d
                };
                ++s;
                break;
            case "_":
                n[n.length] = {
                    t: "t",
                    v: " "
                };
                s += 2;
                break;
            case "@":
                n[n.length] = {
                    t: "T",
                    v: r
                };
                ++s;
                break;
            case "B":
                ;
            case "b":
                if (e.charAt(s + 1) === "1" || e.charAt(s + 1) === "2") {
                    if (l == null) {
                        l = q(r, t, e.charAt(s + 1) === "2");
                        if (l == null)
                            return ""
                    }
                    n[n.length] = {
                        t: "X",
                        v: e.substr(s, 2)
                    };
                    o = f;
                    s += 2;
                    break
                }
                ;
            case "M":
                ;
            case "D":
                ;
            case "Y":
                ;
            case "H":
                ;
            case "S":
                ;
            case "E":
                f = f.toLowerCase();
            case "m":
                ;
            case "d":
                ;
            case "y":
                ;
            case "h":
                ;
            case "s":
                ;
            case "e":
                ;
            case "g":
                if (r < 0)
                    return "";
                if (l == null) {
                    l = q(r, t);
                    if (l == null)
                        return ""
                }
                i = f;
                while (++s < e.length && e.charAt(s).toLowerCase() === f)
                    i += f;
                if (f === "m" && o.toLowerCase() === "h")
                    f = "M";
                if (f === "h")
                    f = u;
                n[n.length] = {
                    t: f,
                    v: i
                };
                o = f;
                break;
            case "A":
                ;
            case "a":
                ;
            case "上":
                var p = {
                    t: f,
                    v: f
                };
                if (l == null)
                    l = q(r, t);
                if (e.substr(s, 3).toUpperCase() === "A/P") {
                    if (l != null)
                        p.v = l.H >= 12 ? "P" : "A";
                    p.t = "T";
                    u = "h";
                    s += 3
                } else if (e.substr(s, 5).toUpperCase() === "AM/PM") {
                    if (l != null)
                        p.v = l.H >= 12 ? "PM" : "AM";
                    p.t = "T";
                    s += 5;
                    u = "h"
                } else if (e.substr(s, 5).toUpperCase() === "上午/下午") {
                    if (l != null)
                        p.v = l.H >= 12 ? "下午" : "上午";
                    p.t = "T";
                    s += 5;
                    u = "h"
                } else {
                    p.t = "t";
                    ++s
                }
                if (l == null && p.t === "T")
                    return "";
                n[n.length] = p;
                o = f;
                break;
            case "[":
                i = f;
                while (e.charAt(s++) !== "]" && s < e.length)
                    i += e.charAt(s);
                if (i.slice(-1) !== "]")
                    throw 'unterminated "[" block: |' + i + "|";
                if (i.match(De)) {
                    if (l == null) {
                        l = q(r, t);
                        if (l == null)
                            return ""
                    }
                    n[n.length] = {
                        t: "Z",
                        v: i.toLowerCase()
                    };
                    o = i.charAt(1)
                } else if (i.indexOf("$") > -1) {
                    i = (i.match(/\$([^-\[\]]*)/) || [])[1] || "$";
                    if (!Fe(e))
                        n[n.length] = {
                            t: "t",
                            v: i
                        }
                }
                break;
            case ".":
                if (l != null) {
                    i = f;
                    while (++s < e.length && (f = e.charAt(s)) === "0")
                        i += f;
                    n[n.length] = {
                        t: "s",
                        v: i
                    };
                    break
                }
                ;
            case "0":
                ;
            case "#":
                i = f;
                while (++s < e.length && "0#?.,E+-%".indexOf(f = e.charAt(s)) > -1)
                    i += f;
                n[n.length] = {
                    t: "n",
                    v: i
                };
                break;
            case "?":
                i = f;
                while (e.charAt(++s) === f)
                    i += f;
                n[n.length] = {
                    t: f,
                    v: i
                };
                o = f;
                break;
            case "*":
                ++s;
                if (e.charAt(s) == " " || e.charAt(s) == "*")
                    ++s;
                break;
            case "(":
                ;
            case ")":
                n[n.length] = {
                    t: a === 1 ? "t" : f,
                    v: f
                };
                ++s;
                break;
            case "1":
                ;
            case "2":
                ;
            case "3":
                ;
            case "4":
                ;
            case "5":
                ;
            case "6":
                ;
            case "7":
                ;
            case "8":
                ;
            case "9":
                i = f;
                while (s < e.length && "0123456789".indexOf(e.charAt(++s)) > -1)
                    i += e.charAt(s);
                n[n.length] = {
                    t: "D",
                    v: i
                };
                break;
            case " ":
                n[n.length] = {
                    t: f,
                    v: f
                };
                ++s;
                break;
            case "$":
                n[n.length] = {
                    t: "t",
                    v: "$"
                };
                ++s;
                break;
            default:
                if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f) === -1)
                    throw new Error("unrecognized character " + f + " in " + e);
                n[n.length] = {
                    t: "t",
                    v: f
                };
                ++s;
                break;
            }
        }
        var g = 0, m = 0, b;
        for (s = n.length - 1,
        o = "t"; s >= 0; --s) {
            switch (n[s].t) {
            case "h":
                ;
            case "H":
                n[s].t = u;
                o = "h";
                if (g < 1)
                    g = 1;
                break;
            case "s":
                if (b = n[s].v.match(/\.0+$/))
                    m = Math.max(m, b[0].length - 1);
                if (g < 3)
                    g = 3;
            case "d":
                ;
            case "y":
                ;
            case "M":
                ;
            case "e":
                o = n[s].t;
                break;
            case "m":
                if (o === "s") {
                    n[s].t = "M";
                    if (g < 2)
                        g = 2
                }
                break;
            case "X":
                break;
            case "Z":
                if (g < 1 && n[s].v.match(/[Hh]/))
                    g = 1;
                if (g < 2 && n[s].v.match(/[Mm]/))
                    g = 2;
                if (g < 3 && n[s].v.match(/[Ss]/))
                    g = 3;
            }
        }
        switch (g) {
        case 0:
            break;
        case 1:
            if (l.u >= .5) {
                l.u = 0;
                ++l.S
            }
            if (l.S >= 60) {
                l.S = 0;
                ++l.M
            }
            if (l.M >= 60) {
                l.M = 0;
                ++l.H
            }
            break;
        case 2:
            if (l.u >= .5) {
                l.u = 0;
                ++l.S
            }
            if (l.S >= 60) {
                l.S = 0;
                ++l.M
            }
            break;
        }
        var w = "", k;
        for (s = 0; s < n.length; ++s) {
            switch (n[s].t) {
            case "t":
                ;
            case "T":
                ;
            case " ":
                ;
            case "D":
                break;
            case "X":
                n[s].v = "";
                n[s].t = ";";
                break;
            case "d":
                ;
            case "m":
                ;
            case "y":
                ;
            case "h":
                ;
            case "H":
                ;
            case "M":
                ;
            case "s":
                ;
            case "e":
                ;
            case "b":
                ;
            case "Z":
                n[s].v = le(n[s].t.charCodeAt(0), n[s].v, l, m);
                n[s].t = "t";
                break;
            case "n":
                ;
            case "?":
                k = s + 1;
                while (n[k] != null && ((f = n[k].t) === "?" || f === "D" || (f === " " || f === "t") && n[k + 1] != null && (n[k + 1].t === "?" || n[k + 1].t === "t" && n[k + 1].v === "/") || n[s].t === "(" && (f === " " || f === "n" || f === ")") || f === "t" && (n[k].v === "/" || n[k].v === " " && n[k + 1] != null && n[k + 1].t == "?"))) {
                    n[s].v += n[k].v;
                    n[k] = {
                        v: "",
                        t: ";"
                    };
                    ++k
                }
                w += n[s].v;
                s = k - 1;
                break;
            case "G":
                n[s].t = "t";
                n[s].v = fe(r, t);
                break;
            }
        }
        var T = "", A, E;
        if (w.length > 0) {
            if (w.charCodeAt(0) == 40) {
                A = r < 0 && w.charCodeAt(0) === 45 ? -r : r;
                E = Ie("n", w, A)
            } else {
                A = r < 0 && a > 1 ? -r : r;
                E = Ie("n", w, A);
                if (A < 0 && n[0] && n[0].t == "t") {
                    E = E.substr(1);
                    n[0].v = "-" + n[0].v
                }
            }
            k = E.length - 1;
            var C = n.length;
            for (s = 0; s < n.length; ++s)
                if (n[s] != null && n[s].t != "t" && n[s].v.indexOf(".") > -1) {
                    C = s;
                    break
                }
            var y = n.length;
            if (C === n.length && E.indexOf("E") === -1) {
                for (s = n.length - 1; s >= 0; --s) {
                    if (n[s] == null || "n?".indexOf(n[s].t) === -1)
                        continue;
                    if (k >= n[s].v.length - 1) {
                        k -= n[s].v.length;
                        n[s].v = E.substr(k + 1, n[s].v.length)
                    } else if (k < 0)
                        n[s].v = "";
                    else {
                        n[s].v = E.substr(0, k + 1);
                        k = -1
                    }
                    n[s].t = "t";
                    y = s
                }
                if (k >= 0 && y < n.length)
                    n[y].v = E.substr(0, k + 1) + n[y].v
            } else if (C !== n.length && E.indexOf("E") === -1) {
                k = E.indexOf(".") - 1;
                for (s = C; s >= 0; --s) {
                    if (n[s] == null || "n?".indexOf(n[s].t) === -1)
                        continue;
                    c = n[s].v.indexOf(".") > -1 && s === C ? n[s].v.indexOf(".") - 1 : n[s].v.length - 1;
                    T = n[s].v.substr(c + 1);
                    for (; c >= 0; --c) {
                        if (k >= 0 && (n[s].v.charAt(c) === "0" || n[s].v.charAt(c) === "#"))
                            T = E.charAt(k--) + T
                    }
                    n[s].v = T;
                    n[s].t = "t";
                    y = s
                }
                if (k >= 0 && y < n.length)
                    n[y].v = E.substr(0, k + 1) + n[y].v;
                k = E.indexOf(".") + 1;
                for (s = C; s < n.length; ++s) {
                    if (n[s] == null || "n?(".indexOf(n[s].t) === -1 && s !== C)
                        continue;
                    c = n[s].v.indexOf(".") > -1 && s === C ? n[s].v.indexOf(".") + 1 : 0;
                    T = n[s].v.substr(0, c);
                    for (; c < n[s].v.length; ++c) {
                        if (k < E.length)
                            T += E.charAt(k++)
                    }
                    n[s].v = T;
                    n[s].t = "t";
                    y = s
                }
            }
        }
        for (s = 0; s < n.length; ++s)
            if (n[s] != null && "n?".indexOf(n[s].t) > -1) {
                A = a > 1 && r < 0 && s > 0 && n[s - 1].v === "-" ? -r : r;
                n[s].v = Ie(n[s].t, n[s].v, A);
                n[s].t = "t"
            }
        var S = "";
        for (s = 0; s !== n.length; ++s)
            if (n[s] != null)
                S += n[s].v;
        return S
    }
    var Le = /\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;
    function Me(e, r) {
        if (r == null)
            return false;
        var t = parseFloat(r[2]);
        switch (r[1]) {
        case "=":
            if (e == t)
                return true;
            break;
        case ">":
            if (e > t)
                return true;
            break;
        case "<":
            if (e < t)
                return true;
            break;
        case "<>":
            if (e != t)
                return true;
            break;
        case ">=":
            if (e >= t)
                return true;
            break;
        case "<=":
            if (e <= t)
                return true;
            break;
        }
        return false
    }
    function Ue(e, r) {
        var t = Ne(e);
        var a = t.length
          , n = t[a - 1].indexOf("@");
        if (a < 4 && n > -1)
            --a;
        if (t.length > 4)
            throw new Error("cannot find right format for |" + t.join("|") + "|");
        if (typeof r !== "number")
            return [4, t.length === 4 || n > -1 ? t[t.length - 1] : "@"];
        switch (t.length) {
        case 1:
            t = n > -1 ? ["General", "General", "General", t[0]] : [t[0], t[0], t[0], "@"];
            break;
        case 2:
            t = n > -1 ? [t[0], t[0], t[0], t[1]] : [t[0], t[1], t[0], "@"];
            break;
        case 3:
            t = n > -1 ? [t[0], t[1], t[0], t[2]] : [t[0], t[1], t[2], "@"];
            break;
        case 4:
            break;
        }
        var i = r > 0 ? t[0] : r < 0 ? t[1] : t[2];
        if (t[0].indexOf("[") === -1 && t[1].indexOf("[") === -1)
            return [a, i];
        if (t[0].match(/\[[=<>]/) != null || t[1].match(/\[[=<>]/) != null) {
            var s = t[0].match(Le);
            var f = t[1].match(Le);
            return Me(r, s) ? [a, t[0]] : Me(r, f) ? [a, t[1]] : [a, t[s != null && f != null ? 2 : 1]]
        }
        return [a, i]
    }
    function Be(e, r, t) {
        if (t == null)
            t = {};
        var a = "";
        switch (typeof e) {
        case "string":
            if (e == "m/d/yy" && t.dateNF)
                a = t.dateNF;
            else
                a = e;
            break;
        case "number":
            if (e == 14 && t.dateNF)
                a = t.dateNF;
            else
                a = (t.table != null ? t.table : X)[e];
            if (a == null)
                a = t.table && t.table[Y[e]] || X[Y[e]];
            if (a == null)
                a = K[e] || "General";
            break;
        }
        if (z(a, 0))
            return fe(r, t);
        if (r instanceof Date)
            r = re(r, t.date1904);
        var n = Ue(a, r);
        if (z(n[1]))
            return fe(r, t);
        if (r === true)
            r = "TRUE";
        else if (r === false)
            r = "FALSE";
        else if (r === "" || r == null)
            return "";
        return Pe(n[1], r, t, n[0])
    }
    function We(e, r) {
        if (typeof r != "number") {
            r = +r || -1;
            for (var t = 0; t < 392; ++t) {
                if (X[t] == undefined) {
                    if (r < 0)
                        r = t;
                    continue
                }
                if (X[t] == e) {
                    r = t;
                    break
                }
            }
            if (r < 0)
                r = 391
        }
        X[r] = e;
        return r
    }
    function He(e) {
        for (var r = 0; r != 392; ++r)
            if (e[r] !== undefined)
                We(e[r], r)
    }
    function ze() {
        X = j()
    }
    var Ve = {
        format: Be,
        load: We,
        _table: X,
        load_table: He,
        parse_date_code: q,
        is_date: Fe,
        get_table: function Qw() {
            return Ve._table = X
        }
    };
    var Ge = {
        5: '"$"#,##0_);\\("$"#,##0\\)',
        6: '"$"#,##0_);[Red]\\("$"#,##0\\)',
        7: '"$"#,##0.00_);\\("$"#,##0.00\\)',
        8: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',
        23: "General",
        24: "General",
        25: "General",
        26: "General",
        27: "m/d/yy",
        28: "m/d/yy",
        29: "m/d/yy",
        30: "m/d/yy",
        31: "m/d/yy",
        32: "h:mm:ss",
        33: "h:mm:ss",
        34: "h:mm:ss",
        35: "h:mm:ss",
        36: "m/d/yy",
        41: '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',
        42: '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',
        43: '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',
        44: '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',
        50: "m/d/yy",
        51: "m/d/yy",
        52: "m/d/yy",
        53: "m/d/yy",
        54: "m/d/yy",
        55: "m/d/yy",
        56: "m/d/yy",
        57: "m/d/yy",
        58: "m/d/yy",
        59: "0",
        60: "0.00",
        61: "#,##0",
        62: "#,##0.00",
        63: '"$"#,##0_);\\("$"#,##0\\)',
        64: '"$"#,##0_);[Red]\\("$"#,##0\\)',
        65: '"$"#,##0.00_);\\("$"#,##0.00\\)',
        66: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',
        67: "0%",
        68: "0.00%",
        69: "# ?/?",
        70: "# ??/??",
        71: "m/d/yy",
        72: "m/d/yy",
        73: "d-mmm-yy",
        74: "d-mmm",
        75: "mmm-yy",
        76: "h:mm",
        77: "h:mm:ss",
        78: "m/d/yy h:mm",
        79: "mm:ss",
        80: "[h]:mm:ss",
        81: "mmss.0"
    };
    var je = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;
    function Xe(e) {
        var r = typeof e == "number" ? X[e] : e;
        r = r.replace(je, "(\\d+)");
        return new RegExp("^" + r + "$")
    }
    function $e(e, r, t) {
        var a = -1
          , n = -1
          , i = -1
          , s = -1
          , f = -1
          , o = -1;
        (r.match(je) || []).forEach(function(e, r) {
            var l = parseInt(t[r + 1], 10);
            switch (e.toLowerCase().charAt(0)) {
            case "y":
                a = l;
                break;
            case "d":
                i = l;
                break;
            case "h":
                s = l;
                break;
            case "s":
                o = l;
                break;
            case "m":
                if (s >= 0)
                    f = l;
                else
                    n = l;
                break;
            }
        });
        if (o >= 0 && f == -1 && n >= 0) {
            f = n;
            n = -1
        }
        var l = ("" + (a >= 0 ? a : (new Date).getFullYear())).slice(-4) + "-" + ("00" + (n >= 1 ? n : 1)).slice(-2) + "-" + ("00" + (i >= 1 ? i : 1)).slice(-2);
        if (l.length == 7)
            l = "0" + l;
        if (l.length == 8)
            l = "20" + l;
        var c = ("00" + (s >= 0 ? s : 0)).slice(-2) + ":" + ("00" + (f >= 0 ? f : 0)).slice(-2) + ":" + ("00" + (o >= 0 ? o : 0)).slice(-2);
        if (s == -1 && f == -1 && o == -1)
            return l;
        if (a == -1 && n == -1 && i == -1)
            return c;
        return l + "T" + c
    }
    var Ye = function() {
        var e = {};
        e.version = "1.2.0";
        function r() {
            var e = 0
              , r = new Array(256);
            for (var t = 0; t != 256; ++t) {
                e = t;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                e = e & 1 ? -306674912 ^ e >>> 1 : e >>> 1;
                r[t] = e
            }
            return typeof Int32Array !== "undefined" ? new Int32Array(r) : r
        }
        var t = r();
        function a(e) {
            var r = 0
              , t = 0
              , a = 0
              , n = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096);
            for (a = 0; a != 256; ++a)
                n[a] = e[a];
            for (a = 0; a != 256; ++a) {
                t = e[a];
                for (r = 256 + a; r < 4096; r += 256)
                    t = n[r] = t >>> 8 ^ e[t & 255]
            }
            var i = [];
            for (a = 1; a != 16; ++a)
                i[a - 1] = typeof Int32Array !== "undefined" ? n.subarray(a * 256, a * 256 + 256) : n.slice(a * 256, a * 256 + 256);
            return i
        }
        var n = a(t);
        var i = n[0]
          , s = n[1]
          , f = n[2]
          , o = n[3]
          , l = n[4];
        var c = n[5]
          , h = n[6]
          , u = n[7]
          , d = n[8]
          , v = n[9];
        var p = n[10]
          , g = n[11]
          , m = n[12]
          , b = n[13]
          , w = n[14];
        function k(e, r) {
            var a = r ^ -1;
            for (var n = 0, i = e.length; n < i; )
                a = a >>> 8 ^ t[(a ^ e.charCodeAt(n++)) & 255];
            return ~a
        }
        function T(e, r) {
            var a = r ^ -1
              , n = e.length - 15
              , k = 0;
            for (; k < n; )
                a = w[e[k++] ^ a & 255] ^ b[e[k++] ^ a >> 8 & 255] ^ m[e[k++] ^ a >> 16 & 255] ^ g[e[k++] ^ a >>> 24] ^ p[e[k++]] ^ v[e[k++]] ^ d[e[k++]] ^ u[e[k++]] ^ h[e[k++]] ^ c[e[k++]] ^ l[e[k++]] ^ o[e[k++]] ^ f[e[k++]] ^ s[e[k++]] ^ i[e[k++]] ^ t[e[k++]];
            n += 15;
            while (k < n)
                a = a >>> 8 ^ t[(a ^ e[k++]) & 255];
            return ~a
        }
        function A(e, r) {
            var a = r ^ -1;
            for (var n = 0, i = e.length, s = 0, f = 0; n < i; ) {
                s = e.charCodeAt(n++);
                if (s < 128) {
                    a = a >>> 8 ^ t[(a ^ s) & 255]
                } else if (s < 2048) {
                    a = a >>> 8 ^ t[(a ^ (192 | s >> 6 & 31)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | s & 63)) & 255]
                } else if (s >= 55296 && s < 57344) {
                    s = (s & 1023) + 64;
                    f = e.charCodeAt(n++) & 1023;
                    a = a >>> 8 ^ t[(a ^ (240 | s >> 8 & 7)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | s >> 2 & 63)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | f >> 6 & 15 | (s & 3) << 4)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | f & 63)) & 255]
                } else {
                    a = a >>> 8 ^ t[(a ^ (224 | s >> 12 & 15)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | s >> 6 & 63)) & 255];
                    a = a >>> 8 ^ t[(a ^ (128 | s & 63)) & 255]
                }
            }
            return ~a
        }
        e.table = t;
        e.bstr = k;
        e.buf = T;
        e.str = A;
        return e
    }();
    var Ke = function ek() {
        var e = {};
        e.version = "1.2.1";
        function r(e, r) {
            var t = e.split("/")
              , a = r.split("/");
            for (var n = 0, i = 0, s = Math.min(t.length, a.length); n < s; ++n) {
                if (i = t[n].length - a[n].length)
                    return i;
                if (t[n] != a[n])
                    return t[n] < a[n] ? -1 : 1
            }
            return t.length - a.length
        }
        function t(e) {
            if (e.charAt(e.length - 1) == "/")
                return e.slice(0, -1).indexOf("/") === -1 ? e : t(e.slice(0, -1));
            var r = e.lastIndexOf("/");
            return r === -1 ? e : e.slice(0, r + 1)
        }
        function a(e) {
            if (e.charAt(e.length - 1) == "/")
                return a(e.slice(0, -1));
            var r = e.lastIndexOf("/");
            return r === -1 ? e : e.slice(r + 1)
        }
        function n(e, r) {
            if (typeof r === "string")
                r = new Date(r);
            var t = r.getHours();
            t = t << 6 | r.getMinutes();
            t = t << 5 | r.getSeconds() >>> 1;
            e._W(2, t);
            var a = r.getFullYear() - 1980;
            a = a << 4 | r.getMonth() + 1;
            a = a << 5 | r.getDate();
            e._W(2, a)
        }
        function i(e) {
            var r = e._R(2) & 65535;
            var t = e._R(2) & 65535;
            var a = new Date;
            var n = t & 31;
            t >>>= 5;
            var i = t & 15;
            t >>>= 4;
            a.setMilliseconds(0);
            a.setFullYear(t + 1980);
            a.setMonth(i - 1);
            a.setDate(n);
            var s = r & 31;
            r >>>= 5;
            var f = r & 63;
            r >>>= 6;
            a.setHours(r);
            a.setMinutes(f);
            a.setSeconds(s << 1);
            return a
        }
        function s(e) {
            ca(e, 0);
            var r = {};
            var t = 0;
            while (e.l <= e.length - 4) {
                var a = e._R(2);
                var n = e._R(2)
                  , i = e.l + n;
                var s = {};
                switch (a) {
                case 21589:
                    {
                        t = e._R(1);
                        if (t & 1)
                            s.mtime = e._R(4);
                        if (n > 5) {
                            if (t & 2)
                                s.atime = e._R(4);
                            if (t & 4)
                                s.ctime = e._R(4)
                        }
                        if (s.mtime)
                            s.mt = new Date(s.mtime * 1e3)
                    }
                    break;
                }
                e.l = i;
                r[a] = s
            }
            return r
        }
        var f;
        function o() {
            return f || (f = undefined)
        }
        function l(e, r) {
            if (e[0] == 80 && e[1] == 75)
                return Ie(e, r);
            if ((e[0] | 32) == 109 && (e[1] | 32) == 105)
                return We(e, r);
            if (e.length < 512)
                throw new Error("CFB file size " + e.length + " < 512");
            var t = 3;
            var a = 512;
            var n = 0;
            var i = 0;
            var s = 0;
            var f = 0;
            var o = 0;
            var l = [];
            var v = e.slice(0, 512);
            ca(v, 0);
            var g = c(v);
            t = g[0];
            switch (t) {
            case 3:
                a = 512;
                break;
            case 4:
                a = 4096;
                break;
            case 0:
                if (g[1] == 0)
                    return Ie(e, r);
            default:
                throw new Error("Major Version: Expected 3 or 4 saw " + t);
            }
            if (a !== 512) {
                v = e.slice(0, a);
                ca(v, 28)
            }
            var w = e.slice(0, a);
            h(v, t);
            var k = v._R(4, "i");
            if (t === 3 && k !== 0)
                throw new Error("# Directory Sectors: Expected 0 saw " + k);
            v.l += 4;
            s = v._R(4, "i");
            v.l += 4;
            v.chk("00100000", "Mini Stream Cutoff Size: ");
            f = v._R(4, "i");
            n = v._R(4, "i");
            o = v._R(4, "i");
            i = v._R(4, "i");
            for (var T = -1, A = 0; A < 109; ++A) {
                T = v._R(4, "i");
                if (T < 0)
                    break;
                l[A] = T
            }
            var E = u(e, a);
            p(o, i, E, a, l);
            var C = m(E, s, l, a);
            C[s].name = "!Directory";
            if (n > 0 && f !== U)
                C[f].name = "!MiniFAT";
            C[l[0]].name = "!FAT";
            C.fat_addrs = l;
            C.ssz = a;
            var y = {}
              , S = []
              , _ = []
              , x = [];
            b(s, C, E, S, n, y, _, f);
            d(_, x, S);
            S.shift();
            var O = {
                FileIndex: _,
                FullPaths: x
            };
            if (r && r.raw)
                O.raw = {
                    header: w,
                    sectors: E
                };
            return O
        }
        function c(e) {
            if (e[e.l] == 80 && e[e.l + 1] == 75)
                return [0, 0];
            e.chk(B, "Header Signature: ");
            e.l += 16;
            var r = e._R(2, "u");
            return [e._R(2, "u"), r]
        }
        function h(e, r) {
            var t = 9;
            e.l += 2;
            switch (t = e._R(2)) {
            case 9:
                if (r != 3)
                    throw new Error("Sector Shift: Expected 9 saw " + t);
                break;
            case 12:
                if (r != 4)
                    throw new Error("Sector Shift: Expected 12 saw " + t);
                break;
            default:
                throw new Error("Sector Shift: Expected 9 or 12 saw " + t);
            }
            e.chk("0600", "Mini Sector Shift: ");
            e.chk("000000000000", "Reserved: ")
        }
        function u(e, r) {
            var t = Math.ceil(e.length / r) - 1;
            var a = [];
            for (var n = 1; n < t; ++n)
                a[n - 1] = e.slice(n * r, (n + 1) * r);
            a[t - 1] = e.slice(t * r);
            return a
        }
        function d(e, r, t) {
            var a = 0
              , n = 0
              , i = 0
              , s = 0
              , f = 0
              , o = t.length;
            var l = []
              , c = [];
            for (; a < o; ++a) {
                l[a] = c[a] = a;
                r[a] = t[a]
            }
            for (; f < c.length; ++f) {
                a = c[f];
                n = e[a].L;
                i = e[a].R;
                s = e[a].C;
                if (l[a] === a) {
                    if (n !== -1 && l[n] !== n)
                        l[a] = l[n];
                    if (i !== -1 && l[i] !== i)
                        l[a] = l[i]
                }
                if (s !== -1)
                    l[s] = a;
                if (n !== -1 && a != l[a]) {
                    l[n] = l[a];
                    if (c.lastIndexOf(n) < f)
                        c.push(n)
                }
                if (i !== -1 && a != l[a]) {
                    l[i] = l[a];
                    if (c.lastIndexOf(i) < f)
                        c.push(i)
                }
            }
            for (a = 1; a < o; ++a)
                if (l[a] === a) {
                    if (i !== -1 && l[i] !== i)
                        l[a] = l[i];
                    else if (n !== -1 && l[n] !== n)
                        l[a] = l[n]
                }
            for (a = 1; a < o; ++a) {
                if (e[a].type === 0)
                    continue;
                f = a;
                if (f != l[f])
                    do {
                        f = l[f];
                        r[a] = r[f] + "/" + r[a]
                    } while (f !== 0 && -1 !== l[f] && f != l[f]);
                l[a] = -1
            }
            r[0] += "/";
            for (a = 1; a < o; ++a) {
                if (e[a].type !== 2)
                    r[a] += "/"
            }
        }
        function v(e, r, t) {
            var a = e.start
              , n = e.size;
            var i = [];
            var s = a;
            while (t && n > 0 && s >= 0) {
                i.push(r.slice(s * M, s * M + M));
                n -= M;
                s = ta(t, s * 4)
            }
            if (i.length === 0)
                return ua(0);
            return R(i).slice(0, e.size)
        }
        function p(e, r, t, a, n) {
            var i = U;
            if (e === U) {
                if (r !== 0)
                    throw new Error("DIFAT chain shorter than expected")
            } else if (e !== -1) {
                var s = t[e]
                  , f = (a >>> 2) - 1;
                if (!s)
                    return;
                for (var o = 0; o < f; ++o) {
                    if ((i = ta(s, o * 4)) === U)
                        break;
                    n.push(i)
                }
                p(ta(s, a - 4), r - 1, t, a, n)
            }
        }
        function g(e, r, t, a, n) {
            var i = []
              , s = [];
            if (!n)
                n = [];
            var f = a - 1
              , o = 0
              , l = 0;
            for (o = r; o >= 0; ) {
                n[o] = true;
                i[i.length] = o;
                s.push(e[o]);
                var c = t[Math.floor(o * 4 / a)];
                l = o * 4 & f;
                if (a < 4 + l)
                    throw new Error("FAT boundary crossed: " + o + " 4 " + a);
                if (!e[c])
                    break;
                o = ta(e[c], l)
            }
            return {
                nodes: i,
                data: It([s])
            }
        }
        function m(e, r, t, a) {
            var n = e.length
              , i = [];
            var s = []
              , f = []
              , o = [];
            var l = a - 1
              , c = 0
              , h = 0
              , u = 0
              , d = 0;
            for (c = 0; c < n; ++c) {
                f = [];
                u = c + r;
                if (u >= n)
                    u -= n;
                if (s[u])
                    continue;
                o = [];
                var v = [];
                for (h = u; h >= 0; ) {
                    v[h] = true;
                    s[h] = true;
                    f[f.length] = h;
                    o.push(e[h]);
                    var p = t[Math.floor(h * 4 / a)];
                    d = h * 4 & l;
                    if (a < 4 + d)
                        throw new Error("FAT boundary crossed: " + h + " 4 " + a);
                    if (!e[p])
                        break;
                    h = ta(e[p], d);
                    if (v[h])
                        break
                }
                i[u] = {
                    nodes: f,
                    data: It([o])
                }
            }
            return i
        }
        function b(e, r, t, a, n, i, s, f) {
            var o = 0
              , l = a.length ? 2 : 0;
            var c = r[e].data;
            var h = 0, u = 0, d;
            for (; h < c.length; h += 128) {
                var p = c.slice(h, h + 128);
                ca(p, 64);
                u = p._R(2);
                d = Dt(p, 0, u - l);
                a.push(d);
                var m = {
                    name: d,
                    type: p._R(1),
                    color: p._R(1),
                    L: p._R(4, "i"),
                    R: p._R(4, "i"),
                    C: p._R(4, "i"),
                    clsid: p._R(16),
                    state: p._R(4, "i"),
                    start: 0,
                    size: 0
                };
                var b = p._R(2) + p._R(2) + p._R(2) + p._R(2);
                if (b !== 0)
                    m.ct = S(p, p.l - 8);
                var w = p._R(2) + p._R(2) + p._R(2) + p._R(2);
                if (w !== 0)
                    m.mt = S(p, p.l - 8);
                m.start = p._R(4, "i");
                m.size = p._R(4, "i");
                if (m.size < 0 && m.start < 0) {
                    m.size = m.type = 0;
                    m.start = U;
                    m.name = ""
                }
                if (m.type === 5) {
                    o = m.start;
                    if (n > 0 && o !== U)
                        r[o].name = "!StreamData"
                } else if (m.size >= 4096) {
                    m.storage = "fat";
                    if (r[m.start] === undefined)
                        r[m.start] = g(t, m.start, r.fat_addrs, r.ssz);
                    r[m.start].name = m.name;
                    m.content = r[m.start].data.slice(0, m.size)
                } else {
                    m.storage = "minifat";
                    if (m.size < 0)
                        m.size = 0;
                    else if (o !== U && m.start !== U && r[o]) {
                        m.content = v(m, r[o].data, (r[f] || {}).data)
                    }
                }
                if (m.content)
                    ca(m.content, 0);
                i[d] = m;
                s.push(m)
            }
        }
        function S(e, r) {
            return new Date((ra(e, r + 4) / 1e7 * Math.pow(2, 32) + ra(e, r) / 1e7 - 11644473600) * 1e3)
        }
        function _(e, r) {
            o();
            return l(f.readFileSync(e), r)
        }
        function x(e, r) {
            var t = r && r.type;
            if (!t) {
                if (T && Buffer.isBuffer(e))
                    t = "buffer"
            }
            switch (t || "base64") {
            case "file":
                return _(e, r);
            case "base64":
                return l(y(k(e)), r);
            case "binary":
                return l(y(e), r);
            }
            return l(e, r)
        }
        function O(e, r) {
            var t = r || {}
              , a = t.root || "Root Entry";
            if (!e.FullPaths)
                e.FullPaths = [];
            if (!e.FileIndex)
                e.FileIndex = [];
            if (e.FullPaths.length !== e.FileIndex.length)
                throw new Error("inconsistent CFB structure");
            if (e.FullPaths.length === 0) {
                e.FullPaths[0] = a + "/";
                e.FileIndex[0] = {
                    name: a,
                    type: 5
                }
            }
            if (t.CLSID)
                e.FileIndex[0].clsid = t.CLSID;
            I(e)
        }
        function I(e) {
            var r = "Sh33tJ5";
            if (Ke.find(e, "/" + r))
                return;
            var t = ua(4);
            t[0] = 55;
            t[1] = t[3] = 50;
            t[2] = 54;
            e.FileIndex.push({
                name: r,
                type: 2,
                content: t,
                size: 4,
                L: 69,
                R: 69,
                C: 69
            });
            e.FullPaths.push(e.FullPaths[0] + r);
            F(e)
        }
        function F(e, n) {
            O(e);
            var i = false
              , s = false;
            for (var f = e.FullPaths.length - 1; f >= 0; --f) {
                var o = e.FileIndex[f];
                switch (o.type) {
                case 0:
                    if (s)
                        i = true;
                    else {
                        e.FileIndex.pop();
                        e.FullPaths.pop()
                    }
                    break;
                case 1:
                    ;
                case 2:
                    ;
                case 5:
                    s = true;
                    if (isNaN(o.R * o.L * o.C))
                        i = true;
                    if (o.R > -1 && o.L > -1 && o.R == o.L)
                        i = true;
                    break;
                default:
                    i = true;
                    break;
                }
            }
            if (!i && !n)
                return;
            var l = new Date(1987,1,19)
              , c = 0;
            var h = Object.create ? Object.create(null) : {};
            var u = [];
            for (f = 0; f < e.FullPaths.length; ++f) {
                h[e.FullPaths[f]] = true;
                if (e.FileIndex[f].type === 0)
                    continue;
                u.push([e.FullPaths[f], e.FileIndex[f]])
            }
            for (f = 0; f < u.length; ++f) {
                var d = t(u[f][0]);
                s = h[d];
                if (!s) {
                    u.push([d, {
                        name: a(d).replace("/", ""),
                        type: 1,
                        clsid: H,
                        ct: l,
                        mt: l,
                        content: null
                    }]);
                    h[d] = true
                }
            }
            u.sort(function(e, t) {
                return r(e[0], t[0])
            });
            e.FullPaths = [];
            e.FileIndex = [];
            for (f = 0; f < u.length; ++f) {
                e.FullPaths[f] = u[f][0];
                e.FileIndex[f] = u[f][1]
            }
            for (f = 0; f < u.length; ++f) {
                var v = e.FileIndex[f];
                var p = e.FullPaths[f];
                v.name = a(p).replace("/", "");
                v.L = v.R = v.C = -(v.color = 1);
                v.size = v.content ? v.content.length : 0;
                v.start = 0;
                v.clsid = v.clsid || H;
                if (f === 0) {
                    v.C = u.length > 1 ? 1 : -1;
                    v.size = 0;
                    v.type = 5
                } else if (p.slice(-1) == "/") {
                    for (c = f + 1; c < u.length; ++c)
                        if (t(e.FullPaths[c]) == p)
                            break;
                    v.C = c >= u.length ? -1 : c;
                    for (c = f + 1; c < u.length; ++c)
                        if (t(e.FullPaths[c]) == t(p))
                            break;
                    v.R = c >= u.length ? -1 : c;
                    v.type = 1
                } else {
                    if (t(e.FullPaths[f + 1] || "") == t(p))
                        v.R = f + 1;
                    v.type = 2
                }
            }
        }
        function P(e, r) {
            var t = r || {};
            if (t.fileType == "mad")
                return He(e, t);
            F(e);
            switch (t.fileType) {
            case "zip":
                return De(e, t);
            }
            var a = function(e) {
                var r = 0
                  , t = 0;
                for (var a = 0; a < e.FileIndex.length; ++a) {
                    var n = e.FileIndex[a];
                    if (!n.content)
                        continue;
                    var i = n.content.length;
                    if (i > 0) {
                        if (i < 4096)
                            r += i + 63 >> 6;
                        else
                            t += i + 511 >> 9
                    }
                }
                var s = e.FullPaths.length + 3 >> 2;
                var f = r + 7 >> 3;
                var o = r + 127 >> 7;
                var l = f + t + s + o;
                var c = l + 127 >> 7;
                var h = c <= 109 ? 0 : Math.ceil((c - 109) / 127);
                while (l + c + h + 127 >> 7 > c)
                    h = ++c <= 109 ? 0 : Math.ceil((c - 109) / 127);
                var u = [1, h, c, o, s, t, r, 0];
                e.FileIndex[0].size = r << 6;
                u[7] = (e.FileIndex[0].start = u[0] + u[1] + u[2] + u[3] + u[4] + u[5]) + (u[6] + 7 >> 3);
                return u
            }(e);
            var n = ua(a[7] << 9);
            var i = 0
              , s = 0;
            {
                for (i = 0; i < 8; ++i)
                    n._W(1, W[i]);
                for (i = 0; i < 8; ++i)
                    n._W(2, 0);
                n._W(2, 62);
                n._W(2, 3);
                n._W(2, 65534);
                n._W(2, 9);
                n._W(2, 6);
                for (i = 0; i < 3; ++i)
                    n._W(2, 0);
                n._W(4, 0);
                n._W(4, a[2]);
                n._W(4, a[0] + a[1] + a[2] + a[3] - 1);
                n._W(4, 0);
                n._W(4, 1 << 12);
                n._W(4, a[3] ? a[0] + a[1] + a[2] - 1 : U);
                n._W(4, a[3]);
                n._W(-4, a[1] ? a[0] - 1 : U);
                n._W(4, a[1]);
                for (i = 0; i < 109; ++i)
                    n._W(-4, i < a[2] ? a[1] + i : -1)
            }
            if (a[1]) {
                for (s = 0; s < a[1]; ++s) {
                    for (; i < 236 + s * 127; ++i)
                        n._W(-4, i < a[2] ? a[1] + i : -1);
                    n._W(-4, s === a[1] - 1 ? U : s + 1)
                }
            }
            var f = function(e) {
                for (s += e; i < s - 1; ++i)
                    n._W(-4, i + 1);
                if (e) {
                    ++i;
                    n._W(-4, U)
                }
            };
            s = i = 0;
            for (s += a[1]; i < s; ++i)
                n._W(-4, z.DIFSECT);
            for (s += a[2]; i < s; ++i)
                n._W(-4, z.FATSECT);
            f(a[3]);
            f(a[4]);
            var o = 0
              , l = 0;
            var c = e.FileIndex[0];
            for (; o < e.FileIndex.length; ++o) {
                c = e.FileIndex[o];
                if (!c.content)
                    continue;
                l = c.content.length;
                if (l < 4096)
                    continue;
                c.start = s;
                f(l + 511 >> 9)
            }
            f(a[6] + 7 >> 3);
            while (n.l & 511)
                n._W(-4, z.ENDOFCHAIN);
            s = i = 0;
            for (o = 0; o < e.FileIndex.length; ++o) {
                c = e.FileIndex[o];
                if (!c.content)
                    continue;
                l = c.content.length;
                if (!l || l >= 4096)
                    continue;
                c.start = s;
                f(l + 63 >> 6)
            }
            while (n.l & 511)
                n._W(-4, z.ENDOFCHAIN);
            for (i = 0; i < a[4] << 2; ++i) {
                var h = e.FullPaths[i];
                if (!h || h.length === 0) {
                    for (o = 0; o < 17; ++o)
                        n._W(4, 0);
                    for (o = 0; o < 3; ++o)
                        n._W(4, -1);
                    for (o = 0; o < 12; ++o)
                        n._W(4, 0);
                    continue
                }
                c = e.FileIndex[i];
                if (i === 0)
                    c.start = c.size ? c.start - 1 : U;
                var u = i === 0 && t.root || c.name;
                l = 2 * (u.length + 1);
                n._W(64, u, "utf16le");
                n._W(2, l);
                n._W(1, c.type);
                n._W(1, c.color);
                n._W(-4, c.L);
                n._W(-4, c.R);
                n._W(-4, c.C);
                if (!c.clsid)
                    for (o = 0; o < 4; ++o)
                        n._W(4, 0);
                else
                    n._W(16, c.clsid, "hex");
                n._W(4, c.state || 0);
                n._W(4, 0);
                n._W(4, 0);
                n._W(4, 0);
                n._W(4, 0);
                n._W(4, c.start);
                n._W(4, c.size);
                n._W(4, 0)
            }
            for (i = 1; i < e.FileIndex.length; ++i) {
                c = e.FileIndex[i];
                if (c.size >= 4096) {
                    n.l = c.start + 1 << 9;
                    if (T && Buffer.isBuffer(c.content)) {
                        c.content.copy(n, n.l, 0, c.size);
                        n.l += c.size + 511 & -512
                    } else {
                        for (o = 0; o < c.size; ++o)
                            n._W(1, c.content[o]);
                        for (; o & 511; ++o)
                            n._W(1, 0)
                    }
                }
            }
            for (i = 1; i < e.FileIndex.length; ++i) {
                c = e.FileIndex[i];
                if (c.size > 0 && c.size < 4096) {
                    if (T && Buffer.isBuffer(c.content)) {
                        c.content.copy(n, n.l, 0, c.size);
                        n.l += c.size + 63 & -64
                    } else {
                        for (o = 0; o < c.size; ++o)
                            n._W(1, c.content[o]);
                        for (; o & 63; ++o)
                            n._W(1, 0)
                    }
                }
            }
            if (T) {
                n.l = n.length
            } else {
                while (n.l < n.length)
                    n._W(1, 0)
            }
            return n
        }
        function L(e, r) {
            var t = e.FullPaths.map(function(e) {
                return e.toUpperCase()
            });
            var a = t.map(function(e) {
                var r = e.split("/");
                return r[r.length - (e.slice(-1) == "/" ? 2 : 1)]
            });
            var n = false;
            if (r.charCodeAt(0) === 47) {
                n = true;
                r = t[0].slice(0, -1) + r
            } else
                n = r.indexOf("/") !== -1;
            var i = r.toUpperCase();
            var s = n === true ? t.indexOf(i) : a.indexOf(i);
            if (s !== -1)
                return e.FileIndex[s];
            var f = !i.match(D);
            i = i.replace(N, "");
            if (f)
                i = i.replace(D, "!");
            for (s = 0; s < t.length; ++s) {
                if ((f ? t[s].replace(D, "!") : t[s]).replace(N, "") == i)
                    return e.FileIndex[s];
                if ((f ? a[s].replace(D, "!") : a[s]).replace(N, "") == i)
                    return e.FileIndex[s]
            }
            return null
        }
        var M = 64;
        var U = -2;
        var B = "d0cf11e0a1b11ae1";
        var W = [208, 207, 17, 224, 161, 177, 26, 225];
        var H = "00000000000000000000000000000000";
        var z = {
            MAXREGSECT: -6,
            DIFSECT: -4,
            FATSECT: -3,
            ENDOFCHAIN: U,
            FREESECT: -1,
            HEADER_SIGNATURE: B,
            HEADER_MINOR_VERSION: "3e00",
            MAXREGSID: -6,
            NOSTREAM: -1,
            HEADER_CLSID: H,
            EntryTypes: ["unknown", "storage", "stream", "lockbytes", "property", "root"]
        };
        function V(e, r, t) {
            o();
            var a = P(e, t);
            f.writeFileSync(r, a)
        }
        function G(e) {
            var r = new Array(e.length);
            for (var t = 0; t < e.length; ++t)
                r[t] = String.fromCharCode(e[t]);
            return r.join("")
        }
        function j(e, r) {
            var t = P(e, r);
            switch (r && r.type || "buffer") {
            case "file":
                o();
                f.writeFileSync(r.filename, t);
                return t;
            case "binary":
                return typeof t == "string" ? t : G(t);
            case "base64":
                return w(typeof t == "string" ? t : G(t));
            case "buffer":
                if (T)
                    return Buffer.isBuffer(t) ? t : A(t);
            case "array":
                return typeof t == "string" ? y(t) : t;
            }
            return t
        }
        var X;
        function $(e) {
            try {
                var r = e.InflateRaw;
                var t = new r;
                t._processChunk(new Uint8Array([3, 0]), t._finishFlushFlag);
                if (t.bytesRead)
                    X = e;
                else
                    throw new Error("zlib does not expose bytesRead")
            } catch (a) {
                console.error("cannot use native zlib: " + (a.message || a))
            }
        }
        function Y(e, r) {
            if (!X)
                return Oe(e, r);
            var t = X.InflateRaw;
            var a = new t;
            var n = a._processChunk(e.slice(e.l), a._finishFlushFlag);
            e.l += a.bytesRead;
            return n
        }
        function K(e) {
            return X ? X.deflateRawSync(e) : Te(e)
        }
        var J = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
        var q = [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];
        var Z = [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];
        function Q(e) {
            var r = (e << 1 | e << 11) & 139536 | (e << 5 | e << 15) & 558144;
            return (r >> 16 | r >> 8 | r) & 255
        }
        var ee = typeof Uint8Array !== "undefined";
        var re = ee ? new Uint8Array(1 << 8) : [];
        for (var te = 0; te < 1 << 8; ++te)
            re[te] = Q(te);
        function ae(e, r) {
            var t = re[e & 255];
            if (r <= 8)
                return t >>> 8 - r;
            t = t << 8 | re[e >> 8 & 255];
            if (r <= 16)
                return t >>> 16 - r;
            t = t << 8 | re[e >> 16 & 255];
            return t >>> 24 - r
        }
        function ne(e, r) {
            var t = r & 7
              , a = r >>> 3;
            return (e[a] | (t <= 6 ? 0 : e[a + 1] << 8)) >>> t & 3
        }
        function ie(e, r) {
            var t = r & 7
              , a = r >>> 3;
            return (e[a] | (t <= 5 ? 0 : e[a + 1] << 8)) >>> t & 7
        }
        function se(e, r) {
            var t = r & 7
              , a = r >>> 3;
            return (e[a] | (t <= 4 ? 0 : e[a + 1] << 8)) >>> t & 15
        }
        function fe(e, r) {
            var t = r & 7
              , a = r >>> 3;
            return (e[a] | (t <= 3 ? 0 : e[a + 1] << 8)) >>> t & 31
        }
        function oe(e, r) {
            var t = r & 7
              , a = r >>> 3;
            return (e[a] | (t <= 1 ? 0 : e[a + 1] << 8)) >>> t & 127
        }
        function le(e, r, t) {
            var a = r & 7
              , n = r >>> 3
              , i = (1 << t) - 1;
            var s = e[n] >>> a;
            if (t < 8 - a)
                return s & i;
            s |= e[n + 1] << 8 - a;
            if (t < 16 - a)
                return s & i;
            s |= e[n + 2] << 16 - a;
            if (t < 24 - a)
                return s & i;
            s |= e[n + 3] << 24 - a;
            return s & i
        }
        function ce(e, r, t) {
            var a = r & 7
              , n = r >>> 3;
            if (a <= 5)
                e[n] |= (t & 7) << a;
            else {
                e[n] |= t << a & 255;
                e[n + 1] = (t & 7) >> 8 - a
            }
            return r + 3
        }
        function he(e, r, t) {
            var a = r & 7
              , n = r >>> 3;
            t = (t & 1) << a;
            e[n] |= t;
            return r + 1
        }
        function ue(e, r, t) {
            var a = r & 7
              , n = r >>> 3;
            t <<= a;
            e[n] |= t & 255;
            t >>>= 8;
            e[n + 1] = t;
            return r + 8
        }
        function de(e, r, t) {
            var a = r & 7
              , n = r >>> 3;
            t <<= a;
            e[n] |= t & 255;
            t >>>= 8;
            e[n + 1] = t & 255;
            e[n + 2] = t >>> 8;
            return r + 16
        }
        function ve(e, r) {
            var t = e.length
              , a = 2 * t > r ? 2 * t : r + 5
              , n = 0;
            if (t >= r)
                return e;
            if (T) {
                var i = C(a);
                if (e.copy)
                    e.copy(i);
                else
                    for (; n < e.length; ++n)
                        i[n] = e[n];
                return i
            } else if (ee) {
                var s = new Uint8Array(a);
                if (s.set)
                    s.set(e);
                else
                    for (; n < t; ++n)
                        s[n] = e[n];
                return s
            }
            e.length = a;
            return e
        }
        function pe(e) {
            var r = new Array(e);
            for (var t = 0; t < e; ++t)
                r[t] = 0;
            return r
        }
        function ge(e, r, t) {
            var a = 1
              , n = 0
              , i = 0
              , s = 0
              , f = 0
              , o = e.length;
            var l = ee ? new Uint16Array(32) : pe(32);
            for (i = 0; i < 32; ++i)
                l[i] = 0;
            for (i = o; i < t; ++i)
                e[i] = 0;
            o = e.length;
            var c = ee ? new Uint16Array(o) : pe(o);
            for (i = 0; i < o; ++i) {
                l[n = e[i]]++;
                if (a < n)
                    a = n;
                c[i] = 0
            }
            l[0] = 0;
            for (i = 1; i <= a; ++i)
                l[i + 16] = f = f + l[i - 1] << 1;
            for (i = 0; i < o; ++i) {
                f = e[i];
                if (f != 0)
                    c[i] = l[f + 16]++
            }
            var h = 0;
            for (i = 0; i < o; ++i) {
                h = e[i];
                if (h != 0) {
                    f = ae(c[i], a) >> a - h;
                    for (s = (1 << a + 4 - h) - 1; s >= 0; --s)
                        r[f | s << h] = h & 15 | i << 4
                }
            }
            return a
        }
        var me = ee ? new Uint16Array(512) : pe(512);
        var be = ee ? new Uint16Array(32) : pe(32);
        if (!ee) {
            for (var we = 0; we < 512; ++we)
                me[we] = 0;
            for (we = 0; we < 32; ++we)
                be[we] = 0
        }
        (function() {
            var e = [];
            var r = 0;
            for (; r < 32; r++)
                e.push(5);
            ge(e, be, 32);
            var t = [];
            r = 0;
            for (; r <= 143; r++)
                t.push(8);
            for (; r <= 255; r++)
                t.push(9);
            for (; r <= 279; r++)
                t.push(7);
            for (; r <= 287; r++)
                t.push(8);
            ge(t, me, 288)
        }
        )();
        var ke = function $e() {
            var e = ee ? new Uint8Array(32768) : [];
            var r = 0
              , t = 0;
            for (; r < Z.length - 1; ++r) {
                for (; t < Z[r + 1]; ++t)
                    e[t] = r
            }
            for (; t < 32768; ++t)
                e[t] = 29;
            var a = ee ? new Uint8Array(259) : [];
            for (r = 0,
            t = 0; r < q.length - 1; ++r) {
                for (; t < q[r + 1]; ++t)
                    a[t] = r
            }
            function n(e, r) {
                var t = 0;
                while (t < e.length) {
                    var a = Math.min(65535, e.length - t);
                    var n = t + a == e.length;
                    r._W(1, +n);
                    r._W(2, a);
                    r._W(2, ~a & 65535);
                    while (a-- > 0)
                        r[r.l++] = e[t++]
                }
                return r.l
            }
            function i(r, t) {
                var n = 0;
                var i = 0;
                var s = ee ? new Uint16Array(32768) : [];
                while (i < r.length) {
                    var f = Math.min(65535, r.length - i);
                    if (f < 10) {
                        n = ce(t, n, +!!(i + f == r.length));
                        if (n & 7)
                            n += 8 - (n & 7);
                        t.l = n / 8 | 0;
                        t._W(2, f);
                        t._W(2, ~f & 65535);
                        while (f-- > 0)
                            t[t.l++] = r[i++];
                        n = t.l * 8;
                        continue
                    }
                    n = ce(t, n, +!!(i + f == r.length) + 2);
                    var o = 0;
                    while (f-- > 0) {
                        var l = r[i];
                        o = (o << 5 ^ l) & 32767;
                        var c = -1
                          , h = 0;
                        if (c = s[o]) {
                            c |= i & ~32767;
                            if (c > i)
                                c -= 32768;
                            if (c < i)
                                while (r[c + h] == r[i + h] && h < 250)
                                    ++h
                        }
                        if (h > 2) {
                            l = a[h];
                            if (l <= 22)
                                n = ue(t, n, re[l + 1] >> 1) - 1;
                            else {
                                ue(t, n, 3);
                                n += 5;
                                ue(t, n, re[l - 23] >> 5);
                                n += 3
                            }
                            var u = l < 8 ? 0 : l - 4 >> 2;
                            if (u > 0) {
                                de(t, n, h - q[l]);
                                n += u
                            }
                            l = e[i - c];
                            n = ue(t, n, re[l] >> 3);
                            n -= 3;
                            var d = l < 4 ? 0 : l - 2 >> 1;
                            if (d > 0) {
                                de(t, n, i - c - Z[l]);
                                n += d
                            }
                            for (var v = 0; v < h; ++v) {
                                s[o] = i & 32767;
                                o = (o << 5 ^ r[i]) & 32767;
                                ++i
                            }
                            f -= h - 1
                        } else {
                            if (l <= 143)
                                l = l + 48;
                            else
                                n = he(t, n, 1);
                            n = ue(t, n, re[l]);
                            s[o] = i & 32767;
                            ++i
                        }
                    }
                    n = ue(t, n, 0) - 1
                }
                t.l = (n + 7) / 8 | 0;
                return t.l
            }
            return function s(e, r) {
                if (e.length < 8)
                    return n(e, r);
                return i(e, r)
            }
        }();
        function Te(e) {
            var r = ua(50 + Math.floor(e.length * 1.1));
            var t = ke(e, r);
            return r.slice(0, t)
        }
        var Ae = ee ? new Uint16Array(32768) : pe(32768);
        var Ee = ee ? new Uint16Array(32768) : pe(32768);
        var Ce = ee ? new Uint16Array(128) : pe(128);
        var ye = 1
          , Se = 1;
        function _e(e, r) {
            var t = fe(e, r) + 257;
            r += 5;
            var a = fe(e, r) + 1;
            r += 5;
            var n = se(e, r) + 4;
            r += 4;
            var i = 0;
            var s = ee ? new Uint8Array(19) : pe(19);
            var f = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
            var o = 1;
            var l = ee ? new Uint8Array(8) : pe(8);
            var c = ee ? new Uint8Array(8) : pe(8);
            var h = s.length;
            for (var u = 0; u < n; ++u) {
                s[J[u]] = i = ie(e, r);
                if (o < i)
                    o = i;
                l[i]++;
                r += 3
            }
            var d = 0;
            l[0] = 0;
            for (u = 1; u <= o; ++u)
                c[u] = d = d + l[u - 1] << 1;
            for (u = 0; u < h; ++u)
                if ((d = s[u]) != 0)
                    f[u] = c[d]++;
            var v = 0;
            for (u = 0; u < h; ++u) {
                v = s[u];
                if (v != 0) {
                    d = re[f[u]] >> 8 - v;
                    for (var p = (1 << 7 - v) - 1; p >= 0; --p)
                        Ce[d | p << v] = v & 7 | u << 3
                }
            }
            var g = [];
            o = 1;
            for (; g.length < t + a; ) {
                d = Ce[oe(e, r)];
                r += d & 7;
                switch (d >>>= 3) {
                case 16:
                    i = 3 + ne(e, r);
                    r += 2;
                    d = g[g.length - 1];
                    while (i-- > 0)
                        g.push(d);
                    break;
                case 17:
                    i = 3 + ie(e, r);
                    r += 3;
                    while (i-- > 0)
                        g.push(0);
                    break;
                case 18:
                    i = 11 + oe(e, r);
                    r += 7;
                    while (i-- > 0)
                        g.push(0);
                    break;
                default:
                    g.push(d);
                    if (o < d)
                        o = d;
                    break;
                }
            }
            var m = g.slice(0, t)
              , b = g.slice(t);
            for (u = t; u < 286; ++u)
                m[u] = 0;
            for (u = a; u < 30; ++u)
                b[u] = 0;
            ye = ge(m, Ae, 286);
            Se = ge(b, Ee, 30);
            return r
        }
        function xe(e, r) {
            if (e[0] == 3 && !(e[1] & 3)) {
                return [E(r), 2]
            }
            var t = 0;
            var a = 0;
            var n = C(r ? r : 1 << 18);
            var i = 0;
            var s = n.length >>> 0;
            var f = 0
              , o = 0;
            while ((a & 1) == 0) {
                a = ie(e, t);
                t += 3;
                if (a >>> 1 == 0) {
                    if (t & 7)
                        t += 8 - (t & 7);
                    var l = e[t >>> 3] | e[(t >>> 3) + 1] << 8;
                    t += 32;
                    if (l > 0) {
                        if (!r && s < i + l) {
                            n = ve(n, i + l);
                            s = n.length
                        }
                        while (l-- > 0) {
                            n[i++] = e[t >>> 3];
                            t += 8
                        }
                    }
                    continue
                } else if (a >> 1 == 1) {
                    f = 9;
                    o = 5
                } else {
                    t = _e(e, t);
                    f = ye;
                    o = Se
                }
                for (; ; ) {
                    if (!r && s < i + 32767) {
                        n = ve(n, i + 32767);
                        s = n.length
                    }
                    var c = le(e, t, f);
                    var h = a >>> 1 == 1 ? me[c] : Ae[c];
                    t += h & 15;
                    h >>>= 4;
                    if ((h >>> 8 & 255) === 0)
                        n[i++] = h;
                    else if (h == 256)
                        break;
                    else {
                        h -= 257;
                        var u = h < 8 ? 0 : h - 4 >> 2;
                        if (u > 5)
                            u = 0;
                        var d = i + q[h];
                        if (u > 0) {
                            d += le(e, t, u);
                            t += u
                        }
                        c = le(e, t, o);
                        h = a >>> 1 == 1 ? be[c] : Ee[c];
                        t += h & 15;
                        h >>>= 4;
                        var v = h < 4 ? 0 : h - 2 >> 1;
                        var p = Z[h];
                        if (v > 0) {
                            p += le(e, t, v);
                            t += v
                        }
                        if (!r && s < d) {
                            n = ve(n, d + 100);
                            s = n.length
                        }
                        while (i < d) {
                            n[i] = n[i - p];
                            ++i
                        }
                    }
                }
            }
            if (r)
                return [n, t + 7 >>> 3];
            return [n.slice(0, i), t + 7 >>> 3]
        }
        function Oe(e, r) {
            var t = e.slice(e.l || 0);
            var a = xe(t, r);
            e.l += a[1];
            return a[0]
        }
        function Re(e, r) {
            if (e) {
                if (typeof console !== "undefined")
                    console.error(r)
            } else
                throw new Error(r)
        }
        function Ie(e, r) {
            var t = e;
            ca(t, 0);
            var a = []
              , n = [];
            var i = {
                FileIndex: a,
                FullPaths: n
            };
            O(i, {
                root: r.root
            });
            var f = t.length - 4;
            while ((t[f] != 80 || t[f + 1] != 75 || t[f + 2] != 5 || t[f + 3] != 6) && f >= 0)
                --f;
            t.l = f + 4;
            t.l += 4;
            var o = t._R(2);
            t.l += 6;
            var l = t._R(4);
            t.l = l;
            for (f = 0; f < o; ++f) {
                t.l += 20;
                var c = t._R(4);
                var h = t._R(4);
                var u = t._R(2);
                var d = t._R(2);
                var v = t._R(2);
                t.l += 8;
                var p = t._R(4);
                var g = s(t.slice(t.l + u, t.l + u + d));
                t.l += u + d + v;
                var m = t.l;
                t.l = p + 4;
                Ne(t, c, h, i, g);
                t.l = m
            }
            return i
        }
        function Ne(e, r, t, a, n) {
            e.l += 2;
            var f = e._R(2);
            var o = e._R(2);
            var l = i(e);
            if (f & 8257)
                throw new Error("Unsupported ZIP encryption");
            var c = e._R(4);
            var h = e._R(4);
            var u = e._R(4);
            var d = e._R(2);
            var v = e._R(2);
            var p = "";
            for (var g = 0; g < d; ++g)
                p += String.fromCharCode(e[e.l++]);
            if (v) {
                var m = s(e.slice(e.l, e.l + v));
                if ((m[21589] || {}).mt)
                    l = m[21589].mt;
                if (((n || {})[21589] || {}).mt)
                    l = n[21589].mt
            }
            e.l += v;
            var b = e.slice(e.l, e.l + h);
            switch (o) {
            case 8:
                b = Y(e, u);
                break;
            case 0:
                break;
            default:
                throw new Error("Unsupported ZIP Compression method " + o);
            }
            var w = false;
            if (f & 8) {
                c = e._R(4);
                if (c == 134695760) {
                    c = e._R(4);
                    w = true
                }
                h = e._R(4);
                u = e._R(4)
            }
            if (h != r)
                Re(w, "Bad compressed size: " + r + " != " + h);
            if (u != t)
                Re(w, "Bad uncompressed size: " + t + " != " + u);
            Ve(a, p, b, {
                unsafe: true,
                mt: l
            })
        }
        function De(e, r) {
            var t = r || {};
            var a = []
              , i = [];
            var s = ua(1);
            var f = t.compression ? 8 : 0
              , o = 0;
            var l = false;
            if (l)
                o |= 8;
            var c = 0
              , h = 0;
            var u = 0
              , d = 0;
            var v = e.FullPaths[0]
              , p = v
              , g = e.FileIndex[0];
            var m = [];
            var b = 0;
            for (c = 1; c < e.FullPaths.length; ++c) {
                p = e.FullPaths[c].slice(v.length);
                g = e.FileIndex[c];
                if (!g.size || !g.content || p == "Sh33tJ5")
                    continue;
                var w = u;
                var k = ua(p.length);
                for (h = 0; h < p.length; ++h)
                    k._W(1, p.charCodeAt(h) & 127);
                k = k.slice(0, k.l);
                m[d] = Ye.buf(g.content, 0);
                var T = g.content;
                if (f == 8)
                    T = K(T);
                s = ua(30);
                s._W(4, 67324752);
                s._W(2, 20);
                s._W(2, o);
                s._W(2, f);
                if (g.mt)
                    n(s, g.mt);
                else
                    s._W(4, 0);
                s._W(-4, o & 8 ? 0 : m[d]);
                s._W(4, o & 8 ? 0 : T.length);
                s._W(4, o & 8 ? 0 : g.content.length);
                s._W(2, k.length);
                s._W(2, 0);
                u += s.length;
                a.push(s);
                u += k.length;
                a.push(k);
                u += T.length;
                a.push(T);
                if (o & 8) {
                    s = ua(12);
                    s._W(-4, m[d]);
                    s._W(4, T.length);
                    s._W(4, g.content.length);
                    u += s.l;
                    a.push(s)
                }
                s = ua(46);
                s._W(4, 33639248);
                s._W(2, 0);
                s._W(2, 20);
                s._W(2, o);
                s._W(2, f);
                s._W(4, 0);
                s._W(-4, m[d]);
                s._W(4, T.length);
                s._W(4, g.content.length);
                s._W(2, k.length);
                s._W(2, 0);
                s._W(2, 0);
                s._W(2, 0);
                s._W(2, 0);
                s._W(4, 0);
                s._W(4, w);
                b += s.l;
                i.push(s);
                b += k.length;
                i.push(k);
                ++d
            }
            s = ua(22);
            s._W(4, 101010256);
            s._W(2, 0);
            s._W(2, 0);
            s._W(2, d);
            s._W(2, d);
            s._W(4, b);
            s._W(4, u);
            s._W(2, 0);
            return R([R(a), R(i), s])
        }
        var Fe = {
            htm: "text/html",
            xml: "text/xml",
            gif: "image/gif",
            jpg: "image/jpeg",
            png: "image/png",
            mso: "application/x-mso",
            thmx: "application/vnd.ms-officetheme",
            sh33tj5: "application/octet-stream"
        };
        function Pe(e, r) {
            if (e.ctype)
                return e.ctype;
            var t = e.name || ""
              , a = t.match(/\.([^\.]+)$/);
            if (a && Fe[a[1]])
                return Fe[a[1]];
            if (r) {
                a = (t = r).match(/[\.\\]([^\.\\])+$/);
                if (a && Fe[a[1]])
                    return Fe[a[1]]
            }
            return "application/octet-stream"
        }
        function Le(e) {
            var r = w(e);
            var t = [];
            for (var a = 0; a < r.length; a += 76)
                t.push(r.slice(a, a + 76));
            return t.join("\r\n") + "\r\n"
        }
        function Me(e) {
            var r = e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g, function(e) {
                var r = e.charCodeAt(0).toString(16).toUpperCase();
                return "=" + (r.length == 1 ? "0" + r : r)
            });
            r = r.replace(/ $/gm, "=20").replace(/\t$/gm, "=09");
            if (r.charAt(0) == "\n")
                r = "=0D" + r.slice(1);
            r = r.replace(/\r(?!\n)/gm, "=0D").replace(/\n\n/gm, "\n=0A").replace(/([^\r\n])\n/gm, "$1=0A");
            var t = []
              , a = r.split("\r\n");
            for (var n = 0; n < a.length; ++n) {
                var i = a[n];
                if (i.length == 0) {
                    t.push("");
                    continue
                }
                for (var s = 0; s < i.length; ) {
                    var f = 76;
                    var o = i.slice(s, s + f);
                    if (o.charAt(f - 1) == "=")
                        f--;
                    else if (o.charAt(f - 2) == "=")
                        f -= 2;
                    else if (o.charAt(f - 3) == "=")
                        f -= 3;
                    o = i.slice(s, s + f);
                    s += f;
                    if (s < i.length)
                        o += "=";
                    t.push(o)
                }
            }
            return t.join("\r\n")
        }
        function Ue(e) {
            var r = [];
            for (var t = 0; t < e.length; ++t) {
                var a = e[t];
                while (t <= e.length && a.charAt(a.length - 1) == "=")
                    a = a.slice(0, a.length - 1) + e[++t];
                r.push(a)
            }
            for (var n = 0; n < r.length; ++n)
                r[n] = r[n].replace(/[=][0-9A-Fa-f]{2}/g, function(e) {
                    return String.fromCharCode(parseInt(e.slice(1), 16))
                });
            return y(r.join("\r\n"))
        }
        function Be(e, r, t) {
            var a = "", n = "", i = "", s;
            var f = 0;
            for (; f < 10; ++f) {
                var o = r[f];
                if (!o || o.match(/^\s*$/))
                    break;
                var l = o.match(/^(.*?):\s*([^\s].*)$/);
                if (l)
                    switch (l[1].toLowerCase()) {
                    case "content-location":
                        a = l[2].trim();
                        break;
                    case "content-type":
                        i = l[2].trim();
                        break;
                    case "content-transfer-encoding":
                        n = l[2].trim();
                        break;
                    }
            }
            ++f;
            switch (n.toLowerCase()) {
            case "base64":
                s = y(k(r.slice(f).join("")));
                break;
            case "quoted-printable":
                s = Ue(r.slice(f));
                break;
            default:
                throw new Error("Unsupported Content-Transfer-Encoding " + n);
            }
            var c = Ve(e, a.slice(t.length), s, {
                unsafe: true
            });
            if (i)
                c.ctype = i
        }
        function We(e, r) {
            if (G(e.slice(0, 13)).toLowerCase() != "mime-version:")
                throw new Error("Unsupported MAD header");
            var t = r && r.root || "";
            var a = (T && Buffer.isBuffer(e) ? e.toString("binary") : G(e)).split("\r\n");
            var n = 0
              , i = "";
            for (n = 0; n < a.length; ++n) {
                i = a[n];
                if (!/^Content-Location:/i.test(i))
                    continue;
                i = i.slice(i.indexOf("file"));
                if (!t)
                    t = i.slice(0, i.lastIndexOf("/") + 1);
                if (i.slice(0, t.length) == t)
                    continue;
                while (t.length > 0) {
                    t = t.slice(0, t.length - 1);
                    t = t.slice(0, t.lastIndexOf("/") + 1);
                    if (i.slice(0, t.length) == t)
                        break
                }
            }
            var s = (a[1] || "").match(/boundary="(.*?)"/);
            if (!s)
                throw new Error("MAD cannot find boundary");
            var f = "--" + (s[1] || "");
            var o = []
              , l = [];
            var c = {
                FileIndex: o,
                FullPaths: l
            };
            O(c);
            var h, u = 0;
            for (n = 0; n < a.length; ++n) {
                var d = a[n];
                if (d !== f && d !== f + "--")
                    continue;
                if (u++)
                    Be(c, a.slice(h, n), t);
                h = n
            }
            return c
        }
        function He(e, r) {
            var t = r || {};
            var a = t.boundary || "SheetJS";
            a = "------=" + a;
            var n = ["MIME-Version: 1.0", 'Content-Type: multipart/related; boundary="' + a.slice(2) + '"', "", "", ""];
            var i = e.FullPaths[0]
              , s = i
              , f = e.FileIndex[0];
            for (var o = 1; o < e.FullPaths.length; ++o) {
                s = e.FullPaths[o].slice(i.length);
                f = e.FileIndex[o];
                if (!f.size || !f.content || s == "Sh33tJ5")
                    continue;
                s = s.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF]/g, function(e) {
                    return "_x" + e.charCodeAt(0).toString(16) + "_"
                }).replace(/[\u0080-\uFFFF]/g, function(e) {
                    return "_u" + e.charCodeAt(0).toString(16) + "_"
                });
                var l = f.content;
                var c = T && Buffer.isBuffer(l) ? l.toString("binary") : G(l);
                var h = 0
                  , u = Math.min(1024, c.length)
                  , d = 0;
                for (var v = 0; v <= u; ++v)
                    if ((d = c.charCodeAt(v)) >= 32 && d < 128)
                        ++h;
                var p = h >= u * 4 / 5;
                n.push(a);
                n.push("Content-Location: " + (t.root || "file:///C:/SheetJS/") + s);
                n.push("Content-Transfer-Encoding: " + (p ? "quoted-printable" : "base64"));
                n.push("Content-Type: " + Pe(f, s));
                n.push("");
                n.push(p ? Me(c) : Le(c))
            }
            n.push(a + "--\r\n");
            return n.join("\r\n")
        }
        function ze(e) {
            var r = {};
            O(r, e);
            return r
        }
        function Ve(e, r, t, n) {
            var i = n && n.unsafe;
            if (!i)
                O(e);
            var s = !i && Ke.find(e, r);
            if (!s) {
                var f = e.FullPaths[0];
                if (r.slice(0, f.length) == f)
                    f = r;
                else {
                    if (f.slice(-1) != "/")
                        f += "/";
                    f = (f + r).replace("//", "/")
                }
                s = {
                    name: a(r),
                    type: 2
                };
                e.FileIndex.push(s);
                e.FullPaths.push(f);
                if (!i)
                    Ke.utils.cfb_gc(e)
            }
            s.content = t;
            s.size = t ? t.length : 0;
            if (n) {
                if (n.CLSID)
                    s.clsid = n.CLSID;
                if (n.mt)
                    s.mt = n.mt;
                if (n.ct)
                    s.ct = n.ct
            }
            return s
        }
        function Ge(e, r) {
            O(e);
            var t = Ke.find(e, r);
            if (t)
                for (var a = 0; a < e.FileIndex.length; ++a)
                    if (e.FileIndex[a] == t) {
                        e.FileIndex.splice(a, 1);
                        e.FullPaths.splice(a, 1);
                        return true
                    }
            return false
        }
        function je(e, r, t) {
            O(e);
            var n = Ke.find(e, r);
            if (n)
                for (var i = 0; i < e.FileIndex.length; ++i)
                    if (e.FileIndex[i] == n) {
                        e.FileIndex[i].name = a(t);
                        e.FullPaths[i] = t;
                        return true
                    }
            return false
        }
        function Xe(e) {
            F(e, true)
        }
        e.find = L;
        e.read = x;
        e.parse = l;
        e.write = j;
        e.writeFile = V;
        e.utils = {
            cfb_new: ze,
            cfb_add: Ve,
            cfb_del: Ge,
            cfb_mov: je,
            cfb_gc: Xe,
            ReadShift: na,
            CheckField: la,
            prep_blob: ca,
            bconcat: R,
            use_zlib: $,
            _deflateRaw: Te,
            _inflateRaw: Oe,
            consts: z
        };
        return e
    }();
    var Je;
    if (typeof require !== "undefined")
        try {
            Je = undefined
        } catch (qe) {}
    function Ze(e) {
        if (typeof e === "string")
            return S(e);
        if (Array.isArray(e))
            return x(e);
        return e
    }
    function Qe(e, r, t) {
        if (typeof Je !== "undefined" && Je.writeFileSync)
            return t ? Je.writeFileSync(e, r, t) : Je.writeFileSync(e, r);
        if (typeof Deno !== "undefined") {
            if (t && typeof r == "string")
                switch (t) {
                case "utf8":
                    r = new TextEncoder(t).encode(r);
                    break;
                case "binary":
                    r = S(r);
                    break;
                default:
                    throw new Error("Unsupported encoding " + t);
                }
            return Deno.writeFileSync(e, r)
        }
        var a = t == "utf8" ? ct(r) : r;
        if (typeof IE_SaveFile !== "undefined")
            return IE_SaveFile(a, e);
        if (typeof Blob !== "undefined") {
            var n = new Blob([Ze(a)],{
                type: "application/octet-stream"
            });
            if (typeof navigator !== "undefined" && navigator.msSaveBlob)
                return navigator.msSaveBlob(n, e);
            if (typeof saveAs !== "undefined")
                return saveAs(n, e);
            if (typeof URL !== "undefined" && typeof document !== "undefined" && document.createElement && URL.createObjectURL) {
                var i = URL.createObjectURL(n);
                if (typeof chrome === "object" && typeof (chrome.downloads || {}).download == "function") {
                    if (URL.revokeObjectURL && typeof setTimeout !== "undefined")
                        setTimeout(function() {
                            URL.revokeObjectURL(i)
                        }, 6e4);
                    return chrome.downloads.download({
                        url: i,
                        filename: e,
                        saveAs: true
                    })
                }
                var s = document.createElement("a");
                if (s.download != null) {
                    s.download = e;
                    s.href = i;
                    document.body.appendChild(s);
                    s.click();
                    document.body.removeChild(s);
                    if (URL.revokeObjectURL && typeof setTimeout !== "undefined")
                        setTimeout(function() {
                            URL.revokeObjectURL(i)
                        }, 6e4);
                    return i
                }
            }
        }
        if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined")
            try {
                var f = File(e);
                f.open("w");
                f.encoding = "binary";
                if (Array.isArray(r))
                    r = _(r);
                f.write(r);
                f.close();
                return r
            } catch (o) {
                if (!o.message || !o.message.match(/onstruct/))
                    throw o
            }
        throw new Error("cannot save file " + e)
    }
    function er(e) {
        if (typeof Je !== "undefined")
            return Je.readFileSync(e);
        if (typeof Deno !== "undefined")
            return Deno.readFileSync(e);
        if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined")
            try {
                var r = File(e);
                r.open("r");
                r.encoding = "binary";
                var t = r.read();
                r.close();
                return t
            } catch (a) {
                if (!a.message || !a.message.match(/onstruct/))
                    throw a
            }
        throw new Error("Cannot access file " + e)
    }
    function rr(e) {
        var r = Object.keys(e)
          , t = [];
        for (var a = 0; a < r.length; ++a)
            if (Object.prototype.hasOwnProperty.call(e, r[a]))
                t.push(r[a]);
        return t
    }
    function tr(e, r) {
        var t = []
          , a = rr(e);
        for (var n = 0; n !== a.length; ++n)
            if (t[e[a[n]][r]] == null)
                t[e[a[n]][r]] = a[n];
        return t
    }
    function ar(e) {
        var r = []
          , t = rr(e);
        for (var a = 0; a !== t.length; ++a)
            r[e[t[a]]] = t[a];
        return r
    }
    function nr(e) {
        var r = []
          , t = rr(e);
        for (var a = 0; a !== t.length; ++a)
            r[e[t[a]]] = parseInt(t[a], 10);
        return r
    }
    function ir(e) {
        var r = []
          , t = rr(e);
        for (var a = 0; a !== t.length; ++a) {
            if (r[e[t[a]]] == null)
                r[e[t[a]]] = [];
            r[e[t[a]]].push(t[a])
        }
        return r
    }
    var sr = new Date(1899,11,30,0,0,0);
    function fr(e, r) {
        var t = e.getTime();
        if (r)
            t -= 1462 * 24 * 60 * 60 * 1e3;
        var a = sr.getTime() + (e.getTimezoneOffset() - sr.getTimezoneOffset()) * 6e4;
        return (t - a) / (24 * 60 * 60 * 1e3)
    }
    var or = new Date;
    var lr = sr.getTime() + (or.getTimezoneOffset() - sr.getTimezoneOffset()) * 6e4;
    var cr = or.getTimezoneOffset();
    function hr(e) {
        var r = new Date;
        r.setTime(e * 24 * 60 * 60 * 1e3 + lr);
        if (r.getTimezoneOffset() !== cr) {
            r.setTime(r.getTime() + (r.getTimezoneOffset() - cr) * 6e4)
        }
        return r
    }
    function ur(e) {
        var r = 0
          , t = 0
          , a = false;
        var n = e.match(/P([0-9\.]+Y)?([0-9\.]+M)?([0-9\.]+D)?T([0-9\.]+H)?([0-9\.]+M)?([0-9\.]+S)?/);
        if (!n)
            throw new Error("|" + e + "| is not an ISO8601 Duration");
        for (var i = 1; i != n.length; ++i) {
            if (!n[i])
                continue;
            t = 1;
            if (i > 3)
                a = true;
            switch (n[i].slice(n[i].length - 1)) {
            case "Y":
                throw new Error("Unsupported ISO Duration Field: " + n[i].slice(n[i].length - 1));
            case "D":
                t *= 24;
            case "H":
                t *= 60;
            case "M":
                if (!a)
                    throw new Error("Unsupported ISO Duration Field: M");
                else
                    t *= 60;
            case "S":
                break;
            }
            r += t * parseInt(n[i], 10)
        }
        return r
    }
    var dr = new Date("2017-02-19T19:06:09.000Z");
    var vr = isNaN(dr.getFullYear()) ? new Date("2/19/17") : dr;
    var pr = vr.getFullYear() == 2017;
    function gr(e, r) {
        var t = new Date(e);
        if (pr) {
            if (r > 0)
                t.setTime(t.getTime() + t.getTimezoneOffset() * 60 * 1e3);
            else if (r < 0)
                t.setTime(t.getTime() - t.getTimezoneOffset() * 60 * 1e3);
            return t
        }
        if (e instanceof Date)
            return e;
        if (vr.getFullYear() == 1917 && !isNaN(t.getFullYear())) {
            var a = t.getFullYear();
            if (e.indexOf("" + a) > -1)
                return t;
            t.setFullYear(t.getFullYear() + 100);
            return t
        }
        var n = e.match(/\d+/g) || ["2017", "2", "19", "0", "0", "0"];
        var i = new Date(+n[0],+n[1] - 1,+n[2],+n[3] || 0,+n[4] || 0,+n[5] || 0);
        if (e.indexOf("Z") > -1)
            i = new Date(i.getTime() - i.getTimezoneOffset() * 60 * 1e3);
        return i
    }
    function mr(e, r) {
        if (T && Buffer.isBuffer(e)) {
            if (r) {
                if (e[0] == 255 && e[1] == 254)
                    return ct(e.slice(2).toString("utf16le"));
                if (e[1] == 254 && e[2] == 255)
                    return ct(u(e.slice(2).toString("binary")))
            }
            return e.toString("binary")
        }
        if (typeof TextDecoder !== "undefined")
            try {
                if (r) {
                    if (e[0] == 255 && e[1] == 254)
                        return ct(new TextDecoder("utf-16le").decode(e.slice(2)));
                    if (e[0] == 254 && e[1] == 255)
                        return ct(new TextDecoder("utf-16be").decode(e.slice(2)))
                }
                var t = {
                    "€": "",
                    "‚": "",
                    "ƒ": "",
                    "„": "",
                    "…": "",
                    "†": "",
                    "‡": "",
                    "ˆ": "",
                    "‰": "",
                    "Š": "",
                    "‹": "",
                    "Œ": "",
                    "Ž": "",
                    "‘": "",
                    "’": "",
                    "“": "",
                    "”": "",
                    "•": "",
                    "–": "",
                    "—": "",
                    "˜": "",
                    "™": "",
                    "š": "",
                    "›": "",
                    "œ": "",
                    "ž": "",
                    "Ÿ": ""
                };
                if (Array.isArray(e))
                    e = new Uint8Array(e);
                return new TextDecoder("latin1").decode(e).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(e) {
                    return t[e] || e
                })
            } catch (a) {}
        var n = [];
        for (var i = 0; i != e.length; ++i)
            n.push(String.fromCharCode(e[i]));
        return n.join("")
    }
    function br(e) {
        if (typeof JSON != "undefined" && !Array.isArray(e))
            return JSON.parse(JSON.stringify(e));
        if (typeof e != "object" || e == null)
            return e;
        if (e instanceof Date)
            return new Date(e.getTime());
        var r = {};
        for (var t in e)
            if (Object.prototype.hasOwnProperty.call(e, t))
                r[t] = br(e[t]);
        return r
    }
    function wr(e, r) {
        var t = "";
        while (t.length < r)
            t += e;
        return t
    }
    function kr(e) {
        var r = Number(e);
        if (!isNaN(r))
            return isFinite(r) ? r : NaN;
        if (!/\d/.test(e))
            return r;
        var t = 1;
        var a = e.replace(/([\d]),([\d])/g, "$1$2").replace(/[$]/g, "").replace(/[%]/g, function() {
            t *= 100;
            return ""
        });
        if (!isNaN(r = Number(a)))
            return r / t;
        a = a.replace(/[(](.*)[)]/, function(e, r) {
            t = -t;
            return r
        });
        if (!isNaN(r = Number(a)))
            return r / t;
        return r
    }
    var Tr = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
    function Ar(e) {
        var r = new Date(e)
          , t = new Date(NaN);
        var a = r.getYear()
          , n = r.getMonth()
          , i = r.getDate();
        if (isNaN(i))
            return t;
        var s = e.toLowerCase();
        if (s.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {
            s = s.replace(/[^a-z]/g, "").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/, "");
            if (s.length > 3 && Tr.indexOf(s) == -1)
                return t
        } else if (s.match(/[a-z]/))
            return t;
        if (a < 0 || a > 8099)
            return t;
        if ((n > 0 || i > 1) && a != 101)
            return r;
        if (e.match(/[^-0-9:,\/\\]/))
            return t;
        return r
    }
    var Er = function() {
        var e = "abacaba".split(/(:?b)/i).length == 5;
        return function r(t, a, n) {
            if (e || typeof a == "string")
                return t.split(a);
            var i = t.split(a)
              , s = [i[0]];
            for (var f = 1; f < i.length; ++f) {
                s.push(n);
                s.push(i[f])
            }
            return s
        }
    }();
    function Cr(e) {
        if (!e)
            return null;
        if (e.content && e.type)
            return mr(e.content, true);
        if (e.data)
            return d(e.data);
        if (e.asNodeBuffer && T)
            return d(e.asNodeBuffer().toString("binary"));
        if (e.asBinary)
            return d(e.asBinary());
        if (e._data && e._data.getContent)
            return d(mr(Array.prototype.slice.call(e._data.getContent(), 0)));
        return null
    }
    function yr(e) {
        if (!e)
            return null;
        if (e.data)
            return c(e.data);
        if (e.asNodeBuffer && T)
            return e.asNodeBuffer();
        if (e._data && e._data.getContent) {
            var r = e._data.getContent();
            if (typeof r == "string")
                return c(r);
            return Array.prototype.slice.call(r)
        }
        if (e.content && e.type)
            return e.content;
        return null
    }
    function Sr(e) {
        return e && e.name.slice(-4) === ".bin" ? yr(e) : Cr(e)
    }
    function _r(e, r) {
        var t = e.FullPaths || rr(e.files);
        var a = r.toLowerCase().replace(/[\/]/g, "\\")
          , n = a.replace(/\\/g, "/");
        for (var i = 0; i < t.length; ++i) {
            var s = t[i].replace(/^Root Entry[\/]/, "").toLowerCase();
            if (a == s || n == s)
                return e.files ? e.files[t[i]] : e.FileIndex[i]
        }
        return null
    }
    function xr(e, r) {
        var t = _r(e, r);
        if (t == null)
            throw new Error("Cannot find file " + r + " in zip");
        return t
    }
    function Or(e, r, t) {
        if (!t)
            return Sr(xr(e, r));
        if (!r)
            return null;
        try {
            return Or(e, r)
        } catch (a) {
            return null
        }
    }
    function Rr(e, r, t) {
        if (!t)
            return Cr(xr(e, r));
        if (!r)
            return null;
        try {
            return Rr(e, r)
        } catch (a) {
            return null
        }
    }
    function Ir(e, r, t) {
        if (!t)
            return yr(xr(e, r));
        if (!r)
            return null;
        try {
            return Ir(e, r)
        } catch (a) {
            return null
        }
    }
    function Nr(e) {
        var r = e.FullPaths || rr(e.files)
          , t = [];
        for (var a = 0; a < r.length; ++a)
            if (r[a].slice(-1) != "/")
                t.push(r[a].replace(/^Root Entry[\/]/, ""));
        return t.sort()
    }
    function Dr(e, r, t) {
        if (e.FullPaths) {
            if (typeof t == "string") {
                var a;
                if (T)
                    a = A(t);
                else
                    a = I(t);
                return Ke.utils.cfb_add(e, r, a)
            }
            Ke.utils.cfb_add(e, r, t)
        } else
            e.file(r, t)
    }
    function Fr() {
        return Ke.utils.cfb_new()
    }
    function Pr(e, r) {
        switch (r.type) {
        case "base64":
            return Ke.read(e, {
                type: "base64"
            });
        case "binary":
            return Ke.read(e, {
                type: "binary"
            });
        case "buffer":
            ;
        case "array":
            return Ke.read(e, {
                type: "buffer"
            });
        }
        throw new Error("Unrecognized type " + r.type)
    }
    function Lr(e, r) {
        if (e.charAt(0) == "/")
            return e.slice(1);
        var t = r.split("/");
        if (r.slice(-1) != "/")
            t.pop();
        var a = e.split("/");
        while (a.length !== 0) {
            var n = a.shift();
            if (n === "..")
                t.pop();
            else if (n !== ".")
                t.push(n)
        }
        return t.join("/")
    }
    var Mr = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r\n';
    var Ur = /([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;
    var Br = /<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s*[\/\?]?>/gm
      , Wr = /<[^>]*>/g;
    var Hr = Mr.match(Br) ? Br : Wr;
    var zr = /<\w*:/
      , Vr = /<(\/?)\w+:/;
    function Gr(e, r, t) {
        var a = {};
        var n = 0
          , i = 0;
        for (; n !== e.length; ++n)
            if ((i = e.charCodeAt(n)) === 32 || i === 10 || i === 13)
                break;
        if (!r)
            a[0] = e.slice(0, n);
        if (n === e.length)
            return a;
        var s = e.match(Ur)
          , f = 0
          , o = ""
          , l = 0
          , c = ""
          , h = ""
          , u = 1;
        if (s)
            for (l = 0; l != s.length; ++l) {
                h = s[l];
                for (i = 0; i != h.length; ++i)
                    if (h.charCodeAt(i) === 61)
                        break;
                c = h.slice(0, i).trim();
                while (h.charCodeAt(i + 1) == 32)
                    ++i;
                u = (n = h.charCodeAt(i + 1)) == 34 || n == 39 ? 1 : 0;
                o = h.slice(i + 1 + u, h.length - u);
                for (f = 0; f != c.length; ++f)
                    if (c.charCodeAt(f) === 58)
                        break;
                if (f === c.length) {
                    if (c.indexOf("_") > 0)
                        c = c.slice(0, c.indexOf("_"));
                    a[c] = o;
                    if (!t)
                        a[c.toLowerCase()] = o
                } else {
                    var d = (f === 5 && c.slice(0, 5) === "xmlns" ? "xmlns" : "") + c.slice(f + 1);
                    if (a[d] && c.slice(f - 3, f) == "ext")
                        continue;
                    a[d] = o;
                    if (!t)
                        a[d.toLowerCase()] = o
                }
            }
        return a
    }
    function jr(e) {
        return e.replace(Vr, "<$1")
    }
    var Xr = {
        "&quot;": '"',
        "&apos;": "'",
        "&gt;": ">",
        "&lt;": "<",
        "&amp;": "&"
    };
    var $r = ar(Xr);
    var Yr = function() {
        var e = /&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi
          , r = /_x([\da-fA-F]{4})_/gi;
        return function t(a) {
            var n = a + ""
              , i = n.indexOf("<![CDATA[");
            if (i == -1)
                return n.replace(e, function(e, r) {
                    return Xr[e] || String.fromCharCode(parseInt(r, e.indexOf("x") > -1 ? 16 : 10)) || e
                }).replace(r, function(e, r) {
                    return String.fromCharCode(parseInt(r, 16))
                });
            var s = n.indexOf("]]>");
            return t(n.slice(0, i)) + n.slice(i + 9, s) + t(n.slice(s + 3))
        }
    }();
    var Kr = /[&<>'"]/g
      , Jr = /[\u0000-\u0008\u000b-\u001f]/g;
    function qr(e) {
        var r = e + "";
        return r.replace(Kr, function(e) {
            return $r[e]
        }).replace(Jr, function(e) {
            return "_x" + ("000" + e.charCodeAt(0).toString(16)).slice(-4) + "_"
        })
    }
    function Zr(e) {
        return qr(e).replace(/ /g, "_x0020_")
    }
    var Qr = /[\u0000-\u001f]/g;
    function et(e) {
        var r = e + "";
        return r.replace(Kr, function(e) {
            return $r[e]
        }).replace(/\n/g, "<br/>").replace(Qr, function(e) {
            return "&#x" + ("000" + e.charCodeAt(0).toString(16)).slice(-4) + ";"
        })
    }
    function rt(e) {
        var r = e + "";
        return r.replace(Kr, function(e) {
            return $r[e]
        }).replace(Qr, function(e) {
            return "&#x" + e.charCodeAt(0).toString(16).toUpperCase() + ";"
        })
    }
    var tt = function() {
        var e = /&#(\d+);/g;
        function r(e, r) {
            return String.fromCharCode(parseInt(r, 10))
        }
        return function t(a) {
            return a.replace(e, r)
        }
    }();
    function at(e) {
        return e.replace(/(\r\n|[\r\n])/g, "&#10;")
    }
    function nt(e) {
        switch (e) {
        case 1:
            ;
        case true:
            ;
        case "1":
            ;
        case "true":
            ;
        case "TRUE":
            return true;
        default:
            return false;
        }
    }
    function it(e) {
        var r = ""
          , t = 0
          , a = 0
          , n = 0
          , i = 0
          , s = 0
          , f = 0;
        while (t < e.length) {
            a = e.charCodeAt(t++);
            if (a < 128) {
                r += String.fromCharCode(a);
                continue
            }
            n = e.charCodeAt(t++);
            if (a > 191 && a < 224) {
                s = (a & 31) << 6;
                s |= n & 63;
                r += String.fromCharCode(s);
                continue
            }
            i = e.charCodeAt(t++);
            if (a < 240) {
                r += String.fromCharCode((a & 15) << 12 | (n & 63) << 6 | i & 63);
                continue
            }
            s = e.charCodeAt(t++);
            f = ((a & 7) << 18 | (n & 63) << 12 | (i & 63) << 6 | s & 63) - 65536;
            r += String.fromCharCode(55296 + (f >>> 10 & 1023));
            r += String.fromCharCode(56320 + (f & 1023))
        }
        return r
    }
    function st(e) {
        var r = E(2 * e.length), t, a, n = 1, i = 0, s = 0, f;
        for (a = 0; a < e.length; a += n) {
            n = 1;
            if ((f = e.charCodeAt(a)) < 128)
                t = f;
            else if (f < 224) {
                t = (f & 31) * 64 + (e.charCodeAt(a + 1) & 63);
                n = 2
            } else if (f < 240) {
                t = (f & 15) * 4096 + (e.charCodeAt(a + 1) & 63) * 64 + (e.charCodeAt(a + 2) & 63);
                n = 3
            } else {
                n = 4;
                t = (f & 7) * 262144 + (e.charCodeAt(a + 1) & 63) * 4096 + (e.charCodeAt(a + 2) & 63) * 64 + (e.charCodeAt(a + 3) & 63);
                t -= 65536;
                s = 55296 + (t >>> 10 & 1023);
                t = 56320 + (t & 1023)
            }
            if (s !== 0) {
                r[i++] = s & 255;
                r[i++] = s >>> 8;
                s = 0
            }
            r[i++] = t % 256;
            r[i++] = t >>> 8
        }
        return r.slice(0, i).toString("ucs2")
    }
    function ft(e) {
        return A(e, "binary").toString("utf8")
    }
    var ot = "foo bar bazâð£";
    var lt = T && (ft(ot) == it(ot) && ft || st(ot) == it(ot) && st) || it;
    var ct = T ? function(e) {
        return A(e, "utf8").toString("binary")
    }
    : function(e) {
        var r = []
          , t = 0
          , a = 0
          , n = 0;
        while (t < e.length) {
            a = e.charCodeAt(t++);
            switch (true) {
            case a < 128:
                r.push(String.fromCharCode(a));
                break;
            case a < 2048:
                r.push(String.fromCharCode(192 + (a >> 6)));
                r.push(String.fromCharCode(128 + (a & 63)));
                break;
            case a >= 55296 && a < 57344:
                a -= 55296;
                n = e.charCodeAt(t++) - 56320 + (a << 10);
                r.push(String.fromCharCode(240 + (n >> 18 & 7)));
                r.push(String.fromCharCode(144 + (n >> 12 & 63)));
                r.push(String.fromCharCode(128 + (n >> 6 & 63)));
                r.push(String.fromCharCode(128 + (n & 63)));
                break;
            default:
                r.push(String.fromCharCode(224 + (a >> 12)));
                r.push(String.fromCharCode(128 + (a >> 6 & 63)));
                r.push(String.fromCharCode(128 + (a & 63)));
            }
        }
        return r.join("")
    }
    ;
    var ht = function() {
        var e = {};
        return function r(t, a) {
            var n = t + "|" + (a || "");
            if (e[n])
                return e[n];
            return e[n] = new RegExp("<(?:\\w+:)?" + t + '(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)</(?:\\w+:)?' + t + ">",a || "")
        }
    }();
    var ut = function() {
        var e = [["nbsp", " "], ["middot", "·"], ["quot", '"'], ["apos", "'"], ["gt", ">"], ["lt", "<"], ["amp", "&"]].map(function(e) {
            return [new RegExp("&" + e[0] + ";","ig"), e[1]]
        });
        return function r(t) {
            var a = t.replace(/^[\t\n\r ]+/, "").replace(/[\t\n\r ]+$/, "").replace(/>\s+/g, ">").replace(/\s+</g, "<").replace(/[\t\n\r ]+/g, " ").replace(/<\s*[bB][rR]\s*\/?>/g, "\n").replace(/<[^>]*>/g, "");
            for (var n = 0; n < e.length; ++n)
                a = a.replace(e[n][0], e[n][1]);
            return a
        }
    }();
    var dt = function() {
        var e = {};
        return function r(t) {
            if (e[t] !== undefined)
                return e[t];
            return e[t] = new RegExp("<(?:vt:)?" + t + ">([\\s\\S]*?)</(?:vt:)?" + t + ">","g")
        }
    }();
    var vt = /<\/?(?:vt:)?variant>/g
      , pt = /<(?:vt:)([^>]*)>([\s\S]*)</;
    function gt(e, r) {
        var t = Gr(e);
        var a = e.match(dt(t.baseType)) || [];
        var n = [];
        if (a.length != t.size) {
            if (r.WTF)
                throw new Error("unexpected vector length " + a.length + " != " + t.size);
            return n
        }
        a.forEach(function(e) {
            var r = e.replace(vt, "").match(pt);
            if (r)
                n.push({
                    v: lt(r[2]),
                    t: r[1]
                })
        });
        return n
    }
    var mt = /(^\s|\s$|\n)/;
    function bt(e, r) {
        return "<" + e + (r.match(mt) ? ' xml:space="preserve"' : "") + ">" + r + "</" + e + ">"
    }
    function wt(e) {
        return rr(e).map(function(r) {
            return " " + r + '="' + e[r] + '"'
        }).join("")
    }
    function kt(e, r, t) {
        return "<" + e + (t != null ? wt(t) : "") + (r != null ? (r.match(mt) ? ' xml:space="preserve"' : "") + ">" + r + "</" + e : "/") + ">"
    }
    function Tt(e, r) {
        try {
            return e.toISOString().replace(/\.\d*/, "")
        } catch (t) {
            if (r)
                throw t
        }
        return ""
    }
    function At(e, r) {
        switch (typeof e) {
        case "string":
            var t = kt("vt:lpwstr", qr(e));
            if (r)
                t = t.replace(/&quot;/g, "_x0022_");
            return t;
        case "number":
            return kt((e | 0) == e ? "vt:i4" : "vt:r8", qr(String(e)));
        case "boolean":
            return kt("vt:bool", e ? "true" : "false");
        }
        if (e instanceof Date)
            return kt("vt:filetime", Tt(e));
        throw new Error("Unable to serialize " + e)
    }
    function Et(e) {
        if (T && Buffer.isBuffer(e))
            return e.toString("utf8");
        if (typeof e === "string")
            return e;
        if (typeof Uint8Array !== "undefined" && e instanceof Uint8Array)
            return lt(_(O(e)));
        throw new Error("Bad input format: expected Buffer or string")
    }
    var Ct = /<(\/?)([^\s?><!\/:]*:|)([^\s?<>:\/]+)(?:[\s?:\/][^>]*)?>/gm;
    var yt = {
        CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
        CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
        EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
        CT: "http://schemas.openxmlformats.org/package/2006/content-types",
        RELS: "http://schemas.openxmlformats.org/package/2006/relationships",
        TCMNT: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
        dc: "http://purl.org/dc/elements/1.1/",
        dcterms: "http://purl.org/dc/terms/",
        dcmitype: "http://purl.org/dc/dcmitype/",
        mx: "http://schemas.microsoft.com/office/mac/excel/2008/main",
        r: "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
        sjs: "http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",
        vt: "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
        xsi: "http://www.w3.org/2001/XMLSchema-instance",
        xsd: "http://www.w3.org/2001/XMLSchema"
    };
    var St = ["http://schemas.openxmlformats.org/spreadsheetml/2006/main", "http://purl.oclc.org/ooxml/spreadsheetml/main", "http://schemas.microsoft.com/office/excel/2006/main", "http://schemas.microsoft.com/office/excel/2006/2"];
    var _t = {
        o: "urn:schemas-microsoft-com:office:office",
        x: "urn:schemas-microsoft-com:office:excel",
        ss: "urn:schemas-microsoft-com:office:spreadsheet",
        dt: "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",
        mv: "http://macVmlSchemaUri",
        v: "urn:schemas-microsoft-com:vml",
        html: "http://www.w3.org/TR/REC-html40"
    };
    function xt(e, r) {
        var t = 1 - 2 * (e[r + 7] >>> 7);
        var a = ((e[r + 7] & 127) << 4) + (e[r + 6] >>> 4 & 15);
        var n = e[r + 6] & 15;
        for (var i = 5; i >= 0; --i)
            n = n * 256 + e[r + i];
        if (a == 2047)
            return n == 0 ? t * Infinity : NaN;
        if (a == 0)
            a = -1022;
        else {
            a -= 1023;
            n += Math.pow(2, 52)
        }
        return t * Math.pow(2, a - 52) * n
    }
    function Ot(e, r, t) {
        var a = (r < 0 || 1 / r == -Infinity ? 1 : 0) << 7
          , n = 0
          , i = 0;
        var s = a ? -r : r;
        if (!isFinite(s)) {
            n = 2047;
            i = isNaN(r) ? 26985 : 0
        } else if (s == 0)
            n = i = 0;
        else {
            n = Math.floor(Math.log(s) / Math.LN2);
            i = s * Math.pow(2, 52 - n);
            if (n <= -1023 && (!isFinite(i) || i < Math.pow(2, 52))) {
                n = -1022
            } else {
                i -= Math.pow(2, 52);
                n += 1023
            }
        }
        for (var f = 0; f <= 5; ++f,
        i /= 256)
            e[t + f] = i & 255;
        e[t + 6] = (n & 15) << 4 | i & 15;
        e[t + 7] = n >> 4 | a
    }
    var Rt = function(e) {
        var r = []
          , t = 10240;
        for (var a = 0; a < e[0].length; ++a)
            if (e[0][a])
                for (var n = 0, i = e[0][a].length; n < i; n += t)
                    r.push.apply(r, e[0][a].slice(n, n + t));
        return r
    };
    var It = T ? function(e) {
        return e[0].length > 0 && Buffer.isBuffer(e[0][0]) ? Buffer.concat(e[0].map(function(e) {
            return Buffer.isBuffer(e) ? e : A(e)
        })) : Rt(e)
    }
    : Rt;
    var Nt = function(e, r, t) {
        var a = [];
        for (var n = r; n < t; n += 2)
            a.push(String.fromCharCode(Qt(e, n)));
        return a.join("").replace(N, "")
    };
    var Dt = T ? function(e, r, t) {
        if (!Buffer.isBuffer(e))
            return Nt(e, r, t);
        return e.toString("utf16le", r, t).replace(N, "")
    }
    : Nt;
    var Ft = function(e, r, t) {
        var a = [];
        for (var n = r; n < r + t; ++n)
            a.push(("0" + e[n].toString(16)).slice(-2));
        return a.join("")
    };
    var Pt = T ? function(e, r, t) {
        return Buffer.isBuffer(e) ? e.toString("hex", r, r + t) : Ft(e, r, t)
    }
    : Ft;
    var Lt = function(e, r, t) {
        var a = [];
        for (var n = r; n < t; n++)
            a.push(String.fromCharCode(Zt(e, n)));
        return a.join("")
    };
    var Mt = T ? function rk(e, r, t) {
        return Buffer.isBuffer(e) ? e.toString("utf8", r, t) : Lt(e, r, t)
    }
    : Lt;
    var Ut = function(e, r) {
        var t = ra(e, r);
        return t > 0 ? Mt(e, r + 4, r + 4 + t - 1) : ""
    };
    var Bt = Ut;
    var Wt = function(e, r) {
        var t = ra(e, r);
        return t > 0 ? Mt(e, r + 4, r + 4 + t - 1) : ""
    };
    var Ht = Wt;
    var zt = function(e, r) {
        var t = 2 * ra(e, r);
        return t > 0 ? Mt(e, r + 4, r + 4 + t - 1) : ""
    };
    var Vt = zt;
    var Gt = function tk(e, r) {
        var t = ra(e, r);
        return t > 0 ? Dt(e, r + 4, r + 4 + t) : ""
    };
    var jt = Gt;
    var Xt = function(e, r) {
        var t = ra(e, r);
        return t > 0 ? Mt(e, r + 4, r + 4 + t) : ""
    };
    var $t = Xt;
    var Yt = function(e, r) {
        return xt(e, r)
    };
    var Kt = Yt;
    var Jt = function ak(e) {
        return Array.isArray(e) || typeof Uint8Array !== "undefined" && e instanceof Uint8Array
    };
    if (T) {
        Bt = function nk(e, r) {
            if (!Buffer.isBuffer(e))
                return Ut(e, r);
            var t = e.readUInt32LE(r);
            return t > 0 ? e.toString("utf8", r + 4, r + 4 + t - 1) : ""
        }
        ;
        Ht = function ik(e, r) {
            if (!Buffer.isBuffer(e))
                return Wt(e, r);
            var t = e.readUInt32LE(r);
            return t > 0 ? e.toString("utf8", r + 4, r + 4 + t - 1) : ""
        }
        ;
        Vt = function sk(e, r) {
            if (!Buffer.isBuffer(e))
                return zt(e, r);
            var t = 2 * e.readUInt32LE(r);
            return e.toString("utf16le", r + 4, r + 4 + t - 1)
        }
        ;
        jt = function fk(e, r) {
            if (!Buffer.isBuffer(e))
                return Gt(e, r);
            var t = e.readUInt32LE(r);
            return e.toString("utf16le", r + 4, r + 4 + t)
        }
        ;
        $t = function ok(e, r) {
            if (!Buffer.isBuffer(e))
                return Xt(e, r);
            var t = e.readUInt32LE(r);
            return e.toString("utf8", r + 4, r + 4 + t)
        }
        ;
        Kt = function lk(e, r) {
            if (Buffer.isBuffer(e))
                return e.readDoubleLE(r);
            return Yt(e, r)
        }
        ;
        Jt = function ck(e) {
            return Buffer.isBuffer(e) || Array.isArray(e) || typeof Uint8Array !== "undefined" && e instanceof Uint8Array
        }
    }
    function qt() {
        Dt = function(e, r, t) {
            return a.utils.decode(1200, e.slice(r, t)).replace(N, "")
        }
        ;
        Mt = function(e, r, t) {
            return a.utils.decode(65001, e.slice(r, t))
        }
        ;
        Bt = function(e, r) {
            var n = ra(e, r);
            return n > 0 ? a.utils.decode(t, e.slice(r + 4, r + 4 + n - 1)) : ""
        }
        ;
        Ht = function(e, t) {
            var n = ra(e, t);
            return n > 0 ? a.utils.decode(r, e.slice(t + 4, t + 4 + n - 1)) : ""
        }
        ;
        Vt = function(e, r) {
            var t = 2 * ra(e, r);
            return t > 0 ? a.utils.decode(1200, e.slice(r + 4, r + 4 + t - 1)) : ""
        }
        ;
        jt = function(e, r) {
            var t = ra(e, r);
            return t > 0 ? a.utils.decode(1200, e.slice(r + 4, r + 4 + t)) : ""
        }
        ;
        $t = function(e, r) {
            var t = ra(e, r);
            return t > 0 ? a.utils.decode(65001, e.slice(r + 4, r + 4 + t)) : ""
        }
    }
    if (typeof a !== "undefined")
        qt();
    var Zt = function(e, r) {
        return e[r]
    };
    var Qt = function(e, r) {
        return e[r + 1] * (1 << 8) + e[r]
    };
    var ea = function(e, r) {
        var t = e[r + 1] * (1 << 8) + e[r];
        return t < 32768 ? t : (65535 - t + 1) * -1
    };
    var ra = function(e, r) {
        return e[r + 3] * (1 << 24) + (e[r + 2] << 16) + (e[r + 1] << 8) + e[r]
    };
    var ta = function(e, r) {
        return e[r + 3] << 24 | e[r + 2] << 16 | e[r + 1] << 8 | e[r]
    };
    var aa = function(e, r) {
        return e[r] << 24 | e[r + 1] << 16 | e[r + 2] << 8 | e[r + 3]
    };
    function na(e, t) {
        var n = "", i, s, f = [], o, l, c, h;
        switch (t) {
        case "dbcs":
            h = this.l;
            if (T && Buffer.isBuffer(this))
                n = this.slice(this.l, this.l + 2 * e).toString("utf16le");
            else
                for (c = 0; c < e; ++c) {
                    n += String.fromCharCode(Qt(this, h));
                    h += 2
                }
            e *= 2;
            break;
        case "utf8":
            n = Mt(this, this.l, this.l + e);
            break;
        case "utf16le":
            e *= 2;
            n = Dt(this, this.l, this.l + e);
            break;
        case "wstr":
            if (typeof a !== "undefined")
                n = a.utils.decode(r, this.slice(this.l, this.l + 2 * e));
            else
                return na.call(this, e, "dbcs");
            e = 2 * e;
            break;
        case "lpstr-ansi":
            n = Bt(this, this.l);
            e = 4 + ra(this, this.l);
            break;
        case "lpstr-cp":
            n = Ht(this, this.l);
            e = 4 + ra(this, this.l);
            break;
        case "lpwstr":
            n = Vt(this, this.l);
            e = 4 + 2 * ra(this, this.l);
            break;
        case "lpp4":
            e = 4 + ra(this, this.l);
            n = jt(this, this.l);
            if (e & 2)
                e += 2;
            break;
        case "8lpp4":
            e = 4 + ra(this, this.l);
            n = $t(this, this.l);
            if (e & 3)
                e += 4 - (e & 3);
            break;
        case "cstr":
            e = 0;
            n = "";
            while ((o = Zt(this, this.l + e++)) !== 0)
                f.push(v(o));
            n = f.join("");
            break;
        case "_wstr":
            e = 0;
            n = "";
            while ((o = Qt(this, this.l + e)) !== 0) {
                f.push(v(o));
                e += 2
            }
            e += 2;
            n = f.join("");
            break;
        case "dbcs-cont":
            n = "";
            h = this.l;
            for (c = 0; c < e; ++c) {
                if (this.lens && this.lens.indexOf(h) !== -1) {
                    o = Zt(this, h);
                    this.l = h + 1;
                    l = na.call(this, e - c, o ? "dbcs-cont" : "sbcs-cont");
                    return f.join("") + l
                }
                f.push(v(Qt(this, h)));
                h += 2
            }
            n = f.join("");
            e *= 2;
            break;
        case "cpstr":
            if (typeof a !== "undefined") {
                n = a.utils.decode(r, this.slice(this.l, this.l + e));
                break
            }
            ;
        case "sbcs-cont":
            n = "";
            h = this.l;
            for (c = 0; c != e; ++c) {
                if (this.lens && this.lens.indexOf(h) !== -1) {
                    o = Zt(this, h);
                    this.l = h + 1;
                    l = na.call(this, e - c, o ? "dbcs-cont" : "sbcs-cont");
                    return f.join("") + l
                }
                f.push(v(Zt(this, h)));
                h += 1
            }
            n = f.join("");
            break;
        default:
            switch (e) {
            case 1:
                i = Zt(this, this.l);
                this.l++;
                return i;
            case 2:
                i = (t === "i" ? ea : Qt)(this, this.l);
                this.l += 2;
                return i;
            case 4:
                ;
            case -4:
                if (t === "i" || (this[this.l + 3] & 128) === 0) {
                    i = (e > 0 ? ta : aa)(this, this.l);
                    this.l += 4;
                    return i
                } else {
                    s = ra(this, this.l);
                    this.l += 4
                }
                return s;
            case 8:
                ;
            case -8:
                if (t === "f") {
                    if (e == 8)
                        s = Kt(this, this.l);
                    else
                        s = Kt([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);
                    this.l += 8;
                    return s
                } else
                    e = 8;
            case 16:
                n = Pt(this, this.l, e);
                break;
            }
            ;
        }
        this.l += e;
        return n
    }
    var ia = function(e, r, t) {
        e[t] = r & 255;
        e[t + 1] = r >>> 8 & 255;
        e[t + 2] = r >>> 16 & 255;
        e[t + 3] = r >>> 24 & 255
    };
    var sa = function(e, r, t) {
        e[t] = r & 255;
        e[t + 1] = r >> 8 & 255;
        e[t + 2] = r >> 16 & 255;
        e[t + 3] = r >> 24 & 255
    };
    var fa = function(e, r, t) {
        e[t] = r & 255;
        e[t + 1] = r >>> 8 & 255
    };
    function oa(e, r, n) {
        var i = 0
          , s = 0;
        if (n === "dbcs") {
            for (s = 0; s != r.length; ++s)
                fa(this, r.charCodeAt(s), this.l + 2 * s);
            i = 2 * r.length
        } else if (n === "sbcs") {
            if (typeof a !== "undefined" && t == 874) {
                for (s = 0; s != r.length; ++s) {
                    var f = a.utils.encode(t, r.charAt(s));
                    this[this.l + s] = f[0]
                }
            } else {
                r = r.replace(/[^\x00-\x7F]/g, "_");
                for (s = 0; s != r.length; ++s)
                    this[this.l + s] = r.charCodeAt(s) & 255
            }
            i = r.length
        } else if (n === "hex") {
            for (; s < e; ++s) {
                this[this.l++] = parseInt(r.slice(2 * s, 2 * s + 2), 16) || 0
            }
            return this
        } else if (n === "utf16le") {
            var o = Math.min(this.l + e, this.length);
            for (s = 0; s < Math.min(r.length, e); ++s) {
                var l = r.charCodeAt(s);
                this[this.l++] = l & 255;
                this[this.l++] = l >> 8
            }
            while (this.l < o)
                this[this.l++] = 0;
            return this
        } else
            switch (e) {
            case 1:
                i = 1;
                this[this.l] = r & 255;
                break;
            case 2:
                i = 2;
                this[this.l] = r & 255;
                r >>>= 8;
                this[this.l + 1] = r & 255;
                break;
            case 3:
                i = 3;
                this[this.l] = r & 255;
                r >>>= 8;
                this[this.l + 1] = r & 255;
                r >>>= 8;
                this[this.l + 2] = r & 255;
                break;
            case 4:
                i = 4;
                ia(this, r, this.l);
                break;
            case 8:
                i = 8;
                if (n === "f") {
                    Ot(this, r, this.l);
                    break
                }
                ;
            case 16:
                break;
            case -4:
                i = 4;
                sa(this, r, this.l);
                break;
            }
        this.l += i;
        return this
    }
    function la(e, r) {
        var t = Pt(this, this.l, e.length >> 1);
        if (t !== e)
            throw new Error(r + "Expected " + e + " saw " + t);
        this.l += e.length >> 1
    }
    function ca(e, r) {
        e.l = r;
        e._R = na;
        e.chk = la;
        e._W = oa
    }
    function ha(e, r) {
        e.l += r
    }
    function ua(e) {
        var r = E(e);
        ca(r, 0);
        return r
    }
    function da(e, r, t) {
        if (!e)
            return;
        var a, n, i;
        ca(e, e.l || 0);
        var s = e.length
          , f = 0
          , o = 0;
        while (e.l < s) {
            f = e._R(1);
            if (f & 128)
                f = (f & 127) + ((e._R(1) & 127) << 7);
            var l = gm[f] || gm[65535];
            a = e._R(1);
            i = a & 127;
            for (n = 1; n < 4 && a & 128; ++n)
                i += ((a = e._R(1)) & 127) << 7 * n;
            o = e.l + i;
            var c = l.f && l.f(e, i, t);
            e.l = o;
            if (r(c, l, f))
                return
        }
    }
    function va() {
        var e = []
          , r = T ? 256 : 2048;
        var t = function o(e) {
            var r = ua(e);
            ca(r, 0);
            return r
        };
        var a = t(r);
        var n = function l() {
            if (!a)
                return;
            if (a.length > a.l) {
                a = a.slice(0, a.l);
                a.l = a.length
            }
            if (a.length > 0)
                e.push(a);
            a = null
        };
        var i = function c(e) {
            if (a && e < a.length - a.l)
                return a;
            n();
            return a = t(Math.max(e + 1, r))
        };
        var s = function h() {
            n();
            return R(e)
        };
        var f = function u(e) {
            n();
            a = e;
            if (a.l == null)
                a.l = a.length;
            i(r)
        };
        return {
            next: i,
            push: f,
            end: s,
            _bufs: e
        }
    }
    function pa(e, r, t, a) {
        var n = +r, i;
        if (isNaN(n))
            return;
        if (!a)
            a = gm[n].p || (t || []).length || 0;
        i = 1 + (n >= 128 ? 1 : 0) + 1;
        if (a >= 128)
            ++i;
        if (a >= 16384)
            ++i;
        if (a >= 2097152)
            ++i;
        var s = e.next(i);
        if (n <= 127)
            s._W(1, n);
        else {
            s._W(1, (n & 127) + 128);
            s._W(1, n >> 7)
        }
        for (var f = 0; f != 4; ++f) {
            if (a >= 128) {
                s._W(1, (a & 127) + 128);
                a >>= 7
            } else {
                s._W(1, a);
                break
            }
        }
        if (a > 0 && Jt(t))
            e.push(t)
    }
    function ga(e, r, t) {
        var a = br(e);
        if (r.s) {
            if (a.cRel)
                a.c += r.s.c;
            if (a.rRel)
                a.r += r.s.r
        } else {
            if (a.cRel)
                a.c += r.c;
            if (a.rRel)
                a.r += r.r
        }
        if (!t || t.biff < 12) {
            while (a.c >= 256)
                a.c -= 256;
            while (a.r >= 65536)
                a.r -= 65536
        }
        return a
    }
    function ma(e, r, t) {
        var a = br(e);
        a.s = ga(a.s, r.s, t);
        a.e = ga(a.e, r.s, t);
        return a
    }
    function ba(e, r) {
        if (e.cRel && e.c < 0) {
            e = br(e);
            while (e.c < 0)
                e.c += r > 8 ? 16384 : 256
        }
        if (e.rRel && e.r < 0) {
            e = br(e);
            while (e.r < 0)
                e.r += r > 8 ? 1048576 : r > 5 ? 65536 : 16384
        }
        var t = Ra(e);
        if (!e.cRel && e.cRel != null)
            t = Sa(t);
        if (!e.rRel && e.rRel != null)
            t = Aa(t);
        return t
    }
    function wa(e, r) {
        if (e.s.r == 0 && !e.s.rRel) {
            if (e.e.r == (r.biff >= 12 ? 1048575 : r.biff >= 8 ? 65536 : 16384) && !e.e.rRel) {
                return (e.s.cRel ? "" : "$") + ya(e.s.c) + ":" + (e.e.cRel ? "" : "$") + ya(e.e.c);
            }
        }
        if (e.s.c == 0 && !e.s.cRel) {
            if (e.e.c == (r.biff >= 12 ? 16383 : 255) && !e.e.cRel) {
                return (e.s.rRel ? "" : "$") + Ta(e.s.r) + ":" + (e.e.rRel ? "" : "$") + Ta(e.e.r)
            }
        }
        return ba(e.s, r.biff) + ":" + ba(e.e, r.biff)
    }
    function ka(e) {
        return parseInt(Ea(e), 10) - 1
    }
    function Ta(e) {
        return "" + (e + 1)
    }
    function Aa(e) {
        return e.replace(/([A-Z]|^)(\d+)$/, "$1$$$2")
    }
    function Ea(e) {
        return e.replace(/\$(\d+)$/, "$1")
    }
    function Ca(e) {
        var r = _a(e)
          , t = 0
          , a = 0;
        for (; a !== r.length; ++a)
            t = 26 * t + r.charCodeAt(a) - 64;
        return t - 1
    }
    function ya(e) {
        if (e < 0)
            throw new Error("invalid column " + e);
        var r = "";
        for (++e; e; e = Math.floor((e - 1) / 26))
            r = String.fromCharCode((e - 1) % 26 + 65) + r;
        return r
    }
    function Sa(e) {
        return e.replace(/^([A-Z])/, "$$$1")
    }
    function _a(e) {
        return e.replace(/^\$([A-Z])/, "$1")
    }
    function xa(e) {
        return e.replace(/(\$?[A-Z]*)(\$?\d*)/, "$1,$2").split(",")
    }
    function Oa(e) {
        var r = 0
          , t = 0;
        for (var a = 0; a < e.length; ++a) {
            var n = e.charCodeAt(a);
            if (n >= 48 && n <= 57)
                r = 10 * r + (n - 48);
            else if (n >= 65 && n <= 90)
                t = 26 * t + (n - 64)
        }
        return {
            c: t - 1,
            r: r - 1
        }
    }
    function Ra(e) {
        var r = e.c + 1;
        var t = "";
        for (; r; r = (r - 1) / 26 | 0)
            t = String.fromCharCode((r - 1) % 26 + 65) + t;
        return t + (e.r + 1)
    }
    function Ia(e) {
        var r = e.indexOf(":");
        if (r == -1)
            return {
                s: Oa(e),
                e: Oa(e)
            };
        return {
            s: Oa(e.slice(0, r)),
            e: Oa(e.slice(r + 1))
        }
    }
    function Na(e, r) {
        if (typeof r === "undefined" || typeof r === "number") {
            return Na(e.s, e.e)
        }
        if (typeof e !== "string")
            e = Ra(e);
        if (typeof r !== "string")
            r = Ra(r);
        return e == r ? e : e + ":" + r
    }
    function Da(e) {
        var r = {
            s: {
                c: 0,
                r: 0
            },
            e: {
                c: 0,
                r: 0
            }
        };
        var t = 0
          , a = 0
          , n = 0;
        var i = e.length;
        for (t = 0; a < i; ++a) {
            if ((n = e.charCodeAt(a) - 64) < 1 || n > 26)
                break;
            t = 26 * t + n
        }
        r.s.c = --t;
        for (t = 0; a < i; ++a) {
            if ((n = e.charCodeAt(a) - 48) < 0 || n > 9)
                break;
            t = 10 * t + n
        }
        r.s.r = --t;
        if (a === i || n != 10) {
            r.e.c = r.s.c;
            r.e.r = r.s.r;
            return r
        }
        ++a;
        for (t = 0; a != i; ++a) {
            if ((n = e.charCodeAt(a) - 64) < 1 || n > 26)
                break;
            t = 26 * t + n
        }
        r.e.c = --t;
        for (t = 0; a != i; ++a) {
            if ((n = e.charCodeAt(a) - 48) < 0 || n > 9)
                break;
            t = 10 * t + n
        }
        r.e.r = --t;
        return r
    }
    function Fa(e, r) {
        var t = e.t == "d" && r instanceof Date;
        if (e.z != null)
            try {
                return e.w = Be(e.z, t ? fr(r) : r)
            } catch (a) {}
        try {
            return e.w = Be((e.XF || {}).numFmtId || (t ? 14 : 0), t ? fr(r) : r)
        } catch (a) {
            return "" + r
        }
    }
    function Pa(e, r, t) {
        if (e == null || e.t == null || e.t == "z")
            return "";
        if (e.w !== undefined)
            return e.w;
        if (e.t == "d" && !e.z && t && t.dateNF)
            e.z = t.dateNF;
        if (e.t == "e")
            return Gn[e.v] || e.v;
        if (r == undefined)
            return Fa(e, e.v);
        return Fa(e, r)
    }
    function La(e, r) {
        var t = r && r.sheet ? r.sheet : "Sheet1";
        var a = {};
        a[t] = e;
        return {
            SheetNames: [t],
            Sheets: a
        }
    }
    function Ma(e, r, t) {
        var a = t || {};
        var n = e ? Array.isArray(e) : a.dense;
        if (g != null && n == null)
            n = g;
        var i = e || (n ? [] : {});
        var s = 0
          , f = 0;
        if (i && a.origin != null) {
            if (typeof a.origin == "number")
                s = a.origin;
            else {
                var o = typeof a.origin == "string" ? Oa(a.origin) : a.origin;
                s = o.r;
                f = o.c
            }
            if (!i["!ref"])
                i["!ref"] = "A1:A1"
        }
        var l = {
            s: {
                c: 1e7,
                r: 1e7
            },
            e: {
                c: 0,
                r: 0
            }
        };
        if (i["!ref"]) {
            var c = Da(i["!ref"]);
            l.s.c = c.s.c;
            l.s.r = c.s.r;
            l.e.c = Math.max(l.e.c, c.e.c);
            l.e.r = Math.max(l.e.r, c.e.r);
            if (s == -1)
                l.e.r = s = c.e.r + 1
        }
        for (var h = 0; h != r.length; ++h) {
            if (!r[h])
                continue;
            if (!Array.isArray(r[h]))
                throw new Error("aoa_to_sheet expects an array of arrays");
            for (var u = 0; u != r[h].length; ++u) {
                if (typeof r[h][u] === "undefined")
                    continue;
                var d = {
                    v: r[h][u]
                };
                var v = s + h
                  , p = f + u;
                if (l.s.r > v)
                    l.s.r = v;
                if (l.s.c > p)
                    l.s.c = p;
                if (l.e.r < v)
                    l.e.r = v;
                if (l.e.c < p)
                    l.e.c = p;
                if (r[h][u] && typeof r[h][u] === "object" && !Array.isArray(r[h][u]) && !(r[h][u]instanceof Date))
                    d = r[h][u];
                else {
                    if (Array.isArray(d.v)) {
                        d.f = r[h][u][1];
                        d.v = d.v[0]
                    }
                    if (d.v === null) {
                        if (d.f)
                            d.t = "n";
                        else if (a.nullError) {
                            d.t = "e";
                            d.v = 0
                        } else if (!a.sheetStubs)
                            continue;
                        else
                            d.t = "z"
                    } else if (typeof d.v === "number")
                        d.t = "n";
                    else if (typeof d.v === "boolean")
                        d.t = "b";
                    else if (d.v instanceof Date) {
                        d.z = a.dateNF || X[14];
                        if (a.cellDates) {
                            d.t = "d";
                            d.w = Be(d.z, fr(d.v))
                        } else {
                            d.t = "n";
                            d.v = fr(d.v);
                            d.w = Be(d.z, d.v)
                        }
                    } else
                        d.t = "s"
                }
                if (n) {
                    if (!i[v])
                        i[v] = [];
                    if (i[v][p] && i[v][p].z)
                        d.z = i[v][p].z;
                    i[v][p] = d
                } else {
                    var m = Ra({
                        c: p,
                        r: v
                    });
                    if (i[m] && i[m].z)
                        d.z = i[m].z;
                    i[m] = d
                }
            }
        }
        if (l.s.c < 1e7)
            i["!ref"] = Na(l);
        return i
    }
    function Ua(e, r) {
        return Ma(null, e, r)
    }
    function Ba(e) {
        return e._R(4, "i")
    }
    function Wa(e, r) {
        if (!r)
            r = ua(4);
        r._W(4, e);
        return r
    }
    function Ha(e) {
        var r = e._R(4);
        return r === 0 ? "" : e._R(r, "dbcs")
    }
    function za(e, r) {
        var t = false;
        if (r == null) {
            t = true;
            r = ua(4 + 2 * e.length)
        }
        r._W(4, e.length);
        if (e.length > 0)
            r._W(0, e, "dbcs");
        return t ? r.slice(0, r.l) : r
    }
    function Va(e) {
        return {
            ich: e._R(2),
            ifnt: e._R(2)
        }
    }
    function Ga(e, r) {
        if (!r)
            r = ua(4);
        r._W(2, e.ich || 0);
        r._W(2, e.ifnt || 0);
        return r
    }
    function ja(e, r) {
        var t = e.l;
        var a = e._R(1);
        var n = Ha(e);
        var i = [];
        var s = {
            t: n,
            h: n
        };
        if ((a & 1) !== 0) {
            var f = e._R(4);
            for (var o = 0; o != f; ++o)
                i.push(Va(e));
            s.r = i
        } else
            s.r = [{
                ich: 0,
                ifnt: 0
            }];
        e.l = t + r;
        return s
    }
    function Xa(e, r) {
        var t = false;
        if (r == null) {
            t = true;
            r = ua(15 + 4 * e.t.length)
        }
        r._W(1, 0);
        za(e.t, r);
        return t ? r.slice(0, r.l) : r
    }
    var $a = ja;
    function Ya(e, r) {
        var t = false;
        if (r == null) {
            t = true;
            r = ua(23 + 4 * e.t.length)
        }
        r._W(1, 1);
        za(e.t, r);
        r._W(4, 1);
        Ga({
            ich: 0,
            ifnt: 0
        }, r);
        return t ? r.slice(0, r.l) : r
    }
    function Ka(e) {
        var r = e._R(4);
        var t = e._R(2);
        t += e._R(1) << 16;
        e.l++;
        return {
            c: r,
            iStyleRef: t
        }
    }
    function Ja(e, r) {
        if (r == null)
            r = ua(8);
        r._W(-4, e.c);
        r._W(3, e.iStyleRef || e.s);
        r._W(1, 0);
        return r
    }
    function qa(e) {
        var r = e._R(2);
        r += e._R(1) << 16;
        e.l++;
        return {
            c: -1,
            iStyleRef: r
        }
    }
    function Za(e, r) {
        if (r == null)
            r = ua(4);
        r._W(3, e.iStyleRef || e.s);
        r._W(1, 0);
        return r
    }
    var Qa = Ha;
    var en = za;
    function rn(e) {
        var r = e._R(4);
        return r === 0 || r === 4294967295 ? "" : e._R(r, "dbcs")
    }
    function tn(e, r) {
        var t = false;
        if (r == null) {
            t = true;
            r = ua(127)
        }
        r._W(4, e.length > 0 ? e.length : 4294967295);
        if (e.length > 0)
            r._W(0, e, "dbcs");
        return t ? r.slice(0, r.l) : r
    }
    var an = Ha;
    var nn = rn;
    var sn = tn;
    function fn(e) {
        var r = e.slice(e.l, e.l + 4);
        var t = r[0] & 1
          , a = r[0] & 2;
        e.l += 4;
        var n = a === 0 ? Kt([0, 0, 0, 0, r[0] & 252, r[1], r[2], r[3]], 0) : ta(r, 0) >> 2;
        return t ? n / 100 : n
    }
    function on(e, r) {
        if (r == null)
            r = ua(4);
        var t = 0
          , a = 0
          , n = e * 100;
        if (e == (e | 0) && e >= -(1 << 29) && e < 1 << 29) {
            a = 1
        } else if (n == (n | 0) && n >= -(1 << 29) && n < 1 << 29) {
            a = 1;
            t = 1
        }
        if (a)
            r._W(-4, ((t ? n : e) << 2) + (t + 2));
        else
            throw new Error("unsupported RkNumber " + e)
    }
    function ln(e) {
        var r = {
            s: {},
            e: {}
        };
        r.s.r = e._R(4);
        r.e.r = e._R(4);
        r.s.c = e._R(4);
        r.e.c = e._R(4);
        return r
    }
    function cn(e, r) {
        if (!r)
            r = ua(16);
        r._W(4, e.s.r);
        r._W(4, e.e.r);
        r._W(4, e.s.c);
        r._W(4, e.e.c);
        return r
    }
    var hn = ln;
    var un = cn;
    function dn(e) {
        if (e.length - e.l < 8)
            throw "XLS Xnum Buffer underflow";
        return e._R(8, "f")
    }
    function vn(e, r) {
        return (r || ua(8))._W(8, e, "f")
    }
    function pn(e) {
        var r = {};
        var t = e._R(1);
        var a = t >>> 1;
        var n = e._R(1);
        var i = e._R(2, "i");
        var s = e._R(1);
        var f = e._R(1);
        var o = e._R(1);
        e.l++;
        switch (a) {
        case 0:
            r.auto = 1;
            break;
        case 1:
            r.index = n;
            var l = Vn[n];
            if (l)
                r.rgb = bl(l);
            break;
        case 2:
            r.rgb = bl([s, f, o]);
            break;
        case 3:
            r.theme = n;
            break;
        }
        if (i != 0)
            r.tint = i > 0 ? i / 32767 : i / 32768;
        return r
    }
    function gn(e, r) {
        if (!r)
            r = ua(8);
        if (!e || e.auto) {
            r._W(4, 0);
            r._W(4, 0);
            return r
        }
        if (e.index != null) {
            r._W(1, 2);
            r._W(1, e.index)
        } else if (e.theme != null) {
            r._W(1, 6);
            r._W(1, e.theme)
        } else {
            r._W(1, 5);
            r._W(1, 0)
        }
        var t = e.tint || 0;
        if (t > 0)
            t *= 32767;
        else if (t < 0)
            t *= 32768;
        r._W(2, t);
        if (!e.rgb || e.theme != null) {
            r._W(2, 0);
            r._W(1, 0);
            r._W(1, 0)
        } else {
            var a = e.rgb || "FFFFFF";
            if (typeof a == "number")
                a = ("000000" + a.toString(16)).slice(-6);
            r._W(1, parseInt(a.slice(0, 2), 16));
            r._W(1, parseInt(a.slice(2, 4), 16));
            r._W(1, parseInt(a.slice(4, 6), 16));
            r._W(1, 255)
        }
        return r
    }
    function mn(e) {
        var r = e._R(1);
        e.l++;
        var t = {
            fBold: r & 1,
            fItalic: r & 2,
            fUnderline: r & 4,
            fStrikeout: r & 8,
            fOutline: r & 16,
            fShadow: r & 32,
            fCondense: r & 64,
            fExtend: r & 128
        };
        return t
    }
    function bn(e, r) {
        if (!r)
            r = ua(2);
        var t = (e.italic ? 2 : 0) | (e.strike ? 8 : 0) | (e.outline ? 16 : 0) | (e.shadow ? 32 : 0) | (e.condense ? 64 : 0) | (e.extend ? 128 : 0);
        r._W(1, t);
        r._W(1, 0);
        return r
    }
    function wn(e, r) {
        var t = {
            2: "BITMAP",
            3: "METAFILEPICT",
            8: "DIB",
            14: "ENHMETAFILE"
        };
        var a = e._R(4);
        switch (a) {
        case 0:
            return "";
        case 4294967295:
            ;
        case 4294967294:
            return t[e._R(4)] || "";
        }
        if (a > 400)
            throw new Error("Unsupported Clipboard: " + a.toString(16));
        e.l -= 4;
        return e._R(0, r == 1 ? "lpstr" : "lpwstr")
    }
    function kn(e) {
        return wn(e, 1)
    }
    function Tn(e) {
        return wn(e, 2)
    }
    var An = 2;
    var En = 3;
    var Cn = 11;
    var yn = 12;
    var Sn = 19;
    var _n = 30;
    var xn = 64;
    var On = 65;
    var Rn = 71;
    var In = 4096;
    var Nn = 4108;
    var Dn = 4126;
    var Fn = 80;
    var Pn = 81;
    var Ln = [Fn, Pn];
    var Mn = {
        1: {
            n: "CodePage",
            t: An
        },
        2: {
            n: "Category",
            t: Fn
        },
        3: {
            n: "PresentationFormat",
            t: Fn
        },
        4: {
            n: "ByteCount",
            t: En
        },
        5: {
            n: "LineCount",
            t: En
        },
        6: {
            n: "ParagraphCount",
            t: En
        },
        7: {
            n: "SlideCount",
            t: En
        },
        8: {
            n: "NoteCount",
            t: En
        },
        9: {
            n: "HiddenCount",
            t: En
        },
        10: {
            n: "MultimediaClipCount",
            t: En
        },
        11: {
            n: "ScaleCrop",
            t: Cn
        },
        12: {
            n: "HeadingPairs",
            t: Nn
        },
        13: {
            n: "TitlesOfParts",
            t: Dn
        },
        14: {
            n: "Manager",
            t: Fn
        },
        15: {
            n: "Company",
            t: Fn
        },
        16: {
            n: "LinksUpToDate",
            t: Cn
        },
        17: {
            n: "CharacterCount",
            t: En
        },
        19: {
            n: "SharedDoc",
            t: Cn
        },
        22: {
            n: "HyperlinksChanged",
            t: Cn
        },
        23: {
            n: "AppVersion",
            t: En,
            p: "version"
        },
        24: {
            n: "DigSig",
            t: On
        },
        26: {
            n: "ContentType",
            t: Fn
        },
        27: {
            n: "ContentStatus",
            t: Fn
        },
        28: {
            n: "Language",
            t: Fn
        },
        29: {
            n: "Version",
            t: Fn
        },
        255: {},
        2147483648: {
            n: "Locale",
            t: Sn
        },
        2147483651: {
            n: "Behavior",
            t: Sn
        },
        1919054434: {}
    };
    var Un = {
        1: {
            n: "CodePage",
            t: An
        },
        2: {
            n: "Title",
            t: Fn
        },
        3: {
            n: "Subject",
            t: Fn
        },
        4: {
            n: "Author",
            t: Fn
        },
        5: {
            n: "Keywords",
            t: Fn
        },
        6: {
            n: "Comments",
            t: Fn
        },
        7: {
            n: "Template",
            t: Fn
        },
        8: {
            n: "LastAuthor",
            t: Fn
        },
        9: {
            n: "RevNumber",
            t: Fn
        },
        10: {
            n: "EditTime",
            t: xn
        },
        11: {
            n: "LastPrinted",
            t: xn
        },
        12: {
            n: "CreatedDate",
            t: xn
        },
        13: {
            n: "ModifiedDate",
            t: xn
        },
        14: {
            n: "PageCount",
            t: En
        },
        15: {
            n: "WordCount",
            t: En
        },
        16: {
            n: "CharCount",
            t: En
        },
        17: {
            n: "Thumbnail",
            t: Rn
        },
        18: {
            n: "Application",
            t: Fn
        },
        19: {
            n: "DocSecurity",
            t: En
        },
        255: {},
        2147483648: {
            n: "Locale",
            t: Sn
        },
        2147483651: {
            n: "Behavior",
            t: Sn
        },
        1919054434: {}
    };
    var Bn = {
        1: "US",
        2: "CA",
        3: "",
        7: "RU",
        20: "EG",
        30: "GR",
        31: "NL",
        32: "BE",
        33: "FR",
        34: "ES",
        36: "HU",
        39: "IT",
        41: "CH",
        43: "AT",
        44: "GB",
        45: "DK",
        46: "SE",
        47: "NO",
        48: "PL",
        49: "DE",
        52: "MX",
        55: "BR",
        61: "AU",
        64: "NZ",
        66: "TH",
        81: "JP",
        82: "KR",
        84: "VN",
        86: "CN",
        90: "TR",
        105: "JS",
        213: "DZ",
        216: "MA",
        218: "LY",
        351: "PT",
        354: "IS",
        358: "FI",
        420: "CZ",
        886: "TW",
        961: "LB",
        962: "JO",
        963: "SY",
        964: "IQ",
        965: "KW",
        966: "SA",
        971: "AE",
        972: "IL",
        974: "QA",
        981: "IR",
        65535: "US"
    };
    var Wn = [null, "solid", "mediumGray", "darkGray", "lightGray", "darkHorizontal", "darkVertical", "darkDown", "darkUp", "darkGrid", "darkTrellis", "lightHorizontal", "lightVertical", "lightDown", "lightUp", "lightGrid", "lightTrellis", "gray125", "gray0625"];
    function Hn(e) {
        return e.map(function(e) {
            return [e >> 16 & 255, e >> 8 & 255, e & 255]
        })
    }
    var zn = Hn([0, 16777215, 16711680, 65280, 255, 16776960, 16711935, 65535, 0, 16777215, 16711680, 65280, 255, 16776960, 16711935, 65535, 8388608, 32768, 128, 8421376, 8388736, 32896, 12632256, 8421504, 10066431, 10040166, 16777164, 13434879, 6684774, 16744576, 26316, 13421823, 128, 16711935, 16776960, 65535, 8388736, 8388608, 32896, 255, 52479, 13434879, 13434828, 16777113, 10079487, 16751052, 13408767, 16764057, 3368703, 3394764, 10079232, 16763904, 16750848, 16737792, 6710937, 9868950, 13158, 3381606, 13056, 3355392, 10040064, 10040166, 3355545, 3355443, 16777215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    var Vn = br(zn);
    var Gn = {
        0: "#NULL!",
        7: "#DIV/0!",
        15: "#VALUE!",
        23: "#REF!",
        29: "#NAME?",
        36: "#NUM!",
        42: "#N/A",
        43: "#GETTING_DATA",
        255: "#WTF?"
    };
    var jn = {
        "#NULL!": 0,
        "#DIV/0!": 7,
        "#VALUE!": 15,
        "#REF!": 23,
        "#NAME?": 29,
        "#NUM!": 36,
        "#N/A": 42,
        "#GETTING_DATA": 43,
        "#WTF?": 255
    };
    var Xn = {
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": "workbooks",
        "application/vnd.ms-excel.sheet.macroEnabled.main+xml": "workbooks",
        "application/vnd.ms-excel.sheet.binary.macroEnabled.main": "workbooks",
        "application/vnd.ms-excel.addin.macroEnabled.main+xml": "workbooks",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": "workbooks",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": "sheets",
        "application/vnd.ms-excel.worksheet": "sheets",
        "application/vnd.ms-excel.binIndexWs": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": "charts",
        "application/vnd.ms-excel.chartsheet": "charts",
        "application/vnd.ms-excel.macrosheet+xml": "macros",
        "application/vnd.ms-excel.macrosheet": "macros",
        "application/vnd.ms-excel.intlmacrosheet": "TODO",
        "application/vnd.ms-excel.binIndexMs": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": "dialogs",
        "application/vnd.ms-excel.dialogsheet": "dialogs",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml": "strs",
        "application/vnd.ms-excel.sharedStrings": "strs",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": "styles",
        "application/vnd.ms-excel.styles": "styles",
        "application/vnd.openxmlformats-package.core-properties+xml": "coreprops",
        "application/vnd.openxmlformats-officedocument.custom-properties+xml": "custprops",
        "application/vnd.openxmlformats-officedocument.extended-properties+xml": "extprops",
        "application/vnd.openxmlformats-officedocument.customXmlProperties+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": "comments",
        "application/vnd.ms-excel.comments": "comments",
        "application/vnd.ms-excel.threadedcomments+xml": "threadedcomments",
        "application/vnd.ms-excel.person+xml": "people",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml": "metadata",
        "application/vnd.ms-excel.sheetMetadata": "metadata",
        "application/vnd.ms-excel.pivotTable": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": "TODO",
        "application/vnd.ms-office.chartcolorstyle+xml": "TODO",
        "application/vnd.ms-office.chartstyle+xml": "TODO",
        "application/vnd.ms-office.chartex+xml": "TODO",
        "application/vnd.ms-excel.calcChain": "calcchains",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml": "calcchains",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings": "TODO",
        "application/vnd.ms-office.activeX": "TODO",
        "application/vnd.ms-office.activeX+xml": "TODO",
        "application/vnd.ms-excel.attachedToolbars": "TODO",
        "application/vnd.ms-excel.connections": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": "TODO",
        "application/vnd.ms-excel.externalLink": "links",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml": "links",
        "application/vnd.ms-excel.pivotCacheDefinition": "TODO",
        "application/vnd.ms-excel.pivotCacheRecords": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml": "TODO",
        "application/vnd.ms-excel.queryTable": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml": "TODO",
        "application/vnd.ms-excel.userNames": "TODO",
        "application/vnd.ms-excel.revisionHeaders": "TODO",
        "application/vnd.ms-excel.revisionLog": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml": "TODO",
        "application/vnd.ms-excel.tableSingleCells": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml": "TODO",
        "application/vnd.ms-excel.slicer": "TODO",
        "application/vnd.ms-excel.slicerCache": "TODO",
        "application/vnd.ms-excel.slicer+xml": "TODO",
        "application/vnd.ms-excel.slicerCache+xml": "TODO",
        "application/vnd.ms-excel.wsSortMap": "TODO",
        "application/vnd.ms-excel.table": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.theme+xml": "themes",
        "application/vnd.openxmlformats-officedocument.themeOverride+xml": "TODO",
        "application/vnd.ms-excel.Timeline+xml": "TODO",
        "application/vnd.ms-excel.TimelineCache+xml": "TODO",
        "application/vnd.ms-office.vbaProject": "vba",
        "application/vnd.ms-office.vbaProjectSignature": "TODO",
        "application/vnd.ms-office.volatileDependencies": "TODO",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml": "TODO",
        "application/vnd.ms-excel.controlproperties+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.model+data": "TODO",
        "application/vnd.ms-excel.Survey+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawing+xml": "drawings",
        "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml": "TODO",
        "application/vnd.openxmlformats-officedocument.vmlDrawing": "TODO",
        "application/vnd.openxmlformats-package.relationships+xml": "rels",
        "application/vnd.openxmlformats-officedocument.oleObject": "TODO",
        "image/png": "TODO",
        sheet: "js"
    };
    var $n = {
        workbooks: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
            xlsm: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
            xlsb: "application/vnd.ms-excel.sheet.binary.macroEnabled.main",
            xlam: "application/vnd.ms-excel.addin.macroEnabled.main+xml",
            xltx: "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"
        },
        strs: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
            xlsb: "application/vnd.ms-excel.sharedStrings"
        },
        comments: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
            xlsb: "application/vnd.ms-excel.comments"
        },
        sheets: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
            xlsb: "application/vnd.ms-excel.worksheet"
        },
        charts: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
            xlsb: "application/vnd.ms-excel.chartsheet"
        },
        dialogs: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",
            xlsb: "application/vnd.ms-excel.dialogsheet"
        },
        macros: {
            xlsx: "application/vnd.ms-excel.macrosheet+xml",
            xlsb: "application/vnd.ms-excel.macrosheet"
        },
        metadata: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
            xlsb: "application/vnd.ms-excel.sheetMetadata"
        },
        styles: {
            xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
            xlsb: "application/vnd.ms-excel.styles"
        }
    };
    function Yn() {
        return {
            workbooks: [],
            sheets: [],
            charts: [],
            dialogs: [],
            macros: [],
            rels: [],
            strs: [],
            comments: [],
            threadedcomments: [],
            links: [],
            coreprops: [],
            extprops: [],
            custprops: [],
            themes: [],
            styles: [],
            calcchains: [],
            vba: [],
            drawings: [],
            metadata: [],
            people: [],
            TODO: [],
            xmlns: ""
        }
    }
    function Kn(e) {
        var r = Yn();
        if (!e || !e.match)
            return r;
        var t = {};
        (e.match(Hr) || []).forEach(function(e) {
            var a = Gr(e);
            switch (a[0].replace(zr, "<")) {
            case "<?xml":
                break;
            case "<Types":
                r.xmlns = a["xmlns" + (a[0].match(/<(\w+):/) || ["", ""])[1]];
                break;
            case "<Default":
                t[a.Extension] = a.ContentType;
                break;
            case "<Override":
                if (r[Xn[a.ContentType]] !== undefined)
                    r[Xn[a.ContentType]].push(a.PartName);
                break;
            }
        });
        if (r.xmlns !== yt.CT)
            throw new Error("Unknown Namespace: " + r.xmlns);
        r.calcchain = r.calcchains.length > 0 ? r.calcchains[0] : "";
        r.sst = r.strs.length > 0 ? r.strs[0] : "";
        r.style = r.styles.length > 0 ? r.styles[0] : "";
        r.defaults = t;
        delete r.calcchains;
        return r
    }
    function Jn(e, r) {
        var t = ir(Xn);
        var a = [], n;
        a[a.length] = Mr;
        a[a.length] = kt("Types", null, {
            xmlns: yt.CT,
            "xmlns:xsd": yt.xsd,
            "xmlns:xsi": yt.xsi
        });
        a = a.concat([["xml", "application/xml"], ["bin", "application/vnd.ms-excel.sheet.binary.macroEnabled.main"], ["vml", "application/vnd.openxmlformats-officedocument.vmlDrawing"], ["data", "application/vnd.openxmlformats-officedocument.model+data"], ["bmp", "image/bmp"], ["png", "image/png"], ["gif", "image/gif"], ["emf", "image/x-emf"], ["wmf", "image/x-wmf"], ["jpg", "image/jpeg"], ["jpeg", "image/jpeg"], ["tif", "image/tiff"], ["tiff", "image/tiff"], ["pdf", "application/pdf"], ["rels", "application/vnd.openxmlformats-package.relationships+xml"]].map(function(e) {
            return kt("Default", null, {
                Extension: e[0],
                ContentType: e[1]
            })
        }));
        var i = function(t) {
            if (e[t] && e[t].length > 0) {
                n = e[t][0];
                a[a.length] = kt("Override", null, {
                    PartName: (n[0] == "/" ? "" : "/") + n,
                    ContentType: $n[t][r.bookType] || $n[t]["xlsx"]
                })
            }
        };
        var s = function(t) {
            (e[t] || []).forEach(function(e) {
                a[a.length] = kt("Override", null, {
                    PartName: (e[0] == "/" ? "" : "/") + e,
                    ContentType: $n[t][r.bookType] || $n[t]["xlsx"]
                })
            })
        };
        var f = function(r) {
            (e[r] || []).forEach(function(e) {
                a[a.length] = kt("Override", null, {
                    PartName: (e[0] == "/" ? "" : "/") + e,
                    ContentType: t[r][0]
                })
            })
        };
        i("workbooks");
        s("sheets");
        s("charts");
        f("themes");
        ["strs", "styles"].forEach(i);
        ["coreprops", "extprops", "custprops"].forEach(f);
        f("vba");
        f("comments");
        f("threadedcomments");
        f("drawings");
        s("metadata");
        f("people");
        if (a.length > 2) {
            a[a.length] = "</Types>";
            a[1] = a[1].replace("/>", ">")
        }
        return a.join("")
    }
    var qn = {
        WB: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
        SHEET: "http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
        HLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
        VML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",
        XPATH: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",
        XMISS: "http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",
        XLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",
        CXML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",
        CXMLP: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",
        CMNT: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
        CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",
        EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",
        CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",
        SST: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
        STY: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
        THEME: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
        CHART: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
        CHARTEX: "http://schemas.microsoft.com/office/2014/relationships/chartEx",
        CS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",
        WS: ["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet", "http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],
        DS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",
        MS: "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",
        IMG: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
        DRAW: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
        XLMETA: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",
        TCMNT: "http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",
        PEOPLE: "http://schemas.microsoft.com/office/2017/10/relationships/person",
        VBA: "http://schemas.microsoft.com/office/2006/relationships/vbaProject"
    };
    function Zn(e) {
        var r = e.lastIndexOf("/");
        return e.slice(0, r + 1) + "_rels/" + e.slice(r + 1) + ".rels"
    }
    function Qn(e, r) {
        var t = {
            "!id": {}
        };
        if (!e)
            return t;
        if (r.charAt(0) !== "/") {
            r = "/" + r
        }
        var a = {};
        (e.match(Hr) || []).forEach(function(e) {
            var n = Gr(e);
            if (n[0] === "<Relationship") {
                var i = {};
                i.Type = n.Type;
                i.Target = n.Target;
                i.Id = n.Id;
                if (n.TargetMode)
                    i.TargetMode = n.TargetMode;
                var s = n.TargetMode === "External" ? n.Target : Lr(n.Target, r);
                t[s] = i;
                a[n.Id] = i
            }
        });
        t["!id"] = a;
        return t
    }
    function ei(e) {
        var r = [Mr, kt("Relationships", null, {
            xmlns: yt.RELS
        })];
        rr(e["!id"]).forEach(function(t) {
            r[r.length] = kt("Relationship", null, e["!id"][t])
        });
        if (r.length > 2) {
            r[r.length] = "</Relationships>";
            r[1] = r[1].replace("/>", ">")
        }
        return r.join("")
    }
    function ri(e, r, t, a, n, i) {
        if (!n)
            n = {};
        if (!e["!id"])
            e["!id"] = {};
        if (!e["!idx"])
            e["!idx"] = 1;
        if (r < 0)
            for (r = e["!idx"]; e["!id"]["rId" + r]; ++r) {}
        e["!idx"] = r + 1;
        n.Id = "rId" + r;
        n.Type = a;
        n.Target = t;
        if (i)
            n.TargetMode = i;
        else if ([qn.HLINK, qn.XPATH, qn.XMISS].indexOf(n.Type) > -1)
            n.TargetMode = "External";
        if (e["!id"][n.Id])
            throw new Error("Cannot rewrite rId " + r);
        e["!id"][n.Id] = n;
        e[("/" + n.Target).replace("//", "/")] = n;
        return r
    }
    var ti = "application/vnd.oasis.opendocument.spreadsheet";
    function ai(e, r) {
        var t = Et(e);
        var a;
        var n;
        while (a = Ct.exec(t))
            switch (a[3]) {
            case "manifest":
                break;
            case "file-entry":
                n = Gr(a[0], false);
                if (n.path == "/" && n.type !== ti)
                    throw new Error("This OpenDocument is not a spreadsheet");
                break;
            case "encryption-data":
                ;
            case "algorithm":
                ;
            case "start-key-generation":
                ;
            case "key-derivation":
                throw new Error("Unsupported ODS Encryption");
            default:
                if (r && r.WTF)
                    throw a;
            }
    }
    function ni(e) {
        var r = [Mr];
        r.push('<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">\n');
        r.push('  <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>\n');
        for (var t = 0; t < e.length; ++t)
            r.push('  <manifest:file-entry manifest:full-path="' + e[t][0] + '" manifest:media-type="' + e[t][1] + '"/>\n');
        r.push("</manifest:manifest>");
        return r.join("")
    }
    function ii(e, r, t) {
        return ['  <rdf:Description rdf:about="' + e + '">\n', '    <rdf:type rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/' + (t || "odf") + "#" + r + '"/>\n', "  </rdf:Description>\n"].join("")
    }
    function si(e, r) {
        return ['  <rdf:Description rdf:about="' + e + '">\n', '    <ns0:hasPart xmlns:ns0="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#" rdf:resource="' + r + '"/>\n', "  </rdf:Description>\n"].join("")
    }
    function fi(e) {
        var r = [Mr];
        r.push('<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n');
        for (var t = 0; t != e.length; ++t) {
            r.push(ii(e[t][0], e[t][1]));
            r.push(si("", e[t][0]))
        }
        r.push(ii("", "Document", "pkg"));
        r.push("</rdf:RDF>");
        return r.join("")
    }
    function oi() {
        return '<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" office:version="1.2"><office:meta><meta:generator>Sheet' + "JS " + e.version + "</meta:generator></office:meta></office:document-meta>"
    }
    var li = [["cp:category", "Category"], ["cp:contentStatus", "ContentStatus"], ["cp:keywords", "Keywords"], ["cp:lastModifiedBy", "LastAuthor"], ["cp:lastPrinted", "LastPrinted"], ["cp:revision", "RevNumber"], ["cp:version", "Version"], ["dc:creator", "Author"], ["dc:description", "Comments"], ["dc:identifier", "Identifier"], ["dc:language", "Language"], ["dc:subject", "Subject"], ["dc:title", "Title"], ["dcterms:created", "CreatedDate", "date"], ["dcterms:modified", "ModifiedDate", "date"]];
    var ci = function() {
        var e = new Array(li.length);
        for (var r = 0; r < li.length; ++r) {
            var t = li[r];
            var a = "(?:" + t[0].slice(0, t[0].indexOf(":")) + ":)" + t[0].slice(t[0].indexOf(":") + 1);
            e[r] = new RegExp("<" + a + "[^>]*>([\\s\\S]*?)</" + a + ">")
        }
        return e
    }();
    function hi(e) {
        var r = {};
        e = lt(e);
        for (var t = 0; t < li.length; ++t) {
            var a = li[t]
              , n = e.match(ci[t]);
            if (n != null && n.length > 0)
                r[a[1]] = Yr(n[1]);
            if (a[2] === "date" && r[a[1]])
                r[a[1]] = gr(r[a[1]])
        }
        return r
    }
    function ui(e, r, t, a, n) {
        if (n[e] != null || r == null || r === "")
            return;
        n[e] = r;
        r = qr(r);
        a[a.length] = t ? kt(e, r, t) : bt(e, r)
    }
    function di(e, r) {
        var t = r || {};
        var a = [Mr, kt("cp:coreProperties", null, {
            "xmlns:cp": yt.CORE_PROPS,
            "xmlns:dc": yt.dc,
            "xmlns:dcterms": yt.dcterms,
            "xmlns:dcmitype": yt.dcmitype,
            "xmlns:xsi": yt.xsi
        })]
          , n = {};
        if (!e && !t.Props)
            return a.join("");
        if (e) {
            if (e.CreatedDate != null)
                ui("dcterms:created", typeof e.CreatedDate === "string" ? e.CreatedDate : Tt(e.CreatedDate, t.WTF), {
                    "xsi:type": "dcterms:W3CDTF"
                }, a, n);
            if (e.ModifiedDate != null)
                ui("dcterms:modified", typeof e.ModifiedDate === "string" ? e.ModifiedDate : Tt(e.ModifiedDate, t.WTF), {
                    "xsi:type": "dcterms:W3CDTF"
                }, a, n)
        }
        for (var i = 0; i != li.length; ++i) {
            var s = li[i];
            var f = t.Props && t.Props[s[1]] != null ? t.Props[s[1]] : e ? e[s[1]] : null;
            if (f === true)
                f = "1";
            else if (f === false)
                f = "0";
            else if (typeof f == "number")
                f = String(f);
            if (f != null)
                ui(s[0], f, null, a, n)
        }
        if (a.length > 2) {
            a[a.length] = "</cp:coreProperties>";
            a[1] = a[1].replace("/>", ">")
        }
        return a.join("")
    }
    var vi = [["Application", "Application", "string"], ["AppVersion", "AppVersion", "string"], ["Company", "Company", "string"], ["DocSecurity", "DocSecurity", "string"], ["Manager", "Manager", "string"], ["HyperlinksChanged", "HyperlinksChanged", "bool"], ["SharedDoc", "SharedDoc", "bool"], ["LinksUpToDate", "LinksUpToDate", "bool"], ["ScaleCrop", "ScaleCrop", "bool"], ["HeadingPairs", "HeadingPairs", "raw"], ["TitlesOfParts", "TitlesOfParts", "raw"]];
    var pi = ["Worksheets", "SheetNames", "NamedRanges", "DefinedNames", "Chartsheets", "ChartNames"];
    function gi(e, r, t, a) {
        var n = [];
        if (typeof e == "string")
            n = gt(e, a);
        else
            for (var i = 0; i < e.length; ++i)
                n = n.concat(e[i].map(function(e) {
                    return {
                        v: e
                    }
                }));
        var s = typeof r == "string" ? gt(r, a).map(function(e) {
            return e.v
        }) : r;
        var f = 0
          , o = 0;
        if (s.length > 0)
            for (var l = 0; l !== n.length; l += 2) {
                o = +n[l + 1].v;
                switch (n[l].v) {
                case "Worksheets":
                    ;
                case "工作表":
                    ;
                case "Листы":
                    ;
                case "أوراق العمل":
                    ;
                case "ワークシート":
                    ;
                case "גליונות עבודה":
                    ;
                case "Arbeitsblätter":
                    ;
                case "Çalışma Sayfaları":
                    ;
                case "Feuilles de calcul":
                    ;
                case "Fogli di lavoro":
                    ;
                case "Folhas de cálculo":
                    ;
                case "Planilhas":
                    ;
                case "Regneark":
                    ;
                case "Hojas de cálculo":
                    ;
                case "Werkbladen":
                    t.Worksheets = o;
                    t.SheetNames = s.slice(f, f + o);
                    break;
                case "Named Ranges":
                    ;
                case "Rangos con nombre":
                    ;
                case "名前付き一覧":
                    ;
                case "Benannte Bereiche":
                    ;
                case "Navngivne områder":
                    t.NamedRanges = o;
                    t.DefinedNames = s.slice(f, f + o);
                    break;
                case "Charts":
                    ;
                case "Diagramme":
                    t.Chartsheets = o;
                    t.ChartNames = s.slice(f, f + o);
                    break;
                }
                f += o
            }
    }
    function mi(e, r, t) {
        var a = {};
        if (!r)
            r = {};
        e = lt(e);
        vi.forEach(function(t) {
            var n = (e.match(ht(t[0])) || [])[1];
            switch (t[2]) {
            case "string":
                if (n)
                    r[t[1]] = Yr(n);
                break;
            case "bool":
                r[t[1]] = n === "true";
                break;
            case "raw":
                var i = e.match(new RegExp("<" + t[0] + "[^>]*>([\\s\\S]*?)</" + t[0] + ">"));
                if (i && i.length > 0)
                    a[t[1]] = i[1];
                break;
            }
        });
        if (a.HeadingPairs && a.TitlesOfParts)
            gi(a.HeadingPairs, a.TitlesOfParts, r, t);
        return r
    }
    function bi(e) {
        var r = []
          , t = kt;
        if (!e)
            e = {};
        e.Application = "SheetJS";
        r[r.length] = Mr;
        r[r.length] = kt("Properties", null, {
            xmlns: yt.EXT_PROPS,
            "xmlns:vt": yt.vt
        });
        vi.forEach(function(a) {
            if (e[a[1]] === undefined)
                return;
            var n;
            switch (a[2]) {
            case "string":
                n = qr(String(e[a[1]]));
                break;
            case "bool":
                n = e[a[1]] ? "true" : "false";
                break;
            }
            if (n !== undefined)
                r[r.length] = t(a[0], n)
        });
        r[r.length] = t("HeadingPairs", t("vt:vector", t("vt:variant", "<vt:lpstr>Worksheets</vt:lpstr>") + t("vt:variant", t("vt:i4", String(e.Worksheets))), {
            size: 2,
            baseType: "variant"
        }));
        r[r.length] = t("TitlesOfParts", t("vt:vector", e.SheetNames.map(function(e) {
            return "<vt:lpstr>" + qr(e) + "</vt:lpstr>"
        }).join(""), {
            size: e.Worksheets,
            baseType: "lpstr"
        }));
        if (r.length > 2) {
            r[r.length] = "</Properties>";
            r[1] = r[1].replace("/>", ">")
        }
        return r.join("")
    }
    var wi = /<[^>]+>[^<]*/g;
    function ki(e, r) {
        var t = {}
          , a = "";
        var n = e.match(wi);
        if (n)
            for (var i = 0; i != n.length; ++i) {
                var s = n[i]
                  , f = Gr(s);
                switch (f[0]) {
                case "<?xml":
                    break;
                case "<Properties":
                    break;
                case "<property":
                    a = Yr(f.name);
                    break;
                case "</property>":
                    a = null;
                    break;
                default:
                    if (s.indexOf("<vt:") === 0) {
                        var o = s.split(">");
                        var l = o[0].slice(4)
                          , c = o[1];
                        switch (l) {
                        case "lpstr":
                            ;
                        case "bstr":
                            ;
                        case "lpwstr":
                            t[a] = Yr(c);
                            break;
                        case "bool":
                            t[a] = nt(c);
                            break;
                        case "i1":
                            ;
                        case "i2":
                            ;
                        case "i4":
                            ;
                        case "i8":
                            ;
                        case "int":
                            ;
                        case "uint":
                            t[a] = parseInt(c, 10);
                            break;
                        case "r4":
                            ;
                        case "r8":
                            ;
                        case "decimal":
                            t[a] = parseFloat(c);
                            break;
                        case "filetime":
                            ;
                        case "date":
                            t[a] = gr(c);
                            break;
                        case "cy":
                            ;
                        case "error":
                            t[a] = Yr(c);
                            break;
                        default:
                            if (l.slice(-1) == "/")
                                break;
                            if (r.WTF && typeof console !== "undefined")
                                console.warn("Unexpected", s, l, o);
                        }
                    } else if (s.slice(0, 2) === "</") {} else if (r.WTF)
                        throw new Error(s);
                }
            }
        return t
    }
    function Ti(e) {
        var r = [Mr, kt("Properties", null, {
            xmlns: yt.CUST_PROPS,
            "xmlns:vt": yt.vt
        })];
        if (!e)
            return r.join("");
        var t = 1;
        rr(e).forEach(function a(n) {
            ++t;
            r[r.length] = kt("property", At(e[n], true), {
                fmtid: "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",
                pid: t,
                name: qr(n)
            })
        });
        if (r.length > 2) {
            r[r.length] = "</Properties>";
            r[1] = r[1].replace("/>", ">")
        }
        return r.join("")
    }
    var Ai = {
        Title: "Title",
        Subject: "Subject",
        Author: "Author",
        Keywords: "Keywords",
        Comments: "Description",
        LastAuthor: "LastAuthor",
        RevNumber: "Revision",
        Application: "AppName",
        LastPrinted: "LastPrinted",
        CreatedDate: "Created",
        ModifiedDate: "LastSaved",
        Category: "Category",
        Manager: "Manager",
        Company: "Company",
        AppVersion: "Version",
        ContentStatus: "ContentStatus",
        Identifier: "Identifier",
        Language: "Language"
    };
    var Ei;
    function Ci(e, r, t) {
        if (!Ei)
            Ei = ar(Ai);
        r = Ei[r] || r;
        e[r] = t
    }
    function yi(e, r) {
        var t = [];
        rr(Ai).map(function(e) {
            for (var r = 0; r < li.length; ++r)
                if (li[r][1] == e)
                    return li[r];
            for (r = 0; r < vi.length; ++r)
                if (vi[r][1] == e)
                    return vi[r];
            throw e
        }).forEach(function(a) {
            if (e[a[1]] == null)
                return;
            var n = r && r.Props && r.Props[a[1]] != null ? r.Props[a[1]] : e[a[1]];
            switch (a[2]) {
            case "date":
                n = new Date(n).toISOString().replace(/\.\d*Z/, "Z");
                break;
            }
            if (typeof n == "number")
                n = String(n);
            else if (n === true || n === false) {
                n = n ? "1" : "0"
            } else if (n instanceof Date)
                n = new Date(n).toISOString().replace(/\.\d*Z/, "");
            t.push(bt(Ai[a[1]] || a[1], n))
        });
        return kt("DocumentProperties", t.join(""), {
            xmlns: _t.o
        })
    }
    function Si(e, r) {
        var t = ["Worksheets", "SheetNames"];
        var a = "CustomDocumentProperties";
        var n = [];
        if (e)
            rr(e).forEach(function(r) {
                if (!Object.prototype.hasOwnProperty.call(e, r))
                    return;
                for (var a = 0; a < li.length; ++a)
                    if (r == li[a][1])
                        return;
                for (a = 0; a < vi.length; ++a)
                    if (r == vi[a][1])
                        return;
                for (a = 0; a < t.length; ++a)
                    if (r == t[a])
                        return;
                var i = e[r];
                var s = "string";
                if (typeof i == "number") {
                    s = "float";
                    i = String(i)
                } else if (i === true || i === false) {
                    s = "boolean";
                    i = i ? "1" : "0"
                } else
                    i = String(i);
                n.push(kt(Zr(r), i, {
                    "dt:dt": s
                }))
            });
        if (r)
            rr(r).forEach(function(t) {
                if (!Object.prototype.hasOwnProperty.call(r, t))
                    return;
                if (e && Object.prototype.hasOwnProperty.call(e, t))
                    return;
                var a = r[t];
                var i = "string";
                if (typeof a == "number") {
                    i = "float";
                    a = String(a)
                } else if (a === true || a === false) {
                    i = "boolean";
                    a = a ? "1" : "0"
                } else if (a instanceof Date) {
                    i = "dateTime.tz";
                    a = a.toISOString()
                } else
                    a = String(a);
                n.push(kt(Zr(t), a, {
                    "dt:dt": i
                }))
            });
        return "<" + a + ' xmlns="' + _t.o + '">' + n.join("") + "</" + a + ">"
    }
    function _i(e) {
        var r = e._R(4)
          , t = e._R(4);
        return new Date((t / 1e7 * Math.pow(2, 32) + r / 1e7 - 11644473600) * 1e3).toISOString().replace(/\.000/, "")
    }
    function xi(e) {
        var r = typeof e == "string" ? new Date(Date.parse(e)) : e;
        var t = r.getTime() / 1e3 + 11644473600;
        var a = t % Math.pow(2, 32)
          , n = (t - a) / Math.pow(2, 32);
        a *= 1e7;
        n *= 1e7;
        var i = a / Math.pow(2, 32) | 0;
        if (i > 0) {
            a = a % Math.pow(2, 32);
            n += i
        }
        var s = ua(8);
        s._W(4, a);
        s._W(4, n);
        return s
    }
    function Oi(e, r, t) {
        var a = e.l;
        var n = e._R(0, "lpstr-cp");
        if (t)
            while (e.l - a & 3)
                ++e.l;
        return n
    }
    function Ri(e, r, t) {
        var a = e._R(0, "lpwstr");
        if (t)
            e.l += 4 - (a.length + 1 & 3) & 3;
        return a
    }
    function Ii(e, r, t) {
        if (r === 31)
            return Ri(e);
        return Oi(e, r, t)
    }
    function Ni(e, r, t) {
        return Ii(e, r, t === false ? 0 : 4)
    }
    function Di(e, r) {
        if (!r)
            throw new Error("VtUnalignedString must have positive length");
        return Ii(e, r, 0)
    }
    function Fi(e) {
        var r = e._R(4);
        var t = [];
        for (var a = 0; a != r; ++a) {
            var n = e.l;
            t[a] = e._R(0, "lpwstr").replace(N, "");
            if (e.l - n & 2)
                e.l += 2
        }
        return t
    }
    function Pi(e) {
        var r = e._R(4);
        var t = [];
        for (var a = 0; a != r; ++a)
            t[a] = e._R(0, "lpstr-cp").replace(N, "");
        return t
    }
    function Li(e) {
        var r = e.l;
        var t = Hi(e, Pn);
        if (e[e.l] == 0 && e[e.l + 1] == 0 && e.l - r & 2)
            e.l += 2;
        var a = Hi(e, En);
        return [t, a]
    }
    function Mi(e) {
        var r = e._R(4);
        var t = [];
        for (var a = 0; a < r / 2; ++a)
            t.push(Li(e));
        return t
    }
    function Ui(e, r) {
        var t = e._R(4);
        var a = {};
        for (var n = 0; n != t; ++n) {
            var i = e._R(4);
            var s = e._R(4);
            a[i] = e._R(s, r === 1200 ? "utf16le" : "utf8").replace(N, "").replace(D, "!");
            if (r === 1200 && s % 2)
                e.l += 2
        }
        if (e.l & 3)
            e.l = e.l >> 2 + 1 << 2;
        return a
    }
    function Bi(e) {
        var r = e._R(4);
        var t = e.slice(e.l, e.l + r);
        e.l += r;
        if ((r & 3) > 0)
            e.l += 4 - (r & 3) & 3;
        return t
    }
    function Wi(e) {
        var r = {};
        r.Size = e._R(4);
        e.l += r.Size + 3 - (r.Size - 1) % 4;
        return r
    }
    function Hi(e, r, t) {
        var a = e._R(2), n, i = t || {};
        e.l += 2;
        if (r !== yn)
            if (a !== r && Ln.indexOf(r) === -1 && !((r & 65534) == 4126 && (a & 65534) == 4126))
                throw new Error("Expected type " + r + " saw " + a);
        switch (r === yn ? a : r) {
        case 2:
            n = e._R(2, "i");
            if (!i.raw)
                e.l += 2;
            return n;
        case 3:
            n = e._R(4, "i");
            return n;
        case 11:
            return e._R(4) !== 0;
        case 19:
            n = e._R(4);
            return n;
        case 30:
            return Oi(e, a, 4).replace(N, "");
        case 31:
            return Ri(e);
        case 64:
            return _i(e);
        case 65:
            return Bi(e);
        case 71:
            return Wi(e);
        case 80:
            return Ni(e, a, !i.raw).replace(N, "");
        case 81:
            return Di(e, a).replace(N, "");
        case 4108:
            return Mi(e);
        case 4126:
            ;
        case 4127:
            return a == 4127 ? Fi(e) : Pi(e);
        default:
            throw new Error("TypedPropertyValue unrecognized type " + r + " " + a);
        }
    }
    function zi(e, r) {
        var t = ua(4)
          , a = ua(4);
        t._W(4, e == 80 ? 31 : e);
        switch (e) {
        case 3:
            a._W(-4, r);
            break;
        case 5:
            a = ua(8);
            a._W(8, r, "f");
            break;
        case 11:
            a._W(4, r ? 1 : 0);
            break;
        case 64:
            a = xi(r);
            break;
        case 31:
            ;
        case 80:
            a = ua(4 + 2 * (r.length + 1) + (r.length % 2 ? 0 : 2));
            a._W(4, r.length + 1);
            a._W(0, r, "dbcs");
            while (a.l != a.length)
                a._W(1, 0);
            break;
        default:
            throw new Error("TypedPropertyValue unrecognized type " + e + " " + r);
        }
        return R([t, a])
    }
    function Vi(e, r) {
        var t = e.l;
        var a = e._R(4);
        var n = e._R(4);
        var i = []
          , s = 0;
        var f = 0;
        var l = -1
          , c = {};
        for (s = 0; s != n; ++s) {
            var h = e._R(4);
            var u = e._R(4);
            i[s] = [h, u + t]
        }
        i.sort(function(e, r) {
            return e[1] - r[1]
        });
        var d = {};
        for (s = 0; s != n; ++s) {
            if (e.l !== i[s][1]) {
                var v = true;
                if (s > 0 && r)
                    switch (r[i[s - 1][0]].t) {
                    case 2:
                        if (e.l + 2 === i[s][1]) {
                            e.l += 2;
                            v = false
                        }
                        break;
                    case 80:
                        if (e.l <= i[s][1]) {
                            e.l = i[s][1];
                            v = false
                        }
                        break;
                    case 4108:
                        if (e.l <= i[s][1]) {
                            e.l = i[s][1];
                            v = false
                        }
                        break;
                    }
                if ((!r || s == 0) && e.l <= i[s][1]) {
                    v = false;
                    e.l = i[s][1]
                }
                if (v)
                    throw new Error("Read Error: Expected address " + i[s][1] + " at " + e.l + " :" + s)
            }
            if (r) {
                var p = r[i[s][0]];
                d[p.n] = Hi(e, p.t, {
                    raw: true
                });
                if (p.p === "version")
                    d[p.n] = String(d[p.n] >> 16) + "." + ("0000" + String(d[p.n] & 65535)).slice(-4);
                if (p.n == "CodePage")
                    switch (d[p.n]) {
                    case 0:
                        d[p.n] = 1252;
                    case 874:
                        ;
                    case 932:
                        ;
                    case 936:
                        ;
                    case 949:
                        ;
                    case 950:
                        ;
                    case 1250:
                        ;
                    case 1251:
                        ;
                    case 1253:
                        ;
                    case 1254:
                        ;
                    case 1255:
                        ;
                    case 1256:
                        ;
                    case 1257:
                        ;
                    case 1258:
                        ;
                    case 1e4:
                        ;
                    case 1200:
                        ;
                    case 1201:
                        ;
                    case 1252:
                        ;
                    case 65e3:
                        ;
                    case -536:
                        ;
                    case 65001:
                        ;
                    case -535:
                        o(f = d[p.n] >>> 0 & 65535);
                        break;
                    default:
                        throw new Error("Unsupported CodePage: " + d[p.n]);
                    }
            } else {
                if (i[s][0] === 1) {
                    f = d.CodePage = Hi(e, An);
                    o(f);
                    if (l !== -1) {
                        var g = e.l;
                        e.l = i[l][1];
                        c = Ui(e, f);
                        e.l = g
                    }
                } else if (i[s][0] === 0) {
                    if (f === 0) {
                        l = s;
                        e.l = i[s + 1][1];
                        continue
                    }
                    c = Ui(e, f)
                } else {
                    var m = c[i[s][0]];
                    var b;
                    switch (e[e.l]) {
                    case 65:
                        e.l += 4;
                        b = Bi(e);
                        break;
                    case 30:
                        e.l += 4;
                        b = Ni(e, e[e.l - 4]).replace(/\u0000+$/, "");
                        break;
                    case 31:
                        e.l += 4;
                        b = Ni(e, e[e.l - 4]).replace(/\u0000+$/, "");
                        break;
                    case 3:
                        e.l += 4;
                        b = e._R(4, "i");
                        break;
                    case 19:
                        e.l += 4;
                        b = e._R(4);
                        break;
                    case 5:
                        e.l += 4;
                        b = e._R(8, "f");
                        break;
                    case 11:
                        e.l += 4;
                        b = Zi(e, 4);
                        break;
                    case 64:
                        e.l += 4;
                        b = gr(_i(e));
                        break;
                    default:
                        throw new Error("unparsed value: " + e[e.l]);
                    }
                    d[m] = b
                }
            }
        }
        e.l = t + a;
        return d
    }
    var Gi = ["CodePage", "Thumbnail", "_PID_LINKBASE", "_PID_HLINKS", "SystemIdentifier", "FMTID"];
    function ji(e) {
        switch (typeof e) {
        case "boolean":
            return 11;
        case "number":
            return (e | 0) == e ? 3 : 5;
        case "string":
            return 31;
        case "object":
            if (e instanceof Date)
                return 64;
            break;
        }
        return -1
    }
    function Xi(e, r, t) {
        var a = ua(8)
          , n = []
          , i = [];
        var s = 8
          , f = 0;
        var o = ua(8)
          , l = ua(8);
        o._W(4, 2);
        o._W(4, 1200);
        l._W(4, 1);
        i.push(o);
        n.push(l);
        s += 8 + o.length;
        if (!r) {
            l = ua(8);
            l._W(4, 0);
            n.unshift(l);
            var c = [ua(4)];
            c[0]._W(4, e.length);
            for (f = 0; f < e.length; ++f) {
                var h = e[f][0];
                o = ua(4 + 4 + 2 * (h.length + 1) + (h.length % 2 ? 0 : 2));
                o._W(4, f + 2);
                o._W(4, h.length + 1);
                o._W(0, h, "dbcs");
                while (o.l != o.length)
                    o._W(1, 0);
                c.push(o)
            }
            o = R(c);
            i.unshift(o);
            s += 8 + o.length
        }
        for (f = 0; f < e.length; ++f) {
            if (r && !r[e[f][0]])
                continue;
            if (Gi.indexOf(e[f][0]) > -1 || pi.indexOf(e[f][0]) > -1)
                continue;
            if (e[f][1] == null)
                continue;
            var u = e[f][1]
              , d = 0;
            if (r) {
                d = +r[e[f][0]];
                var v = t[d];
                if (v.p == "version" && typeof u == "string") {
                    var p = u.split(".");
                    u = (+p[0] << 16) + (+p[1] || 0)
                }
                o = zi(v.t, u)
            } else {
                var g = ji(u);
                if (g == -1) {
                    g = 31;
                    u = String(u)
                }
                o = zi(g, u)
            }
            i.push(o);
            l = ua(8);
            l._W(4, !r ? 2 + f : d);
            n.push(l);
            s += 8 + o.length
        }
        var m = 8 * (i.length + 1);
        for (f = 0; f < i.length; ++f) {
            n[f]._W(4, m);
            m += i[f].length
        }
        a._W(4, s);
        a._W(4, i.length);
        return R([a].concat(n).concat(i))
    }
    function $i(e, r, t) {
        var a = e.content;
        if (!a)
            return {};
        ca(a, 0);
        var n, i, s, f, o = 0;
        a.chk("feff", "Byte Order: ");
        a._R(2);
        var l = a._R(4);
        var c = a._R(16);
        if (c !== Ke.utils.consts.HEADER_CLSID && c !== t)
            throw new Error("Bad PropertySet CLSID " + c);
        n = a._R(4);
        if (n !== 1 && n !== 2)
            throw new Error("Unrecognized #Sets: " + n);
        i = a._R(16);
        f = a._R(4);
        if (n === 1 && f !== a.l)
            throw new Error("Length mismatch: " + f + " !== " + a.l);
        else if (n === 2) {
            s = a._R(16);
            o = a._R(4)
        }
        var h = Vi(a, r);
        var u = {
            SystemIdentifier: l
        };
        for (var d in h)
            u[d] = h[d];
        u.FMTID = i;
        if (n === 1)
            return u;
        if (o - a.l == 2)
            a.l += 2;
        if (a.l !== o)
            throw new Error("Length mismatch 2: " + a.l + " !== " + o);
        var v;
        try {
            v = Vi(a, null)
        } catch (p) {}
        for (d in v)
            u[d] = v[d];
        u.FMTID = [i, s];
        return u
    }
    function Yi(e, r, t, a, n, i) {
        var s = ua(n ? 68 : 48);
        var f = [s];
        s._W(2, 65534);
        s._W(2, 0);
        s._W(4, 842412599);
        s._W(16, Ke.utils.consts.HEADER_CLSID, "hex");
        s._W(4, n ? 2 : 1);
        s._W(16, r, "hex");
        s._W(4, n ? 68 : 48);
        var o = Xi(e, t, a);
        f.push(o);
        if (n) {
            var l = Xi(n, null, null);
            s._W(16, i, "hex");
            s._W(4, 68 + o.length);
            f.push(l)
        }
        return R(f)
    }
    function Ki(e, r) {
        e._R(r);
        return null
    }
    function Ji(e, r) {
        if (!r)
            r = ua(e);
        for (var t = 0; t < e; ++t)
            r._W(1, 0);
        return r
    }
    function qi(e, r, t) {
        var a = []
          , n = e.l + r;
        while (e.l < n)
            a.push(t(e, n - e.l));
        if (n !== e.l)
            throw new Error("Slurp error");
        return a
    }
    function Zi(e, r) {
        return e._R(r) === 1
    }
    function Qi(e, r) {
        if (!r)
            r = ua(2);
        r._W(2, +!!e);
        return r
    }
    function es(e) {
        return e._R(2, "u")
    }
    function rs(e, r) {
        if (!r)
            r = ua(2);
        r._W(2, e);
        return r
    }
    function ts(e, r) {
        return qi(e, r, es)
    }
    function as(e) {
        var r = e._R(1)
          , t = e._R(1);
        return t === 1 ? r : r === 1
    }
    function ns(e, r, t) {
        if (!t)
            t = ua(2);
        t._W(1, r == "e" ? +e : +!!e);
        t._W(1, r == "e" ? 1 : 0);
        return t
    }
    function is(e, t, a) {
        var n = e._R(a && a.biff >= 12 ? 2 : 1);
        var i = "sbcs-cont";
        var s = r;
        if (a && a.biff >= 8)
            r = 1200;
        if (!a || a.biff == 8) {
            var f = e._R(1);
            if (f) {
                i = "dbcs-cont"
            }
        } else if (a.biff == 12) {
            i = "wstr"
        }
        if (a.biff >= 2 && a.biff <= 5)
            i = "cpstr";
        var o = n ? e._R(n, i) : "";
        r = s;
        return o
    }
    function ss(e) {
        var t = r;
        r = 1200;
        var a = e._R(2)
          , n = e._R(1);
        var i = n & 4
          , s = n & 8;
        var f = 1 + (n & 1);
        var o = 0, l;
        var c = {};
        if (s)
            o = e._R(2);
        if (i)
            l = e._R(4);
        var h = f == 2 ? "dbcs-cont" : "sbcs-cont";
        var u = a === 0 ? "" : e._R(a, h);
        if (s)
            e.l += 4 * o;
        if (i)
            e.l += l;
        c.t = u;
        if (!s) {
            c.raw = "<t>" + c.t + "</t>";
            c.r = c.t
        }
        r = t;
        return c
    }
    function fs(e) {
        var r = e.t || ""
          , t = 1;
        var a = ua(3 + (t > 1 ? 2 : 0));
        a._W(2, r.length);
        a._W(1, (t > 1 ? 8 : 0) | 1);
        if (t > 1)
            a._W(2, t);
        var n = ua(2 * r.length);
        n._W(2 * r.length, r, "utf16le");
        var i = [a, n];
        return R(i)
    }
    function os(e, r, t) {
        var a;
        if (t) {
            if (t.biff >= 2 && t.biff <= 5)
                return e._R(r, "cpstr");
            if (t.biff >= 12)
                return e._R(r, "dbcs-cont")
        }
        var n = e._R(1);
        if (n === 0) {
            a = e._R(r, "sbcs-cont")
        } else {
            a = e._R(r, "dbcs-cont")
        }
        return a
    }
    function ls(e, r, t) {
        var a = e._R(t && t.biff == 2 ? 1 : 2);
        if (a === 0) {
            e.l++;
            return ""
        }
        return os(e, a, t)
    }
    function cs(e, r, t) {
        if (t.biff > 5)
            return ls(e, r, t);
        var a = e._R(1);
        if (a === 0) {
            e.l++;
            return ""
        }
        return e._R(a, t.biff <= 4 || !e.lens ? "cpstr" : "sbcs-cont")
    }
    function hs(e, r, t) {
        if (!t)
            t = ua(3 + 2 * e.length);
        t._W(2, e.length);
        t._W(1, 1);
        t._W(31, e, "utf16le");
        return t
    }
    function us(e) {
        var r = e._R(1);
        e.l++;
        var t = e._R(2);
        e.l += 2;
        return [r, t]
    }
    function ds(e) {
        var r = e._R(4)
          , t = e.l;
        var a = false;
        if (r > 24) {
            e.l += r - 24;
            if (e._R(16) === "795881f43b1d7f48af2c825dc4852763")
                a = true;
            e.l = t
        }
        var n = e._R((a ? r - 24 : r) >> 1, "utf16le").replace(N, "");
        if (a)
            e.l += 24;
        return n
    }
    function vs(e) {
        var r = e._R(2);
        var t = "";
        while (r-- > 0)
            t += "../";
        var a = e._R(0, "lpstr-ansi");
        e.l += 2;
        if (e._R(2) != 57005)
            throw new Error("Bad FileMoniker");
        var n = e._R(4);
        if (n === 0)
            return t + a.replace(/\\/g, "/");
        var i = e._R(4);
        if (e._R(2) != 3)
            throw new Error("Bad FileMoniker");
        var s = e._R(i >> 1, "utf16le").replace(N, "");
        return t + s
    }
    function ps(e, r) {
        var t = e._R(16);
        r -= 16;
        switch (t) {
        case "e0c9ea79f9bace118c8200aa004ba90b":
            return ds(e, r);
        case "0303000000000000c000000000000046":
            return vs(e, r);
        default:
            throw new Error("Unsupported Moniker " + t);
        }
    }
    function gs(e) {
        var r = e._R(4);
        var t = r > 0 ? e._R(r, "utf16le").replace(N, "") : "";
        return t
    }
    function ms(e, r) {
        if (!r)
            r = ua(6 + e.length * 2);
        r._W(4, 1 + e.length);
        for (var t = 0; t < e.length; ++t)
            r._W(2, e.charCodeAt(t));
        r._W(2, 0);
        return r
    }
    function bs(e, r) {
        var t = e.l + r;
        var a = e._R(4);
        if (a !== 2)
            throw new Error("Unrecognized streamVersion: " + a);
        var n = e._R(2);
        e.l += 2;
        var i, s, f, o, l = "", c, h;
        if (n & 16)
            i = gs(e, t - e.l);
        if (n & 128)
            s = gs(e, t - e.l);
        if ((n & 257) === 257)
            f = gs(e, t - e.l);
        if ((n & 257) === 1)
            o = ps(e, t - e.l);
        if (n & 8)
            l = gs(e, t - e.l);
        if (n & 32)
            c = e._R(16);
        if (n & 64)
            h = _i(e);
        e.l = t;
        var u = s || f || o || "";
        if (u && l)
            u += "#" + l;
        if (!u)
            u = "#" + l;
        if (n & 2 && u.charAt(0) == "/" && u.charAt(1) != "/")
            u = "file://" + u;
        var d = {
            Target: u
        };
        if (c)
            d.guid = c;
        if (h)
            d.time = h;
        if (i)
            d.Tooltip = i;
        return d
    }
    function ws(e) {
        var r = ua(512)
          , t = 0;
        var a = e.Target;
        if (a.slice(0, 7) == "file://")
            a = a.slice(7);
        var n = a.indexOf("#");
        var i = n > -1 ? 31 : 23;
        switch (a.charAt(0)) {
        case "#":
            i = 28;
            break;
        case ".":
            i &= ~2;
            break;
        }
        r._W(4, 2);
        r._W(4, i);
        var s = [8, 6815827, 6619237, 4849780, 83];
        for (t = 0; t < s.length; ++t)
            r._W(4, s[t]);
        if (i == 28) {
            a = a.slice(1);
            ms(a, r)
        } else if (i & 2) {
            s = "e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");
            for (t = 0; t < s.length; ++t)
                r._W(1, parseInt(s[t], 16));
            var f = n > -1 ? a.slice(0, n) : a;
            r._W(4, 2 * (f.length + 1));
            for (t = 0; t < f.length; ++t)
                r._W(2, f.charCodeAt(t));
            r._W(2, 0);
            if (i & 8)
                ms(n > -1 ? a.slice(n + 1) : "", r)
        } else {
            s = "03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46".split(" ");
            for (t = 0; t < s.length; ++t)
                r._W(1, parseInt(s[t], 16));
            var o = 0;
            while (a.slice(o * 3, o * 3 + 3) == "../" || a.slice(o * 3, o * 3 + 3) == "..\\")
                ++o;
            r._W(2, o);
            r._W(4, a.length - 3 * o + 1);
            for (t = 0; t < a.length - 3 * o; ++t)
                r._W(1, a.charCodeAt(t + 3 * o) & 255);
            r._W(1, 0);
            r._W(2, 65535);
            r._W(2, 57005);
            for (t = 0; t < 6; ++t)
                r._W(4, 0)
        }
        return r.slice(0, r.l)
    }
    function ks(e) {
        var r = e._R(1)
          , t = e._R(1)
          , a = e._R(1)
          , n = e._R(1);
        return [r, t, a, n]
    }
    function Ts(e, r) {
        var t = ks(e, r);
        t[3] = 0;
        return t
    }
    function As(e) {
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(2);
        return {
            r: r,
            c: t,
            ixfe: a
        }
    }
    function Es(e, r, t, a) {
        if (!a)
            a = ua(6);
        a._W(2, e);
        a._W(2, r);
        a._W(2, t || 0);
        return a
    }
    function Cs(e) {
        var r = e._R(2);
        var t = e._R(2);
        e.l += 8;
        return {
            type: r,
            flags: t
        }
    }
    function ys(e, r, t) {
        return r === 0 ? "" : cs(e, r, t)
    }
    function Ss(e, r, t) {
        var a = t.biff > 8 ? 4 : 2;
        var n = e._R(a)
          , i = e._R(a, "i")
          , s = e._R(a, "i");
        return [n, i, s]
    }
    function _s(e) {
        var r = e._R(2);
        var t = fn(e);
        return [r, t]
    }
    function xs(e, r, t) {
        e.l += 4;
        r -= 4;
        var a = e.l + r;
        var n = is(e, r, t);
        var i = e._R(2);
        a -= e.l;
        if (i !== a)
            throw new Error("Malformed AddinUdf: padding = " + a + " != " + i);
        e.l += i;
        return n
    }
    function Os(e) {
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(2);
        var n = e._R(2);
        return {
            s: {
                c: a,
                r: r
            },
            e: {
                c: n,
                r: t
            }
        }
    }
    function Rs(e, r) {
        if (!r)
            r = ua(8);
        r._W(2, e.s.r);
        r._W(2, e.e.r);
        r._W(2, e.s.c);
        r._W(2, e.e.c);
        return r
    }
    function Is(e) {
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(1);
        var n = e._R(1);
        return {
            s: {
                c: a,
                r: r
            },
            e: {
                c: n,
                r: t
            }
        }
    }
    var Ns = Is;
    function Ds(e) {
        e.l += 4;
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(2);
        e.l += 12;
        return [t, r, a]
    }
    function Fs(e) {
        var r = {};
        e.l += 4;
        e.l += 16;
        r.fSharedNote = e._R(2);
        e.l += 4;
        return r
    }
    function Ps(e) {
        var r = {};
        e.l += 4;
        e.cf = e._R(2);
        return r
    }
    function Ls(e) {
        e.l += 2;
        e.l += e._R(2)
    }
    var Ms = {
        0: Ls,
        4: Ls,
        5: Ls,
        6: Ls,
        7: Ps,
        8: Ls,
        9: Ls,
        10: Ls,
        11: Ls,
        12: Ls,
        13: Fs,
        14: Ls,
        15: Ls,
        16: Ls,
        17: Ls,
        18: Ls,
        19: Ls,
        20: Ls,
        21: Ds
    };
    function Us(e, r) {
        var t = e.l + r;
        var a = [];
        while (e.l < t) {
            var n = e._R(2);
            e.l -= 2;
            try {
                a.push(Ms[n](e, t - e.l))
            } catch (i) {
                e.l = t;
                return a
            }
        }
        if (e.l != t)
            e.l = t;
        return a
    }
    function Bs(e, r) {
        var t = {
            BIFFVer: 0,
            dt: 0
        };
        t.BIFFVer = e._R(2);
        r -= 2;
        if (r >= 2) {
            t.dt = e._R(2);
            e.l -= 2
        }
        switch (t.BIFFVer) {
        case 1536:
            ;
        case 1280:
            ;
        case 1024:
            ;
        case 768:
            ;
        case 512:
            ;
        case 2:
            ;
        case 7:
            break;
        default:
            if (r > 6)
                throw new Error("Unexpected BIFF Ver " + t.BIFFVer);
        }
        e._R(r);
        return t
    }
    function Ws(e, r, t) {
        var a = 1536
          , n = 16;
        switch (t.bookType) {
        case "biff8":
            break;
        case "biff5":
            a = 1280;
            n = 8;
            break;
        case "biff4":
            a = 4;
            n = 6;
            break;
        case "biff3":
            a = 3;
            n = 6;
            break;
        case "biff2":
            a = 2;
            n = 4;
            break;
        case "xla":
            break;
        default:
            throw new Error("unsupported BIFF version");
        }
        var i = ua(n);
        i._W(2, a);
        i._W(2, r);
        if (n > 4)
            i._W(2, 29282);
        if (n > 6)
            i._W(2, 1997);
        if (n > 8) {
            i._W(2, 49161);
            i._W(2, 1);
            i._W(2, 1798);
            i._W(2, 0)
        }
        return i
    }
    function Hs(e, r) {
        if (r === 0)
            return 1200;
        if (e._R(2) !== 1200) {}
        return 1200
    }
    function zs(e, r, t) {
        if (t.enc) {
            e.l += r;
            return ""
        }
        var a = e.l;
        var n = cs(e, 0, t);
        e._R(r + a - e.l);
        return n
    }
    function Vs(e, r) {
        var t = !r || r.biff == 8;
        var a = ua(t ? 112 : 54);
        a._W(r.biff == 8 ? 2 : 1, 7);
        if (t)
            a._W(1, 0);
        a._W(4, 859007059);
        a._W(4, 5458548 | (t ? 0 : 536870912));
        while (a.l < a.length)
            a._W(1, t ? 0 : 32);
        return a
    }
    function Gs(e, r, t) {
        var a = t && t.biff == 8 || r == 2 ? e._R(2) : (e.l += r,
        0);
        return {
            fDialog: a & 16,
            fBelow: a & 64,
            fRight: a & 128
        }
    }
    function js(e, r, t) {
        var a = e._R(4);
        var n = e._R(1) & 3;
        var i = e._R(1);
        switch (i) {
        case 0:
            i = "Worksheet";
            break;
        case 1:
            i = "Macrosheet";
            break;
        case 2:
            i = "Chartsheet";
            break;
        case 6:
            i = "VBAModule";
            break;
        }
        var s = is(e, 0, t);
        if (s.length === 0)
            s = "Sheet1";
        return {
            pos: a,
            hs: n,
            dt: i,
            name: s
        }
    }
    function Xs(e, r) {
        var t = !r || r.biff >= 8 ? 2 : 1;
        var a = ua(8 + t * e.name.length);
        a._W(4, e.pos);
        a._W(1, e.hs || 0);
        a._W(1, e.dt);
        a._W(1, e.name.length);
        if (r.biff >= 8)
            a._W(1, 1);
        a._W(t * e.name.length, e.name, r.biff < 8 ? "sbcs" : "utf16le");
        var n = a.slice(0, a.l);
        n.l = a.l;
        return n
    }
    function $s(e, r) {
        var t = e.l + r;
        var a = e._R(4);
        var n = e._R(4);
        var i = [];
        for (var s = 0; s != n && e.l < t; ++s) {
            i.push(ss(e))
        }
        i.Count = a;
        i.Unique = n;
        return i
    }
    function Ys(e, r) {
        var t = ua(8);
        t._W(4, e.Count);
        t._W(4, e.Unique);
        var a = [];
        for (var n = 0; n < e.length; ++n)
            a[n] = fs(e[n], r);
        var i = R([t].concat(a));
        i.parts = [t.length].concat(a.map(function(e) {
            return e.length
        }));
        return i
    }
    function Ks(e, r) {
        var t = {};
        t.dsst = e._R(2);
        e.l += r - 2;
        return t
    }
    function Js(e) {
        var r = {};
        r.r = e._R(2);
        r.c = e._R(2);
        r.cnt = e._R(2) - r.c;
        var t = e._R(2);
        e.l += 4;
        var a = e._R(1);
        e.l += 3;
        if (a & 7)
            r.level = a & 7;
        if (a & 32)
            r.hidden = true;
        if (a & 64)
            r.hpt = t / 20;
        return r
    }
    function qs(e) {
        var r = Cs(e);
        if (r.type != 2211)
            throw new Error("Invalid Future Record " + r.type);
        var t = e._R(4);
        return t !== 0
    }
    function Zs(e) {
        e._R(2);
        return e._R(4)
    }
    function Qs(e, r, t) {
        var a = 0;
        if (!(t && t.biff == 2)) {
            a = e._R(2)
        }
        var n = e._R(2);
        if (t && t.biff == 2) {
            a = 1 - (n >> 15);
            n &= 32767
        }
        var i = {
            Unsynced: a & 1,
            DyZero: (a & 2) >> 1,
            ExAsc: (a & 4) >> 2,
            ExDsc: (a & 8) >> 3
        };
        return [i, n]
    }
    function ef(e) {
        var r = e._R(2)
          , t = e._R(2)
          , a = e._R(2)
          , n = e._R(2);
        var i = e._R(2)
          , s = e._R(2)
          , f = e._R(2);
        var o = e._R(2)
          , l = e._R(2);
        return {
            Pos: [r, t],
            Dim: [a, n],
            Flags: i,
            CurTab: s,
            FirstTab: f,
            Selected: o,
            TabRatio: l
        }
    }
    function rf() {
        var e = ua(18);
        e._W(2, 0);
        e._W(2, 0);
        e._W(2, 29280);
        e._W(2, 17600);
        e._W(2, 56);
        e._W(2, 0);
        e._W(2, 0);
        e._W(2, 1);
        e._W(2, 500);
        return e
    }
    function tf(e, r, t) {
        if (t && t.biff >= 2 && t.biff < 5)
            return {};
        var a = e._R(2);
        return {
            RTL: a & 64
        }
    }
    function af(e) {
        var r = ua(18)
          , t = 1718;
        if (e && e.RTL)
            t |= 64;
        r._W(2, t);
        r._W(4, 0);
        r._W(4, 64);
        r._W(4, 0);
        r._W(4, 0);
        return r
    }
    function nf() {}
    function sf(e, r, t) {
        var a = {
            dyHeight: e._R(2),
            fl: e._R(2)
        };
        switch (t && t.biff || 8) {
        case 2:
            break;
        case 3:
            ;
        case 4:
            e.l += 2;
            break;
        default:
            e.l += 10;
            break;
        }
        a.name = is(e, 0, t);
        return a
    }
    function ff(e, r) {
        var t = e.name || "Arial";
        var a = r && r.biff == 5
          , n = a ? 15 + t.length : 16 + 2 * t.length;
        var i = ua(n);
        i._W(2, (e.sz || 12) * 20);
        i._W(4, 0);
        i._W(2, 400);
        i._W(4, 0);
        i._W(2, 0);
        i._W(1, t.length);
        if (!a)
            i._W(1, 1);
        i._W((a ? 1 : 2) * t.length, t, a ? "sbcs" : "utf16le");
        return i
    }
    function of(e) {
        var r = As(e);
        r.isst = e._R(4);
        return r
    }
    function lf(e, r, t, a) {
        var n = ua(10);
        Es(e, r, a, n);
        n._W(4, t);
        return n
    }
    function cf(e, r, t) {
        if (t.biffguess && t.biff == 2)
            t.biff = 5;
        var a = e.l + r;
        var n = As(e, 6);
        if (t.biff == 2)
            e.l++;
        var i = ls(e, a - e.l, t);
        n.val = i;
        return n
    }
    function hf(e, r, t, a, n) {
        var i = !n || n.biff == 8;
        var s = ua(6 + 2 + +i + (1 + i) * t.length);
        Es(e, r, a, s);
        s._W(2, t.length);
        if (i)
            s._W(1, 1);
        s._W((1 + i) * t.length, t, i ? "utf16le" : "sbcs");
        return s
    }
    function uf(e, r, t) {
        var a = e._R(2);
        var n = cs(e, 0, t);
        return [a, n]
    }
    function df(e, r, t, a) {
        var n = t && t.biff == 5;
        if (!a)
            a = ua(n ? 3 + r.length : 5 + 2 * r.length);
        a._W(2, e);
        a._W(n ? 1 : 2, r.length);
        if (!n)
            a._W(1, 1);
        a._W((n ? 1 : 2) * r.length, r, n ? "sbcs" : "utf16le");
        var i = a.length > a.l ? a.slice(0, a.l) : a;
        if (i.l == null)
            i.l = i.length;
        return i
    }
    var vf = cs;
    function pf(e, r, t) {
        var a = e.l + r;
        var n = t.biff == 8 || !t.biff ? 4 : 2;
        var i = e._R(n)
          , s = e._R(n);
        var f = e._R(2)
          , o = e._R(2);
        e.l = a;
        return {
            s: {
                r: i,
                c: f
            },
            e: {
                r: s,
                c: o
            }
        }
    }
    function gf(e, r) {
        var t = r.biff == 8 || !r.biff ? 4 : 2;
        var a = ua(2 * t + 6);
        a._W(t, e.s.r);
        a._W(t, e.e.r + 1);
        a._W(2, e.s.c);
        a._W(2, e.e.c + 1);
        a._W(2, 0);
        return a
    }
    function mf(e) {
        var r = e._R(2)
          , t = e._R(2);
        var a = _s(e);
        return {
            r: r,
            c: t,
            ixfe: a[0],
            rknum: a[1]
        }
    }
    function bf(e, r) {
        var t = e.l + r - 2;
        var a = e._R(2)
          , n = e._R(2);
        var i = [];
        while (e.l < t)
            i.push(_s(e));
        if (e.l !== t)
            throw new Error("MulRK read error");
        var s = e._R(2);
        if (i.length != s - n + 1)
            throw new Error("MulRK length mismatch");
        return {
            r: a,
            c: n,
            C: s,
            rkrec: i
        }
    }
    function wf(e, r) {
        var t = e.l + r - 2;
        var a = e._R(2)
          , n = e._R(2);
        var i = [];
        while (e.l < t)
            i.push(e._R(2));
        if (e.l !== t)
            throw new Error("MulBlank read error");
        var s = e._R(2);
        if (i.length != s - n + 1)
            throw new Error("MulBlank length mismatch");
        return {
            r: a,
            c: n,
            C: s,
            ixfe: i
        }
    }
    function kf(e, r, t, a) {
        var n = {};
        var i = e._R(4)
          , s = e._R(4);
        var f = e._R(4)
          , o = e._R(2);
        n.patternType = Wn[f >> 26];
        if (!a.cellStyles)
            return n;
        n.alc = i & 7;
        n.fWrap = i >> 3 & 1;
        n.alcV = i >> 4 & 7;
        n.fJustLast = i >> 7 & 1;
        n.trot = i >> 8 & 255;
        n.cIndent = i >> 16 & 15;
        n.fShrinkToFit = i >> 20 & 1;
        n.iReadOrder = i >> 22 & 2;
        n.fAtrNum = i >> 26 & 1;
        n.fAtrFnt = i >> 27 & 1;
        n.fAtrAlc = i >> 28 & 1;
        n.fAtrBdr = i >> 29 & 1;
        n.fAtrPat = i >> 30 & 1;
        n.fAtrProt = i >> 31 & 1;
        n.dgLeft = s & 15;
        n.dgRight = s >> 4 & 15;
        n.dgTop = s >> 8 & 15;
        n.dgBottom = s >> 12 & 15;
        n.icvLeft = s >> 16 & 127;
        n.icvRight = s >> 23 & 127;
        n.grbitDiag = s >> 30 & 3;
        n.icvTop = f & 127;
        n.icvBottom = f >> 7 & 127;
        n.icvDiag = f >> 14 & 127;
        n.dgDiag = f >> 21 & 15;
        n.icvFore = o & 127;
        n.icvBack = o >> 7 & 127;
        n.fsxButton = o >> 14 & 1;
        return n
    }
    function Tf(e, r, t) {
        var a = {};
        a.ifnt = e._R(2);
        a.numFmtId = e._R(2);
        a.flags = e._R(2);
        a.fStyle = a.flags >> 2 & 1;
        r -= 6;
        a.data = kf(e, r, a.fStyle, t);
        return a
    }
    function Af(e, r, t, a) {
        var n = t && t.biff == 5;
        if (!a)
            a = ua(n ? 16 : 20);
        a._W(2, 0);
        if (e.style) {
            a._W(2, e.numFmtId || 0);
            a._W(2, 65524)
        } else {
            a._W(2, e.numFmtId || 0);
            a._W(2, r << 4)
        }
        var i = 0;
        if (e.numFmtId > 0 && n)
            i |= 1024;
        a._W(4, i);
        a._W(4, 0);
        if (!n)
            a._W(4, 0);
        a._W(2, 0);
        return a
    }
    function Ef(e) {
        e.l += 4;
        var r = [e._R(2), e._R(2)];
        if (r[0] !== 0)
            r[0]--;
        if (r[1] !== 0)
            r[1]--;
        if (r[0] > 7 || r[1] > 7)
            throw new Error("Bad Gutters: " + r.join("|"));
        return r
    }
    function Cf(e) {
        var r = ua(8);
        r._W(4, 0);
        r._W(2, e[0] ? e[0] + 1 : 0);
        r._W(2, e[1] ? e[1] + 1 : 0);
        return r
    }
    function yf(e, r, t) {
        var a = As(e, 6);
        if (t.biff == 2 || r == 9)
            ++e.l;
        var n = as(e, 2);
        a.val = n;
        a.t = n === true || n === false ? "b" : "e";
        return a
    }
    function Sf(e, r, t, a, n, i) {
        var s = ua(8);
        Es(e, r, a, s);
        ns(t, i, s);
        return s
    }
    function _f(e, r, t) {
        if (t.biffguess && t.biff == 2)
            t.biff = 5;
        var a = As(e, 6);
        var n = dn(e, 8);
        a.val = n;
        return a
    }
    function xf(e, r, t, a) {
        var n = ua(14);
        Es(e, r, a, n);
        vn(t, n);
        return n
    }
    var Of = ys;
    function Rf(e, r, t) {
        var a = e.l + r;
        var n = e._R(2);
        var i = e._R(2);
        t.sbcch = i;
        if (i == 1025 || i == 14849)
            return [i, n];
        if (i < 1 || i > 255)
            throw new Error("Unexpected SupBook type: " + i);
        var s = os(e, i);
        var f = [];
        while (a > e.l)
            f.push(ls(e));
        return [i, n, s, f]
    }
    function If(e, r, t) {
        var a = e._R(2);
        var n;
        var i = {
            fBuiltIn: a & 1,
            fWantAdvise: a >>> 1 & 1,
            fWantPict: a >>> 2 & 1,
            fOle: a >>> 3 & 1,
            fOleLink: a >>> 4 & 1,
            cf: a >>> 5 & 1023,
            fIcon: a >>> 15 & 1
        };
        if (t.sbcch === 14849)
            n = xs(e, r - 2, t);
        i.body = n || e._R(r - 2);
        if (typeof n === "string")
            i.Name = n;
        return i
    }
    var Nf = ["_xlnm.Consolidate_Area", "_xlnm.Auto_Open", "_xlnm.Auto_Close", "_xlnm.Extract", "_xlnm.Database", "_xlnm.Criteria", "_xlnm.Print_Area", "_xlnm.Print_Titles", "_xlnm.Recorder", "_xlnm.Data_Form", "_xlnm.Auto_Activate", "_xlnm.Auto_Deactivate", "_xlnm.Sheet_Title", "_xlnm._FilterDatabase"];
    function Df(e, r, t) {
        var a = e.l + r;
        var n = e._R(2);
        var i = e._R(1);
        var s = e._R(1);
        var f = e._R(t && t.biff == 2 ? 1 : 2);
        var o = 0;
        if (!t || t.biff >= 5) {
            if (t.biff != 5)
                e.l += 2;
            o = e._R(2);
            if (t.biff == 5)
                e.l += 2;
            e.l += 4
        }
        var l = os(e, s, t);
        if (n & 32)
            l = Nf[l.charCodeAt(0)];
        var c = a - e.l;
        if (t && t.biff == 2)
            --c;
        var h = a == e.l || f === 0 || !(c > 0) ? [] : cd(e, c, t, f);
        return {
            chKey: i,
            Name: l,
            itab: o,
            rgce: h
        }
    }
    function Ff(e, r, t) {
        if (t.biff < 8)
            return Pf(e, r, t);
        var a = []
          , n = e.l + r
          , i = e._R(t.biff > 8 ? 4 : 2);
        while (i-- !== 0)
            a.push(Ss(e, t.biff > 8 ? 12 : 6, t));
        if (e.l != n)
            throw new Error("Bad ExternSheet: " + e.l + " != " + n);
        return a
    }
    function Pf(e, r, t) {
        if (e[e.l + 1] == 3)
            e[e.l]++;
        var a = is(e, r, t);
        return a.charCodeAt(0) == 3 ? a.slice(1) : a
    }
    function Lf(e, r, t) {
        if (t.biff < 8) {
            e.l += r;
            return
        }
        var a = e._R(2);
        var n = e._R(2);
        var i = os(e, a, t);
        var s = os(e, n, t);
        return [i, s]
    }
    function Mf(e, r, t) {
        var a = Is(e, 6);
        e.l++;
        var n = e._R(1);
        r -= 8;
        return [hd(e, r, t), n, a]
    }
    function Uf(e, r, t) {
        var a = Ns(e, 6);
        switch (t.biff) {
        case 2:
            e.l++;
            r -= 7;
            break;
        case 3:
            ;
        case 4:
            e.l += 2;
            r -= 8;
            break;
        default:
            e.l += 6;
            r -= 12;
        }
        return [a, od(e, r, t, a)]
    }
    function Bf(e) {
        var r = e._R(4) !== 0;
        var t = e._R(4) !== 0;
        var a = e._R(4);
        return [r, t, a]
    }
    function Wf(e, r, t) {
        if (t.biff < 8)
            return;
        var a = e._R(2)
          , n = e._R(2);
        var i = e._R(2)
          , s = e._R(2);
        var f = cs(e, 0, t);
        if (t.biff < 8)
            e._R(1);
        return [{
            r: a,
            c: n
        }, f, s, i]
    }
    function Hf(e, r, t) {
        return Wf(e, r, t)
    }
    function zf(e, r) {
        var t = [];
        var a = e._R(2);
        while (a--)
            t.push(Os(e, r));
        return t
    }
    function Vf(e) {
        var r = ua(2 + e.length * 8);
        r._W(2, e.length);
        for (var t = 0; t < e.length; ++t)
            Rs(e[t], r);
        return r
    }
    function Gf(e, r, t) {
        if (t && t.biff < 8)
            return Xf(e, r, t);
        var a = Ds(e, 22);
        var n = Us(e, r - 22, a[1]);
        return {
            cmo: a,
            ft: n
        }
    }
    var jf = {
        8: function(e, r) {
            var t = e.l + r;
            e.l += 10;
            var a = e._R(2);
            e.l += 4;
            e.l += 2;
            e.l += 2;
            e.l += 2;
            e.l += 4;
            var n = e._R(1);
            e.l += n;
            e.l = t;
            return {
                fmt: a
            }
        }
    };
    function Xf(e, r, t) {
        e.l += 4;
        var a = e._R(2);
        var n = e._R(2);
        var i = e._R(2);
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 2;
        e.l += 6;
        r -= 36;
        var s = [];
        s.push((jf[a] || ha)(e, r, t));
        return {
            cmo: [n, a, i],
            ft: s
        }
    }
    function $f(e, r, t) {
        var a = e.l;
        var n = "";
        try {
            e.l += 4;
            var i = (t.lastobj || {
                cmo: [0, 0]
            }).cmo[1];
            var s;
            if ([0, 5, 7, 11, 12, 14].indexOf(i) == -1)
                e.l += 6;
            else
                s = us(e, 6, t);
            var f = e._R(2);
            e._R(2);
            es(e, 2);
            var o = e._R(2);
            e.l += o;
            for (var l = 1; l < e.lens.length - 1; ++l) {
                if (e.l - a != e.lens[l])
                    throw new Error("TxO: bad continue record");
                var c = e[e.l];
                var h = os(e, e.lens[l + 1] - e.lens[l] - 1);
                n += h;
                if (n.length >= (c ? f : 2 * f))
                    break
            }
            if (n.length !== f && n.length !== f * 2) {
                throw new Error("cchText: " + f + " != " + n.length)
            }
            e.l = a + r;
            return {
                t: n
            }
        } catch (u) {
            e.l = a + r;
            return {
                t: n
            }
        }
    }
    function Yf(e, r) {
        var t = Os(e, 8);
        e.l += 16;
        var a = bs(e, r - 24);
        return [t, a]
    }
    function Kf(e) {
        var r = ua(24);
        var t = Oa(e[0]);
        r._W(2, t.r);
        r._W(2, t.r);
        r._W(2, t.c);
        r._W(2, t.c);
        var a = "d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");
        for (var n = 0; n < 16; ++n)
            r._W(1, parseInt(a[n], 16));
        return R([r, ws(e[1])])
    }
    function Jf(e, r) {
        e._R(2);
        var t = Os(e, 8);
        var a = e._R((r - 10) / 2, "dbcs-cont");
        a = a.replace(N, "");
        return [t, a]
    }
    function qf(e) {
        var r = e[1].Tooltip;
        var t = ua(10 + 2 * (r.length + 1));
        t._W(2, 2048);
        var a = Oa(e[0]);
        t._W(2, a.r);
        t._W(2, a.r);
        t._W(2, a.c);
        t._W(2, a.c);
        for (var n = 0; n < r.length; ++n)
            t._W(2, r.charCodeAt(n));
        t._W(2, 0);
        return t
    }
    function Zf(e) {
        var r = [0, 0], t;
        t = e._R(2);
        r[0] = Bn[t] || t;
        t = e._R(2);
        r[1] = Bn[t] || t;
        return r
    }
    function Qf(e) {
        if (!e)
            e = ua(4);
        e._W(2, 1);
        e._W(2, 1);
        return e
    }
    function eo(e) {
        var r = e._R(2);
        var t = [];
        while (r-- > 0)
            t.push(Ts(e, 8));
        return t
    }
    function ro(e) {
        var r = e._R(2);
        var t = [];
        while (r-- > 0)
            t.push(Ts(e, 8));
        return t
    }
    function to(e) {
        e.l += 2;
        var r = {
            cxfs: 0,
            crc: 0
        };
        r.cxfs = e._R(2);
        r.crc = e._R(4);
        return r
    }
    function ao(e, r, t) {
        if (!t.cellStyles)
            return ha(e, r);
        var a = t && t.biff >= 12 ? 4 : 2;
        var n = e._R(a);
        var i = e._R(a);
        var s = e._R(a);
        var f = e._R(a);
        var o = e._R(2);
        if (a == 2)
            e.l += 2;
        var l = {
            s: n,
            e: i,
            w: s,
            ixfe: f,
            flags: o
        };
        if (t.biff >= 5 || !t.biff)
            l.level = o >> 8 & 7;
        return l
    }
    function no(e, r) {
        var t = ua(12);
        t._W(2, r);
        t._W(2, r);
        t._W(2, e.width * 256);
        t._W(2, 0);
        var a = 0;
        if (e.hidden)
            a |= 1;
        t._W(1, a);
        a = e.level || 0;
        t._W(1, a);
        t._W(2, 0);
        return t
    }
    function io(e, r) {
        var t = {};
        if (r < 32)
            return t;
        e.l += 16;
        t.header = dn(e, 8);
        t.footer = dn(e, 8);
        e.l += 2;
        return t
    }
    function so(e, r, t) {
        var a = {
            area: false
        };
        if (t.biff != 5) {
            e.l += r;
            return a
        }
        var n = e._R(1);
        e.l += 3;
        if (n & 16)
            a.area = true;
        return a
    }
    function fo(e) {
        var r = ua(2 * e);
        for (var t = 0; t < e; ++t)
            r._W(2, t + 1);
        return r
    }
    var oo = As;
    var lo = ts;
    var co = ls;
    function ho(e) {
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(4);
        var n = {
            fmt: r,
            env: t,
            len: a,
            data: e.slice(e.l, e.l + a)
        };
        e.l += a;
        return n
    }
    function uo(e, r, t) {
        if (t.biffguess && t.biff == 5)
            t.biff = 2;
        var a = As(e, 6);
        ++e.l;
        var n = cs(e, r - 7, t);
        a.t = "str";
        a.val = n;
        return a
    }
    function vo(e) {
        var r = As(e, 6);
        ++e.l;
        var t = dn(e, 8);
        r.t = "n";
        r.val = t;
        return r
    }
    function po(e, r, t) {
        var a = ua(15);
        km(a, e, r);
        a._W(8, t, "f");
        return a
    }
    function go(e) {
        var r = As(e, 6);
        ++e.l;
        var t = e._R(2);
        r.t = "n";
        r.val = t;
        return r
    }
    function mo(e, r, t) {
        var a = ua(9);
        km(a, e, r);
        a._W(2, t);
        return a
    }
    function bo(e) {
        var r = e._R(1);
        if (r === 0) {
            e.l++;
            return ""
        }
        return e._R(r, "sbcs-cont")
    }
    function wo(e, r) {
        e.l += 6;
        e.l += 2;
        e.l += 1;
        e.l += 3;
        e.l += 1;
        e.l += r - 13
    }
    function ko(e, r, t) {
        var a = e.l + r;
        var n = As(e, 6);
        var i = e._R(2);
        var s = os(e, i, t);
        e.l = a;
        n.t = "str";
        n.val = s;
        return n
    }
    var To = [2, 3, 48, 49, 131, 139, 140, 245];
    var Ao = function() {
        var e = {
            1: 437,
            2: 850,
            3: 1252,
            4: 1e4,
            100: 852,
            101: 866,
            102: 865,
            103: 861,
            104: 895,
            105: 620,
            106: 737,
            107: 857,
            120: 950,
            121: 949,
            122: 936,
            123: 932,
            124: 874,
            125: 1255,
            126: 1256,
            150: 10007,
            151: 10029,
            152: 10006,
            200: 1250,
            201: 1251,
            202: 1254,
            203: 1253,
            0: 20127,
            8: 865,
            9: 437,
            10: 850,
            11: 437,
            13: 437,
            14: 850,
            15: 437,
            16: 850,
            17: 437,
            18: 850,
            19: 932,
            20: 850,
            21: 437,
            22: 850,
            23: 865,
            24: 437,
            25: 437,
            26: 850,
            27: 437,
            28: 863,
            29: 850,
            31: 852,
            34: 852,
            35: 852,
            36: 860,
            37: 850,
            38: 866,
            55: 850,
            64: 852,
            77: 936,
            78: 949,
            79: 950,
            80: 874,
            87: 1252,
            88: 1252,
            89: 1252,
            108: 863,
            134: 737,
            135: 852,
            136: 857,
            204: 1257,
            255: 16969
        };
        var r = ar({
            1: 437,
            2: 850,
            3: 1252,
            4: 1e4,
            100: 852,
            101: 866,
            102: 865,
            103: 861,
            104: 895,
            105: 620,
            106: 737,
            107: 857,
            120: 950,
            121: 949,
            122: 936,
            123: 932,
            124: 874,
            125: 1255,
            126: 1256,
            150: 10007,
            151: 10029,
            152: 10006,
            200: 1250,
            201: 1251,
            202: 1254,
            203: 1253,
            0: 20127
        });
        function n(r, t) {
            var n = [];
            var i = E(1);
            switch (t.type) {
            case "base64":
                i = y(k(r));
                break;
            case "binary":
                i = y(r);
                break;
            case "buffer":
                ;
            case "array":
                i = r;
                break;
            }
            ca(i, 0);
            var s = i._R(1);
            var f = !!(s & 136);
            var o = false
              , l = false;
            switch (s) {
            case 2:
                break;
            case 3:
                break;
            case 48:
                o = true;
                f = true;
                break;
            case 49:
                o = true;
                f = true;
                break;
            case 131:
                break;
            case 139:
                break;
            case 140:
                l = true;
                break;
            case 245:
                break;
            default:
                throw new Error("DBF Unsupported Version: " + s.toString(16));
            }
            var c = 0
              , h = 521;
            if (s == 2)
                c = i._R(2);
            i.l += 3;
            if (s != 2)
                c = i._R(4);
            if (c > 1048576)
                c = 1e6;
            if (s != 2)
                h = i._R(2);
            var u = i._R(2);
            var d = t.codepage || 1252;
            if (s != 2) {
                i.l += 16;
                i._R(1);
                if (i[i.l] !== 0)
                    d = e[i[i.l]];
                i.l += 1;
                i.l += 2
            }
            if (l)
                i.l += 36;
            var v = []
              , p = {};
            var g = Math.min(i.length, s == 2 ? 521 : h - 10 - (o ? 264 : 0));
            var m = l ? 32 : 11;
            while (i.l < g && i[i.l] != 13) {
                p = {};
                p.name = a.utils.decode(d, i.slice(i.l, i.l + m)).replace(/[\u0000\r\n].*$/g, "");
                i.l += m;
                p.type = String.fromCharCode(i._R(1));
                if (s != 2 && !l)
                    p.offset = i._R(4);
                p.len = i._R(1);
                if (s == 2)
                    p.offset = i._R(2);
                p.dec = i._R(1);
                if (p.name.length)
                    v.push(p);
                if (s != 2)
                    i.l += l ? 13 : 14;
                switch (p.type) {
                case "B":
                    if ((!o || p.len != 8) && t.WTF)
                        console.log("Skipping " + p.name + ":" + p.type);
                    break;
                case "G":
                    ;
                case "P":
                    if (t.WTF)
                        console.log("Skipping " + p.name + ":" + p.type);
                    break;
                case "+":
                    ;
                case "0":
                    ;
                case "@":
                    ;
                case "C":
                    ;
                case "D":
                    ;
                case "F":
                    ;
                case "I":
                    ;
                case "L":
                    ;
                case "M":
                    ;
                case "N":
                    ;
                case "O":
                    ;
                case "T":
                    ;
                case "Y":
                    break;
                default:
                    throw new Error("Unknown Field Type: " + p.type);
                }
            }
            if (i[i.l] !== 13)
                i.l = h - 1;
            if (i._R(1) !== 13)
                throw new Error("DBF Terminator not found " + i.l + " " + i[i.l]);
            i.l = h;
            var b = 0
              , w = 0;
            n[0] = [];
            for (w = 0; w != v.length; ++w)
                n[0][w] = v[w].name;
            while (c-- > 0) {
                if (i[i.l] === 42) {
                    i.l += u;
                    continue
                }
                ++i.l;
                n[++b] = [];
                w = 0;
                for (w = 0; w != v.length; ++w) {
                    var T = i.slice(i.l, i.l + v[w].len);
                    i.l += v[w].len;
                    ca(T, 0);
                    var A = a.utils.decode(d, T);
                    switch (v[w].type) {
                    case "C":
                        if (A.trim().length)
                            n[b][w] = A.replace(/\s+$/, "");
                        break;
                    case "D":
                        if (A.length === 8)
                            n[b][w] = new Date(+A.slice(0, 4),+A.slice(4, 6) - 1,+A.slice(6, 8));
                        else
                            n[b][w] = A;
                        break;
                    case "F":
                        n[b][w] = parseFloat(A.trim());
                        break;
                    case "+":
                        ;
                    case "I":
                        n[b][w] = l ? T._R(-4, "i") ^ 2147483648 : T._R(4, "i");
                        break;
                    case "L":
                        switch (A.trim().toUpperCase()) {
                        case "Y":
                            ;
                        case "T":
                            n[b][w] = true;
                            break;
                        case "N":
                            ;
                        case "F":
                            n[b][w] = false;
                            break;
                        case "":
                            ;
                        case "?":
                            break;
                        default:
                            throw new Error("DBF Unrecognized L:|" + A + "|");
                        }
                        break;
                    case "M":
                        if (!f)
                            throw new Error("DBF Unexpected MEMO for type " + s.toString(16));
                        n[b][w] = "##MEMO##" + (l ? parseInt(A.trim(), 10) : T._R(4));
                        break;
                    case "N":
                        A = A.replace(/\u0000/g, "").trim();
                        if (A && A != ".")
                            n[b][w] = +A || 0;
                        break;
                    case "@":
                        n[b][w] = new Date(T._R(-8, "f") - 621356832e5);
                        break;
                    case "T":
                        n[b][w] = new Date((T._R(4) - 2440588) * 864e5 + T._R(4));
                        break;
                    case "Y":
                        n[b][w] = T._R(4, "i") / 1e4 + T._R(4, "i") / 1e4 * Math.pow(2, 32);
                        break;
                    case "O":
                        n[b][w] = -T._R(-8, "f");
                        break;
                    case "B":
                        if (o && v[w].len == 8) {
                            n[b][w] = T._R(8, "f");
                            break
                        }
                        ;
                    case "G":
                        ;
                    case "P":
                        T.l += v[w].len;
                        break;
                    case "0":
                        if (v[w].name === "_NullFlags")
                            break;
                    default:
                        throw new Error("DBF Unsupported data type " + v[w].type);
                    }
                }
            }
            if (s != 2)
                if (i.l < i.length && i[i.l++] != 26)
                    throw new Error("DBF EOF Marker missing " + (i.l - 1) + " of " + i.length + " " + i[i.l - 1].toString(16));
            if (t && t.sheetRows)
                n = n.slice(0, t.sheetRows);
            t.DBF = v;
            return n
        }
        function i(e, r) {
            var t = r || {};
            if (!t.dateNF)
                t.dateNF = "yyyymmdd";
            var a = Ua(n(e, t), t);
            a["!cols"] = t.DBF.map(function(e) {
                return {
                    wch: e.len,
                    DBF: e
                }
            });
            delete t.DBF;
            return a
        }
        function s(e, r) {
            try {
                return La(i(e, r), r)
            } catch (t) {
                if (r && r.WTF)
                    throw t
            }
            return {
                SheetNames: [],
                Sheets: {}
            }
        }
        var f = {
            B: 8,
            C: 250,
            L: 1,
            D: 8,
            "?": 0,
            "": 0
        };
        function l(e, a) {
            var n = a || {};
            if (+n.codepage >= 0)
                o(+n.codepage);
            if (n.type == "string")
                throw new Error("Cannot write DBF to JS string");
            var i = va();
            var s = Aw(e, {
                header: 1,
                raw: true,
                cellDates: true
            });
            var l = s[0]
              , c = s.slice(1)
              , h = e["!cols"] || [];
            var u = 0
              , d = 0
              , v = 0
              , p = 1;
            for (u = 0; u < l.length; ++u) {
                if (((h[u] || {}).DBF || {}).name) {
                    l[u] = h[u].DBF.name;
                    ++v;
                    continue
                }
                if (l[u] == null)
                    continue;
                ++v;
                if (typeof l[u] === "number")
                    l[u] = l[u].toString(10);
                if (typeof l[u] !== "string")
                    throw new Error("DBF Invalid column name " + l[u] + " |" + typeof l[u] + "|");
                if (l.indexOf(l[u]) !== u)
                    for (d = 0; d < 1024; ++d)
                        if (l.indexOf(l[u] + "_" + d) == -1) {
                            l[u] += "_" + d;
                            break
                        }
            }
            var g = Da(e["!ref"]);
            var m = [];
            var b = [];
            var w = [];
            for (u = 0; u <= g.e.c - g.s.c; ++u) {
                var k = ""
                  , T = ""
                  , A = 0;
                var E = [];
                for (d = 0; d < c.length; ++d) {
                    if (c[d][u] != null)
                        E.push(c[d][u])
                }
                if (E.length == 0 || l[u] == null) {
                    m[u] = "?";
                    continue
                }
                for (d = 0; d < E.length; ++d) {
                    switch (typeof E[d]) {
                    case "number":
                        T = "B";
                        break;
                    case "string":
                        T = "C";
                        break;
                    case "boolean":
                        T = "L";
                        break;
                    case "object":
                        T = E[d]instanceof Date ? "D" : "C";
                        break;
                    default:
                        T = "C";
                    }
                    A = Math.max(A, String(E[d]).length);
                    k = k && k != T ? "C" : T
                }
                if (A > 250)
                    A = 250;
                T = ((h[u] || {}).DBF || {}).type;
                if (T == "C") {
                    if (h[u].DBF.len > A)
                        A = h[u].DBF.len
                }
                if (k == "B" && T == "N") {
                    k = "N";
                    w[u] = h[u].DBF.dec;
                    A = h[u].DBF.len
                }
                b[u] = k == "C" || T == "N" ? A : f[k] || 0;
                p += b[u];
                m[u] = k
            }
            var C = i.next(32);
            C._W(4, 318902576);
            C._W(4, c.length);
            C._W(2, 296 + 32 * v);
            C._W(2, p);
            for (u = 0; u < 4; ++u)
                C._W(4, 0);
            C._W(4, 0 | (+r[t] || 3) << 8);
            for (u = 0,
            d = 0; u < l.length; ++u) {
                if (l[u] == null)
                    continue;
                var y = i.next(32);
                var S = (l[u].slice(-10) + "\0\0\0\0\0\0\0\0\0\0\0").slice(0, 11);
                y._W(1, S, "sbcs");
                y._W(1, m[u] == "?" ? "C" : m[u], "sbcs");
                y._W(4, d);
                y._W(1, b[u] || f[m[u]] || 0);
                y._W(1, w[u] || 0);
                y._W(1, 2);
                y._W(4, 0);
                y._W(1, 0);
                y._W(4, 0);
                y._W(4, 0);
                d += b[u] || f[m[u]] || 0
            }
            var _ = i.next(264);
            _._W(4, 13);
            for (u = 0; u < 65; ++u)
                _._W(4, 0);
            for (u = 0; u < c.length; ++u) {
                var x = i.next(p);
                x._W(1, 0);
                for (d = 0; d < l.length; ++d) {
                    if (l[d] == null)
                        continue;
                    switch (m[d]) {
                    case "L":
                        x._W(1, c[u][d] == null ? 63 : c[u][d] ? 84 : 70);
                        break;
                    case "B":
                        x._W(8, c[u][d] || 0, "f");
                        break;
                    case "N":
                        var O = "0";
                        if (typeof c[u][d] == "number")
                            O = c[u][d].toFixed(w[d] || 0);
                        for (v = 0; v < b[d] - O.length; ++v)
                            x._W(1, 32);
                        x._W(1, O, "sbcs");
                        break;
                    case "D":
                        if (!c[u][d])
                            x._W(8, "00000000", "sbcs");
                        else {
                            x._W(4, ("0000" + c[u][d].getFullYear()).slice(-4), "sbcs");
                            x._W(2, ("00" + (c[u][d].getMonth() + 1)).slice(-2), "sbcs");
                            x._W(2, ("00" + c[u][d].getDate()).slice(-2), "sbcs")
                        }
                        break;
                    case "C":
                        var R = String(c[u][d] != null ? c[u][d] : "").slice(0, b[d]);
                        x._W(1, R, "sbcs");
                        for (v = 0; v < b[d] - R.length; ++v)
                            x._W(1, 32);
                        break;
                    }
                }
            }
            i.next(1)._W(1, 26);
            return i.end()
        }
        return {
            to_workbook: s,
            to_sheet: i,
            from_sheet: l
        }
    }();
    var Eo = function() {
        var e = {
            AA: "À",
            BA: "Á",
            CA: "Â",
            DA: 195,
            HA: "Ä",
            JA: 197,
            AE: "È",
            BE: "É",
            CE: "Ê",
            HE: "Ë",
            AI: "Ì",
            BI: "Í",
            CI: "Î",
            HI: "Ï",
            AO: "Ò",
            BO: "Ó",
            CO: "Ô",
            DO: 213,
            HO: "Ö",
            AU: "Ù",
            BU: "Ú",
            CU: "Û",
            HU: "Ü",
            Aa: "à",
            Ba: "á",
            Ca: "â",
            Da: 227,
            Ha: "ä",
            Ja: 229,
            Ae: "è",
            Be: "é",
            Ce: "ê",
            He: "ë",
            Ai: "ì",
            Bi: "í",
            Ci: "î",
            Hi: "ï",
            Ao: "ò",
            Bo: "ó",
            Co: "ô",
            Do: 245,
            Ho: "ö",
            Au: "ù",
            Bu: "ú",
            Cu: "û",
            Hu: "ü",
            KC: "Ç",
            Kc: "ç",
            q: "æ",
            z: "œ",
            a: "Æ",
            j: "Œ",
            DN: 209,
            Dn: 241,
            Hy: 255,
            S: 169,
            c: 170,
            R: 174,
            "B ": 180,
            0: 176,
            1: 177,
            2: 178,
            3: 179,
            5: 181,
            6: 182,
            7: 183,
            Q: 185,
            k: 186,
            b: 208,
            i: 216,
            l: 222,
            s: 240,
            y: 248,
            "!": 161,
            '"': 162,
            "#": 163,
            "(": 164,
            "%": 165,
            "'": 167,
            "H ": 168,
            "+": 171,
            ";": 187,
            "<": 188,
            "=": 189,
            ">": 190,
            "?": 191,
            "{": 223
        };
        var r = new RegExp("N(" + rr(e).join("|").replace(/\|\|\|/, "|\\||").replace(/([?()+])/g, "\\$1") + "|\\|)","gm");
        var t = function(r, t) {
            var a = e[t];
            return typeof a == "number" ? p(a) : a
        };
        var n = function(e, r, t) {
            var a = r.charCodeAt(0) - 32 << 4 | t.charCodeAt(0) - 48;
            return a == 59 ? e : p(a)
        };
        e["|"] = 254;
        function i(e, r) {
            switch (r.type) {
            case "base64":
                return s(k(e), r);
            case "binary":
                return s(e, r);
            case "buffer":
                return s(T && Buffer.isBuffer(e) ? e.toString("binary") : _(e), r);
            case "array":
                return s(mr(e), r);
            }
            throw new Error("Unrecognized type " + r.type)
        }
        function s(e, i) {
            var s = e.split(/[\n\r]+/)
              , f = -1
              , l = -1
              , c = 0
              , h = 0
              , u = [];
            var d = [];
            var v = null;
            var p = {}
              , g = []
              , m = []
              , b = [];
            var w = 0, k;
            if (+i.codepage >= 0)
                o(+i.codepage);
            for (; c !== s.length; ++c) {
                w = 0;
                var T = s[c].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g, n).replace(r, t);
                var A = T.replace(/;;/g, "\0").split(";").map(function(e) {
                    return e.replace(/\u0000/g, ";")
                });
                var E = A[0], C;
                if (T.length > 0)
                    switch (E) {
                    case "ID":
                        break;
                    case "E":
                        break;
                    case "B":
                        break;
                    case "O":
                        break;
                    case "W":
                        break;
                    case "P":
                        if (A[1].charAt(0) == "P")
                            d.push(T.slice(3).replace(/;;/g, ";"));
                        break;
                    case "C":
                        var y = false
                          , S = false
                          , _ = false
                          , x = false
                          , O = -1
                          , R = -1;
                        for (h = 1; h < A.length; ++h)
                            switch (A[h].charAt(0)) {
                            case "A":
                                break;
                            case "X":
                                l = parseInt(A[h].slice(1)) - 1;
                                S = true;
                                break;
                            case "Y":
                                f = parseInt(A[h].slice(1)) - 1;
                                if (!S)
                                    l = 0;
                                for (k = u.length; k <= f; ++k)
                                    u[k] = [];
                                break;
                            case "K":
                                C = A[h].slice(1);
                                if (C.charAt(0) === '"')
                                    C = C.slice(1, C.length - 1);
                                else if (C === "TRUE")
                                    C = true;
                                else if (C === "FALSE")
                                    C = false;
                                else if (!isNaN(kr(C))) {
                                    C = kr(C);
                                    if (v !== null && Fe(v))
                                        C = hr(C)
                                } else if (!isNaN(Ar(C).getDate())) {
                                    C = gr(C)
                                }
                                if (typeof a !== "undefined" && typeof C == "string" && (i || {}).type != "string" && (i || {}).codepage)
                                    C = a.utils.decode(i.codepage, C);
                                y = true;
                                break;
                            case "E":
                                x = true;
                                var I = Sh(A[h].slice(1), {
                                    r: f,
                                    c: l
                                });
                                u[f][l] = [u[f][l], I];
                                break;
                            case "S":
                                _ = true;
                                u[f][l] = [u[f][l], "S5S"];
                                break;
                            case "G":
                                break;
                            case "R":
                                O = parseInt(A[h].slice(1)) - 1;
                                break;
                            case "C":
                                R = parseInt(A[h].slice(1)) - 1;
                                break;
                            default:
                                if (i && i.WTF)
                                    throw new Error("SYLK bad record " + T);
                            }
                        if (y) {
                            if (u[f][l] && u[f][l].length == 2)
                                u[f][l][0] = C;
                            else
                                u[f][l] = C;
                            v = null
                        }
                        if (_) {
                            if (x)
                                throw new Error("SYLK shared formula cannot have own formula");
                            var N = O > -1 && u[O][R];
                            if (!N || !N[1])
                                throw new Error("SYLK shared formula cannot find base");
                            u[f][l][1] = Oh(N[1], {
                                r: f - O,
                                c: l - R
                            })
                        }
                        break;
                    case "F":
                        var D = 0;
                        for (h = 1; h < A.length; ++h)
                            switch (A[h].charAt(0)) {
                            case "X":
                                l = parseInt(A[h].slice(1)) - 1;
                                ++D;
                                break;
                            case "Y":
                                f = parseInt(A[h].slice(1)) - 1;
                                for (k = u.length; k <= f; ++k)
                                    u[k] = [];
                                break;
                            case "M":
                                w = parseInt(A[h].slice(1)) / 20;
                                break;
                            case "F":
                                break;
                            case "G":
                                break;
                            case "P":
                                v = d[parseInt(A[h].slice(1))];
                                break;
                            case "S":
                                break;
                            case "D":
                                break;
                            case "N":
                                break;
                            case "W":
                                b = A[h].slice(1).split(" ");
                                for (k = parseInt(b[0], 10); k <= parseInt(b[1], 10); ++k) {
                                    w = parseInt(b[2], 10);
                                    m[k - 1] = w === 0 ? {
                                        hidden: true
                                    } : {
                                        wch: w
                                    };
                                    Il(m[k - 1])
                                }
                                break;
                            case "C":
                                l = parseInt(A[h].slice(1)) - 1;
                                if (!m[l])
                                    m[l] = {};
                                break;
                            case "R":
                                f = parseInt(A[h].slice(1)) - 1;
                                if (!g[f])
                                    g[f] = {};
                                if (w > 0) {
                                    g[f].hpt = w;
                                    g[f].hpx = Pl(w)
                                } else if (w === 0)
                                    g[f].hidden = true;
                                break;
                            default:
                                if (i && i.WTF)
                                    throw new Error("SYLK bad record " + T);
                            }
                        if (D < 1)
                            v = null;
                        break;
                    default:
                        if (i && i.WTF)
                            throw new Error("SYLK bad record " + T);
                    }
            }
            if (g.length > 0)
                p["!rows"] = g;
            if (m.length > 0)
                p["!cols"] = m;
            if (i && i.sheetRows)
                u = u.slice(0, i.sheetRows);
            return [u, p]
        }
        function f(e, r) {
            var t = i(e, r);
            var a = t[0]
              , n = t[1];
            var s = Ua(a, r);
            rr(n).forEach(function(e) {
                s[e] = n[e]
            });
            return s
        }
        function l(e, r) {
            return La(f(e, r), r)
        }
        function c(e, r, t, a) {
            var n = "C;Y" + (t + 1) + ";X" + (a + 1) + ";K";
            switch (e.t) {
            case "n":
                n += e.v || 0;
                if (e.f && !e.F)
                    n += ";E" + xh(e.f, {
                        r: t,
                        c: a
                    });
                break;
            case "b":
                n += e.v ? "TRUE" : "FALSE";
                break;
            case "e":
                n += e.w || e.v;
                break;
            case "d":
                n += '"' + (e.w || e.v) + '"';
                break;
            case "s":
                n += '"' + e.v.replace(/"/g, "").replace(/;/g, ";;") + '"';
                break;
            }
            return n
        }
        function h(e, r) {
            r.forEach(function(r, t) {
                var a = "F;W" + (t + 1) + " " + (t + 1) + " ";
                if (r.hidden)
                    a += "0";
                else {
                    if (typeof r.width == "number" && !r.wpx)
                        r.wpx = Sl(r.width);
                    if (typeof r.wpx == "number" && !r.wch)
                        r.wch = _l(r.wpx);
                    if (typeof r.wch == "number")
                        a += Math.round(r.wch)
                }
                if (a.charAt(a.length - 1) != " ")
                    e.push(a)
            })
        }
        function u(e, r) {
            r.forEach(function(r, t) {
                var a = "F;";
                if (r.hidden)
                    a += "M0;";
                else if (r.hpt)
                    a += "M" + 20 * r.hpt + ";";
                else if (r.hpx)
                    a += "M" + 20 * Fl(r.hpx) + ";";
                if (a.length > 2)
                    e.push(a + "R" + (t + 1))
            })
        }
        function d(e, r) {
            var t = ["ID;PWXL;N;E"]
              , a = [];
            var n = Da(e["!ref"]), i;
            var s = Array.isArray(e);
            var f = "\r\n";
            t.push("P;PGeneral");
            t.push("F;P0;DG0G8;M255");
            if (e["!cols"])
                h(t, e["!cols"]);
            if (e["!rows"])
                u(t, e["!rows"]);
            t.push("B;Y" + (n.e.r - n.s.r + 1) + ";X" + (n.e.c - n.s.c + 1) + ";D" + [n.s.c, n.s.r, n.e.c, n.e.r].join(" "));
            for (var o = n.s.r; o <= n.e.r; ++o) {
                for (var l = n.s.c; l <= n.e.c; ++l) {
                    var d = Ra({
                        r: o,
                        c: l
                    });
                    i = s ? (e[o] || [])[l] : e[d];
                    if (!i || i.v == null && (!i.f || i.F))
                        continue;
                    a.push(c(i, e, o, l, r))
                }
            }
            return t.join(f) + f + a.join(f) + f + "E" + f
        }
        return {
            to_workbook: l,
            to_sheet: f,
            from_sheet: d
        }
    }();
    var Co = function() {
        function e(e, t) {
            switch (t.type) {
            case "base64":
                return r(k(e), t);
            case "binary":
                return r(e, t);
            case "buffer":
                return r(T && Buffer.isBuffer(e) ? e.toString("binary") : _(e), t);
            case "array":
                return r(mr(e), t);
            }
            throw new Error("Unrecognized type " + t.type)
        }
        function r(e, r) {
            var t = e.split("\n")
              , a = -1
              , n = -1
              , i = 0
              , s = [];
            for (; i !== t.length; ++i) {
                if (t[i].trim() === "BOT") {
                    s[++a] = [];
                    n = 0;
                    continue
                }
                if (a < 0)
                    continue;
                var f = t[i].trim().split(",");
                var o = f[0]
                  , l = f[1];
                ++i;
                var c = t[i] || "";
                while ((c.match(/["]/g) || []).length & 1 && i < t.length - 1)
                    c += "\n" + t[++i];
                c = c.trim();
                switch (+o) {
                case -1:
                    if (c === "BOT") {
                        s[++a] = [];
                        n = 0;
                        continue
                    } else if (c !== "EOD")
                        throw new Error("Unrecognized DIF special command " + c);
                    break;
                case 0:
                    if (c === "TRUE")
                        s[a][n] = true;
                    else if (c === "FALSE")
                        s[a][n] = false;
                    else if (!isNaN(kr(l)))
                        s[a][n] = kr(l);
                    else if (!isNaN(Ar(l).getDate()))
                        s[a][n] = gr(l);
                    else
                        s[a][n] = l;
                    ++n;
                    break;
                case 1:
                    c = c.slice(1, c.length - 1);
                    c = c.replace(/""/g, '"');
                    if (m && c && c.match(/^=".*"$/))
                        c = c.slice(2, -1);
                    s[a][n++] = c !== "" ? c : null;
                    break;
                }
                if (c === "EOD")
                    break
            }
            if (r && r.sheetRows)
                s = s.slice(0, r.sheetRows);
            return s
        }
        function t(r, t) {
            return Ua(e(r, t), t)
        }
        function a(e, r) {
            return La(t(e, r), r)
        }
        var n = function() {
            var e = function t(e, r, a, n, i) {
                e.push(r);
                e.push(a + "," + n);
                e.push('"' + i.replace(/"/g, '""') + '"')
            };
            var r = function a(e, r, t, n) {
                e.push(r + "," + t);
                e.push(r == 1 ? '"' + n.replace(/"/g, '""') + '"' : n)
            };
            return function n(t) {
                var a = [];
                var n = Da(t["!ref"]), i;
                var s = Array.isArray(t);
                e(a, "TABLE", 0, 1, "sheetjs");
                e(a, "VECTORS", 0, n.e.r - n.s.r + 1, "");
                e(a, "TUPLES", 0, n.e.c - n.s.c + 1, "");
                e(a, "DATA", 0, 0, "");
                for (var f = n.s.r; f <= n.e.r; ++f) {
                    r(a, -1, 0, "BOT");
                    for (var o = n.s.c; o <= n.e.c; ++o) {
                        var l = Ra({
                            r: f,
                            c: o
                        });
                        i = s ? (t[f] || [])[o] : t[l];
                        if (!i) {
                            r(a, 1, 0, "");
                            continue
                        }
                        switch (i.t) {
                        case "n":
                            var c = m ? i.w : i.v;
                            if (!c && i.v != null)
                                c = i.v;
                            if (c == null) {
                                if (m && i.f && !i.F)
                                    r(a, 1, 0, "=" + i.f);
                                else
                                    r(a, 1, 0, "")
                            } else
                                r(a, 0, c, "V");
                            break;
                        case "b":
                            r(a, 0, i.v ? 1 : 0, i.v ? "TRUE" : "FALSE");
                            break;
                        case "s":
                            r(a, 1, 0, !m || isNaN(i.v) ? i.v : '="' + i.v + '"');
                            break;
                        case "d":
                            if (!i.w)
                                i.w = Be(i.z || X[14], fr(gr(i.v)));
                            if (m)
                                r(a, 0, i.w, "V");
                            else
                                r(a, 1, 0, i.w);
                            break;
                        default:
                            r(a, 1, 0, "");
                        }
                    }
                }
                r(a, -1, 0, "EOD");
                var h = "\r\n";
                var u = a.join(h);
                return u
            }
        }();
        return {
            to_workbook: a,
            to_sheet: t,
            from_sheet: n
        }
    }();
    var yo = function() {
        function e(e) {
            return e.replace(/\\b/g, "\\").replace(/\\c/g, ":").replace(/\\n/g, "\n")
        }
        function r(e) {
            return e.replace(/\\/g, "\\b").replace(/:/g, "\\c").replace(/\n/g, "\\n")
        }
        function t(r, t) {
            var a = r.split("\n")
              , n = -1
              , i = -1
              , s = 0
              , f = [];
            for (; s !== a.length; ++s) {
                var o = a[s].trim().split(":");
                if (o[0] !== "cell")
                    continue;
                var l = Oa(o[1]);
                if (f.length <= l.r)
                    for (n = f.length; n <= l.r; ++n)
                        if (!f[n])
                            f[n] = [];
                n = l.r;
                i = l.c;
                switch (o[2]) {
                case "t":
                    f[n][i] = e(o[3]);
                    break;
                case "v":
                    f[n][i] = +o[3];
                    break;
                case "vtf":
                    var c = o[o.length - 1];
                case "vtc":
                    switch (o[3]) {
                    case "nl":
                        f[n][i] = +o[4] ? true : false;
                        break;
                    default:
                        f[n][i] = +o[4];
                        break;
                    }
                    if (o[2] == "vtf")
                        f[n][i] = [f[n][i], c];
                }
            }
            if (t && t.sheetRows)
                f = f.slice(0, t.sheetRows);
            return f
        }
        function a(e, r) {
            return Ua(t(e, r), r)
        }
        function n(e, r) {
            return La(a(e, r), r)
        }
        var i = ["socialcalc:version:1.5", "MIME-Version: 1.0", "Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join("\n");
        var s = ["--SocialCalcSpreadsheetControlSave", "Content-type: text/plain; charset=UTF-8"].join("\n") + "\n";
        var f = ["# SocialCalc Spreadsheet Control Save", "part:sheet"].join("\n");
        var o = "--SocialCalcSpreadsheetControlSave--";
        function l(e) {
            if (!e || !e["!ref"])
                return "";
            var t = [], a = [], n, i = "";
            var s = Ia(e["!ref"]);
            var f = Array.isArray(e);
            for (var o = s.s.r; o <= s.e.r; ++o) {
                for (var l = s.s.c; l <= s.e.c; ++l) {
                    i = Ra({
                        r: o,
                        c: l
                    });
                    n = f ? (e[o] || [])[l] : e[i];
                    if (!n || n.v == null || n.t === "z")
                        continue;
                    a = ["cell", i, "t"];
                    switch (n.t) {
                    case "s":
                        ;
                    case "str":
                        a.push(r(n.v));
                        break;
                    case "n":
                        if (!n.f) {
                            a[2] = "v";
                            a[3] = n.v
                        } else {
                            a[2] = "vtf";
                            a[3] = "n";
                            a[4] = n.v;
                            a[5] = r(n.f)
                        }
                        break;
                    case "b":
                        a[2] = "vt" + (n.f ? "f" : "c");
                        a[3] = "nl";
                        a[4] = n.v ? "1" : "0";
                        a[5] = r(n.f || (n.v ? "TRUE" : "FALSE"));
                        break;
                    case "d":
                        var c = fr(gr(n.v));
                        a[2] = "vtc";
                        a[3] = "nd";
                        a[4] = "" + c;
                        a[5] = n.w || Be(n.z || X[14], c);
                        break;
                    case "e":
                        continue;
                    }
                    t.push(a.join(":"))
                }
            }
            t.push("sheet:c:" + (s.e.c - s.s.c + 1) + ":r:" + (s.e.r - s.s.r + 1) + ":tvf:1");
            t.push("valueformat:1:text-wiki");
            return t.join("\n")
        }
        function c(e) {
            return [i, s, f, s, l(e), o].join("\n")
        }
        return {
            to_workbook: n,
            to_sheet: a,
            from_sheet: c
        }
    }();
    var So = function() {
        function e(e, r, t, a, n) {
            if (n.raw)
                r[t][a] = e;
            else if (e === "") {} else if (e === "TRUE")
                r[t][a] = true;
            else if (e === "FALSE")
                r[t][a] = false;
            else if (!isNaN(kr(e)))
                r[t][a] = kr(e);
            else if (!isNaN(Ar(e).getDate()))
                r[t][a] = gr(e);
            else
                r[t][a] = e
        }
        function r(r, t) {
            var a = t || {};
            var n = [];
            if (!r || r.length === 0)
                return n;
            var i = r.split(/[\r\n]/);
            var s = i.length - 1;
            while (s >= 0 && i[s].length === 0)
                --s;
            var f = 10
              , o = 0;
            var l = 0;
            for (; l <= s; ++l) {
                o = i[l].indexOf(" ");
                if (o == -1)
                    o = i[l].length;
                else
                    o++;
                f = Math.max(f, o)
            }
            for (l = 0; l <= s; ++l) {
                n[l] = [];
                var c = 0;
                e(i[l].slice(0, f).trim(), n, l, c, a);
                for (c = 1; c <= (i[l].length - f) / 10 + 1; ++c)
                    e(i[l].slice(f + (c - 1) * 10, f + c * 10).trim(), n, l, c, a)
            }
            if (a.sheetRows)
                n = n.slice(0, a.sheetRows);
            return n
        }
        var t = {
            44: ",",
            9: "\t",
            59: ";",
            124: "|"
        };
        var n = {
            44: 3,
            9: 2,
            59: 1,
            124: 0
        };
        function i(e) {
            var r = {}
              , a = false
              , i = 0
              , s = 0;
            for (; i < e.length; ++i) {
                if ((s = e.charCodeAt(i)) == 34)
                    a = !a;
                else if (!a && s in t)
                    r[s] = (r[s] || 0) + 1
            }
            s = [];
            for (i in r)
                if (Object.prototype.hasOwnProperty.call(r, i)) {
                    s.push([r[i], i])
                }
            if (!s.length) {
                r = n;
                for (i in r)
                    if (Object.prototype.hasOwnProperty.call(r, i)) {
                        s.push([r[i], i])
                    }
            }
            s.sort(function(e, r) {
                return e[0] - r[0] || n[e[1]] - n[r[1]]
            });
            return t[s.pop()[1]] || 44
        }
        function s(e, r) {
            var t = r || {};
            var a = "";
            if (g != null && t.dense == null)
                t.dense = g;
            var n = t.dense ? [] : {};
            var s = {
                s: {
                    c: 0,
                    r: 0
                },
                e: {
                    c: 0,
                    r: 0
                }
            };
            if (e.slice(0, 4) == "sep=") {
                if (e.charCodeAt(5) == 13 && e.charCodeAt(6) == 10) {
                    a = e.charAt(4);
                    e = e.slice(7)
                } else if (e.charCodeAt(5) == 13 || e.charCodeAt(5) == 10) {
                    a = e.charAt(4);
                    e = e.slice(6)
                } else
                    a = i(e.slice(0, 1024))
            } else if (t && t.FS)
                a = t.FS;
            else
                a = i(e.slice(0, 1024));
            var f = 0
              , o = 0
              , l = 0;
            var c = 0
              , h = 0
              , u = a.charCodeAt(0)
              , d = false
              , v = 0
              , p = e.charCodeAt(0);
            e = e.replace(/\r\n/gm, "\n");
            var m = t.dateNF != null ? Xe(t.dateNF) : null;
            function b() {
                var r = e.slice(c, h);
                var a = {};
                if (r.charAt(0) == '"' && r.charAt(r.length - 1) == '"')
                    r = r.slice(1, -1).replace(/""/g, '"');
                if (r.length === 0)
                    a.t = "z";
                else if (t.raw) {
                    a.t = "s";
                    a.v = r
                } else if (r.trim().length === 0) {
                    a.t = "s";
                    a.v = r
                } else if (r.charCodeAt(0) == 61) {
                    if (r.charCodeAt(1) == 34 && r.charCodeAt(r.length - 1) == 34) {
                        a.t = "s";
                        a.v = r.slice(2, -1).replace(/""/g, '"')
                    } else if (Ih(r)) {
                        a.t = "n";
                        a.f = r.slice(1)
                    } else {
                        a.t = "s";
                        a.v = r
                    }
                } else if (r == "TRUE") {
                    a.t = "b";
                    a.v = true
                } else if (r == "FALSE") {
                    a.t = "b";
                    a.v = false
                } else if (!isNaN(l = kr(r))) {
                    a.t = "n";
                    if (t.cellText !== false)
                        a.w = r;
                    a.v = l
                } else if (!isNaN(Ar(r).getDate()) || m && r.match(m)) {
                    a.z = t.dateNF || X[14];
                    var i = 0;
                    if (m && r.match(m)) {
                        r = $e(r, t.dateNF, r.match(m) || []);
                        i = 1
                    }
                    if (t.cellDates) {
                        a.t = "d";
                        a.v = gr(r, i)
                    } else {
                        a.t = "n";
                        a.v = fr(gr(r, i))
                    }
                    if (t.cellText !== false)
                        a.w = Be(a.z, a.v instanceof Date ? fr(a.v) : a.v);
                    if (!t.cellNF)
                        delete a.z
                } else {
                    a.t = "s";
                    a.v = r
                }
                if (a.t == "z") {} else if (t.dense) {
                    if (!n[f])
                        n[f] = [];
                    n[f][o] = a
                } else
                    n[Ra({
                        c: o,
                        r: f
                    })] = a;
                c = h + 1;
                p = e.charCodeAt(c);
                if (s.e.c < o)
                    s.e.c = o;
                if (s.e.r < f)
                    s.e.r = f;
                if (v == u)
                    ++o;
                else {
                    o = 0;
                    ++f;
                    if (t.sheetRows && t.sheetRows <= f)
                        return true
                }
            }
            e: for (; h < e.length; ++h)
                switch (v = e.charCodeAt(h)) {
                case 34:
                    if (p === 34)
                        d = !d;
                    break;
                case u:
                    ;
                case 10:
                    ;
                case 13:
                    if (!d && b())
                        break e;
                    break;
                default:
                    break;
                }
            if (h - c > 0)
                b();
            n["!ref"] = Na(s);
            return n
        }
        function f(e, t) {
            if (!(t && t.PRN))
                return s(e, t);
            if (t.FS)
                return s(e, t);
            if (e.slice(0, 4) == "sep=")
                return s(e, t);
            if (e.indexOf("\t") >= 0 || e.indexOf(",") >= 0 || e.indexOf(";") >= 0)
                return s(e, t);
            return Ua(r(e, t), t)
        }
        function o(e, r) {
            var t = ""
              , n = r.type == "string" ? [0, 0, 0, 0] : qb(e, r);
            switch (r.type) {
            case "base64":
                t = k(e);
                break;
            case "binary":
                t = e;
                break;
            case "buffer":
                if (r.codepage == 65001)
                    t = e.toString("utf8");
                else if (r.codepage && typeof a !== "undefined")
                    t = a.utils.decode(r.codepage, e);
                else
                    t = T && Buffer.isBuffer(e) ? e.toString("binary") : _(e);
                break;
            case "array":
                t = mr(e);
                break;
            case "string":
                t = e;
                break;
            default:
                throw new Error("Unrecognized type " + r.type);
            }
            if (n[0] == 239 && n[1] == 187 && n[2] == 191)
                t = lt(t.slice(3));
            else if (r.type != "string" && r.type != "buffer" && r.codepage == 65001)
                t = lt(t);
            else if (r.type == "binary" && typeof a !== "undefined" && r.codepage)
                t = a.utils.decode(r.codepage, a.utils.encode(28591, t));
            if (t.slice(0, 19) == "socialcalc:version:")
                return yo.to_sheet(r.type == "string" ? t : lt(t), r);
            return f(t, r)
        }
        function l(e, r) {
            return La(o(e, r), r)
        }
        function c(e) {
            var r = [];
            var t = Da(e["!ref"]), a;
            var n = Array.isArray(e);
            for (var i = t.s.r; i <= t.e.r; ++i) {
                var s = [];
                for (var f = t.s.c; f <= t.e.c; ++f) {
                    var o = Ra({
                        r: i,
                        c: f
                    });
                    a = n ? (e[i] || [])[f] : e[o];
                    if (!a || a.v == null) {
                        s.push("          ");
                        continue
                    }
                    var l = (a.w || (Pa(a),
                    a.w) || "").slice(0, 10);
                    while (l.length < 10)
                        l += " ";
                    s.push(l + (f === 0 ? " " : ""))
                }
                r.push(s.join(""))
            }
            return r.join("\n")
        }
        return {
            to_workbook: l,
            to_sheet: o,
            from_sheet: c
        }
    }();
    function _o(e, r) {
        var t = r || {}
          , a = !!t.WTF;
        t.WTF = true;
        try {
            var n = Eo.to_workbook(e, t);
            t.WTF = a;
            return n
        } catch (i) {
            t.WTF = a;
            if (!i.message.match(/SYLK bad record ID/) && a)
                throw i;
            return So.to_workbook(e, r)
        }
    }
    var xo = function() {
        function e(e, r, t) {
            if (!e)
                return;
            ca(e, e.l || 0);
            var a = t.Enum || W;
            while (e.l < e.length) {
                var n = e._R(2);
                var i = a[n] || a[65535];
                var s = e._R(2);
                var f = e.l + s;
                var o = i.f && i.f(e, s, t);
                e.l = f;
                if (r(o, i, n))
                    return
            }
        }
        function r(e, r) {
            switch (r.type) {
            case "base64":
                return t(y(k(e)), r);
            case "binary":
                return t(y(e), r);
            case "buffer":
                ;
            case "array":
                return t(e, r);
            }
            throw "Unsupported type " + r.type
        }
        function t(r, t) {
            if (!r)
                return r;
            var a = t || {};
            if (g != null && a.dense == null)
                a.dense = g;
            var n = a.dense ? [] : {}
              , i = "Sheet1"
              , s = ""
              , f = 0;
            var o = {}
              , l = []
              , c = [];
            var h = {
                s: {
                    r: 0,
                    c: 0
                },
                e: {
                    r: 0,
                    c: 0
                }
            };
            var u = a.sheetRows || 0;
            if (r[2] == 0) {
                if (r[3] == 8 || r[3] == 9) {
                    if (r.length >= 16 && r[14] == 5 && r[15] === 108)
                        throw new Error("Unsupported Works 3 for Mac file")
                }
            }
            if (r[2] == 2) {
                a.Enum = W;
                e(r, function(e, r, t) {
                    switch (t) {
                    case 0:
                        a.vers = e;
                        if (e >= 4096)
                            a.qpro = true;
                        break;
                    case 6:
                        h = e;
                        break;
                    case 204:
                        if (e)
                            s = e;
                        break;
                    case 222:
                        s = e;
                        break;
                    case 15:
                        ;
                    case 51:
                        if (!a.qpro)
                            e[1].v = e[1].v.slice(1);
                    case 13:
                        ;
                    case 14:
                        ;
                    case 16:
                        if (t == 14 && (e[2] & 112) == 112 && (e[2] & 15) > 1 && (e[2] & 15) < 15) {
                            e[1].z = a.dateNF || X[14];
                            if (a.cellDates) {
                                e[1].t = "d";
                                e[1].v = hr(e[1].v)
                            }
                        }
                        if (a.qpro) {
                            if (e[3] > f) {
                                n["!ref"] = Na(h);
                                o[i] = n;
                                l.push(i);
                                n = a.dense ? [] : {};
                                h = {
                                    s: {
                                        r: 0,
                                        c: 0
                                    },
                                    e: {
                                        r: 0,
                                        c: 0
                                    }
                                };
                                f = e[3];
                                i = s || "Sheet" + (f + 1);
                                s = ""
                            }
                        }
                        var c = a.dense ? (n[e[0].r] || [])[e[0].c] : n[Ra(e[0])];
                        if (c) {
                            c.t = e[1].t;
                            c.v = e[1].v;
                            if (e[1].z != null)
                                c.z = e[1].z;
                            if (e[1].f != null)
                                c.f = e[1].f;
                            break
                        }
                        if (a.dense) {
                            if (!n[e[0].r])
                                n[e[0].r] = [];
                            n[e[0].r][e[0].c] = e[1]
                        } else
                            n[Ra(e[0])] = e[1];
                        break;
                    default:
                        ;
                    }
                }, a)
            } else if (r[2] == 26 || r[2] == 14) {
                a.Enum = H;
                if (r[2] == 14) {
                    a.qpro = true;
                    r.l = 0
                }
                e(r, function(e, r, t) {
                    switch (t) {
                    case 204:
                        i = e;
                        break;
                    case 22:
                        e[1].v = e[1].v.slice(1);
                    case 23:
                        ;
                    case 24:
                        ;
                    case 25:
                        ;
                    case 37:
                        ;
                    case 39:
                        ;
                    case 40:
                        if (e[3] > f) {
                            n["!ref"] = Na(h);
                            o[i] = n;
                            l.push(i);
                            n = a.dense ? [] : {};
                            h = {
                                s: {
                                    r: 0,
                                    c: 0
                                },
                                e: {
                                    r: 0,
                                    c: 0
                                }
                            };
                            f = e[3];
                            i = "Sheet" + (f + 1)
                        }
                        if (u > 0 && e[0].r >= u)
                            break;
                        if (a.dense) {
                            if (!n[e[0].r])
                                n[e[0].r] = [];
                            n[e[0].r][e[0].c] = e[1]
                        } else
                            n[Ra(e[0])] = e[1];
                        if (h.e.c < e[0].c)
                            h.e.c = e[0].c;
                        if (h.e.r < e[0].r)
                            h.e.r = e[0].r;
                        break;
                    case 27:
                        if (e[14e3])
                            c[e[14e3][0]] = e[14e3][1];
                        break;
                    case 1537:
                        c[e[0]] = e[1];
                        if (e[0] == f)
                            i = e[1];
                        break;
                    default:
                        break;
                    }
                }, a)
            } else
                throw new Error("Unrecognized LOTUS BOF " + r[2]);
            n["!ref"] = Na(h);
            o[s || i] = n;
            l.push(s || i);
            if (!c.length)
                return {
                    SheetNames: l,
                    Sheets: o
                };
            var d = {}
              , v = [];
            for (var p = 0; p < c.length; ++p)
                if (o[l[p]]) {
                    v.push(c[p] || l[p]);
                    d[c[p]] = o[c[p]] || o[l[p]]
                } else {
                    v.push(c[p]);
                    d[c[p]] = {
                        "!ref": "A1"
                    }
                }
            return {
                SheetNames: v,
                Sheets: d
            }
        }
        function a(e, r) {
            var t = r || {};
            if (+t.codepage >= 0)
                o(+t.codepage);
            if (t.type == "string")
                throw new Error("Cannot write WK1 to JS string");
            var a = va();
            var n = Da(e["!ref"]);
            var s = Array.isArray(e);
            var f = [];
            bm(a, 0, i(1030));
            bm(a, 6, l(n));
            var c = Math.min(n.e.r, 8191);
            for (var h = n.s.r; h <= c; ++h) {
                var d = Ta(h);
                for (var p = n.s.c; p <= n.e.c; ++p) {
                    if (h === n.s.r)
                        f[p] = ya(p);
                    var g = f[p] + d;
                    var b = s ? (e[h] || [])[p] : e[g];
                    if (!b || b.t == "z")
                        continue;
                    if (b.t == "n") {
                        if ((b.v | 0) == b.v && b.v >= -32768 && b.v <= 32767)
                            bm(a, 13, v(h, p, b.v));
                        else
                            bm(a, 14, m(h, p, b.v))
                    } else {
                        var w = Pa(b);
                        bm(a, 15, u(h, p, w.slice(0, 239)))
                    }
                }
            }
            bm(a, 1);
            return a.end()
        }
        function n(e, r) {
            var t = r || {};
            if (+t.codepage >= 0)
                o(+t.codepage);
            if (t.type == "string")
                throw new Error("Cannot write WK3 to JS string");
            var a = va();
            bm(a, 0, s(e));
            for (var n = 0, i = 0; n < e.SheetNames.length; ++n)
                if ((e.Sheets[e.SheetNames[n]] || {})["!ref"])
                    bm(a, 27, B(e.SheetNames[n], i++));
            var f = 0;
            for (n = 0; n < e.SheetNames.length; ++n) {
                var l = e.Sheets[e.SheetNames[n]];
                if (!l || !l["!ref"])
                    continue;
                var c = Da(l["!ref"]);
                var h = Array.isArray(l);
                var u = [];
                var d = Math.min(c.e.r, 8191);
                for (var v = c.s.r; v <= d; ++v) {
                    var p = Ta(v);
                    for (var g = c.s.c; g <= c.e.c; ++g) {
                        if (v === c.s.r)
                            u[g] = ya(g);
                        var m = u[g] + p;
                        var b = h ? (l[v] || [])[g] : l[m];
                        if (!b || b.t == "z")
                            continue;
                        if (b.t == "n") {
                            bm(a, 23, R(v, g, f, b.v))
                        } else {
                            var w = Pa(b);
                            bm(a, 22, _(v, g, f, w.slice(0, 239)))
                        }
                    }
                }
                ++f
            }
            bm(a, 1);
            return a.end()
        }
        function i(e) {
            var r = ua(2);
            r._W(2, e);
            return r
        }
        function s(e) {
            var r = ua(26);
            r._W(2, 4096);
            r._W(2, 4);
            r._W(4, 0);
            var t = 0
              , a = 0
              , n = 0;
            for (var i = 0; i < e.SheetNames.length; ++i) {
                var s = e.SheetNames[i];
                var f = e.Sheets[s];
                if (!f || !f["!ref"])
                    continue;
                ++n;
                var o = Ia(f["!ref"]);
                if (t < o.e.r)
                    t = o.e.r;
                if (a < o.e.c)
                    a = o.e.c
            }
            if (t > 8191)
                t = 8191;
            r._W(2, t);
            r._W(1, n);
            r._W(1, a);
            r._W(2, 0);
            r._W(2, 0);
            r._W(1, 1);
            r._W(1, 2);
            r._W(4, 0);
            r._W(4, 0);
            return r
        }
        function f(e, r, t) {
            var a = {
                s: {
                    c: 0,
                    r: 0
                },
                e: {
                    c: 0,
                    r: 0
                }
            };
            if (r == 8 && t.qpro) {
                a.s.c = e._R(1);
                e.l++;
                a.s.r = e._R(2);
                a.e.c = e._R(1);
                e.l++;
                a.e.r = e._R(2);
                return a
            }
            a.s.c = e._R(2);
            a.s.r = e._R(2);
            if (r == 12 && t.qpro)
                e.l += 2;
            a.e.c = e._R(2);
            a.e.r = e._R(2);
            if (r == 12 && t.qpro)
                e.l += 2;
            if (a.s.c == 65535)
                a.s.c = a.e.c = a.s.r = a.e.r = 0;
            return a
        }
        function l(e) {
            var r = ua(8);
            r._W(2, e.s.c);
            r._W(2, e.s.r);
            r._W(2, e.e.c);
            r._W(2, e.e.r);
            return r
        }
        function c(e, r, t) {
            var a = [{
                c: 0,
                r: 0
            }, {
                t: "n",
                v: 0
            }, 0, 0];
            if (t.qpro && t.vers != 20768) {
                a[0].c = e._R(1);
                a[3] = e._R(1);
                a[0].r = e._R(2);
                e.l += 2
            } else {
                a[2] = e._R(1);
                a[0].c = e._R(2);
                a[0].r = e._R(2)
            }
            return a
        }
        function h(e, r, t) {
            var a = e.l + r;
            var n = c(e, r, t);
            n[1].t = "s";
            if (t.vers == 20768) {
                e.l++;
                var i = e._R(1);
                n[1].v = e._R(i, "utf8");
                return n
            }
            if (t.qpro)
                e.l++;
            n[1].v = e._R(a - e.l, "cstr");
            return n
        }
        function u(e, r, t) {
            var a = ua(7 + t.length);
            a._W(1, 255);
            a._W(2, r);
            a._W(2, e);
            a._W(1, 39);
            for (var n = 0; n < a.length; ++n) {
                var i = t.charCodeAt(n);
                a._W(1, i >= 128 ? 95 : i)
            }
            a._W(1, 0);
            return a
        }
        function d(e, r, t) {
            var a = c(e, r, t);
            a[1].v = e._R(2, "i");
            return a
        }
        function v(e, r, t) {
            var a = ua(7);
            a._W(1, 255);
            a._W(2, r);
            a._W(2, e);
            a._W(2, t, "i");
            return a
        }
        function p(e, r, t) {
            var a = c(e, r, t);
            a[1].v = e._R(8, "f");
            return a
        }
        function m(e, r, t) {
            var a = ua(13);
            a._W(1, 255);
            a._W(2, r);
            a._W(2, e);
            a._W(8, t, "f");
            return a
        }
        function b(e, r, t) {
            var a = e.l + r;
            var n = c(e, r, t);
            n[1].v = e._R(8, "f");
            if (t.qpro)
                e.l = a;
            else {
                var i = e._R(2);
                E(e.slice(e.l, e.l + i), n);
                e.l += i
            }
            return n
        }
        function w(e, r, t) {
            var a = r & 32768;
            r &= ~32768;
            r = (a ? e : 0) + (r >= 8192 ? r - 16384 : r);
            return (a ? "" : "$") + (t ? ya(r) : Ta(r))
        }
        var T = {
            51: ["FALSE", 0],
            52: ["TRUE", 0],
            70: ["LEN", 1],
            80: ["SUM", 69],
            81: ["AVERAGEA", 69],
            82: ["COUNTA", 69],
            83: ["MINA", 69],
            84: ["MAXA", 69],
            111: ["T", 1]
        };
        var A = ["", "", "", "", "", "", "", "", "", "+", "-", "*", "/", "^", "=", "<>", "<=", ">=", "<", ">", "", "", "", "", "&", "", "", "", "", "", "", ""];
        function E(e, r) {
            ca(e, 0);
            var t = []
              , a = 0
              , n = ""
              , i = ""
              , s = ""
              , f = "";
            while (e.l < e.length) {
                var o = e[e.l++];
                switch (o) {
                case 0:
                    t.push(e._R(8, "f"));
                    break;
                case 1:
                    {
                        i = w(r[0].c, e._R(2), true);
                        n = w(r[0].r, e._R(2), false);
                        t.push(i + n)
                    }
                    break;
                case 2:
                    {
                        var l = w(r[0].c, e._R(2), true);
                        var c = w(r[0].r, e._R(2), false);
                        i = w(r[0].c, e._R(2), true);
                        n = w(r[0].r, e._R(2), false);
                        t.push(l + c + ":" + i + n)
                    }
                    break;
                case 3:
                    if (e.l < e.length) {
                        console.error("WK1 premature formula end");
                        return
                    }
                    break;
                case 4:
                    t.push("(" + t.pop() + ")");
                    break;
                case 5:
                    t.push(e._R(2));
                    break;
                case 6:
                    {
                        var h = "";
                        while (o = e[e.l++])
                            h += String.fromCharCode(o);
                        t.push('"' + h.replace(/"/g, '""') + '"')
                    }
                    break;
                case 8:
                    t.push("-" + t.pop());
                    break;
                case 23:
                    t.push("+" + t.pop());
                    break;
                case 22:
                    t.push("NOT(" + t.pop() + ")");
                    break;
                case 20:
                    ;
                case 21:
                    {
                        f = t.pop();
                        s = t.pop();
                        t.push(["AND", "OR"][o - 20] + "(" + s + "," + f + ")")
                    }
                    break;
                default:
                    if (o < 32 && A[o]) {
                        f = t.pop();
                        s = t.pop();
                        t.push(s + A[o] + f)
                    } else if (T[o]) {
                        a = T[o][1];
                        if (a == 69)
                            a = e[e.l++];
                        if (a > t.length) {
                            console.error("WK1 bad formula parse 0x" + o.toString(16) + ":|" + t.join("|") + "|");
                            return
                        }
                        var u = t.slice(-a);
                        t.length -= a;
                        t.push(T[o][0] + "(" + u.join(",") + ")")
                    } else if (o <= 7)
                        return console.error("WK1 invalid opcode " + o.toString(16));
                    else if (o <= 24)
                        return console.error("WK1 unsupported op " + o.toString(16));
                    else if (o <= 30)
                        return console.error("WK1 invalid opcode " + o.toString(16));
                    else if (o <= 115)
                        return console.error("WK1 unsupported function opcode " + o.toString(16));
                    else
                        return console.error("WK1 unrecognized opcode " + o.toString(16));
                }
            }
            if (t.length == 1)
                r[1].f = "" + t[0];
            else
                console.error("WK1 bad formula parse |" + t.join("|") + "|")
        }
        function C(e) {
            var r = [{
                c: 0,
                r: 0
            }, {
                t: "n",
                v: 0
            }, 0];
            r[0].r = e._R(2);
            r[3] = e[e.l++];
            r[0].c = e[e.l++];
            return r
        }
        function S(e, r) {
            var t = C(e, r);
            t[1].t = "s";
            t[1].v = e._R(r - 4, "cstr");
            return t
        }
        function _(e, r, t, a) {
            var n = ua(6 + a.length);
            n._W(2, e);
            n._W(1, t);
            n._W(1, r);
            n._W(1, 39);
            for (var i = 0; i < a.length; ++i) {
                var s = a.charCodeAt(i);
                n._W(1, s >= 128 ? 95 : s)
            }
            n._W(1, 0);
            return n
        }
        function x(e, r) {
            var t = C(e, r);
            t[1].v = e._R(2);
            var a = t[1].v >> 1;
            if (t[1].v & 1) {
                switch (a & 7) {
                case 0:
                    a = (a >> 3) * 5e3;
                    break;
                case 1:
                    a = (a >> 3) * 500;
                    break;
                case 2:
                    a = (a >> 3) / 20;
                    break;
                case 3:
                    a = (a >> 3) / 200;
                    break;
                case 4:
                    a = (a >> 3) / 2e3;
                    break;
                case 5:
                    a = (a >> 3) / 2e4;
                    break;
                case 6:
                    a = (a >> 3) / 16;
                    break;
                case 7:
                    a = (a >> 3) / 64;
                    break;
                }
            }
            t[1].v = a;
            return t
        }
        function O(e, r) {
            var t = C(e, r);
            var a = e._R(4);
            var n = e._R(4);
            var i = e._R(2);
            if (i == 65535) {
                if (a === 0 && n === 3221225472) {
                    t[1].t = "e";
                    t[1].v = 15
                } else if (a === 0 && n === 3489660928) {
                    t[1].t = "e";
                    t[1].v = 42
                } else
                    t[1].v = 0;
                return t
            }
            var s = i & 32768;
            i = (i & 32767) - 16446;
            t[1].v = (1 - s * 2) * (n * Math.pow(2, i + 32) + a * Math.pow(2, i));
            return t
        }
        function R(e, r, t, a) {
            var n = ua(14);
            n._W(2, e);
            n._W(1, t);
            n._W(1, r);
            if (a == 0) {
                n._W(4, 0);
                n._W(4, 0);
                n._W(2, 65535);
                return n
            }
            var i = 0
              , s = 0
              , f = 0
              , o = 0;
            if (a < 0) {
                i = 1;
                a = -a
            }
            s = Math.log2(a) | 0;
            a /= Math.pow(2, s - 31);
            o = a >>> 0;
            if ((o & 2147483648) == 0) {
                a /= 2;
                ++s;
                o = a >>> 0
            }
            a -= o;
            o |= 2147483648;
            o >>>= 0;
            a *= Math.pow(2, 32);
            f = a >>> 0;
            n._W(4, f);
            n._W(4, o);
            s += 16383 + (i ? 32768 : 0);
            n._W(2, s);
            return n
        }
        function I(e, r) {
            var t = O(e, 14);
            e.l += r - 14;
            return t
        }
        function N(e, r) {
            var t = C(e, r);
            var a = e._R(4);
            t[1].v = a >> 6;
            return t
        }
        function D(e, r) {
            var t = C(e, r);
            var a = e._R(8, "f");
            t[1].v = a;
            return t
        }
        function F(e, r) {
            var t = D(e, 14);
            e.l += r - 10;
            return t
        }
        function P(e, r) {
            return e[e.l + r - 1] == 0 ? e._R(r, "cstr") : ""
        }
        function L(e, r) {
            var t = e[e.l++];
            if (t > r - 1)
                t = r - 1;
            var a = "";
            while (a.length < t)
                a += String.fromCharCode(e[e.l++]);
            return a
        }
        function M(e, r, t) {
            if (!t.qpro || r < 21)
                return;
            var a = e._R(1);
            e.l += 17;
            e.l += 1;
            e.l += 2;
            var n = e._R(r - 21, "cstr");
            return [a, n]
        }
        function U(e, r) {
            var t = {}
              , a = e.l + r;
            while (e.l < a) {
                var n = e._R(2);
                if (n == 14e3) {
                    t[n] = [0, ""];
                    t[n][0] = e._R(2);
                    while (e[e.l]) {
                        t[n][1] += String.fromCharCode(e[e.l]);
                        e.l++
                    }
                    e.l++
                }
            }
            return t
        }
        function B(e, r) {
            var t = ua(5 + e.length);
            t._W(2, 14e3);
            t._W(2, r);
            for (var a = 0; a < e.length; ++a) {
                var n = e.charCodeAt(a);
                t[t.l++] = n > 127 ? 95 : n
            }
            t[t.l++] = 0;
            return t
        }
        var W = {
            0: {
                n: "BOF",
                f: es
            },
            1: {
                n: "EOF"
            },
            2: {
                n: "CALCMODE"
            },
            3: {
                n: "CALCORDER"
            },
            4: {
                n: "SPLIT"
            },
            5: {
                n: "SYNC"
            },
            6: {
                n: "RANGE",
                f: f
            },
            7: {
                n: "WINDOW1"
            },
            8: {
                n: "COLW1"
            },
            9: {
                n: "WINTWO"
            },
            10: {
                n: "COLW2"
            },
            11: {
                n: "NAME"
            },
            12: {
                n: "BLANK"
            },
            13: {
                n: "INTEGER",
                f: d
            },
            14: {
                n: "NUMBER",
                f: p
            },
            15: {
                n: "LABEL",
                f: h
            },
            16: {
                n: "FORMULA",
                f: b
            },
            24: {
                n: "TABLE"
            },
            25: {
                n: "ORANGE"
            },
            26: {
                n: "PRANGE"
            },
            27: {
                n: "SRANGE"
            },
            28: {
                n: "FRANGE"
            },
            29: {
                n: "KRANGE1"
            },
            32: {
                n: "HRANGE"
            },
            35: {
                n: "KRANGE2"
            },
            36: {
                n: "PROTEC"
            },
            37: {
                n: "FOOTER"
            },
            38: {
                n: "HEADER"
            },
            39: {
                n: "SETUP"
            },
            40: {
                n: "MARGINS"
            },
            41: {
                n: "LABELFMT"
            },
            42: {
                n: "TITLES"
            },
            43: {
                n: "SHEETJS"
            },
            45: {
                n: "GRAPH"
            },
            46: {
                n: "NGRAPH"
            },
            47: {
                n: "CALCCOUNT"
            },
            48: {
                n: "UNFORMATTED"
            },
            49: {
                n: "CURSORW12"
            },
            50: {
                n: "WINDOW"
            },
            51: {
                n: "STRING",
                f: h
            },
            55: {
                n: "PASSWORD"
            },
            56: {
                n: "LOCKED"
            },
            60: {
                n: "QUERY"
            },
            61: {
                n: "QUERYNAME"
            },
            62: {
                n: "PRINT"
            },
            63: {
                n: "PRINTNAME"
            },
            64: {
                n: "GRAPH2"
            },
            65: {
                n: "GRAPHNAME"
            },
            66: {
                n: "ZOOM"
            },
            67: {
                n: "SYMSPLIT"
            },
            68: {
                n: "NSROWS"
            },
            69: {
                n: "NSCOLS"
            },
            70: {
                n: "RULER"
            },
            71: {
                n: "NNAME"
            },
            72: {
                n: "ACOMM"
            },
            73: {
                n: "AMACRO"
            },
            74: {
                n: "PARSE"
            },
            102: {
                n: "PRANGES??"
            },
            103: {
                n: "RRANGES??"
            },
            104: {
                n: "FNAME??"
            },
            105: {
                n: "MRANGES??"
            },
            204: {
                n: "SHEETNAMECS",
                f: P
            },
            222: {
                n: "SHEETNAMELP",
                f: L
            },
            65535: {
                n: ""
            }
        };
        var H = {
            0: {
                n: "BOF"
            },
            1: {
                n: "EOF"
            },
            2: {
                n: "PASSWORD"
            },
            3: {
                n: "CALCSET"
            },
            4: {
                n: "WINDOWSET"
            },
            5: {
                n: "SHEETCELLPTR"
            },
            6: {
                n: "SHEETLAYOUT"
            },
            7: {
                n: "COLUMNWIDTH"
            },
            8: {
                n: "HIDDENCOLUMN"
            },
            9: {
                n: "USERRANGE"
            },
            10: {
                n: "SYSTEMRANGE"
            },
            11: {
                n: "ZEROFORCE"
            },
            12: {
                n: "SORTKEYDIR"
            },
            13: {
                n: "FILESEAL"
            },
            14: {
                n: "DATAFILLNUMS"
            },
            15: {
                n: "PRINTMAIN"
            },
            16: {
                n: "PRINTSTRING"
            },
            17: {
                n: "GRAPHMAIN"
            },
            18: {
                n: "GRAPHSTRING"
            },
            19: {
                n: "??"
            },
            20: {
                n: "ERRCELL"
            },
            21: {
                n: "NACELL"
            },
            22: {
                n: "LABEL16",
                f: S
            },
            23: {
                n: "NUMBER17",
                f: O
            },
            24: {
                n: "NUMBER18",
                f: x
            },
            25: {
                n: "FORMULA19",
                f: I
            },
            26: {
                n: "FORMULA1A"
            },
            27: {
                n: "XFORMAT",
                f: U
            },
            28: {
                n: "DTLABELMISC"
            },
            29: {
                n: "DTLABELCELL"
            },
            30: {
                n: "GRAPHWINDOW"
            },
            31: {
                n: "CPA"
            },
            32: {
                n: "LPLAUTO"
            },
            33: {
                n: "QUERY"
            },
            34: {
                n: "HIDDENSHEET"
            },
            35: {
                n: "??"
            },
            37: {
                n: "NUMBER25",
                f: N
            },
            38: {
                n: "??"
            },
            39: {
                n: "NUMBER27",
                f: D
            },
            40: {
                n: "FORMULA28",
                f: F
            },
            142: {
                n: "??"
            },
            147: {
                n: "??"
            },
            150: {
                n: "??"
            },
            151: {
                n: "??"
            },
            152: {
                n: "??"
            },
            153: {
                n: "??"
            },
            154: {
                n: "??"
            },
            155: {
                n: "??"
            },
            156: {
                n: "??"
            },
            163: {
                n: "??"
            },
            174: {
                n: "??"
            },
            175: {
                n: "??"
            },
            176: {
                n: "??"
            },
            177: {
                n: "??"
            },
            184: {
                n: "??"
            },
            185: {
                n: "??"
            },
            186: {
                n: "??"
            },
            187: {
                n: "??"
            },
            188: {
                n: "??"
            },
            195: {
                n: "??"
            },
            201: {
                n: "??"
            },
            204: {
                n: "SHEETNAMECS",
                f: P
            },
            205: {
                n: "??"
            },
            206: {
                n: "??"
            },
            207: {
                n: "??"
            },
            208: {
                n: "??"
            },
            256: {
                n: "??"
            },
            259: {
                n: "??"
            },
            260: {
                n: "??"
            },
            261: {
                n: "??"
            },
            262: {
                n: "??"
            },
            263: {
                n: "??"
            },
            265: {
                n: "??"
            },
            266: {
                n: "??"
            },
            267: {
                n: "??"
            },
            268: {
                n: "??"
            },
            270: {
                n: "??"
            },
            271: {
                n: "??"
            },
            384: {
                n: "??"
            },
            389: {
                n: "??"
            },
            390: {
                n: "??"
            },
            393: {
                n: "??"
            },
            396: {
                n: "??"
            },
            512: {
                n: "??"
            },
            514: {
                n: "??"
            },
            513: {
                n: "??"
            },
            516: {
                n: "??"
            },
            517: {
                n: "??"
            },
            640: {
                n: "??"
            },
            641: {
                n: "??"
            },
            642: {
                n: "??"
            },
            643: {
                n: "??"
            },
            644: {
                n: "??"
            },
            645: {
                n: "??"
            },
            646: {
                n: "??"
            },
            647: {
                n: "??"
            },
            648: {
                n: "??"
            },
            658: {
                n: "??"
            },
            659: {
                n: "??"
            },
            660: {
                n: "??"
            },
            661: {
                n: "??"
            },
            662: {
                n: "??"
            },
            665: {
                n: "??"
            },
            666: {
                n: "??"
            },
            768: {
                n: "??"
            },
            772: {
                n: "??"
            },
            1537: {
                n: "SHEETINFOQP",
                f: M
            },
            1600: {
                n: "??"
            },
            1602: {
                n: "??"
            },
            1793: {
                n: "??"
            },
            1794: {
                n: "??"
            },
            1795: {
                n: "??"
            },
            1796: {
                n: "??"
            },
            1920: {
                n: "??"
            },
            2048: {
                n: "??"
            },
            2049: {
                n: "??"
            },
            2052: {
                n: "??"
            },
            2688: {
                n: "??"
            },
            10998: {
                n: "??"
            },
            12849: {
                n: "??"
            },
            28233: {
                n: "??"
            },
            28484: {
                n: "??"
            },
            65535: {
                n: ""
            }
        };
        return {
            sheet_to_wk1: a,
            book_to_wk3: n,
            to_workbook: r
        }
    }();
    function Oo(e) {
        var r = {}
          , t = e.match(Hr)
          , a = 0;
        var n = false;
        if (t)
            for (; a != t.length; ++a) {
                var s = Gr(t[a]);
                switch (s[0].replace(/\w*:/g, "")) {
                case "<condense":
                    break;
                case "<extend":
                    break;
                case "<shadow":
                    if (!s.val)
                        break;
                case "<shadow>":
                    ;
                case "<shadow/>":
                    r.shadow = 1;
                    break;
                case "</shadow>":
                    break;
                case "<charset":
                    if (s.val == "1")
                        break;
                    r.cp = i[parseInt(s.val, 10)];
                    break;
                case "<outline":
                    if (!s.val)
                        break;
                case "<outline>":
                    ;
                case "<outline/>":
                    r.outline = 1;
                    break;
                case "</outline>":
                    break;
                case "<rFont":
                    r.name = s.val;
                    break;
                case "<sz":
                    r.sz = s.val;
                    break;
                case "<strike":
                    if (!s.val)
                        break;
                case "<strike>":
                    ;
                case "<strike/>":
                    r.strike = 1;
                    break;
                case "</strike>":
                    break;
                case "<u":
                    if (!s.val)
                        break;
                    switch (s.val) {
                    case "double":
                        r.uval = "double";
                        break;
                    case "singleAccounting":
                        r.uval = "single-accounting";
                        break;
                    case "doubleAccounting":
                        r.uval = "double-accounting";
                        break;
                    }
                    ;
                case "<u>":
                    ;
                case "<u/>":
                    r.u = 1;
                    break;
                case "</u>":
                    break;
                case "<b":
                    if (s.val == "0")
                        break;
                case "<b>":
                    ;
                case "<b/>":
                    r.b = 1;
                    break;
                case "</b>":
                    break;
                case "<i":
                    if (s.val == "0")
                        break;
                case "<i>":
                    ;
                case "<i/>":
                    r.i = 1;
                    break;
                case "</i>":
                    break;
                case "<color":
                    if (s.rgb)
                        r.color = s.rgb.slice(2, 8);
                    break;
                case "<color>":
                    ;
                case "<color/>":
                    ;
                case "</color>":
                    break;
                case "<family":
                    r.family = s.val;
                    break;
                case "<family>":
                    ;
                case "<family/>":
                    ;
                case "</family>":
                    break;
                case "<vertAlign":
                    r.valign = s.val;
                    break;
                case "<vertAlign>":
                    ;
                case "<vertAlign/>":
                    ;
                case "</vertAlign>":
                    break;
                case "<scheme":
                    break;
                case "<scheme>":
                    ;
                case "<scheme/>":
                    ;
                case "</scheme>":
                    break;
                case "<extLst":
                    ;
                case "<extLst>":
                    ;
                case "</extLst>":
                    break;
                case "<ext":
                    n = true;
                    break;
                case "</ext>":
                    n = false;
                    break;
                default:
                    if (s[0].charCodeAt(1) !== 47 && !n)
                        throw new Error("Unrecognized rich format " + s[0]);
                }
            }
        return r
    }
    var Ro = function() {
        var e = ht("t")
          , r = ht("rPr");
        function t(t) {
            var a = t.match(e);
            if (!a)
                return {
                    t: "s",
                    v: ""
                };
            var n = {
                t: "s",
                v: Yr(a[1])
            };
            var i = t.match(r);
            if (i)
                n.s = Oo(i[1]);
            return n
        }
        var a = /<(?:\w+:)?r>/g
          , n = /<\/(?:\w+:)?r>/;
        return function i(e) {
            return e.replace(a, "").split(n).map(t).filter(function(e) {
                return e.v
            })
        }
    }();
    var Io = function hk() {
        var e = /(\r\n|\n)/g;
        function r(e, r, t) {
            var a = [];
            if (e.u)
                a.push("text-decoration: underline;");
            if (e.uval)
                a.push("text-underline-style:" + e.uval + ";");
            if (e.sz)
                a.push("font-size:" + e.sz + "pt;");
            if (e.outline)
                a.push("text-effect: outline;");
            if (e.shadow)
                a.push("text-shadow: auto;");
            r.push('<span style="' + a.join("") + '">');
            if (e.b) {
                r.push("<b>");
                t.push("</b>")
            }
            if (e.i) {
                r.push("<i>");
                t.push("</i>")
            }
            if (e.strike) {
                r.push("<s>");
                t.push("</s>")
            }
            var n = e.valign || "";
            if (n == "superscript" || n == "super")
                n = "sup";
            else if (n == "subscript")
                n = "sub";
            if (n != "") {
                r.push("<" + n + ">");
                t.push("</" + n + ">")
            }
            t.push("</span>");
            return e
        }
        function t(t) {
            var a = [[], t.v, []];
            if (!t.v)
                return "";
            if (t.s)
                r(t.s, a[0], a[2]);
            return a[0].join("") + a[1].replace(e, "<br/>") + a[2].join("")
        }
        return function a(e) {
            return e.map(t).join("")
        }
    }();
    var No = /<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g
      , Do = /<(?:\w+:)?r>/;
    var Fo = /<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;
    function Po(e, r) {
        var t = r ? r.cellHTML : true;
        var a = {};
        if (!e)
            return {
                t: ""
            };
        if (e.match(/^\s*<(?:\w+:)?t[^>]*>/)) {
            a.t = Yr(lt(e.slice(e.indexOf(">") + 1).split(/<\/(?:\w+:)?t>/)[0] || ""));
            a.r = lt(e);
            if (t)
                a.h = et(a.t)
        } else if (e.match(Do)) {
            a.r = lt(e);
            a.t = Yr(lt((e.replace(Fo, "").match(No) || []).join("").replace(Hr, "")));
            if (t)
                a.h = Io(Ro(a.r))
        }
        return a
    }
    var Lo = /<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;
    var Mo = /<(?:\w+:)?(?:si|sstItem)>/g;
    var Uo = /<\/(?:\w+:)?(?:si|sstItem)>/;
    function Bo(e, r) {
        var t = []
          , a = "";
        if (!e)
            return t;
        var n = e.match(Lo);
        if (n) {
            a = n[2].replace(Mo, "").split(Uo);
            for (var i = 0; i != a.length; ++i) {
                var s = Po(a[i].trim(), r);
                if (s != null)
                    t[t.length] = s
            }
            n = Gr(n[1]);
            t.Count = n.count;
            t.Unique = n.uniqueCount
        }
        return t
    }
    var Wo = /^\s|\s$|[\t\n\r]/;
    function Ho(e, r) {
        if (!r.bookSST)
            return "";
        var t = [Mr];
        t[t.length] = kt("sst", null, {
            xmlns: St[0],
            count: e.Count,
            uniqueCount: e.Unique
        });
        for (var a = 0; a != e.length; ++a) {
            if (e[a] == null)
                continue;
            var n = e[a];
            var i = "<si>";
            if (n.r)
                i += n.r;
            else {
                i += "<t";
                if (!n.t)
                    n.t = "";
                if (n.t.match(Wo))
                    i += ' xml:space="preserve"';
                i += ">" + qr(n.t) + "</t>"
            }
            i += "</si>";
            t[t.length] = i
        }
        if (t.length > 2) {
            t[t.length] = "</sst>";
            t[1] = t[1].replace("/>", ">")
        }
        return t.join("")
    }
    function zo(e) {
        return [e._R(4), e._R(4)]
    }
    function Vo(e, r) {
        var t = [];
        var a = false;
        da(e, function n(e, i, s) {
            switch (s) {
            case 159:
                t.Count = e[0];
                t.Unique = e[1];
                break;
            case 19:
                t.push(e);
                break;
            case 160:
                return true;
            case 35:
                a = true;
                break;
            case 36:
                a = false;
                break;
            default:
                if (i.T) {}
                if (!a || r.WTF)
                    throw new Error("Unexpected record 0x" + s.toString(16));
            }
        });
        return t
    }
    function Go(e, r) {
        if (!r)
            r = ua(8);
        r._W(4, e.Count);
        r._W(4, e.Unique);
        return r
    }
    var jo = Xa;
    function Xo(e) {
        var r = va();
        pa(r, 159, Go(e));
        for (var t = 0; t < e.length; ++t)
            pa(r, 19, jo(e[t]));
        pa(r, 160);
        return r.end()
    }
    function $o(e) {
        if (typeof a !== "undefined")
            return a.utils.encode(t, e);
        var r = []
          , n = e.split("");
        for (var i = 0; i < n.length; ++i)
            r[i] = n[i].charCodeAt(0);
        return r
    }
    function Yo(e, r) {
        var t = {};
        t.Major = e._R(2);
        t.Minor = e._R(2);
        if (r >= 4)
            e.l += r - 4;
        return t
    }
    function Ko(e) {
        var r = {};
        r.id = e._R(0, "lpp4");
        r.R = Yo(e, 4);
        r.U = Yo(e, 4);
        r.W = Yo(e, 4);
        return r
    }
    function Jo(e) {
        var r = e._R(4);
        var t = e.l + r - 4;
        var a = {};
        var n = e._R(4);
        var i = [];
        while (n-- > 0)
            i.push({
                t: e._R(4),
                v: e._R(0, "lpp4")
            });
        a.name = e._R(0, "lpp4");
        a.comps = i;
        if (e.l != t)
            throw new Error("Bad DataSpaceMapEntry: " + e.l + " != " + t);
        return a
    }
    function qo(e) {
        var r = [];
        e.l += 4;
        var t = e._R(4);
        while (t-- > 0)
            r.push(Jo(e));
        return r
    }
    function Zo(e) {
        var r = [];
        e.l += 4;
        var t = e._R(4);
        while (t-- > 0)
            r.push(e._R(0, "lpp4"));
        return r
    }
    function Qo(e) {
        var r = {};
        e._R(4);
        e.l += 4;
        r.id = e._R(0, "lpp4");
        r.name = e._R(0, "lpp4");
        r.R = Yo(e, 4);
        r.U = Yo(e, 4);
        r.W = Yo(e, 4);
        return r
    }
    function el(e) {
        var r = Qo(e);
        r.ename = e._R(0, "8lpp4");
        r.blksz = e._R(4);
        r.cmode = e._R(4);
        if (e._R(4) != 4)
            throw new Error("Bad !Primary record");
        return r
    }
    function rl(e, r) {
        var t = e.l + r;
        var a = {};
        a.Flags = e._R(4) & 63;
        e.l += 4;
        a.AlgID = e._R(4);
        var n = false;
        switch (a.AlgID) {
        case 26126:
            ;
        case 26127:
            ;
        case 26128:
            n = a.Flags == 36;
            break;
        case 26625:
            n = a.Flags == 4;
            break;
        case 0:
            n = a.Flags == 16 || a.Flags == 4 || a.Flags == 36;
            break;
        default:
            throw "Unrecognized encryption algorithm: " + a.AlgID;
        }
        if (!n)
            throw new Error("Encryption Flags/AlgID mismatch");
        a.AlgIDHash = e._R(4);
        a.KeySize = e._R(4);
        a.ProviderType = e._R(4);
        e.l += 8;
        a.CSPName = e._R(t - e.l >> 1, "utf16le");
        e.l = t;
        return a
    }
    function tl(e, r) {
        var t = {}
          , a = e.l + r;
        e.l += 4;
        t.Salt = e.slice(e.l, e.l + 16);
        e.l += 16;
        t.Verifier = e.slice(e.l, e.l + 16);
        e.l += 16;
        e._R(4);
        t.VerifierHash = e.slice(e.l, a);
        e.l = a;
        return t
    }
    function al(e) {
        var r = Yo(e);
        switch (r.Minor) {
        case 2:
            return [r.Minor, nl(e, r)];
        case 3:
            return [r.Minor, il(e, r)];
        case 4:
            return [r.Minor, sl(e, r)];
        }
        throw new Error("ECMA-376 Encrypted file unrecognized Version: " + r.Minor)
    }
    function nl(e) {
        var r = e._R(4);
        if ((r & 63) != 36)
            throw new Error("EncryptionInfo mismatch");
        var t = e._R(4);
        var a = rl(e, t);
        var n = tl(e, e.length - e.l);
        return {
            t: "Std",
            h: a,
            v: n
        }
    }
    function il() {
        throw new Error("File is password-protected: ECMA-376 Extensible")
    }
    function sl(e) {
        var r = ["saltSize", "blockSize", "keyBits", "hashSize", "cipherAlgorithm", "cipherChaining", "hashAlgorithm", "saltValue"];
        e.l += 4;
        var t = e._R(e.length - e.l, "utf8");
        var a = {};
        t.replace(Hr, function n(e) {
            var t = Gr(e);
            switch (jr(t[0])) {
            case "<?xml":
                break;
            case "<encryption":
                ;
            case "</encryption>":
                break;
            case "<keyData":
                r.forEach(function(e) {
                    a[e] = t[e]
                });
                break;
            case "<dataIntegrity":
                a.encryptedHmacKey = t.encryptedHmacKey;
                a.encryptedHmacValue = t.encryptedHmacValue;
                break;
            case "<keyEncryptors>":
                ;
            case "<keyEncryptors":
                a.encs = [];
                break;
            case "</keyEncryptors>":
                break;
            case "<keyEncryptor":
                a.uri = t.uri;
                break;
            case "</keyEncryptor>":
                break;
            case "<encryptedKey":
                a.encs.push(t);
                break;
            default:
                throw t[0];
            }
        });
        return a
    }
    function fl(e, r) {
        var t = {};
        var a = t.EncryptionVersionInfo = Yo(e, 4);
        r -= 4;
        if (a.Minor != 2)
            throw new Error("unrecognized minor version code: " + a.Minor);
        if (a.Major > 4 || a.Major < 2)
            throw new Error("unrecognized major version code: " + a.Major);
        t.Flags = e._R(4);
        r -= 4;
        var n = e._R(4);
        r -= 4;
        t.EncryptionHeader = rl(e, n);
        r -= n;
        t.EncryptionVerifier = tl(e, r);
        return t
    }
    function ol(e) {
        var r = {};
        var t = r.EncryptionVersionInfo = Yo(e, 4);
        if (t.Major != 1 || t.Minor != 1)
            throw "unrecognized version code " + t.Major + " : " + t.Minor;
        r.Salt = e._R(16);
        r.EncryptedVerifier = e._R(16);
        r.EncryptedVerifierHash = e._R(16);
        return r
    }
    function ll(e) {
        var r = 0, t;
        var a = $o(e);
        var n = a.length + 1, i, s;
        var f, o, l;
        t = E(n);
        t[0] = a.length;
        for (i = 1; i != n; ++i)
            t[i] = a[i - 1];
        for (i = n - 1; i >= 0; --i) {
            s = t[i];
            f = (r & 16384) === 0 ? 0 : 1;
            o = r << 1 & 32767;
            l = f | o;
            r = l ^ s
        }
        return r ^ 52811
    }
    var cl = function() {
        var e = [187, 255, 255, 186, 255, 255, 185, 128, 0, 190, 15, 0, 191, 15, 0];
        var r = [57840, 7439, 52380, 33984, 4364, 3600, 61902, 12606, 6258, 57657, 54287, 34041, 10252, 43370, 20163];
        var t = [44796, 19929, 39858, 10053, 20106, 40212, 10761, 31585, 63170, 64933, 60267, 50935, 40399, 11199, 17763, 35526, 1453, 2906, 5812, 11624, 23248, 885, 1770, 3540, 7080, 14160, 28320, 56640, 55369, 41139, 20807, 41614, 21821, 43642, 17621, 28485, 56970, 44341, 19019, 38038, 14605, 29210, 60195, 50791, 40175, 10751, 21502, 43004, 24537, 18387, 36774, 3949, 7898, 15796, 31592, 63184, 47201, 24803, 49606, 37805, 14203, 28406, 56812, 17824, 35648, 1697, 3394, 6788, 13576, 27152, 43601, 17539, 35078, 557, 1114, 2228, 4456, 30388, 60776, 51953, 34243, 7079, 14158, 28316, 14128, 28256, 56512, 43425, 17251, 34502, 7597, 13105, 26210, 52420, 35241, 883, 1766, 3532, 4129, 8258, 16516, 33032, 4657, 9314, 18628];
        var a = function(e) {
            return (e / 2 | e * 128) & 255
        };
        var n = function(e, r) {
            return a(e ^ r)
        };
        var i = function(e) {
            var a = r[e.length - 1];
            var n = 104;
            for (var i = e.length - 1; i >= 0; --i) {
                var s = e[i];
                for (var f = 0; f != 7; ++f) {
                    if (s & 64)
                        a ^= t[n];
                    s *= 2;
                    --n
                }
            }
            return a
        };
        return function(r) {
            var t = $o(r);
            var a = i(t);
            var s = t.length;
            var f = E(16);
            for (var o = 0; o != 16; ++o)
                f[o] = 0;
            var l, c, h;
            if ((s & 1) === 1) {
                l = a >> 8;
                f[s] = n(e[0], l);
                --s;
                l = a & 255;
                c = t[t.length - 1];
                f[s] = n(c, l)
            }
            while (s > 0) {
                --s;
                l = a >> 8;
                f[s] = n(t[s], l);
                --s;
                l = a & 255;
                f[s] = n(t[s], l)
            }
            s = 15;
            h = 15 - t.length;
            while (h > 0) {
                l = a >> 8;
                f[s] = n(e[h], l);
                --s;
                --h;
                l = a & 255;
                f[s] = n(t[s], l);
                --s;
                --h
            }
            return f
        }
    }();
    var hl = function(e, r, t, a, n) {
        if (!n)
            n = r;
        if (!a)
            a = cl(e);
        var i, s;
        for (i = 0; i != r.length; ++i) {
            s = r[i];
            s ^= a[t];
            s = (s >> 5 | s << 3) & 255;
            n[i] = s;
            ++t
        }
        return [n, t, a]
    };
    var ul = function(e) {
        var r = 0
          , t = cl(e);
        return function(e) {
            var a = hl("", e, r, t);
            r = a[1];
            return a[0]
        }
    };
    function dl(e, r, t, a) {
        var n = {
            key: es(e),
            verificationBytes: es(e)
        };
        if (t.password)
            n.verifier = ll(t.password);
        a.valid = n.verificationBytes === n.verifier;
        if (a.valid)
            a.insitu = ul(t.password);
        return n
    }
    function vl(e, r, t) {
        var a = t || {};
        a.Info = e._R(2);
        e.l -= 2;
        if (a.Info === 1)
            a.Data = ol(e, r);
        else
            a.Data = fl(e, r);
        return a
    }
    function pl(e, r, t) {
        var a = {
            Type: t.biff >= 8 ? e._R(2) : 0
        };
        if (a.Type)
            vl(e, r - 2, a);
        else
            dl(e, t.biff >= 8 ? r : r - 2, t, a);
        return a
    }
    var gl = function() {
        function e(e, t) {
            switch (t.type) {
            case "base64":
                return r(k(e), t);
            case "binary":
                return r(e, t);
            case "buffer":
                return r(T && Buffer.isBuffer(e) ? e.toString("binary") : _(e), t);
            case "array":
                return r(mr(e), t);
            }
            throw new Error("Unrecognized type " + t.type)
        }
        function r(e, r) {
            var t = r || {};
            var a = t.dense ? [] : {};
            var n = e.match(/\\trowd.*?\\row\b/g);
            if (!n.length)
                throw new Error("RTF missing table");
            var i = {
                s: {
                    c: 0,
                    r: 0
                },
                e: {
                    c: 0,
                    r: n.length - 1
                }
            };
            n.forEach(function(e, r) {
                if (Array.isArray(a))
                    a[r] = [];
                var t = /\\\w+\b/g;
                var n = 0;
                var s;
                var f = -1;
                while (s = t.exec(e)) {
                    switch (s[0]) {
                    case "\\cell":
                        var o = e.slice(n, t.lastIndex - s[0].length);
                        if (o[0] == " ")
                            o = o.slice(1);
                        ++f;
                        if (o.length) {
                            var l = {
                                v: o,
                                t: "s"
                            };
                            if (Array.isArray(a))
                                a[r][f] = l;
                            else
                                a[Ra({
                                    r: r,
                                    c: f
                                })] = l
                        }
                        break;
                    }
                    n = t.lastIndex
                }
                if (f > i.e.c)
                    i.e.c = f
            });
            a["!ref"] = Na(i);
            return a
        }
        function t(r, t) {
            return La(e(r, t), t)
        }
        function a(e) {
            var r = ["{\\rtf1\\ansi"];
            var t = Da(e["!ref"]), a;
            var n = Array.isArray(e);
            for (var i = t.s.r; i <= t.e.r; ++i) {
                r.push("\\trowd\\trautofit1");
                for (var s = t.s.c; s <= t.e.c; ++s)
                    r.push("\\cellx" + (s + 1));
                r.push("\\pard\\intbl");
                for (s = t.s.c; s <= t.e.c; ++s) {
                    var f = Ra({
                        r: i,
                        c: s
                    });
                    a = n ? (e[i] || [])[s] : e[f];
                    if (!a || a.v == null && (!a.f || a.F))
                        continue;
                    r.push(" " + (a.w || (Pa(a),
                    a.w)));
                    r.push("\\cell")
                }
                r.push("\\pard\\intbl\\row")
            }
            return r.join("") + "}"
        }
        return {
            to_workbook: t,
            to_sheet: e,
            from_sheet: a
        }
    }();
    function ml(e) {
        var r = e.slice(e[0] === "#" ? 1 : 0).slice(0, 6);
        return [parseInt(r.slice(0, 2), 16), parseInt(r.slice(2, 4), 16), parseInt(r.slice(4, 6), 16)]
    }
    function bl(e) {
        for (var r = 0, t = 1; r != 3; ++r)
            t = t * 256 + (e[r] > 255 ? 255 : e[r] < 0 ? 0 : e[r]);
        return t.toString(16).toUpperCase().slice(1)
    }
    function wl(e) {
        var r = e[0] / 255
          , t = e[1] / 255
          , a = e[2] / 255;
        var n = Math.max(r, t, a)
          , i = Math.min(r, t, a)
          , s = n - i;
        if (s === 0)
            return [0, 0, r];
        var f = 0
          , o = 0
          , l = n + i;
        o = s / (l > 1 ? 2 - l : l);
        switch (n) {
        case r:
            f = ((t - a) / s + 6) % 6;
            break;
        case t:
            f = (a - r) / s + 2;
            break;
        case a:
            f = (r - t) / s + 4;
            break;
        }
        return [f / 6, o, l / 2]
    }
    function kl(e) {
        var r = e[0]
          , t = e[1]
          , a = e[2];
        var n = t * 2 * (a < .5 ? a : 1 - a)
          , i = a - n / 2;
        var s = [i, i, i]
          , f = 6 * r;
        var o;
        if (t !== 0)
            switch (f | 0) {
            case 0:
                ;
            case 6:
                o = n * f;
                s[0] += n;
                s[1] += o;
                break;
            case 1:
                o = n * (2 - f);
                s[0] += o;
                s[1] += n;
                break;
            case 2:
                o = n * (f - 2);
                s[1] += n;
                s[2] += o;
                break;
            case 3:
                o = n * (4 - f);
                s[1] += o;
                s[2] += n;
                break;
            case 4:
                o = n * (f - 4);
                s[2] += n;
                s[0] += o;
                break;
            case 5:
                o = n * (6 - f);
                s[2] += o;
                s[0] += n;
                break;
            }
        for (var l = 0; l != 3; ++l)
            s[l] = Math.round(s[l] * 255);
        return s
    }
    function Tl(e, r) {
        if (r === 0)
            return e;
        var t = wl(ml(e));
        if (r < 0)
            t[2] = t[2] * (1 + r);
        else
            t[2] = 1 - (1 - t[2]) * (1 - r);
        return bl(kl(t))
    }
    var Al = 6
      , El = 15
      , Cl = 1
      , yl = Al;
    function Sl(e) {
        return Math.floor((e + Math.round(128 / yl) / 256) * yl)
    }
    function _l(e) {
        return Math.floor((e - 5) / yl * 100 + .5) / 100
    }
    function xl(e) {
        return Math.round((e * yl + 5) / yl * 256) / 256
    }
    function Ol(e) {
        return xl(_l(Sl(e)))
    }
    function Rl(e) {
        var r = Math.abs(e - Ol(e))
          , t = yl;
        if (r > .005)
            for (yl = Cl; yl < El; ++yl)
                if (Math.abs(e - Ol(e)) <= r) {
                    r = Math.abs(e - Ol(e));
                    t = yl
                }
        yl = t
    }
    function Il(e) {
        if (e.width) {
            e.wpx = Sl(e.width);
            e.wch = _l(e.wpx);
            e.MDW = yl
        } else if (e.wpx) {
            e.wch = _l(e.wpx);
            e.width = xl(e.wch);
            e.MDW = yl
        } else if (typeof e.wch == "number") {
            e.width = xl(e.wch);
            e.wpx = Sl(e.width);
            e.MDW = yl
        }
        if (e.customWidth)
            delete e.customWidth
    }
    var Nl = 96
      , Dl = Nl;
    function Fl(e) {
        return e * 96 / Dl
    }
    function Pl(e) {
        return e * Dl / 96
    }
    var Ll = {
        None: "none",
        Solid: "solid",
        Gray50: "mediumGray",
        Gray75: "darkGray",
        Gray25: "lightGray",
        HorzStripe: "darkHorizontal",
        VertStripe: "darkVertical",
        ReverseDiagStripe: "darkDown",
        DiagStripe: "darkUp",
        DiagCross: "darkGrid",
        ThickDiagCross: "darkTrellis",
        ThinHorzStripe: "lightHorizontal",
        ThinVertStripe: "lightVertical",
        ThinReverseDiagStripe: "lightDown",
        ThinHorzCross: "lightGrid"
    };
    function Ml(e, r, t, a) {
        r.Borders = [];
        var n = {};
        var i = false;
        (e[0].match(Hr) || []).forEach(function(e) {
            var t = Gr(e);
            switch (jr(t[0])) {
            case "<borders":
                ;
            case "<borders>":
                ;
            case "</borders>":
                break;
            case "<border":
                ;
            case "<border>":
                ;
            case "<border/>":
                n = {};
                if (t.diagonalUp)
                    n.diagonalUp = nt(t.diagonalUp);
                if (t.diagonalDown)
                    n.diagonalDown = nt(t.diagonalDown);
                r.Borders.push(n);
                break;
            case "</border>":
                break;
            case "<left/>":
                break;
            case "<left":
                ;
            case "<left>":
                break;
            case "</left>":
                break;
            case "<right/>":
                break;
            case "<right":
                ;
            case "<right>":
                break;
            case "</right>":
                break;
            case "<top/>":
                break;
            case "<top":
                ;
            case "<top>":
                break;
            case "</top>":
                break;
            case "<bottom/>":
                break;
            case "<bottom":
                ;
            case "<bottom>":
                break;
            case "</bottom>":
                break;
            case "<diagonal":
                ;
            case "<diagonal>":
                ;
            case "<diagonal/>":
                break;
            case "</diagonal>":
                break;
            case "<horizontal":
                ;
            case "<horizontal>":
                ;
            case "<horizontal/>":
                break;
            case "</horizontal>":
                break;
            case "<vertical":
                ;
            case "<vertical>":
                ;
            case "<vertical/>":
                break;
            case "</vertical>":
                break;
            case "<start":
                ;
            case "<start>":
                ;
            case "<start/>":
                break;
            case "</start>":
                break;
            case "<end":
                ;
            case "<end>":
                ;
            case "<end/>":
                break;
            case "</end>":
                break;
            case "<color":
                ;
            case "<color>":
                break;
            case "<color/>":
                ;
            case "</color>":
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                break;
            case "<ext":
                i = true;
                break;
            case "</ext>":
                i = false;
                break;
            default:
                if (a && a.WTF) {
                    if (!i)
                        throw new Error("unrecognized " + t[0] + " in borders")
                }
                ;
            }
        })
    }
    function Ul(e, r, t, a) {
        r.Fills = [];
        var n = {};
        var i = false;
        (e[0].match(Hr) || []).forEach(function(e) {
            var t = Gr(e);
            switch (jr(t[0])) {
            case "<fills":
                ;
            case "<fills>":
                ;
            case "</fills>":
                break;
            case "<fill>":
                ;
            case "<fill":
                ;
            case "<fill/>":
                n = {};
                r.Fills.push(n);
                break;
            case "</fill>":
                break;
            case "<gradientFill>":
                break;
            case "<gradientFill":
                ;
            case "</gradientFill>":
                r.Fills.push(n);
                n = {};
                break;
            case "<patternFill":
                ;
            case "<patternFill>":
                if (t.patternType)
                    n.patternType = t.patternType;
                break;
            case "<patternFill/>":
                ;
            case "</patternFill>":
                break;
            case "<bgColor":
                if (!n.bgColor)
                    n.bgColor = {};
                if (t.indexed)
                    n.bgColor.indexed = parseInt(t.indexed, 10);
                if (t.theme)
                    n.bgColor.theme = parseInt(t.theme, 10);
                if (t.tint)
                    n.bgColor.tint = parseFloat(t.tint);
                if (t.rgb)
                    n.bgColor.rgb = t.rgb.slice(-6);
                break;
            case "<bgColor/>":
                ;
            case "</bgColor>":
                break;
            case "<fgColor":
                if (!n.fgColor)
                    n.fgColor = {};
                if (t.theme)
                    n.fgColor.theme = parseInt(t.theme, 10);
                if (t.tint)
                    n.fgColor.tint = parseFloat(t.tint);
                if (t.rgb != null)
                    n.fgColor.rgb = t.rgb.slice(-6);
                break;
            case "<fgColor/>":
                ;
            case "</fgColor>":
                break;
            case "<stop":
                ;
            case "<stop/>":
                break;
            case "</stop>":
                break;
            case "<color":
                ;
            case "<color/>":
                break;
            case "</color>":
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                break;
            case "<ext":
                i = true;
                break;
            case "</ext>":
                i = false;
                break;
            default:
                if (a && a.WTF) {
                    if (!i)
                        throw new Error("unrecognized " + t[0] + " in fills")
                }
                ;
            }
        })
    }
    function Bl(e, r, t, a) {
        r.Fonts = [];
        var n = {};
        var s = false;
        (e[0].match(Hr) || []).forEach(function(e) {
            var f = Gr(e);
            switch (jr(f[0])) {
            case "<fonts":
                ;
            case "<fonts>":
                ;
            case "</fonts>":
                break;
            case "<font":
                ;
            case "<font>":
                break;
            case "</font>":
                ;
            case "<font/>":
                r.Fonts.push(n);
                n = {};
                break;
            case "<name":
                if (f.val)
                    n.name = lt(f.val);
                break;
            case "<name/>":
                ;
            case "</name>":
                break;
            case "<b":
                n.bold = f.val ? nt(f.val) : 1;
                break;
            case "<b/>":
                n.bold = 1;
                break;
            case "<i":
                n.italic = f.val ? nt(f.val) : 1;
                break;
            case "<i/>":
                n.italic = 1;
                break;
            case "<u":
                switch (f.val) {
                case "none":
                    n.underline = 0;
                    break;
                case "single":
                    n.underline = 1;
                    break;
                case "double":
                    n.underline = 2;
                    break;
                case "singleAccounting":
                    n.underline = 33;
                    break;
                case "doubleAccounting":
                    n.underline = 34;
                    break;
                }
                break;
            case "<u/>":
                n.underline = 1;
                break;
            case "<strike":
                n.strike = f.val ? nt(f.val) : 1;
                break;
            case "<strike/>":
                n.strike = 1;
                break;
            case "<outline":
                n.outline = f.val ? nt(f.val) : 1;
                break;
            case "<outline/>":
                n.outline = 1;
                break;
            case "<shadow":
                n.shadow = f.val ? nt(f.val) : 1;
                break;
            case "<shadow/>":
                n.shadow = 1;
                break;
            case "<condense":
                n.condense = f.val ? nt(f.val) : 1;
                break;
            case "<condense/>":
                n.condense = 1;
                break;
            case "<extend":
                n.extend = f.val ? nt(f.val) : 1;
                break;
            case "<extend/>":
                n.extend = 1;
                break;
            case "<sz":
                if (f.val)
                    n.sz = +f.val;
                break;
            case "<sz/>":
                ;
            case "</sz>":
                break;
            case "<vertAlign":
                if (f.val)
                    n.vertAlign = f.val;
                break;
            case "<vertAlign/>":
                ;
            case "</vertAlign>":
                break;
            case "<family":
                if (f.val)
                    n.family = parseInt(f.val, 10);
                break;
            case "<family/>":
                ;
            case "</family>":
                break;
            case "<scheme":
                if (f.val)
                    n.scheme = f.val;
                break;
            case "<scheme/>":
                ;
            case "</scheme>":
                break;
            case "<charset":
                if (f.val == "1")
                    break;
                f.codepage = i[parseInt(f.val, 10)];
                break;
            case "<color":
                if (!n.color)
                    n.color = {};
                if (f.auto)
                    n.color.auto = nt(f.auto);
                if (f.rgb)
                    n.color.rgb = f.rgb.slice(-6);
                else if (f.indexed) {
                    n.color.index = parseInt(f.indexed, 10);
                    var o = Vn[n.color.index];
                    if (n.color.index == 81)
                        o = Vn[1];
                    if (!o)
                        o = Vn[1];
                    n.color.rgb = o[0].toString(16) + o[1].toString(16) + o[2].toString(16)
                } else if (f.theme) {
                    n.color.theme = parseInt(f.theme, 10);
                    if (f.tint)
                        n.color.tint = parseFloat(f.tint);
                    if (f.theme && t.themeElements && t.themeElements.clrScheme) {
                        n.color.rgb = Tl(t.themeElements.clrScheme[n.color.theme].rgb, n.color.tint || 0)
                    }
                }
                break;
            case "<color/>":
                ;
            case "</color>":
                break;
            case "<AlternateContent":
                s = true;
                break;
            case "</AlternateContent>":
                s = false;
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                break;
            case "<ext":
                s = true;
                break;
            case "</ext>":
                s = false;
                break;
            default:
                if (a && a.WTF) {
                    if (!s)
                        throw new Error("unrecognized " + f[0] + " in fonts")
                }
                ;
            }
        })
    }
    function Wl(e, r, t) {
        r.NumberFmt = [];
        var a = rr(X);
        for (var n = 0; n < a.length; ++n)
            r.NumberFmt[a[n]] = X[a[n]];
        var i = e[0].match(Hr);
        if (!i)
            return;
        for (n = 0; n < i.length; ++n) {
            var s = Gr(i[n]);
            switch (jr(s[0])) {
            case "<numFmts":
                ;
            case "</numFmts>":
                ;
            case "<numFmts/>":
                ;
            case "<numFmts>":
                break;
            case "<numFmt":
                {
                    var f = Yr(lt(s.formatCode))
                      , o = parseInt(s.numFmtId, 10);
                    r.NumberFmt[o] = f;
                    if (o > 0) {
                        if (o > 392) {
                            for (o = 392; o > 60; --o)
                                if (r.NumberFmt[o] == null)
                                    break;
                            r.NumberFmt[o] = f
                        }
                        We(f, o)
                    }
                }
                break;
            case "</numFmt>":
                break;
            default:
                if (t.WTF)
                    throw new Error("unrecognized " + s[0] + " in numFmts");
            }
        }
    }
    function Hl(e) {
        var r = ["<numFmts>"];
        [[5, 8], [23, 26], [41, 44], [50, 392]].forEach(function(t) {
            for (var a = t[0]; a <= t[1]; ++a)
                if (e[a] != null)
                    r[r.length] = kt("numFmt", null, {
                        numFmtId: a,
                        formatCode: qr(e[a])
                    })
        });
        if (r.length === 1)
            return "";
        r[r.length] = "</numFmts>";
        r[0] = kt("numFmts", null, {
            count: r.length - 2
        }).replace("/>", ">");
        return r.join("")
    }
    var zl = ["numFmtId", "fillId", "fontId", "borderId", "xfId"];
    var Vl = ["applyAlignment", "applyBorder", "applyFill", "applyFont", "applyNumberFormat", "applyProtection", "pivotButton", "quotePrefix"];
    function Gl(e, r, t) {
        r.CellXf = [];
        var a;
        var n = false;
        (e[0].match(Hr) || []).forEach(function(e) {
            var i = Gr(e)
              , s = 0;
            switch (jr(i[0])) {
            case "<cellXfs":
                ;
            case "<cellXfs>":
                ;
            case "<cellXfs/>":
                ;
            case "</cellXfs>":
                break;
            case "<xf":
                ;
            case "<xf/>":
                a = i;
                delete a[0];
                for (s = 0; s < zl.length; ++s)
                    if (a[zl[s]])
                        a[zl[s]] = parseInt(a[zl[s]], 10);
                for (s = 0; s < Vl.length; ++s)
                    if (a[Vl[s]])
                        a[Vl[s]] = nt(a[Vl[s]]);
                if (r.NumberFmt && a.numFmtId > 392) {
                    for (s = 392; s > 60; --s)
                        if (r.NumberFmt[a.numFmtId] == r.NumberFmt[s]) {
                            a.numFmtId = s;
                            break
                        }
                }
                r.CellXf.push(a);
                break;
            case "</xf>":
                break;
            case "<alignment":
                ;
            case "<alignment/>":
                var f = {};
                if (i.vertical)
                    f.vertical = i.vertical;
                if (i.horizontal)
                    f.horizontal = i.horizontal;
                if (i.textRotation != null)
                    f.textRotation = i.textRotation;
                if (i.indent)
                    f.indent = i.indent;
                if (i.wrapText)
                    f.wrapText = nt(i.wrapText);
                a.alignment = f;
                break;
            case "</alignment>":
                break;
            case "<protection":
                break;
            case "</protection>":
                ;
            case "<protection/>":
                break;
            case "<AlternateContent":
                n = true;
                break;
            case "</AlternateContent>":
                n = false;
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                break;
            case "<ext":
                n = true;
                break;
            case "</ext>":
                n = false;
                break;
            default:
                if (t && t.WTF) {
                    if (!n)
                        throw new Error("unrecognized " + i[0] + " in cellXfs")
                }
                ;
            }
        })
    }
    function jl(e) {
        var r = [];
        r[r.length] = kt("cellXfs", null);
        e.forEach(function(e) {
            r[r.length] = kt("xf", null, e)
        });
        r[r.length] = "</cellXfs>";
        if (r.length === 2)
            return "";
        r[0] = kt("cellXfs", null, {
            count: r.length - 2
        }).replace("/>", ">");
        return r.join("")
    }
    var Xl = function uk() {
        var e = /<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/;
        var r = /<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/;
        var t = /<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/;
        var a = /<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/;
        var n = /<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/;
        return function i(s, f, o) {
            var l = {};
            if (!s)
                return l;
            s = s.replace(/<!--([\s\S]*?)-->/gm, "").replace(/<!DOCTYPE[^\[]*\[[^\]]*\]>/gm, "");
            var c;
            if (c = s.match(e))
                Wl(c, l, o);
            if (c = s.match(a))
                Bl(c, l, f, o);
            if (c = s.match(t))
                Ul(c, l, f, o);
            if (c = s.match(n))
                Ml(c, l, f, o);
            if (c = s.match(r))
                Gl(c, l, o);
            return l
        }
    }();
    function $l(e, r) {
        var t = [Mr, kt("styleSheet", null, {
            xmlns: St[0],
            "xmlns:vt": yt.vt
        })], a;
        if (e.SSF && (a = Hl(e.SSF)) != null)
            t[t.length] = a;
        t[t.length] = '<fonts count="1"><font><sz val="12"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts>';
        t[t.length] = '<fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills>';
        t[t.length] = '<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>';
        t[t.length] = '<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>';
        if (a = jl(r.cellXfs))
            t[t.length] = a;
        t[t.length] = '<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>';
        t[t.length] = '<dxfs count="0"/>';
        t[t.length] = '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4"/>';
        if (t.length > 2) {
            t[t.length] = "</styleSheet>";
            t[1] = t[1].replace("/>", ">")
        }
        return t.join("")
    }
    function Yl(e, r) {
        var t = e._R(2);
        var a = Ha(e, r - 2);
        return [t, a]
    }
    function Kl(e, r, t) {
        if (!t)
            t = ua(6 + 4 * r.length);
        t._W(2, e);
        za(r, t);
        var a = t.length > t.l ? t.slice(0, t.l) : t;
        if (t.l == null)
            t.l = t.length;
        return a
    }
    function Jl(e, r, t) {
        var a = {};
        a.sz = e._R(2) / 20;
        var n = mn(e, 2, t);
        if (n.fItalic)
            a.italic = 1;
        if (n.fCondense)
            a.condense = 1;
        if (n.fExtend)
            a.extend = 1;
        if (n.fShadow)
            a.shadow = 1;
        if (n.fOutline)
            a.outline = 1;
        if (n.fStrikeout)
            a.strike = 1;
        var i = e._R(2);
        if (i === 700)
            a.bold = 1;
        switch (e._R(2)) {
        case 1:
            a.vertAlign = "superscript";
            break;
        case 2:
            a.vertAlign = "subscript";
            break;
        }
        var s = e._R(1);
        if (s != 0)
            a.underline = s;
        var f = e._R(1);
        if (f > 0)
            a.family = f;
        var o = e._R(1);
        if (o > 0)
            a.charset = o;
        e.l++;
        a.color = pn(e, 8);
        switch (e._R(1)) {
        case 1:
            a.scheme = "major";
            break;
        case 2:
            a.scheme = "minor";
            break;
        }
        a.name = Ha(e, r - 21);
        return a
    }
    function ql(e, r) {
        if (!r)
            r = ua(25 + 4 * 32);
        r._W(2, e.sz * 20);
        bn(e, r);
        r._W(2, e.bold ? 700 : 400);
        var t = 0;
        if (e.vertAlign == "superscript")
            t = 1;
        else if (e.vertAlign == "subscript")
            t = 2;
        r._W(2, t);
        r._W(1, e.underline || 0);
        r._W(1, e.family || 0);
        r._W(1, e.charset || 0);
        r._W(1, 0);
        gn(e.color, r);
        var a = 0;
        if (e.scheme == "major")
            a = 1;
        if (e.scheme == "minor")
            a = 2;
        r._W(1, a);
        za(e.name, r);
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    var Zl = ["none", "solid", "mediumGray", "darkGray", "lightGray", "darkHorizontal", "darkVertical", "darkDown", "darkUp", "darkGrid", "darkTrellis", "lightHorizontal", "lightVertical", "lightDown", "lightUp", "lightGrid", "lightTrellis", "gray125", "gray0625"];
    var Ql;
    var ec = ha;
    function rc(e, r) {
        if (!r)
            r = ua(4 * 3 + 8 * 7 + 16 * 1);
        if (!Ql)
            Ql = ar(Zl);
        var t = Ql[e.patternType];
        if (t == null)
            t = 40;
        r._W(4, t);
        var a = 0;
        if (t != 40) {
            gn({
                auto: 1
            }, r);
            gn({
                auto: 1
            }, r);
            for (; a < 12; ++a)
                r._W(4, 0)
        } else {
            for (; a < 4; ++a)
                r._W(4, 0);
            for (; a < 12; ++a)
                r._W(4, 0)
        }
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    function tc(e, r) {
        var t = e.l + r;
        var a = e._R(2);
        var n = e._R(2);
        e.l = t;
        return {
            ixfe: a,
            numFmtId: n
        }
    }
    function ac(e, r, t) {
        if (!t)
            t = ua(16);
        t._W(2, r || 0);
        t._W(2, e.numFmtId || 0);
        t._W(2, 0);
        t._W(2, 0);
        t._W(2, 0);
        t._W(1, 0);
        t._W(1, 0);
        var a = 0;
        t._W(1, a);
        t._W(1, 0);
        t._W(1, 0);
        t._W(1, 0);
        return t
    }
    function nc(e, r) {
        if (!r)
            r = ua(10);
        r._W(1, 0);
        r._W(1, 0);
        r._W(4, 0);
        r._W(4, 0);
        return r
    }
    var ic = ha;
    function sc(e, r) {
        if (!r)
            r = ua(51);
        r._W(1, 0);
        nc(null, r);
        nc(null, r);
        nc(null, r);
        nc(null, r);
        nc(null, r);
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    function fc(e, r) {
        if (!r)
            r = ua(12 + 4 * 10);
        r._W(4, e.xfId);
        r._W(2, 1);
        r._W(1, +e.builtinId);
        r._W(1, 0);
        tn(e.name || "", r);
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    function oc(e, r, t) {
        var a = ua(4 + 256 * 2 * 4);
        a._W(4, e);
        tn(r, a);
        tn(t, a);
        return a.length > a.l ? a.slice(0, a.l) : a
    }
    function lc(e, r, t) {
        var a = {};
        a.NumberFmt = [];
        for (var n in X)
            a.NumberFmt[n] = X[n];
        a.CellXf = [];
        a.Fonts = [];
        var i = [];
        var s = false;
        da(e, function f(e, n, o) {
            switch (o) {
            case 44:
                a.NumberFmt[e[0]] = e[1];
                We(e[1], e[0]);
                break;
            case 43:
                a.Fonts.push(e);
                if (e.color.theme != null && r && r.themeElements && r.themeElements.clrScheme) {
                    e.color.rgb = Tl(r.themeElements.clrScheme[e.color.theme].rgb, e.color.tint || 0)
                }
                break;
            case 1025:
                break;
            case 45:
                break;
            case 46:
                break;
            case 47:
                if (i[i.length - 1] == 617) {
                    a.CellXf.push(e)
                }
                break;
            case 48:
                ;
            case 507:
                ;
            case 572:
                ;
            case 475:
                break;
            case 1171:
                ;
            case 2102:
                ;
            case 1130:
                ;
            case 512:
                ;
            case 2095:
                ;
            case 3072:
                break;
            case 35:
                s = true;
                break;
            case 36:
                s = false;
                break;
            case 37:
                i.push(o);
                s = true;
                break;
            case 38:
                i.pop();
                s = false;
                break;
            default:
                if (n.T > 0)
                    i.push(o);
                else if (n.T < 0)
                    i.pop();
                else if (!s || t.WTF && i[i.length - 1] != 37)
                    throw new Error("Unexpected record 0x" + o.toString(16));
            }
        });
        return a
    }
    function cc(e, r) {
        if (!r)
            return;
        var t = 0;
        [[5, 8], [23, 26], [41, 44], [50, 392]].forEach(function(e) {
            for (var a = e[0]; a <= e[1]; ++a)
                if (r[a] != null)
                    ++t
        });
        if (t == 0)
            return;
        pa(e, 615, Wa(t));
        [[5, 8], [23, 26], [41, 44], [50, 392]].forEach(function(t) {
            for (var a = t[0]; a <= t[1]; ++a)
                if (r[a] != null)
                    pa(e, 44, Kl(a, r[a]))
        });
        pa(e, 616)
    }
    function hc(e) {
        var r = 1;
        if (r == 0)
            return;
        pa(e, 611, Wa(r));
        pa(e, 43, ql({
            sz: 12,
            color: {
                theme: 1
            },
            name: "Calibri",
            family: 2,
            scheme: "minor"
        }));
        pa(e, 612)
    }
    function uc(e) {
        var r = 2;
        if (r == 0)
            return;
        pa(e, 603, Wa(r));
        pa(e, 45, rc({
            patternType: "none"
        }));
        pa(e, 45, rc({
            patternType: "gray125"
        }));
        pa(e, 604)
    }
    function dc(e) {
        var r = 1;
        if (r == 0)
            return;
        pa(e, 613, Wa(r));
        pa(e, 46, sc({}));
        pa(e, 614)
    }
    function vc(e) {
        var r = 1;
        pa(e, 626, Wa(r));
        pa(e, 47, ac({
            numFmtId: 0,
            fontId: 0,
            fillId: 0,
            borderId: 0
        }, 65535));
        pa(e, 627)
    }
    function pc(e, r) {
        pa(e, 617, Wa(r.length));
        r.forEach(function(r) {
            pa(e, 47, ac(r, 0))
        });
        pa(e, 618)
    }
    function gc(e) {
        var r = 1;
        pa(e, 619, Wa(r));
        pa(e, 48, fc({
            xfId: 0,
            builtinId: 0,
            name: "Normal"
        }));
        pa(e, 620)
    }
    function mc(e) {
        var r = 0;
        pa(e, 505, Wa(r));
        pa(e, 506)
    }
    function bc(e) {
        var r = 0;
        pa(e, 508, oc(r, "TableStyleMedium9", "PivotStyleMedium4"));
        pa(e, 509)
    }
    function wc() {
        return
    }
    function kc(e, r) {
        var t = va();
        pa(t, 278);
        cc(t, e.SSF);
        hc(t, e);
        uc(t, e);
        dc(t, e);
        vc(t, e);
        pc(t, r.cellXfs);
        gc(t, e);
        mc(t, e);
        bc(t, e);
        wc(t, e);
        pa(t, 279);
        return t.end()
    }
    var Tc = ["</a:lt1>", "</a:dk1>", "</a:lt2>", "</a:dk2>", "</a:accent1>", "</a:accent2>", "</a:accent3>", "</a:accent4>", "</a:accent5>", "</a:accent6>", "</a:hlink>", "</a:folHlink>"];
    function Ac(e, r, t) {
        r.themeElements.clrScheme = [];
        var a = {};
        (e[0].match(Hr) || []).forEach(function(e) {
            var n = Gr(e);
            switch (n[0]) {
            case "<a:clrScheme":
                ;
            case "</a:clrScheme>":
                break;
            case "<a:srgbClr":
                a.rgb = n.val;
                break;
            case "<a:sysClr":
                a.rgb = n.lastClr;
                break;
            case "<a:dk1>":
                ;
            case "</a:dk1>":
                ;
            case "<a:lt1>":
                ;
            case "</a:lt1>":
                ;
            case "<a:dk2>":
                ;
            case "</a:dk2>":
                ;
            case "<a:lt2>":
                ;
            case "</a:lt2>":
                ;
            case "<a:accent1>":
                ;
            case "</a:accent1>":
                ;
            case "<a:accent2>":
                ;
            case "</a:accent2>":
                ;
            case "<a:accent3>":
                ;
            case "</a:accent3>":
                ;
            case "<a:accent4>":
                ;
            case "</a:accent4>":
                ;
            case "<a:accent5>":
                ;
            case "</a:accent5>":
                ;
            case "<a:accent6>":
                ;
            case "</a:accent6>":
                ;
            case "<a:hlink>":
                ;
            case "</a:hlink>":
                ;
            case "<a:folHlink>":
                ;
            case "</a:folHlink>":
                if (n[0].charAt(1) === "/") {
                    r.themeElements.clrScheme[Tc.indexOf(n[0])] = a;
                    a = {}
                } else {
                    a.name = n[0].slice(3, n[0].length - 1)
                }
                break;
            default:
                if (t && t.WTF)
                    throw new Error("Unrecognized " + n[0] + " in clrScheme");
            }
        })
    }
    function Ec() {}
    function Cc() {}
    var yc = /<a:clrScheme([^>]*)>[\s\S]*<\/a:clrScheme>/;
    var Sc = /<a:fontScheme([^>]*)>[\s\S]*<\/a:fontScheme>/;
    var _c = /<a:fmtScheme([^>]*)>[\s\S]*<\/a:fmtScheme>/;
    function xc(e, r, t) {
        r.themeElements = {};
        var a;
        [["clrScheme", yc, Ac], ["fontScheme", Sc, Ec], ["fmtScheme", _c, Cc]].forEach(function(n) {
            if (!(a = e.match(n[1])))
                throw new Error(n[0] + " not found in themeElements");
            n[2](a, r, t)
        })
    }
    var Oc = /<a:themeElements([^>]*)>[\s\S]*<\/a:themeElements>/;
    function Rc(e, r) {
        if (!e || e.length === 0)
            e = Ic();
        var t;
        var a = {};
        if (!(t = e.match(Oc)))
            throw new Error("themeElements not found in theme");
        xc(t[0], a, r);
        a.raw = e;
        return a
    }
    function Ic(e, r) {
        if (r && r.themeXLSX)
            return r.themeXLSX;
        if (e && typeof e.raw == "string")
            return e.raw;
        var t = [Mr];
        t[t.length] = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">';
        t[t.length] = "<a:themeElements>";
        t[t.length] = '<a:clrScheme name="Office">';
        t[t.length] = '<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1>';
        t[t.length] = '<a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>';
        t[t.length] = '<a:dk2><a:srgbClr val="1F497D"/></a:dk2>';
        t[t.length] = '<a:lt2><a:srgbClr val="EEECE1"/></a:lt2>';
        t[t.length] = '<a:accent1><a:srgbClr val="4F81BD"/></a:accent1>';
        t[t.length] = '<a:accent2><a:srgbClr val="C0504D"/></a:accent2>';
        t[t.length] = '<a:accent3><a:srgbClr val="9BBB59"/></a:accent3>';
        t[t.length] = '<a:accent4><a:srgbClr val="8064A2"/></a:accent4>';
        t[t.length] = '<a:accent5><a:srgbClr val="4BACC6"/></a:accent5>';
        t[t.length] = '<a:accent6><a:srgbClr val="F79646"/></a:accent6>';
        t[t.length] = '<a:hlink><a:srgbClr val="0000FF"/></a:hlink>';
        t[t.length] = '<a:folHlink><a:srgbClr val="800080"/></a:folHlink>';
        t[t.length] = "</a:clrScheme>";
        t[t.length] = '<a:fontScheme name="Office">';
        t[t.length] = "<a:majorFont>";
        t[t.length] = '<a:latin typeface="Cambria"/>';
        t[t.length] = '<a:ea typeface=""/>';
        t[t.length] = '<a:cs typeface=""/>';
        t[t.length] = '<a:font script="Jpan" typeface="ＭＳ Ｐゴシック"/>';
        t[t.length] = '<a:font script="Hang" typeface="맑은 고딕"/>';
        t[t.length] = '<a:font script="Hans" typeface="宋体"/>';
        t[t.length] = '<a:font script="Hant" typeface="新細明體"/>';
        t[t.length] = '<a:font script="Arab" typeface="Times New Roman"/>';
        t[t.length] = '<a:font script="Hebr" typeface="Times New Roman"/>';
        t[t.length] = '<a:font script="Thai" typeface="Tahoma"/>';
        t[t.length] = '<a:font script="Ethi" typeface="Nyala"/>';
        t[t.length] = '<a:font script="Beng" typeface="Vrinda"/>';
        t[t.length] = '<a:font script="Gujr" typeface="Shruti"/>';
        t[t.length] = '<a:font script="Khmr" typeface="MoolBoran"/>';
        t[t.length] = '<a:font script="Knda" typeface="Tunga"/>';
        t[t.length] = '<a:font script="Guru" typeface="Raavi"/>';
        t[t.length] = '<a:font script="Cans" typeface="Euphemia"/>';
        t[t.length] = '<a:font script="Cher" typeface="Plantagenet Cherokee"/>';
        t[t.length] = '<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>';
        t[t.length] = '<a:font script="Tibt" typeface="Microsoft Himalaya"/>';
        t[t.length] = '<a:font script="Thaa" typeface="MV Boli"/>';
        t[t.length] = '<a:font script="Deva" typeface="Mangal"/>';
        t[t.length] = '<a:font script="Telu" typeface="Gautami"/>';
        t[t.length] = '<a:font script="Taml" typeface="Latha"/>';
        t[t.length] = '<a:font script="Syrc" typeface="Estrangelo Edessa"/>';
        t[t.length] = '<a:font script="Orya" typeface="Kalinga"/>';
        t[t.length] = '<a:font script="Mlym" typeface="Kartika"/>';
        t[t.length] = '<a:font script="Laoo" typeface="DokChampa"/>';
        t[t.length] = '<a:font script="Sinh" typeface="Iskoola Pota"/>';
        t[t.length] = '<a:font script="Mong" typeface="Mongolian Baiti"/>';
        t[t.length] = '<a:font script="Viet" typeface="Times New Roman"/>';
        t[t.length] = '<a:font script="Uigh" typeface="Microsoft Uighur"/>';
        t[t.length] = '<a:font script="Geor" typeface="Sylfaen"/>';
        t[t.length] = "</a:majorFont>";
        t[t.length] = "<a:minorFont>";
        t[t.length] = '<a:latin typeface="Calibri"/>';
        t[t.length] = '<a:ea typeface=""/>';
        t[t.length] = '<a:cs typeface=""/>';
        t[t.length] = '<a:font script="Jpan" typeface="ＭＳ Ｐゴシック"/>';
        t[t.length] = '<a:font script="Hang" typeface="맑은 고딕"/>';
        t[t.length] = '<a:font script="Hans" typeface="宋体"/>';
        t[t.length] = '<a:font script="Hant" typeface="新細明體"/>';
        t[t.length] = '<a:font script="Arab" typeface="Arial"/>';
        t[t.length] = '<a:font script="Hebr" typeface="Arial"/>';
        t[t.length] = '<a:font script="Thai" typeface="Tahoma"/>';
        t[t.length] = '<a:font script="Ethi" typeface="Nyala"/>';
        t[t.length] = '<a:font script="Beng" typeface="Vrinda"/>';
        t[t.length] = '<a:font script="Gujr" typeface="Shruti"/>';
        t[t.length] = '<a:font script="Khmr" typeface="DaunPenh"/>';
        t[t.length] = '<a:font script="Knda" typeface="Tunga"/>';
        t[t.length] = '<a:font script="Guru" typeface="Raavi"/>';
        t[t.length] = '<a:font script="Cans" typeface="Euphemia"/>';
        t[t.length] = '<a:font script="Cher" typeface="Plantagenet Cherokee"/>';
        t[t.length] = '<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>';
        t[t.length] = '<a:font script="Tibt" typeface="Microsoft Himalaya"/>';
        t[t.length] = '<a:font script="Thaa" typeface="MV Boli"/>';
        t[t.length] = '<a:font script="Deva" typeface="Mangal"/>';
        t[t.length] = '<a:font script="Telu" typeface="Gautami"/>';
        t[t.length] = '<a:font script="Taml" typeface="Latha"/>';
        t[t.length] = '<a:font script="Syrc" typeface="Estrangelo Edessa"/>';
        t[t.length] = '<a:font script="Orya" typeface="Kalinga"/>';
        t[t.length] = '<a:font script="Mlym" typeface="Kartika"/>';
        t[t.length] = '<a:font script="Laoo" typeface="DokChampa"/>';
        t[t.length] = '<a:font script="Sinh" typeface="Iskoola Pota"/>';
        t[t.length] = '<a:font script="Mong" typeface="Mongolian Baiti"/>';
        t[t.length] = '<a:font script="Viet" typeface="Arial"/>';
        t[t.length] = '<a:font script="Uigh" typeface="Microsoft Uighur"/>';
        t[t.length] = '<a:font script="Geor" typeface="Sylfaen"/>';
        t[t.length] = "</a:minorFont>";
        t[t.length] = "</a:fontScheme>";
        t[t.length] = '<a:fmtScheme name="Office">';
        t[t.length] = "<a:fillStyleLst>";
        t[t.length] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>';
        t[t.length] = '<a:gradFill rotWithShape="1">';
        t[t.length] = "<a:gsLst>";
        t[t.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs>';
        t[t.length] = "</a:gsLst>";
        t[t.length] = '<a:lin ang="16200000" scaled="1"/>';
        t[t.length] = "</a:gradFill>";
        t[t.length] = '<a:gradFill rotWithShape="1">';
        t[t.length] = "<a:gsLst>";
        t[t.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/><a:satMod val="130000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/><a:satMod val="350000"/></a:schemeClr></a:gs>';
        t[t.length] = "</a:gsLst>";
        t[t.length] = '<a:lin ang="16200000" scaled="0"/>';
        t[t.length] = "</a:gradFill>";
        t[t.length] = "</a:fillStyleLst>";
        t[t.length] = "<a:lnStyleLst>";
        t[t.length] = '<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln>';
        t[t.length] = '<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>';
        t[t.length] = '<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>';
        t[t.length] = "</a:lnStyleLst>";
        t[t.length] = "<a:effectStyleLst>";
        t[t.length] = "<a:effectStyle>";
        t[t.length] = "<a:effectLst>";
        t[t.length] = '<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw>';
        t[t.length] = "</a:effectLst>";
        t[t.length] = "</a:effectStyle>";
        t[t.length] = "<a:effectStyle>";
        t[t.length] = "<a:effectLst>";
        t[t.length] = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>';
        t[t.length] = "</a:effectLst>";
        t[t.length] = "</a:effectStyle>";
        t[t.length] = "<a:effectStyle>";
        t[t.length] = "<a:effectLst>";
        t[t.length] = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>';
        t[t.length] = "</a:effectLst>";
        t[t.length] = '<a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d>';
        t[t.length] = '<a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d>';
        t[t.length] = "</a:effectStyle>";
        t[t.length] = "</a:effectStyleLst>";
        t[t.length] = "<a:bgFillStyleLst>";
        t[t.length] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>';
        t[t.length] = '<a:gradFill rotWithShape="1">';
        t[t.length] = "<a:gsLst>";
        t[t.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs>';
        t[t.length] = "</a:gsLst>";
        t[t.length] = '<a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path>';
        t[t.length] = "</a:gradFill>";
        t[t.length] = '<a:gradFill rotWithShape="1">';
        t[t.length] = "<a:gsLst>";
        t[t.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs>';
        t[t.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs>';
        t[t.length] = "</a:gsLst>";
        t[t.length] = '<a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path>';
        t[t.length] = "</a:gradFill>";
        t[t.length] = "</a:bgFillStyleLst>";
        t[t.length] = "</a:fmtScheme>";
        t[t.length] = "</a:themeElements>";
        t[t.length] = "<a:objectDefaults>";
        t[t.length] = "<a:spDef>";
        t[t.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="1"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="2"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></a:style>';
        t[t.length] = "</a:spDef>";
        t[t.length] = "<a:lnDef>";
        t[t.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="2"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="1"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="tx1"/></a:fontRef></a:style>';
        t[t.length] = "</a:lnDef>";
        t[t.length] = "</a:objectDefaults>";
        t[t.length] = "<a:extraClrSchemeLst/>";
        t[t.length] = "</a:theme>";
        return t.join("")
    }
    function Nc(e, r, t) {
        var a = e.l + r;
        var n = e._R(4);
        if (n === 124226)
            return;
        if (!t.cellStyles) {
            e.l = a;
            return
        }
        var i = e.slice(e.l);
        e.l = a;
        var s;
        try {
            s = Pr(i, {
                type: "array"
            })
        } catch (f) {
            return
        }
        var o = Rr(s, "theme/theme/theme1.xml", true);
        if (!o)
            return;
        return Rc(o, t)
    }
    function Dc(e) {
        return e._R(4)
    }
    function Fc(e) {
        var r = {};
        r.xclrType = e._R(2);
        r.nTintShade = e._R(2);
        switch (r.xclrType) {
        case 0:
            e.l += 4;
            break;
        case 1:
            r.xclrValue = Pc(e, 4);
            break;
        case 2:
            r.xclrValue = ks(e, 4);
            break;
        case 3:
            r.xclrValue = Dc(e, 4);
            break;
        case 4:
            e.l += 4;
            break;
        }
        e.l += 8;
        return r
    }
    function Pc(e, r) {
        return ha(e, r)
    }
    function Lc(e, r) {
        return ha(e, r)
    }
    function Mc(e) {
        var r = e._R(2);
        var t = e._R(2) - 4;
        var a = [r];
        switch (r) {
        case 4:
            ;
        case 5:
            ;
        case 7:
            ;
        case 8:
            ;
        case 9:
            ;
        case 10:
            ;
        case 11:
            ;
        case 13:
            a[1] = Fc(e, t);
            break;
        case 6:
            a[1] = Lc(e, t);
            break;
        case 14:
            ;
        case 15:
            a[1] = e._R(t === 1 ? 1 : 2);
            break;
        default:
            throw new Error("Unrecognized ExtProp type: " + r + " " + t);
        }
        return a
    }
    function Uc(e, r) {
        var t = e.l + r;
        e.l += 2;
        var a = e._R(2);
        e.l += 2;
        var n = e._R(2);
        var i = [];
        while (n-- > 0)
            i.push(Mc(e, t - e.l));
        return {
            ixfe: a,
            ext: i
        }
    }
    function Bc(e, r) {
        r.forEach(function(e) {
            switch (e[0]) {
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                break;
            case 9:
                break;
            case 10:
                break;
            case 11:
                break;
            case 13:
                break;
            case 14:
                break;
            case 15:
                break;
            }
        })
    }
    function Wc(e, r) {
        return {
            flags: e._R(4),
            version: e._R(4),
            name: Ha(e, r - 8)
        }
    }
    function Hc(e) {
        var r = ua(12 + 2 * e.name.length);
        r._W(4, e.flags);
        r._W(4, e.version);
        za(e.name, r);
        return r.slice(0, r.l)
    }
    function zc(e) {
        var r = [];
        var t = e._R(4);
        while (t-- > 0)
            r.push([e._R(4), e._R(4)]);
        return r
    }
    function Vc(e) {
        var r = ua(4 + 8 * e.length);
        r._W(4, e.length);
        for (var t = 0; t < e.length; ++t) {
            r._W(4, e[t][0]);
            r._W(4, e[t][1])
        }
        return r
    }
    function Gc(e, r) {
        var t = ua(8 + 2 * r.length);
        t._W(4, e);
        za(r, t);
        return t.slice(0, t.l)
    }
    function jc(e) {
        e.l += 4;
        return e._R(4) != 0
    }
    function Xc(e, r) {
        var t = ua(8);
        t._W(4, e);
        t._W(4, r ? 1 : 0);
        return t
    }
    function $c(e, r, t) {
        var a = {
            Types: [],
            Cell: [],
            Value: []
        };
        var n = t || {};
        var i = [];
        var s = false;
        var f = 2;
        da(e, function(e, r, t) {
            switch (t) {
            case 335:
                a.Types.push({
                    name: e.name
                });
                break;
            case 51:
                e.forEach(function(e) {
                    if (f == 1)
                        a.Cell.push({
                            type: a.Types[e[0] - 1].name,
                            index: e[1]
                        });
                    else if (f == 0)
                        a.Value.push({
                            type: a.Types[e[0] - 1].name,
                            index: e[1]
                        })
                });
                break;
            case 337:
                f = e ? 1 : 0;
                break;
            case 338:
                f = 2;
                break;
            case 35:
                i.push(t);
                s = true;
                break;
            case 36:
                i.pop();
                s = false;
                break;
            default:
                if (r.T) {} else if (!s || n.WTF && i[i.length - 1] != 35)
                    throw new Error("Unexpected record 0x" + t.toString(16));
            }
        });
        return a
    }
    function Yc() {
        var e = va();
        pa(e, 332);
        pa(e, 334, Wa(1));
        pa(e, 335, Hc({
            name: "XLDAPR",
            version: 12e4,
            flags: 3496657072
        }));
        pa(e, 336);
        pa(e, 339, Gc(1, "XLDAPR"));
        pa(e, 52);
        pa(e, 35, Wa(514));
        pa(e, 4096, Wa(0));
        pa(e, 4097, rs(1));
        pa(e, 36);
        pa(e, 53);
        pa(e, 340);
        pa(e, 337, Xc(1, true));
        pa(e, 51, Vc([[1, 0]]));
        pa(e, 338);
        pa(e, 333);
        return e.end()
    }
    function Kc(e, r, t) {
        var a = {
            Types: [],
            Cell: [],
            Value: []
        };
        if (!e)
            return a;
        var n = false;
        var i = 2;
        var s;
        e.replace(Hr, function(e) {
            var r = Gr(e);
            switch (jr(r[0])) {
            case "<?xml":
                break;
            case "<metadata":
                ;
            case "</metadata>":
                break;
            case "<metadataTypes":
                ;
            case "</metadataTypes>":
                break;
            case "<metadataType":
                a.Types.push({
                    name: r.name
                });
                break;
            case "</metadataType>":
                break;
            case "<futureMetadata":
                for (var f = 0; f < a.Types.length; ++f)
                    if (a.Types[f].name == r.name)
                        s = a.Types[f];
                break;
            case "</futureMetadata>":
                break;
            case "<bk>":
                break;
            case "</bk>":
                break;
            case "<rc":
                if (i == 1)
                    a.Cell.push({
                        type: a.Types[r.t - 1].name,
                        index: +r.v
                    });
                else if (i == 0)
                    a.Value.push({
                        type: a.Types[r.t - 1].name,
                        index: +r.v
                    });
                break;
            case "</rc>":
                break;
            case "<cellMetadata":
                i = 1;
                break;
            case "</cellMetadata>":
                i = 2;
                break;
            case "<valueMetadata":
                i = 0;
                break;
            case "</valueMetadata>":
                i = 2;
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                ;
            case "<extLst/>":
                break;
            case "<ext":
                n = true;
                break;
            case "</ext>":
                n = false;
                break;
            case "<rvb":
                if (!s)
                    break;
                if (!s.offsets)
                    s.offsets = [];
                s.offsets.push(+r.i);
                break;
            default:
                if (!n && t.WTF)
                    throw new Error("unrecognized " + r[0] + " in metadata");
            }
            return e
        });
        return a
    }
    function Jc() {
        var e = [Mr];
        e.push('<metadata xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:xlrd="http://schemas.microsoft.com/office/spreadsheetml/2017/richdata" xmlns:xda="http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray">\n  <metadataTypes count="1">\n    <metadataType name="XLDAPR" minSupportedVersion="120000" copy="1" pasteAll="1" pasteValues="1" merge="1" splitFirst="1" rowColShift="1" clearFormats="1" clearComments="1" assign="1" coerce="1" cellMeta="1"/>\n  </metadataTypes>\n  <futureMetadata name="XLDAPR" count="1">\n    <bk>\n      <extLst>\n        <ext uri="{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}">\n          <xda:dynamicArrayProperties fDynamic="1" fCollapsed="0"/>\n        </ext>\n      </extLst>\n    </bk>\n  </futureMetadata>\n  <cellMetadata count="1">\n    <bk>\n      <rc t="1" v="0"/>\n    </bk>\n  </cellMetadata>\n</metadata>');
        return e.join("")
    }
    function qc(e) {
        var r = [];
        if (!e)
            return r;
        var t = 1;
        (e.match(Hr) || []).forEach(function(e) {
            var a = Gr(e);
            switch (a[0]) {
            case "<?xml":
                break;
            case "<calcChain":
                ;
            case "<calcChain>":
                ;
            case "</calcChain>":
                break;
            case "<c":
                delete a[0];
                if (a.i)
                    t = a.i;
                else
                    a.i = t;
                r.push(a);
                break;
            }
        });
        return r
    }
    function Zc(e) {
        var r = {};
        r.i = e._R(4);
        var t = {};
        t.r = e._R(4);
        t.c = e._R(4);
        r.r = Ra(t);
        var a = e._R(1);
        if (a & 2)
            r.l = "1";
        if (a & 8)
            r.a = "1";
        return r
    }
    function Qc(e, r, t) {
        var a = [];
        var n = false;
        da(e, function i(e, r, s) {
            switch (s) {
            case 63:
                a.push(e);
                break;
            default:
                if (r.T) {} else if (!n || t.WTF)
                    throw new Error("Unexpected record 0x" + s.toString(16));
            }
        });
        return a
    }
    function eh() {}
    function rh(e, r, t, a) {
        if (!e)
            return e;
        var n = a || {};
        var i = false
          , s = false;
        da(e, function f(e, r, t) {
            if (s)
                return;
            switch (t) {
            case 359:
                ;
            case 363:
                ;
            case 364:
                ;
            case 366:
                ;
            case 367:
                ;
            case 368:
                ;
            case 369:
                ;
            case 370:
                ;
            case 371:
                ;
            case 472:
                ;
            case 577:
                ;
            case 578:
                ;
            case 579:
                ;
            case 580:
                ;
            case 581:
                ;
            case 582:
                ;
            case 583:
                ;
            case 584:
                ;
            case 585:
                ;
            case 586:
                ;
            case 587:
                break;
            case 35:
                i = true;
                break;
            case 36:
                i = false;
                break;
            default:
                if (r.T) {} else if (!i || n.WTF)
                    throw new Error("Unexpected record 0x" + t.toString(16));
            }
        }, n)
    }
    function th(e, r) {
        if (!e)
            return "??";
        var t = (e.match(/<c:chart [^>]*r:id="([^"]*)"/) || ["", ""])[1];
        return r["!id"][t].Target
    }
    var ah = 1024;
    function nh(e, r) {
        var t = [21600, 21600];
        var a = ["m0,0l0", t[1], t[0], t[1], t[0], "0xe"].join(",");
        var n = [kt("xml", null, {
            "xmlns:v": _t.v,
            "xmlns:o": _t.o,
            "xmlns:x": _t.x,
            "xmlns:mv": _t.mv
        }).replace(/\/>/, ">"), kt("o:shapelayout", kt("o:idmap", null, {
            "v:ext": "edit",
            data: e
        }), {
            "v:ext": "edit"
        }), kt("v:shapetype", [kt("v:stroke", null, {
            joinstyle: "miter"
        }), kt("v:path", null, {
            gradientshapeok: "t",
            "o:connecttype": "rect"
        })].join(""), {
            id: "_x0000_t202",
            "o:spt": 202,
            coordsize: t.join(","),
            path: a
        })];
        while (ah < e * 1e3)
            ah += 1e3;
        r.forEach(function(e) {
            var r = Oa(e[0]);
            var t = {
                color2: "#BEFF82",
                type: "gradient"
            };
            if (t.type == "gradient")
                t.angle = "-180";
            var a = t.type == "gradient" ? kt("o:fill", null, {
                type: "gradientUnscaled",
                "v:ext": "view"
            }) : null;
            var i = kt("v:fill", a, t);
            var s = {
                on: "t",
                obscured: "t"
            };
            ++ah;
            n = n.concat(["<v:shape" + wt({
                id: "_x0000_s" + ah,
                type: "#_x0000_t202",
                style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (e[1].hidden ? ";visibility:hidden" : ""),
                fillcolor: "#ECFAD4",
                strokecolor: "#edeaa1"
            }) + ">", i, kt("v:shadow", null, s), kt("v:path", null, {
                "o:connecttype": "none"
            }), '<v:textbox><div style="text-align:left"></div></v:textbox>', '<x:ClientData ObjectType="Note">', "<x:MoveWithCells/>", "<x:SizeWithCells/>", bt("x:Anchor", [r.c + 1, 0, r.r + 1, 0, r.c + 3, 20, r.r + 5, 20].join(",")), bt("x:AutoFill", "False"), bt("x:Row", String(r.r)), bt("x:Column", String(r.c)), e[1].hidden ? "" : "<x:Visible/>", "</x:ClientData>", "</v:shape>"])
        });
        n.push("</xml>");
        return n.join("")
    }
    function ih(e, r, t, a) {
        var n = Array.isArray(e);
        var i;
        r.forEach(function(r) {
            var s = Oa(r.ref);
            if (n) {
                if (!e[s.r])
                    e[s.r] = [];
                i = e[s.r][s.c]
            } else
                i = e[r.ref];
            if (!i) {
                i = {
                    t: "z"
                };
                if (n)
                    e[s.r][s.c] = i;
                else
                    e[r.ref] = i;
                var f = Da(e["!ref"] || "BDWGO1000001:A1");
                if (f.s.r > s.r)
                    f.s.r = s.r;
                if (f.e.r < s.r)
                    f.e.r = s.r;
                if (f.s.c > s.c)
                    f.s.c = s.c;
                if (f.e.c < s.c)
                    f.e.c = s.c;
                var o = Na(f);
                if (o !== e["!ref"])
                    e["!ref"] = o
            }
            if (!i.c)
                i.c = [];
            var l = {
                a: r.author,
                t: r.t,
                r: r.r,
                T: t
            };
            if (r.h)
                l.h = r.h;
            for (var c = i.c.length - 1; c >= 0; --c) {
                if (!t && i.c[c].T)
                    return;
                if (t && !i.c[c].T)
                    i.c.splice(c, 1)
            }
            if (t && a)
                for (c = 0; c < a.length; ++c) {
                    if (l.a == a[c].id) {
                        l.a = a[c].name || l.a;
                        break
                    }
                }
            i.c.push(l)
        })
    }
    function sh(e, r) {
        if (e.match(/<(?:\w+:)?comments *\/>/))
            return [];
        var t = [];
        var a = [];
        var n = e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);
        if (n && n[1])
            n[1].split(/<\/\w*:?author>/).forEach(function(e) {
                if (e === "" || e.trim() === "")
                    return;
                var r = e.match(/<(?:\w+:)?author[^>]*>(.*)/);
                if (r)
                    t.push(r[1])
            });
        var i = e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);
        if (i && i[1])
            i[1].split(/<\/\w*:?comment>/).forEach(function(e) {
                if (e === "" || e.trim() === "")
                    return;
                var n = e.match(/<(?:\w+:)?comment[^>]*>/);
                if (!n)
                    return;
                var i = Gr(n[0]);
                var s = {
                    author: i.authorId && t[i.authorId] || "sheetjsghost",
                    ref: i.ref,
                    guid: i.guid
                };
                var f = Oa(i.ref);
                if (r.sheetRows && r.sheetRows <= f.r)
                    return;
                var o = e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);
                var l = !!o && !!o[1] && Po(o[1]) || {
                    r: "",
                    t: "",
                    h: ""
                };
                s.r = l.r;
                if (l.r == "<t></t>")
                    l.t = l.h = "";
                s.t = (l.t || "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
                if (r.cellHTML)
                    s.h = l.h;
                a.push(s)
            });
        return a
    }
    function fh(e) {
        var r = [Mr, kt("comments", null, {
            xmlns: St[0]
        })];
        var t = [];
        r.push("<authors>");
        e.forEach(function(e) {
            e[1].forEach(function(e) {
                var a = qr(e.a);
                if (t.indexOf(a) == -1) {
                    t.push(a);
                    r.push("<author>" + a + "</author>")
                }
                if (e.T && e.ID && t.indexOf("tc=" + e.ID) == -1) {
                    t.push("tc=" + e.ID);
                    r.push("<author>" + "tc=" + e.ID + "</author>")
                }
            })
        });
        if (t.length == 0) {
            t.push("SheetJ5");
            r.push("<author>SheetJ5</author>")
        }
        r.push("</authors>");
        r.push("<commentList>");
        e.forEach(function(e) {
            var a = 0
              , n = [];
            if (e[1][0] && e[1][0].T && e[1][0].ID)
                a = t.indexOf("tc=" + e[1][0].ID);
            else
                e[1].forEach(function(e) {
                    if (e.a)
                        a = t.indexOf(qr(e.a));
                    n.push(e.t || "")
                });
            r.push('<comment ref="' + e[0] + '" authorId="' + a + '"><text>');
            if (n.length <= 1)
                r.push(bt("t", qr(n[0] || "")));
            else {
                var i = "Comment:\n    " + n[0] + "\n";
                for (var s = 1; s < n.length; ++s)
                    i += "Reply:\n    " + n[s] + "\n";
                r.push(bt("t", qr(i)))
            }
            r.push("</text></comment>")
        });
        r.push("</commentList>");
        if (r.length > 2) {
            r[r.length] = "</comments>";
            r[1] = r[1].replace("/>", ">")
        }
        return r.join("")
    }
    function oh(e, r) {
        var t = [];
        var a = false
          , n = {}
          , i = 0;
        e.replace(Hr, function s(f, o) {
            var l = Gr(f);
            switch (jr(l[0])) {
            case "<?xml":
                break;
            case "<ThreadedComments":
                break;
            case "</ThreadedComments>":
                break;
            case "<threadedComment":
                n = {
                    author: l.personId,
                    guid: l.id,
                    ref: l.ref,
                    T: 1
                };
                break;
            case "</threadedComment>":
                if (n.t != null)
                    t.push(n);
                break;
            case "<text>":
                ;
            case "<text":
                i = o + f.length;
                break;
            case "</text>":
                n.t = e.slice(i, o).replace(/\r\n/g, "\n").replace(/\r/g, "\n");
                break;
            case "<mentions":
                ;
            case "<mentions>":
                a = true;
                break;
            case "</mentions>":
                a = false;
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                ;
            case "<extLst/>":
                break;
            case "<ext":
                a = true;
                break;
            case "</ext>":
                a = false;
                break;
            default:
                if (!a && r.WTF)
                    throw new Error("unrecognized " + l[0] + " in threaded comments");
            }
            return f
        });
        return t
    }
    function lh(e, r, t) {
        var a = [Mr, kt("ThreadedComments", null, {
            xmlns: yt.TCMNT
        }).replace(/[\/]>/, ">")];
        e.forEach(function(e) {
            var n = "";
            (e[1] || []).forEach(function(i, s) {
                if (!i.T) {
                    delete i.ID;
                    return
                }
                if (i.a && r.indexOf(i.a) == -1)
                    r.push(i.a);
                var f = {
                    ref: e[0],
                    id: "{54EE7951-7262-4200-6969-" + ("000000000000" + t.tcid++).slice(-12) + "}"
                };
                if (s == 0)
                    n = f.id;
                else
                    f.parentId = n;
                i.ID = f.id;
                if (i.a)
                    f.personId = "{54EE7950-7262-4200-6969-" + ("000000000000" + r.indexOf(i.a)).slice(-12) + "}";
                a.push(kt("threadedComment", bt("text", i.t || ""), f))
            })
        });
        a.push("</ThreadedComments>");
        return a.join("")
    }
    function ch(e, r) {
        var t = [];
        var a = false;
        e.replace(Hr, function n(e) {
            var n = Gr(e);
            switch (jr(n[0])) {
            case "<?xml":
                break;
            case "<personList":
                break;
            case "</personList>":
                break;
            case "<person":
                t.push({
                    name: n.displayname,
                    id: n.id
                });
                break;
            case "</person>":
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                ;
            case "<extLst/>":
                break;
            case "<ext":
                a = true;
                break;
            case "</ext>":
                a = false;
                break;
            default:
                if (!a && r.WTF)
                    throw new Error("unrecognized " + n[0] + " in threaded comments");
            }
            return e
        });
        return t
    }
    function hh(e) {
        var r = [Mr, kt("personList", null, {
            xmlns: yt.TCMNT,
            "xmlns:x": St[0]
        }).replace(/[\/]>/, ">")];
        e.forEach(function(e, t) {
            r.push(kt("person", null, {
                displayName: e,
                id: "{54EE7950-7262-4200-6969-" + ("000000000000" + t).slice(-12) + "}",
                userId: e,
                providerId: "None"
            }))
        });
        r.push("</personList>");
        return r.join("")
    }
    function uh(e) {
        var r = {};
        r.iauthor = e._R(4);
        var t = hn(e, 16);
        r.rfx = t.s;
        r.ref = Ra(t.s);
        e.l += 16;
        return r
    }
    function dh(e, r) {
        if (r == null)
            r = ua(36);
        r._W(4, e[1].iauthor);
        un(e[0], r);
        r._W(4, 0);
        r._W(4, 0);
        r._W(4, 0);
        r._W(4, 0);
        return r
    }
    var vh = Ha;
    function ph(e) {
        return za(e.slice(0, 54))
    }
    function gh(e, r) {
        var t = [];
        var a = [];
        var n = {};
        var i = false;
        da(e, function s(e, f, o) {
            switch (o) {
            case 632:
                a.push(e);
                break;
            case 635:
                n = e;
                break;
            case 637:
                n.t = e.t;
                n.h = e.h;
                n.r = e.r;
                break;
            case 636:
                n.author = a[n.iauthor];
                delete n.iauthor;
                if (r.sheetRows && n.rfx && r.sheetRows <= n.rfx.r)
                    break;
                if (!n.t)
                    n.t = "";
                delete n.rfx;
                t.push(n);
                break;
            case 3072:
                break;
            case 35:
                i = true;
                break;
            case 36:
                i = false;
                break;
            case 37:
                break;
            case 38:
                break;
            default:
                if (f.T) {} else if (!i || r.WTF)
                    throw new Error("Unexpected record 0x" + o.toString(16));
            }
        });
        return t
    }
    function mh(e) {
        var r = va();
        var t = [];
        pa(r, 628);
        pa(r, 630);
        e.forEach(function(e) {
            e[1].forEach(function(e) {
                if (t.indexOf(e.a) > -1)
                    return;
                t.push(e.a.slice(0, 54));
                pa(r, 632, ph(e.a))
            })
        });
        pa(r, 631);
        pa(r, 633);
        e.forEach(function(e) {
            e[1].forEach(function(a) {
                a.iauthor = t.indexOf(a.a);
                var n = {
                    s: Oa(e[0]),
                    e: Oa(e[0])
                };
                pa(r, 635, dh([n, a]));
                if (a.t && a.t.length > 0)
                    pa(r, 637, Ya(a));
                pa(r, 636);
                delete a.iauthor
            })
        });
        pa(r, 634);
        pa(r, 629);
        return r.end()
    }
    var bh = "application/vnd.ms-office.vbaProject";
    function wh(e) {
        var r = Ke.utils.cfb_new({
            root: "R"
        });
        e.FullPaths.forEach(function(t, a) {
            if (t.slice(-1) === "/" || !t.match(/_VBA_PROJECT_CUR/))
                return;
            var n = t.replace(/^[^\/]*/, "R").replace(/\/_VBA_PROJECT_CUR\u0000*/, "");
            Ke.utils.cfb_add(r, n, e.FileIndex[a].content)
        });
        return Ke.write(r)
    }
    function kh(e, r) {
        r.FullPaths.forEach(function(t, a) {
            if (a == 0)
                return;
            var n = t.replace(/[^\/]*[\/]/, "/_VBA_PROJECT_CUR/");
            if (n.slice(-1) !== "/")
                Ke.utils.cfb_add(e, n, r.FileIndex[a].content)
        })
    }
    var Th = ["xlsb", "xlsm", "xlam", "biff8", "xla"];
    function Ah() {
        return {
            "!type": "dialog"
        }
    }
    function Eh() {
        return {
            "!type": "dialog"
        }
    }
    function Ch() {
        return {
            "!type": "macro"
        }
    }
    function yh() {
        return {
            "!type": "macro"
        }
    }
    var Sh = function() {
        var e = /(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g;
        var r = {
            r: 0,
            c: 0
        };
        function t(e, t, a, n) {
            var i = false
              , s = false;
            if (a.length == 0)
                s = true;
            else if (a.charAt(0) == "[") {
                s = true;
                a = a.slice(1, -1)
            }
            if (n.length == 0)
                i = true;
            else if (n.charAt(0) == "[") {
                i = true;
                n = n.slice(1, -1)
            }
            var f = a.length > 0 ? parseInt(a, 10) | 0 : 0
              , o = n.length > 0 ? parseInt(n, 10) | 0 : 0;
            if (i)
                o += r.c;
            else
                --o;
            if (s)
                f += r.r;
            else
                --f;
            return t + (i ? "" : "$") + ya(o) + (s ? "" : "$") + Ta(f)
        }
        return function a(n, i) {
            r = i;
            return n.replace(e, t)
        }
    }();
    var _h = /(^|[^._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;
    var xh = function() {
        return function e(r, t) {
            return r.replace(_h, function(e, r, a, n, i, s) {
                var f = Ca(n) - (a ? 0 : t.c);
                var o = ka(s) - (i ? 0 : t.r);
                var l = o == 0 ? "" : !i ? "[" + o + "]" : o + 1;
                var c = f == 0 ? "" : !a ? "[" + f + "]" : f + 1;
                return r + "R" + l + "C" + c
            })
        }
    }();
    function Oh(e, r) {
        return e.replace(_h, function(e, t, a, n, i, s) {
            return t + (a == "$" ? a + n : ya(Ca(n) + r.c)) + (i == "$" ? i + s : Ta(ka(s) + r.r))
        })
    }
    function Rh(e, r, t) {
        var a = Ia(r)
          , n = a.s
          , i = Oa(t);
        var s = {
            r: i.r - n.r,
            c: i.c - n.c
        };
        return Oh(e, s)
    }
    function Ih(e) {
        if (e.length == 1)
            return false;
        return true
    }
    function Nh(e) {
        return e.replace(/_xlfn\./g, "")
    }
    function Dh(e) {
        e.l += 1;
        return
    }
    function Fh(e, r) {
        var t = e._R(r == 1 ? 1 : 2);
        return [t & 16383, t >> 14 & 1, t >> 15 & 1]
    }
    function Ph(e, r, t) {
        var a = 2;
        if (t) {
            if (t.biff >= 2 && t.biff <= 5)
                return Lh(e, r, t);
            else if (t.biff == 12)
                a = 4
        }
        var n = e._R(a)
          , i = e._R(a);
        var s = Fh(e, 2);
        var f = Fh(e, 2);
        return {
            s: {
                r: n,
                c: s[0],
                cRel: s[1],
                rRel: s[2]
            },
            e: {
                r: i,
                c: f[0],
                cRel: f[1],
                rRel: f[2]
            }
        }
    }
    function Lh(e) {
        var r = Fh(e, 2)
          , t = Fh(e, 2);
        var a = e._R(1);
        var n = e._R(1);
        return {
            s: {
                r: r[0],
                c: a,
                cRel: r[1],
                rRel: r[2]
            },
            e: {
                r: t[0],
                c: n,
                cRel: t[1],
                rRel: t[2]
            }
        }
    }
    function Mh(e, r, t) {
        if (t.biff < 8)
            return Lh(e, r, t);
        var a = e._R(t.biff == 12 ? 4 : 2)
          , n = e._R(t.biff == 12 ? 4 : 2);
        var i = Fh(e, 2);
        var s = Fh(e, 2);
        return {
            s: {
                r: a,
                c: i[0],
                cRel: i[1],
                rRel: i[2]
            },
            e: {
                r: n,
                c: s[0],
                cRel: s[1],
                rRel: s[2]
            }
        }
    }
    function Uh(e, r, t) {
        if (t && t.biff >= 2 && t.biff <= 5)
            return Bh(e, r, t);
        var a = e._R(t && t.biff == 12 ? 4 : 2);
        var n = Fh(e, 2);
        return {
            r: a,
            c: n[0],
            cRel: n[1],
            rRel: n[2]
        }
    }
    function Bh(e) {
        var r = Fh(e, 2);
        var t = e._R(1);
        return {
            r: r[0],
            c: t,
            cRel: r[1],
            rRel: r[2]
        }
    }
    function Wh(e) {
        var r = e._R(2);
        var t = e._R(2);
        return {
            r: r,
            c: t & 255,
            fQuoted: !!(t & 16384),
            cRel: t >> 15,
            rRel: t >> 15
        }
    }
    function Hh(e, r, t) {
        var a = t && t.biff ? t.biff : 8;
        if (a >= 2 && a <= 5)
            return zh(e, r, t);
        var n = e._R(a >= 12 ? 4 : 2);
        var i = e._R(2);
        var s = (i & 16384) >> 14
          , f = (i & 32768) >> 15;
        i &= 16383;
        if (f == 1)
            while (n > 524287)
                n -= 1048576;
        if (s == 1)
            while (i > 8191)
                i = i - 16384;
        return {
            r: n,
            c: i,
            cRel: s,
            rRel: f
        }
    }
    function zh(e) {
        var r = e._R(2);
        var t = e._R(1);
        var a = (r & 32768) >> 15
          , n = (r & 16384) >> 14;
        r &= 16383;
        if (a == 1 && r >= 8192)
            r = r - 16384;
        if (n == 1 && t >= 128)
            t = t - 256;
        return {
            r: r,
            c: t,
            cRel: n,
            rRel: a
        }
    }
    function Vh(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        var n = Ph(e, t.biff >= 2 && t.biff <= 5 ? 6 : 8, t);
        return [a, n]
    }
    function Gh(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        var n = e._R(2, "i");
        var i = 8;
        if (t)
            switch (t.biff) {
            case 5:
                e.l += 12;
                i = 6;
                break;
            case 12:
                i = 12;
                break;
            }
        var s = Ph(e, i, t);
        return [a, n, s]
    }
    function jh(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        e.l += t && t.biff > 8 ? 12 : t.biff < 8 ? 6 : 8;
        return [a]
    }
    function Xh(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        var n = e._R(2);
        var i = 8;
        if (t)
            switch (t.biff) {
            case 5:
                e.l += 12;
                i = 6;
                break;
            case 12:
                i = 12;
                break;
            }
        e.l += i;
        return [a, n]
    }
    function $h(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        var n = Mh(e, r - 1, t);
        return [a, n]
    }
    function Yh(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        e.l += t.biff == 2 ? 6 : t.biff == 12 ? 14 : 7;
        return [a]
    }
    function Kh(e) {
        var r = e[e.l + 1] & 1;
        var t = 1;
        e.l += 4;
        return [r, t]
    }
    function Jh(e, r, t) {
        e.l += 2;
        var a = e._R(t && t.biff == 2 ? 1 : 2);
        var n = [];
        for (var i = 0; i <= a; ++i)
            n.push(e._R(t && t.biff == 2 ? 1 : 2));
        return n
    }
    function qh(e, r, t) {
        var a = e[e.l + 1] & 255 ? 1 : 0;
        e.l += 2;
        return [a, e._R(t && t.biff == 2 ? 1 : 2)]
    }
    function Zh(e, r, t) {
        var a = e[e.l + 1] & 255 ? 1 : 0;
        e.l += 2;
        return [a, e._R(t && t.biff == 2 ? 1 : 2)]
    }
    function Qh(e) {
        var r = e[e.l + 1] & 255 ? 1 : 0;
        e.l += 2;
        return [r, e._R(2)]
    }
    function eu(e, r, t) {
        var a = e[e.l + 1] & 255 ? 1 : 0;
        e.l += t && t.biff == 2 ? 3 : 4;
        return [a]
    }
    function ru(e) {
        var r = e._R(1)
          , t = e._R(1);
        return [r, t]
    }
    function tu(e) {
        e._R(2);
        return ru(e, 2)
    }
    function au(e) {
        e._R(2);
        return ru(e, 2)
    }
    function nu(e, r, t) {
        var a = (e[e.l] & 96) >> 5;
        e.l += 1;
        var n = Uh(e, 0, t);
        return [a, n]
    }
    function iu(e, r, t) {
        var a = (e[e.l] & 96) >> 5;
        e.l += 1;
        var n = Hh(e, 0, t);
        return [a, n]
    }
    function su(e, r, t) {
        var a = (e[e.l] & 96) >> 5;
        e.l += 1;
        var n = e._R(2);
        if (t && t.biff == 5)
            e.l += 12;
        var i = Uh(e, 0, t);
        return [a, n, i]
    }
    function fu(e, r, t) {
        var a = (e[e.l] & 96) >> 5;
        e.l += 1;
        var n = e._R(t && t.biff <= 3 ? 1 : 2);
        return [Ed[n], Ad[n], a]
    }
    function ou(e, r, t) {
        var a = e[e.l++];
        var n = e._R(1)
          , i = t && t.biff <= 3 ? [a == 88 ? -1 : 0, e._R(1)] : lu(e);
        return [n, (i[0] === 0 ? Ad : Td)[i[1]]]
    }
    function lu(e) {
        return [e[e.l + 1] >> 7, e._R(2) & 32767]
    }
    function cu(e, r, t) {
        e.l += t && t.biff == 2 ? 3 : 4;
        return
    }
    function hu(e, r, t) {
        e.l++;
        if (t && t.biff == 12)
            return [e._R(4, "i"), 0];
        var a = e._R(2);
        var n = e._R(t && t.biff == 2 ? 1 : 2);
        return [a, n]
    }
    function uu(e) {
        e.l++;
        return Gn[e._R(1)]
    }
    function du(e) {
        e.l++;
        return e._R(2)
    }
    function vu(e) {
        e.l++;
        return e._R(1) !== 0
    }
    function pu(e) {
        e.l++;
        return dn(e, 8)
    }
    function gu(e, r, t) {
        e.l++;
        return is(e, r - 1, t)
    }
    function mu(e, r) {
        var t = [e._R(1)];
        if (r == 12)
            switch (t[0]) {
            case 2:
                t[0] = 4;
                break;
            case 4:
                t[0] = 16;
                break;
            case 0:
                t[0] = 1;
                break;
            case 1:
                t[0] = 2;
                break;
            }
        switch (t[0]) {
        case 4:
            t[1] = Zi(e, 1) ? "TRUE" : "FALSE";
            if (r != 12)
                e.l += 7;
            break;
        case 37:
            ;
        case 16:
            t[1] = Gn[e[e.l]];
            e.l += r == 12 ? 4 : 8;
            break;
        case 0:
            e.l += 8;
            break;
        case 1:
            t[1] = dn(e, 8);
            break;
        case 2:
            t[1] = cs(e, 0, {
                biff: r > 0 && r < 8 ? 2 : r
            });
            break;
        default:
            throw new Error("Bad SerAr: " + t[0]);
        }
        return t
    }
    function bu(e, r, t) {
        var a = e._R(t.biff == 12 ? 4 : 2);
        var n = [];
        for (var i = 0; i != a; ++i)
            n.push((t.biff == 12 ? hn : Os)(e, 8));
        return n
    }
    function wu(e, r, t) {
        var a = 0
          , n = 0;
        if (t.biff == 12) {
            a = e._R(4);
            n = e._R(4)
        } else {
            n = 1 + e._R(1);
            a = 1 + e._R(2)
        }
        if (t.biff >= 2 && t.biff < 8) {
            --a;
            if (--n == 0)
                n = 256
        }
        for (var i = 0, s = []; i != a && (s[i] = []); ++i)
            for (var f = 0; f != n; ++f)
                s[i][f] = mu(e, t.biff);
        return s
    }
    function ku(e, r, t) {
        var a = e._R(1) >>> 5 & 3;
        var n = !t || t.biff >= 8 ? 4 : 2;
        var i = e._R(n);
        switch (t.biff) {
        case 2:
            e.l += 5;
            break;
        case 3:
            ;
        case 4:
            e.l += 8;
            break;
        case 5:
            e.l += 12;
            break;
        }
        return [a, 0, i]
    }
    function Tu(e, r, t) {
        if (t.biff == 5)
            return Au(e, r, t);
        var a = e._R(1) >>> 5 & 3;
        var n = e._R(2);
        var i = e._R(4);
        return [a, n, i]
    }
    function Au(e) {
        var r = e._R(1) >>> 5 & 3;
        var t = e._R(2, "i");
        e.l += 8;
        var a = e._R(2);
        e.l += 12;
        return [r, t, a]
    }
    function Eu(e, r, t) {
        var a = e._R(1) >>> 5 & 3;
        e.l += t && t.biff == 2 ? 3 : 4;
        var n = e._R(t && t.biff == 2 ? 1 : 2);
        return [a, n]
    }
    function Cu(e, r, t) {
        var a = e._R(1) >>> 5 & 3;
        var n = e._R(t && t.biff == 2 ? 1 : 2);
        return [a, n]
    }
    function yu(e, r, t) {
        var a = e._R(1) >>> 5 & 3;
        e.l += 4;
        if (t.biff < 8)
            e.l--;
        if (t.biff == 12)
            e.l += 2;
        return [a]
    }
    function Su(e, r, t) {
        var a = (e[e.l++] & 96) >> 5;
        var n = e._R(2);
        var i = 4;
        if (t)
            switch (t.biff) {
            case 5:
                i = 15;
                break;
            case 12:
                i = 6;
                break;
            }
        e.l += i;
        return [a, n]
    }
    var _u = ha;
    var xu = ha;
    var Ou = ha;
    function Ru(e, r, t) {
        e.l += 2;
        return [Wh(e, 4, t)]
    }
    function Iu(e) {
        e.l += 6;
        return []
    }
    var Nu = Ru;
    var Du = Iu;
    var Fu = Iu;
    var Pu = Ru;
    function Lu(e) {
        e.l += 2;
        return [es(e), e._R(2) & 1]
    }
    var Mu = Ru;
    var Uu = Lu;
    var Bu = Iu;
    var Wu = Ru;
    var Hu = Ru;
    var zu = ["Data", "All", "Headers", "??", "?Data2", "??", "?DataHeaders", "??", "Totals", "??", "??", "??", "?DataTotals", "??", "??", "??", "?Current"];
    function Vu(e) {
        e.l += 2;
        var r = e._R(2);
        var t = e._R(2);
        var a = e._R(4);
        var n = e._R(2);
        var i = e._R(2);
        var s = zu[t >> 2 & 31];
        return {
            ixti: r,
            coltype: t & 3,
            rt: s,
            idx: a,
            c: n,
            C: i
        }
    }
    function Gu(e) {
        e.l += 2;
        return [e._R(4)]
    }
    function ju(e, r, t) {
        e.l += 5;
        e.l += 2;
        e.l += t.biff == 2 ? 1 : 4;
        return ["PTGSHEET"]
    }
    function Xu(e, r, t) {
        e.l += t.biff == 2 ? 4 : 5;
        return ["PTGENDSHEET"]
    }
    function $u(e) {
        var r = e._R(1) >>> 5 & 3;
        var t = e._R(2);
        return [r, t]
    }
    function Yu(e) {
        var r = e._R(1) >>> 5 & 3;
        var t = e._R(2);
        return [r, t]
    }
    function Ku(e) {
        e.l += 4;
        return [0, 0]
    }
    var Ju = {
        1: {
            n: "PtgExp",
            f: hu
        },
        2: {
            n: "PtgTbl",
            f: Ou
        },
        3: {
            n: "PtgAdd",
            f: Dh
        },
        4: {
            n: "PtgSub",
            f: Dh
        },
        5: {
            n: "PtgMul",
            f: Dh
        },
        6: {
            n: "PtgDiv",
            f: Dh
        },
        7: {
            n: "PtgPower",
            f: Dh
        },
        8: {
            n: "PtgConcat",
            f: Dh
        },
        9: {
            n: "PtgLt",
            f: Dh
        },
        10: {
            n: "PtgLe",
            f: Dh
        },
        11: {
            n: "PtgEq",
            f: Dh
        },
        12: {
            n: "PtgGe",
            f: Dh
        },
        13: {
            n: "PtgGt",
            f: Dh
        },
        14: {
            n: "PtgNe",
            f: Dh
        },
        15: {
            n: "PtgIsect",
            f: Dh
        },
        16: {
            n: "PtgUnion",
            f: Dh
        },
        17: {
            n: "PtgRange",
            f: Dh
        },
        18: {
            n: "PtgUplus",
            f: Dh
        },
        19: {
            n: "PtgUminus",
            f: Dh
        },
        20: {
            n: "PtgPercent",
            f: Dh
        },
        21: {
            n: "PtgParen",
            f: Dh
        },
        22: {
            n: "PtgMissArg",
            f: Dh
        },
        23: {
            n: "PtgStr",
            f: gu
        },
        26: {
            n: "PtgSheet",
            f: ju
        },
        27: {
            n: "PtgEndSheet",
            f: Xu
        },
        28: {
            n: "PtgErr",
            f: uu
        },
        29: {
            n: "PtgBool",
            f: vu
        },
        30: {
            n: "PtgInt",
            f: du
        },
        31: {
            n: "PtgNum",
            f: pu
        },
        32: {
            n: "PtgArray",
            f: Yh
        },
        33: {
            n: "PtgFunc",
            f: fu
        },
        34: {
            n: "PtgFuncVar",
            f: ou
        },
        35: {
            n: "PtgName",
            f: ku
        },
        36: {
            n: "PtgRef",
            f: nu
        },
        37: {
            n: "PtgArea",
            f: Vh
        },
        38: {
            n: "PtgMemArea",
            f: Eu
        },
        39: {
            n: "PtgMemErr",
            f: _u
        },
        40: {
            n: "PtgMemNoMem",
            f: xu
        },
        41: {
            n: "PtgMemFunc",
            f: Cu
        },
        42: {
            n: "PtgRefErr",
            f: yu
        },
        43: {
            n: "PtgAreaErr",
            f: jh
        },
        44: {
            n: "PtgRefN",
            f: iu
        },
        45: {
            n: "PtgAreaN",
            f: $h
        },
        46: {
            n: "PtgMemAreaN",
            f: $u
        },
        47: {
            n: "PtgMemNoMemN",
            f: Yu
        },
        57: {
            n: "PtgNameX",
            f: Tu
        },
        58: {
            n: "PtgRef3d",
            f: su
        },
        59: {
            n: "PtgArea3d",
            f: Gh
        },
        60: {
            n: "PtgRefErr3d",
            f: Su
        },
        61: {
            n: "PtgAreaErr3d",
            f: Xh
        },
        255: {}
    };
    var qu = {
        64: 32,
        96: 32,
        65: 33,
        97: 33,
        66: 34,
        98: 34,
        67: 35,
        99: 35,
        68: 36,
        100: 36,
        69: 37,
        101: 37,
        70: 38,
        102: 38,
        71: 39,
        103: 39,
        72: 40,
        104: 40,
        73: 41,
        105: 41,
        74: 42,
        106: 42,
        75: 43,
        107: 43,
        76: 44,
        108: 44,
        77: 45,
        109: 45,
        78: 46,
        110: 46,
        79: 47,
        111: 47,
        88: 34,
        120: 34,
        89: 57,
        121: 57,
        90: 58,
        122: 58,
        91: 59,
        123: 59,
        92: 60,
        124: 60,
        93: 61,
        125: 61
    };
    var Zu = {
        1: {
            n: "PtgElfLel",
            f: Lu
        },
        2: {
            n: "PtgElfRw",
            f: Wu
        },
        3: {
            n: "PtgElfCol",
            f: Nu
        },
        6: {
            n: "PtgElfRwV",
            f: Hu
        },
        7: {
            n: "PtgElfColV",
            f: Pu
        },
        10: {
            n: "PtgElfRadical",
            f: Mu
        },
        11: {
            n: "PtgElfRadicalS",
            f: Bu
        },
        13: {
            n: "PtgElfColS",
            f: Du
        },
        15: {
            n: "PtgElfColSV",
            f: Fu
        },
        16: {
            n: "PtgElfRadicalLel",
            f: Uu
        },
        25: {
            n: "PtgList",
            f: Vu
        },
        29: {
            n: "PtgSxName",
            f: Gu
        },
        255: {}
    };
    var Qu = {
        0: {
            n: "PtgAttrNoop",
            f: Ku
        },
        1: {
            n: "PtgAttrSemi",
            f: eu
        },
        2: {
            n: "PtgAttrIf",
            f: Zh
        },
        4: {
            n: "PtgAttrChoose",
            f: Jh
        },
        8: {
            n: "PtgAttrGoto",
            f: qh
        },
        16: {
            n: "PtgAttrSum",
            f: cu
        },
        32: {
            n: "PtgAttrBaxcel",
            f: Kh
        },
        33: {
            n: "PtgAttrBaxcel",
            f: Kh
        },
        64: {
            n: "PtgAttrSpace",
            f: tu
        },
        65: {
            n: "PtgAttrSpaceSemi",
            f: au
        },
        128: {
            n: "PtgAttrIfError",
            f: Qh
        },
        255: {}
    };
    function ed(e, r, t, a) {
        if (a.biff < 8)
            return ha(e, r);
        var n = e.l + r;
        var i = [];
        for (var s = 0; s !== t.length; ++s) {
            switch (t[s][0]) {
            case "PtgArray":
                t[s][1] = wu(e, 0, a);
                i.push(t[s][1]);
                break;
            case "PtgMemArea":
                t[s][2] = bu(e, t[s][1], a);
                i.push(t[s][2]);
                break;
            case "PtgExp":
                if (a && a.biff == 12) {
                    t[s][1][1] = e._R(4);
                    i.push(t[s][1])
                }
                break;
            case "PtgList":
                ;
            case "PtgElfRadicalS":
                ;
            case "PtgElfColS":
                ;
            case "PtgElfColSV":
                throw "Unsupported " + t[s][0];
            default:
                break;
            }
        }
        r = n - e.l;
        if (r !== 0)
            i.push(ha(e, r));
        return i
    }
    function rd(e, r, t) {
        var a = e.l + r;
        var n, i, s = [];
        while (a != e.l) {
            r = a - e.l;
            i = e[e.l];
            n = Ju[i] || Ju[qu[i]];
            if (i === 24 || i === 25)
                n = (i === 24 ? Zu : Qu)[e[e.l + 1]];
            if (!n || !n.f) {
                ha(e, r)
            } else {
                s.push([n.n, n.f(e, r, t)])
            }
        }
        return s
    }
    function td(e) {
        var r = [];
        for (var t = 0; t < e.length; ++t) {
            var a = e[t]
              , n = [];
            for (var i = 0; i < a.length; ++i) {
                var s = a[i];
                if (s)
                    switch (s[0]) {
                    case 2:
                        n.push('"' + s[1].replace(/"/g, '""') + '"');
                        break;
                    default:
                        n.push(s[1]);
                    }
                else
                    n.push("")
            }
            r.push(n.join(","))
        }
        return r.join(";")
    }
    var ad = {
        PtgAdd: "+",
        PtgConcat: "&",
        PtgDiv: "/",
        PtgEq: "=",
        PtgGe: ">=",
        PtgGt: ">",
        PtgLe: "<=",
        PtgLt: "<",
        PtgMul: "*",
        PtgNe: "<>",
        PtgPower: "^",
        PtgSub: "-"
    };
    function nd(e, r) {
        if (!e && !(r && r.biff <= 5 && r.biff >= 2))
            throw new Error("empty sheet name");
        if (/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(e))
            return "'" + e + "'";
        return e
    }
    function id(e, r, t) {
        if (!e)
            return "SH33TJSERR0";
        if (t.biff > 8 && (!e.XTI || !e.XTI[r]))
            return e.SheetNames[r];
        if (!e.XTI)
            return "SH33TJSERR6";
        var a = e.XTI[r];
        if (t.biff < 8) {
            if (r > 1e4)
                r -= 65536;
            if (r < 0)
                r = -r;
            return r == 0 ? "" : e.XTI[r - 1]
        }
        if (!a)
            return "SH33TJSERR1";
        var n = "";
        if (t.biff > 8)
            switch (e[a[0]][0]) {
            case 357:
                n = a[1] == -1 ? "#REF" : e.SheetNames[a[1]];
                return a[1] == a[2] ? n : n + ":" + e.SheetNames[a[2]];
            case 358:
                if (t.SID != null)
                    return e.SheetNames[t.SID];
                return "SH33TJSSAME" + e[a[0]][0];
            case 355:
                ;
            default:
                return "SH33TJSSRC" + e[a[0]][0];
            }
        switch (e[a[0]][0][0]) {
        case 1025:
            n = a[1] == -1 ? "#REF" : e.SheetNames[a[1]] || "SH33TJSERR3";
            return a[1] == a[2] ? n : n + ":" + e.SheetNames[a[2]];
        case 14849:
            return e[a[0]].slice(1).map(function(e) {
                return e.Name
            }).join(";;");
        default:
            if (!e[a[0]][0][3])
                return "SH33TJSERR2";
            n = a[1] == -1 ? "#REF" : e[a[0]][0][3][a[1]] || "SH33TJSERR4";
            return a[1] == a[2] ? n : n + ":" + e[a[0]][0][3][a[2]];
        }
    }
    function sd(e, r, t) {
        var a = id(e, r, t);
        return a == "#REF" ? a : nd(a, t)
    }
    function fd(e, r, t, a, n) {
        var i = n && n.biff || 8;
        var s = {
            s: {
                c: 0,
                r: 0
            },
            e: {
                c: 0,
                r: 0
            }
        };
        var f = [], o, l, c, h = 0, u = 0, d, v = "";
        if (!e[0] || !e[0][0])
            return "";
        var p = -1
          , g = "";
        for (var m = 0, b = e[0].length; m < b; ++m) {
            var w = e[0][m];
            switch (w[0]) {
            case "PtgUminus":
                f.push("-" + f.pop());
                break;
            case "PtgUplus":
                f.push("+" + f.pop());
                break;
            case "PtgPercent":
                f.push(f.pop() + "%");
                break;
            case "PtgAdd":
                ;
            case "PtgConcat":
                ;
            case "PtgDiv":
                ;
            case "PtgEq":
                ;
            case "PtgGe":
                ;
            case "PtgGt":
                ;
            case "PtgLe":
                ;
            case "PtgLt":
                ;
            case "PtgMul":
                ;
            case "PtgNe":
                ;
            case "PtgPower":
                ;
            case "PtgSub":
                o = f.pop();
                l = f.pop();
                if (p >= 0) {
                    switch (e[0][p][1][0]) {
                    case 0:
                        g = wr(" ", e[0][p][1][1]);
                        break;
                    case 1:
                        g = wr("\r", e[0][p][1][1]);
                        break;
                    default:
                        g = "";
                        if (n.WTF)
                            throw new Error("Unexpected PtgAttrSpaceType " + e[0][p][1][0]);
                    }
                    l = l + g;
                    p = -1
                }
                f.push(l + ad[w[0]] + o);
                break;
            case "PtgIsect":
                o = f.pop();
                l = f.pop();
                f.push(l + " " + o);
                break;
            case "PtgUnion":
                o = f.pop();
                l = f.pop();
                f.push(l + "," + o);
                break;
            case "PtgRange":
                o = f.pop();
                l = f.pop();
                f.push(l + ":" + o);
                break;
            case "PtgAttrChoose":
                break;
            case "PtgAttrGoto":
                break;
            case "PtgAttrIf":
                break;
            case "PtgAttrIfError":
                break;
            case "PtgRef":
                c = ga(w[1][1], s, n);
                f.push(ba(c, i));
                break;
            case "PtgRefN":
                c = t ? ga(w[1][1], t, n) : w[1][1];
                f.push(ba(c, i));
                break;
            case "PtgRef3d":
                h = w[1][1];
                c = ga(w[1][2], s, n);
                v = sd(a, h, n);
                var k = v;
                f.push(v + "!" + ba(c, i));
                break;
            case "PtgFunc":
                ;
            case "PtgFuncVar":
                var T = w[1][0]
                  , A = w[1][1];
                if (!T)
                    T = 0;
                T &= 127;
                var E = T == 0 ? [] : f.slice(-T);
                f.length -= T;
                if (A === "User")
                    A = E.shift();
                f.push(A + "(" + E.join(",") + ")");
                break;
            case "PtgBool":
                f.push(w[1] ? "TRUE" : "FALSE");
                break;
            case "PtgInt":
                f.push(w[1]);
                break;
            case "PtgNum":
                f.push(String(w[1]));
                break;
            case "PtgStr":
                f.push('"' + w[1].replace(/"/g, '""') + '"');
                break;
            case "PtgErr":
                f.push(w[1]);
                break;
            case "PtgAreaN":
                d = ma(w[1][1], t ? {
                    s: t
                } : s, n);
                f.push(wa(d, n));
                break;
            case "PtgArea":
                d = ma(w[1][1], s, n);
                f.push(wa(d, n));
                break;
            case "PtgArea3d":
                h = w[1][1];
                d = w[1][2];
                v = sd(a, h, n);
                f.push(v + "!" + wa(d, n));
                break;
            case "PtgAttrSum":
                f.push("SUM(" + f.pop() + ")");
                break;
            case "PtgAttrBaxcel":
                ;
            case "PtgAttrSemi":
                break;
            case "PtgName":
                u = w[1][2];
                var C = (a.names || [])[u - 1] || (a[0] || [])[u];
                var y = C ? C.Name : "SH33TJSNAME" + String(u);
                if (y && y.slice(0, 6) == "_xlfn." && !n.xlfn)
                    y = y.slice(6);
                f.push(y);
                break;
            case "PtgNameX":
                var S = w[1][1];
                u = w[1][2];
                var _;
                if (n.biff <= 5) {
                    if (S < 0)
                        S = -S;
                    if (a[S])
                        _ = a[S][u]
                } else {
                    var x = "";
                    if (((a[S] || [])[0] || [])[0] == 14849) {} else if (((a[S] || [])[0] || [])[0] == 1025) {
                        if (a[S][u] && a[S][u].itab > 0) {
                            x = a.SheetNames[a[S][u].itab - 1] + "!"
                        }
                    } else
                        x = a.SheetNames[u - 1] + "!";
                    if (a[S] && a[S][u])
                        x += a[S][u].Name;
                    else if (a[0] && a[0][u])
                        x += a[0][u].Name;
                    else {
                        var O = (id(a, S, n) || "").split(";;");
                        if (O[u - 1])
                            x = O[u - 1];
                        else
                            x += "SH33TJSERRX"
                    }
                    f.push(x);
                    break
                }
                if (!_)
                    _ = {
                        Name: "SH33TJSERRY"
                    };
                f.push(_.Name);
                break;
            case "PtgParen":
                var R = "("
                  , I = ")";
                if (p >= 0) {
                    g = "";
                    switch (e[0][p][1][0]) {
                    case 2:
                        R = wr(" ", e[0][p][1][1]) + R;
                        break;
                    case 3:
                        R = wr("\r", e[0][p][1][1]) + R;
                        break;
                    case 4:
                        I = wr(" ", e[0][p][1][1]) + I;
                        break;
                    case 5:
                        I = wr("\r", e[0][p][1][1]) + I;
                        break;
                    default:
                        if (n.WTF)
                            throw new Error("Unexpected PtgAttrSpaceType " + e[0][p][1][0]);
                    }
                    p = -1
                }
                f.push(R + f.pop() + I);
                break;
            case "PtgRefErr":
                f.push("#REF!");
                break;
            case "PtgRefErr3d":
                f.push("#REF!");
                break;
            case "PtgExp":
                c = {
                    c: w[1][1],
                    r: w[1][0]
                };
                var N = {
                    c: t.c,
                    r: t.r
                };
                if (a.sharedf[Ra(c)]) {
                    var D = a.sharedf[Ra(c)];
                    f.push(fd(D, s, N, a, n))
                } else {
                    var F = false;
                    for (o = 0; o != a.arrayf.length; ++o) {
                        l = a.arrayf[o];
                        if (c.c < l[0].s.c || c.c > l[0].e.c)
                            continue;
                        if (c.r < l[0].s.r || c.r > l[0].e.r)
                            continue;
                        f.push(fd(l[1], s, N, a, n));
                        F = true;
                        break
                    }
                    if (!F)
                        f.push(w[1])
                }
                break;
            case "PtgArray":
                f.push("{" + td(w[1]) + "}");
                break;
            case "PtgMemArea":
                break;
            case "PtgAttrSpace":
                ;
            case "PtgAttrSpaceSemi":
                p = m;
                break;
            case "PtgTbl":
                break;
            case "PtgMemErr":
                break;
            case "PtgMissArg":
                f.push("");
                break;
            case "PtgAreaErr":
                f.push("#REF!");
                break;
            case "PtgAreaErr3d":
                f.push("#REF!");
                break;
            case "PtgList":
                f.push("Table" + w[1].idx + "[#" + w[1].rt + "]");
                break;
            case "PtgMemAreaN":
                ;
            case "PtgMemNoMemN":
                ;
            case "PtgAttrNoop":
                ;
            case "PtgSheet":
                ;
            case "PtgEndSheet":
                break;
            case "PtgMemFunc":
                break;
            case "PtgMemNoMem":
                break;
            case "PtgElfCol":
                ;
            case "PtgElfColS":
                ;
            case "PtgElfColSV":
                ;
            case "PtgElfColV":
                ;
            case "PtgElfLel":
                ;
            case "PtgElfRadical":
                ;
            case "PtgElfRadicalLel":
                ;
            case "PtgElfRadicalS":
                ;
            case "PtgElfRw":
                ;
            case "PtgElfRwV":
                throw new Error("Unsupported ELFs");
            case "PtgSxName":
                throw new Error("Unrecognized Formula Token: " + String(w));
            default:
                throw new Error("Unrecognized Formula Token: " + String(w));
            }
            var P = ["PtgAttrSpace", "PtgAttrSpaceSemi", "PtgAttrGoto"];
            if (n.biff != 3)
                if (p >= 0 && P.indexOf(e[0][m][0]) == -1) {
                    w = e[0][p];
                    var L = true;
                    switch (w[1][0]) {
                    case 4:
                        L = false;
                    case 0:
                        g = wr(" ", w[1][1]);
                        break;
                    case 5:
                        L = false;
                    case 1:
                        g = wr("\r", w[1][1]);
                        break;
                    default:
                        g = "";
                        if (n.WTF)
                            throw new Error("Unexpected PtgAttrSpaceType " + w[1][0]);
                    }
                    f.push((L ? g : "") + f.pop() + (L ? "" : g));
                    p = -1
                }
        }
        if (f.length > 1 && n.WTF)
            throw new Error("bad formula stack");
        return f[0]
    }
    function od(e, r, t) {
        var a = e.l + r
          , n = t.biff == 2 ? 1 : 2;
        var i, s = e._R(n);
        if (s == 65535)
            return [[], ha(e, r - 2)];
        var f = rd(e, s, t);
        if (r !== s + n)
            i = ed(e, r - s - n, f, t);
        e.l = a;
        return [f, i]
    }
    function ld(e, r, t) {
        var a = e.l + r
          , n = t.biff == 2 ? 1 : 2;
        var i, s = e._R(n);
        if (s == 65535)
            return [[], ha(e, r - 2)];
        var f = rd(e, s, t);
        if (r !== s + n)
            i = ed(e, r - s - n, f, t);
        e.l = a;
        return [f, i]
    }
    function cd(e, r, t, a) {
        var n = e.l + r;
        var i = rd(e, a, t);
        var s;
        if (n !== e.l)
            s = ed(e, n - e.l, i, t);
        return [i, s]
    }
    function hd(e, r, t) {
        var a = e.l + r;
        var n, i = e._R(2);
        var s = rd(e, i, t);
        if (i == 65535)
            return [[], ha(e, r - 2)];
        if (r !== i + 2)
            n = ed(e, a - i - 2, s, t);
        return [s, n]
    }
    function ud(e) {
        var r;
        if (Qt(e, e.l + 6) !== 65535)
            return [dn(e), "n"];
        switch (e[e.l]) {
        case 0:
            e.l += 8;
            return ["String", "s"];
        case 1:
            r = e[e.l + 2] === 1;
            e.l += 8;
            return [r, "b"];
        case 2:
            r = e[e.l + 2];
            e.l += 8;
            return [r, "e"];
        case 3:
            e.l += 8;
            return ["", "s"];
        }
        return []
    }
    function dd(e) {
        if (e == null) {
            var r = ua(8);
            r._W(1, 3);
            r._W(1, 0);
            r._W(2, 0);
            r._W(2, 0);
            r._W(2, 65535);
            return r
        } else if (typeof e == "number")
            return vn(e);
        return vn(0)
    }
    function vd(e, r, t) {
        var a = e.l + r;
        var n = As(e, 6);
        if (t.biff == 2)
            ++e.l;
        var i = ud(e, 8);
        var s = e._R(1);
        if (t.biff != 2) {
            e._R(1);
            if (t.biff >= 5) {
                e._R(4)
            }
        }
        var f = ld(e, a - e.l, t);
        return {
            cell: n,
            val: i[0],
            formula: f,
            shared: s >> 3 & 1,
            tt: i[1]
        }
    }
    function pd(e, r, t, a, n) {
        var i = Es(r, t, n);
        var s = dd(e.v);
        var f = ua(6);
        var o = 1 | 32;
        f._W(2, o);
        f._W(4, 0);
        var l = ua(e.bf.length);
        for (var c = 0; c < e.bf.length; ++c)
            l[c] = e.bf[c];
        var h = R([i, s, f, l]);
        return h
    }
    function gd(e, r, t) {
        var a = e._R(4);
        var n = rd(e, a, t);
        var i = e._R(4);
        var s = i > 0 ? ed(e, i, n, t) : null;
        return [n, s]
    }
    var md = gd;
    var bd = gd;
    var wd = gd;
    var kd = gd;
    var Td = {
        0: "BEEP",
        1: "OPEN",
        2: "OPEN.LINKS",
        3: "CLOSE.ALL",
        4: "SAVE",
        5: "SAVE.AS",
        6: "FILE.DELETE",
        7: "PAGE.SETUP",
        8: "PRINT",
        9: "PRINTER.SETUP",
        10: "QUIT",
        11: "NEW.WINDOW",
        12: "ARRANGE.ALL",
        13: "WINDOW.SIZE",
        14: "WINDOW.MOVE",
        15: "FULL",
        16: "CLOSE",
        17: "RUN",
        22: "SET.PRINT.AREA",
        23: "SET.PRINT.TITLES",
        24: "SET.PAGE.BREAK",
        25: "REMOVE.PAGE.BREAK",
        26: "FONT",
        27: "DISPLAY",
        28: "PROTECT.DOCUMENT",
        29: "PRECISION",
        30: "A1.R1C1",
        31: "CALCULATE.NOW",
        32: "CALCULATION",
        34: "DATA.FIND",
        35: "EXTRACT",
        36: "DATA.DELETE",
        37: "SET.DATABASE",
        38: "SET.CRITERIA",
        39: "SORT",
        40: "DATA.SERIES",
        41: "TABLE",
        42: "FORMAT.NUMBER",
        43: "ALIGNMENT",
        44: "STYLE",
        45: "BORDER",
        46: "CELL.PROTECTION",
        47: "COLUMN.WIDTH",
        48: "UNDO",
        49: "CUT",
        50: "COPY",
        51: "PASTE",
        52: "CLEAR",
        53: "PASTE.SPECIAL",
        54: "EDIT.DELETE",
        55: "INSERT",
        56: "FILL.RIGHT",
        57: "FILL.DOWN",
        61: "DEFINE.NAME",
        62: "CREATE.NAMES",
        63: "FORMULA.GOTO",
        64: "FORMULA.FIND",
        65: "SELECT.LAST.CELL",
        66: "SHOW.ACTIVE.CELL",
        67: "GALLERY.AREA",
        68: "GALLERY.BAR",
        69: "GALLERY.COLUMN",
        70: "GALLERY.LINE",
        71: "GALLERY.PIE",
        72: "GALLERY.SCATTER",
        73: "COMBINATION",
        74: "PREFERRED",
        75: "ADD.OVERLAY",
        76: "GRIDLINES",
        77: "SET.PREFERRED",
        78: "AXES",
        79: "LEGEND",
        80: "ATTACH.TEXT",
        81: "ADD.ARROW",
        82: "SELECT.CHART",
        83: "SELECT.PLOT.AREA",
        84: "PATTERNS",
        85: "MAIN.CHART",
        86: "OVERLAY",
        87: "SCALE",
        88: "FORMAT.LEGEND",
        89: "FORMAT.TEXT",
        90: "EDIT.REPEAT",
        91: "PARSE",
        92: "JUSTIFY",
        93: "HIDE",
        94: "UNHIDE",
        95: "WORKSPACE",
        96: "FORMULA",
        97: "FORMULA.FILL",
        98: "FORMULA.ARRAY",
        99: "DATA.FIND.NEXT",
        100: "DATA.FIND.PREV",
        101: "FORMULA.FIND.NEXT",
        102: "FORMULA.FIND.PREV",
        103: "ACTIVATE",
        104: "ACTIVATE.NEXT",
        105: "ACTIVATE.PREV",
        106: "UNLOCKED.NEXT",
        107: "UNLOCKED.PREV",
        108: "COPY.PICTURE",
        109: "SELECT",
        110: "DELETE.NAME",
        111: "DELETE.FORMAT",
        112: "VLINE",
        113: "HLINE",
        114: "VPAGE",
        115: "HPAGE",
        116: "VSCROLL",
        117: "HSCROLL",
        118: "ALERT",
        119: "NEW",
        120: "CANCEL.COPY",
        121: "SHOW.CLIPBOARD",
        122: "MESSAGE",
        124: "PASTE.LINK",
        125: "APP.ACTIVATE",
        126: "DELETE.ARROW",
        127: "ROW.HEIGHT",
        128: "FORMAT.MOVE",
        129: "FORMAT.SIZE",
        130: "FORMULA.REPLACE",
        131: "SEND.KEYS",
        132: "SELECT.SPECIAL",
        133: "APPLY.NAMES",
        134: "REPLACE.FONT",
        135: "FREEZE.PANES",
        136: "SHOW.INFO",
        137: "SPLIT",
        138: "ON.WINDOW",
        139: "ON.DATA",
        140: "DISABLE.INPUT",
        142: "OUTLINE",
        143: "LIST.NAMES",
        144: "FILE.CLOSE",
        145: "SAVE.WORKBOOK",
        146: "DATA.FORM",
        147: "COPY.CHART",
        148: "ON.TIME",
        149: "WAIT",
        150: "FORMAT.FONT",
        151: "FILL.UP",
        152: "FILL.LEFT",
        153: "DELETE.OVERLAY",
        155: "SHORT.MENUS",
        159: "SET.UPDATE.STATUS",
        161: "COLOR.PALETTE",
        162: "DELETE.STYLE",
        163: "WINDOW.RESTORE",
        164: "WINDOW.MAXIMIZE",
        166: "CHANGE.LINK",
        167: "CALCULATE.DOCUMENT",
        168: "ON.KEY",
        169: "APP.RESTORE",
        170: "APP.MOVE",
        171: "APP.SIZE",
        172: "APP.MINIMIZE",
        173: "APP.MAXIMIZE",
        174: "BRING.TO.FRONT",
        175: "SEND.TO.BACK",
        185: "MAIN.CHART.TYPE",
        186: "OVERLAY.CHART.TYPE",
        187: "SELECT.END",
        188: "OPEN.MAIL",
        189: "SEND.MAIL",
        190: "STANDARD.FONT",
        191: "CONSOLIDATE",
        192: "SORT.SPECIAL",
        193: "GALLERY.3D.AREA",
        194: "GALLERY.3D.COLUMN",
        195: "GALLERY.3D.LINE",
        196: "GALLERY.3D.PIE",
        197: "VIEW.3D",
        198: "GOAL.SEEK",
        199: "WORKGROUP",
        200: "FILL.GROUP",
        201: "UPDATE.LINK",
        202: "PROMOTE",
        203: "DEMOTE",
        204: "SHOW.DETAIL",
        206: "UNGROUP",
        207: "OBJECT.PROPERTIES",
        208: "SAVE.NEW.OBJECT",
        209: "SHARE",
        210: "SHARE.NAME",
        211: "DUPLICATE",
        212: "APPLY.STYLE",
        213: "ASSIGN.TO.OBJECT",
        214: "OBJECT.PROTECTION",
        215: "HIDE.OBJECT",
        216: "SET.EXTRACT",
        217: "CREATE.PUBLISHER",
        218: "SUBSCRIBE.TO",
        219: "ATTRIBUTES",
        220: "SHOW.TOOLBAR",
        222: "PRINT.PREVIEW",
        223: "EDIT.COLOR",
        224: "SHOW.LEVELS",
        225: "FORMAT.MAIN",
        226: "FORMAT.OVERLAY",
        227: "ON.RECALC",
        228: "EDIT.SERIES",
        229: "DEFINE.STYLE",
        240: "LINE.PRINT",
        243: "ENTER.DATA",
        249: "GALLERY.RADAR",
        250: "MERGE.STYLES",
        251: "EDITION.OPTIONS",
        252: "PASTE.PICTURE",
        253: "PASTE.PICTURE.LINK",
        254: "SPELLING",
        256: "ZOOM",
        259: "INSERT.OBJECT",
        260: "WINDOW.MINIMIZE",
        265: "SOUND.NOTE",
        266: "SOUND.PLAY",
        267: "FORMAT.SHAPE",
        268: "EXTEND.POLYGON",
        269: "FORMAT.AUTO",
        272: "GALLERY.3D.BAR",
        273: "GALLERY.3D.SURFACE",
        274: "FILL.AUTO",
        276: "CUSTOMIZE.TOOLBAR",
        277: "ADD.TOOL",
        278: "EDIT.OBJECT",
        279: "ON.DOUBLECLICK",
        280: "ON.ENTRY",
        281: "WORKBOOK.ADD",
        282: "WORKBOOK.MOVE",
        283: "WORKBOOK.COPY",
        284: "WORKBOOK.OPTIONS",
        285: "SAVE.WORKSPACE",
        288: "CHART.WIZARD",
        289: "DELETE.TOOL",
        290: "MOVE.TOOL",
        291: "WORKBOOK.SELECT",
        292: "WORKBOOK.ACTIVATE",
        293: "ASSIGN.TO.TOOL",
        295: "COPY.TOOL",
        296: "RESET.TOOL",
        297: "CONSTRAIN.NUMERIC",
        298: "PASTE.TOOL",
        302: "WORKBOOK.NEW",
        305: "SCENARIO.CELLS",
        306: "SCENARIO.DELETE",
        307: "SCENARIO.ADD",
        308: "SCENARIO.EDIT",
        309: "SCENARIO.SHOW",
        310: "SCENARIO.SHOW.NEXT",
        311: "SCENARIO.SUMMARY",
        312: "PIVOT.TABLE.WIZARD",
        313: "PIVOT.FIELD.PROPERTIES",
        314: "PIVOT.FIELD",
        315: "PIVOT.ITEM",
        316: "PIVOT.ADD.FIELDS",
        318: "OPTIONS.CALCULATION",
        319: "OPTIONS.EDIT",
        320: "OPTIONS.VIEW",
        321: "ADDIN.MANAGER",
        322: "MENU.EDITOR",
        323: "ATTACH.TOOLBARS",
        324: "VBAActivate",
        325: "OPTIONS.CHART",
        328: "VBA.INSERT.FILE",
        330: "VBA.PROCEDURE.DEFINITION",
        336: "ROUTING.SLIP",
        338: "ROUTE.DOCUMENT",
        339: "MAIL.LOGON",
        342: "INSERT.PICTURE",
        343: "EDIT.TOOL",
        344: "GALLERY.DOUGHNUT",
        350: "CHART.TREND",
        352: "PIVOT.ITEM.PROPERTIES",
        354: "WORKBOOK.INSERT",
        355: "OPTIONS.TRANSITION",
        356: "OPTIONS.GENERAL",
        370: "FILTER.ADVANCED",
        373: "MAIL.ADD.MAILER",
        374: "MAIL.DELETE.MAILER",
        375: "MAIL.REPLY",
        376: "MAIL.REPLY.ALL",
        377: "MAIL.FORWARD",
        378: "MAIL.NEXT.LETTER",
        379: "DATA.LABEL",
        380: "INSERT.TITLE",
        381: "FONT.PROPERTIES",
        382: "MACRO.OPTIONS",
        383: "WORKBOOK.HIDE",
        384: "WORKBOOK.UNHIDE",
        385: "WORKBOOK.DELETE",
        386: "WORKBOOK.NAME",
        388: "GALLERY.CUSTOM",
        390: "ADD.CHART.AUTOFORMAT",
        391: "DELETE.CHART.AUTOFORMAT",
        392: "CHART.ADD.DATA",
        393: "AUTO.OUTLINE",
        394: "TAB.ORDER",
        395: "SHOW.DIALOG",
        396: "SELECT.ALL",
        397: "UNGROUP.SHEETS",
        398: "SUBTOTAL.CREATE",
        399: "SUBTOTAL.REMOVE",
        400: "RENAME.OBJECT",
        412: "WORKBOOK.SCROLL",
        413: "WORKBOOK.NEXT",
        414: "WORKBOOK.PREV",
        415: "WORKBOOK.TAB.SPLIT",
        416: "FULL.SCREEN",
        417: "WORKBOOK.PROTECT",
        420: "SCROLLBAR.PROPERTIES",
        421: "PIVOT.SHOW.PAGES",
        422: "TEXT.TO.COLUMNS",
        423: "FORMAT.CHARTTYPE",
        424: "LINK.FORMAT",
        425: "TRACER.DISPLAY",
        430: "TRACER.NAVIGATE",
        431: "TRACER.CLEAR",
        432: "TRACER.ERROR",
        433: "PIVOT.FIELD.GROUP",
        434: "PIVOT.FIELD.UNGROUP",
        435: "CHECKBOX.PROPERTIES",
        436: "LABEL.PROPERTIES",
        437: "LISTBOX.PROPERTIES",
        438: "EDITBOX.PROPERTIES",
        439: "PIVOT.REFRESH",
        440: "LINK.COMBO",
        441: "OPEN.TEXT",
        442: "HIDE.DIALOG",
        443: "SET.DIALOG.FOCUS",
        444: "ENABLE.OBJECT",
        445: "PUSHBUTTON.PROPERTIES",
        446: "SET.DIALOG.DEFAULT",
        447: "FILTER",
        448: "FILTER.SHOW.ALL",
        449: "CLEAR.OUTLINE",
        450: "FUNCTION.WIZARD",
        451: "ADD.LIST.ITEM",
        452: "SET.LIST.ITEM",
        453: "REMOVE.LIST.ITEM",
        454: "SELECT.LIST.ITEM",
        455: "SET.CONTROL.VALUE",
        456: "SAVE.COPY.AS",
        458: "OPTIONS.LISTS.ADD",
        459: "OPTIONS.LISTS.DELETE",
        460: "SERIES.AXES",
        461: "SERIES.X",
        462: "SERIES.Y",
        463: "ERRORBAR.X",
        464: "ERRORBAR.Y",
        465: "FORMAT.CHART",
        466: "SERIES.ORDER",
        467: "MAIL.LOGOFF",
        468: "CLEAR.ROUTING.SLIP",
        469: "APP.ACTIVATE.MICROSOFT",
        470: "MAIL.EDIT.MAILER",
        471: "ON.SHEET",
        472: "STANDARD.WIDTH",
        473: "SCENARIO.MERGE",
        474: "SUMMARY.INFO",
        475: "FIND.FILE",
        476: "ACTIVE.CELL.FONT",
        477: "ENABLE.TIPWIZARD",
        478: "VBA.MAKE.ADDIN",
        480: "INSERTDATATABLE",
        481: "WORKGROUP.OPTIONS",
        482: "MAIL.SEND.MAILER",
        485: "AUTOCORRECT",
        489: "POST.DOCUMENT",
        491: "PICKLIST",
        493: "VIEW.SHOW",
        494: "VIEW.DEFINE",
        495: "VIEW.DELETE",
        509: "SHEET.BACKGROUND",
        510: "INSERT.MAP.OBJECT",
        511: "OPTIONS.MENONO",
        517: "MSOCHECKS",
        518: "NORMAL",
        519: "LAYOUT",
        520: "RM.PRINT.AREA",
        521: "CLEAR.PRINT.AREA",
        522: "ADD.PRINT.AREA",
        523: "MOVE.BRK",
        545: "HIDECURR.NOTE",
        546: "HIDEALL.NOTES",
        547: "DELETE.NOTE",
        548: "TRAVERSE.NOTES",
        549: "ACTIVATE.NOTES",
        620: "PROTECT.REVISIONS",
        621: "UNPROTECT.REVISIONS",
        647: "OPTIONS.ME",
        653: "WEB.PUBLISH",
        667: "NEWWEBQUERY",
        673: "PIVOT.TABLE.CHART",
        753: "OPTIONS.SAVE",
        755: "OPTIONS.SPELL",
        808: "HIDEALL.INKANNOTS"
    };
    var Ad = {
        0: "COUNT",
        1: "IF",
        2: "ISNA",
        3: "ISERROR",
        4: "SUM",
        5: "AVERAGE",
        6: "MIN",
        7: "MAX",
        8: "ROW",
        9: "COLUMN",
        10: "NA",
        11: "NPV",
        12: "STDEV",
        13: "DOLLAR",
        14: "FIXED",
        15: "SIN",
        16: "COS",
        17: "TAN",
        18: "ATAN",
        19: "PI",
        20: "SQRT",
        21: "EXP",
        22: "LN",
        23: "LOG10",
        24: "ABS",
        25: "INT",
        26: "SIGN",
        27: "ROUND",
        28: "LOOKUP",
        29: "INDEX",
        30: "REPT",
        31: "MID",
        32: "LEN",
        33: "VALUE",
        34: "TRUE",
        35: "FALSE",
        36: "AND",
        37: "OR",
        38: "NOT",
        39: "MOD",
        40: "DCOUNT",
        41: "DSUM",
        42: "DAVERAGE",
        43: "DMIN",
        44: "DMAX",
        45: "DSTDEV",
        46: "VAR",
        47: "DVAR",
        48: "TEXT",
        49: "LINEST",
        50: "TREND",
        51: "LOGEST",
        52: "GROWTH",
        53: "GOTO",
        54: "HALT",
        55: "RETURN",
        56: "PV",
        57: "FV",
        58: "NPER",
        59: "PMT",
        60: "RATE",
        61: "MIRR",
        62: "IRR",
        63: "RAND",
        64: "MATCH",
        65: "DATE",
        66: "TIME",
        67: "DAY",
        68: "MONTH",
        69: "YEAR",
        70: "WEEKDAY",
        71: "HOUR",
        72: "MINUTE",
        73: "SECOND",
        74: "NOW",
        75: "AREAS",
        76: "ROWS",
        77: "COLUMNS",
        78: "OFFSET",
        79: "ABSREF",
        80: "RELREF",
        81: "ARGUMENT",
        82: "SEARCH",
        83: "TRANSPOSE",
        84: "ERROR",
        85: "STEP",
        86: "TYPE",
        87: "ECHO",
        88: "SET.NAME",
        89: "CALLER",
        90: "DEREF",
        91: "WINDOWS",
        92: "SERIES",
        93: "DOCUMENTS",
        94: "ACTIVE.CELL",
        95: "SELECTION",
        96: "RESULT",
        97: "ATAN2",
        98: "ASIN",
        99: "ACOS",
        100: "CHOOSE",
        101: "HLOOKUP",
        102: "VLOOKUP",
        103: "LINKS",
        104: "INPUT",
        105: "ISREF",
        106: "GET.FORMULA",
        107: "GET.NAME",
        108: "SET.VALUE",
        109: "LOG",
        110: "EXEC",
        111: "CHAR",
        112: "LOWER",
        113: "UPPER",
        114: "PROPER",
        115: "LEFT",
        116: "RIGHT",
        117: "EXACT",
        118: "TRIM",
        119: "REPLACE",
        120: "SUBSTITUTE",
        121: "CODE",
        122: "NAMES",
        123: "DIRECTORY",
        124: "FIND",
        125: "CELL",
        126: "ISERR",
        127: "ISTEXT",
        128: "ISNUMBER",
        129: "ISBLANK",
        130: "T",
        131: "N",
        132: "FOPEN",
        133: "FCLOSE",
        134: "FSIZE",
        135: "FREADLN",
        136: "FREAD",
        137: "FWRITELN",
        138: "FWRITE",
        139: "FPOS",
        140: "DATEVALUE",
        141: "TIMEVALUE",
        142: "SLN",
        143: "SYD",
        144: "DDB",
        145: "GET.DEF",
        146: "REFTEXT",
        147: "TEXTREF",
        148: "INDIRECT",
        149: "REGISTER",
        150: "CALL",
        151: "ADD.BAR",
        152: "ADD.MENU",
        153: "ADD.COMMAND",
        154: "ENABLE.COMMAND",
        155: "CHECK.COMMAND",
        156: "RENAME.COMMAND",
        157: "SHOW.BAR",
        158: "DELETE.MENU",
        159: "DELETE.COMMAND",
        160: "GET.CHART.ITEM",
        161: "DIALOG.BOX",
        162: "CLEAN",
        163: "MDETERM",
        164: "MINVERSE",
        165: "MMULT",
        166: "FILES",
        167: "IPMT",
        168: "PPMT",
        169: "COUNTA",
        170: "CANCEL.KEY",
        171: "FOR",
        172: "WHILE",
        173: "BREAK",
        174: "NEXT",
        175: "INITIATE",
        176: "REQUEST",
        177: "POKE",
        178: "EXECUTE",
        179: "TERMINATE",
        180: "RESTART",
        181: "HELP",
        182: "GET.BAR",
        183: "PRODUCT",
        184: "FACT",
        185: "GET.CELL",
        186: "GET.WORKSPACE",
        187: "GET.WINDOW",
        188: "GET.DOCUMENT",
        189: "DPRODUCT",
        190: "ISNONTEXT",
        191: "GET.NOTE",
        192: "NOTE",
        193: "STDEVP",
        194: "VARP",
        195: "DSTDEVP",
        196: "DVARP",
        197: "TRUNC",
        198: "ISLOGICAL",
        199: "DCOUNTA",
        200: "DELETE.BAR",
        201: "UNREGISTER",
        204: "USDOLLAR",
        205: "FINDB",
        206: "SEARCHB",
        207: "REPLACEB",
        208: "LEFTB",
        209: "RIGHTB",
        210: "MIDB",
        211: "LENB",
        212: "ROUNDUP",
        213: "ROUNDDOWN",
        214: "ASC",
        215: "DBCS",
        216: "RANK",
        219: "ADDRESS",
        220: "DAYS360",
        221: "TODAY",
        222: "VDB",
        223: "ELSE",
        224: "ELSE.IF",
        225: "END.IF",
        226: "FOR.CELL",
        227: "MEDIAN",
        228: "SUMPRODUCT",
        229: "SINH",
        230: "COSH",
        231: "TANH",
        232: "ASINH",
        233: "ACOSH",
        234: "ATANH",
        235: "DGET",
        236: "CREATE.OBJECT",
        237: "VOLATILE",
        238: "LAST.ERROR",
        239: "CUSTOM.UNDO",
        240: "CUSTOM.REPEAT",
        241: "FORMULA.CONVERT",
        242: "GET.LINK.INFO",
        243: "TEXT.BOX",
        244: "INFO",
        245: "GROUP",
        246: "GET.OBJECT",
        247: "DB",
        248: "PAUSE",
        251: "RESUME",
        252: "FREQUENCY",
        253: "ADD.TOOLBAR",
        254: "DELETE.TOOLBAR",
        255: "User",
        256: "RESET.TOOLBAR",
        257: "EVALUATE",
        258: "GET.TOOLBAR",
        259: "GET.TOOL",
        260: "SPELLING.CHECK",
        261: "ERROR.TYPE",
        262: "APP.TITLE",
        263: "WINDOW.TITLE",
        264: "SAVE.TOOLBAR",
        265: "ENABLE.TOOL",
        266: "PRESS.TOOL",
        267: "REGISTER.ID",
        268: "GET.WORKBOOK",
        269: "AVEDEV",
        270: "BETADIST",
        271: "GAMMALN",
        272: "BETAINV",
        273: "BINOMDIST",
        274: "CHIDIST",
        275: "CHIINV",
        276: "COMBIN",
        277: "CONFIDENCE",
        278: "CRITBINOM",
        279: "EVEN",
        280: "EXPONDIST",
        281: "FDIST",
        282: "FINV",
        283: "FISHER",
        284: "FISHERINV",
        285: "FLOOR",
        286: "GAMMADIST",
        287: "GAMMAINV",
        288: "CEILING",
        289: "HYPGEOMDIST",
        290: "LOGNORMDIST",
        291: "LOGINV",
        292: "NEGBINOMDIST",
        293: "NORMDIST",
        294: "NORMSDIST",
        295: "NORMINV",
        296: "NORMSINV",
        297: "STANDARDIZE",
        298: "ODD",
        299: "PERMUT",
        300: "POISSON",
        301: "TDIST",
        302: "WEIBULL",
        303: "SUMXMY2",
        304: "SUMX2MY2",
        305: "SUMX2PY2",
        306: "CHITEST",
        307: "CORREL",
        308: "COVAR",
        309: "FORECAST",
        310: "FTEST",
        311: "INTERCEPT",
        312: "PEARSON",
        313: "RSQ",
        314: "STEYX",
        315: "SLOPE",
        316: "TTEST",
        317: "PROB",
        318: "DEVSQ",
        319: "GEOMEAN",
        320: "HARMEAN",
        321: "SUMSQ",
        322: "KURT",
        323: "SKEW",
        324: "ZTEST",
        325: "LARGE",
        326: "SMALL",
        327: "QUARTILE",
        328: "PERCENTILE",
        329: "PERCENTRANK",
        330: "MODE",
        331: "TRIMMEAN",
        332: "TINV",
        334: "MOVIE.COMMAND",
        335: "GET.MOVIE",
        336: "CONCATENATE",
        337: "POWER",
        338: "PIVOT.ADD.DATA",
        339: "GET.PIVOT.TABLE",
        340: "GET.PIVOT.FIELD",
        341: "GET.PIVOT.ITEM",
        342: "RADIANS",
        343: "DEGREES",
        344: "SUBTOTAL",
        345: "SUMIF",
        346: "COUNTIF",
        347: "COUNTBLANK",
        348: "SCENARIO.GET",
        349: "OPTIONS.LISTS.GET",
        350: "ISPMT",
        351: "DATEDIF",
        352: "DATESTRING",
        353: "NUMBERSTRING",
        354: "ROMAN",
        355: "OPEN.DIALOG",
        356: "SAVE.DIALOG",
        357: "VIEW.GET",
        358: "GETPIVOTDATA",
        359: "HYPERLINK",
        360: "PHONETIC",
        361: "AVERAGEA",
        362: "MAXA",
        363: "MINA",
        364: "STDEVPA",
        365: "VARPA",
        366: "STDEVA",
        367: "VARA",
        368: "BAHTTEXT",
        369: "THAIDAYOFWEEK",
        370: "THAIDIGIT",
        371: "THAIMONTHOFYEAR",
        372: "THAINUMSOUND",
        373: "THAINUMSTRING",
        374: "THAISTRINGLENGTH",
        375: "ISTHAIDIGIT",
        376: "ROUNDBAHTDOWN",
        377: "ROUNDBAHTUP",
        378: "THAIYEAR",
        379: "RTD",
        380: "CUBEVALUE",
        381: "CUBEMEMBER",
        382: "CUBEMEMBERPROPERTY",
        383: "CUBERANKEDMEMBER",
        384: "HEX2BIN",
        385: "HEX2DEC",
        386: "HEX2OCT",
        387: "DEC2BIN",
        388: "DEC2HEX",
        389: "DEC2OCT",
        390: "OCT2BIN",
        391: "OCT2HEX",
        392: "OCT2DEC",
        393: "BIN2DEC",
        394: "BIN2OCT",
        395: "BIN2HEX",
        396: "IMSUB",
        397: "IMDIV",
        398: "IMPOWER",
        399: "IMABS",
        400: "IMSQRT",
        401: "IMLN",
        402: "IMLOG2",
        403: "IMLOG10",
        404: "IMSIN",
        405: "IMCOS",
        406: "IMEXP",
        407: "IMARGUMENT",
        408: "IMCONJUGATE",
        409: "IMAGINARY",
        410: "IMREAL",
        411: "COMPLEX",
        412: "IMSUM",
        413: "IMPRODUCT",
        414: "SERIESSUM",
        415: "FACTDOUBLE",
        416: "SQRTPI",
        417: "QUOTIENT",
        418: "DELTA",
        419: "GESTEP",
        420: "ISEVEN",
        421: "ISODD",
        422: "MROUND",
        423: "ERF",
        424: "ERFC",
        425: "BESSELJ",
        426: "BESSELK",
        427: "BESSELY",
        428: "BESSELI",
        429: "XIRR",
        430: "XNPV",
        431: "PRICEMAT",
        432: "YIELDMAT",
        433: "INTRATE",
        434: "RECEIVED",
        435: "DISC",
        436: "PRICEDISC",
        437: "YIELDDISC",
        438: "TBILLEQ",
        439: "TBILLPRICE",
        440: "TBILLYIELD",
        441: "PRICE",
        442: "YIELD",
        443: "DOLLARDE",
        444: "DOLLARFR",
        445: "NOMINAL",
        446: "EFFECT",
        447: "CUMPRINC",
        448: "CUMIPMT",
        449: "EDATE",
        450: "EOMONTH",
        451: "YEARFRAC",
        452: "COUPDAYBS",
        453: "COUPDAYS",
        454: "COUPDAYSNC",
        455: "COUPNCD",
        456: "COUPNUM",
        457: "COUPPCD",
        458: "DURATION",
        459: "MDURATION",
        460: "ODDLPRICE",
        461: "ODDLYIELD",
        462: "ODDFPRICE",
        463: "ODDFYIELD",
        464: "RANDBETWEEN",
        465: "WEEKNUM",
        466: "AMORDEGRC",
        467: "AMORLINC",
        468: "CONVERT",
        724: "SHEETJS",
        469: "ACCRINT",
        470: "ACCRINTM",
        471: "WORKDAY",
        472: "NETWORKDAYS",
        473: "GCD",
        474: "MULTINOMIAL",
        475: "LCM",
        476: "FVSCHEDULE",
        477: "CUBEKPIMEMBER",
        478: "CUBESET",
        479: "CUBESETCOUNT",
        480: "IFERROR",
        481: "COUNTIFS",
        482: "SUMIFS",
        483: "AVERAGEIF",
        484: "AVERAGEIFS"
    };
    var Ed = {
        2: 1,
        3: 1,
        10: 0,
        15: 1,
        16: 1,
        17: 1,
        18: 1,
        19: 0,
        20: 1,
        21: 1,
        22: 1,
        23: 1,
        24: 1,
        25: 1,
        26: 1,
        27: 2,
        30: 2,
        31: 3,
        32: 1,
        33: 1,
        34: 0,
        35: 0,
        38: 1,
        39: 2,
        40: 3,
        41: 3,
        42: 3,
        43: 3,
        44: 3,
        45: 3,
        47: 3,
        48: 2,
        53: 1,
        61: 3,
        63: 0,
        65: 3,
        66: 3,
        67: 1,
        68: 1,
        69: 1,
        70: 1,
        71: 1,
        72: 1,
        73: 1,
        74: 0,
        75: 1,
        76: 1,
        77: 1,
        79: 2,
        80: 2,
        83: 1,
        85: 0,
        86: 1,
        89: 0,
        90: 1,
        94: 0,
        95: 0,
        97: 2,
        98: 1,
        99: 1,
        101: 3,
        102: 3,
        105: 1,
        106: 1,
        108: 2,
        111: 1,
        112: 1,
        113: 1,
        114: 1,
        117: 2,
        118: 1,
        119: 4,
        121: 1,
        126: 1,
        127: 1,
        128: 1,
        129: 1,
        130: 1,
        131: 1,
        133: 1,
        134: 1,
        135: 1,
        136: 2,
        137: 2,
        138: 2,
        140: 1,
        141: 1,
        142: 3,
        143: 4,
        144: 4,
        161: 1,
        162: 1,
        163: 1,
        164: 1,
        165: 2,
        172: 1,
        175: 2,
        176: 2,
        177: 3,
        178: 2,
        179: 1,
        184: 1,
        186: 1,
        189: 3,
        190: 1,
        195: 3,
        196: 3,
        197: 1,
        198: 1,
        199: 3,
        201: 1,
        207: 4,
        210: 3,
        211: 1,
        212: 2,
        213: 2,
        214: 1,
        215: 1,
        225: 0,
        229: 1,
        230: 1,
        231: 1,
        232: 1,
        233: 1,
        234: 1,
        235: 3,
        244: 1,
        247: 4,
        252: 2,
        257: 1,
        261: 1,
        271: 1,
        273: 4,
        274: 2,
        275: 2,
        276: 2,
        277: 3,
        278: 3,
        279: 1,
        280: 3,
        281: 3,
        282: 3,
        283: 1,
        284: 1,
        285: 2,
        286: 4,
        287: 3,
        288: 2,
        289: 4,
        290: 3,
        291: 3,
        292: 3,
        293: 4,
        294: 1,
        295: 3,
        296: 1,
        297: 3,
        298: 1,
        299: 2,
        300: 3,
        301: 3,
        302: 4,
        303: 2,
        304: 2,
        305: 2,
        306: 2,
        307: 2,
        308: 2,
        309: 3,
        310: 2,
        311: 2,
        312: 2,
        313: 2,
        314: 2,
        315: 2,
        316: 4,
        325: 2,
        326: 2,
        327: 2,
        328: 2,
        331: 2,
        332: 2,
        337: 2,
        342: 1,
        343: 1,
        346: 2,
        347: 1,
        350: 4,
        351: 3,
        352: 1,
        353: 2,
        360: 1,
        368: 1,
        369: 1,
        370: 1,
        371: 1,
        372: 1,
        373: 1,
        374: 1,
        375: 1,
        376: 1,
        377: 1,
        378: 1,
        382: 3,
        385: 1,
        392: 1,
        393: 1,
        396: 2,
        397: 2,
        398: 2,
        399: 1,
        400: 1,
        401: 1,
        402: 1,
        403: 1,
        404: 1,
        405: 1,
        406: 1,
        407: 1,
        408: 1,
        409: 1,
        410: 1,
        414: 4,
        415: 1,
        416: 1,
        417: 2,
        420: 1,
        421: 1,
        422: 2,
        424: 1,
        425: 2,
        426: 2,
        427: 2,
        428: 2,
        430: 3,
        438: 3,
        439: 3,
        440: 3,
        443: 2,
        444: 2,
        445: 2,
        446: 2,
        447: 6,
        448: 6,
        449: 2,
        450: 2,
        464: 2,
        468: 3,
        476: 2,
        479: 1,
        480: 2,
        65535: 0
    };
    function Cd(e) {
        if (e.slice(0, 3) == "of:")
            e = e.slice(3);
        if (e.charCodeAt(0) == 61) {
            e = e.slice(1);
            if (e.charCodeAt(0) == 61)
                e = e.slice(1)
        }
        e = e.replace(/COM\.MICROSOFT\./g, "");
        e = e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g, function(e, r) {
            return r.replace(/\./g, "")
        });
        e = e.replace(/\[.(#[A-Z]*[?!])\]/g, "$1");
        return e.replace(/[;~]/g, ",").replace(/\|/g, ";")
    }
    function yd(e) {
        var r = "of:=" + e.replace(_h, "$1[.$2$3$4$5]").replace(/\]:\[/g, ":");
        return r.replace(/;/g, "|").replace(/,/g, ";")
    }
    function Sd(e) {
        var r = e.split(":");
        var t = r[0].split(".")[0];
        return [t, r[0].split(".")[1] + (r.length > 1 ? ":" + (r[1].split(".")[1] || r[1].split(".")[0]) : "")]
    }
    function _d(e) {
        return e.replace(/\./, "!")
    }
    var xd = {};
    var Od = {};
    var Rd = typeof Map !== "undefined";
    function Id(e, r, t) {
        var a = 0
          , n = e.length;
        if (t) {
            if (Rd ? t.has(r) : Object.prototype.hasOwnProperty.call(t, r)) {
                var i = Rd ? t.get(r) : t[r];
                for (; a < i.length; ++a) {
                    if (e[i[a]].t === r) {
                        e.Count++;
                        return i[a]
                    }
                }
            }
        } else
            for (; a < n; ++a) {
                if (e[a].t === r) {
                    e.Count++;
                    return a
                }
            }
        e[n] = {
            t: r
        };
        e.Count++;
        e.Unique++;
        if (t) {
            if (Rd) {
                if (!t.has(r))
                    t.set(r, []);
                t.get(r).push(n)
            } else {
                if (!Object.prototype.hasOwnProperty.call(t, r))
                    t[r] = [];
                t[r].push(n)
            }
        }
        return n
    }
    function Nd(e, r) {
        var t = {
            min: e + 1,
            max: e + 1
        };
        var a = -1;
        if (r.MDW)
            yl = r.MDW;
        if (r.width != null)
            t.customWidth = 1;
        else if (r.wpx != null)
            a = _l(r.wpx);
        else if (r.wch != null)
            a = r.wch;
        if (a > -1) {
            t.width = xl(a);
            t.customWidth = 1
        } else if (r.width != null)
            t.width = r.width;
        if (r.hidden)
            t.hidden = true;
        if (r.level != null) {
            t.outlineLevel = t.level = r.level
        }
        return t
    }
    function Dd(e, r) {
        if (!e)
            return;
        var t = [.7, .7, .75, .75, .3, .3];
        if (r == "xlml")
            t = [1, 1, 1, 1, .5, .5];
        if (e.left == null)
            e.left = t[0];
        if (e.right == null)
            e.right = t[1];
        if (e.top == null)
            e.top = t[2];
        if (e.bottom == null)
            e.bottom = t[3];
        if (e.header == null)
            e.header = t[4];
        if (e.footer == null)
            e.footer = t[5]
    }
    function Fd(e, r, t) {
        var a = t.revssf[r.z != null ? r.z : "General"];
        var n = 60
          , i = e.length;
        if (a == null && t.ssf) {
            for (; n < 392; ++n)
                if (t.ssf[n] == null) {
                    We(r.z, n);
                    t.ssf[n] = r.z;
                    t.revssf[r.z] = a = n;
                    break
                }
        }
        for (n = 0; n != i; ++n)
            if (e[n].numFmtId === a)
                return n;
        e[i] = {
            numFmtId: a,
            fontId: 0,
            fillId: 0,
            borderId: 0,
            xfId: 0,
            applyNumberFormat: 1
        };
        return i
    }
    function Pd(e, r, t, a, n, i) {
        try {
            if (a.cellNF)
                e.z = X[r]
        } catch (s) {
            if (a.WTF)
                throw s
        }
        if (e.t === "z" && !a.cellStyles)
            return;
        if (e.t === "d" && typeof e.v === "string")
            e.v = gr(e.v);
        if ((!a || a.cellText !== false) && e.t !== "z")
            try {
                if (X[r] == null)
                    We(Ge[r] || "General", r);
                if (e.t === "e")
                    e.w = e.w || Gn[e.v];
                else if (r === 0) {
                    if (e.t === "n") {
                        if ((e.v | 0) === e.v)
                            e.w = e.v.toString(10);
                        else
                            e.w = se(e.v)
                    } else if (e.t === "d") {
                        var f = fr(e.v);
                        if ((f | 0) === f)
                            e.w = f.toString(10);
                        else
                            e.w = se(f)
                    } else if (e.v === undefined)
                        return "";
                    else
                        e.w = fe(e.v, Od)
                } else if (e.t === "d")
                    e.w = Be(r, fr(e.v), Od);
                else
                    e.w = Be(r, e.v, Od)
            } catch (s) {
                if (a.WTF)
                    throw s
            }
        if (!a.cellStyles)
            return;
        if (t != null)
            try {
                e.s = i.Fills[t];
                if (e.s.fgColor && e.s.fgColor.theme && !e.s.fgColor.rgb) {
                    e.s.fgColor.rgb = Tl(n.themeElements.clrScheme[e.s.fgColor.theme].rgb, e.s.fgColor.tint || 0);
                    if (a.WTF)
                        e.s.fgColor.raw_rgb = n.themeElements.clrScheme[e.s.fgColor.theme].rgb
                }
                if (e.s.bgColor && e.s.bgColor.theme) {
                    e.s.bgColor.rgb = Tl(n.themeElements.clrScheme[e.s.bgColor.theme].rgb, e.s.bgColor.tint || 0);
                    if (a.WTF)
                        e.s.bgColor.raw_rgb = n.themeElements.clrScheme[e.s.bgColor.theme].rgb
                }
            } catch (s) {
                if (a.WTF && i.Fills)
                    throw s
            }
    }
    function Ld(e, r, t) {
        if (e && e["!ref"]) {
            var a = Da(e["!ref"]);
            if (a.e.c < a.s.c || a.e.r < a.s.r)
                throw new Error("Bad range (" + t + "): " + e["!ref"])
        }
    }
    function Md(e, r) {
        var t = Da(r);
        if (t.s.r <= t.e.r && t.s.c <= t.e.c && t.s.r >= 0 && t.s.c >= 0)
            e["!ref"] = Na(t)
    }
    var Ud = /<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;
    var Bd = /<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/;
    var Wd = /<(?:\w:)?hyperlink [^>]*>/gm;
    var Hd = /"(\w*:\w*)"/;
    var zd = /<(?:\w:)?col\b[^>]*[\/]?>/g;
    var Vd = /<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;
    var Gd = /<(?:\w:)?pageMargins[^>]*\/>/g;
    var jd = /<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/;
    var Xd = /<(?:\w:)?sheetPr[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetPr)>/;
    var $d = /<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;
    function Yd(e, r, t, a, n, i, s) {
        if (!e)
            return e;
        if (!a)
            a = {
                "!id": {}
            };
        if (g != null && r.dense == null)
            r.dense = g;
        var f = r.dense ? [] : {};
        var o = {
            s: {
                r: 2e6,
                c: 2e6
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var l = ""
          , c = "";
        var h = e.match(Bd);
        if (h) {
            l = e.slice(0, h.index);
            c = e.slice(h.index + h[0].length)
        } else
            l = c = e;
        var u = l.match(jd);
        if (u)
            Jd(u[0], f, n, t);
        else if (u = l.match(Xd))
            qd(u[0], u[1] || "", f, n, t, s, i);
        var d = (l.match(/<(?:\w*:)?dimension/) || {
            index: -1
        }).index;
        if (d > 0) {
            var v = l.slice(d, d + 50).match(Hd);
            if (v)
                Md(f, v[1])
        }
        var p = l.match($d);
        if (p && p[1])
            cv(p[1], n);
        var m = [];
        if (r.cellStyles) {
            var b = l.match(zd);
            if (b)
                iv(m, b)
        }
        if (h)
            dv(h[1], f, r, o, i, s);
        var w = c.match(Vd);
        if (w)
            f["!autofilter"] = fv(w[0]);
        var k = [];
        var T = c.match(Ud);
        if (T)
            for (d = 0; d != T.length; ++d)
                k[d] = Da(T[d].slice(T[d].indexOf('"') + 1));
        var A = c.match(Wd);
        if (A)
            tv(f, A, a);
        var E = c.match(Gd);
        if (E)
            f["!margins"] = av(Gr(E[0]));
        if (!f["!ref"] && o.e.c >= o.s.c && o.e.r >= o.s.r)
            f["!ref"] = Na(o);
        if (r.sheetRows > 0 && f["!ref"]) {
            var C = Da(f["!ref"]);
            if (r.sheetRows <= +C.e.r) {
                C.e.r = r.sheetRows - 1;
                if (C.e.r > o.e.r)
                    C.e.r = o.e.r;
                if (C.e.r < C.s.r)
                    C.s.r = C.e.r;
                if (C.e.c > o.e.c)
                    C.e.c = o.e.c;
                if (C.e.c < C.s.c)
                    C.s.c = C.e.c;
                f["!fullref"] = f["!ref"];
                f["!ref"] = Na(C)
            }
        }
        if (m.length > 0)
            f["!cols"] = m;
        if (k.length > 0)
            f["!merges"] = k;
        return f
    }
    function Kd(e) {
        if (e.length === 0)
            return "";
        var r = '<mergeCells count="' + e.length + '">';
        for (var t = 0; t != e.length; ++t)
            r += '<mergeCell ref="' + Na(e[t]) + '"/>';
        return r + "</mergeCells>"
    }
    function Jd(e, r, t, a) {
        var n = Gr(e);
        if (!t.Sheets[a])
            t.Sheets[a] = {};
        if (n.codeName)
            t.Sheets[a].CodeName = Yr(lt(n.codeName))
    }
    function qd(e, r, t, a, n) {
        Jd(e.slice(0, e.indexOf(">")), t, a, n)
    }
    function Zd(e, r, t, a, n) {
        var i = false;
        var s = {}
          , f = null;
        if (a.bookType !== "xlsx" && r.vbaraw) {
            var o = r.SheetNames[t];
            try {
                if (r.Workbook)
                    o = r.Workbook.Sheets[t].CodeName || o
            } catch (l) {}
            i = true;
            s.codeName = ct(qr(o))
        }
        if (e && e["!outline"]) {
            var c = {
                summaryBelow: 1,
                summaryRight: 1
            };
            if (e["!outline"].above)
                c.summaryBelow = 0;
            if (e["!outline"].left)
                c.summaryRight = 0;
            f = (f || "") + kt("outlinePr", null, c)
        }
        if (!i && !f)
            return;
        n[n.length] = kt("sheetPr", f, s)
    }
    var Qd = ["objects", "scenarios", "selectLockedCells", "selectUnlockedCells"];
    var ev = ["formatColumns", "formatRows", "formatCells", "insertColumns", "insertRows", "insertHyperlinks", "deleteColumns", "deleteRows", "sort", "autoFilter", "pivotTables"];
    function rv(e) {
        var r = {
            sheet: 1
        };
        Qd.forEach(function(t) {
            if (e[t] != null && e[t])
                r[t] = "1"
        });
        ev.forEach(function(t) {
            if (e[t] != null && !e[t])
                r[t] = "0"
        });
        if (e.password)
            r.password = ll(e.password).toString(16).toUpperCase();
        return kt("sheetProtection", null, r)
    }
    function tv(e, r, t) {
        var a = Array.isArray(e);
        for (var n = 0; n != r.length; ++n) {
            var i = Gr(lt(r[n]), true);
            if (!i.ref)
                return;
            var s = ((t || {})["!id"] || [])[i.id];
            if (s) {
                i.Target = s.Target;
                if (i.location)
                    i.Target += "#" + Yr(i.location)
            } else {
                i.Target = "#" + Yr(i.location);
                s = {
                    Target: i.Target,
                    TargetMode: "Internal"
                }
            }
            i.Rel = s;
            if (i.tooltip) {
                i.Tooltip = i.tooltip;
                delete i.tooltip
            }
            var f = Da(i.ref);
            for (var o = f.s.r; o <= f.e.r; ++o)
                for (var l = f.s.c; l <= f.e.c; ++l) {
                    var c = Ra({
                        c: l,
                        r: o
                    });
                    if (a) {
                        if (!e[o])
                            e[o] = [];
                        if (!e[o][l])
                            e[o][l] = {
                                t: "z",
                                v: undefined
                            };
                        e[o][l].l = i
                    } else {
                        if (!e[c])
                            e[c] = {
                                t: "z",
                                v: undefined
                            };
                        e[c].l = i
                    }
                }
        }
    }
    function av(e) {
        var r = {};
        ["left", "right", "top", "bottom", "header", "footer"].forEach(function(t) {
            if (e[t])
                r[t] = parseFloat(e[t])
        });
        return r
    }
    function nv(e) {
        Dd(e);
        return kt("pageMargins", null, e)
    }
    function iv(e, r) {
        var t = false;
        for (var a = 0; a != r.length; ++a) {
            var n = Gr(r[a], true);
            if (n.hidden)
                n.hidden = nt(n.hidden);
            var i = parseInt(n.min, 10) - 1
              , s = parseInt(n.max, 10) - 1;
            if (n.outlineLevel)
                n.level = +n.outlineLevel || 0;
            delete n.min;
            delete n.max;
            n.width = +n.width;
            if (!t && n.width) {
                t = true;
                Rl(n.width)
            }
            Il(n);
            while (i <= s)
                e[i++] = br(n)
        }
    }
    function sv(e, r) {
        var t = ["<cols>"], a;
        for (var n = 0; n != r.length; ++n) {
            if (!(a = r[n]))
                continue;
            t[t.length] = kt("col", null, Nd(n, a))
        }
        t[t.length] = "</cols>";
        return t.join("")
    }
    function fv(e) {
        var r = {
            ref: (e.match(/ref="([^"]*)"/) || [])[1]
        };
        return r
    }
    function ov(e, r, t, a) {
        var n = typeof e.ref == "string" ? e.ref : Na(e.ref);
        if (!t.Workbook)
            t.Workbook = {
                Sheets: []
            };
        if (!t.Workbook.Names)
            t.Workbook.Names = [];
        var i = t.Workbook.Names;
        var s = Ia(n);
        if (s.s.r == s.e.r) {
            s.e.r = Ia(r["!ref"]).e.r;
            n = Na(s)
        }
        for (var f = 0; f < i.length; ++f) {
            var o = i[f];
            if (o.Name != "_xlnm._FilterDatabase")
                continue;
            if (o.Sheet != a)
                continue;
            o.Ref = "'" + t.SheetNames[a] + "'!" + n;
            break
        }
        if (f == i.length)
            i.push({
                Name: "_xlnm._FilterDatabase",
                Sheet: a,
                Ref: "'" + t.SheetNames[a] + "'!" + n
            });
        return kt("autoFilter", null, {
            ref: n
        })
    }
    var lv = /<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;
    function cv(e, r) {
        if (!r.Views)
            r.Views = [{}];
        (e.match(lv) || []).forEach(function(e, t) {
            var a = Gr(e);
            if (!r.Views[t])
                r.Views[t] = {};
            if (+a.zoomScale)
                r.Views[t].zoom = +a.zoomScale;
            if (nt(a.rightToLeft))
                r.Views[t].RTL = true
        })
    }
    function hv(e, r, t, a) {
        var n = {
            workbookViewId: "0"
        };
        if ((((a || {}).Workbook || {}).Views || [])[0])
            n.rightToLeft = a.Workbook.Views[0].RTL ? "1" : "0";
        return kt("sheetViews", kt("sheetView", null, n), {})
    }
    function uv(e, r, t, a) {
        if (e.c)
            t["!comments"].push([r, e.c]);
        if (e.v === undefined && typeof e.f !== "string" || e.t === "z" && !e.f)
            return "";
        var n = "";
        var i = e.t
          , s = e.v;
        if (e.t !== "z")
            switch (e.t) {
            case "b":
                n = e.v ? "1" : "0";
                break;
            case "n":
                n = "" + e.v;
                break;
            case "e":
                n = Gn[e.v];
                break;
            case "d":
                if (a && a.cellDates)
                    n = gr(e.v, -1).toISOString();
                else {
                    e = br(e);
                    e.t = "n";
                    n = "" + (e.v = fr(gr(e.v)))
                }
                if (typeof e.z === "undefined")
                    e.z = X[14];
                break;
            default:
                n = e.v;
                break;
            }
        var f = bt("v", qr(n))
          , o = {
            r: r
        };
        var l = Fd(a.cellXfs, e, a);
        if (l !== 0)
            o.s = l;
        switch (e.t) {
        case "n":
            break;
        case "d":
            o.t = "d";
            break;
        case "b":
            o.t = "b";
            break;
        case "e":
            o.t = "e";
            break;
        case "z":
            break;
        default:
            if (e.v == null) {
                delete e.t;
                break
            }
            if (e.v.length > 32767)
                throw new Error("Text length must not exceed 32767 characters");
            if (a && a.bookSST) {
                f = bt("v", "" + Id(a.Strings, e.v, a.revStrings));
                o.t = "s";
                break
            }
            o.t = "str";
            break;
        }
        if (e.t != i) {
            e.t = i;
            e.v = s
        }
        if (typeof e.f == "string" && e.f) {
            var c = e.F && e.F.slice(0, r.length) == r ? {
                t: "array",
                ref: e.F
            } : null;
            f = kt("f", qr(e.f), c) + (e.v != null ? f : "")
        }
        if (e.l)
            t["!links"].push([r, e.l]);
        if (e.D)
            o.cm = 1;
        return kt("c", f, o)
    }
    var dv = function() {
        var e = /<(?:\w+:)?c[ \/>]/
          , r = /<\/(?:\w+:)?row>/;
        var t = /r=["']([^"']*)["']/
          , a = /<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;
        var n = /ref=["']([^"']*)["']/;
        var i = ht("v")
          , s = ht("f");
        return function f(o, l, c, h, u, d) {
            var v = 0, p = "", g = [], m = [], b = 0, w = 0, k = 0, T = "", A;
            var E, C = 0, y = 0;
            var S, _;
            var x = 0
              , O = 0;
            var R = Array.isArray(d.CellXf), I;
            var N = [];
            var D = [];
            var F = Array.isArray(l);
            var P = []
              , L = {}
              , M = false;
            var U = !!c.sheetStubs;
            for (var B = o.split(r), W = 0, H = B.length; W != H; ++W) {
                p = B[W].trim();
                var z = p.length;
                if (z === 0)
                    continue;
                var V = 0;
                e: for (v = 0; v < z; ++v)
                    switch (p[v]) {
                    case ">":
                        if (p[v - 1] != "/") {
                            ++v;
                            break e
                        }
                        if (c && c.cellStyles) {
                            E = Gr(p.slice(V, v), true);
                            C = E.r != null ? parseInt(E.r, 10) : C + 1;
                            y = -1;
                            if (c.sheetRows && c.sheetRows < C)
                                continue;
                            L = {};
                            M = false;
                            if (E.ht) {
                                M = true;
                                L.hpt = parseFloat(E.ht);
                                L.hpx = Pl(L.hpt)
                            }
                            if (E.hidden == "1") {
                                M = true;
                                L.hidden = true
                            }
                            if (E.outlineLevel != null) {
                                M = true;
                                L.level = +E.outlineLevel
                            }
                            if (M)
                                P[C - 1] = L
                        }
                        break;
                    case "<":
                        V = v;
                        break;
                    }
                if (V >= v)
                    break;
                E = Gr(p.slice(V, v), true);
                C = E.r != null ? parseInt(E.r, 10) : C + 1;
                y = -1;
                if (c.sheetRows && c.sheetRows < C)
                    continue;
                if (h.s.r > C - 1)
                    h.s.r = C - 1;
                if (h.e.r < C - 1)
                    h.e.r = C - 1;
                if (c && c.cellStyles) {
                    L = {};
                    M = false;
                    if (E.ht) {
                        M = true;
                        L.hpt = parseFloat(E.ht);
                        L.hpx = Pl(L.hpt)
                    }
                    if (E.hidden == "1") {
                        M = true;
                        L.hidden = true
                    }
                    if (E.outlineLevel != null) {
                        M = true;
                        L.level = +E.outlineLevel
                    }
                    if (M)
                        P[C - 1] = L
                }
                g = p.slice(v).split(e);
                for (var G = 0; G != g.length; ++G)
                    if (g[G].trim().charAt(0) != "<")
                        break;
                g = g.slice(G);
                for (v = 0; v != g.length; ++v) {
                    p = g[v].trim();
                    if (p.length === 0)
                        continue;
                    m = p.match(t);
                    b = v;
                    w = 0;
                    k = 0;
                    p = "<c " + (p.slice(0, 1) == "<" ? ">" : "") + p;
                    if (m != null && m.length === 2) {
                        b = 0;
                        T = m[1];
                        for (w = 0; w != T.length; ++w) {
                            if ((k = T.charCodeAt(w) - 64) < 1 || k > 26)
                                break;
                            b = 26 * b + k
                        }
                        --b;
                        y = b
                    } else
                        ++y;
                    for (w = 0; w != p.length; ++w)
                        if (p.charCodeAt(w) === 62)
                            break;
                    ++w;
                    E = Gr(p.slice(0, w), true);
                    if (!E.r)
                        E.r = Ra({
                            r: C - 1,
                            c: y
                        });
                    T = p.slice(w);
                    A = {
                        t: ""
                    };
                    if ((m = T.match(i)) != null && m[1] !== "")
                        A.v = Yr(m[1]);
                    if (c.cellFormula) {
                        if ((m = T.match(s)) != null && m[1] !== "") {
                            A.f = Yr(lt(m[1])).replace(/\r\n/g, "\n");
                            if (!c.xlfn)
                                A.f = Nh(A.f);
                            if (m[0].indexOf('t="array"') > -1) {
                                A.F = (T.match(n) || [])[1];
                                if (A.F.indexOf(":") > -1)
                                    N.push([Da(A.F), A.F])
                            } else if (m[0].indexOf('t="shared"') > -1) {
                                _ = Gr(m[0]);
                                var j = Yr(lt(m[1]));
                                if (!c.xlfn)
                                    j = Nh(j);
                                D[parseInt(_.si, 10)] = [_, j, E.r]
                            }
                        } else if (m = T.match(/<f[^>]*\/>/)) {
                            _ = Gr(m[0]);
                            if (D[_.si])
                                A.f = Rh(D[_.si][1], D[_.si][2], E.r)
                        }
                        var $ = Oa(E.r);
                        for (w = 0; w < N.length; ++w)
                            if ($.r >= N[w][0].s.r && $.r <= N[w][0].e.r)
                                if ($.c >= N[w][0].s.c && $.c <= N[w][0].e.c)
                                    A.F = N[w][1]
                    }
                    if (E.t == null && A.v === undefined) {
                        if (A.f || A.F) {
                            A.v = 0;
                            A.t = "n"
                        } else if (!U)
                            continue;
                        else
                            A.t = "z"
                    } else
                        A.t = E.t || "n";
                    if (h.s.c > y)
                        h.s.c = y;
                    if (h.e.c < y)
                        h.e.c = y;
                    switch (A.t) {
                    case "n":
                        if (A.v == "" || A.v == null) {
                            if (!U)
                                continue;
                            A.t = "z"
                        } else
                            A.v = parseFloat(A.v);
                        break;
                    case "s":
                        if (typeof A.v == "undefined") {
                            if (!U)
                                continue;
                            A.t = "z"
                        } else {
                            S = xd[parseInt(A.v, 10)];
                            A.v = S.t;
                            A.r = S.r;
                            if (c.cellHTML)
                                A.h = S.h
                        }
                        break;
                    case "str":
                        A.t = "s";
                        A.v = A.v != null ? lt(A.v) : "";
                        if (c.cellHTML)
                            A.h = et(A.v);
                        break;
                    case "inlineStr":
                        m = T.match(a);
                        A.t = "s";
                        if (m != null && (S = Po(m[1]))) {
                            A.v = S.t;
                            if (c.cellHTML)
                                A.h = S.h
                        } else
                            A.v = "";
                        break;
                    case "b":
                        A.v = nt(A.v);
                        break;
                    case "d":
                        if (c.cellDates)
                            A.v = gr(A.v, 1);
                        else {
                            A.v = fr(gr(A.v, 1));
                            A.t = "n"
                        }
                        break;
                    case "e":
                        if (!c || c.cellText !== false)
                            A.w = A.v;
                        A.v = jn[A.v];
                        break;
                    }
                    x = O = 0;
                    I = null;
                    if (R && E.s !== undefined) {
                        I = d.CellXf[E.s];
                        if (I != null) {
                            if (I.numFmtId != null)
                                x = I.numFmtId;
                            if (c.cellStyles) {
                                if (I.fillId != null)
                                    O = I.fillId
                            }
                        }
                    }
                    Pd(A, x, O, c, u, d);
                    if (c.cellDates && R && A.t == "n" && Fe(X[x])) {
                        A.t = "d";
                        A.v = hr(A.v)
                    }
                    if (E.cm && c.xlmeta) {
                        var Y = (c.xlmeta.Cell || [])[+E.cm - 1];
                        if (Y && Y.type == "XLDAPR")
                            A.D = true
                    }
                    if (F) {
                        var K = Oa(E.r);
                        if (!l[K.r])
                            l[K.r] = [];
                        l[K.r][K.c] = A
                    } else
                        l[E.r] = A
                }
            }
            if (P.length > 0)
                l["!rows"] = P
        }
    }();
    function vv(e, r, t, a) {
        var n = [], i = [], s = Da(e["!ref"]), f = "", o, l = "", c = [], h = 0, u = 0, d = e["!rows"];
        var v = Array.isArray(e);
        var p = {
            r: l
        }, g, m = -1;
        for (u = s.s.c; u <= s.e.c; ++u)
            c[u] = ya(u);
        for (h = s.s.r; h <= s.e.r; ++h) {
            i = [];
            l = Ta(h);
            for (u = s.s.c; u <= s.e.c; ++u) {
                o = c[u] + l;
                var b = v ? (e[h] || [])[u] : e[o];
                if (b === undefined)
                    continue;
                if ((f = uv(b, o, e, r, t, a)) != null)
                    i.push(f)
            }
            if (i.length > 0 || d && d[h]) {
                p = {
                    r: l
                };
                if (d && d[h]) {
                    g = d[h];
                    if (g.hidden)
                        p.hidden = 1;
                    m = -1;
                    if (g.hpx)
                        m = Fl(g.hpx);
                    else if (g.hpt)
                        m = g.hpt;
                    if (m > -1) {
                        p.ht = m;
                        p.customHeight = 1
                    }
                    if (g.level) {
                        p.outlineLevel = g.level
                    }
                }
                n[n.length] = kt("row", i.join(""), p)
            }
        }
        if (d)
            for (; h < d.length; ++h) {
                if (d && d[h]) {
                    p = {
                        r: h + 1
                    };
                    g = d[h];
                    if (g.hidden)
                        p.hidden = 1;
                    m = -1;
                    if (g.hpx)
                        m = Fl(g.hpx);
                    else if (g.hpt)
                        m = g.hpt;
                    if (m > -1) {
                        p.ht = m;
                        p.customHeight = 1
                    }
                    if (g.level) {
                        p.outlineLevel = g.level
                    }
                    n[n.length] = kt("row", "", p)
                }
            }
        return n.join("")
    }
    function pv(e, r, t, a) {
        var n = [Mr, kt("worksheet", null, {
            xmlns: St[0],
            "xmlns:r": yt.r
        })];
        var i = t.SheetNames[e]
          , s = 0
          , f = "";
        var o = t.Sheets[i];
        if (o == null)
            o = {};
        var l = o["!ref"] || "A1";
        var c = Da(l);
        if (c.e.c > 16383 || c.e.r > 1048575) {
            if (r.WTF)
                throw new Error("Range " + l + " exceeds format limit A1:XFD1048576");
            c.e.c = Math.min(c.e.c, 16383);
            c.e.r = Math.min(c.e.c, 1048575);
            l = Na(c)
        }
        if (!a)
            a = {};
        o["!comments"] = [];
        var h = [];
        Zd(o, t, e, r, n);
        n[n.length] = kt("dimension", null, {
            ref: l
        });
        n[n.length] = hv(o, r, e, t);
        if (r.sheetFormat)
            n[n.length] = kt("sheetFormatPr", null, {
                defaultRowHeight: r.sheetFormat.defaultRowHeight || "16",
                baseColWidth: r.sheetFormat.baseColWidth || "10",
                outlineLevelRow: r.sheetFormat.outlineLevelRow || "7"
            });
        if (o["!cols"] != null && o["!cols"].length > 0)
            n[n.length] = sv(o, o["!cols"]);
        n[s = n.length] = "<sheetData/>";
        o["!links"] = [];
        if (o["!ref"] != null) {
            f = vv(o, r, e, t, a);
            if (f.length > 0)
                n[n.length] = f
        }
        if (n.length > s + 1) {
            n[n.length] = "</sheetData>";
            n[s] = n[s].replace("/>", ">")
        }
        if (o["!protect"])
            n[n.length] = rv(o["!protect"]);
        if (o["!autofilter"] != null)
            n[n.length] = ov(o["!autofilter"], o, t, e);
        if (o["!merges"] != null && o["!merges"].length > 0)
            n[n.length] = Kd(o["!merges"]);
        var u = -1, d, v = -1;
        if (o["!links"].length > 0) {
            n[n.length] = "<hyperlinks>";
            o["!links"].forEach(function(e) {
                if (!e[1].Target)
                    return;
                d = {
                    ref: e[0]
                };
                if (e[1].Target.charAt(0) != "#") {
                    v = ri(a, -1, qr(e[1].Target).replace(/#.*$/, ""), qn.HLINK);
                    d["r:id"] = "rId" + v
                }
                if ((u = e[1].Target.indexOf("#")) > -1)
                    d.location = qr(e[1].Target.slice(u + 1));
                if (e[1].Tooltip)
                    d.tooltip = qr(e[1].Tooltip);
                n[n.length] = kt("hyperlink", null, d)
            });
            n[n.length] = "</hyperlinks>"
        }
        delete o["!links"];
        if (o["!margins"] != null)
            n[n.length] = nv(o["!margins"]);
        if (!r || r.ignoreEC || r.ignoreEC == void 0)
            n[n.length] = bt("ignoredErrors", kt("ignoredError", null, {
                numberStoredAsText: 1,
                sqref: l
            }));
        if (h.length > 0) {
            v = ri(a, -1, "../drawings/drawing" + (e + 1) + ".xml", qn.DRAW);
            n[n.length] = kt("drawing", null, {
                "r:id": "rId" + v
            });
            o["!drawing"] = h
        }
        if (o["!comments"].length > 0) {
            v = ri(a, -1, "../drawings/vmlDrawing" + (e + 1) + ".vml", qn.VML);
            n[n.length] = kt("legacyDrawing", null, {
                "r:id": "rId" + v
            });
            o["!legacy"] = v
        }
        if (n.length > 1) {
            n[n.length] = "</worksheet>";
            n[1] = n[1].replace("/>", ">")
        }
        return n.join("")
    }
    function gv(e, r) {
        var t = {};
        var a = e.l + r;
        t.r = e._R(4);
        e.l += 4;
        var n = e._R(2);
        e.l += 1;
        var i = e._R(1);
        e.l = a;
        if (i & 7)
            t.level = i & 7;
        if (i & 16)
            t.hidden = true;
        if (i & 32)
            t.hpt = n / 20;
        return t
    }
    function mv(e, r, t) {
        var a = ua(17 + 8 * 16);
        var n = (t["!rows"] || [])[e] || {};
        a._W(4, e);
        a._W(4, 0);
        var i = 320;
        if (n.hpx)
            i = Fl(n.hpx) * 20;
        else if (n.hpt)
            i = n.hpt * 20;
        a._W(2, i);
        a._W(1, 0);
        var s = 0;
        if (n.level)
            s |= n.level;
        if (n.hidden)
            s |= 16;
        if (n.hpx || n.hpt)
            s |= 32;
        a._W(1, s);
        a._W(1, 0);
        var f = 0
          , o = a.l;
        a.l += 4;
        var l = {
            r: e,
            c: 0
        };
        for (var c = 0; c < 16; ++c) {
            if (r.s.c > c + 1 << 10 || r.e.c < c << 10)
                continue;
            var h = -1
              , u = -1;
            for (var d = c << 10; d < c + 1 << 10; ++d) {
                l.c = d;
                var v = Array.isArray(t) ? (t[l.r] || [])[l.c] : t[Ra(l)];
                if (v) {
                    if (h < 0)
                        h = d;
                    u = d
                }
            }
            if (h < 0)
                continue;
            ++f;
            a._W(4, h);
            a._W(4, u)
        }
        var p = a.l;
        a.l = o;
        a._W(4, f);
        a.l = p;
        return a.length > a.l ? a.slice(0, a.l) : a
    }
    function bv(e, r, t, a) {
        var n = mv(a, t, r);
        if (n.length > 17 || (r["!rows"] || [])[a])
            pa(e, 0, n)
    }
    var wv = hn;
    var kv = un;
    function Tv() {}
    function Av(e, r) {
        var t = {};
        var a = e[e.l];
        ++e.l;
        t.above = !(a & 64);
        t.left = !(a & 128);
        e.l += 18;
        t.name = Qa(e, r - 19);
        return t
    }
    function Ev(e, r, t) {
        if (t == null)
            t = ua(84 + 4 * e.length);
        var a = 192;
        if (r) {
            if (r.above)
                a &= ~64;
            if (r.left)
                a &= ~128
        }
        t._W(1, a);
        for (var n = 1; n < 3; ++n)
            t._W(1, 0);
        gn({
            auto: 1
        }, t);
        t._W(-4, -1);
        t._W(-4, -1);
        en(e, t);
        return t.slice(0, t.l)
    }
    function Cv(e) {
        var r = Ka(e);
        return [r]
    }
    function yv(e, r, t) {
        if (t == null)
            t = ua(8);
        return Ja(r, t)
    }
    function Sv(e) {
        var r = qa(e);
        return [r]
    }
    function _v(e, r, t) {
        if (t == null)
            t = ua(4);
        return Za(r, t)
    }
    function xv(e) {
        var r = Ka(e);
        var t = e._R(1);
        return [r, t, "b"]
    }
    function Ov(e, r, t) {
        if (t == null)
            t = ua(9);
        Ja(r, t);
        t._W(1, e.v ? 1 : 0);
        return t
    }
    function Rv(e) {
        var r = qa(e);
        var t = e._R(1);
        return [r, t, "b"]
    }
    function Iv(e, r, t) {
        if (t == null)
            t = ua(5);
        Za(r, t);
        t._W(1, e.v ? 1 : 0);
        return t
    }
    function Nv(e) {
        var r = Ka(e);
        var t = e._R(1);
        return [r, t, "e"]
    }
    function Dv(e, r, t) {
        if (t == null)
            t = ua(9);
        Ja(r, t);
        t._W(1, e.v);
        return t
    }
    function Fv(e) {
        var r = qa(e);
        var t = e._R(1);
        return [r, t, "e"]
    }
    function Pv(e, r, t) {
        if (t == null)
            t = ua(8);
        Za(r, t);
        t._W(1, e.v);
        t._W(2, 0);
        t._W(1, 0);
        return t
    }
    function Lv(e) {
        var r = Ka(e);
        var t = e._R(4);
        return [r, t, "s"]
    }
    function Mv(e, r, t) {
        if (t == null)
            t = ua(12);
        Ja(r, t);
        t._W(4, r.v);
        return t
    }
    function Uv(e) {
        var r = qa(e);
        var t = e._R(4);
        return [r, t, "s"]
    }
    function Bv(e, r, t) {
        if (t == null)
            t = ua(8);
        Za(r, t);
        t._W(4, r.v);
        return t
    }
    function Wv(e) {
        var r = Ka(e);
        var t = dn(e);
        return [r, t, "n"]
    }
    function Hv(e, r, t) {
        if (t == null)
            t = ua(16);
        Ja(r, t);
        vn(e.v, t);
        return t
    }
    function zv(e) {
        var r = qa(e);
        var t = dn(e);
        return [r, t, "n"]
    }
    function Vv(e, r, t) {
        if (t == null)
            t = ua(12);
        Za(r, t);
        vn(e.v, t);
        return t
    }
    function Gv(e) {
        var r = Ka(e);
        var t = fn(e);
        return [r, t, "n"]
    }
    function jv(e, r, t) {
        if (t == null)
            t = ua(12);
        Ja(r, t);
        on(e.v, t);
        return t
    }
    function Xv(e) {
        var r = qa(e);
        var t = fn(e);
        return [r, t, "n"]
    }
    function $v(e, r, t) {
        if (t == null)
            t = ua(8);
        Za(r, t);
        on(e.v, t);
        return t
    }
    function Yv(e) {
        var r = Ka(e);
        var t = ja(e);
        return [r, t, "is"]
    }
    function Kv(e) {
        var r = Ka(e);
        var t = Ha(e);
        return [r, t, "str"]
    }
    function Jv(e, r, t) {
        if (t == null)
            t = ua(12 + 4 * e.v.length);
        Ja(r, t);
        za(e.v, t);
        return t.length > t.l ? t.slice(0, t.l) : t
    }
    function qv(e) {
        var r = qa(e);
        var t = Ha(e);
        return [r, t, "str"]
    }
    function Zv(e, r, t) {
        if (t == null)
            t = ua(8 + 4 * e.v.length);
        Za(r, t);
        za(e.v, t);
        return t.length > t.l ? t.slice(0, t.l) : t
    }
    function Qv(e, r, t) {
        var a = e.l + r;
        var n = Ka(e);
        n.r = t["!row"];
        var i = e._R(1);
        var s = [n, i, "b"];
        if (t.cellFormula) {
            e.l += 2;
            var f = bd(e, a - e.l, t);
            s[3] = fd(f, null, n, t.supbooks, t)
        } else
            e.l = a;
        return s
    }
    function ep(e, r, t) {
        var a = e.l + r;
        var n = Ka(e);
        n.r = t["!row"];
        var i = e._R(1);
        var s = [n, i, "e"];
        if (t.cellFormula) {
            e.l += 2;
            var f = bd(e, a - e.l, t);
            s[3] = fd(f, null, n, t.supbooks, t)
        } else
            e.l = a;
        return s
    }
    function rp(e, r, t) {
        var a = e.l + r;
        var n = Ka(e);
        n.r = t["!row"];
        var i = dn(e);
        var s = [n, i, "n"];
        if (t.cellFormula) {
            e.l += 2;
            var f = bd(e, a - e.l, t);
            s[3] = fd(f, null, n, t.supbooks, t)
        } else
            e.l = a;
        return s
    }
    function tp(e, r, t) {
        var a = e.l + r;
        var n = Ka(e);
        n.r = t["!row"];
        var i = Ha(e);
        var s = [n, i, "str"];
        if (t.cellFormula) {
            e.l += 2;
            var f = bd(e, a - e.l, t);
            s[3] = fd(f, null, n, t.supbooks, t)
        } else
            e.l = a;
        return s
    }
    var ap = hn;
    var np = un;
    function ip(e, r) {
        if (r == null)
            r = ua(4);
        r._W(4, e);
        return r
    }
    function sp(e, r) {
        var t = e.l + r;
        var a = hn(e, 16);
        var n = rn(e);
        var i = Ha(e);
        var s = Ha(e);
        var f = Ha(e);
        e.l = t;
        var o = {
            rfx: a,
            relId: n,
            loc: i,
            display: f
        };
        if (s)
            o.Tooltip = s;
        return o
    }
    function fp(e, r) {
        var t = ua(50 + 4 * (e[1].Target.length + (e[1].Tooltip || "").length));
        un({
            s: Oa(e[0]),
            e: Oa(e[0])
        }, t);
        sn("rId" + r, t);
        var a = e[1].Target.indexOf("#");
        var n = a == -1 ? "" : e[1].Target.slice(a + 1);
        za(n || "", t);
        za(e[1].Tooltip || "", t);
        za("", t);
        return t.slice(0, t.l)
    }
    function op() {}
    function lp(e, r, t) {
        var a = e.l + r;
        var n = ln(e, 16);
        var i = e._R(1);
        var s = [n];
        s[2] = i;
        if (t.cellFormula) {
            var f = md(e, a - e.l, t);
            s[1] = f
        } else
            e.l = a;
        return s
    }
    function cp(e, r, t) {
        var a = e.l + r;
        var n = hn(e, 16);
        var i = [n];
        if (t.cellFormula) {
            var s = kd(e, a - e.l, t);
            i[1] = s;
            e.l = a
        } else
            e.l = a;
        return i
    }
    function hp(e, r, t) {
        if (t == null)
            t = ua(18);
        var a = Nd(e, r);
        t._W(-4, e);
        t._W(-4, e);
        t._W(4, (a.width || 10) * 256);
        t._W(4, 0);
        var n = 0;
        if (r.hidden)
            n |= 1;
        if (typeof a.width == "number")
            n |= 2;
        if (r.level)
            n |= r.level << 8;
        t._W(2, n);
        return t
    }
    var up = ["left", "right", "top", "bottom", "header", "footer"];
    function dp(e) {
        var r = {};
        up.forEach(function(t) {
            r[t] = dn(e, 8)
        });
        return r
    }
    function vp(e, r) {
        if (r == null)
            r = ua(6 * 8);
        Dd(e);
        up.forEach(function(t) {
            vn(e[t], r)
        });
        return r
    }
    function pp(e) {
        var r = e._R(2);
        e.l += 28;
        return {
            RTL: r & 32
        }
    }
    function gp(e, r, t) {
        if (t == null)
            t = ua(30);
        var a = 924;
        if ((((r || {}).Views || [])[0] || {}).RTL)
            a |= 32;
        t._W(2, a);
        t._W(4, 0);
        t._W(4, 0);
        t._W(4, 0);
        t._W(1, 0);
        t._W(1, 0);
        t._W(2, 0);
        t._W(2, 100);
        t._W(2, 0);
        t._W(2, 0);
        t._W(2, 0);
        t._W(4, 0);
        return t
    }
    function mp(e) {
        var r = ua(24);
        r._W(4, 4);
        r._W(4, 1);
        un(e, r);
        return r
    }
    function bp(e, r) {
        if (r == null)
            r = ua(16 * 4 + 2);
        r._W(2, e.password ? ll(e.password) : 0);
        r._W(4, 1);
        [["objects", false], ["scenarios", false], ["formatCells", true], ["formatColumns", true], ["formatRows", true], ["insertColumns", true], ["insertRows", true], ["insertHyperlinks", true], ["deleteColumns", true], ["deleteRows", true], ["selectLockedCells", false], ["sort", true], ["autoFilter", true], ["pivotTables", true], ["selectUnlockedCells", false]].forEach(function(t) {
            if (t[1])
                r._W(4, e[t[0]] != null && !e[t[0]] ? 1 : 0);
            else
                r._W(4, e[t[0]] != null && e[t[0]] ? 0 : 1)
        });
        return r
    }
    function wp() {}
    function kp() {}
    function Tp(e, r, t, a, n, i, s) {
        if (!e)
            return e;
        var f = r || {};
        if (!a)
            a = {
                "!id": {}
            };
        if (g != null && f.dense == null)
            f.dense = g;
        var o = f.dense ? [] : {};
        var l;
        var c = {
            s: {
                r: 2e6,
                c: 2e6
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var h = [];
        var u = false
          , d = false;
        var v, p, m, b, w, k, T, A, E;
        var C = [];
        f.biff = 12;
        f["!row"] = 0;
        var y = 0
          , S = false;
        var _ = [];
        var x = {};
        var O = f.supbooks || n.supbooks || [[]];
        O.sharedf = x;
        O.arrayf = _;
        O.SheetNames = n.SheetNames || n.Sheets.map(function(e) {
            return e.name
        });
        if (!f.supbooks) {
            f.supbooks = O;
            if (n.Names)
                for (var R = 0; R < n.Names.length; ++R)
                    O[0][R + 1] = n.Names[R]
        }
        var I = []
          , N = [];
        var D = false;
        gm[16] = {
            n: "BrtShortReal",
            f: zv
        };
        var F, P;
        da(e, function M(e, r, g) {
            if (d)
                return;
            switch (g) {
            case 148:
                l = e;
                break;
            case 0:
                v = e;
                if (f.sheetRows && f.sheetRows <= v.r)
                    d = true;
                A = Ta(b = v.r);
                f["!row"] = v.r;
                if (e.hidden || e.hpt || e.level != null) {
                    if (e.hpt)
                        e.hpx = Pl(e.hpt);
                    N[e.r] = e
                }
                break;
            case 2:
                ;
            case 3:
                ;
            case 4:
                ;
            case 5:
                ;
            case 6:
                ;
            case 7:
                ;
            case 8:
                ;
            case 9:
                ;
            case 10:
                ;
            case 11:
                ;
            case 13:
                ;
            case 14:
                ;
            case 15:
                ;
            case 16:
                ;
            case 17:
                ;
            case 18:
                ;
            case 62:
                p = {
                    t: e[2]
                };
                switch (e[2]) {
                case "n":
                    p.v = e[1];
                    break;
                case "s":
                    T = xd[e[1]];
                    p.v = T.t;
                    p.r = T.r;
                    break;
                case "b":
                    p.v = e[1] ? true : false;
                    break;
                case "e":
                    p.v = e[1];
                    if (f.cellText !== false)
                        p.w = Gn[p.v];
                    break;
                case "str":
                    p.t = "s";
                    p.v = e[1];
                    break;
                case "is":
                    p.t = "s";
                    p.v = e[1].t;
                    break;
                }
                if (m = s.CellXf[e[0].iStyleRef])
                    Pd(p, m.numFmtId, null, f, i, s);
                w = e[0].c == -1 ? w + 1 : e[0].c;
                if (f.dense) {
                    if (!o[b])
                        o[b] = [];
                    o[b][w] = p
                } else
                    o[ya(w) + A] = p;
                if (f.cellFormula) {
                    S = false;
                    for (y = 0; y < _.length; ++y) {
                        var R = _[y];
                        if (v.r >= R[0].s.r && v.r <= R[0].e.r)
                            if (w >= R[0].s.c && w <= R[0].e.c) {
                                p.F = Na(R[0]);
                                S = true
                            }
                    }
                    if (!S && e.length > 3)
                        p.f = e[3]
                }
                if (c.s.r > v.r)
                    c.s.r = v.r;
                if (c.s.c > w)
                    c.s.c = w;
                if (c.e.r < v.r)
                    c.e.r = v.r;
                if (c.e.c < w)
                    c.e.c = w;
                if (f.cellDates && m && p.t == "n" && Fe(X[m.numFmtId])) {
                    var L = q(p.v);
                    if (L) {
                        p.t = "d";
                        p.v = new Date(L.y,L.m - 1,L.d,L.H,L.M,L.S,L.u)
                    }
                }
                if (F) {
                    if (F.type == "XLDAPR")
                        p.D = true;
                    F = void 0
                }
                if (P)
                    P = void 0;
                break;
            case 1:
                ;
            case 12:
                if (!f.sheetStubs || u)
                    break;
                p = {
                    t: "z",
                    v: void 0
                };
                w = e[0].c == -1 ? w + 1 : e[0].c;
                if (f.dense) {
                    if (!o[b])
                        o[b] = [];
                    o[b][w] = p
                } else
                    o[ya(w) + A] = p;
                if (c.s.r > v.r)
                    c.s.r = v.r;
                if (c.s.c > w)
                    c.s.c = w;
                if (c.e.r < v.r)
                    c.e.r = v.r;
                if (c.e.c < w)
                    c.e.c = w;
                if (F) {
                    if (F.type == "XLDAPR")
                        p.D = true;
                    F = void 0
                }
                if (P)
                    P = void 0;
                break;
            case 176:
                C.push(e);
                break;
            case 49:
                {
                    F = ((f.xlmeta || {}).Cell || [])[e - 1]
                }
                break;
            case 494:
                var M = a["!id"][e.relId];
                if (M) {
                    e.Target = M.Target;
                    if (e.loc)
                        e.Target += "#" + e.loc;
                    e.Rel = M
                } else if (e.relId == "") {
                    e.Target = "#" + e.loc
                }
                for (b = e.rfx.s.r; b <= e.rfx.e.r; ++b)
                    for (w = e.rfx.s.c; w <= e.rfx.e.c; ++w) {
                        if (f.dense) {
                            if (!o[b])
                                o[b] = [];
                            if (!o[b][w])
                                o[b][w] = {
                                    t: "z",
                                    v: undefined
                                };
                            o[b][w].l = e
                        } else {
                            k = Ra({
                                c: w,
                                r: b
                            });
                            if (!o[k])
                                o[k] = {
                                    t: "z",
                                    v: undefined
                                };
                            o[k].l = e
                        }
                    }
                break;
            case 426:
                if (!f.cellFormula)
                    break;
                _.push(e);
                E = f.dense ? o[b][w] : o[ya(w) + A];
                E.f = fd(e[1], c, {
                    r: v.r,
                    c: w
                }, O, f);
                E.F = Na(e[0]);
                break;
            case 427:
                if (!f.cellFormula)
                    break;
                x[Ra(e[0].s)] = e[1];
                E = f.dense ? o[b][w] : o[ya(w) + A];
                E.f = fd(e[1], c, {
                    r: v.r,
                    c: w
                }, O, f);
                break;
            case 60:
                if (!f.cellStyles)
                    break;
                while (e.e >= e.s) {
                    I[e.e--] = {
                        width: e.w / 256,
                        hidden: !!(e.flags & 1),
                        level: e.level
                    };
                    if (!D) {
                        D = true;
                        Rl(e.w / 256)
                    }
                    Il(I[e.e + 1])
                }
                break;
            case 161:
                o["!autofilter"] = {
                    ref: Na(e)
                };
                break;
            case 476:
                o["!margins"] = e;
                break;
            case 147:
                if (!n.Sheets[t])
                    n.Sheets[t] = {};
                if (e.name)
                    n.Sheets[t].CodeName = e.name;
                if (e.above || e.left)
                    o["!outline"] = {
                        above: e.above,
                        left: e.left
                    };
                break;
            case 137:
                if (!n.Views)
                    n.Views = [{}];
                if (!n.Views[0])
                    n.Views[0] = {};
                if (e.RTL)
                    n.Views[0].RTL = true;
                break;
            case 485:
                break;
            case 64:
                ;
            case 1053:
                break;
            case 151:
                break;
            case 152:
                ;
            case 175:
                ;
            case 644:
                ;
            case 625:
                ;
            case 562:
                ;
            case 396:
                ;
            case 1112:
                ;
            case 1146:
                ;
            case 471:
                ;
            case 1050:
                ;
            case 649:
                ;
            case 1105:
                ;
            case 589:
                ;
            case 607:
                ;
            case 564:
                ;
            case 1055:
                ;
            case 168:
                ;
            case 174:
                ;
            case 1180:
                ;
            case 499:
                ;
            case 507:
                ;
            case 550:
                ;
            case 171:
                ;
            case 167:
                ;
            case 1177:
                ;
            case 169:
                ;
            case 1181:
                ;
            case 551:
                ;
            case 552:
                ;
            case 661:
                ;
            case 639:
                ;
            case 478:
                ;
            case 537:
                ;
            case 477:
                ;
            case 536:
                ;
            case 1103:
                ;
            case 680:
                ;
            case 1104:
                ;
            case 1024:
                ;
            case 663:
                ;
            case 535:
                ;
            case 678:
                ;
            case 504:
                ;
            case 1043:
                ;
            case 428:
                ;
            case 170:
                ;
            case 3072:
                ;
            case 50:
                ;
            case 2070:
                ;
            case 1045:
                break;
            case 35:
                u = true;
                break;
            case 36:
                u = false;
                break;
            case 37:
                h.push(g);
                u = true;
                break;
            case 38:
                h.pop();
                u = false;
                break;
            default:
                if (r.T) {} else if (!u || f.WTF)
                    throw new Error("Unexpected record 0x" + g.toString(16));
            }
        }, f);
        delete f.supbooks;
        delete f["!row"];
        if (!o["!ref"] && (c.s.r < 2e6 || l && (l.e.r > 0 || l.e.c > 0 || l.s.r > 0 || l.s.c > 0)))
            o["!ref"] = Na(l || c);
        if (f.sheetRows && o["!ref"]) {
            var L = Da(o["!ref"]);
            if (f.sheetRows <= +L.e.r) {
                L.e.r = f.sheetRows - 1;
                if (L.e.r > c.e.r)
                    L.e.r = c.e.r;
                if (L.e.r < L.s.r)
                    L.s.r = L.e.r;
                if (L.e.c > c.e.c)
                    L.e.c = c.e.c;
                if (L.e.c < L.s.c)
                    L.s.c = L.e.c;
                o["!fullref"] = o["!ref"];
                o["!ref"] = Na(L)
            }
        }
        if (C.length > 0)
            o["!merges"] = C;
        if (I.length > 0)
            o["!cols"] = I;
        if (N.length > 0)
            o["!rows"] = N;
        return o
    }
    function Ap(e, r, t, a, n, i, s) {
        if (r.v === undefined)
            return false;
        var f = "";
        switch (r.t) {
        case "b":
            f = r.v ? "1" : "0";
            break;
        case "d":
            r = br(r);
            r.z = r.z || X[14];
            r.v = fr(gr(r.v));
            r.t = "n";
            break;
        case "n":
            ;
        case "e":
            f = "" + r.v;
            break;
        default:
            f = r.v;
            break;
        }
        var o = {
            r: t,
            c: a
        };
        o.s = Fd(n.cellXfs, r, n);
        if (r.l)
            i["!links"].push([Ra(o), r.l]);
        if (r.c)
            i["!comments"].push([Ra(o), r.c]);
        switch (r.t) {
        case "s":
            ;
        case "str":
            if (n.bookSST) {
                f = Id(n.Strings, r.v, n.revStrings);
                o.t = "s";
                o.v = f;
                if (s)
                    pa(e, 18, Bv(r, o));
                else
                    pa(e, 7, Mv(r, o))
            } else {
                o.t = "str";
                if (s)
                    pa(e, 17, Zv(r, o));
                else
                    pa(e, 6, Jv(r, o))
            }
            return true;
        case "n":
            if (r.v == (r.v | 0) && r.v > -1e3 && r.v < 1e3) {
                if (s)
                    pa(e, 13, $v(r, o));
                else
                    pa(e, 2, jv(r, o))
            } else {
                if (s)
                    pa(e, 16, Vv(r, o));
                else
                    pa(e, 5, Hv(r, o))
            }
            return true;
        case "b":
            o.t = "b";
            if (s)
                pa(e, 15, Iv(r, o));
            else
                pa(e, 4, Ov(r, o));
            return true;
        case "e":
            o.t = "e";
            if (s)
                pa(e, 14, Pv(r, o));
            else
                pa(e, 3, Dv(r, o));
            return true;
        }
        if (s)
            pa(e, 12, _v(r, o));
        else
            pa(e, 1, yv(r, o));
        return true
    }
    function Ep(e, r, t, a) {
        var n = Da(r["!ref"] || "A1"), i, s = "", f = [];
        pa(e, 145);
        var o = Array.isArray(r);
        var l = n.e.r;
        if (r["!rows"])
            l = Math.max(n.e.r, r["!rows"].length - 1);
        for (var c = n.s.r; c <= l; ++c) {
            s = Ta(c);
            bv(e, r, n, c);
            var h = false;
            if (c <= n.e.r)
                for (var u = n.s.c; u <= n.e.c; ++u) {
                    if (c === n.s.r)
                        f[u] = ya(u);
                    i = f[u] + s;
                    var d = o ? (r[c] || [])[u] : r[i];
                    if (!d) {
                        h = false;
                        continue
                    }
                    h = Ap(e, d, c, u, a, r, h)
                }
        }
        pa(e, 146)
    }
    function Cp(e, r) {
        if (!r || !r["!merges"])
            return;
        pa(e, 177, ip(r["!merges"].length));
        r["!merges"].forEach(function(r) {
            pa(e, 176, np(r))
        });
        pa(e, 178)
    }
    function yp(e, r) {
        if (!r || !r["!cols"])
            return;
        pa(e, 390);
        r["!cols"].forEach(function(r, t) {
            if (r)
                pa(e, 60, hp(t, r))
        });
        pa(e, 391)
    }
    function Sp(e, r) {
        if (!r || !r["!ref"])
            return;
        pa(e, 648);
        pa(e, 649, mp(Da(r["!ref"])));
        pa(e, 650)
    }
    function _p(e, r, t) {
        r["!links"].forEach(function(r) {
            if (!r[1].Target)
                return;
            var a = ri(t, -1, r[1].Target.replace(/#.*$/, ""), qn.HLINK);
            pa(e, 494, fp(r, a))
        });
        delete r["!links"]
    }
    function xp(e, r, t, a) {
        if (r["!comments"].length > 0) {
            var n = ri(a, -1, "../drawings/vmlDrawing" + (t + 1) + ".vml", qn.VML);
            pa(e, 551, sn("rId" + n));
            r["!legacy"] = n
        }
    }
    function Op(e, r, t, a) {
        if (!r["!autofilter"])
            return;
        var n = r["!autofilter"];
        var i = typeof n.ref === "string" ? n.ref : Na(n.ref);
        if (!t.Workbook)
            t.Workbook = {
                Sheets: []
            };
        if (!t.Workbook.Names)
            t.Workbook.Names = [];
        var s = t.Workbook.Names;
        var f = Ia(i);
        if (f.s.r == f.e.r) {
            f.e.r = Ia(r["!ref"]).e.r;
            i = Na(f)
        }
        for (var o = 0; o < s.length; ++o) {
            var l = s[o];
            if (l.Name != "_xlnm._FilterDatabase")
                continue;
            if (l.Sheet != a)
                continue;
            l.Ref = "'" + t.SheetNames[a] + "'!" + i;
            break
        }
        if (o == s.length)
            s.push({
                Name: "_xlnm._FilterDatabase",
                Sheet: a,
                Ref: "'" + t.SheetNames[a] + "'!" + i
            });
        pa(e, 161, un(Da(i)));
        pa(e, 162)
    }
    function Rp(e, r, t) {
        pa(e, 133);
        {
            pa(e, 137, gp(r, t));
            pa(e, 138)
        }
        pa(e, 134)
    }
    function Ip() {}
    function Np(e, r) {
        if (!r["!protect"])
            return;
        pa(e, 535, bp(r["!protect"]))
    }
    function Dp(e, r, t, a) {
        var n = va();
        var i = t.SheetNames[e]
          , s = t.Sheets[i] || {};
        var f = i;
        try {
            if (t && t.Workbook)
                f = t.Workbook.Sheets[e].CodeName || f
        } catch (o) {}
        var l = Da(s["!ref"] || "A1");
        if (l.e.c > 16383 || l.e.r > 1048575) {
            if (r.WTF)
                throw new Error("Range " + (s["!ref"] || "A1") + " exceeds format limit A1:XFD1048576");
            l.e.c = Math.min(l.e.c, 16383);
            l.e.r = Math.min(l.e.c, 1048575)
        }
        s["!links"] = [];
        s["!comments"] = [];
        pa(n, 129);
        if (t.vbaraw || s["!outline"])
            pa(n, 147, Ev(f, s["!outline"]));
        pa(n, 148, kv(l));
        Rp(n, s, t.Workbook);
        Ip(n, s);
        yp(n, s, e, r, t);
        Ep(n, s, e, r, t);
        Np(n, s);
        Op(n, s, t, e);
        Cp(n, s);
        _p(n, s, a);
        if (s["!margins"])
            pa(n, 476, vp(s["!margins"]));
        if (!r || r.ignoreEC || r.ignoreEC == void 0)
            Sp(n, s);
        xp(n, s, e, a);
        pa(n, 130);
        return n.end()
    }
    function Fp(e) {
        var r = [];
        var t = e.match(/^<c:numCache>/);
        var a;
        (e.match(/<c:pt idx="(\d*)">(.*?)<\/c:pt>/gm) || []).forEach(function(e) {
            var a = e.match(/<c:pt idx="(\d*?)"><c:v>(.*)<\/c:v><\/c:pt>/);
            if (!a)
                return;
            r[+a[1]] = t ? +a[2] : a[2]
        });
        var n = Yr((e.match(/<c:formatCode>([\s\S]*?)<\/c:formatCode>/) || ["", "General"])[1]);
        (e.match(/<c:f>(.*?)<\/c:f>/gm) || []).forEach(function(e) {
            a = e.replace(/<.*?>/g, "")
        });
        return [r, n, a]
    }
    function Pp(e, r, t, a, n, i) {
        var s = i || {
            "!type": "chart"
        };
        if (!e)
            return i;
        var f = 0
          , o = 0
          , l = "A";
        var c = {
            s: {
                r: 2e6,
                c: 2e6
            },
            e: {
                r: 0,
                c: 0
            }
        };
        (e.match(/<c:numCache>[\s\S]*?<\/c:numCache>/gm) || []).forEach(function(e) {
            var r = Fp(e);
            c.s.r = c.s.c = 0;
            c.e.c = f;
            l = ya(f);
            r[0].forEach(function(e, t) {
                s[l + Ta(t)] = {
                    t: "n",
                    v: e,
                    z: r[1]
                };
                o = t
            });
            if (c.e.r < o)
                c.e.r = o;
            ++f
        });
        if (f > 0)
            s["!ref"] = Na(c);
        return s
    }
    function Lp(e, r, t, a, n) {
        if (!e)
            return e;
        if (!a)
            a = {
                "!id": {}
            };
        var i = {
            "!type": "chart",
            "!drawel": null,
            "!rel": ""
        };
        var s;
        var f = e.match(jd);
        if (f)
            Jd(f[0], i, n, t);
        if (s = e.match(/drawing r:id="(.*?)"/))
            i["!rel"] = s[1];
        if (a["!id"][i["!rel"]])
            i["!drawel"] = a["!id"][i["!rel"]];
        return i
    }
    function Mp(e, r, t, a) {
        var n = [Mr, kt("chartsheet", null, {
            xmlns: St[0],
            "xmlns:r": yt.r
        })];
        n[n.length] = kt("drawing", null, {
            "r:id": "rId1"
        });
        ri(a, -1, "../drawings/drawing" + (e + 1) + ".xml", qn.DRAW);
        if (n.length > 2) {
            n[n.length] = "</chartsheet>";
            n[1] = n[1].replace("/>", ">")
        }
        return n.join("")
    }
    function Up(e, r) {
        e.l += 10;
        var t = Ha(e, r - 10);
        return {
            name: t
        }
    }
    function Bp(e, r, t, a, n) {
        if (!e)
            return e;
        if (!a)
            a = {
                "!id": {}
            };
        var i = {
            "!type": "chart",
            "!drawel": null,
            "!rel": ""
        };
        var s = [];
        var f = false;
        da(e, function o(e, a, l) {
            switch (l) {
            case 550:
                i["!rel"] = e;
                break;
            case 651:
                if (!n.Sheets[t])
                    n.Sheets[t] = {};
                if (e.name)
                    n.Sheets[t].CodeName = e.name;
                break;
            case 562:
                ;
            case 652:
                ;
            case 669:
                ;
            case 679:
                ;
            case 551:
                ;
            case 552:
                ;
            case 476:
                ;
            case 3072:
                break;
            case 35:
                f = true;
                break;
            case 36:
                f = false;
                break;
            case 37:
                s.push(l);
                break;
            case 38:
                s.pop();
                break;
            default:
                if (a.T > 0)
                    s.push(l);
                else if (a.T < 0)
                    s.pop();
                else if (!f || r.WTF)
                    throw new Error("Unexpected record 0x" + l.toString(16));
            }
        }, r);
        if (a["!id"][i["!rel"]])
            i["!drawel"] = a["!id"][i["!rel"]];
        return i
    }
    function Wp() {
        var e = va();
        pa(e, 129);
        pa(e, 130);
        return e.end()
    }
    var Hp = [["allowRefreshQuery", false, "bool"], ["autoCompressPictures", true, "bool"], ["backupFile", false, "bool"], ["checkCompatibility", false, "bool"], ["CodeName", ""], ["date1904", false, "bool"], ["defaultThemeVersion", 0, "int"], ["filterPrivacy", false, "bool"], ["hidePivotFieldList", false, "bool"], ["promptedSolutions", false, "bool"], ["publishItems", false, "bool"], ["refreshAllConnections", false, "bool"], ["saveExternalLinkValues", true, "bool"], ["showBorderUnselectedTables", true, "bool"], ["showInkAnnotation", true, "bool"], ["showObjects", "all"], ["showPivotChartFilter", false, "bool"], ["updateLinks", "userSet"]];
    var zp = [["activeTab", 0, "int"], ["autoFilterDateGrouping", true, "bool"], ["firstSheet", 0, "int"], ["minimized", false, "bool"], ["showHorizontalScroll", true, "bool"], ["showSheetTabs", true, "bool"], ["showVerticalScroll", true, "bool"], ["tabRatio", 600, "int"], ["visibility", "visible"]];
    var Vp = [];
    var Gp = [["calcCompleted", "true"], ["calcMode", "auto"], ["calcOnSave", "true"], ["concurrentCalc", "true"], ["fullCalcOnLoad", "false"], ["fullPrecision", "true"], ["iterate", "false"], ["iterateCount", "100"], ["iterateDelta", "0.001"], ["refMode", "A1"]];
    function jp(e, r) {
        for (var t = 0; t != e.length; ++t) {
            var a = e[t];
            for (var n = 0; n != r.length; ++n) {
                var i = r[n];
                if (a[i[0]] == null)
                    a[i[0]] = i[1];
                else
                    switch (i[2]) {
                    case "bool":
                        if (typeof a[i[0]] == "string")
                            a[i[0]] = nt(a[i[0]]);
                        break;
                    case "int":
                        if (typeof a[i[0]] == "string")
                            a[i[0]] = parseInt(a[i[0]], 10);
                        break;
                    }
            }
        }
    }
    function Xp(e, r) {
        for (var t = 0; t != r.length; ++t) {
            var a = r[t];
            if (e[a[0]] == null)
                e[a[0]] = a[1];
            else
                switch (a[2]) {
                case "bool":
                    if (typeof e[a[0]] == "string")
                        e[a[0]] = nt(e[a[0]]);
                    break;
                case "int":
                    if (typeof e[a[0]] == "string")
                        e[a[0]] = parseInt(e[a[0]], 10);
                    break;
                }
        }
    }
    function $p(e) {
        Xp(e.WBProps, Hp);
        Xp(e.CalcPr, Gp);
        jp(e.WBView, zp);
        jp(e.Sheets, Vp);
        Od.date1904 = nt(e.WBProps.date1904)
    }
    function Yp(e) {
        if (!e.Workbook)
            return "false";
        if (!e.Workbook.WBProps)
            return "false";
        return nt(e.Workbook.WBProps.date1904) ? "true" : "false"
    }
    var Kp = "][*?/\\".split("");
    function Jp(e, r) {
        if (e.length > 31) {
            if (r)
                return false;
            throw new Error("Sheet names cannot exceed 31 chars")
        }
        var t = true;
        Kp.forEach(function(a) {
            if (e.indexOf(a) == -1)
                return;
            if (!r)
                throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
            t = false
        });
        return t
    }
    function qp(e, r, t) {
        e.forEach(function(a, n) {
            Jp(a);
            for (var i = 0; i < n; ++i)
                if (a == e[i])
                    throw new Error("Duplicate Sheet Name: " + a);
            if (t) {
                var s = r && r[n] && r[n].CodeName || a;
                if (s.charCodeAt(0) == 95 && s.length > 22)
                    throw new Error("Bad Code Name: Worksheet" + s)
            }
        })
    }
    function Zp(e) {
        if (!e || !e.SheetNames || !e.Sheets)
            throw new Error("Invalid Workbook");
        if (!e.SheetNames.length)
            throw new Error("Workbook is empty");
        var r = e.Workbook && e.Workbook.Sheets || [];
        qp(e.SheetNames, r, !!e.vbaraw);
        for (var t = 0; t < e.SheetNames.length; ++t)
            Ld(e.Sheets[e.SheetNames[t]], e.SheetNames[t], t)
    }
    var Qp = /<\w+:workbook/;
    function eg(e, r) {
        if (!e)
            throw new Error("Could not find file");
        var t = {
            AppVersion: {},
            WBProps: {},
            WBView: [],
            Sheets: [],
            CalcPr: {},
            Names: [],
            xmlns: ""
        };
        var a = false
          , n = "xmlns";
        var i = {}
          , s = 0;
        e.replace(Hr, function f(o, l) {
            var c = Gr(o);
            switch (jr(c[0])) {
            case "<?xml":
                break;
            case "<workbook":
                if (o.match(Qp))
                    n = "xmlns" + o.match(/<(\w+):/)[1];
                t.xmlns = c[n];
                break;
            case "</workbook>":
                break;
            case "<fileVersion":
                delete c[0];
                t.AppVersion = c;
                break;
            case "<fileVersion/>":
                ;
            case "</fileVersion>":
                break;
            case "<fileSharing":
                break;
            case "<fileSharing/>":
                break;
            case "<workbookPr":
                ;
            case "<workbookPr/>":
                Hp.forEach(function(e) {
                    if (c[e[0]] == null)
                        return;
                    switch (e[2]) {
                    case "bool":
                        t.WBProps[e[0]] = nt(c[e[0]]);
                        break;
                    case "int":
                        t.WBProps[e[0]] = parseInt(c[e[0]], 10);
                        break;
                    default:
                        t.WBProps[e[0]] = c[e[0]];
                    }
                });
                if (c.codeName)
                    t.WBProps.CodeName = lt(c.codeName);
                break;
            case "</workbookPr>":
                break;
            case "<workbookProtection":
                break;
            case "<workbookProtection/>":
                break;
            case "<bookViews":
                ;
            case "<bookViews>":
                ;
            case "</bookViews>":
                break;
            case "<workbookView":
                ;
            case "<workbookView/>":
                delete c[0];
                t.WBView.push(c);
                break;
            case "</workbookView>":
                break;
            case "<sheets":
                ;
            case "<sheets>":
                ;
            case "</sheets>":
                break;
            case "<sheet":
                switch (c.state) {
                case "hidden":
                    c.Hidden = 1;
                    break;
                case "veryHidden":
                    c.Hidden = 2;
                    break;
                default:
                    c.Hidden = 0;
                }
                delete c.state;
                c.name = Yr(lt(c.name));
                delete c[0];
                t.Sheets.push(c);
                break;
            case "</sheet>":
                break;
            case "<functionGroups":
                ;
            case "<functionGroups/>":
                break;
            case "<functionGroup":
                break;
            case "<externalReferences":
                ;
            case "</externalReferences>":
                ;
            case "<externalReferences>":
                break;
            case "<externalReference":
                break;
            case "<definedNames/>":
                break;
            case "<definedNames>":
                ;
            case "<definedNames":
                a = true;
                break;
            case "</definedNames>":
                a = false;
                break;
            case "<definedName":
                {
                    i = {};
                    i.Name = lt(c.name);
                    if (c.comment)
                        i.Comment = c.comment;
                    if (c.localSheetId)
                        i.Sheet = +c.localSheetId;
                    if (nt(c.hidden || "0"))
                        i.Hidden = true;
                    s = l + o.length
                }
                break;
            case "</definedName>":
                {
                    i.Ref = Yr(lt(e.slice(s, l)));
                    t.Names.push(i)
                }
                break;
            case "<definedName/>":
                break;
            case "<calcPr":
                delete c[0];
                t.CalcPr = c;
                break;
            case "<calcPr/>":
                delete c[0];
                t.CalcPr = c;
                break;
            case "</calcPr>":
                break;
            case "<oleSize":
                break;
            case "<customWorkbookViews>":
                ;
            case "</customWorkbookViews>":
                ;
            case "<customWorkbookViews":
                break;
            case "<customWorkbookView":
                ;
            case "</customWorkbookView>":
                break;
            case "<pivotCaches>":
                ;
            case "</pivotCaches>":
                ;
            case "<pivotCaches":
                break;
            case "<pivotCache":
                break;
            case "<smartTagPr":
                ;
            case "<smartTagPr/>":
                break;
            case "<smartTagTypes":
                ;
            case "<smartTagTypes>":
                ;
            case "</smartTagTypes>":
                break;
            case "<smartTagType":
                break;
            case "<webPublishing":
                ;
            case "<webPublishing/>":
                break;
            case "<fileRecoveryPr":
                ;
            case "<fileRecoveryPr/>":
                break;
            case "<webPublishObjects>":
                ;
            case "<webPublishObjects":
                ;
            case "</webPublishObjects>":
                break;
            case "<webPublishObject":
                break;
            case "<extLst":
                ;
            case "<extLst>":
                ;
            case "</extLst>":
                ;
            case "<extLst/>":
                break;
            case "<ext":
                a = true;
                break;
            case "</ext>":
                a = false;
                break;
            case "<ArchID":
                break;
            case "<AlternateContent":
                ;
            case "<AlternateContent>":
                a = true;
                break;
            case "</AlternateContent>":
                a = false;
                break;
            case "<revisionPtr":
                break;
            default:
                if (!a && r.WTF)
                    throw new Error("unrecognized " + c[0] + " in workbook");
            }
            return o
        });
        if (St.indexOf(t.xmlns) === -1)
            throw new Error("Unknown Namespace: " + t.xmlns);
        $p(t);
        return t
    }
    function rg(e) {
        var r = [Mr];
        r[r.length] = kt("workbook", null, {
            xmlns: St[0],
            "xmlns:r": yt.r
        });
        var t = e.Workbook && (e.Workbook.Names || []).length > 0;
        var a = {
            codeName: "ThisWorkbook"
        };
        if (e.Workbook && e.Workbook.WBProps) {
            Hp.forEach(function(r) {
                if (e.Workbook.WBProps[r[0]] == null)
                    return;
                if (e.Workbook.WBProps[r[0]] == r[1])
                    return;
                a[r[0]] = e.Workbook.WBProps[r[0]]
            });
            if (e.Workbook.WBProps.CodeName) {
                a.codeName = e.Workbook.WBProps.CodeName;
                delete a.CodeName
            }
        }
        r[r.length] = kt("workbookPr", null, a);
        var n = e.Workbook && e.Workbook.Sheets || [];
        var i = 0;
        if (n && n[0] && !!n[0].Hidden) {
            r[r.length] = "<bookViews>";
            for (i = 0; i != e.SheetNames.length; ++i) {
                if (!n[i])
                    break;
                if (!n[i].Hidden)
                    break
            }
            if (i == e.SheetNames.length)
                i = 0;
            r[r.length] = '<workbookView firstSheet="' + i + '" activeTab="' + i + '"/>';
            r[r.length] = "</bookViews>"
        }
        r[r.length] = "<sheets>";
        for (i = 0; i != e.SheetNames.length; ++i) {
            var s = {
                name: qr(e.SheetNames[i].slice(0, 31))
            };
            s.sheetId = "" + (i + 1);
            s["r:id"] = "rId" + (i + 1);
            if (n[i])
                switch (n[i].Hidden) {
                case 1:
                    s.state = "hidden";
                    break;
                case 2:
                    s.state = "veryHidden";
                    break;
                }
            r[r.length] = kt("sheet", null, s)
        }
        r[r.length] = "</sheets>";
        if (t) {
            r[r.length] = "<definedNames>";
            if (e.Workbook && e.Workbook.Names)
                e.Workbook.Names.forEach(function(e) {
                    var t = {
                        name: e.Name
                    };
                    if (e.Comment)
                        t.comment = e.Comment;
                    if (e.Sheet != null)
                        t.localSheetId = "" + e.Sheet;
                    if (e.Hidden)
                        t.hidden = "1";
                    if (!e.Ref)
                        return;
                    r[r.length] = kt("definedName", qr(e.Ref), t)
                });
            r[r.length] = "</definedNames>"
        }
        if (r.length > 2) {
            r[r.length] = "</workbook>";
            r[1] = r[1].replace("/>", ">")
        }
        return r.join("")
    }
    function tg(e, r) {
        var t = {};
        t.Hidden = e._R(4);
        t.iTabID = e._R(4);
        t.strRelID = nn(e, r - 8);
        t.name = Ha(e);
        return t
    }
    function ag(e, r) {
        if (!r)
            r = ua(127);
        r._W(4, e.Hidden);
        r._W(4, e.iTabID);
        sn(e.strRelID, r);
        za(e.name.slice(0, 31), r);
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    function ng(e, r) {
        var t = {};
        var a = e._R(4);
        t.defaultThemeVersion = e._R(4);
        var n = r > 8 ? Ha(e) : "";
        if (n.length > 0)
            t.CodeName = n;
        t.autoCompressPictures = !!(a & 65536);
        t.backupFile = !!(a & 64);
        t.checkCompatibility = !!(a & 4096);
        t.date1904 = !!(a & 1);
        t.filterPrivacy = !!(a & 8);
        t.hidePivotFieldList = !!(a & 1024);
        t.promptedSolutions = !!(a & 16);
        t.publishItems = !!(a & 2048);
        t.refreshAllConnections = !!(a & 262144);
        t.saveExternalLinkValues = !!(a & 128);
        t.showBorderUnselectedTables = !!(a & 4);
        t.showInkAnnotation = !!(a & 32);
        t.showObjects = ["all", "placeholders", "none"][a >> 13 & 3];
        t.showPivotChartFilter = !!(a & 32768);
        t.updateLinks = ["userSet", "never", "always"][a >> 8 & 3];
        return t
    }
    function ig(e, r) {
        if (!r)
            r = ua(72);
        var t = 0;
        if (e) {
            if (e.filterPrivacy)
                t |= 8
        }
        r._W(4, t);
        r._W(4, 0);
        en(e && e.CodeName || "ThisWorkbook", r);
        return r.slice(0, r.l)
    }
    function sg(e, r) {
        var t = {};
        e._R(4);
        t.ArchID = e._R(4);
        e.l += r - 8;
        return t
    }
    function fg(e, r, t) {
        var a = e.l + r;
        e.l += 4;
        e.l += 1;
        var n = e._R(4);
        var i = an(e);
        var s = wd(e, 0, t);
        var f = rn(e);
        e.l = a;
        var o = {
            Name: i,
            Ptg: s
        };
        if (n < 268435455)
            o.Sheet = n;
        if (f)
            o.Comment = f;
        return o
    }
    function og(e, r) {
        var t = {
            AppVersion: {},
            WBProps: {},
            WBView: [],
            Sheets: [],
            CalcPr: {},
            xmlns: ""
        };
        var a = [];
        var n = false;
        if (!r)
            r = {};
        r.biff = 12;
        var i = [];
        var s = [[]];
        s.SheetNames = [];
        s.XTI = [];
        gm[16] = {
            n: "BrtFRTArchID$",
            f: sg
        };
        da(e, function f(e, o, l) {
            switch (l) {
            case 156:
                s.SheetNames.push(e.name);
                t.Sheets.push(e);
                break;
            case 153:
                t.WBProps = e;
                break;
            case 39:
                if (e.Sheet != null)
                    r.SID = e.Sheet;
                e.Ref = fd(e.Ptg, null, null, s, r);
                delete r.SID;
                delete e.Ptg;
                i.push(e);
                break;
            case 1036:
                break;
            case 357:
                ;
            case 358:
                ;
            case 355:
                ;
            case 667:
                if (!s[0].length)
                    s[0] = [l, e];
                else
                    s.push([l, e]);
                s[s.length - 1].XTI = [];
                break;
            case 362:
                if (s.length === 0) {
                    s[0] = [];
                    s[0].XTI = []
                }
                s[s.length - 1].XTI = s[s.length - 1].XTI.concat(e);
                s.XTI = s.XTI.concat(e);
                break;
            case 361:
                break;
            case 2071:
                ;
            case 158:
                ;
            case 143:
                ;
            case 664:
                ;
            case 353:
                break;
            case 3072:
                ;
            case 3073:
                ;
            case 534:
                ;
            case 677:
                ;
            case 157:
                ;
            case 610:
                ;
            case 2050:
                ;
            case 155:
                ;
            case 548:
                ;
            case 676:
                ;
            case 128:
                ;
            case 665:
                ;
            case 2128:
                ;
            case 2125:
                ;
            case 549:
                ;
            case 2053:
                ;
            case 596:
                ;
            case 2076:
                ;
            case 2075:
                ;
            case 2082:
                ;
            case 397:
                ;
            case 154:
                ;
            case 1117:
                ;
            case 553:
                ;
            case 2091:
                break;
            case 35:
                a.push(l);
                n = true;
                break;
            case 36:
                a.pop();
                n = false;
                break;
            case 37:
                a.push(l);
                n = true;
                break;
            case 38:
                a.pop();
                n = false;
                break;
            case 16:
                break;
            default:
                if (o.T) {} else if (!n || r.WTF && a[a.length - 1] != 37 && a[a.length - 1] != 35)
                    throw new Error("Unexpected record 0x" + l.toString(16));
            }
        }, r);
        $p(t);
        t.Names = i;
        t.supbooks = s;
        return t
    }
    function lg(e, r) {
        pa(e, 143);
        for (var t = 0; t != r.SheetNames.length; ++t) {
            var a = r.Workbook && r.Workbook.Sheets && r.Workbook.Sheets[t] && r.Workbook.Sheets[t].Hidden || 0;
            var n = {
                Hidden: a,
                iTabID: t + 1,
                strRelID: "rId" + (t + 1),
                name: r.SheetNames[t]
            };
            pa(e, 156, ag(n))
        }
        pa(e, 144)
    }
    function cg(r, t) {
        if (!t)
            t = ua(127);
        for (var a = 0; a != 4; ++a)
            t._W(4, 0);
        za("SheetJS", t);
        za(e.version, t);
        za(e.version, t);
        za("7262", t);
        return t.length > t.l ? t.slice(0, t.l) : t
    }
    function hg(e, r) {
        if (!r)
            r = ua(29);
        r._W(-4, 0);
        r._W(-4, 460);
        r._W(4, 28800);
        r._W(4, 17600);
        r._W(4, 500);
        r._W(4, e);
        r._W(4, e);
        var t = 120;
        r._W(1, t);
        return r.length > r.l ? r.slice(0, r.l) : r
    }
    function ug(e, r) {
        if (!r.Workbook || !r.Workbook.Sheets)
            return;
        var t = r.Workbook.Sheets;
        var a = 0
          , n = -1
          , i = -1;
        for (; a < t.length; ++a) {
            if (!t[a] || !t[a].Hidden && n == -1)
                n = a;
            else if (t[a].Hidden == 1 && i == -1)
                i = a
        }
        if (i > n)
            return;
        pa(e, 135);
        pa(e, 158, hg(n));
        pa(e, 136)
    }
    function dg(e, r) {
        var t = va();
        pa(t, 131);
        pa(t, 128, cg());
        pa(t, 153, ig(e.Workbook && e.Workbook.WBProps || null));
        ug(t, e, r);
        lg(t, e, r);
        pa(t, 132);
        return t.end()
    }
    function vg(e, r, t) {
        if (r.slice(-4) === ".bin")
            return og(e, t);
        return eg(e, t)
    }
    function pg(e, r, t, a, n, i, s, f) {
        if (r.slice(-4) === ".bin")
            return Tp(e, a, t, n, i, s, f);
        return Yd(e, a, t, n, i, s, f)
    }
    function gg(e, r, t, a, n, i, s, f) {
        if (r.slice(-4) === ".bin")
            return Bp(e, a, t, n, i, s, f);
        return Lp(e, a, t, n, i, s, f)
    }
    function mg(e, r, t, a, n, i, s, f) {
        if (r.slice(-4) === ".bin")
            return Ch(e, a, t, n, i, s, f);
        return yh(e, a, t, n, i, s, f)
    }
    function bg(e, r, t, a, n, i, s, f) {
        if (r.slice(-4) === ".bin")
            return Ah(e, a, t, n, i, s, f);
        return Eh(e, a, t, n, i, s, f)
    }
    function wg(e, r, t, a) {
        if (r.slice(-4) === ".bin")
            return lc(e, t, a);
        return Xl(e, t, a)
    }
    function kg(e, r, t) {
        return Rc(e, t)
    }
    function Tg(e, r, t) {
        if (r.slice(-4) === ".bin")
            return Vo(e, t);
        return Bo(e, t)
    }
    function Ag(e, r, t) {
        if (r.slice(-4) === ".bin")
            return gh(e, t);
        return sh(e, t)
    }
    function Eg(e, r, t) {
        if (r.slice(-4) === ".bin")
            return Qc(e, r, t);
        return qc(e, r, t)
    }
    function Cg(e, r, t, a) {
        if (t.slice(-4) === ".bin")
            return rh(e, r, t, a);
        return eh(e, r, t, a)
    }
    function yg(e, r, t) {
        if (r.slice(-4) === ".bin")
            return $c(e, r, t);
        return Kc(e, r, t)
    }
    function Sg(e, r, t) {
        return (r.slice(-4) === ".bin" ? dg : rg)(e, t)
    }
    function _g(e, r, t, a, n) {
        return (r.slice(-4) === ".bin" ? Dp : pv)(e, t, a, n)
    }
    function xg(e, r, t, a, n) {
        return (r.slice(-4) === ".bin" ? Wp : Mp)(e, t, a, n)
    }
    function Og(e, r, t) {
        return (r.slice(-4) === ".bin" ? kc : $l)(e, t)
    }
    function Rg(e, r, t) {
        return (r.slice(-4) === ".bin" ? Xo : Ho)(e, t)
    }
    function Ig(e, r, t) {
        return (r.slice(-4) === ".bin" ? mh : fh)(e, t)
    }
    function Ng(e) {
        return (e.slice(-4) === ".bin" ? Yc : Jc)()
    }
    var Dg = /([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;
    var Fg = /([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;
    function Pg(e, r) {
        var t = e.split(/\s+/);
        var a = [];
        if (!r)
            a[0] = t[0];
        if (t.length === 1)
            return a;
        var n = e.match(Dg), i, s, f, o;
        if (n)
            for (o = 0; o != n.length; ++o) {
                i = n[o].match(Fg);
                if ((s = i[1].indexOf(":")) === -1)
                    a[i[1]] = i[2].slice(1, i[2].length - 1);
                else {
                    if (i[1].slice(0, 6) === "xmlns:")
                        f = "xmlns" + i[1].slice(6);
                    else
                        f = i[1].slice(s + 1);
                    a[f] = i[2].slice(1, i[2].length - 1)
                }
            }
        return a
    }
    function Lg(e) {
        var r = e.split(/\s+/);
        var t = {};
        if (r.length === 1)
            return t;
        var a = e.match(Dg), n, i, s, f;
        if (a)
            for (f = 0; f != a.length; ++f) {
                n = a[f].match(Fg);
                if ((i = n[1].indexOf(":")) === -1)
                    t[n[1]] = n[2].slice(1, n[2].length - 1);
                else {
                    if (n[1].slice(0, 6) === "xmlns:")
                        s = "xmlns" + n[1].slice(6);
                    else
                        s = n[1].slice(i + 1);
                    t[s] = n[2].slice(1, n[2].length - 1)
                }
            }
        return t
    }
    var Mg;
    function Ug(e, r) {
        var t = Mg[e] || Yr(e);
        if (t === "General")
            return fe(r);
        return Be(t, r)
    }
    function Bg(e, r, t, a) {
        var n = a;
        switch ((t[0].match(/dt:dt="([\w.]+)"/) || ["", ""])[1]) {
        case "boolean":
            n = nt(a);
            break;
        case "i2":
            ;
        case "int":
            n = parseInt(a, 10);
            break;
        case "r4":
            ;
        case "float":
            n = parseFloat(a);
            break;
        case "date":
            ;
        case "dateTime.tz":
            n = gr(a);
            break;
        case "i8":
            ;
        case "string":
            ;
        case "fixed":
            ;
        case "uuid":
            ;
        case "bin.base64":
            break;
        default:
            throw new Error("bad custprop:" + t[0]);
        }
        e[Yr(r)] = n
    }
    function Wg(e, r, t) {
        if (e.t === "z")
            return;
        if (!t || t.cellText !== false)
            try {
                if (e.t === "e") {
                    e.w = e.w || Gn[e.v]
                } else if (r === "General") {
                    if (e.t === "n") {
                        if ((e.v | 0) === e.v)
                            e.w = e.v.toString(10);
                        else
                            e.w = se(e.v)
                    } else
                        e.w = fe(e.v)
                } else
                    e.w = Ug(r || "General", e.v)
            } catch (a) {
                if (t.WTF)
                    throw a
            }
        try {
            var n = Mg[r] || r || "General";
            if (t.cellNF)
                e.z = n;
            if (t.cellDates && e.t == "n" && Fe(n)) {
                var i = q(e.v);
                if (i) {
                    e.t = "d";
                    e.v = new Date(i.y,i.m - 1,i.d,i.H,i.M,i.S,i.u)
                }
            }
        } catch (a) {
            if (t.WTF)
                throw a
        }
    }
    function Hg(e, r, t) {
        if (t.cellStyles) {
            if (r.Interior) {
                var a = r.Interior;
                if (a.Pattern)
                    a.patternType = Ll[a.Pattern] || a.Pattern
            }
        }
        e[r.ID] = r
    }
    function zg(e, r, t, a, n, i, s, f, o, l) {
        var c = "General"
          , h = a.StyleID
          , u = {};
        l = l || {};
        var d = [];
        var v = 0;
        if (h === undefined && f)
            h = f.StyleID;
        if (h === undefined && s)
            h = s.StyleID;
        while (i[h] !== undefined) {
            if (i[h].nf)
                c = i[h].nf;
            if (i[h].Interior)
                d.push(i[h].Interior);
            if (!i[h].Parent)
                break;
            h = i[h].Parent
        }
        switch (t.Type) {
        case "Boolean":
            a.t = "b";
            a.v = nt(e);
            break;
        case "String":
            a.t = "s";
            a.r = tt(Yr(e));
            a.v = e.indexOf("<") > -1 ? Yr(r || e).replace(/<.*?>/g, "") : a.r;
            break;
        case "DateTime":
            if (e.slice(-1) != "Z")
                e += "Z";
            a.v = (gr(e) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1e3);
            if (a.v !== a.v)
                a.v = Yr(e);
            else if (a.v < 60)
                a.v = a.v - 1;
            if (!c || c == "General")
                c = "yyyy-mm-dd";
        case "Number":
            if (a.v === undefined)
                a.v = +e;
            if (!a.t)
                a.t = "n";
            break;
        case "Error":
            a.t = "e";
            a.v = jn[e];
            if (l.cellText !== false)
                a.w = e;
            break;
        default:
            if (e == "" && r == "") {
                a.t = "z"
            } else {
                a.t = "s";
                a.v = tt(r || e)
            }
            break;
        }
        Wg(a, c, l);
        if (l.cellFormula !== false) {
            if (a.Formula) {
                var p = Yr(a.Formula);
                if (p.charCodeAt(0) == 61)
                    p = p.slice(1);
                a.f = Sh(p, n);
                delete a.Formula;
                if (a.ArrayRange == "RC")
                    a.F = Sh("RC:RC", n);
                else if (a.ArrayRange) {
                    a.F = Sh(a.ArrayRange, n);
                    o.push([Da(a.F), a.F])
                }
            } else {
                for (v = 0; v < o.length; ++v)
                    if (n.r >= o[v][0].s.r && n.r <= o[v][0].e.r)
                        if (n.c >= o[v][0].s.c && n.c <= o[v][0].e.c)
                            a.F = o[v][1]
            }
        }
        if (l.cellStyles) {
            d.forEach(function(e) {
                if (!u.patternType && e.patternType)
                    u.patternType = e.patternType
            });
            a.s = u
        }
        if (a.StyleID !== undefined)
            a.ixfe = a.StyleID
    }
    function Vg(e) {
        e.t = e.v || "";
        e.t = e.t.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
        e.v = e.w = e.ixfe = undefined
    }
    function Gg(e, r) {
        var t = r || {};
        ze();
        var n = d(Et(e));
        if (t.type == "binary" || t.type == "array" || t.type == "base64") {
            if (typeof a !== "undefined")
                n = a.utils.decode(65001, c(n));
            else
                n = lt(n)
        }
        var i = n.slice(0, 1024).toLowerCase()
          , s = false;
        i = i.replace(/".*?"/g, "");
        if ((i.indexOf(">") & 1023) > Math.min(i.indexOf(",") & 1023, i.indexOf(";") & 1023)) {
            var f = br(t);
            f.type = "string";
            return So.to_workbook(n, f)
        }
        if (i.indexOf("<?xml") == -1)
            ["html", "table", "head", "meta", "script", "style", "div"].forEach(function(e) {
                if (i.indexOf("<" + e) >= 0)
                    s = true
            });
        if (s)
            return Hm(n, t);
        Mg = {
            "General Number": "General",
            "General Date": X[22],
            "Long Date": "dddd, mmmm dd, yyyy",
            "Medium Date": X[15],
            "Short Date": X[14],
            "Long Time": X[19],
            "Medium Time": X[18],
            "Short Time": X[20],
            Currency: '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',
            Fixed: X[2],
            Standard: X[4],
            Percent: X[10],
            Scientific: X[11],
            "Yes/No": '"Yes";"Yes";"No";@',
            "True/False": '"True";"True";"False";@',
            "On/Off": '"Yes";"Yes";"No";@'
        };
        var o;
        var l = [], h;
        if (g != null && t.dense == null)
            t.dense = g;
        var u = {}
          , v = []
          , p = t.dense ? [] : {}
          , m = "";
        var b = {}
          , w = {};
        var k = Pg('<Data ss:Type="String">')
          , T = 0;
        var A = 0
          , E = 0;
        var C = {
            s: {
                r: 2e6,
                c: 2e6
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var y = {}
          , S = {};
        var _ = ""
          , x = 0;
        var O = [];
        var R = {}
          , I = {}
          , N = 0
          , D = [];
        var F = []
          , P = {};
        var L = [], M, U = false;
        var B = [];
        var W = []
          , H = {}
          , z = 0
          , V = 0;
        var G = {
            Sheets: [],
            WBProps: {
                date1904: false
            }
        }
          , j = {};
        Ct.lastIndex = 0;
        n = n.replace(/<!--([\s\S]*?)-->/gm, "");
        var $ = "";
        while (o = Ct.exec(n))
            switch (o[3] = ($ = o[3]).toLowerCase()) {
            case "data":
                if ($ == "data") {
                    if (o[1] === "/") {
                        if ((h = l.pop())[0] !== o[3])
                            throw new Error("Bad state: " + h.join("|"))
                    } else if (o[0].charAt(o[0].length - 2) !== "/")
                        l.push([o[3], true]);
                    break
                }
                if (l[l.length - 1][1])
                    break;
                if (o[1] === "/")
                    zg(n.slice(T, o.index), _, k, l[l.length - 1][0] == "comment" ? P : b, {
                        c: A,
                        r: E
                    }, y, L[A], w, B, t);
                else {
                    _ = "";
                    k = Pg(o[0]);
                    T = o.index + o[0].length
                }
                break;
            case "cell":
                if (o[1] === "/") {
                    if (F.length > 0)
                        b.c = F;
                    if ((!t.sheetRows || t.sheetRows > E) && b.v !== undefined) {
                        if (t.dense) {
                            if (!p[E])
                                p[E] = [];
                            p[E][A] = b
                        } else
                            p[ya(A) + Ta(E)] = b
                    }
                    if (b.HRef) {
                        b.l = {
                            Target: Yr(b.HRef)
                        };
                        if (b.HRefScreenTip)
                            b.l.Tooltip = b.HRefScreenTip;
                        delete b.HRef;
                        delete b.HRefScreenTip
                    }
                    if (b.MergeAcross || b.MergeDown) {
                        z = A + (parseInt(b.MergeAcross, 10) | 0);
                        V = E + (parseInt(b.MergeDown, 10) | 0);
                        O.push({
                            s: {
                                c: A,
                                r: E
                            },
                            e: {
                                c: z,
                                r: V
                            }
                        })
                    }
                    if (!t.sheetStubs) {
                        if (b.MergeAcross)
                            A = z + 1;
                        else
                            ++A
                    } else if (b.MergeAcross || b.MergeDown) {
                        for (var Y = A; Y <= z; ++Y) {
                            for (var K = E; K <= V; ++K) {
                                if (Y > A || K > E) {
                                    if (t.dense) {
                                        if (!p[K])
                                            p[K] = [];
                                        p[K][Y] = {
                                            t: "z"
                                        }
                                    } else
                                        p[ya(Y) + Ta(K)] = {
                                            t: "z"
                                        }
                                }
                            }
                        }
                        A = z + 1
                    } else
                        ++A
                } else {
                    b = Lg(o[0]);
                    if (b.Index)
                        A = +b.Index - 1;
                    if (A < C.s.c)
                        C.s.c = A;
                    if (A > C.e.c)
                        C.e.c = A;
                    if (o[0].slice(-2) === "/>")
                        ++A;
                    F = []
                }
                break;
            case "row":
                if (o[1] === "/" || o[0].slice(-2) === "/>") {
                    if (E < C.s.r)
                        C.s.r = E;
                    if (E > C.e.r)
                        C.e.r = E;
                    if (o[0].slice(-2) === "/>") {
                        w = Pg(o[0]);
                        if (w.Index)
                            E = +w.Index - 1
                    }
                    A = 0;
                    ++E
                } else {
                    w = Pg(o[0]);
                    if (w.Index)
                        E = +w.Index - 1;
                    H = {};
                    if (w.AutoFitHeight == "0" || w.Height) {
                        H.hpx = parseInt(w.Height, 10);
                        H.hpt = Fl(H.hpx);
                        W[E] = H
                    }
                    if (w.Hidden == "1") {
                        H.hidden = true;
                        W[E] = H
                    }
                }
                break;
            case "worksheet":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"));
                    v.push(m);
                    if (C.s.r <= C.e.r && C.s.c <= C.e.c) {
                        p["!ref"] = Na(C);
                        if (t.sheetRows && t.sheetRows <= C.e.r) {
                            p["!fullref"] = p["!ref"];
                            C.e.r = t.sheetRows - 1;
                            p["!ref"] = Na(C)
                        }
                    }
                    if (O.length)
                        p["!merges"] = O;
                    if (L.length > 0)
                        p["!cols"] = L;
                    if (W.length > 0)
                        p["!rows"] = W;
                    u[m] = p
                } else {
                    C = {
                        s: {
                            r: 2e6,
                            c: 2e6
                        },
                        e: {
                            r: 0,
                            c: 0
                        }
                    };
                    E = A = 0;
                    l.push([o[3], false]);
                    h = Pg(o[0]);
                    m = Yr(h.Name);
                    p = t.dense ? [] : {};
                    O = [];
                    B = [];
                    W = [];
                    j = {
                        name: m,
                        Hidden: 0
                    };
                    G.Sheets.push(j)
                }
                break;
            case "table":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"))
                } else if (o[0].slice(-2) == "/>")
                    break;
                else {
                    l.push([o[3], false]);
                    L = [];
                    U = false
                }
                break;
            case "style":
                if (o[1] === "/")
                    Hg(y, S, t);
                else
                    S = Pg(o[0]);
                break;
            case "numberformat":
                S.nf = Yr(Pg(o[0]).Format || "General");
                if (Mg[S.nf])
                    S.nf = Mg[S.nf];
                for (var J = 0; J != 392; ++J)
                    if (X[J] == S.nf)
                        break;
                if (J == 392)
                    for (J = 57; J != 392; ++J)
                        if (X[J] == null) {
                            We(S.nf, J);
                            break
                        }
                break;
            case "column":
                if (l[l.length - 1][0] !== "table")
                    break;
                M = Pg(o[0]);
                if (M.Hidden) {
                    M.hidden = true;
                    delete M.Hidden
                }
                if (M.Width)
                    M.wpx = parseInt(M.Width, 10);
                if (!U && M.wpx > 10) {
                    U = true;
                    yl = Al;
                    for (var q = 0; q < L.length; ++q)
                        if (L[q])
                            Il(L[q])
                }
                if (U)
                    Il(M);
                L[M.Index - 1 || L.length] = M;
                for (var Z = 0; Z < +M.Span; ++Z)
                    L[L.length] = br(M);
                break;
            case "namedrange":
                if (o[1] === "/")
                    break;
                if (!G.Names)
                    G.Names = [];
                var Q = Gr(o[0]);
                var ee = {
                    Name: Q.Name,
                    Ref: Sh(Q.RefersTo.slice(1), {
                        r: 0,
                        c: 0
                    })
                };
                if (G.Sheets.length > 0)
                    ee.Sheet = G.Sheets.length - 1;
                G.Names.push(ee);
                break;
            case "namedcell":
                break;
            case "b":
                break;
            case "i":
                break;
            case "u":
                break;
            case "s":
                break;
            case "em":
                break;
            case "h2":
                break;
            case "h3":
                break;
            case "sub":
                break;
            case "sup":
                break;
            case "span":
                break;
            case "alignment":
                break;
            case "borders":
                break;
            case "border":
                break;
            case "font":
                if (o[0].slice(-2) === "/>")
                    break;
                else if (o[1] === "/")
                    _ += n.slice(x, o.index);
                else
                    x = o.index + o[0].length;
                break;
            case "interior":
                if (!t.cellStyles)
                    break;
                S.Interior = Pg(o[0]);
                break;
            case "protection":
                break;
            case "author":
                ;
            case "title":
                ;
            case "description":
                ;
            case "created":
                ;
            case "keywords":
                ;
            case "subject":
                ;
            case "category":
                ;
            case "company":
                ;
            case "lastauthor":
                ;
            case "lastsaved":
                ;
            case "lastprinted":
                ;
            case "version":
                ;
            case "revision":
                ;
            case "totaltime":
                ;
            case "hyperlinkbase":
                ;
            case "manager":
                ;
            case "contentstatus":
                ;
            case "identifier":
                ;
            case "language":
                ;
            case "appname":
                if (o[0].slice(-2) === "/>")
                    break;
                else if (o[1] === "/")
                    Ci(R, $, n.slice(N, o.index));
                else
                    N = o.index + o[0].length;
                break;
            case "paragraphs":
                break;
            case "styles":
                ;
            case "workbook":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"))
                } else
                    l.push([o[3], false]);
                break;
            case "comment":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"));
                    Vg(P);
                    F.push(P)
                } else {
                    l.push([o[3], false]);
                    h = Pg(o[0]);
                    P = {
                        a: h.Author
                    }
                }
                break;
            case "autofilter":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"))
                } else if (o[0].charAt(o[0].length - 2) !== "/") {
                    var re = Pg(o[0]);
                    p["!autofilter"] = {
                        ref: Sh(re.Range).replace(/\$/g, "")
                    };
                    l.push([o[3], true])
                }
                break;
            case "name":
                break;
            case "datavalidation":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"))
                } else {
                    if (o[0].charAt(o[0].length - 2) !== "/")
                        l.push([o[3], true])
                }
                break;
            case "pixelsperinch":
                break;
            case "componentoptions":
                ;
            case "documentproperties":
                ;
            case "customdocumentproperties":
                ;
            case "officedocumentsettings":
                ;
            case "pivottable":
                ;
            case "pivotcache":
                ;
            case "names":
                ;
            case "mapinfo":
                ;
            case "pagebreaks":
                ;
            case "querytable":
                ;
            case "sorting":
                ;
            case "schema":
                ;
            case "conditionalformatting":
                ;
            case "smarttagtype":
                ;
            case "smarttags":
                ;
            case "excelworkbook":
                ;
            case "workbookoptions":
                ;
            case "worksheetoptions":
                if (o[1] === "/") {
                    if ((h = l.pop())[0] !== o[3])
                        throw new Error("Bad state: " + h.join("|"))
                } else if (o[0].charAt(o[0].length - 2) !== "/")
                    l.push([o[3], true]);
                break;
            case "null":
                break;
            default:
                if (l.length == 0 && o[3] == "document")
                    return Qm(n, t);
                if (l.length == 0 && o[3] == "uof")
                    return Qm(n, t);
                var te = true;
                switch (l[l.length - 1][0]) {
                case "officedocumentsettings":
                    switch (o[3]) {
                    case "allowpng":
                        break;
                    case "removepersonalinformation":
                        break;
                    case "downloadcomponents":
                        break;
                    case "locationofcomponents":
                        break;
                    case "colors":
                        break;
                    case "color":
                        break;
                    case "index":
                        break;
                    case "rgb":
                        break;
                    case "targetscreensize":
                        break;
                    case "readonlyrecommended":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "componentoptions":
                    switch (o[3]) {
                    case "toolbar":
                        break;
                    case "hideofficelogo":
                        break;
                    case "spreadsheetautofit":
                        break;
                    case "label":
                        break;
                    case "caption":
                        break;
                    case "maxheight":
                        break;
                    case "maxwidth":
                        break;
                    case "nextsheetnumber":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "excelworkbook":
                    switch (o[3]) {
                    case "date1904":
                        G.WBProps.date1904 = true;
                        break;
                    case "windowheight":
                        break;
                    case "windowwidth":
                        break;
                    case "windowtopx":
                        break;
                    case "windowtopy":
                        break;
                    case "tabratio":
                        break;
                    case "protectstructure":
                        break;
                    case "protectwindow":
                        break;
                    case "protectwindows":
                        break;
                    case "activesheet":
                        break;
                    case "displayinknotes":
                        break;
                    case "firstvisiblesheet":
                        break;
                    case "supbook":
                        break;
                    case "sheetname":
                        break;
                    case "sheetindex":
                        break;
                    case "sheetindexfirst":
                        break;
                    case "sheetindexlast":
                        break;
                    case "dll":
                        break;
                    case "acceptlabelsinformulas":
                        break;
                    case "donotsavelinkvalues":
                        break;
                    case "iteration":
                        break;
                    case "maxiterations":
                        break;
                    case "maxchange":
                        break;
                    case "path":
                        break;
                    case "xct":
                        break;
                    case "count":
                        break;
                    case "selectedsheets":
                        break;
                    case "calculation":
                        break;
                    case "uncalced":
                        break;
                    case "startupprompt":
                        break;
                    case "crn":
                        break;
                    case "externname":
                        break;
                    case "formula":
                        break;
                    case "colfirst":
                        break;
                    case "collast":
                        break;
                    case "wantadvise":
                        break;
                    case "boolean":
                        break;
                    case "error":
                        break;
                    case "text":
                        break;
                    case "ole":
                        break;
                    case "noautorecover":
                        break;
                    case "publishobjects":
                        break;
                    case "donotcalculatebeforesave":
                        break;
                    case "number":
                        break;
                    case "refmoder1c1":
                        break;
                    case "embedsavesmarttags":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "workbookoptions":
                    switch (o[3]) {
                    case "owcversion":
                        break;
                    case "height":
                        break;
                    case "width":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "worksheetoptions":
                    switch (o[3]) {
                    case "visible":
                        if (o[0].slice(-2) === "/>") {} else if (o[1] === "/")
                            switch (n.slice(N, o.index)) {
                            case "SheetHidden":
                                j.Hidden = 1;
                                break;
                            case "SheetVeryHidden":
                                j.Hidden = 2;
                                break;
                            }
                        else
                            N = o.index + o[0].length;
                        break;
                    case "header":
                        if (!p["!margins"])
                            Dd(p["!margins"] = {}, "xlml");
                        if (!isNaN(+Gr(o[0]).Margin))
                            p["!margins"].header = +Gr(o[0]).Margin;
                        break;
                    case "footer":
                        if (!p["!margins"])
                            Dd(p["!margins"] = {}, "xlml");
                        if (!isNaN(+Gr(o[0]).Margin))
                            p["!margins"].footer = +Gr(o[0]).Margin;
                        break;
                    case "pagemargins":
                        var ae = Gr(o[0]);
                        if (!p["!margins"])
                            Dd(p["!margins"] = {}, "xlml");
                        if (!isNaN(+ae.Top))
                            p["!margins"].top = +ae.Top;
                        if (!isNaN(+ae.Left))
                            p["!margins"].left = +ae.Left;
                        if (!isNaN(+ae.Right))
                            p["!margins"].right = +ae.Right;
                        if (!isNaN(+ae.Bottom))
                            p["!margins"].bottom = +ae.Bottom;
                        break;
                    case "displayrighttoleft":
                        if (!G.Views)
                            G.Views = [];
                        if (!G.Views[0])
                            G.Views[0] = {};
                        G.Views[0].RTL = true;
                        break;
                    case "freezepanes":
                        break;
                    case "frozennosplit":
                        break;
                    case "splithorizontal":
                        ;
                    case "splitvertical":
                        break;
                    case "donotdisplaygridlines":
                        break;
                    case "activerow":
                        break;
                    case "activecol":
                        break;
                    case "toprowbottompane":
                        break;
                    case "leftcolumnrightpane":
                        break;
                    case "unsynced":
                        break;
                    case "print":
                        break;
                    case "printerrors":
                        break;
                    case "panes":
                        break;
                    case "scale":
                        break;
                    case "pane":
                        break;
                    case "number":
                        break;
                    case "layout":
                        break;
                    case "pagesetup":
                        break;
                    case "selected":
                        break;
                    case "protectobjects":
                        break;
                    case "enableselection":
                        break;
                    case "protectscenarios":
                        break;
                    case "validprinterinfo":
                        break;
                    case "horizontalresolution":
                        break;
                    case "verticalresolution":
                        break;
                    case "numberofcopies":
                        break;
                    case "activepane":
                        break;
                    case "toprowvisible":
                        break;
                    case "leftcolumnvisible":
                        break;
                    case "fittopage":
                        break;
                    case "rangeselection":
                        break;
                    case "papersizeindex":
                        break;
                    case "pagelayoutzoom":
                        break;
                    case "pagebreakzoom":
                        break;
                    case "filteron":
                        break;
                    case "fitwidth":
                        break;
                    case "fitheight":
                        break;
                    case "commentslayout":
                        break;
                    case "zoom":
                        break;
                    case "lefttoright":
                        break;
                    case "gridlines":
                        break;
                    case "allowsort":
                        break;
                    case "allowfilter":
                        break;
                    case "allowinsertrows":
                        break;
                    case "allowdeleterows":
                        break;
                    case "allowinsertcols":
                        break;
                    case "allowdeletecols":
                        break;
                    case "allowinserthyperlinks":
                        break;
                    case "allowformatcells":
                        break;
                    case "allowsizecols":
                        break;
                    case "allowsizerows":
                        break;
                    case "nosummaryrowsbelowdetail":
                        if (!p["!outline"])
                            p["!outline"] = {};
                        p["!outline"].above = true;
                        break;
                    case "tabcolorindex":
                        break;
                    case "donotdisplayheadings":
                        break;
                    case "showpagelayoutzoom":
                        break;
                    case "nosummarycolumnsrightdetail":
                        if (!p["!outline"])
                            p["!outline"] = {};
                        p["!outline"].left = true;
                        break;
                    case "blackandwhite":
                        break;
                    case "donotdisplayzeros":
                        break;
                    case "displaypagebreak":
                        break;
                    case "rowcolheadings":
                        break;
                    case "donotdisplayoutline":
                        break;
                    case "noorientation":
                        break;
                    case "allowusepivottables":
                        break;
                    case "zeroheight":
                        break;
                    case "viewablerange":
                        break;
                    case "selection":
                        break;
                    case "protectcontents":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "pivottable":
                    ;
                case "pivotcache":
                    switch (o[3]) {
                    case "immediateitemsondrop":
                        break;
                    case "showpagemultipleitemlabel":
                        break;
                    case "compactrowindent":
                        break;
                    case "location":
                        break;
                    case "pivotfield":
                        break;
                    case "orientation":
                        break;
                    case "layoutform":
                        break;
                    case "layoutsubtotallocation":
                        break;
                    case "layoutcompactrow":
                        break;
                    case "position":
                        break;
                    case "pivotitem":
                        break;
                    case "datatype":
                        break;
                    case "datafield":
                        break;
                    case "sourcename":
                        break;
                    case "parentfield":
                        break;
                    case "ptlineitems":
                        break;
                    case "ptlineitem":
                        break;
                    case "countofsameitems":
                        break;
                    case "item":
                        break;
                    case "itemtype":
                        break;
                    case "ptsource":
                        break;
                    case "cacheindex":
                        break;
                    case "consolidationreference":
                        break;
                    case "filename":
                        break;
                    case "reference":
                        break;
                    case "nocolumngrand":
                        break;
                    case "norowgrand":
                        break;
                    case "blanklineafteritems":
                        break;
                    case "hidden":
                        break;
                    case "subtotal":
                        break;
                    case "basefield":
                        break;
                    case "mapchilditems":
                        break;
                    case "function":
                        break;
                    case "refreshonfileopen":
                        break;
                    case "printsettitles":
                        break;
                    case "mergelabels":
                        break;
                    case "defaultversion":
                        break;
                    case "refreshname":
                        break;
                    case "refreshdate":
                        break;
                    case "refreshdatecopy":
                        break;
                    case "versionlastrefresh":
                        break;
                    case "versionlastupdate":
                        break;
                    case "versionupdateablemin":
                        break;
                    case "versionrefreshablemin":
                        break;
                    case "calculation":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "pagebreaks":
                    switch (o[3]) {
                    case "colbreaks":
                        break;
                    case "colbreak":
                        break;
                    case "rowbreaks":
                        break;
                    case "rowbreak":
                        break;
                    case "colstart":
                        break;
                    case "colend":
                        break;
                    case "rowend":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "autofilter":
                    switch (o[3]) {
                    case "autofiltercolumn":
                        break;
                    case "autofiltercondition":
                        break;
                    case "autofilterand":
                        break;
                    case "autofilteror":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "querytable":
                    switch (o[3]) {
                    case "id":
                        break;
                    case "autoformatfont":
                        break;
                    case "autoformatpattern":
                        break;
                    case "querysource":
                        break;
                    case "querytype":
                        break;
                    case "enableredirections":
                        break;
                    case "refreshedinxl9":
                        break;
                    case "urlstring":
                        break;
                    case "htmltables":
                        break;
                    case "connection":
                        break;
                    case "commandtext":
                        break;
                    case "refreshinfo":
                        break;
                    case "notitles":
                        break;
                    case "nextid":
                        break;
                    case "columninfo":
                        break;
                    case "overwritecells":
                        break;
                    case "donotpromptforfile":
                        break;
                    case "textwizardsettings":
                        break;
                    case "source":
                        break;
                    case "number":
                        break;
                    case "decimal":
                        break;
                    case "thousandseparator":
                        break;
                    case "trailingminusnumbers":
                        break;
                    case "formatsettings":
                        break;
                    case "fieldtype":
                        break;
                    case "delimiters":
                        break;
                    case "tab":
                        break;
                    case "comma":
                        break;
                    case "autoformatname":
                        break;
                    case "versionlastedit":
                        break;
                    case "versionlastrefresh":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "datavalidation":
                    switch (o[3]) {
                    case "range":
                        break;
                    case "type":
                        break;
                    case "min":
                        break;
                    case "max":
                        break;
                    case "sort":
                        break;
                    case "descending":
                        break;
                    case "order":
                        break;
                    case "casesensitive":
                        break;
                    case "value":
                        break;
                    case "errorstyle":
                        break;
                    case "errormessage":
                        break;
                    case "errortitle":
                        break;
                    case "inputmessage":
                        break;
                    case "inputtitle":
                        break;
                    case "combohide":
                        break;
                    case "inputhide":
                        break;
                    case "condition":
                        break;
                    case "qualifier":
                        break;
                    case "useblank":
                        break;
                    case "value1":
                        break;
                    case "value2":
                        break;
                    case "format":
                        break;
                    case "cellrangelist":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "sorting":
                    ;
                case "conditionalformatting":
                    switch (o[3]) {
                    case "range":
                        break;
                    case "type":
                        break;
                    case "min":
                        break;
                    case "max":
                        break;
                    case "sort":
                        break;
                    case "descending":
                        break;
                    case "order":
                        break;
                    case "casesensitive":
                        break;
                    case "value":
                        break;
                    case "errorstyle":
                        break;
                    case "errormessage":
                        break;
                    case "errortitle":
                        break;
                    case "cellrangelist":
                        break;
                    case "inputmessage":
                        break;
                    case "inputtitle":
                        break;
                    case "combohide":
                        break;
                    case "inputhide":
                        break;
                    case "condition":
                        break;
                    case "qualifier":
                        break;
                    case "useblank":
                        break;
                    case "value1":
                        break;
                    case "value2":
                        break;
                    case "format":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "mapinfo":
                    ;
                case "schema":
                    ;
                case "data":
                    switch (o[3]) {
                    case "map":
                        break;
                    case "entry":
                        break;
                    case "range":
                        break;
                    case "xpath":
                        break;
                    case "field":
                        break;
                    case "xsdtype":
                        break;
                    case "filteron":
                        break;
                    case "aggregate":
                        break;
                    case "elementtype":
                        break;
                    case "attributetype":
                        break;
                    case "schema":
                        ;
                    case "element":
                        ;
                    case "complextype":
                        ;
                    case "datatype":
                        ;
                    case "all":
                        ;
                    case "attribute":
                        ;
                    case "extends":
                        break;
                    case "row":
                        break;
                    default:
                        te = false;
                    }
                    break;
                case "smarttags":
                    break;
                default:
                    te = false;
                    break;
                }
                if (te)
                    break;
                if (o[3].match(/!\[CDATA/))
                    break;
                if (!l[l.length - 1][1])
                    throw "Unrecognized tag: " + o[3] + "|" + l.join("|");
                if (l[l.length - 1][0] === "customdocumentproperties") {
                    if (o[0].slice(-2) === "/>")
                        break;
                    else if (o[1] === "/")
                        Bg(I, $, D, n.slice(N, o.index));
                    else {
                        D = o;
                        N = o.index + o[0].length
                    }
                    break
                }
                if (t.WTF)
                    throw "Unrecognized tag: " + o[3] + "|" + l.join("|");
            }
        var ne = {};
        if (!t.bookSheets && !t.bookProps)
            ne.Sheets = u;
        ne.SheetNames = v;
        ne.Workbook = G;
        ne.SSF = br(X);
        ne.Props = R;
        ne.Custprops = I;
        return ne
    }
    function jg(e, r) {
        Wb(r = r || {});
        switch (r.type || "base64") {
        case "base64":
            return Gg(k(e), r);
        case "binary":
            ;
        case "buffer":
            ;
        case "file":
            return Gg(e, r);
        case "array":
            return Gg(_(e), r);
        }
    }
    function Xg(e, r) {
        var t = [];
        if (e.Props)
            t.push(yi(e.Props, r));
        if (e.Custprops)
            t.push(Si(e.Props, e.Custprops, r));
        return t.join("")
    }
    function $g() {
        return ""
    }
    function Yg(e, r) {
        var t = ['<Style ss:ID="Default" ss:Name="Normal"><NumberFormat/></Style>'];
        r.cellXfs.forEach(function(e, r) {
            var a = [];
            a.push(kt("NumberFormat", null, {
                "ss:Format": qr(X[e.numFmtId])
            }));
            var n = {
                "ss:ID": "s" + (21 + r)
            };
            t.push(kt("Style", a.join(""), n))
        });
        return kt("Styles", t.join(""))
    }
    function Kg(e) {
        return kt("NamedRange", null, {
            "ss:Name": e.Name,
            "ss:RefersTo": "=" + xh(e.Ref, {
                r: 0,
                c: 0
            })
        })
    }
    function Jg(e) {
        if (!((e || {}).Workbook || {}).Names)
            return "";
        var r = e.Workbook.Names;
        var t = [];
        for (var a = 0; a < r.length; ++a) {
            var n = r[a];
            if (n.Sheet != null)
                continue;
            if (n.Name.match(/^_xlfn\./))
                continue;
            t.push(Kg(n))
        }
        return kt("Names", t.join(""))
    }
    function qg(e, r, t, a) {
        if (!e)
            return "";
        if (!((a || {}).Workbook || {}).Names)
            return "";
        var n = a.Workbook.Names;
        var i = [];
        for (var s = 0; s < n.length; ++s) {
            var f = n[s];
            if (f.Sheet != t)
                continue;
            if (f.Name.match(/^_xlfn\./))
                continue;
            i.push(Kg(f))
        }
        return i.join("")
    }
    function Zg(e, r, t, a) {
        if (!e)
            return "";
        var n = [];
        if (e["!margins"]) {
            n.push("<PageSetup>");
            if (e["!margins"].header)
                n.push(kt("Header", null, {
                    "x:Margin": e["!margins"].header
                }));
            if (e["!margins"].footer)
                n.push(kt("Footer", null, {
                    "x:Margin": e["!margins"].footer
                }));
            n.push(kt("PageMargins", null, {
                "x:Bottom": e["!margins"].bottom || "0.75",
                "x:Left": e["!margins"].left || "0.7",
                "x:Right": e["!margins"].right || "0.7",
                "x:Top": e["!margins"].top || "0.75"
            }));
            n.push("</PageSetup>")
        }
        if (a && a.Workbook && a.Workbook.Sheets && a.Workbook.Sheets[t]) {
            if (a.Workbook.Sheets[t].Hidden)
                n.push(kt("Visible", a.Workbook.Sheets[t].Hidden == 1 ? "SheetHidden" : "SheetVeryHidden", {}));
            else {
                for (var i = 0; i < t; ++i)
                    if (a.Workbook.Sheets[i] && !a.Workbook.Sheets[i].Hidden)
                        break;
                if (i == t)
                    n.push("<Selected/>")
            }
        }
        if (((((a || {}).Workbook || {}).Views || [])[0] || {}).RTL)
            n.push("<DisplayRightToLeft/>");
        if (e["!protect"]) {
            n.push(bt("ProtectContents", "True"));
            if (e["!protect"].objects)
                n.push(bt("ProtectObjects", "True"));
            if (e["!protect"].scenarios)
                n.push(bt("ProtectScenarios", "True"));
            if (e["!protect"].selectLockedCells != null && !e["!protect"].selectLockedCells)
                n.push(bt("EnableSelection", "NoSelection"));
            else if (e["!protect"].selectUnlockedCells != null && !e["!protect"].selectUnlockedCells)
                n.push(bt("EnableSelection", "UnlockedCells"));
            [["formatCells", "AllowFormatCells"], ["formatColumns", "AllowSizeCols"], ["formatRows", "AllowSizeRows"], ["insertColumns", "AllowInsertCols"], ["insertRows", "AllowInsertRows"], ["insertHyperlinks", "AllowInsertHyperlinks"], ["deleteColumns", "AllowDeleteCols"], ["deleteRows", "AllowDeleteRows"], ["sort", "AllowSort"], ["autoFilter", "AllowFilter"], ["pivotTables", "AllowUsePivotTables"]].forEach(function(r) {
                if (e["!protect"][r[0]])
                    n.push("<" + r[1] + "/>")
            })
        }
        if (n.length == 0)
            return "";
        return kt("WorksheetOptions", n.join(""), {
            xmlns: _t.x
        })
    }
    function Qg(e) {
        return e.map(function(e) {
            var r = at(e.t || "");
            var t = kt("ss:Data", r, {
                xmlns: "http://www.w3.org/TR/REC-html40"
            });
            return kt("Comment", t, {
                "ss:Author": e.a
            })
        }).join("")
    }
    function em(e, r, t, a, n, i, s) {
        if (!e || e.v == undefined && e.f == undefined)
            return "";
        var f = {};
        if (e.f)
            f["ss:Formula"] = "=" + qr(xh(e.f, s));
        if (e.F && e.F.slice(0, r.length) == r) {
            var o = Oa(e.F.slice(r.length + 1));
            f["ss:ArrayRange"] = "RC:R" + (o.r == s.r ? "" : "[" + (o.r - s.r) + "]") + "C" + (o.c == s.c ? "" : "[" + (o.c - s.c) + "]")
        }
        if (e.l && e.l.Target) {
            f["ss:HRef"] = qr(e.l.Target);
            if (e.l.Tooltip)
                f["x:HRefScreenTip"] = qr(e.l.Tooltip)
        }
        if (t["!merges"]) {
            var l = t["!merges"];
            for (var c = 0; c != l.length; ++c) {
                if (l[c].s.c != s.c || l[c].s.r != s.r)
                    continue;
                if (l[c].e.c > l[c].s.c)
                    f["ss:MergeAcross"] = l[c].e.c - l[c].s.c;
                if (l[c].e.r > l[c].s.r)
                    f["ss:MergeDown"] = l[c].e.r - l[c].s.r
            }
        }
        var h = ""
          , u = "";
        switch (e.t) {
        case "z":
            if (!a.sheetStubs)
                return "";
            break;
        case "n":
            h = "Number";
            u = String(e.v);
            break;
        case "b":
            h = "Boolean";
            u = e.v ? "1" : "0";
            break;
        case "e":
            h = "Error";
            u = Gn[e.v];
            break;
        case "d":
            h = "DateTime";
            u = new Date(e.v).toISOString();
            if (e.z == null)
                e.z = e.z || X[14];
            break;
        case "s":
            h = "String";
            u = rt(e.v || "");
            break;
        }
        var d = Fd(a.cellXfs, e, a);
        f["ss:StyleID"] = "s" + (21 + d);
        f["ss:Index"] = s.c + 1;
        var v = e.v != null ? u : "";
        var p = e.t == "z" ? "" : '<Data ss:Type="' + h + '">' + v + "</Data>";
        if ((e.c || []).length > 0)
            p += Qg(e.c);
        return kt("Cell", p, f)
    }
    function rm(e, r) {
        var t = '<Row ss:Index="' + (e + 1) + '"';
        if (r) {
            if (r.hpt && !r.hpx)
                r.hpx = Pl(r.hpt);
            if (r.hpx)
                t += ' ss:AutoFitHeight="0" ss:Height="' + r.hpx + '"';
            if (r.hidden)
                t += ' ss:Hidden="1"'
        }
        return t + ">"
    }
    function tm(e, r, t, a) {
        if (!e["!ref"])
            return "";
        var n = Da(e["!ref"]);
        var i = e["!merges"] || []
          , s = 0;
        var f = [];
        if (e["!cols"])
            e["!cols"].forEach(function(e, r) {
                Il(e);
                var t = !!e.width;
                var a = Nd(r, e);
                var n = {
                    "ss:Index": r + 1
                };
                if (t)
                    n["ss:Width"] = Sl(a.width);
                if (e.hidden)
                    n["ss:Hidden"] = "1";
                f.push(kt("Column", null, n))
            });
        var o = Array.isArray(e);
        for (var l = n.s.r; l <= n.e.r; ++l) {
            var c = [rm(l, (e["!rows"] || [])[l])];
            for (var h = n.s.c; h <= n.e.c; ++h) {
                var u = false;
                for (s = 0; s != i.length; ++s) {
                    if (i[s].s.c > h)
                        continue;
                    if (i[s].s.r > l)
                        continue;
                    if (i[s].e.c < h)
                        continue;
                    if (i[s].e.r < l)
                        continue;
                    if (i[s].s.c != h || i[s].s.r != l)
                        u = true;
                    break
                }
                if (u)
                    continue;
                var d = {
                    r: l,
                    c: h
                };
                var v = Ra(d)
                  , p = o ? (e[l] || [])[h] : e[v];
                c.push(em(p, v, e, r, t, a, d))
            }
            c.push("</Row>");
            if (c.length > 2)
                f.push(c.join(""))
        }
        return f.join("")
    }
    function am(e, r, t) {
        var a = [];
        var n = t.SheetNames[e];
        var i = t.Sheets[n];
        var s = i ? qg(i, r, e, t) : "";
        if (s.length > 0)
            a.push("<Names>" + s + "</Names>");
        s = i ? tm(i, r, e, t) : "";
        if (s.length > 0)
            a.push("<Table>" + s + "</Table>");
        a.push(Zg(i, r, e, t));
        return a.join("")
    }
    function nm(e, r) {
        if (!r)
            r = {};
        if (!e.SSF)
            e.SSF = br(X);
        if (e.SSF) {
            ze();
            He(e.SSF);
            r.revssf = nr(e.SSF);
            r.revssf[e.SSF[65535]] = 0;
            r.ssf = e.SSF;
            r.cellXfs = [];
            Fd(r.cellXfs, {}, {
                revssf: {
                    General: 0
                }
            })
        }
        var t = [];
        t.push(Xg(e, r));
        t.push($g(e, r));
        t.push("");
        t.push("");
        for (var a = 0; a < e.SheetNames.length; ++a)
            t.push(kt("Worksheet", am(a, r, e), {
                "ss:Name": qr(e.SheetNames[a])
            }));
        t[2] = Yg(e, r);
        t[3] = Jg(e, r);
        return Mr + kt("Workbook", t.join(""), {
            xmlns: _t.ss,
            "xmlns:o": _t.o,
            "xmlns:x": _t.x,
            "xmlns:ss": _t.ss,
            "xmlns:dt": _t.dt,
            "xmlns:html": _t.html
        })
    }
    function im(e) {
        var r = {};
        var t = e.content;
        t.l = 28;
        r.AnsiUserType = t._R(0, "lpstr-ansi");
        r.AnsiClipboardFormat = kn(t);
        if (t.length - t.l <= 4)
            return r;
        var a = t._R(4);
        if (a == 0 || a > 40)
            return r;
        t.l -= 4;
        r.Reserved1 = t._R(0, "lpstr-ansi");
        if (t.length - t.l <= 4)
            return r;
        a = t._R(4);
        if (a !== 1907505652)
            return r;
        r.UnicodeClipboardFormat = Tn(t);
        a = t._R(4);
        if (a == 0 || a > 40)
            return r;
        t.l -= 4;
        r.Reserved2 = t._R(0, "lpwstr")
    }
    var sm = [60, 1084, 2066, 2165, 2175];
    function fm(e, r, t, a, n) {
        var i = a;
        var s = [];
        var f = t.slice(t.l, t.l + i);
        if (n && n.enc && n.enc.insitu && f.length > 0)
            switch (e) {
            case 9:
                ;
            case 521:
                ;
            case 1033:
                ;
            case 2057:
                ;
            case 47:
                ;
            case 405:
                ;
            case 225:
                ;
            case 406:
                ;
            case 312:
                ;
            case 404:
                ;
            case 10:
                break;
            case 133:
                break;
            default:
                n.enc.insitu(f);
            }
        s.push(f);
        t.l += i;
        var o = Qt(t, t.l)
          , l = mm[o];
        var c = 0;
        while (l != null && sm.indexOf(o) > -1) {
            i = Qt(t, t.l + 2);
            c = t.l + 4;
            if (o == 2066)
                c += 4;
            else if (o == 2165 || o == 2175) {
                c += 12
            }
            f = t.slice(c, t.l + 4 + i);
            s.push(f);
            t.l += 4 + i;
            l = mm[o = Qt(t, t.l)]
        }
        var h = R(s);
        ca(h, 0);
        var u = 0;
        h.lens = [];
        for (var d = 0; d < s.length; ++d) {
            h.lens.push(u);
            u += s[d].length
        }
        if (h.length < a)
            throw "XLS Record 0x" + e.toString(16) + " Truncated: " + h.length + " < " + a;
        return r.f(h, h.length, n)
    }
    function om(e, r, t) {
        if (e.t === "z")
            return;
        if (!e.XF)
            return;
        var a = 0;
        try {
            a = e.z || e.XF.numFmtId || 0;
            if (r.cellNF)
                e.z = X[a]
        } catch (n) {
            if (r.WTF)
                throw n
        }
        if (!r || r.cellText !== false)
            try {
                if (e.t === "e") {
                    e.w = e.w || Gn[e.v]
                } else if (a === 0 || a == "General") {
                    if (e.t === "n") {
                        if ((e.v | 0) === e.v)
                            e.w = e.v.toString(10);
                        else
                            e.w = se(e.v)
                    } else
                        e.w = fe(e.v)
                } else
                    e.w = Be(a, e.v, {
                        date1904: !!t,
                        dateNF: r && r.dateNF
                    })
            } catch (n) {
                if (r.WTF)
                    throw n
            }
        if (r.cellDates && a && e.t == "n" && Fe(X[a] || String(a))) {
            var i = q(e.v);
            if (i) {
                e.t = "d";
                e.v = new Date(i.y,i.m - 1,i.d,i.H,i.M,i.S,i.u)
            }
        }
    }
    function lm(e, r, t) {
        return {
            v: e,
            ixfe: r,
            t: t
        }
    }
    function cm(e, r) {
        var t = {
            opts: {}
        };
        var a = {};
        if (g != null && r.dense == null)
            r.dense = g;
        var n = r.dense ? [] : {};
        var i = {};
        var s = {};
        var f = null;
        var l = [];
        var c = "";
        var h = {};
        var u, d = "", v, p, m, b;
        var w = {};
        var k = [];
        var T;
        var A;
        var E = [];
        var C = [];
        var y = {
            Sheets: [],
            WBProps: {
                date1904: false
            },
            Views: [{}]
        }
          , S = {};
        var _ = function ve(e) {
            if (e < 8)
                return Vn[e];
            if (e < 64)
                return C[e - 8] || Vn[e];
            return Vn[e]
        };
        var x = function pe(e, r, t) {
            var a = r.XF.data;
            if (!a || !a.patternType || !t || !t.cellStyles)
                return;
            r.s = {};
            r.s.patternType = a.patternType;
            var n;
            if (n = bl(_(a.icvFore))) {
                r.s.fgColor = {
                    rgb: n
                }
            }
            if (n = bl(_(a.icvBack))) {
                r.s.bgColor = {
                    rgb: n
                }
            }
        };
        var O = function ge(e, r, t) {
            if (B > 1)
                return;
            if (t.sheetRows && e.r >= t.sheetRows)
                return;
            if (t.cellStyles && r.XF && r.XF.data)
                x(e, r, t);
            delete r.ixfe;
            delete r.XF;
            u = e;
            d = Ra(e);
            if (!s || !s.s || !s.e)
                s = {
                    s: {
                        r: 0,
                        c: 0
                    },
                    e: {
                        r: 0,
                        c: 0
                    }
                };
            if (e.r < s.s.r)
                s.s.r = e.r;
            if (e.c < s.s.c)
                s.s.c = e.c;
            if (e.r + 1 > s.e.r)
                s.e.r = e.r + 1;
            if (e.c + 1 > s.e.c)
                s.e.c = e.c + 1;
            if (t.cellFormula && r.f) {
                for (var a = 0; a < k.length; ++a) {
                    if (k[a][0].s.c > e.c || k[a][0].s.r > e.r)
                        continue;
                    if (k[a][0].e.c < e.c || k[a][0].e.r < e.r)
                        continue;
                    r.F = Na(k[a][0]);
                    if (k[a][0].s.c != e.c || k[a][0].s.r != e.r)
                        delete r.f;
                    if (r.f)
                        r.f = "" + fd(k[a][1], s, e, M, R);
                    break
                }
            }
            {
                if (t.dense) {
                    if (!n[e.r])
                        n[e.r] = [];
                    n[e.r][e.c] = r
                } else
                    n[d] = r
            }
        };
        var R = {
            enc: false,
            sbcch: 0,
            snames: [],
            sharedf: w,
            arrayf: k,
            rrtabid: [],
            lastuser: "",
            biff: 8,
            codepage: 0,
            winlocked: 0,
            cellStyles: !!r && !!r.cellStyles,
            WTF: !!r && !!r.wtf
        };
        if (r.password)
            R.password = r.password;
        var I;
        var N = [];
        var D = [];
        var F = []
          , P = [];
        var L = false;
        var M = [];
        M.SheetNames = R.snames;
        M.sharedf = R.sharedf;
        M.arrayf = R.arrayf;
        M.names = [];
        M.XTI = [];
        var U = 0;
        var B = 0;
        var W = 0
          , H = [];
        var z = [];
        var V;
        R.codepage = 1200;
        o(1200);
        var G = false;
        while (e.l < e.length - 1) {
            var j = e.l;
            var $ = e._R(2);
            if ($ === 0 && U === 10)
                break;
            var Y = e.l === e.length ? 0 : e._R(2);
            var K = mm[$];
            if (K && K.f) {
                if (r.bookSheets) {
                    if (U === 133 && $ !== 133)
                        break
                }
                U = $;
                if (K.r === 2 || K.r == 12) {
                    var J = e._R(2);
                    Y -= 2;
                    if (!R.enc && J !== $ && ((J & 255) << 8 | J >> 8) !== $)
                        throw new Error("rt mismatch: " + J + "!=" + $);
                    if (K.r == 12) {
                        e.l += 10;
                        Y -= 10
                    }
                }
                var q = {};
                if ($ === 10)
                    q = K.f(e, Y, R);
                else
                    q = fm($, K, e, Y, R);
                if (B == 0 && [9, 521, 1033, 2057].indexOf(U) === -1)
                    continue;
                switch ($) {
                case 34:
                    t.opts.Date1904 = y.WBProps.date1904 = q;
                    break;
                case 134:
                    t.opts.WriteProtect = true;
                    break;
                case 47:
                    if (!R.enc)
                        e.l = 0;
                    R.enc = q;
                    if (!r.password)
                        throw new Error("File is password-protected");
                    if (q.valid == null)
                        throw new Error("Encryption scheme unsupported");
                    if (!q.valid)
                        throw new Error("Password is incorrect");
                    break;
                case 92:
                    R.lastuser = q;
                    break;
                case 66:
                    var Z = Number(q);
                    switch (Z) {
                    case 21010:
                        Z = 1200;
                        break;
                    case 32768:
                        Z = 1e4;
                        break;
                    case 32769:
                        Z = 1252;
                        break;
                    }
                    o(R.codepage = Z);
                    G = true;
                    break;
                case 317:
                    R.rrtabid = q;
                    break;
                case 25:
                    R.winlocked = q;
                    break;
                case 439:
                    t.opts["RefreshAll"] = q;
                    break;
                case 12:
                    t.opts["CalcCount"] = q;
                    break;
                case 16:
                    t.opts["CalcDelta"] = q;
                    break;
                case 17:
                    t.opts["CalcIter"] = q;
                    break;
                case 13:
                    t.opts["CalcMode"] = q;
                    break;
                case 14:
                    t.opts["CalcPrecision"] = q;
                    break;
                case 95:
                    t.opts["CalcSaveRecalc"] = q;
                    break;
                case 15:
                    R.CalcRefMode = q;
                    break;
                case 2211:
                    t.opts.FullCalc = q;
                    break;
                case 129:
                    if (q.fDialog)
                        n["!type"] = "dialog";
                    if (!q.fBelow)
                        (n["!outline"] || (n["!outline"] = {})).above = true;
                    if (!q.fRight)
                        (n["!outline"] || (n["!outline"] = {})).left = true;
                    break;
                case 224:
                    E.push(q);
                    break;
                case 430:
                    M.push([q]);
                    M[M.length - 1].XTI = [];
                    break;
                case 35:
                    ;
                case 547:
                    M[M.length - 1].push(q);
                    break;
                case 24:
                    ;
                case 536:
                    V = {
                        Name: q.Name,
                        Ref: fd(q.rgce, s, null, M, R)
                    };
                    if (q.itab > 0)
                        V.Sheet = q.itab - 1;
                    M.names.push(V);
                    if (!M[0]) {
                        M[0] = [];
                        M[0].XTI = []
                    }
                    M[M.length - 1].push(q);
                    if (q.Name == "_xlnm._FilterDatabase" && q.itab > 0)
                        if (q.rgce && q.rgce[0] && q.rgce[0][0] && q.rgce[0][0][0] == "PtgArea3d")
                            z[q.itab - 1] = {
                                ref: Na(q.rgce[0][0][1][2])
                            };
                    break;
                case 22:
                    R.ExternCount = q;
                    break;
                case 23:
                    if (M.length == 0) {
                        M[0] = [];
                        M[0].XTI = []
                    }
                    M[M.length - 1].XTI = M[M.length - 1].XTI.concat(q);
                    M.XTI = M.XTI.concat(q);
                    break;
                case 2196:
                    if (R.biff < 8)
                        break;
                    if (V != null)
                        V.Comment = q[1];
                    break;
                case 18:
                    n["!protect"] = q;
                    break;
                case 19:
                    if (q !== 0 && R.WTF)
                        console.error("Password verifier: " + q);
                    break;
                case 133:
                    {
                        i[q.pos] = q;
                        R.snames.push(q.name)
                    }
                    break;
                case 10:
                    {
                        if (--B)
                            break;
                        if (s.e) {
                            if (s.e.r > 0 && s.e.c > 0) {
                                s.e.r--;
                                s.e.c--;
                                n["!ref"] = Na(s);
                                if (r.sheetRows && r.sheetRows <= s.e.r) {
                                    var Q = s.e.r;
                                    s.e.r = r.sheetRows - 1;
                                    n["!fullref"] = n["!ref"];
                                    n["!ref"] = Na(s);
                                    s.e.r = Q
                                }
                                s.e.r++;
                                s.e.c++
                            }
                            if (N.length > 0)
                                n["!merges"] = N;
                            if (D.length > 0)
                                n["!objects"] = D;
                            if (F.length > 0)
                                n["!cols"] = F;
                            if (P.length > 0)
                                n["!rows"] = P;
                            y.Sheets.push(S)
                        }
                        if (c === "")
                            h = n;
                        else
                            a[c] = n;
                        n = r.dense ? [] : {}
                    }
                    break;
                case 9:
                    ;
                case 521:
                    ;
                case 1033:
                    ;
                case 2057:
                    {
                        if (R.biff === 8)
                            R.biff = {
                                9: 2,
                                521: 3,
                                1033: 4
                            }[$] || {
                                512: 2,
                                768: 3,
                                1024: 4,
                                1280: 5,
                                1536: 8,
                                2: 2,
                                7: 2
                            }[q.BIFFVer] || 8;
                        R.biffguess = q.BIFFVer == 0;
                        if (q.BIFFVer == 0 && q.dt == 4096) {
                            R.biff = 5;
                            G = true;
                            o(R.codepage = 28591)
                        }
                        if (R.biff == 8 && q.BIFFVer == 0 && q.dt == 16)
                            R.biff = 2;
                        if (B++)
                            break;
                        n = r.dense ? [] : {};
                        if (R.biff < 8 && !G) {
                            G = true;
                            o(R.codepage = r.codepage || 1252)
                        }
                        if (R.biff < 5 || q.BIFFVer == 0 && q.dt == 4096) {
                            if (c === "")
                                c = "Sheet1";
                            s = {
                                s: {
                                    r: 0,
                                    c: 0
                                },
                                e: {
                                    r: 0,
                                    c: 0
                                }
                            };
                            var ee = {
                                pos: e.l - Y,
                                name: c
                            };
                            i[ee.pos] = ee;
                            R.snames.push(c)
                        } else
                            c = (i[j] || {
                                name: ""
                            }).name;
                        if (q.dt == 32)
                            n["!type"] = "chart";
                        if (q.dt == 64)
                            n["!type"] = "macro";
                        N = [];
                        D = [];
                        R.arrayf = k = [];
                        F = [];
                        P = [];
                        L = false;
                        S = {
                            Hidden: (i[j] || {
                                hs: 0
                            }).hs,
                            name: c
                        }
                    }
                    break;
                case 515:
                    ;
                case 3:
                    ;
                case 2:
                    {
                        if (n["!type"] == "chart")
                            if (r.dense ? (n[q.r] || [])[q.c] : n[Ra({
                                c: q.c,
                                r: q.r
                            })])
                                ++q.c;
                        T = {
                            ixfe: q.ixfe,
                            XF: E[q.ixfe] || {},
                            v: q.val,
                            t: "n"
                        };
                        if (W > 0)
                            T.z = H[T.ixfe >> 8 & 63];
                        om(T, r, t.opts.Date1904);
                        O({
                            c: q.c,
                            r: q.r
                        }, T, r)
                    }
                    break;
                case 5:
                    ;
                case 517:
                    {
                        T = {
                            ixfe: q.ixfe,
                            XF: E[q.ixfe],
                            v: q.val,
                            t: q.t
                        };
                        if (W > 0)
                            T.z = H[T.ixfe >> 8 & 63];
                        om(T, r, t.opts.Date1904);
                        O({
                            c: q.c,
                            r: q.r
                        }, T, r)
                    }
                    break;
                case 638:
                    {
                        T = {
                            ixfe: q.ixfe,
                            XF: E[q.ixfe],
                            v: q.rknum,
                            t: "n"
                        };
                        if (W > 0)
                            T.z = H[T.ixfe >> 8 & 63];
                        om(T, r, t.opts.Date1904);
                        O({
                            c: q.c,
                            r: q.r
                        }, T, r)
                    }
                    break;
                case 189:
                    {
                        for (var re = q.c; re <= q.C; ++re) {
                            var te = q.rkrec[re - q.c][0];
                            T = {
                                ixfe: te,
                                XF: E[te],
                                v: q.rkrec[re - q.c][1],
                                t: "n"
                            };
                            if (W > 0)
                                T.z = H[T.ixfe >> 8 & 63];
                            om(T, r, t.opts.Date1904);
                            O({
                                c: re,
                                r: q.r
                            }, T, r)
                        }
                    }
                    break;
                case 6:
                    ;
                case 518:
                    ;
                case 1030:
                    {
                        if (q.val == "String") {
                            f = q;
                            break
                        }
                        T = lm(q.val, q.cell.ixfe, q.tt);
                        T.XF = E[T.ixfe];
                        if (r.cellFormula) {
                            var ae = q.formula;
                            if (ae && ae[0] && ae[0][0] && ae[0][0][0] == "PtgExp") {
                                var ne = ae[0][0][1][0]
                                  , ie = ae[0][0][1][1];
                                var se = Ra({
                                    r: ne,
                                    c: ie
                                });
                                if (w[se])
                                    T.f = "" + fd(q.formula, s, q.cell, M, R);
                                else
                                    T.F = ((r.dense ? (n[ne] || [])[ie] : n[se]) || {}).F
                            } else
                                T.f = "" + fd(q.formula, s, q.cell, M, R)
                        }
                        if (W > 0)
                            T.z = H[T.ixfe >> 8 & 63];
                        om(T, r, t.opts.Date1904);
                        O(q.cell, T, r);
                        f = q
                    }
                    break;
                case 7:
                    ;
                case 519:
                    {
                        if (f) {
                            f.val = q;
                            T = lm(q, f.cell.ixfe, "s");
                            T.XF = E[T.ixfe];
                            if (r.cellFormula) {
                                T.f = "" + fd(f.formula, s, f.cell, M, R)
                            }
                            if (W > 0)
                                T.z = H[T.ixfe >> 8 & 63];
                            om(T, r, t.opts.Date1904);
                            O(f.cell, T, r);
                            f = null
                        } else
                            throw new Error("String record expects Formula")
                    }
                    break;
                case 33:
                    ;
                case 545:
                    {
                        k.push(q);
                        var fe = Ra(q[0].s);
                        v = r.dense ? (n[q[0].s.r] || [])[q[0].s.c] : n[fe];
                        if (r.cellFormula && v) {
                            if (!f)
                                break;
                            if (!fe || !v)
                                break;
                            v.f = "" + fd(q[1], s, q[0], M, R);
                            v.F = Na(q[0])
                        }
                    }
                    break;
                case 1212:
                    {
                        if (!r.cellFormula)
                            break;
                        if (d) {
                            if (!f)
                                break;
                            w[Ra(f.cell)] = q[0];
                            v = r.dense ? (n[f.cell.r] || [])[f.cell.c] : n[Ra(f.cell)];
                            (v || {}).f = "" + fd(q[0], s, u, M, R)
                        }
                    }
                    break;
                case 253:
                    T = lm(l[q.isst].t, q.ixfe, "s");
                    if (l[q.isst].h)
                        T.h = l[q.isst].h;
                    T.XF = E[T.ixfe];
                    if (W > 0)
                        T.z = H[T.ixfe >> 8 & 63];
                    om(T, r, t.opts.Date1904);
                    O({
                        c: q.c,
                        r: q.r
                    }, T, r);
                    break;
                case 513:
                    if (r.sheetStubs) {
                        T = {
                            ixfe: q.ixfe,
                            XF: E[q.ixfe],
                            t: "z"
                        };
                        if (W > 0)
                            T.z = H[T.ixfe >> 8 & 63];
                        om(T, r, t.opts.Date1904);
                        O({
                            c: q.c,
                            r: q.r
                        }, T, r)
                    }
                    break;
                case 190:
                    if (r.sheetStubs) {
                        for (var oe = q.c; oe <= q.C; ++oe) {
                            var le = q.ixfe[oe - q.c];
                            T = {
                                ixfe: le,
                                XF: E[le],
                                t: "z"
                            };
                            if (W > 0)
                                T.z = H[T.ixfe >> 8 & 63];
                            om(T, r, t.opts.Date1904);
                            O({
                                c: oe,
                                r: q.r
                            }, T, r)
                        }
                    }
                    break;
                case 214:
                    ;
                case 516:
                    ;
                case 4:
                    T = lm(q.val, q.ixfe, "s");
                    T.XF = E[T.ixfe];
                    if (W > 0)
                        T.z = H[T.ixfe >> 8 & 63];
                    om(T, r, t.opts.Date1904);
                    O({
                        c: q.c,
                        r: q.r
                    }, T, r);
                    break;
                case 0:
                    ;
                case 512:
                    {
                        if (B === 1)
                            s = q
                    }
                    break;
                case 252:
                    {
                        l = q
                    }
                    break;
                case 1054:
                    {
                        if (R.biff == 4) {
                            H[W++] = q[1];
                            for (var ce = 0; ce < W + 163; ++ce)
                                if (X[ce] == q[1])
                                    break;
                            if (ce >= 163)
                                We(q[1], W + 163)
                        } else
                            We(q[1], q[0])
                    }
                    break;
                case 30:
                    {
                        H[W++] = q;
                        for (var he = 0; he < W + 163; ++he)
                            if (X[he] == q)
                                break;
                        if (he >= 163)
                            We(q, W + 163)
                    }
                    break;
                case 229:
                    N = N.concat(q);
                    break;
                case 93:
                    D[q.cmo[0]] = R.lastobj = q;
                    break;
                case 438:
                    R.lastobj.TxO = q;
                    break;
                case 127:
                    R.lastobj.ImData = q;
                    break;
                case 440:
                    {
                        for (b = q[0].s.r; b <= q[0].e.r; ++b)
                            for (m = q[0].s.c; m <= q[0].e.c; ++m) {
                                v = r.dense ? (n[b] || [])[m] : n[Ra({
                                    c: m,
                                    r: b
                                })];
                                if (v)
                                    v.l = q[1]
                            }
                    }
                    break;
                case 2048:
                    {
                        for (b = q[0].s.r; b <= q[0].e.r; ++b)
                            for (m = q[0].s.c; m <= q[0].e.c; ++m) {
                                v = r.dense ? (n[b] || [])[m] : n[Ra({
                                    c: m,
                                    r: b
                                })];
                                if (v && v.l)
                                    v.l.Tooltip = q[1]
                            }
                    }
                    break;
                case 28:
                    {
                        if (R.biff <= 5 && R.biff >= 2)
                            break;
                        v = r.dense ? (n[q[0].r] || [])[q[0].c] : n[Ra(q[0])];
                        var ue = D[q[2]];
                        if (!v) {
                            if (r.dense) {
                                if (!n[q[0].r])
                                    n[q[0].r] = [];
                                v = n[q[0].r][q[0].c] = {
                                    t: "z"
                                }
                            } else {
                                v = n[Ra(q[0])] = {
                                    t: "z"
                                }
                            }
                            s.e.r = Math.max(s.e.r, q[0].r);
                            s.s.r = Math.min(s.s.r, q[0].r);
                            s.e.c = Math.max(s.e.c, q[0].c);
                            s.s.c = Math.min(s.s.c, q[0].c)
                        }
                        if (!v.c)
                            v.c = [];
                        p = {
                            a: q[1],
                            t: ue.TxO.t
                        };
                        v.c.push(p)
                    }
                    break;
                case 2173:
                    Bc(E[q.ixfe], q.ext);
                    break;
                case 125:
                    {
                        if (!R.cellStyles)
                            break;
                        while (q.e >= q.s) {
                            F[q.e--] = {
                                width: q.w / 256,
                                level: q.level || 0,
                                hidden: !!(q.flags & 1)
                            };
                            if (!L) {
                                L = true;
                                Rl(q.w / 256)
                            }
                            Il(F[q.e + 1])
                        }
                    }
                    break;
                case 520:
                    {
                        var de = {};
                        if (q.level != null) {
                            P[q.r] = de;
                            de.level = q.level
                        }
                        if (q.hidden) {
                            P[q.r] = de;
                            de.hidden = true
                        }
                        if (q.hpt) {
                            P[q.r] = de;
                            de.hpt = q.hpt;
                            de.hpx = Pl(q.hpt)
                        }
                    }
                    break;
                case 38:
                    ;
                case 39:
                    ;
                case 40:
                    ;
                case 41:
                    if (!n["!margins"])
                        Dd(n["!margins"] = {});
                    n["!margins"][{
                        38: "left",
                        39: "right",
                        40: "top",
                        41: "bottom"
                    }[$]] = q;
                    break;
                case 161:
                    if (!n["!margins"])
                        Dd(n["!margins"] = {});
                    n["!margins"].header = q.header;
                    n["!margins"].footer = q.footer;
                    break;
                case 574:
                    if (q.RTL)
                        y.Views[0].RTL = true;
                    break;
                case 146:
                    C = q;
                    break;
                case 2198:
                    I = q;
                    break;
                case 140:
                    A = q;
                    break;
                case 442:
                    {
                        if (!c)
                            y.WBProps.CodeName = q || "ThisWorkbook";
                        else
                            S.CodeName = q || S.name
                    }
                    break;
                }
            } else {
                if (!K)
                    console.error("Missing Info for XLS Record 0x" + $.toString(16));
                e.l += Y
            }
        }
        t.SheetNames = rr(i).sort(function(e, r) {
            return Number(e) - Number(r)
        }).map(function(e) {
            return i[e].name
        });
        if (!r.bookSheets)
            t.Sheets = a;
        if (!t.SheetNames.length && h["!ref"]) {
            t.SheetNames.push("Sheet1");
            if (t.Sheets)
                t.Sheets["Sheet1"] = h
        } else
            t.Preamble = h;
        if (t.Sheets)
            z.forEach(function(e, r) {
                t.Sheets[t.SheetNames[r]]["!autofilter"] = e
            });
        t.Strings = l;
        t.SSF = br(X);
        if (R.enc)
            t.Encryption = R.enc;
        if (I)
            t.Themes = I;
        t.Metadata = {};
        if (A !== undefined)
            t.Metadata.Country = A;
        if (M.names.length > 0)
            y.Names = M.names;
        t.Workbook = y;
        return t
    }
    var hm = {
        SI: "e0859ff2f94f6810ab9108002b27b3d9",
        DSI: "02d5cdd59c2e1b10939708002b2cf9ae",
        UDI: "05d5cdd59c2e1b10939708002b2cf9ae"
    };
    function um(e, r, t) {
        var a = Ke.find(e, "/!DocumentSummaryInformation");
        if (a && a.size > 0)
            try {
                var n = $i(a, Mn, hm.DSI);
                for (var i in n)
                    r[i] = n[i]
            } catch (s) {
                if (t.WTF)
                    throw s
            }
        var f = Ke.find(e, "/!SummaryInformation");
        if (f && f.size > 0)
            try {
                var o = $i(f, Un, hm.SI);
                for (var l in o)
                    if (r[l] == null)
                        r[l] = o[l]
            } catch (s) {
                if (t.WTF)
                    throw s
            }
        if (r.HeadingPairs && r.TitlesOfParts) {
            gi(r.HeadingPairs, r.TitlesOfParts, r, t);
            delete r.HeadingPairs;
            delete r.TitlesOfParts
        }
    }
    function dm(e, r) {
        var t = []
          , a = []
          , n = [];
        var i = 0, s;
        var f = tr(Mn, "n");
        var o = tr(Un, "n");
        if (e.Props) {
            s = rr(e.Props);
            for (i = 0; i < s.length; ++i)
                (Object.prototype.hasOwnProperty.call(f, s[i]) ? t : Object.prototype.hasOwnProperty.call(o, s[i]) ? a : n).push([s[i], e.Props[s[i]]])
        }
        if (e.Custprops) {
            s = rr(e.Custprops);
            for (i = 0; i < s.length; ++i)
                if (!Object.prototype.hasOwnProperty.call(e.Props || {}, s[i]))
                    (Object.prototype.hasOwnProperty.call(f, s[i]) ? t : Object.prototype.hasOwnProperty.call(o, s[i]) ? a : n).push([s[i], e.Custprops[s[i]]])
        }
        var l = [];
        for (i = 0; i < n.length; ++i) {
            if (Gi.indexOf(n[i][0]) > -1 || pi.indexOf(n[i][0]) > -1)
                continue;
            if (n[i][1] == null)
                continue;
            l.push(n[i])
        }
        if (a.length)
            Ke.utils.cfb_add(r, "/SummaryInformation", Yi(a, hm.SI, o, Un));
        if (t.length || l.length)
            Ke.utils.cfb_add(r, "/DocumentSummaryInformation", Yi(t, hm.DSI, f, Mn, l.length ? l : null, hm.UDI))
    }
    function vm(e, r) {
        if (!r)
            r = {};
        Wb(r);
        l();
        if (r.codepage)
            s(r.codepage);
        var t, a;
        if (e.FullPaths) {
            if (Ke.find(e, "/encryption"))
                throw new Error("File is password-protected");
            t = Ke.find(e, "!CompObj");
            a = Ke.find(e, "/Workbook") || Ke.find(e, "/Book")
        } else {
            switch (r.type) {
            case "base64":
                e = y(k(e));
                break;
            case "binary":
                e = y(e);
                break;
            case "buffer":
                break;
            case "array":
                if (!Array.isArray(e))
                    e = Array.prototype.slice.call(e);
                break;
            }
            ca(e, 0);
            a = {
                content: e
            }
        }
        var n;
        var i;
        if (t)
            im(t);
        if (r.bookProps && !r.bookSheets)
            n = {};
        else {
            var f = T ? "buffer" : "array";
            if (a && a.content)
                n = cm(a.content, r);
            else if ((i = Ke.find(e, "PerfectOffice_MAIN")) && i.content)
                n = xo.to_workbook(i.content, (r.type = f,
                r));
            else if ((i = Ke.find(e, "NativeContent_MAIN")) && i.content)
                n = xo.to_workbook(i.content, (r.type = f,
                r));
            else if ((i = Ke.find(e, "MN0")) && i.content)
                throw new Error("Unsupported Works 4 for Mac file");
            else
                throw new Error("Cannot find Workbook stream");
            if (r.bookVBA && e.FullPaths && Ke.find(e, "/_VBA_PROJECT_CUR/VBA/dir"))
                n.vbaraw = wh(e)
        }
        var o = {};
        if (e.FullPaths)
            um(e, o, r);
        n.Props = n.Custprops = o;
        if (r.bookFiles)
            n.cfb = e;
        return n
    }
    function pm(e, r) {
        var t = r || {};
        var a = Ke.utils.cfb_new({
            root: "R"
        });
        var n = "/Workbook";
        switch (t.bookType || "xls") {
        case "xls":
            t.bookType = "biff8";
        case "xla":
            if (!t.bookType)
                t.bookType = "xla";
        case "biff8":
            n = "/Workbook";
            t.biff = 8;
            break;
        case "biff5":
            n = "/Book";
            t.biff = 5;
            break;
        default:
            throw new Error("invalid type " + t.bookType + " for XLS CFB");
        }
        Ke.utils.cfb_add(a, n, Lm(e, t));
        if (t.biff == 8 && (e.Props || e.Custprops))
            dm(e, a);
        if (t.biff == 8 && e.vbaraw)
            kh(a, Ke.read(e.vbaraw, {
                type: typeof e.vbaraw == "string" ? "binary" : "buffer"
            }));
        return a
    }
    var gm = {
        0: {
            f: gv
        },
        1: {
            f: Cv
        },
        2: {
            f: Gv
        },
        3: {
            f: Nv
        },
        4: {
            f: xv
        },
        5: {
            f: Wv
        },
        6: {
            f: Kv
        },
        7: {
            f: Lv
        },
        8: {
            f: tp
        },
        9: {
            f: rp
        },
        10: {
            f: Qv
        },
        11: {
            f: ep
        },
        12: {
            f: Sv
        },
        13: {
            f: Xv
        },
        14: {
            f: Fv
        },
        15: {
            f: Rv
        },
        16: {
            f: zv
        },
        17: {
            f: qv
        },
        18: {
            f: Uv
        },
        19: {
            f: ja
        },
        20: {},
        21: {},
        22: {},
        23: {},
        24: {},
        25: {},
        26: {},
        27: {},
        28: {},
        29: {},
        30: {},
        31: {},
        32: {},
        33: {},
        34: {},
        35: {
            T: 1
        },
        36: {
            T: -1
        },
        37: {
            T: 1
        },
        38: {
            T: -1
        },
        39: {
            f: fg
        },
        40: {},
        42: {},
        43: {
            f: Jl
        },
        44: {
            f: Yl
        },
        45: {
            f: ec
        },
        46: {
            f: ic
        },
        47: {
            f: tc
        },
        48: {},
        49: {
            f: Ba
        },
        50: {},
        51: {
            f: zc
        },
        52: {
            T: 1
        },
        53: {
            T: -1
        },
        54: {
            T: 1
        },
        55: {
            T: -1
        },
        56: {
            T: 1
        },
        57: {
            T: -1
        },
        58: {},
        59: {},
        60: {
            f: ao
        },
        62: {
            f: Yv
        },
        63: {
            f: Zc
        },
        64: {
            f: wp
        },
        65: {},
        66: {},
        67: {},
        68: {},
        69: {},
        70: {},
        128: {},
        129: {
            T: 1
        },
        130: {
            T: -1
        },
        131: {
            T: 1,
            f: ha,
            p: 0
        },
        132: {
            T: -1
        },
        133: {
            T: 1
        },
        134: {
            T: -1
        },
        135: {
            T: 1
        },
        136: {
            T: -1
        },
        137: {
            T: 1,
            f: pp
        },
        138: {
            T: -1
        },
        139: {
            T: 1
        },
        140: {
            T: -1
        },
        141: {
            T: 1
        },
        142: {
            T: -1
        },
        143: {
            T: 1
        },
        144: {
            T: -1
        },
        145: {
            T: 1
        },
        146: {
            T: -1
        },
        147: {
            f: Av
        },
        148: {
            f: wv,
            p: 16
        },
        151: {
            f: op
        },
        152: {},
        153: {
            f: ng
        },
        154: {},
        155: {},
        156: {
            f: tg
        },
        157: {},
        158: {},
        159: {
            T: 1,
            f: zo
        },
        160: {
            T: -1
        },
        161: {
            T: 1,
            f: hn
        },
        162: {
            T: -1
        },
        163: {
            T: 1
        },
        164: {
            T: -1
        },
        165: {
            T: 1
        },
        166: {
            T: -1
        },
        167: {},
        168: {},
        169: {},
        170: {},
        171: {},
        172: {
            T: 1
        },
        173: {
            T: -1
        },
        174: {},
        175: {},
        176: {
            f: ap
        },
        177: {
            T: 1
        },
        178: {
            T: -1
        },
        179: {
            T: 1
        },
        180: {
            T: -1
        },
        181: {
            T: 1
        },
        182: {
            T: -1
        },
        183: {
            T: 1
        },
        184: {
            T: -1
        },
        185: {
            T: 1
        },
        186: {
            T: -1
        },
        187: {
            T: 1
        },
        188: {
            T: -1
        },
        189: {
            T: 1
        },
        190: {
            T: -1
        },
        191: {
            T: 1
        },
        192: {
            T: -1
        },
        193: {
            T: 1
        },
        194: {
            T: -1
        },
        195: {
            T: 1
        },
        196: {
            T: -1
        },
        197: {
            T: 1
        },
        198: {
            T: -1
        },
        199: {
            T: 1
        },
        200: {
            T: -1
        },
        201: {
            T: 1
        },
        202: {
            T: -1
        },
        203: {
            T: 1
        },
        204: {
            T: -1
        },
        205: {
            T: 1
        },
        206: {
            T: -1
        },
        207: {
            T: 1
        },
        208: {
            T: -1
        },
        209: {
            T: 1
        },
        210: {
            T: -1
        },
        211: {
            T: 1
        },
        212: {
            T: -1
        },
        213: {
            T: 1
        },
        214: {
            T: -1
        },
        215: {
            T: 1
        },
        216: {
            T: -1
        },
        217: {
            T: 1
        },
        218: {
            T: -1
        },
        219: {
            T: 1
        },
        220: {
            T: -1
        },
        221: {
            T: 1
        },
        222: {
            T: -1
        },
        223: {
            T: 1
        },
        224: {
            T: -1
        },
        225: {
            T: 1
        },
        226: {
            T: -1
        },
        227: {
            T: 1
        },
        228: {
            T: -1
        },
        229: {
            T: 1
        },
        230: {
            T: -1
        },
        231: {
            T: 1
        },
        232: {
            T: -1
        },
        233: {
            T: 1
        },
        234: {
            T: -1
        },
        235: {
            T: 1
        },
        236: {
            T: -1
        },
        237: {
            T: 1
        },
        238: {
            T: -1
        },
        239: {
            T: 1
        },
        240: {
            T: -1
        },
        241: {
            T: 1
        },
        242: {
            T: -1
        },
        243: {
            T: 1
        },
        244: {
            T: -1
        },
        245: {
            T: 1
        },
        246: {
            T: -1
        },
        247: {
            T: 1
        },
        248: {
            T: -1
        },
        249: {
            T: 1
        },
        250: {
            T: -1
        },
        251: {
            T: 1
        },
        252: {
            T: -1
        },
        253: {
            T: 1
        },
        254: {
            T: -1
        },
        255: {
            T: 1
        },
        256: {
            T: -1
        },
        257: {
            T: 1
        },
        258: {
            T: -1
        },
        259: {
            T: 1
        },
        260: {
            T: -1
        },
        261: {
            T: 1
        },
        262: {
            T: -1
        },
        263: {
            T: 1
        },
        264: {
            T: -1
        },
        265: {
            T: 1
        },
        266: {
            T: -1
        },
        267: {
            T: 1
        },
        268: {
            T: -1
        },
        269: {
            T: 1
        },
        270: {
            T: -1
        },
        271: {
            T: 1
        },
        272: {
            T: -1
        },
        273: {
            T: 1
        },
        274: {
            T: -1
        },
        275: {
            T: 1
        },
        276: {
            T: -1
        },
        277: {},
        278: {
            T: 1
        },
        279: {
            T: -1
        },
        280: {
            T: 1
        },
        281: {
            T: -1
        },
        282: {
            T: 1
        },
        283: {
            T: 1
        },
        284: {
            T: -1
        },
        285: {
            T: 1
        },
        286: {
            T: -1
        },
        287: {
            T: 1
        },
        288: {
            T: -1
        },
        289: {
            T: 1
        },
        290: {
            T: -1
        },
        291: {
            T: 1
        },
        292: {
            T: -1
        },
        293: {
            T: 1
        },
        294: {
            T: -1
        },
        295: {
            T: 1
        },
        296: {
            T: -1
        },
        297: {
            T: 1
        },
        298: {
            T: -1
        },
        299: {
            T: 1
        },
        300: {
            T: -1
        },
        301: {
            T: 1
        },
        302: {
            T: -1
        },
        303: {
            T: 1
        },
        304: {
            T: -1
        },
        305: {
            T: 1
        },
        306: {
            T: -1
        },
        307: {
            T: 1
        },
        308: {
            T: -1
        },
        309: {
            T: 1
        },
        310: {
            T: -1
        },
        311: {
            T: 1
        },
        312: {
            T: -1
        },
        313: {
            T: -1
        },
        314: {
            T: 1
        },
        315: {
            T: -1
        },
        316: {
            T: 1
        },
        317: {
            T: -1
        },
        318: {
            T: 1
        },
        319: {
            T: -1
        },
        320: {
            T: 1
        },
        321: {
            T: -1
        },
        322: {
            T: 1
        },
        323: {
            T: -1
        },
        324: {
            T: 1
        },
        325: {
            T: -1
        },
        326: {
            T: 1
        },
        327: {
            T: -1
        },
        328: {
            T: 1
        },
        329: {
            T: -1
        },
        330: {
            T: 1
        },
        331: {
            T: -1
        },
        332: {
            T: 1
        },
        333: {
            T: -1
        },
        334: {
            T: 1
        },
        335: {
            f: Wc
        },
        336: {
            T: -1
        },
        337: {
            f: jc,
            T: 1
        },
        338: {
            T: -1
        },
        339: {
            T: 1
        },
        340: {
            T: -1
        },
        341: {
            T: 1
        },
        342: {
            T: -1
        },
        343: {
            T: 1
        },
        344: {
            T: -1
        },
        345: {
            T: 1
        },
        346: {
            T: -1
        },
        347: {
            T: 1
        },
        348: {
            T: -1
        },
        349: {
            T: 1
        },
        350: {
            T: -1
        },
        351: {},
        352: {},
        353: {
            T: 1
        },
        354: {
            T: -1
        },
        355: {
            f: nn
        },
        357: {},
        358: {},
        359: {},
        360: {
            T: 1
        },
        361: {},
        362: {
            f: Ff
        },
        363: {},
        364: {},
        366: {},
        367: {},
        368: {},
        369: {},
        370: {},
        371: {},
        372: {
            T: 1
        },
        373: {
            T: -1
        },
        374: {
            T: 1
        },
        375: {
            T: -1
        },
        376: {
            T: 1
        },
        377: {
            T: -1
        },
        378: {
            T: 1
        },
        379: {
            T: -1
        },
        380: {
            T: 1
        },
        381: {
            T: -1
        },
        382: {
            T: 1
        },
        383: {
            T: -1
        },
        384: {
            T: 1
        },
        385: {
            T: -1
        },
        386: {
            T: 1
        },
        387: {
            T: -1
        },
        388: {
            T: 1
        },
        389: {
            T: -1
        },
        390: {
            T: 1
        },
        391: {
            T: -1
        },
        392: {
            T: 1
        },
        393: {
            T: -1
        },
        394: {
            T: 1
        },
        395: {
            T: -1
        },
        396: {},
        397: {},
        398: {},
        399: {},
        400: {},
        401: {
            T: 1
        },
        403: {},
        404: {},
        405: {},
        406: {},
        407: {},
        408: {},
        409: {},
        410: {},
        411: {},
        412: {},
        413: {},
        414: {},
        415: {},
        416: {},
        417: {},
        418: {},
        419: {},
        420: {},
        421: {},
        422: {
            T: 1
        },
        423: {
            T: 1
        },
        424: {
            T: -1
        },
        425: {
            T: -1
        },
        426: {
            f: lp
        },
        427: {
            f: cp
        },
        428: {},
        429: {
            T: 1
        },
        430: {
            T: -1
        },
        431: {
            T: 1
        },
        432: {
            T: -1
        },
        433: {
            T: 1
        },
        434: {
            T: -1
        },
        435: {
            T: 1
        },
        436: {
            T: -1
        },
        437: {
            T: 1
        },
        438: {
            T: -1
        },
        439: {
            T: 1
        },
        440: {
            T: -1
        },
        441: {
            T: 1
        },
        442: {
            T: -1
        },
        443: {
            T: 1
        },
        444: {
            T: -1
        },
        445: {
            T: 1
        },
        446: {
            T: -1
        },
        447: {
            T: 1
        },
        448: {
            T: -1
        },
        449: {
            T: 1
        },
        450: {
            T: -1
        },
        451: {
            T: 1
        },
        452: {
            T: -1
        },
        453: {
            T: 1
        },
        454: {
            T: -1
        },
        455: {
            T: 1
        },
        456: {
            T: -1
        },
        457: {
            T: 1
        },
        458: {
            T: -1
        },
        459: {
            T: 1
        },
        460: {
            T: -1
        },
        461: {
            T: 1
        },
        462: {
            T: -1
        },
        463: {
            T: 1
        },
        464: {
            T: -1
        },
        465: {
            T: 1
        },
        466: {
            T: -1
        },
        467: {
            T: 1
        },
        468: {
            T: -1
        },
        469: {
            T: 1
        },
        470: {
            T: -1
        },
        471: {},
        472: {},
        473: {
            T: 1
        },
        474: {
            T: -1
        },
        475: {},
        476: {
            f: dp
        },
        477: {},
        478: {},
        479: {
            T: 1
        },
        480: {
            T: -1
        },
        481: {
            T: 1
        },
        482: {
            T: -1
        },
        483: {
            T: 1
        },
        484: {
            T: -1
        },
        485: {
            f: Tv
        },
        486: {
            T: 1
        },
        487: {
            T: -1
        },
        488: {
            T: 1
        },
        489: {
            T: -1
        },
        490: {
            T: 1
        },
        491: {
            T: -1
        },
        492: {
            T: 1
        },
        493: {
            T: -1
        },
        494: {
            f: sp
        },
        495: {
            T: 1
        },
        496: {
            T: -1
        },
        497: {
            T: 1
        },
        498: {
            T: -1
        },
        499: {},
        500: {
            T: 1
        },
        501: {
            T: -1
        },
        502: {
            T: 1
        },
        503: {
            T: -1
        },
        504: {},
        505: {
            T: 1
        },
        506: {
            T: -1
        },
        507: {},
        508: {
            T: 1
        },
        509: {
            T: -1
        },
        510: {
            T: 1
        },
        511: {
            T: -1
        },
        512: {},
        513: {},
        514: {
            T: 1
        },
        515: {
            T: -1
        },
        516: {
            T: 1
        },
        517: {
            T: -1
        },
        518: {
            T: 1
        },
        519: {
            T: -1
        },
        520: {
            T: 1
        },
        521: {
            T: -1
        },
        522: {},
        523: {},
        524: {},
        525: {},
        526: {},
        527: {},
        528: {
            T: 1
        },
        529: {
            T: -1
        },
        530: {
            T: 1
        },
        531: {
            T: -1
        },
        532: {
            T: 1
        },
        533: {
            T: -1
        },
        534: {},
        535: {},
        536: {},
        537: {},
        538: {
            T: 1
        },
        539: {
            T: -1
        },
        540: {
            T: 1
        },
        541: {
            T: -1
        },
        542: {
            T: 1
        },
        548: {},
        549: {},
        550: {
            f: nn
        },
        551: {},
        552: {},
        553: {},
        554: {
            T: 1
        },
        555: {
            T: -1
        },
        556: {
            T: 1
        },
        557: {
            T: -1
        },
        558: {
            T: 1
        },
        559: {
            T: -1
        },
        560: {
            T: 1
        },
        561: {
            T: -1
        },
        562: {},
        564: {},
        565: {
            T: 1
        },
        566: {
            T: -1
        },
        569: {
            T: 1
        },
        570: {
            T: -1
        },
        572: {},
        573: {
            T: 1
        },
        574: {
            T: -1
        },
        577: {},
        578: {},
        579: {},
        580: {},
        581: {},
        582: {},
        583: {},
        584: {},
        585: {},
        586: {},
        587: {},
        588: {
            T: -1
        },
        589: {},
        590: {
            T: 1
        },
        591: {
            T: -1
        },
        592: {
            T: 1
        },
        593: {
            T: -1
        },
        594: {
            T: 1
        },
        595: {
            T: -1
        },
        596: {},
        597: {
            T: 1
        },
        598: {
            T: -1
        },
        599: {
            T: 1
        },
        600: {
            T: -1
        },
        601: {
            T: 1
        },
        602: {
            T: -1
        },
        603: {
            T: 1
        },
        604: {
            T: -1
        },
        605: {
            T: 1
        },
        606: {
            T: -1
        },
        607: {},
        608: {
            T: 1
        },
        609: {
            T: -1
        },
        610: {},
        611: {
            T: 1
        },
        612: {
            T: -1
        },
        613: {
            T: 1
        },
        614: {
            T: -1
        },
        615: {
            T: 1
        },
        616: {
            T: -1
        },
        617: {
            T: 1
        },
        618: {
            T: -1
        },
        619: {
            T: 1
        },
        620: {
            T: -1
        },
        625: {},
        626: {
            T: 1
        },
        627: {
            T: -1
        },
        628: {
            T: 1
        },
        629: {
            T: -1
        },
        630: {
            T: 1
        },
        631: {
            T: -1
        },
        632: {
            f: vh
        },
        633: {
            T: 1
        },
        634: {
            T: -1
        },
        635: {
            T: 1,
            f: uh
        },
        636: {
            T: -1
        },
        637: {
            f: $a
        },
        638: {
            T: 1
        },
        639: {},
        640: {
            T: -1
        },
        641: {
            T: 1
        },
        642: {
            T: -1
        },
        643: {
            T: 1
        },
        644: {},
        645: {
            T: -1
        },
        646: {
            T: 1
        },
        648: {
            T: 1
        },
        649: {},
        650: {
            T: -1
        },
        651: {
            f: Up
        },
        652: {},
        653: {
            T: 1
        },
        654: {
            T: -1
        },
        655: {
            T: 1
        },
        656: {
            T: -1
        },
        657: {
            T: 1
        },
        658: {
            T: -1
        },
        659: {},
        660: {
            T: 1
        },
        661: {},
        662: {
            T: -1
        },
        663: {},
        664: {
            T: 1
        },
        665: {},
        666: {
            T: -1
        },
        667: {},
        668: {},
        669: {},
        671: {
            T: 1
        },
        672: {
            T: -1
        },
        673: {
            T: 1
        },
        674: {
            T: -1
        },
        675: {},
        676: {},
        677: {},
        678: {},
        679: {},
        680: {},
        681: {},
        1024: {},
        1025: {},
        1026: {
            T: 1
        },
        1027: {
            T: -1
        },
        1028: {
            T: 1
        },
        1029: {
            T: -1
        },
        1030: {},
        1031: {
            T: 1
        },
        1032: {
            T: -1
        },
        1033: {
            T: 1
        },
        1034: {
            T: -1
        },
        1035: {},
        1036: {},
        1037: {},
        1038: {
            T: 1
        },
        1039: {
            T: -1
        },
        1040: {},
        1041: {
            T: 1
        },
        1042: {
            T: -1
        },
        1043: {},
        1044: {},
        1045: {},
        1046: {
            T: 1
        },
        1047: {
            T: -1
        },
        1048: {
            T: 1
        },
        1049: {
            T: -1
        },
        1050: {},
        1051: {
            T: 1
        },
        1052: {
            T: 1
        },
        1053: {
            f: kp
        },
        1054: {
            T: 1
        },
        1055: {},
        1056: {
            T: 1
        },
        1057: {
            T: -1
        },
        1058: {
            T: 1
        },
        1059: {
            T: -1
        },
        1061: {},
        1062: {
            T: 1
        },
        1063: {
            T: -1
        },
        1064: {
            T: 1
        },
        1065: {
            T: -1
        },
        1066: {
            T: 1
        },
        1067: {
            T: -1
        },
        1068: {
            T: 1
        },
        1069: {
            T: -1
        },
        1070: {
            T: 1
        },
        1071: {
            T: -1
        },
        1072: {
            T: 1
        },
        1073: {
            T: -1
        },
        1075: {
            T: 1
        },
        1076: {
            T: -1
        },
        1077: {
            T: 1
        },
        1078: {
            T: -1
        },
        1079: {
            T: 1
        },
        1080: {
            T: -1
        },
        1081: {
            T: 1
        },
        1082: {
            T: -1
        },
        1083: {
            T: 1
        },
        1084: {
            T: -1
        },
        1085: {},
        1086: {
            T: 1
        },
        1087: {
            T: -1
        },
        1088: {
            T: 1
        },
        1089: {
            T: -1
        },
        1090: {
            T: 1
        },
        1091: {
            T: -1
        },
        1092: {
            T: 1
        },
        1093: {
            T: -1
        },
        1094: {
            T: 1
        },
        1095: {
            T: -1
        },
        1096: {},
        1097: {
            T: 1
        },
        1098: {},
        1099: {
            T: -1
        },
        1100: {
            T: 1
        },
        1101: {
            T: -1
        },
        1102: {},
        1103: {},
        1104: {},
        1105: {},
        1111: {},
        1112: {},
        1113: {
            T: 1
        },
        1114: {
            T: -1
        },
        1115: {
            T: 1
        },
        1116: {
            T: -1
        },
        1117: {},
        1118: {
            T: 1
        },
        1119: {
            T: -1
        },
        1120: {
            T: 1
        },
        1121: {
            T: -1
        },
        1122: {
            T: 1
        },
        1123: {
            T: -1
        },
        1124: {
            T: 1
        },
        1125: {
            T: -1
        },
        1126: {},
        1128: {
            T: 1
        },
        1129: {
            T: -1
        },
        1130: {},
        1131: {
            T: 1
        },
        1132: {
            T: -1
        },
        1133: {
            T: 1
        },
        1134: {
            T: -1
        },
        1135: {
            T: 1
        },
        1136: {
            T: -1
        },
        1137: {
            T: 1
        },
        1138: {
            T: -1
        },
        1139: {
            T: 1
        },
        1140: {
            T: -1
        },
        1141: {},
        1142: {
            T: 1
        },
        1143: {
            T: -1
        },
        1144: {
            T: 1
        },
        1145: {
            T: -1
        },
        1146: {},
        1147: {
            T: 1
        },
        1148: {
            T: -1
        },
        1149: {
            T: 1
        },
        1150: {
            T: -1
        },
        1152: {
            T: 1
        },
        1153: {
            T: -1
        },
        1154: {
            T: -1
        },
        1155: {
            T: -1
        },
        1156: {
            T: -1
        },
        1157: {
            T: 1
        },
        1158: {
            T: -1
        },
        1159: {
            T: 1
        },
        1160: {
            T: -1
        },
        1161: {
            T: 1
        },
        1162: {
            T: -1
        },
        1163: {
            T: 1
        },
        1164: {
            T: -1
        },
        1165: {
            T: 1
        },
        1166: {
            T: -1
        },
        1167: {
            T: 1
        },
        1168: {
            T: -1
        },
        1169: {
            T: 1
        },
        1170: {
            T: -1
        },
        1171: {},
        1172: {
            T: 1
        },
        1173: {
            T: -1
        },
        1177: {},
        1178: {
            T: 1
        },
        1180: {},
        1181: {},
        1182: {},
        2048: {
            T: 1
        },
        2049: {
            T: -1
        },
        2050: {},
        2051: {
            T: 1
        },
        2052: {
            T: -1
        },
        2053: {},
        2054: {},
        2055: {
            T: 1
        },
        2056: {
            T: -1
        },
        2057: {
            T: 1
        },
        2058: {
            T: -1
        },
        2060: {},
        2067: {},
        2068: {
            T: 1
        },
        2069: {
            T: -1
        },
        2070: {},
        2071: {},
        2072: {
            T: 1
        },
        2073: {
            T: -1
        },
        2075: {},
        2076: {},
        2077: {
            T: 1
        },
        2078: {
            T: -1
        },
        2079: {},
        2080: {
            T: 1
        },
        2081: {
            T: -1
        },
        2082: {},
        2083: {
            T: 1
        },
        2084: {
            T: -1
        },
        2085: {
            T: 1
        },
        2086: {
            T: -1
        },
        2087: {
            T: 1
        },
        2088: {
            T: -1
        },
        2089: {
            T: 1
        },
        2090: {
            T: -1
        },
        2091: {},
        2092: {},
        2093: {
            T: 1
        },
        2094: {
            T: -1
        },
        2095: {},
        2096: {
            T: 1
        },
        2097: {
            T: -1
        },
        2098: {
            T: 1
        },
        2099: {
            T: -1
        },
        2100: {
            T: 1
        },
        2101: {
            T: -1
        },
        2102: {},
        2103: {
            T: 1
        },
        2104: {
            T: -1
        },
        2105: {},
        2106: {
            T: 1
        },
        2107: {
            T: -1
        },
        2108: {},
        2109: {
            T: 1
        },
        2110: {
            T: -1
        },
        2111: {
            T: 1
        },
        2112: {
            T: -1
        },
        2113: {
            T: 1
        },
        2114: {
            T: -1
        },
        2115: {},
        2116: {},
        2117: {},
        2118: {
            T: 1
        },
        2119: {
            T: -1
        },
        2120: {},
        2121: {
            T: 1
        },
        2122: {
            T: -1
        },
        2123: {
            T: 1
        },
        2124: {
            T: -1
        },
        2125: {},
        2126: {
            T: 1
        },
        2127: {
            T: -1
        },
        2128: {},
        2129: {
            T: 1
        },
        2130: {
            T: -1
        },
        2131: {
            T: 1
        },
        2132: {
            T: -1
        },
        2133: {
            T: 1
        },
        2134: {},
        2135: {},
        2136: {},
        2137: {
            T: 1
        },
        2138: {
            T: -1
        },
        2139: {
            T: 1
        },
        2140: {
            T: -1
        },
        2141: {},
        3072: {},
        3073: {},
        4096: {
            T: 1
        },
        4097: {
            T: -1
        },
        5002: {
            T: 1
        },
        5003: {
            T: -1
        },
        5081: {
            T: 1
        },
        5082: {
            T: -1
        },
        5083: {},
        5084: {
            T: 1
        },
        5085: {
            T: -1
        },
        5086: {
            T: 1
        },
        5087: {
            T: -1
        },
        5088: {},
        5089: {},
        5090: {},
        5092: {
            T: 1
        },
        5093: {
            T: -1
        },
        5094: {},
        5095: {
            T: 1
        },
        5096: {
            T: -1
        },
        5097: {},
        5099: {},
        65535: {
            n: ""
        }
    };
    var mm = {
        6: {
            f: vd
        },
        10: {
            f: Ki
        },
        12: {
            f: es
        },
        13: {
            f: es
        },
        14: {
            f: Zi
        },
        15: {
            f: Zi
        },
        16: {
            f: dn
        },
        17: {
            f: Zi
        },
        18: {
            f: Zi
        },
        19: {
            f: es
        },
        20: {
            f: Of
        },
        21: {
            f: Of
        },
        23: {
            f: Ff
        },
        24: {
            f: Df
        },
        25: {
            f: Zi
        },
        26: {},
        27: {},
        28: {
            f: Hf
        },
        29: {},
        34: {
            f: Zi
        },
        35: {
            f: If
        },
        38: {
            f: dn
        },
        39: {
            f: dn
        },
        40: {
            f: dn
        },
        41: {
            f: dn
        },
        42: {
            f: Zi
        },
        43: {
            f: Zi
        },
        47: {
            f: pl
        },
        49: {
            f: sf
        },
        51: {
            f: es
        },
        60: {},
        61: {
            f: ef
        },
        64: {
            f: Zi
        },
        65: {
            f: nf
        },
        66: {
            f: es
        },
        77: {},
        80: {},
        81: {},
        82: {},
        85: {
            f: es
        },
        89: {},
        90: {},
        91: {},
        92: {
            f: zs
        },
        93: {
            f: Gf
        },
        94: {},
        95: {
            f: Zi
        },
        96: {},
        97: {},
        99: {
            f: Zi
        },
        125: {
            f: ao
        },
        128: {
            f: Ef
        },
        129: {
            f: Gs
        },
        130: {
            f: es
        },
        131: {
            f: Zi
        },
        132: {
            f: Zi
        },
        133: {
            f: js
        },
        134: {},
        140: {
            f: Zf
        },
        141: {
            f: es
        },
        144: {},
        146: {
            f: ro
        },
        151: {},
        152: {},
        153: {},
        154: {},
        155: {},
        156: {
            f: es
        },
        157: {},
        158: {},
        160: {
            f: lo
        },
        161: {
            f: io
        },
        174: {},
        175: {},
        176: {},
        177: {},
        178: {},
        180: {},
        181: {},
        182: {},
        184: {},
        185: {},
        189: {
            f: bf
        },
        190: {
            f: wf
        },
        193: {
            f: Ki
        },
        197: {},
        198: {},
        199: {},
        200: {},
        201: {},
        202: {
            f: Zi
        },
        203: {},
        204: {},
        205: {},
        206: {},
        207: {},
        208: {},
        209: {},
        210: {},
        211: {},
        213: {},
        215: {},
        216: {},
        217: {},
        218: {
            f: es
        },
        220: {},
        221: {
            f: Zi
        },
        222: {},
        224: {
            f: Tf
        },
        225: {
            f: Hs
        },
        226: {
            f: Ki
        },
        227: {},
        229: {
            f: zf
        },
        233: {},
        235: {},
        236: {},
        237: {},
        239: {},
        240: {},
        241: {},
        242: {},
        244: {},
        245: {},
        246: {},
        247: {},
        248: {},
        249: {},
        251: {},
        252: {
            f: $s
        },
        253: {
            f: of
        },
        255: {
            f: Ks
        },
        256: {},
        259: {},
        290: {},
        311: {},
        312: {},
        315: {},
        317: {
            f: ts
        },
        318: {},
        319: {},
        320: {},
        330: {},
        331: {},
        333: {},
        334: {},
        335: {},
        336: {},
        337: {},
        338: {},
        339: {},
        340: {},
        351: {},
        352: {
            f: Zi
        },
        353: {
            f: Ki
        },
        401: {},
        402: {},
        403: {},
        404: {},
        405: {},
        406: {},
        407: {},
        408: {},
        425: {},
        426: {},
        427: {},
        428: {},
        429: {},
        430: {
            f: Rf
        },
        431: {
            f: Zi
        },
        432: {},
        433: {},
        434: {},
        437: {},
        438: {
            f: $f
        },
        439: {
            f: Zi
        },
        440: {
            f: Yf
        },
        441: {},
        442: {
            f: ls
        },
        443: {},
        444: {
            f: es
        },
        445: {},
        446: {},
        448: {
            f: Ki
        },
        449: {
            f: Zs,
            r: 2
        },
        450: {
            f: Ki
        },
        512: {
            f: pf
        },
        513: {
            f: oo
        },
        515: {
            f: _f
        },
        516: {
            f: cf
        },
        517: {
            f: yf
        },
        519: {
            f: co
        },
        520: {
            f: Js
        },
        523: {},
        545: {
            f: Uf
        },
        549: {
            f: Qs
        },
        566: {},
        574: {
            f: tf
        },
        638: {
            f: mf
        },
        659: {},
        1048: {},
        1054: {
            f: uf
        },
        1084: {},
        1212: {
            f: Mf
        },
        2048: {
            f: Jf
        },
        2049: {},
        2050: {},
        2051: {},
        2052: {},
        2053: {},
        2054: {},
        2055: {},
        2056: {},
        2057: {
            f: Bs
        },
        2058: {},
        2059: {},
        2060: {},
        2061: {},
        2062: {},
        2063: {},
        2064: {},
        2066: {},
        2067: {},
        2128: {},
        2129: {},
        2130: {},
        2131: {},
        2132: {},
        2133: {},
        2134: {},
        2135: {},
        2136: {},
        2137: {},
        2138: {},
        2146: {},
        2147: {
            r: 12
        },
        2148: {},
        2149: {},
        2150: {},
        2151: {
            f: Ki
        },
        2152: {},
        2154: {},
        2155: {},
        2156: {},
        2161: {},
        2162: {},
        2164: {},
        2165: {},
        2166: {},
        2167: {},
        2168: {},
        2169: {},
        2170: {},
        2171: {},
        2172: {
            f: to,
            r: 12
        },
        2173: {
            f: Uc,
            r: 12
        },
        2174: {},
        2175: {},
        2180: {},
        2181: {},
        2182: {},
        2183: {},
        2184: {},
        2185: {},
        2186: {},
        2187: {},
        2188: {
            f: Zi,
            r: 12
        },
        2189: {},
        2190: {
            r: 12
        },
        2191: {},
        2192: {},
        2194: {},
        2195: {},
        2196: {
            f: Lf,
            r: 12
        },
        2197: {},
        2198: {
            f: Nc,
            r: 12
        },
        2199: {},
        2200: {},
        2201: {},
        2202: {
            f: Bf,
            r: 12
        },
        2203: {
            f: Ki
        },
        2204: {},
        2205: {},
        2206: {},
        2207: {},
        2211: {
            f: qs
        },
        2212: {},
        2213: {},
        2214: {},
        2215: {},
        4097: {},
        4098: {},
        4099: {},
        4102: {},
        4103: {},
        4105: {},
        4106: {},
        4107: {},
        4108: {},
        4109: {},
        4116: {},
        4117: {},
        4118: {},
        4119: {},
        4120: {},
        4121: {},
        4122: {},
        4123: {},
        4124: {},
        4125: {},
        4126: {},
        4127: {},
        4128: {},
        4129: {},
        4130: {},
        4132: {},
        4133: {},
        4134: {
            f: es
        },
        4135: {},
        4146: {},
        4147: {},
        4148: {},
        4149: {},
        4154: {},
        4156: {},
        4157: {},
        4158: {},
        4159: {},
        4160: {},
        4161: {},
        4163: {},
        4164: {
            f: so
        },
        4165: {},
        4166: {},
        4168: {},
        4170: {},
        4171: {},
        4174: {},
        4175: {},
        4176: {},
        4177: {},
        4187: {},
        4188: {
            f: eo
        },
        4189: {},
        4191: {},
        4192: {},
        4193: {},
        4194: {},
        4195: {},
        4196: {},
        4197: {},
        4198: {},
        4199: {},
        4200: {},
        0: {
            f: pf
        },
        1: {},
        2: {
            f: go
        },
        3: {
            f: vo
        },
        4: {
            f: uo
        },
        5: {
            f: yf
        },
        7: {
            f: bo
        },
        8: {},
        9: {
            f: Bs
        },
        11: {},
        22: {
            f: es
        },
        30: {
            f: vf
        },
        31: {},
        32: {},
        33: {
            f: Uf
        },
        36: {},
        37: {
            f: Qs
        },
        50: {
            f: wo
        },
        62: {},
        52: {},
        67: {},
        68: {
            f: es
        },
        69: {},
        86: {},
        126: {},
        127: {
            f: ho
        },
        135: {},
        136: {},
        137: {},
        145: {},
        148: {},
        149: {},
        150: {},
        169: {},
        171: {},
        188: {},
        191: {},
        192: {},
        194: {},
        195: {},
        214: {
            f: ko
        },
        223: {},
        234: {},
        354: {},
        421: {},
        518: {
            f: vd
        },
        521: {
            f: Bs
        },
        536: {
            f: Df
        },
        547: {
            f: If
        },
        561: {},
        579: {},
        1030: {
            f: vd
        },
        1033: {
            f: Bs
        },
        1091: {},
        2157: {},
        2163: {},
        2177: {},
        2240: {},
        2241: {},
        2242: {},
        2243: {},
        2244: {},
        2245: {},
        2246: {},
        2247: {},
        2248: {},
        2249: {},
        2250: {},
        2251: {},
        2262: {
            r: 12
        },
        29282: {}
    };
    function bm(e, r, t, a) {
        var n = r;
        if (isNaN(n))
            return;
        var i = a || (t || []).length || 0;
        var s = e.next(4);
        s._W(2, n);
        s._W(2, i);
        if (i > 0 && Jt(t))
            e.push(t)
    }
    function wm(e, r, t, a) {
        var n = a || (t || []).length || 0;
        if (n <= 8224)
            return bm(e, r, t, n);
        var i = r;
        if (isNaN(i))
            return;
        var s = t.parts || []
          , f = 0;
        var o = 0
          , l = 0;
        while (l + (s[f] || 8224) <= 8224) {
            l += s[f] || 8224;
            f++
        }
        var c = e.next(4);
        c._W(2, i);
        c._W(2, l);
        e.push(t.slice(o, o + l));
        o += l;
        while (o < n) {
            c = e.next(4);
            c._W(2, 60);
            l = 0;
            while (l + (s[f] || 8224) <= 8224) {
                l += s[f] || 8224;
                f++
            }
            c._W(2, l);
            e.push(t.slice(o, o + l));
            o += l
        }
    }
    function km(e, r, t) {
        if (!e)
            e = ua(7);
        e._W(2, r);
        e._W(2, t);
        e._W(2, 0);
        e._W(1, 0);
        return e
    }
    function Tm(e, r, t, a) {
        var n = ua(9);
        km(n, e, r);
        ns(t, a || "b", n);
        return n
    }
    function Am(e, r, t) {
        var a = ua(8 + 2 * t.length);
        km(a, e, r);
        a._W(1, t.length);
        a._W(t.length, t, "sbcs");
        return a.l < a.length ? a.slice(0, a.l) : a
    }
    function Em(e, r, t, a) {
        if (r.v != null)
            switch (r.t) {
            case "d":
                ;
            case "n":
                var n = r.t == "d" ? fr(gr(r.v)) : r.v;
                if (n == (n | 0) && n >= 0 && n < 65536)
                    bm(e, 2, mo(t, a, n));
                else
                    bm(e, 3, po(t, a, n));
                return;
            case "b":
                ;
            case "e":
                bm(e, 5, Tm(t, a, r.v, r.t));
                return;
            case "s":
                ;
            case "str":
                bm(e, 4, Am(t, a, (r.v || "").slice(0, 255)));
                return;
            }
        bm(e, 1, km(null, t, a))
    }
    function Cm(e, r, t, a) {
        var n = Array.isArray(r);
        var i = Da(r["!ref"] || "A1"), s, f = "", o = [];
        if (i.e.c > 255 || i.e.r > 16383) {
            if (a.WTF)
                throw new Error("Range " + (r["!ref"] || "A1") + " exceeds format limit A1:IV16384");
            i.e.c = Math.min(i.e.c, 255);
            i.e.r = Math.min(i.e.c, 16383);
            s = Na(i)
        }
        for (var l = i.s.r; l <= i.e.r; ++l) {
            f = Ta(l);
            for (var c = i.s.c; c <= i.e.c; ++c) {
                if (l === i.s.r)
                    o[c] = ya(c);
                s = o[c] + f;
                var h = n ? (r[l] || [])[c] : r[s];
                if (!h)
                    continue;
                Em(e, h, l, c, a)
            }
        }
    }
    function ym(e, r) {
        var t = r || {};
        if (g != null && t.dense == null)
            t.dense = g;
        var a = va();
        var n = 0;
        for (var i = 0; i < e.SheetNames.length; ++i)
            if (e.SheetNames[i] == t.sheet)
                n = i;
        if (n == 0 && !!t.sheet && e.SheetNames[0] != t.sheet)
            throw new Error("Sheet not found: " + t.sheet);
        bm(a, t.biff == 4 ? 1033 : t.biff == 3 ? 521 : 9, Ws(e, 16, t));
        Cm(a, e.Sheets[e.SheetNames[n]], n, t, e);
        bm(a, 10);
        return a.end()
    }
    function Sm(e, r, t) {
        bm(e, 49, ff({
            sz: 12,
            color: {
                theme: 1
            },
            name: "Arial",
            family: 2,
            scheme: "minor"
        }, t))
    }
    function _m(e, r, t) {
        if (!r)
            return;
        [[5, 8], [23, 26], [41, 44], [50, 392]].forEach(function(a) {
            for (var n = a[0]; n <= a[1]; ++n)
                if (r[n] != null)
                    bm(e, 1054, df(n, r[n], t))
        })
    }
    function xm(e, r) {
        var t = ua(19);
        t._W(4, 2151);
        t._W(4, 0);
        t._W(4, 0);
        t._W(2, 3);
        t._W(1, 1);
        t._W(4, 0);
        bm(e, 2151, t);
        t = ua(39);
        t._W(4, 2152);
        t._W(4, 0);
        t._W(4, 0);
        t._W(2, 3);
        t._W(1, 0);
        t._W(4, 0);
        t._W(2, 1);
        t._W(4, 4);
        t._W(2, 0);
        Rs(Da(r["!ref"] || "A1"), t);
        t._W(4, 4);
        bm(e, 2152, t)
    }
    function Om(e, r) {
        for (var t = 0; t < 16; ++t)
            bm(e, 224, Af({
                numFmtId: 0,
                style: true
            }, 0, r));
        r.cellXfs.forEach(function(t) {
            bm(e, 224, Af(t, 0, r))
        })
    }
    function Rm(e, r) {
        for (var t = 0; t < r["!links"].length; ++t) {
            var a = r["!links"][t];
            bm(e, 440, Kf(a));
            if (a[1].Tooltip)
                bm(e, 2048, qf(a))
        }
        delete r["!links"]
    }
    function Im(e, r) {
        if (!r)
            return;
        var t = 0;
        r.forEach(function(r, a) {
            if (++t <= 256 && r) {
                bm(e, 125, no(Nd(a, r), a))
            }
        })
    }
    function Nm(e, r, t, a, n) {
        var i = 16 + Fd(n.cellXfs, r, n);
        if (r.v == null && !r.bf) {
            bm(e, 513, Es(t, a, i));
            return
        }
        if (r.bf)
            bm(e, 6, pd(r, t, a, n, i));
        else
            switch (r.t) {
            case "d":
                ;
            case "n":
                var s = r.t == "d" ? fr(gr(r.v)) : r.v;
                bm(e, 515, xf(t, a, s, i, n));
                break;
            case "b":
                ;
            case "e":
                bm(e, 517, Sf(t, a, r.v, i, n, r.t));
                break;
            case "s":
                ;
            case "str":
                if (n.bookSST) {
                    var f = Id(n.Strings, r.v, n.revStrings);
                    bm(e, 253, lf(t, a, f, i, n))
                } else
                    bm(e, 516, hf(t, a, (r.v || "").slice(0, 255), i, n));
                break;
            default:
                bm(e, 513, Es(t, a, i));
            }
    }
    function Dm(e, r, t) {
        var a = va();
        var n = t.SheetNames[e]
          , i = t.Sheets[n] || {};
        var s = (t || {}).Workbook || {};
        var f = (s.Sheets || [])[e] || {};
        var o = Array.isArray(i);
        var l = r.biff == 8;
        var c, h = "", u = [];
        var d = Da(i["!ref"] || "A1");
        var v = l ? 65536 : 16384;
        if (d.e.c > 255 || d.e.r >= v) {
            if (r.WTF)
                throw new Error("Range " + (i["!ref"] || "A1") + " exceeds format limit A1:IV16384");
            d.e.c = Math.min(d.e.c, 255);
            d.e.r = Math.min(d.e.c, v - 1)
        }
        bm(a, 2057, Ws(t, 16, r));
        bm(a, 13, rs(1));
        bm(a, 12, rs(100));
        bm(a, 15, Qi(true));
        bm(a, 17, Qi(false));
        bm(a, 16, vn(.001));
        bm(a, 95, Qi(true));
        bm(a, 42, Qi(false));
        bm(a, 43, Qi(false));
        bm(a, 130, rs(1));
        bm(a, 128, Cf([0, 0]));
        bm(a, 131, Qi(false));
        bm(a, 132, Qi(false));
        if (l)
            Im(a, i["!cols"]);
        bm(a, 512, gf(d, r));
        if (l)
            i["!links"] = [];
        for (var p = d.s.r; p <= d.e.r; ++p) {
            h = Ta(p);
            for (var g = d.s.c; g <= d.e.c; ++g) {
                if (p === d.s.r)
                    u[g] = ya(g);
                c = u[g] + h;
                var m = o ? (i[p] || [])[g] : i[c];
                if (!m)
                    continue;
                Nm(a, m, p, g, r);
                if (l && m.l)
                    i["!links"].push([c, m.l])
            }
        }
        var b = f.CodeName || f.name || n;
        if (l)
            bm(a, 574, af((s.Views || [])[0]));
        if (l && (i["!merges"] || []).length)
            bm(a, 229, Vf(i["!merges"]));
        if (l)
            Rm(a, i);
        bm(a, 442, hs(b, r));
        if (l)
            xm(a, i);
        bm(a, 10);
        return a.end()
    }
    function Fm(e, r, t) {
        var a = va();
        var n = (e || {}).Workbook || {};
        var i = n.Sheets || [];
        var s = n.WBProps || {};
        var f = t.biff == 8
          , o = t.biff == 5;
        bm(a, 2057, Ws(e, 5, t));
        if (t.bookType == "xla")
            bm(a, 135);
        bm(a, 225, f ? rs(1200) : null);
        bm(a, 193, Ji(2));
        if (o)
            bm(a, 191);
        if (o)
            bm(a, 192);
        bm(a, 226);
        bm(a, 92, Vs("SheetJS", t));
        bm(a, 66, rs(f ? 1200 : 1252));
        if (f)
            bm(a, 353, rs(0));
        if (f)
            bm(a, 448);
        bm(a, 317, fo(e.SheetNames.length));
        if (f && e.vbaraw)
            bm(a, 211);
        if (f && e.vbaraw) {
            var l = s.CodeName || "ThisWorkbook";
            bm(a, 442, hs(l, t))
        }
        bm(a, 156, rs(17));
        bm(a, 25, Qi(false));
        bm(a, 18, Qi(false));
        bm(a, 19, rs(0));
        if (f)
            bm(a, 431, Qi(false));
        if (f)
            bm(a, 444, rs(0));
        bm(a, 61, rf(t));
        bm(a, 64, Qi(false));
        bm(a, 141, rs(0));
        bm(a, 34, Qi(Yp(e) == "true"));
        bm(a, 14, Qi(true));
        if (f)
            bm(a, 439, Qi(false));
        bm(a, 218, rs(0));
        Sm(a, e, t);
        _m(a, e.SSF, t);
        Om(a, t);
        if (f)
            bm(a, 352, Qi(false));
        var c = a.end();
        var h = va();
        if (f)
            bm(h, 140, Qf());
        if (f && t.Strings)
            wm(h, 252, Ys(t.Strings, t));
        bm(h, 10);
        var u = h.end();
        var d = va();
        var v = 0
          , p = 0;
        for (p = 0; p < e.SheetNames.length; ++p)
            v += (f ? 12 : 11) + (f ? 2 : 1) * e.SheetNames[p].length;
        var g = c.length + v + u.length;
        for (p = 0; p < e.SheetNames.length; ++p) {
            var m = i[p] || {};
            bm(d, 133, Xs({
                pos: g,
                hs: m.Hidden || 0,
                dt: 0,
                name: e.SheetNames[p]
            }, t));
            g += r[p].length
        }
        var b = d.end();
        if (v != b.length)
            throw new Error("BS8 " + v + " != " + b.length);
        var w = [];
        if (c.length)
            w.push(c);
        if (b.length)
            w.push(b);
        if (u.length)
            w.push(u);
        return R(w)
    }
    function Pm(e, r) {
        var t = r || {};
        var a = [];
        if (e && !e.SSF) {
            e.SSF = br(X)
        }
        if (e && e.SSF) {
            ze();
            He(e.SSF);
            t.revssf = nr(e.SSF);
            t.revssf[e.SSF[65535]] = 0;
            t.ssf = e.SSF
        }
        t.Strings = [];
        t.Strings.Count = 0;
        t.Strings.Unique = 0;
        Hb(t);
        t.cellXfs = [];
        Fd(t.cellXfs, {}, {
            revssf: {
                General: 0
            }
        });
        if (!e.Props)
            e.Props = {};
        for (var n = 0; n < e.SheetNames.length; ++n)
            a[a.length] = Dm(n, t, e);
        a.unshift(Fm(e, a, t));
        return R(a)
    }
    function Lm(e, r) {
        for (var t = 0; t <= e.SheetNames.length; ++t) {
            var a = e.Sheets[e.SheetNames[t]];
            if (!a || !a["!ref"])
                continue;
            var n = Ia(a["!ref"]);
            if (n.e.c > 255) {
                if (typeof console != "undefined" && console.error)
                    console.error("Worksheet '" + e.SheetNames[t] + "' extends beyond column IV (255).  Data may be lost.")
            }
        }
        var i = r || {};
        switch (i.biff || 2) {
        case 8:
            ;
        case 5:
            return Pm(e, r);
        case 4:
            ;
        case 3:
            ;
        case 2:
            return ym(e, r);
        }
        throw new Error("invalid type " + i.bookType + " for BIFF")
    }
    function Mm(e, r) {
        var t = r || {};
        if (g != null && t.dense == null)
            t.dense = g;
        var a = t.dense ? [] : {};
        e = e.replace(/<!--.*?-->/g, "");
        var n = e.match(/<table/i);
        if (!n)
            throw new Error("Invalid HTML: could not find <table>");
        var i = e.match(/<\/table/i);
        var s = n.index
          , f = i && i.index || e.length;
        var o = Er(e.slice(s, f), /(:?<tr[^>]*>)/i, "<tr>");
        var l = -1
          , c = 0
          , h = 0
          , u = 0;
        var d = {
            s: {
                r: 1e7,
                c: 1e7
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var v = [];
        for (s = 0; s < o.length; ++s) {
            var p = o[s].trim();
            var m = p.slice(0, 3).toLowerCase();
            if (m == "<tr") {
                ++l;
                if (t.sheetRows && t.sheetRows <= l) {
                    --l;
                    break
                }
                c = 0;
                continue
            }
            if (m != "<td" && m != "<th")
                continue;
            var b = p.split(/<\/t[dh]>/i);
            for (f = 0; f < b.length; ++f) {
                var w = b[f].trim();
                if (!w.match(/<t[dh]/i))
                    continue;
                var k = w
                  , T = 0;
                while (k.charAt(0) == "<" && (T = k.indexOf(">")) > -1)
                    k = k.slice(T + 1);
                for (var A = 0; A < v.length; ++A) {
                    var E = v[A];
                    if (E.s.c == c && E.s.r < l && l <= E.e.r) {
                        c = E.e.c + 1;
                        A = -1
                    }
                }
                var C = Gr(w.slice(0, w.indexOf(">")));
                u = C.colspan ? +C.colspan : 1;
                if ((h = +C.rowspan) > 1 || u > 1)
                    v.push({
                        s: {
                            r: l,
                            c: c
                        },
                        e: {
                            r: l + (h || 1) - 1,
                            c: c + u - 1
                        }
                    });
                var y = C.t || C["data-t"] || "";
                if (!k.length) {
                    c += u;
                    continue
                }
                k = ut(k);
                if (d.s.r > l)
                    d.s.r = l;
                if (d.e.r < l)
                    d.e.r = l;
                if (d.s.c > c)
                    d.s.c = c;
                if (d.e.c < c)
                    d.e.c = c;
                if (!k.length) {
                    c += u;
                    continue
                }
                var S = {
                    t: "s",
                    v: k
                };
                if (t.raw || !k.trim().length || y == "s") {} else if (k === "TRUE")
                    S = {
                        t: "b",
                        v: true
                    };
                else if (k === "FALSE")
                    S = {
                        t: "b",
                        v: false
                    };
                else if (!isNaN(kr(k)))
                    S = {
                        t: "n",
                        v: kr(k)
                    };
                else if (!isNaN(Ar(k).getDate())) {
                    S = {
                        t: "d",
                        v: gr(k)
                    };
                    if (!t.cellDates)
                        S = {
                            t: "n",
                            v: fr(S.v)
                        };
                    S.z = t.dateNF || X[14]
                }
                if (t.dense) {
                    if (!a[l])
                        a[l] = [];
                    a[l][c] = S
                } else
                    a[Ra({
                        r: l,
                        c: c
                    })] = S;
                c += u
            }
        }
        a["!ref"] = Na(d);
        if (v.length)
            a["!merges"] = v;
        return a
    }
    function Um(e, r, t, a) {
        var n = e["!merges"] || [];
        var i = [];
        for (var s = r.s.c; s <= r.e.c; ++s) {
            var f = 0
              , o = 0;
            for (var l = 0; l < n.length; ++l) {
                if (n[l].s.r > t || n[l].s.c > s)
                    continue;
                if (n[l].e.r < t || n[l].e.c < s)
                    continue;
                if (n[l].s.r < t || n[l].s.c < s) {
                    f = -1;
                    break
                }
                f = n[l].e.r - n[l].s.r + 1;
                o = n[l].e.c - n[l].s.c + 1;
                break
            }
            if (f < 0)
                continue;
            var c = Ra({
                r: t,
                c: s
            });
            var h = a.dense ? (e[t] || [])[s] : e[c];
            var u = h && h.v != null && (h.h || et(h.w || (Pa(h),
            h.w) || "")) || "";
            var d = {};
            if (f > 1)
                d.rowspan = f;
            if (o > 1)
                d.colspan = o;
            if (a.editable)
                u = '<span contenteditable="true">' + u + "</span>";
            else if (h) {
                d["data-t"] = h && h.t || "z";
                if (h.v != null)
                    d["data-v"] = h.v;
                if (h.z != null)
                    d["data-z"] = h.z;
                if (h.l && (h.l.Target || "#").charAt(0) != "#")
                    u = '<a href="' + h.l.Target + '">' + u + "</a>"
            }
            d.id = (a.id || "sjs") + "-" + c;
            i.push(kt("td", u, d))
        }
        var v = "<tr>";
        return v + i.join("") + "</tr>"
    }
    var Bm = '<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body>';
    var Wm = "</body></html>";
    function Hm(e, r) {
        var t = e.match(/<table[\s\S]*?>[\s\S]*?<\/table>/gi);
        if (!t || t.length == 0)
            throw new Error("Invalid HTML: could not find <table>");
        if (t.length == 1)
            return La(Mm(t[0], r), r);
        var a = Nw();
        t.forEach(function(e, t) {
            Dw(a, Mm(e, r), "Sheet" + (t + 1))
        });
        return a
    }
    function zm(e, r, t) {
        var a = [];
        return a.join("") + "<table" + (t && t.id ? ' id="' + t.id + '"' : "") + ">"
    }
    function Vm(e, r) {
        var t = r || {};
        var a = t.header != null ? t.header : Bm;
        var n = t.footer != null ? t.footer : Wm;
        var i = [a];
        var s = Ia(e["!ref"]);
        t.dense = Array.isArray(e);
        i.push(zm(e, s, t));
        for (var f = s.s.r; f <= s.e.r; ++f)
            i.push(Um(e, s, f, t));
        i.push("</table>" + n);
        return i.join("")
    }
    function Gm(e, r, t) {
        var a = t || {};
        if (g != null)
            a.dense = g;
        var n = 0
          , i = 0;
        if (a.origin != null) {
            if (typeof a.origin == "number")
                n = a.origin;
            else {
                var s = typeof a.origin == "string" ? Oa(a.origin) : a.origin;
                n = s.r;
                i = s.c
            }
        }
        var f = r.getElementsByTagName("tr");
        var o = Math.min(a.sheetRows || 1e7, f.length);
        var l = {
            s: {
                r: 0,
                c: 0
            },
            e: {
                r: n,
                c: i
            }
        };
        if (e["!ref"]) {
            var c = Ia(e["!ref"]);
            l.s.r = Math.min(l.s.r, c.s.r);
            l.s.c = Math.min(l.s.c, c.s.c);
            l.e.r = Math.max(l.e.r, c.e.r);
            l.e.c = Math.max(l.e.c, c.e.c);
            if (n == -1)
                l.e.r = n = c.e.r + 1
        }
        var h = []
          , u = 0;
        var d = e["!rows"] || (e["!rows"] = []);
        var v = 0
          , p = 0
          , m = 0
          , b = 0
          , w = 0
          , k = 0;
        if (!e["!cols"])
            e["!cols"] = [];
        for (; v < f.length && p < o; ++v) {
            var T = f[v];
            if ($m(T)) {
                if (a.display)
                    continue;
                d[p] = {
                    hidden: true
                }
            }
            var A = T.children;
            for (m = b = 0; m < A.length; ++m) {
                var E = A[m];
                if (a.display && $m(E))
                    continue;
                var C = E.hasAttribute("data-v") ? E.getAttribute("data-v") : E.hasAttribute("v") ? E.getAttribute("v") : ut(E.innerHTML);
                var y = E.getAttribute("data-z") || E.getAttribute("z");
                for (u = 0; u < h.length; ++u) {
                    var S = h[u];
                    if (S.s.c == b + i && S.s.r < p + n && p + n <= S.e.r) {
                        b = S.e.c + 1 - i;
                        u = -1
                    }
                }
                k = +E.getAttribute("colspan") || 1;
                if ((w = +E.getAttribute("rowspan") || 1) > 1 || k > 1)
                    h.push({
                        s: {
                            r: p + n,
                            c: b + i
                        },
                        e: {
                            r: p + n + (w || 1) - 1,
                            c: b + i + (k || 1) - 1
                        }
                    });
                var _ = {
                    t: "s",
                    v: C
                };
                var x = E.getAttribute("data-t") || E.getAttribute("t") || "";
                if (C != null) {
                    if (C.length == 0)
                        _.t = x || "z";
                    else if (a.raw || C.trim().length == 0 || x == "s") {} else if (C === "TRUE")
                        _ = {
                            t: "b",
                            v: true
                        };
                    else if (C === "FALSE")
                        _ = {
                            t: "b",
                            v: false
                        };
                    else if (!isNaN(kr(C)))
                        _ = {
                            t: "n",
                            v: kr(C)
                        };
                    else if (!isNaN(Ar(C).getDate())) {
                        _ = {
                            t: "d",
                            v: gr(C)
                        };
                        if (!a.cellDates)
                            _ = {
                                t: "n",
                                v: fr(_.v)
                            };
                        _.z = a.dateNF || X[14]
                    }
                }
                if (_.z === undefined && y != null)
                    _.z = y;
                var O = ""
                  , R = E.getElementsByTagName("A");
                if (R && R.length)
                    for (var I = 0; I < R.length; ++I)
                        if (R[I].hasAttribute("href")) {
                            O = R[I].getAttribute("href");
                            if (O.charAt(0) != "#")
                                break
                        }
                if (O && O.charAt(0) != "#")
                    _.l = {
                        Target: O
                    };
                if (a.dense) {
                    if (!e[p + n])
                        e[p + n] = [];
                    e[p + n][b + i] = _
                } else
                    e[Ra({
                        c: b + i,
                        r: p + n
                    })] = _;
                if (l.e.c < b + i)
                    l.e.c = b + i;
                b += k
            }
            ++p
        }
        if (h.length)
            e["!merges"] = (e["!merges"] || []).concat(h);
        l.e.r = Math.max(l.e.r, p - 1 + n);
        e["!ref"] = Na(l);
        if (p >= o)
            e["!fullref"] = Na((l.e.r = f.length - v + p - 1 + n,
            l));
        return e
    }
    function jm(e, r) {
        var t = r || {};
        var a = t.dense ? [] : {};
        return Gm(a, e, r)
    }
    function Xm(e, r) {
        return La(jm(e, r), r)
    }
    function $m(e) {
        var r = "";
        var t = Ym(e);
        if (t)
            r = t(e).getPropertyValue("display");
        if (!r)
            r = e.style && e.style.display;
        return r === "none"
    }
    function Ym(e) {
        if (e.ownerDocument.defaultView && typeof e.ownerDocument.defaultView.getComputedStyle === "function")
            return e.ownerDocument.defaultView.getComputedStyle;
        if (typeof getComputedStyle === "function")
            return getComputedStyle;
        return null
    }
    function Km(e) {
        var r = e.replace(/[\t\r\n]/g, " ").trim().replace(/ +/g, " ").replace(/<text:s\/>/g, " ").replace(/<text:s text:c="(\d+)"\/>/g, function(e, r) {
            return Array(parseInt(r, 10) + 1).join(" ")
        }).replace(/<text:tab[^>]*\/>/g, "\t").replace(/<text:line-break\/>/g, "\n");
        var t = Yr(r.replace(/<[^>]*>/g, ""));
        return [t]
    }
    var Jm = {
        day: ["d", "dd"],
        month: ["m", "mm"],
        year: ["y", "yy"],
        hours: ["h", "hh"],
        minutes: ["m", "mm"],
        seconds: ["s", "ss"],
        "am-pm": ["A/P", "AM/PM"],
        "day-of-week": ["ddd", "dddd"],
        era: ["e", "ee"],
        quarter: ["\\Qm", 'm\\"th quarter"']
    };
    function qm(e, r) {
        var t = r || {};
        if (g != null && t.dense == null)
            t.dense = g;
        var a = Et(e);
        var n = [], i;
        var s;
        var f = {
            name: ""
        }
          , o = ""
          , l = 0;
        var c;
        var h;
        var u = {}
          , d = [];
        var v = t.dense ? [] : {};
        var p, m;
        var b = {
            value: ""
        };
        var w = "", k = 0, T;
        var A = [];
        var E = -1
          , C = -1
          , y = {
            s: {
                r: 1e6,
                c: 1e7
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var S = 0;
        var _ = {};
        var x = []
          , O = {}
          , R = 0
          , I = 0;
        var N = []
          , D = 1
          , F = 1;
        var P = [];
        var L = {
            Names: []
        };
        var M = {};
        var U = ["", ""];
        var B = []
          , W = {};
        var H = ""
          , z = 0;
        var V = false
          , G = false;
        var j = 0;
        Ct.lastIndex = 0;
        a = a.replace(/<!--([\s\S]*?)-->/gm, "").replace(/<!DOCTYPE[^\[]*\[[^\]]*\]>/gm, "");
        while (p = Ct.exec(a))
            switch (p[3] = p[3].replace(/_.*$/, "")) {
            case "table":
                ;
            case "工作表":
                if (p[1] === "/") {
                    if (y.e.c >= y.s.c && y.e.r >= y.s.r)
                        v["!ref"] = Na(y);
                    else
                        v["!ref"] = "A1:A1";
                    if (t.sheetRows > 0 && t.sheetRows <= y.e.r) {
                        v["!fullref"] = v["!ref"];
                        y.e.r = t.sheetRows - 1;
                        v["!ref"] = Na(y)
                    }
                    if (x.length)
                        v["!merges"] = x;
                    if (N.length)
                        v["!rows"] = N;
                    c.name = c["名称"] || c.name;
                    if (typeof JSON !== "undefined")
                        JSON.stringify(c);
                    d.push(c.name);
                    u[c.name] = v;
                    G = false
                } else if (p[0].charAt(p[0].length - 2) !== "/") {
                    c = Gr(p[0], false);
                    E = C = -1;
                    y.s.r = y.s.c = 1e7;
                    y.e.r = y.e.c = 0;
                    v = t.dense ? [] : {};
                    x = [];
                    N = [];
                    G = true
                }
                break;
            case "table-row-group":
                if (p[1] === "/")
                    --S;
                else
                    ++S;
                break;
            case "table-row":
                ;
            case "行":
                if (p[1] === "/") {
                    E += D;
                    D = 1;
                    break
                }
                h = Gr(p[0], false);
                if (h["行号"])
                    E = h["行号"] - 1;
                else if (E == -1)
                    E = 0;
                D = +h["number-rows-repeated"] || 1;
                if (D < 10)
                    for (j = 0; j < D; ++j)
                        if (S > 0)
                            N[E + j] = {
                                level: S
                            };
                C = -1;
                break;
            case "covered-table-cell":
                if (p[1] !== "/")
                    ++C;
                if (t.sheetStubs) {
                    if (t.dense) {
                        if (!v[E])
                            v[E] = [];
                        v[E][C] = {
                            t: "z"
                        }
                    } else
                        v[Ra({
                            r: E,
                            c: C
                        })] = {
                            t: "z"
                        }
                }
                w = "";
                A = [];
                break;
            case "table-cell":
                ;
            case "数据":
                if (p[0].charAt(p[0].length - 2) === "/") {
                    ++C;
                    b = Gr(p[0], false);
                    F = parseInt(b["number-columns-repeated"] || "1", 10);
                    m = {
                        t: "z",
                        v: null
                    };
                    if (b.formula && t.cellFormula != false)
                        m.f = Cd(Yr(b.formula));
                    if ((b["数据类型"] || b["value-type"]) == "string") {
                        m.t = "s";
                        m.v = Yr(b["string-value"] || "");
                        if (t.dense) {
                            if (!v[E])
                                v[E] = [];
                            v[E][C] = m
                        } else {
                            v[Ra({
                                r: E,
                                c: C
                            })] = m
                        }
                    }
                    C += F - 1
                } else if (p[1] !== "/") {
                    ++C;
                    w = "";
                    k = 0;
                    A = [];
                    F = 1;
                    var X = D ? E + D - 1 : E;
                    if (C > y.e.c)
                        y.e.c = C;
                    if (C < y.s.c)
                        y.s.c = C;
                    if (E < y.s.r)
                        y.s.r = E;
                    if (X > y.e.r)
                        y.e.r = X;
                    b = Gr(p[0], false);
                    B = [];
                    W = {};
                    m = {
                        t: b["数据类型"] || b["value-type"],
                        v: null
                    };
                    if (t.cellFormula) {
                        if (b.formula)
                            b.formula = Yr(b.formula);
                        if (b["number-matrix-columns-spanned"] && b["number-matrix-rows-spanned"]) {
                            R = parseInt(b["number-matrix-rows-spanned"], 10) || 0;
                            I = parseInt(b["number-matrix-columns-spanned"], 10) || 0;
                            O = {
                                s: {
                                    r: E,
                                    c: C
                                },
                                e: {
                                    r: E + R - 1,
                                    c: C + I - 1
                                }
                            };
                            m.F = Na(O);
                            P.push([O, m.F])
                        }
                        if (b.formula)
                            m.f = Cd(b.formula);
                        else
                            for (j = 0; j < P.length; ++j)
                                if (E >= P[j][0].s.r && E <= P[j][0].e.r)
                                    if (C >= P[j][0].s.c && C <= P[j][0].e.c)
                                        m.F = P[j][1]
                    }
                    if (b["number-columns-spanned"] || b["number-rows-spanned"]) {
                        R = parseInt(b["number-rows-spanned"], 10) || 0;
                        I = parseInt(b["number-columns-spanned"], 10) || 0;
                        O = {
                            s: {
                                r: E,
                                c: C
                            },
                            e: {
                                r: E + R - 1,
                                c: C + I - 1
                            }
                        };
                        x.push(O)
                    }
                    if (b["number-columns-repeated"])
                        F = parseInt(b["number-columns-repeated"], 10);
                    switch (m.t) {
                    case "boolean":
                        m.t = "b";
                        m.v = nt(b["boolean-value"]);
                        break;
                    case "float":
                        m.t = "n";
                        m.v = parseFloat(b.value);
                        break;
                    case "percentage":
                        m.t = "n";
                        m.v = parseFloat(b.value);
                        break;
                    case "currency":
                        m.t = "n";
                        m.v = parseFloat(b.value);
                        break;
                    case "date":
                        m.t = "d";
                        m.v = gr(b["date-value"]);
                        if (!t.cellDates) {
                            m.t = "n";
                            m.v = fr(m.v)
                        }
                        m.z = "m/d/yy";
                        break;
                    case "time":
                        m.t = "n";
                        m.v = ur(b["time-value"]) / 86400;
                        if (t.cellDates) {
                            m.t = "d";
                            m.v = hr(m.v)
                        }
                        m.z = "HH:MM:SS";
                        break;
                    case "number":
                        m.t = "n";
                        m.v = parseFloat(b["数据数值"]);
                        break;
                    default:
                        if (m.t === "string" || m.t === "text" || !m.t) {
                            m.t = "s";
                            if (b["string-value"] != null) {
                                w = Yr(b["string-value"]);
                                A = []
                            }
                        } else
                            throw new Error("Unsupported value type " + m.t);
                    }
                } else {
                    V = false;
                    if (m.t === "s") {
                        m.v = w || "";
                        if (A.length)
                            m.R = A;
                        V = k == 0
                    }
                    if (M.Target)
                        m.l = M;
                    if (B.length > 0) {
                        m.c = B;
                        B = []
                    }
                    if (w && t.cellText !== false)
                        m.w = w;
                    if (V) {
                        m.t = "z";
                        delete m.v
                    }
                    if (!V || t.sheetStubs) {
                        if (!(t.sheetRows && t.sheetRows <= E)) {
                            for (var $ = 0; $ < D; ++$) {
                                F = parseInt(b["number-columns-repeated"] || "1", 10);
                                if (t.dense) {
                                    if (!v[E + $])
                                        v[E + $] = [];
                                    v[E + $][C] = $ == 0 ? m : br(m);
                                    while (--F > 0)
                                        v[E + $][C + F] = br(m)
                                } else {
                                    v[Ra({
                                        r: E + $,
                                        c: C
                                    })] = m;
                                    while (--F > 0)
                                        v[Ra({
                                            r: E + $,
                                            c: C + F
                                        })] = br(m)
                                }
                                if (y.e.c <= C)
                                    y.e.c = C
                            }
                        }
                    }
                    F = parseInt(b["number-columns-repeated"] || "1", 10);
                    C += F - 1;
                    F = 0;
                    m = {};
                    w = "";
                    A = []
                }
                M = {};
                break;
            case "document":
                ;
            case "document-content":
                ;
            case "电子表格文档":
                ;
            case "spreadsheet":
                ;
            case "主体":
                ;
            case "scripts":
                ;
            case "styles":
                ;
            case "font-face-decls":
                ;
            case "master-styles":
                if (p[1] === "/") {
                    if ((i = n.pop())[0] !== p[3])
                        throw "Bad state: " + i
                } else if (p[0].charAt(p[0].length - 2) !== "/")
                    n.push([p[3], true]);
                break;
            case "annotation":
                if (p[1] === "/") {
                    if ((i = n.pop())[0] !== p[3])
                        throw "Bad state: " + i;
                    W.t = w;
                    if (A.length)
                        W.R = A;
                    W.a = H;
                    B.push(W)
                } else if (p[0].charAt(p[0].length - 2) !== "/") {
                    n.push([p[3], false])
                }
                H = "";
                z = 0;
                w = "";
                k = 0;
                A = [];
                break;
            case "creator":
                if (p[1] === "/") {
                    H = a.slice(z, p.index)
                } else
                    z = p.index + p[0].length;
                break;
            case "meta":
                ;
            case "元数据":
                ;
            case "settings":
                ;
            case "config-item-set":
                ;
            case "config-item-map-indexed":
                ;
            case "config-item-map-entry":
                ;
            case "config-item-map-named":
                ;
            case "shapes":
                ;
            case "frame":
                ;
            case "text-box":
                ;
            case "image":
                ;
            case "data-pilot-tables":
                ;
            case "list-style":
                ;
            case "form":
                ;
            case "dde-links":
                ;
            case "event-listeners":
                ;
            case "chart":
                if (p[1] === "/") {
                    if ((i = n.pop())[0] !== p[3])
                        throw "Bad state: " + i
                } else if (p[0].charAt(p[0].length - 2) !== "/")
                    n.push([p[3], false]);
                w = "";
                k = 0;
                A = [];
                break;
            case "scientific-number":
                break;
            case "currency-symbol":
                break;
            case "currency-style":
                break;
            case "number-style":
                ;
            case "percentage-style":
                ;
            case "date-style":
                ;
            case "time-style":
                if (p[1] === "/") {
                    _[f.name] = o;
                    if ((i = n.pop())[0] !== p[3])
                        throw "Bad state: " + i
                } else if (p[0].charAt(p[0].length - 2) !== "/") {
                    o = "";
                    f = Gr(p[0], false);
                    n.push([p[3], true])
                }
                break;
            case "script":
                break;
            case "libraries":
                break;
            case "automatic-styles":
                break;
            case "default-style":
                ;
            case "page-layout":
                break;
            case "style":
                break;
            case "map":
                break;
            case "font-face":
                break;
            case "paragraph-properties":
                break;
            case "table-properties":
                break;
            case "table-column-properties":
                break;
            case "table-row-properties":
                break;
            case "table-cell-properties":
                break;
            case "number":
                switch (n[n.length - 1][0]) {
                case "time-style":
                    ;
                case "date-style":
                    s = Gr(p[0], false);
                    o += Jm[p[3]][s.style === "long" ? 1 : 0];
                    break;
                }
                break;
            case "fraction":
                break;
            case "day":
                ;
            case "month":
                ;
            case "year":
                ;
            case "era":
                ;
            case "day-of-week":
                ;
            case "week-of-year":
                ;
            case "quarter":
                ;
            case "hours":
                ;
            case "minutes":
                ;
            case "seconds":
                ;
            case "am-pm":
                switch (n[n.length - 1][0]) {
                case "time-style":
                    ;
                case "date-style":
                    s = Gr(p[0], false);
                    o += Jm[p[3]][s.style === "long" ? 1 : 0];
                    break;
                }
                break;
            case "boolean-style":
                break;
            case "boolean":
                break;
            case "text-style":
                break;
            case "text":
                if (p[0].slice(-2) === "/>")
                    break;
                else if (p[1] === "/")
                    switch (n[n.length - 1][0]) {
                    case "number-style":
                        ;
                    case "date-style":
                        ;
                    case "time-style":
                        o += a.slice(l, p.index);
                        break;
                    }
                else
                    l = p.index + p[0].length;
                break;
            case "named-range":
                s = Gr(p[0], false);
                U = Sd(s["cell-range-address"]);
                var Y = {
                    Name: s.name,
                    Ref: U[0] + "!" + U[1]
                };
                if (G)
                    Y.Sheet = d.length;
                L.Names.push(Y);
                break;
            case "text-content":
                break;
            case "text-properties":
                break;
            case "embedded-text":
                break;
            case "body":
                ;
            case "电子表格":
                break;
            case "forms":
                break;
            case "table-column":
                break;
            case "table-header-rows":
                break;
            case "table-rows":
                break;
            case "table-column-group":
                break;
            case "table-header-columns":
                break;
            case "table-columns":
                break;
            case "null-date":
                break;
            case "graphic-properties":
                break;
            case "calculation-settings":
                break;
            case "named-expressions":
                break;
            case "label-range":
                break;
            case "label-ranges":
                break;
            case "named-expression":
                break;
            case "sort":
                break;
            case "sort-by":
                break;
            case "sort-groups":
                break;
            case "tab":
                break;
            case "line-break":
                break;
            case "span":
                break;
            case "p":
                ;
            case "文本串":
                if (["master-styles"].indexOf(n[n.length - 1][0]) > -1)
                    break;
                if (p[1] === "/" && (!b || !b["string-value"])) {
                    var K = Km(a.slice(k, p.index), T);
                    w = (w.length > 0 ? w + "\n" : "") + K[0]
                } else {
                    T = Gr(p[0], false);
                    k = p.index + p[0].length
                }
                break;
            case "s":
                break;
            case "database-range":
                if (p[1] === "/")
                    break;
                try {
                    U = Sd(Gr(p[0])["target-range-address"]);
                    u[U[0]]["!autofilter"] = {
                        ref: U[1]
                    }
                } catch (J) {}
                break;
            case "date":
                break;
            case "object":
                break;
            case "title":
                ;
            case "标题":
                break;
            case "desc":
                break;
            case "binary-data":
                break;
            case "table-source":
                break;
            case "scenario":
                break;
            case "iteration":
                break;
            case "content-validations":
                break;
            case "content-validation":
                break;
            case "help-message":
                break;
            case "error-message":
                break;
            case "database-ranges":
                break;
            case "filter":
                break;
            case "filter-and":
                break;
            case "filter-or":
                break;
            case "filter-condition":
                break;
            case "list-level-style-bullet":
                break;
            case "list-level-style-number":
                break;
            case "list-level-properties":
                break;
            case "sender-firstname":
                ;
            case "sender-lastname":
                ;
            case "sender-initials":
                ;
            case "sender-title":
                ;
            case "sender-position":
                ;
            case "sender-email":
                ;
            case "sender-phone-private":
                ;
            case "sender-fax":
                ;
            case "sender-company":
                ;
            case "sender-phone-work":
                ;
            case "sender-street":
                ;
            case "sender-city":
                ;
            case "sender-postal-code":
                ;
            case "sender-country":
                ;
            case "sender-state-or-province":
                ;
            case "author-name":
                ;
            case "author-initials":
                ;
            case "chapter":
                ;
            case "file-name":
                ;
            case "template-name":
                ;
            case "sheet-name":
                break;
            case "event-listener":
                break;
            case "initial-creator":
                ;
            case "creation-date":
                ;
            case "print-date":
                ;
            case "generator":
                ;
            case "document-statistic":
                ;
            case "user-defined":
                ;
            case "editing-duration":
                ;
            case "editing-cycles":
                break;
            case "config-item":
                break;
            case "page-number":
                break;
            case "page-count":
                break;
            case "time":
                break;
            case "cell-range-source":
                break;
            case "detective":
                break;
            case "operation":
                break;
            case "highlighted-range":
                break;
            case "data-pilot-table":
                ;
            case "source-cell-range":
                ;
            case "source-service":
                ;
            case "data-pilot-field":
                ;
            case "data-pilot-level":
                ;
            case "data-pilot-subtotals":
                ;
            case "data-pilot-subtotal":
                ;
            case "data-pilot-members":
                ;
            case "data-pilot-member":
                ;
            case "data-pilot-display-info":
                ;
            case "data-pilot-sort-info":
                ;
            case "data-pilot-layout-info":
                ;
            case "data-pilot-field-reference":
                ;
            case "data-pilot-groups":
                ;
            case "data-pilot-group":
                ;
            case "data-pilot-group-member":
                break;
            case "rect":
                break;
            case "dde-connection-decls":
                ;
            case "dde-connection-decl":
                ;
            case "dde-link":
                ;
            case "dde-source":
                break;
            case "properties":
                break;
            case "property":
                break;
            case "a":
                if (p[1] !== "/") {
                    M = Gr(p[0], false);
                    if (!M.href)
                        break;
                    M.Target = Yr(M.href);
                    delete M.href;
                    if (M.Target.charAt(0) == "#" && M.Target.indexOf(".") > -1) {
                        U = Sd(M.Target.slice(1));
                        M.Target = "#" + U[0] + "!" + U[1]
                    } else if (M.Target.match(/^\.\.[\\\/]/))
                        M.Target = M.Target.slice(3)
                }
                break;
            case "table-protection":
                break;
            case "data-pilot-grand-total":
                break;
            case "office-document-common-attrs":
                break;
            default:
                switch (p[2]) {
                case "dc:":
                    ;
                case "calcext:":
                    ;
                case "loext:":
                    ;
                case "ooo:":
                    ;
                case "chartooo:":
                    ;
                case "draw:":
                    ;
                case "style:":
                    ;
                case "chart:":
                    ;
                case "form:":
                    ;
                case "uof:":
                    ;
                case "表:":
                    ;
                case "字:":
                    break;
                default:
                    if (t.WTF)
                        throw new Error(p);
                }
                ;
            }
        var q = {
            Sheets: u,
            SheetNames: d,
            Workbook: L
        };
        if (t.bookSheets)
            delete q.Sheets;
        return q
    }
    function Zm(e, r) {
        r = r || {};
        if (_r(e, "META-INF/manifest.xml"))
            ai(Or(e, "META-INF/manifest.xml"), r);
        var t = Rr(e, "content.xml");
        if (!t)
            throw new Error("Missing content.xml in ODS / UOF file");
        var a = qm(lt(t), r);
        if (_r(e, "meta.xml"))
            a.Props = hi(Or(e, "meta.xml"));
        return a
    }
    function Qm(e, r) {
        return qm(e, r)
    }
    var eb = function() {
        var e = ["<office:master-styles>", '<style:master-page style:name="mp1" style:page-layout-name="mp1">', "<style:header/>", '<style:header-left style:display="false"/>', "<style:footer/>", '<style:footer-left style:display="false"/>', "</style:master-page>", "</office:master-styles>"].join("");
        var r = "<office:document-styles " + wt({
            "xmlns:office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
            "xmlns:table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
            "xmlns:style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
            "xmlns:text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
            "xmlns:draw": "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
            "xmlns:fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
            "xmlns:xlink": "http://www.w3.org/1999/xlink",
            "xmlns:dc": "http://purl.org/dc/elements/1.1/",
            "xmlns:number": "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
            "xmlns:svg": "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
            "xmlns:of": "urn:oasis:names:tc:opendocument:xmlns:of:1.2",
            "office:version": "1.2"
        }) + ">" + e + "</office:document-styles>";
        return function t() {
            return Mr + r
        }
    }();
    var rb = function() {
        var e = function(e) {
            return qr(e).replace(/  +/g, function(e) {
                return '<text:s text:c="' + e.length + '"/>'
            }).replace(/\t/g, "<text:tab/>").replace(/\n/g, "</text:p><text:p>").replace(/^ /, "<text:s/>").replace(/ $/, "<text:s/>")
        };
        var r = "          <table:table-cell />\n";
        var t = "          <table:covered-table-cell/>\n";
        var a = function(a, n, i) {
            var s = [];
            s.push('      <table:table table:name="' + qr(n.SheetNames[i]) + '" table:style-name="ta1">\n');
            var f = 0
              , o = 0
              , l = Ia(a["!ref"] || "A1");
            var c = a["!merges"] || []
              , h = 0;
            var u = Array.isArray(a);
            if (a["!cols"]) {
                for (o = 0; o <= l.e.c; ++o)
                    s.push("        <table:table-column" + (a["!cols"][o] ? ' table:style-name="co' + a["!cols"][o].ods + '"' : "") + "></table:table-column>\n")
            }
            var d = ""
              , v = a["!rows"] || [];
            for (f = 0; f < l.s.r; ++f) {
                d = v[f] ? ' table:style-name="ro' + v[f].ods + '"' : "";
                s.push("        <table:table-row" + d + "></table:table-row>\n")
            }
            for (; f <= l.e.r; ++f) {
                d = v[f] ? ' table:style-name="ro' + v[f].ods + '"' : "";
                s.push("        <table:table-row" + d + ">\n");
                for (o = 0; o < l.s.c; ++o)
                    s.push(r);
                for (; o <= l.e.c; ++o) {
                    var p = false
                      , g = {}
                      , m = "";
                    for (h = 0; h != c.length; ++h) {
                        if (c[h].s.c > o)
                            continue;
                        if (c[h].s.r > f)
                            continue;
                        if (c[h].e.c < o)
                            continue;
                        if (c[h].e.r < f)
                            continue;
                        if (c[h].s.c != o || c[h].s.r != f)
                            p = true;
                        g["table:number-columns-spanned"] = c[h].e.c - c[h].s.c + 1;
                        g["table:number-rows-spanned"] = c[h].e.r - c[h].s.r + 1;
                        break
                    }
                    if (p) {
                        s.push(t);
                        continue
                    }
                    var b = Ra({
                        r: f,
                        c: o
                    })
                      , w = u ? (a[f] || [])[o] : a[b];
                    if (w && w.f) {
                        g["table:formula"] = qr(yd(w.f));
                        if (w.F) {
                            if (w.F.slice(0, b.length) == b) {
                                var k = Ia(w.F);
                                g["table:number-matrix-columns-spanned"] = k.e.c - k.s.c + 1;
                                g["table:number-matrix-rows-spanned"] = k.e.r - k.s.r + 1
                            }
                        }
                    }
                    if (!w) {
                        s.push(r);
                        continue
                    }
                    switch (w.t) {
                    case "b":
                        m = w.v ? "TRUE" : "FALSE";
                        g["office:value-type"] = "boolean";
                        g["office:boolean-value"] = w.v ? "true" : "false";
                        break;
                    case "n":
                        m = w.w || String(w.v || 0);
                        g["office:value-type"] = "float";
                        g["office:value"] = w.v || 0;
                        break;
                    case "s":
                        ;
                    case "str":
                        m = w.v == null ? "" : w.v;
                        g["office:value-type"] = "string";
                        break;
                    case "d":
                        m = w.w || gr(w.v).toISOString();
                        g["office:value-type"] = "date";
                        g["office:date-value"] = gr(w.v).toISOString();
                        g["table:style-name"] = "ce1";
                        break;
                    default:
                        s.push(r);
                        continue;
                    }
                    var T = e(m);
                    if (w.l && w.l.Target) {
                        var A = w.l.Target;
                        A = A.charAt(0) == "#" ? "#" + _d(A.slice(1)) : A;
                        if (A.charAt(0) != "#" && !A.match(/^\w+:/))
                            A = "../" + A;
                        T = kt("text:a", T, {
                            "xlink:href": A.replace(/&/g, "&amp;")
                        })
                    }
                    s.push("          " + kt("table:table-cell", kt("text:p", T, {}), g) + "\n")
                }
                s.push("        </table:table-row>\n")
            }
            s.push("      </table:table>\n");
            return s.join("")
        };
        var n = function(e, r) {
            e.push(" <office:automatic-styles>\n");
            e.push('  <number:date-style style:name="N37" number:automatic-order="true">\n');
            e.push('   <number:month number:style="long"/>\n');
            e.push("   <number:text>/</number:text>\n");
            e.push('   <number:day number:style="long"/>\n');
            e.push("   <number:text>/</number:text>\n");
            e.push("   <number:year/>\n");
            e.push("  </number:date-style>\n");
            var t = 0;
            r.SheetNames.map(function(e) {
                return r.Sheets[e]
            }).forEach(function(r) {
                if (!r)
                    return;
                if (r["!cols"]) {
                    for (var a = 0; a < r["!cols"].length; ++a)
                        if (r["!cols"][a]) {
                            var n = r["!cols"][a];
                            if (n.width == null && n.wpx == null && n.wch == null)
                                continue;
                            Il(n);
                            n.ods = t;
                            var i = r["!cols"][a].wpx + "px";
                            e.push('  <style:style style:name="co' + t + '" style:family="table-column">\n');
                            e.push('   <style:table-column-properties fo:break-before="auto" style:column-width="' + i + '"/>\n');
                            e.push("  </style:style>\n");
                            ++t
                        }
                }
            });
            var a = 0;
            r.SheetNames.map(function(e) {
                return r.Sheets[e]
            }).forEach(function(r) {
                if (!r)
                    return;
                if (r["!rows"]) {
                    for (var t = 0; t < r["!rows"].length; ++t)
                        if (r["!rows"][t]) {
                            r["!rows"][t].ods = a;
                            var n = r["!rows"][t].hpx + "px";
                            e.push('  <style:style style:name="ro' + a + '" style:family="table-row">\n');
                            e.push('   <style:table-row-properties fo:break-before="auto" style:row-height="' + n + '"/>\n');
                            e.push("  </style:style>\n");
                            ++a
                        }
                }
            });
            e.push('  <style:style style:name="ta1" style:family="table" style:master-page-name="mp1">\n');
            e.push('   <style:table-properties table:display="true" style:writing-mode="lr-tb"/>\n');
            e.push("  </style:style>\n");
            e.push('  <style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N37"/>\n');
            e.push(" </office:automatic-styles>\n")
        };
        return function i(e, r) {
            var t = [Mr];
            var i = wt({
                "xmlns:office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
                "xmlns:table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
                "xmlns:style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
                "xmlns:text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
                "xmlns:draw": "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
                "xmlns:fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
                "xmlns:xlink": "http://www.w3.org/1999/xlink",
                "xmlns:dc": "http://purl.org/dc/elements/1.1/",
                "xmlns:meta": "urn:oasis:names:tc:opendocument:xmlns:meta:1.0",
                "xmlns:number": "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
                "xmlns:presentation": "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
                "xmlns:svg": "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
                "xmlns:chart": "urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
                "xmlns:dr3d": "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",
                "xmlns:math": "http://www.w3.org/1998/Math/MathML",
                "xmlns:form": "urn:oasis:names:tc:opendocument:xmlns:form:1.0",
                "xmlns:script": "urn:oasis:names:tc:opendocument:xmlns:script:1.0",
                "xmlns:ooo": "http://openoffice.org/2004/office",
                "xmlns:ooow": "http://openoffice.org/2004/writer",
                "xmlns:oooc": "http://openoffice.org/2004/calc",
                "xmlns:dom": "http://www.w3.org/2001/xml-events",
                "xmlns:xforms": "http://www.w3.org/2002/xforms",
                "xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
                "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
                "xmlns:sheet": "urn:oasis:names:tc:opendocument:sh33tjs:1.0",
                "xmlns:rpt": "http://openoffice.org/2005/report",
                "xmlns:of": "urn:oasis:names:tc:opendocument:xmlns:of:1.2",
                "xmlns:xhtml": "http://www.w3.org/1999/xhtml",
                "xmlns:grddl": "http://www.w3.org/2003/g/data-view#",
                "xmlns:tableooo": "http://openoffice.org/2009/table",
                "xmlns:drawooo": "http://openoffice.org/2010/draw",
                "xmlns:calcext": "urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0",
                "xmlns:loext": "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0",
                "xmlns:field": "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0",
                "xmlns:formx": "urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0",
                "xmlns:css3t": "http://www.w3.org/TR/css3-text/",
                "office:version": "1.2"
            });
            var s = wt({
                "xmlns:config": "urn:oasis:names:tc:opendocument:xmlns:config:1.0",
                "office:mimetype": "application/vnd.oasis.opendocument.spreadsheet"
            });
            if (r.bookType == "fods") {
                t.push("<office:document" + i + s + ">\n");
                t.push(oi().replace(/office:document-meta/g, "office:meta"))
            } else
                t.push("<office:document-content" + i + ">\n");
            n(t, e);
            t.push("  <office:body>\n");
            t.push("    <office:spreadsheet>\n");
            for (var f = 0; f != e.SheetNames.length; ++f)
                t.push(a(e.Sheets[e.SheetNames[f]], e, f, r));
            t.push("    </office:spreadsheet>\n");
            t.push("  </office:body>\n");
            if (r.bookType == "fods")
                t.push("</office:document>");
            else
                t.push("</office:document-content>");
            return t.join("")
        }
    }();
    function tb(e, r) {
        if (r.bookType == "fods")
            return rb(e, r);
        var t = Fr();
        var a = "";
        var n = [];
        var i = [];
        a = "mimetype";
        Dr(t, a, "application/vnd.oasis.opendocument.spreadsheet");
        a = "content.xml";
        Dr(t, a, rb(e, r));
        n.push([a, "text/xml"]);
        i.push([a, "ContentFile"]);
        a = "styles.xml";
        Dr(t, a, eb(e, r));
        n.push([a, "text/xml"]);
        i.push([a, "StylesFile"]);
        a = "meta.xml";
        Dr(t, a, Mr + oi());
        n.push([a, "text/xml"]);
        i.push([a, "MetadataFile"]);
        a = "manifest.rdf";
        Dr(t, a, fi(i));
        n.push([a, "application/rdf+xml"]);
        a = "META-INF/manifest.xml";
        Dr(t, a, ni(n));
        return t
    }
    function ab(e) {
        return new DataView(e.buffer,e.byteOffset,e.byteLength)
    }
    function nb(e) {
        return typeof TextDecoder != "undefined" ? (new TextDecoder).decode(e) : lt(_(e))
    }
    function ib(e) {
        return typeof TextEncoder != "undefined" ? (new TextEncoder).encode(e) : y(ct(e))
    }
    function sb(e, r) {
        e: for (var t = 0; t <= e.length - r.length; ++t) {
            for (var a = 0; a < r.length; ++a)
                if (e[t + a] != r[a])
                    continue e;
            return true
        }
        return false
    }
    function fb(e) {
        var r = e.reduce(function(e, r) {
            return e + r.length
        }, 0);
        var t = new Uint8Array(r);
        var a = 0;
        e.forEach(function(e) {
            t.set(e, a);
            a += e.length
        });
        return t
    }
    function ob(e) {
        e -= e >> 1 & 1431655765;
        e = (e & 858993459) + (e >> 2 & 858993459);
        return (e + (e >> 4) & 252645135) * 16843009 >>> 24
    }
    function lb(e, r) {
        var t = (e[r + 15] & 127) << 7 | e[r + 14] >> 1;
        var a = e[r + 14] & 1;
        for (var n = r + 13; n >= r; --n)
            a = a * 256 + e[n];
        return (e[r + 15] & 128 ? -a : a) * Math.pow(10, t - 6176)
    }
    function cb(e, r, t) {
        var a = Math.floor(t == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(t))) + 6176 - 20;
        var n = t / Math.pow(10, a - 6176);
        e[r + 15] |= a >> 7;
        e[r + 14] |= (a & 127) << 1;
        for (var i = 0; n >= 1; ++i,
        n /= 256)
            e[r + i] = n & 255;
        e[r + 15] |= t >= 0 ? 0 : 128
    }
    function hb(e, r) {
        var t = r ? r[0] : 0;
        var a = e[t] & 127;
        e: if (e[t++] >= 128) {
            a |= (e[t] & 127) << 7;
            if (e[t++] < 128)
                break e;
            a |= (e[t] & 127) << 14;
            if (e[t++] < 128)
                break e;
            a |= (e[t] & 127) << 21;
            if (e[t++] < 128)
                break e;
            a += (e[t] & 127) * Math.pow(2, 28);
            ++t;
            if (e[t++] < 128)
                break e;
            a += (e[t] & 127) * Math.pow(2, 35);
            ++t;
            if (e[t++] < 128)
                break e;
            a += (e[t] & 127) * Math.pow(2, 42);
            ++t;
            if (e[t++] < 128)
                break e
        }
        if (r)
            r[0] = t;
        return a
    }
    function ub(e) {
        var r = new Uint8Array(7);
        r[0] = e & 127;
        var t = 1;
        e: if (e > 127) {
            r[t - 1] |= 128;
            r[t] = e >> 7 & 127;
            ++t;
            if (e <= 16383)
                break e;
            r[t - 1] |= 128;
            r[t] = e >> 14 & 127;
            ++t;
            if (e <= 2097151)
                break e;
            r[t - 1] |= 128;
            r[t] = e >> 21 & 127;
            ++t;
            if (e <= 268435455)
                break e;
            r[t - 1] |= 128;
            r[t] = e / 256 >>> 21 & 127;
            ++t;
            if (e <= 34359738367)
                break e;
            r[t - 1] |= 128;
            r[t] = e / 65536 >>> 21 & 127;
            ++t;
            if (e <= 4398046511103)
                break e;
            r[t - 1] |= 128;
            r[t] = e / 16777216 >>> 21 & 127;
            ++t
        }
        return r.slice(0, t)
    }
    function db(e) {
        var r = 0
          , t = e[r] & 127;
        e: if (e[r++] >= 128) {
            t |= (e[r] & 127) << 7;
            if (e[r++] < 128)
                break e;
            t |= (e[r] & 127) << 14;
            if (e[r++] < 128)
                break e;
            t |= (e[r] & 127) << 21;
            if (e[r++] < 128)
                break e;
            t |= (e[r] & 127) << 28
        }
        return t
    }
    function vb(e) {
        var r = []
          , t = [0];
        while (t[0] < e.length) {
            var a = t[0];
            var n = hb(e, t);
            var i = n & 7;
            n = Math.floor(n / 8);
            var s = 0;
            var f;
            if (n == 0)
                break;
            switch (i) {
            case 0:
                {
                    var o = t[0];
                    while (e[t[0]++] >= 128)
                        ;
                    f = e.slice(o, t[0])
                }
                break;
            case 5:
                s = 4;
                f = e.slice(t[0], t[0] + s);
                t[0] += s;
                break;
            case 1:
                s = 8;
                f = e.slice(t[0], t[0] + s);
                t[0] += s;
                break;
            case 2:
                s = hb(e, t);
                f = e.slice(t[0], t[0] + s);
                t[0] += s;
                break;
            case 3:
                ;
            case 4:
                ;
            default:
                throw new Error("PB Type ".concat(i, " for Field ").concat(n, " at offset ").concat(a));
            }
            var l = {
                data: f,
                type: i
            };
            if (r[n] == null)
                r[n] = [l];
            else
                r[n].push(l)
        }
        return r
    }
    function pb(e) {
        var r = [];
        e.forEach(function(e, t) {
            e.forEach(function(e) {
                if (!e.data)
                    return;
                r.push(ub(t * 8 + e.type));
                if (e.type == 2)
                    r.push(ub(e.data.length));
                r.push(e.data)
            })
        });
        return fb(r)
    }
    function gb(e, r) {
        return (e == null ? void 0 : e.map(function(e) {
            return r(e.data)
        })) || []
    }
    function mb(e) {
        var r;
        var t = []
          , a = [0];
        while (a[0] < e.length) {
            var n = hb(e, a);
            var i = vb(e.slice(a[0], a[0] + n));
            a[0] += n;
            var s = {
                id: db(i[1][0].data),
                messages: []
            };
            i[2].forEach(function(r) {
                var t = vb(r.data);
                var n = db(t[3][0].data);
                s.messages.push({
                    meta: t,
                    data: e.slice(a[0], a[0] + n)
                });
                a[0] += n
            });
            if ((r = i[3]) == null ? void 0 : r[0])
                s.merge = db(i[3][0].data) >>> 0 > 0;
            t.push(s)
        }
        return t
    }
    function bb(e) {
        var r = [];
        e.forEach(function(e) {
            var t = [];
            t[1] = [{
                data: ub(e.id),
                type: 0
            }];
            t[2] = [];
            if (e.merge != null)
                t[3] = [{
                    data: ub(+!!e.merge),
                    type: 0
                }];
            var a = [];
            e.messages.forEach(function(e) {
                a.push(e.data);
                e.meta[3] = [{
                    type: 0,
                    data: ub(e.data.length)
                }];
                t[2].push({
                    data: pb(e.meta),
                    type: 2
                })
            });
            var n = pb(t);
            r.push(ub(n.length));
            r.push(n);
            a.forEach(function(e) {
                return r.push(e)
            })
        });
        return fb(r)
    }
    function wb(e, r) {
        if (e != 0)
            throw new Error("Unexpected Snappy chunk type ".concat(e));
        var t = [0];
        var a = hb(r, t);
        var n = [];
        while (t[0] < r.length) {
            var i = r[t[0]] & 3;
            if (i == 0) {
                var s = r[t[0]++] >> 2;
                if (s < 60)
                    ++s;
                else {
                    var f = s - 59;
                    s = r[t[0]];
                    if (f > 1)
                        s |= r[t[0] + 1] << 8;
                    if (f > 2)
                        s |= r[t[0] + 2] << 16;
                    if (f > 3)
                        s |= r[t[0] + 3] << 24;
                    s >>>= 0;
                    s++;
                    t[0] += f
                }
                n.push(r.slice(t[0], t[0] + s));
                t[0] += s;
                continue
            } else {
                var o = 0
                  , l = 0;
                if (i == 1) {
                    l = (r[t[0]] >> 2 & 7) + 4;
                    o = (r[t[0]++] & 224) << 3;
                    o |= r[t[0]++]
                } else {
                    l = (r[t[0]++] >> 2) + 1;
                    if (i == 2) {
                        o = r[t[0]] | r[t[0] + 1] << 8;
                        t[0] += 2
                    } else {
                        o = (r[t[0]] | r[t[0] + 1] << 8 | r[t[0] + 2] << 16 | r[t[0] + 3] << 24) >>> 0;
                        t[0] += 4
                    }
                }
                n = [fb(n)];
                if (o == 0)
                    throw new Error("Invalid offset 0");
                if (o > n[0].length)
                    throw new Error("Invalid offset beyond length");
                if (l >= o) {
                    n.push(n[0].slice(-o));
                    l -= o;
                    while (l >= n[n.length - 1].length) {
                        n.push(n[n.length - 1]);
                        l -= n[n.length - 1].length
                    }
                }
                n.push(n[0].slice(-o, -o + l))
            }
        }
        var c = fb(n);
        if (c.length != a)
            throw new Error("Unexpected length: ".concat(c.length, " != ").concat(a));
        return c
    }
    function kb(e) {
        var r = [];
        var t = 0;
        while (t < e.length) {
            var a = e[t++];
            var n = e[t] | e[t + 1] << 8 | e[t + 2] << 16;
            t += 3;
            r.push(wb(a, e.slice(t, t + n)));
            t += n
        }
        if (t !== e.length)
            throw new Error("data is not a valid framed stream!");
        return fb(r)
    }
    function Tb(e) {
        var r = [];
        var t = 0;
        while (t < e.length) {
            var a = Math.min(e.length - t, 268435455);
            var n = new Uint8Array(4);
            r.push(n);
            var i = ub(a);
            var s = i.length;
            r.push(i);
            if (a <= 60) {
                s++;
                r.push(new Uint8Array([a - 1 << 2]))
            } else if (a <= 256) {
                s += 2;
                r.push(new Uint8Array([240, a - 1 & 255]))
            } else if (a <= 65536) {
                s += 3;
                r.push(new Uint8Array([244, a - 1 & 255, a - 1 >> 8 & 255]))
            } else if (a <= 16777216) {
                s += 4;
                r.push(new Uint8Array([248, a - 1 & 255, a - 1 >> 8 & 255, a - 1 >> 16 & 255]))
            } else if (a <= 4294967296) {
                s += 5;
                r.push(new Uint8Array([252, a - 1 & 255, a - 1 >> 8 & 255, a - 1 >> 16 & 255, a - 1 >>> 24 & 255]))
            }
            r.push(e.slice(t, t + a));
            s += a;
            n[0] = 0;
            n[1] = s & 255;
            n[2] = s >> 8 & 255;
            n[3] = s >> 16 & 255;
            t += a
        }
        return fb(r)
    }
    function Ab(e, r, t, a) {
        var n = ab(e);
        var i = n.getUint32(4, true);
        var s = (a > 1 ? 12 : 8) + ob(i & (a > 1 ? 3470 : 398)) * 4;
        var f = -1
          , o = -1
          , l = NaN
          , c = new Date(2001,0,1);
        if (i & 512) {
            f = n.getUint32(s, true);
            s += 4
        }
        s += ob(i & (a > 1 ? 12288 : 4096)) * 4;
        if (i & 16) {
            o = n.getUint32(s, true);
            s += 4
        }
        if (i & 32) {
            l = n.getFloat64(s, true);
            s += 8
        }
        if (i & 64) {
            c.setTime(c.getTime() + n.getFloat64(s, true) * 1e3);
            s += 8
        }
        var h;
        switch (e[2]) {
        case 0:
            break;
        case 2:
            h = {
                t: "n",
                v: l
            };
            break;
        case 3:
            h = {
                t: "s",
                v: r[o]
            };
            break;
        case 5:
            h = {
                t: "d",
                v: c
            };
            break;
        case 6:
            h = {
                t: "b",
                v: l > 0
            };
            break;
        case 7:
            h = {
                t: "n",
                v: l / 86400
            };
            break;
        case 8:
            h = {
                t: "e",
                v: 0
            };
            break;
        case 9:
            {
                if (f > -1)
                    h = {
                        t: "s",
                        v: t[f]
                    };
                else if (o > -1)
                    h = {
                        t: "s",
                        v: r[o]
                    };
                else if (!isNaN(l))
                    h = {
                        t: "n",
                        v: l
                    };
                else
                    throw new Error("Unsupported cell type ".concat(e.slice(0, 4)))
            }
            break;
        default:
            throw new Error("Unsupported cell type ".concat(e.slice(0, 4)));
        }
        return h
    }
    function Eb(e, r, t) {
        var a = ab(e);
        var n = a.getUint32(8, true);
        var i = 12;
        var s = -1
          , f = -1
          , o = NaN
          , l = NaN
          , c = new Date(2001,0,1);
        if (n & 1) {
            o = lb(e, i);
            i += 16
        }
        if (n & 2) {
            l = a.getFloat64(i, true);
            i += 8
        }
        if (n & 4) {
            c.setTime(c.getTime() + a.getFloat64(i, true) * 1e3);
            i += 8
        }
        if (n & 8) {
            f = a.getUint32(i, true);
            i += 4
        }
        if (n & 16) {
            s = a.getUint32(i, true);
            i += 4
        }
        var h;
        switch (e[1]) {
        case 0:
            break;
        case 2:
            h = {
                t: "n",
                v: o
            };
            break;
        case 3:
            h = {
                t: "s",
                v: r[f]
            };
            break;
        case 5:
            h = {
                t: "d",
                v: c
            };
            break;
        case 6:
            h = {
                t: "b",
                v: l > 0
            };
            break;
        case 7:
            h = {
                t: "n",
                v: l / 86400
            };
            break;
        case 8:
            h = {
                t: "e",
                v: 0
            };
            break;
        case 9:
            {
                if (s > -1)
                    h = {
                        t: "s",
                        v: t[s]
                    };
                else
                    throw new Error("Unsupported cell type ".concat(e[1], " : ").concat(n & 31, " : ").concat(e.slice(0, 4)))
            }
            break;
        case 10:
            h = {
                t: "n",
                v: o
            };
            break;
        default:
            throw new Error("Unsupported cell type ".concat(e[1], " : ").concat(n & 31, " : ").concat(e.slice(0, 4)));
        }
        return h
    }
    function Cb(e, r) {
        var t = new Uint8Array(32)
          , a = ab(t)
          , n = 12
          , i = 0;
        t[0] = 5;
        switch (e.t) {
        case "n":
            t[1] = 2;
            cb(t, n, e.v);
            i |= 1;
            n += 16;
            break;
        case "b":
            t[1] = 6;
            a.setFloat64(n, e.v ? 1 : 0, true);
            i |= 2;
            n += 8;
            break;
        case "s":
            if (r.indexOf(e.v) == -1)
                throw new Error("Value ".concat(e.v, " missing from SST!"));
            t[1] = 3;
            a.setUint32(n, r.indexOf(e.v), true);
            i |= 8;
            n += 4;
            break;
        default:
            throw "unsupported cell type " + e.t;
        }
        a.setUint32(8, i, true);
        return t.slice(0, n)
    }
    function yb(e, r) {
        var t = new Uint8Array(32)
          , a = ab(t)
          , n = 12
          , i = 0;
        t[0] = 3;
        switch (e.t) {
        case "n":
            t[2] = 2;
            a.setFloat64(n, e.v, true);
            i |= 32;
            n += 8;
            break;
        case "b":
            t[2] = 6;
            a.setFloat64(n, e.v ? 1 : 0, true);
            i |= 32;
            n += 8;
            break;
        case "s":
            if (r.indexOf(e.v) == -1)
                throw new Error("Value ".concat(e.v, " missing from SST!"));
            t[2] = 3;
            a.setUint32(n, r.indexOf(e.v), true);
            i |= 16;
            n += 4;
            break;
        default:
            throw "unsupported cell type " + e.t;
        }
        a.setUint32(4, i, true);
        return t.slice(0, n)
    }
    function Sb(e, r, t) {
        switch (e[0]) {
        case 0:
            ;
        case 1:
            ;
        case 2:
            ;
        case 3:
            return Ab(e, r, t, e[0]);
        case 5:
            return Eb(e, r, t);
        default:
            throw new Error("Unsupported payload version ".concat(e[0]));
        }
    }
    function _b(e) {
        var r = vb(e);
        return hb(r[1][0].data)
    }
    function xb(e) {
        var r = [];
        r[1] = [{
            type: 0,
            data: ub(e)
        }];
        return pb(r)
    }
    function Ob(e, r) {
        var t = vb(r.data);
        var a = db(t[1][0].data);
        var n = t[3];
        var i = [];
        (n || []).forEach(function(r) {
            var t = vb(r.data);
            var n = db(t[1][0].data) >>> 0;
            switch (a) {
            case 1:
                i[n] = nb(t[3][0].data);
                break;
            case 8:
                {
                    var s = e[_b(t[9][0].data)][0];
                    var f = vb(s.data);
                    var o = e[_b(f[1][0].data)][0];
                    var l = db(o.meta[1][0].data);
                    if (l != 2001)
                        throw new Error("2000 unexpected reference to ".concat(l));
                    var c = vb(o.data);
                    i[n] = c[3].map(function(e) {
                        return nb(e.data)
                    }).join("")
                }
                break;
            }
        });
        return i
    }
    function Rb(e, r) {
        var t, a, n, i, s, f, o, l, c, h, u, d, v, p;
        var g = vb(e);
        var m = db(g[1][0].data) >>> 0;
        var b = db(g[2][0].data) >>> 0;
        var w = ((a = (t = g[8]) == null ? void 0 : t[0]) == null ? void 0 : a.data) && db(g[8][0].data) > 0 || false;
        var k, T;
        if (((i = (n = g[7]) == null ? void 0 : n[0]) == null ? void 0 : i.data) && r != 0) {
            k = (f = (s = g[7]) == null ? void 0 : s[0]) == null ? void 0 : f.data;
            T = (l = (o = g[6]) == null ? void 0 : o[0]) == null ? void 0 : l.data
        } else if (((h = (c = g[4]) == null ? void 0 : c[0]) == null ? void 0 : h.data) && r != 1) {
            k = (d = (u = g[4]) == null ? void 0 : u[0]) == null ? void 0 : d.data;
            T = (p = (v = g[3]) == null ? void 0 : v[0]) == null ? void 0 : p.data
        } else
            throw "NUMBERS Tile missing ".concat(r, " cell storage");
        var A = w ? 4 : 1;
        var E = ab(k);
        var C = [];
        for (var y = 0; y < k.length / 2; ++y) {
            var S = E.getUint16(y * 2, true);
            if (S < 65535)
                C.push([y, S])
        }
        if (C.length != b)
            throw "Expected ".concat(b, " cells, found ").concat(C.length);
        var _ = [];
        for (y = 0; y < C.length - 1; ++y)
            _[C[y][0]] = T.subarray(C[y][1] * A, C[y + 1][1] * A);
        if (C.length >= 1)
            _[C[C.length - 1][0]] = T.subarray(C[C.length - 1][1] * A);
        return {
            R: m,
            cells: _
        }
    }
    function Ib(e, r) {
        var t;
        var a = vb(r.data);
        var n = ((t = a == null ? void 0 : a[7]) == null ? void 0 : t[0]) ? db(a[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;
        var i = gb(a[5], function(e) {
            return Rb(e, n)
        });
        return {
            nrows: db(a[4][0].data) >>> 0,
            data: i.reduce(function(e, r) {
                if (!e[r.R])
                    e[r.R] = [];
                r.cells.forEach(function(t, a) {
                    if (e[r.R][a])
                        throw new Error("Duplicate cell r=".concat(r.R, " c=").concat(a));
                    e[r.R][a] = t
                });
                return e
            }, [])
        }
    }
    function Nb(e, r, t) {
        var a;
        var n = vb(r.data);
        var i = {
            s: {
                r: 0,
                c: 0
            },
            e: {
                r: 0,
                c: 0
            }
        };
        i.e.r = (db(n[6][0].data) >>> 0) - 1;
        if (i.e.r < 0)
            throw new Error("Invalid row varint ".concat(n[6][0].data));
        i.e.c = (db(n[7][0].data) >>> 0) - 1;
        if (i.e.c < 0)
            throw new Error("Invalid col varint ".concat(n[7][0].data));
        t["!ref"] = Na(i);
        var s = vb(n[4][0].data);
        var f = Ob(e, e[_b(s[4][0].data)][0]);
        var o = ((a = s[17]) == null ? void 0 : a[0]) ? Ob(e, e[_b(s[17][0].data)][0]) : [];
        var l = vb(s[3][0].data);
        var c = 0;
        l[1].forEach(function(r) {
            var a = vb(r.data);
            var n = e[_b(a[2][0].data)][0];
            var i = db(n.meta[1][0].data);
            if (i != 6002)
                throw new Error("6001 unexpected reference to ".concat(i));
            var s = Ib(e, n);
            s.data.forEach(function(e, r) {
                e.forEach(function(e, a) {
                    var n = Ra({
                        r: c + r,
                        c: a
                    });
                    var i = Sb(e, f, o);
                    if (i)
                        t[n] = i
                })
            });
            c += s.nrows
        })
    }
    function Db(e, r) {
        var t = vb(r.data);
        var a = {
            "!ref": "A1"
        };
        var n = e[_b(t[2][0].data)];
        var i = db(n[0].meta[1][0].data);
        if (i != 6001)
            throw new Error("6000 unexpected reference to ".concat(i));
        Nb(e, n[0], a);
        return a
    }
    function Fb(e, r) {
        var t;
        var a = vb(r.data);
        var n = {
            name: ((t = a[1]) == null ? void 0 : t[0]) ? nb(a[1][0].data) : "",
            sheets: []
        };
        var i = gb(a[2], _b);
        i.forEach(function(r) {
            e[r].forEach(function(r) {
                var t = db(r.meta[1][0].data);
                if (t == 6e3)
                    n.sheets.push(Db(e, r))
            })
        });
        return n
    }
    function Pb(e, r) {
        var t = Nw();
        var a = vb(r.data);
        var n = gb(a[1], _b);
        n.forEach(function(r) {
            e[r].forEach(function(r) {
                var a = db(r.meta[1][0].data);
                if (a == 2) {
                    var n = Fb(e, r);
                    n.sheets.forEach(function(e, r) {
                        Dw(t, e, r == 0 ? n.name : n.name + "_" + r, true)
                    })
                }
            })
        });
        if (t.SheetNames.length == 0)
            throw new Error("Empty NUMBERS file");
        return t
    }
    function Lb(e) {
        var r, t, a, n;
        var i = {}
          , s = [];
        e.FullPaths.forEach(function(e) {
            if (e.match(/\.iwpv2/))
                throw new Error("Unsupported password protection")
        });
        e.FileIndex.forEach(function(e) {
            if (!e.name.match(/\.iwa$/))
                return;
            var r;
            try {
                r = kb(e.content)
            } catch (t) {
                return console.log("?? " + e.content.length + " " + (t.message || t))
            }
            var a;
            try {
                a = mb(r)
            } catch (t) {
                return console.log("## " + (t.message || t))
            }
            a.forEach(function(e) {
                i[e.id] = e.messages;
                s.push(e.id)
            })
        });
        if (!s.length)
            throw new Error("File has no messages");
        var f = ((n = (a = (t = (r = i == null ? void 0 : i[1]) == null ? void 0 : r[0]) == null ? void 0 : t.meta) == null ? void 0 : a[1]) == null ? void 0 : n[0].data) && db(i[1][0].meta[1][0].data) == 1 && i[1][0];
        if (!f)
            s.forEach(function(e) {
                i[e].forEach(function(e) {
                    var r = db(e.meta[1][0].data) >>> 0;
                    if (r == 1) {
                        if (!f)
                            f = e;
                        else
                            throw new Error("Document has multiple roots")
                    }
                })
            });
        if (!f)
            throw new Error("Cannot find Document root");
        return Pb(i, f)
    }
    function Mb(e, r, t) {
        var a, n, i, s;
        if (!((a = e[6]) == null ? void 0 : a[0]) || !((n = e[7]) == null ? void 0 : n[0]))
            throw "Mutation only works on post-BNC storages!";
        var f = ((s = (i = e[8]) == null ? void 0 : i[0]) == null ? void 0 : s.data) && db(e[8][0].data) > 0 || false;
        if (f)
            throw "Math only works with normal offsets";
        var o = 0;
        var l = ab(e[7][0].data)
          , c = 0
          , h = [];
        var u = ab(e[4][0].data)
          , d = 0
          , v = [];
        for (var p = 0; p < r.length; ++p) {
            if (r[p] == null) {
                l.setUint16(p * 2, 65535, true);
                u.setUint16(p * 2, 65535);
                continue
            }
            l.setUint16(p * 2, c, true);
            u.setUint16(p * 2, d, true);
            var g, m;
            switch (typeof r[p]) {
            case "string":
                g = Cb({
                    t: "s",
                    v: r[p]
                }, t);
                m = yb({
                    t: "s",
                    v: r[p]
                }, t);
                break;
            case "number":
                g = Cb({
                    t: "n",
                    v: r[p]
                }, t);
                m = yb({
                    t: "n",
                    v: r[p]
                }, t);
                break;
            case "boolean":
                g = Cb({
                    t: "b",
                    v: r[p]
                }, t);
                m = yb({
                    t: "b",
                    v: r[p]
                }, t);
                break;
            default:
                throw new Error("Unsupported value " + r[p]);
            }
            h.push(g);
            c += g.length;
            v.push(m);
            d += m.length;
            ++o
        }
        e[2][0].data = ub(o);
        for (; p < e[7][0].data.length / 2; ++p) {
            l.setUint16(p * 2, 65535, true);
            u.setUint16(p * 2, 65535, true)
        }
        e[6][0].data = fb(h);
        e[3][0].data = fb(v);
        return o
    }
    function Ub(e, r) {
        if (!r || !r.numbers)
            throw new Error("Must pass a `numbers` option -- check the README");
        var t = e.Sheets[e.SheetNames[0]];
        if (e.SheetNames.length > 1)
            console.error("The Numbers writer currently writes only the first table");
        var a = Ia(t["!ref"]);
        a.s.r = a.s.c = 0;
        var n = false;
        if (a.e.c > 9) {
            n = true;
            a.e.c = 9
        }
        if (a.e.r > 49) {
            n = true;
            a.e.r = 49
        }
        if (n)
            console.error("The Numbers writer is currently limited to ".concat(Na(a)));
        var i = Aw(t, {
            range: a,
            header: 1
        });
        var s = ["~Sh33tJ5~"];
        i.forEach(function(e) {
            return e.forEach(function(e) {
                if (typeof e == "string")
                    s.push(e)
            })
        });
        var f = {};
        var o = [];
        var l = Ke.read(r.numbers, {
            type: "base64"
        });
        l.FileIndex.map(function(e, r) {
            return [e, l.FullPaths[r]]
        }).forEach(function(e) {
            var r = e[0]
              , t = e[1];
            if (r.type != 2)
                return;
            if (!r.name.match(/\.iwa/))
                return;
            var a = r.content;
            var n = kb(a);
            var i = mb(n);
            i.forEach(function(e) {
                o.push(e.id);
                f[e.id] = {
                    deps: [],
                    location: t,
                    type: db(e.messages[0].meta[1][0].data)
                }
            })
        });
        o.sort(function(e, r) {
            return e - r
        });
        var c = o.filter(function(e) {
            return e > 1
        }).map(function(e) {
            return [e, ub(e)]
        });
        l.FileIndex.map(function(e, r) {
            return [e, l.FullPaths[r]]
        }).forEach(function(e) {
            var r = e[0]
              , t = e[1];
            if (!r.name.match(/\.iwa/))
                return;
            var a = mb(kb(r.content));
            a.forEach(function(e) {
                e.messages.forEach(function(r) {
                    c.forEach(function(r) {
                        if (e.messages.some(function(e) {
                            return db(e.meta[1][0].data) != 11006 && sb(e.data, r[1])
                        })) {
                            f[r[0]].deps.push(e.id)
                        }
                    })
                })
            })
        });
        function h() {
            for (var e = 927262; e < 2e6; ++e)
                if (!f[e])
                    return e;
            throw new Error("Too many messages")
        }
        var u = Ke.find(l, f[1].location);
        var d = mb(kb(u.content));
        var v;
        for (var p = 0; p < d.length; ++p) {
            var g = d[p];
            if (g.id == 1)
                v = g
        }
        var m = _b(vb(v.messages[0].data)[1][0].data);
        u = Ke.find(l, f[m].location);
        d = mb(kb(u.content));
        for (p = 0; p < d.length; ++p) {
            g = d[p];
            if (g.id == m)
                v = g
        }
        m = _b(vb(v.messages[0].data)[2][0].data);
        u = Ke.find(l, f[m].location);
        d = mb(kb(u.content));
        for (p = 0; p < d.length; ++p) {
            g = d[p];
            if (g.id == m)
                v = g
        }
        m = _b(vb(v.messages[0].data)[2][0].data);
        u = Ke.find(l, f[m].location);
        d = mb(kb(u.content));
        for (p = 0; p < d.length; ++p) {
            g = d[p];
            if (g.id == m)
                v = g
        }
        var b = vb(v.messages[0].data);
        {
            b[6][0].data = ub(a.e.r + 1);
            b[7][0].data = ub(a.e.c + 1);
            var w = _b(b[46][0].data);
            var k = Ke.find(l, f[w].location);
            var T = mb(kb(k.content));
            {
                for (var A = 0; A < T.length; ++A) {
                    if (T[A].id == w)
                        break
                }
                if (T[A].id != w)
                    throw "Bad ColumnRowUIDMapArchive";
                var E = vb(T[A].messages[0].data);
                E[1] = [];
                E[2] = [],
                E[3] = [];
                for (var C = 0; C <= a.e.c; ++C) {
                    var y = [];
                    y[1] = y[2] = [{
                        type: 0,
                        data: ub(C + 420690)
                    }];
                    E[1].push({
                        type: 2,
                        data: pb(y)
                    });
                    E[2].push({
                        type: 0,
                        data: ub(C)
                    });
                    E[3].push({
                        type: 0,
                        data: ub(C)
                    })
                }
                E[4] = [];
                E[5] = [],
                E[6] = [];
                for (var S = 0; S <= a.e.r; ++S) {
                    y = [];
                    y[1] = y[2] = [{
                        type: 0,
                        data: ub(S + 726270)
                    }];
                    E[4].push({
                        type: 2,
                        data: pb(y)
                    });
                    E[5].push({
                        type: 0,
                        data: ub(S)
                    });
                    E[6].push({
                        type: 0,
                        data: ub(S)
                    })
                }
                T[A].messages[0].data = pb(E)
            }
            k.content = Tb(bb(T));
            k.size = k.content.length;
            delete b[46];
            var _ = vb(b[4][0].data);
            {
                _[7][0].data = ub(a.e.r + 1);
                var x = vb(_[1][0].data);
                var O = _b(x[2][0].data);
                k = Ke.find(l, f[O].location);
                T = mb(kb(k.content));
                {
                    if (T[0].id != O)
                        throw "Bad HeaderStorageBucket";
                    var R = vb(T[0].messages[0].data);
                    for (S = 0; S < i.length; ++S) {
                        var I = vb(R[2][0].data);
                        I[1][0].data = ub(S);
                        I[4][0].data = ub(i[S].length);
                        R[2][S] = {
                            type: R[2][0].type,
                            data: pb(I)
                        }
                    }
                    T[0].messages[0].data = pb(R)
                }
                k.content = Tb(bb(T));
                k.size = k.content.length;
                var N = _b(_[2][0].data);
                k = Ke.find(l, f[N].location);
                T = mb(kb(k.content));
                {
                    if (T[0].id != N)
                        throw "Bad HeaderStorageBucket";
                    R = vb(T[0].messages[0].data);
                    for (C = 0; C <= a.e.c; ++C) {
                        I = vb(R[2][0].data);
                        I[1][0].data = ub(C);
                        I[4][0].data = ub(a.e.r + 1);
                        R[2][C] = {
                            type: R[2][0].type,
                            data: pb(I)
                        }
                    }
                    T[0].messages[0].data = pb(R)
                }
                k.content = Tb(bb(T));
                k.size = k.content.length;
                var D = _b(_[4][0].data);
                (function() {
                    var e = Ke.find(l, f[D].location);
                    var r = mb(kb(e.content));
                    var t;
                    for (var a = 0; a < r.length; ++a) {
                        var n = r[a];
                        if (n.id == D)
                            t = n
                    }
                    var i = vb(t.messages[0].data);
                    {
                        i[3] = [];
                        var o = [];
                        s.forEach(function(e, r) {
                            o[1] = [{
                                type: 0,
                                data: ub(r)
                            }];
                            o[2] = [{
                                type: 0,
                                data: ub(1)
                            }];
                            o[3] = [{
                                type: 2,
                                data: ib(e)
                            }];
                            i[3].push({
                                type: 2,
                                data: pb(o)
                            })
                        })
                    }
                    t.messages[0].data = pb(i);
                    var c = bb(r);
                    var h = Tb(c);
                    e.content = h;
                    e.size = e.content.length
                }
                )();
                var F = vb(_[3][0].data);
                {
                    var P = F[1][0];
                    delete F[2];
                    var L = vb(P.data);
                    {
                        var M = _b(L[2][0].data);
                        (function() {
                            var e = Ke.find(l, f[M].location);
                            var r = mb(kb(e.content));
                            var t;
                            for (var n = 0; n < r.length; ++n) {
                                var o = r[n];
                                if (o.id == M)
                                    t = o
                            }
                            var c = vb(t.messages[0].data);
                            {
                                delete c[6];
                                delete F[7];
                                var h = new Uint8Array(c[5][0].data);
                                c[5] = [];
                                var u = 0;
                                for (var d = 0; d <= a.e.r; ++d) {
                                    var v = vb(h);
                                    u += Mb(v, i[d], s);
                                    v[1][0].data = ub(d);
                                    c[5].push({
                                        data: pb(v),
                                        type: 2
                                    })
                                }
                                c[1] = [{
                                    type: 0,
                                    data: ub(a.e.c + 1)
                                }];
                                c[2] = [{
                                    type: 0,
                                    data: ub(a.e.r + 1)
                                }];
                                c[3] = [{
                                    type: 0,
                                    data: ub(u)
                                }];
                                c[4] = [{
                                    type: 0,
                                    data: ub(a.e.r + 1)
                                }]
                            }
                            t.messages[0].data = pb(c);
                            var p = bb(r);
                            var g = Tb(p);
                            e.content = g;
                            e.size = e.content.length
                        }
                        )()
                    }
                    P.data = pb(L)
                }
                _[3][0].data = pb(F)
            }
            b[4][0].data = pb(_)
        }
        v.messages[0].data = pb(b);
        var U = bb(d);
        var B = Tb(U);
        u.content = B;
        u.size = u.content.length;
        return l
    }
    function Bb(e) {
        return function r(t) {
            for (var a = 0; a != e.length; ++a) {
                var n = e[a];
                if (t[n[0]] === undefined)
                    t[n[0]] = n[1];
                if (n[2] === "n")
                    t[n[0]] = Number(t[n[0]])
            }
        }
    }
    function Wb(e) {
        Bb([["cellNF", false], ["cellHTML", true], ["cellFormula", true], ["cellStyles", false], ["cellText", true], ["cellDates", false], ["sheetStubs", false], ["sheetRows", 0, "n"], ["bookDeps", false], ["bookSheets", false], ["bookProps", false], ["bookFiles", false], ["bookVBA", false], ["password", ""], ["WTF", false]])(e)
    }
    function Hb(e) {
        Bb([["cellDates", false], ["bookSST", false], ["bookType", "xlsx"], ["compression", false], ["WTF", false]])(e)
    }
    function zb(e) {
        if (qn.WS.indexOf(e) > -1)
            return "sheet";
        if (qn.CS && e == qn.CS)
            return "chart";
        if (qn.DS && e == qn.DS)
            return "dialog";
        if (qn.MS && e == qn.MS)
            return "macro";
        return e && e.length ? e : "sheet"
    }
    function Vb(e, r) {
        if (!e)
            return 0;
        try {
            e = r.map(function a(r) {
                if (!r.id)
                    r.id = r.strRelID;
                return [r.name, e["!id"][r.id].Target, zb(e["!id"][r.id].Type)]
            })
        } catch (t) {
            return null
        }
        return !e || e.length === 0 ? null : e
    }
    function Gb(e, r, t, a, n, i, s, f, o, l, c, h) {
        try {
            i[a] = Qn(Rr(e, t, true), r);
            var u = Or(e, r);
            var d;
            switch (f) {
            case "sheet":
                d = pg(u, r, n, o, i[a], l, c, h);
                break;
            case "chart":
                d = gg(u, r, n, o, i[a], l, c, h);
                if (!d || !d["!drawel"])
                    break;
                var v = Lr(d["!drawel"].Target, r);
                var p = Zn(v);
                var g = th(Rr(e, v, true), Qn(Rr(e, p, true), v));
                var m = Lr(g, v);
                var b = Zn(m);
                d = Pp(Rr(e, m, true), m, o, Qn(Rr(e, b, true), m), l, d);
                break;
            case "macro":
                d = mg(u, r, n, o, i[a], l, c, h);
                break;
            case "dialog":
                d = bg(u, r, n, o, i[a], l, c, h);
                break;
            default:
                throw new Error("Unrecognized sheet type " + f);
            }
            s[a] = d;
            var w = [];
            if (i && i[a])
                rr(i[a]).forEach(function(t) {
                    var n = "";
                    if (i[a][t].Type == qn.CMNT) {
                        n = Lr(i[a][t].Target, r);
                        var s = Ag(Or(e, n, true), n, o);
                        if (!s || !s.length)
                            return;
                        ih(d, s, false)
                    }
                    if (i[a][t].Type == qn.TCMNT) {
                        n = Lr(i[a][t].Target, r);
                        w = w.concat(oh(Or(e, n, true), o))
                    }
                });
            if (w && w.length)
                ih(d, w, true, o.people || [])
        } catch (k) {
            if (o.WTF)
                throw k
        }
    }
    function jb(e) {
        return e.charAt(0) == "/" ? e.slice(1) : e
    }
    function Xb(e, r) {
        ze();
        r = r || {};
        Wb(r);
        if (_r(e, "META-INF/manifest.xml"))
            return Zm(e, r);
        if (_r(e, "objectdata.xml"))
            return Zm(e, r);
        if (_r(e, "Index/Document.iwa")) {
            if (typeof Uint8Array == "undefined")
                throw new Error("NUMBERS file parsing requires Uint8Array support");
            if (typeof Lb != "undefined") {
                if (e.FileIndex)
                    return Lb(e);
                var t = Ke.utils.cfb_new();
                Nr(e).forEach(function(r) {
                    Dr(t, r, Ir(e, r))
                });
                return Lb(t)
            }
            throw new Error("Unsupported NUMBERS file")
        }
        if (!_r(e, "[Content_Types].xml")) {
            if (_r(e, "index.xml.gz"))
                throw new Error("Unsupported NUMBERS 08 file");
            if (_r(e, "index.xml"))
                throw new Error("Unsupported NUMBERS 09 file");
            throw new Error("Unsupported ZIP file")
        }
        var a = Nr(e);
        var n = Kn(Rr(e, "[Content_Types].xml"));
        var i = false;
        var s, f;
        if (n.workbooks.length === 0) {
            f = "xl/workbook.xml";
            if (Or(e, f, true))
                n.workbooks.push(f)
        }
        if (n.workbooks.length === 0) {
            f = "xl/workbook.bin";
            if (!Or(e, f, true))
                throw new Error("Could not find workbook");
            n.workbooks.push(f);
            i = true
        }
        if (n.workbooks[0].slice(-3) == "bin")
            i = true;
        var o = {};
        var l = {};
        if (!r.bookSheets && !r.bookProps) {
            xd = [];
            if (n.sst)
                try {
                    xd = Tg(Or(e, jb(n.sst)), n.sst, r)
                } catch (c) {
                    if (r.WTF)
                        throw c
                }
            if (r.cellStyles && n.themes.length)
                o = kg(Rr(e, n.themes[0].replace(/^\//, ""), true) || "", n.themes[0], r);
            if (n.style)
                l = wg(Or(e, jb(n.style)), n.style, o, r)
        }
        n.links.map(function(t) {
            try {
                var a = Qn(Rr(e, Zn(jb(t))), t);
                return Cg(Or(e, jb(t)), a, t, r)
            } catch (n) {}
        });
        var h = vg(Or(e, jb(n.workbooks[0])), n.workbooks[0], r);
        var u = {}
          , d = "";
        if (n.coreprops.length) {
            d = Or(e, jb(n.coreprops[0]), true);
            if (d)
                u = hi(d);
            if (n.extprops.length !== 0) {
                d = Or(e, jb(n.extprops[0]), true);
                if (d)
                    mi(d, u, r)
            }
        }
        var v = {};
        if (!r.bookSheets || r.bookProps) {
            if (n.custprops.length !== 0) {
                d = Rr(e, jb(n.custprops[0]), true);
                if (d)
                    v = ki(d, r)
            }
        }
        var p = {};
        if (r.bookSheets || r.bookProps) {
            if (h.Sheets)
                s = h.Sheets.map(function I(e) {
                    return e.name
                });
            else if (u.Worksheets && u.SheetNames.length > 0)
                s = u.SheetNames;
            if (r.bookProps) {
                p.Props = u;
                p.Custprops = v
            }
            if (r.bookSheets && typeof s !== "undefined")
                p.SheetNames = s;
            if (r.bookSheets ? p.SheetNames : r.bookProps)
                return p
        }
        s = {};
        var g = {};
        if (r.bookDeps && n.calcchain)
            g = Eg(Or(e, jb(n.calcchain)), n.calcchain, r);
        var m = 0;
        var b = {};
        var w, k;
        {
            var T = h.Sheets;
            u.Worksheets = T.length;
            u.SheetNames = [];
            for (var A = 0; A != T.length; ++A) {
                u.SheetNames[A] = T[A].name
            }
        }
        var E = i ? "bin" : "xml";
        var C = n.workbooks[0].lastIndexOf("/");
        var y = (n.workbooks[0].slice(0, C + 1) + "_rels/" + n.workbooks[0].slice(C + 1) + ".rels").replace(/^\//, "");
        if (!_r(e, y))
            y = "xl/_rels/workbook." + E + ".rels";
        var S = Qn(Rr(e, y, true), y.replace(/_rels.*/, "s5s"));
        if ((n.metadata || []).length >= 1) {
            r.xlmeta = yg(Or(e, jb(n.metadata[0])), n.metadata[0], r)
        }
        if ((n.people || []).length >= 1) {
            r.people = ch(Or(e, jb(n.people[0])), r)
        }
        if (S)
            S = Vb(S, h.Sheets);
        var _ = Or(e, "xl/worksheets/sheet.xml", true) ? 1 : 0;
        e: for (m = 0; m != u.Worksheets; ++m) {
            var x = "sheet";
            if (S && S[m]) {
                w = "xl/" + S[m][1].replace(/[\/]?xl\//, "");
                if (!_r(e, w))
                    w = S[m][1];
                if (!_r(e, w))
                    w = y.replace(/_rels\/.*$/, "") + S[m][1];
                x = S[m][2]
            } else {
                w = "xl/worksheets/sheet" + (m + 1 - _) + "." + E;
                w = w.replace(/sheet0\./, "sheet.")
            }
            k = w.replace(/^(.*)(\/)([^\/]*)$/, "$1/_rels/$3.rels");
            if (r && r.sheets != null)
                switch (typeof r.sheets) {
                case "number":
                    if (m != r.sheets)
                        continue e;
                    break;
                case "string":
                    if (u.SheetNames[m].toLowerCase() != r.sheets.toLowerCase())
                        continue e;
                    break;
                default:
                    if (Array.isArray && Array.isArray(r.sheets)) {
                        var O = false;
                        for (var R = 0; R != r.sheets.length; ++R) {
                            if (typeof r.sheets[R] == "number" && r.sheets[R] == m)
                                O = 1;
                            if (typeof r.sheets[R] == "string" && r.sheets[R].toLowerCase() == u.SheetNames[m].toLowerCase())
                                O = 1
                        }
                        if (!O)
                            continue e
                    }
                    ;
                }
            Gb(e, w, k, u.SheetNames[m], m, b, s, x, r, h, o, l)
        }
        p = {
            Directory: n,
            Workbook: h,
            Props: u,
            Custprops: v,
            Deps: g,
            Sheets: s,
            SheetNames: u.SheetNames,
            Strings: xd,
            Styles: l,
            Themes: o,
            SSF: br(X)
        };
        if (r && r.bookFiles) {
            if (e.files) {
                p.keys = a;
                p.files = e.files
            } else {
                p.keys = [];
                p.files = {};
                e.FullPaths.forEach(function(r, t) {
                    r = r.replace(/^Root Entry[\/]/, "");
                    p.keys.push(r);
                    p.files[r] = e.FileIndex[t]
                })
            }
        }
        if (r && r.bookVBA) {
            if (n.vba.length > 0)
                p.vbaraw = Or(e, jb(n.vba[0]), true);
            else if (n.defaults && n.defaults.bin === bh)
                p.vbaraw = Or(e, "xl/vbaProject.bin", true)
        }
        return p
    }
    function $b(e, r) {
        var t = r || {};
        var a = "Workbook"
          , n = Ke.find(e, a);
        try {
            a = "/!DataSpaces/Version";
            n = Ke.find(e, a);
            if (!n || !n.content)
                throw new Error("ECMA-376 Encrypted file missing " + a);
            Ko(n.content);
            a = "/!DataSpaces/DataSpaceMap";
            n = Ke.find(e, a);
            if (!n || !n.content)
                throw new Error("ECMA-376 Encrypted file missing " + a);
            var i = qo(n.content);
            if (i.length !== 1 || i[0].comps.length !== 1 || i[0].comps[0].t !== 0 || i[0].name !== "StrongEncryptionDataSpace" || i[0].comps[0].v !== "EncryptedPackage")
                throw new Error("ECMA-376 Encrypted file bad " + a);
            a = "/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace";
            n = Ke.find(e, a);
            if (!n || !n.content)
                throw new Error("ECMA-376 Encrypted file missing " + a);
            var s = Zo(n.content);
            if (s.length != 1 || s[0] != "StrongEncryptionTransform")
                throw new Error("ECMA-376 Encrypted file bad " + a);
            a = "/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary";
            n = Ke.find(e, a);
            if (!n || !n.content)
                throw new Error("ECMA-376 Encrypted file missing " + a);
            el(n.content)
        } catch (f) {}
        a = "/EncryptionInfo";
        n = Ke.find(e, a);
        if (!n || !n.content)
            throw new Error("ECMA-376 Encrypted file missing " + a);
        var o = al(n.content);
        a = "/EncryptedPackage";
        n = Ke.find(e, a);
        if (!n || !n.content)
            throw new Error("ECMA-376 Encrypted file missing " + a);
        if (o[0] == 4 && typeof decrypt_agile !== "undefined")
            return decrypt_agile(o[1], n.content, t.password || "", t);
        if (o[0] == 2 && typeof decrypt_std76 !== "undefined")
            return decrypt_std76(o[1], n.content, t.password || "", t);
        throw new Error("File is password-protected")
    }
    function Yb(e, r) {
        if (r.bookType == "ods")
            return tb(e, r);
        if (r.bookType == "numbers")
            return Ub(e, r);
        if (r.bookType == "xlsb")
            return Kb(e, r);
        return Jb(e, r)
    }
    function Kb(e, r) {
        ah = 1024;
        if (e && !e.SSF) {
            e.SSF = br(X)
        }
        if (e && e.SSF) {
            ze();
            He(e.SSF);
            r.revssf = nr(e.SSF);
            r.revssf[e.SSF[65535]] = 0;
            r.ssf = e.SSF
        }
        r.rels = {};
        r.wbrels = {};
        r.Strings = [];
        r.Strings.Count = 0;
        r.Strings.Unique = 0;
        if (Rd)
            r.revStrings = new Map;
        else {
            r.revStrings = {};
            r.revStrings.foo = [];
            delete r.revStrings.foo
        }
        var t = r.bookType == "xlsb" ? "bin" : "xml";
        var a = Th.indexOf(r.bookType) > -1;
        var n = Yn();
        Hb(r = r || {});
        var i = Fr();
        var s = ""
          , f = 0;
        r.cellXfs = [];
        Fd(r.cellXfs, {}, {
            revssf: {
                General: 0
            }
        });
        if (!e.Props)
            e.Props = {};
        s = "docProps/core.xml";
        Dr(i, s, di(e.Props, r));
        n.coreprops.push(s);
        ri(r.rels, 2, s, qn.CORE_PROPS);
        s = "docProps/app.xml";
        if (e.Props && e.Props.SheetNames) {} else if (!e.Workbook || !e.Workbook.Sheets)
            e.Props.SheetNames = e.SheetNames;
        else {
            var o = [];
            for (var l = 0; l < e.SheetNames.length; ++l)
                if ((e.Workbook.Sheets[l] || {}).Hidden != 2)
                    o.push(e.SheetNames[l]);
            e.Props.SheetNames = o
        }
        e.Props.Worksheets = e.Props.SheetNames.length;
        Dr(i, s, bi(e.Props, r));
        n.extprops.push(s);
        ri(r.rels, 3, s, qn.EXT_PROPS);
        if (e.Custprops !== e.Props && rr(e.Custprops || {}).length > 0) {
            s = "docProps/custom.xml";
            Dr(i, s, Ti(e.Custprops, r));
            n.custprops.push(s);
            ri(r.rels, 4, s, qn.CUST_PROPS)
        }
        for (f = 1; f <= e.SheetNames.length; ++f) {
            var c = {
                "!id": {}
            };
            var h = e.Sheets[e.SheetNames[f - 1]];
            var u = (h || {})["!type"] || "sheet";
            switch (u) {
            case "chart":
                ;
            default:
                s = "xl/worksheets/sheet" + f + "." + t;
                Dr(i, s, _g(f - 1, s, r, e, c));
                n.sheets.push(s);
                ri(r.wbrels, -1, "worksheets/sheet" + f + "." + t, qn.WS[0]);
            }
            if (h) {
                var d = h["!comments"];
                var v = false;
                var p = "";
                if (d && d.length > 0) {
                    p = "xl/comments" + f + "." + t;
                    Dr(i, p, Ig(d, p, r));
                    n.comments.push(p);
                    ri(c, -1, "../comments" + f + "." + t, qn.CMNT);
                    v = true
                }
                if (h["!legacy"]) {
                    if (v)
                        Dr(i, "xl/drawings/vmlDrawing" + f + ".vml", nh(f, h["!comments"]))
                }
                delete h["!comments"];
                delete h["!legacy"]
            }
            if (c["!id"].rId1)
                Dr(i, Zn(s), ei(c))
        }
        if (r.Strings != null && r.Strings.length > 0) {
            s = "xl/sharedStrings." + t;
            Dr(i, s, Rg(r.Strings, s, r));
            n.strs.push(s);
            ri(r.wbrels, -1, "sharedStrings." + t, qn.SST)
        }
        s = "xl/workbook." + t;
        Dr(i, s, Sg(e, s, r));
        n.workbooks.push(s);
        ri(r.rels, 1, s, qn.WB);
        s = "xl/theme/theme1.xml";
        Dr(i, s, Ic(e.Themes, r));
        n.themes.push(s);
        ri(r.wbrels, -1, "theme/theme1.xml", qn.THEME);
        s = "xl/styles." + t;
        Dr(i, s, Og(e, s, r));
        n.styles.push(s);
        ri(r.wbrels, -1, "styles." + t, qn.STY);
        if (e.vbaraw && a) {
            s = "xl/vbaProject.bin";
            Dr(i, s, e.vbaraw);
            n.vba.push(s);
            ri(r.wbrels, -1, "vbaProject.bin", qn.VBA)
        }
        s = "xl/metadata." + t;
        Dr(i, s, Ng(s));
        n.metadata.push(s);
        ri(r.wbrels, -1, "metadata." + t, qn.XLMETA);
        Dr(i, "[Content_Types].xml", Jn(n, r));
        Dr(i, "_rels/.rels", ei(r.rels));
        Dr(i, "xl/_rels/workbook." + t + ".rels", ei(r.wbrels));
        delete r.revssf;
        delete r.ssf;
        return i
    }
    function Jb(e, r) {
        ah = 1024;
        if (e && !e.SSF) {
            e.SSF = br(X)
        }
        if (e && e.SSF) {
            ze();
            He(e.SSF);
            r.revssf = nr(e.SSF);
            r.revssf[e.SSF[65535]] = 0;
            r.ssf = e.SSF
        }
        r.rels = {};
        r.wbrels = {};
        r.Strings = [];
        r.Strings.Count = 0;
        r.Strings.Unique = 0;
        if (Rd)
            r.revStrings = new Map;
        else {
            r.revStrings = {};
            r.revStrings.foo = [];
            delete r.revStrings.foo
        }
        var t = "xml";
        var a = Th.indexOf(r.bookType) > -1;
        var n = Yn();
        Hb(r = r || {});
        var i = Fr();
        var s = ""
          , f = 0;
        r.cellXfs = [];
        Fd(r.cellXfs, {}, {
            revssf: {
                General: 0
            }
        });
        if (!e.Props)
            e.Props = {};
        s = "docProps/core.xml";
        Dr(i, s, di(e.Props, r));
        n.coreprops.push(s);
        ri(r.rels, 2, s, qn.CORE_PROPS);
        s = "docProps/app.xml";
        if (e.Props && e.Props.SheetNames) {} else if (!e.Workbook || !e.Workbook.Sheets)
            e.Props.SheetNames = e.SheetNames;
        else {
            var o = [];
            for (var l = 0; l < e.SheetNames.length; ++l)
                if ((e.Workbook.Sheets[l] || {}).Hidden != 2)
                    o.push(e.SheetNames[l]);
            e.Props.SheetNames = o
        }
        e.Props.Worksheets = e.Props.SheetNames.length;
        Dr(i, s, bi(e.Props, r));
        n.extprops.push(s);
        ri(r.rels, 3, s, qn.EXT_PROPS);
        if (e.Custprops !== e.Props && rr(e.Custprops || {}).length > 0) {
            s = "docProps/custom.xml";
            Dr(i, s, Ti(e.Custprops, r));
            n.custprops.push(s);
            ri(r.rels, 4, s, qn.CUST_PROPS)
        }
        var c = ["SheetJ5"];
        r.tcid = 0;
        for (f = 1; f <= e.SheetNames.length; ++f) {
            var h = {
                "!id": {}
            };
            var u = e.Sheets[e.SheetNames[f - 1]];
            var d = (u || {})["!type"] || "sheet";
            switch (d) {
            case "chart":
                ;
            default:
                s = "xl/worksheets/sheet" + f + "." + t;
                Dr(i, s, pv(f - 1, r, e, h));
                n.sheets.push(s);
                ri(r.wbrels, -1, "worksheets/sheet" + f + "." + t, qn.WS[0]);
            }
            if (u) {
                var v = u["!comments"];
                var p = false;
                var g = "";
                if (v && v.length > 0) {
                    var m = false;
                    v.forEach(function(e) {
                        e[1].forEach(function(e) {
                            if (e.T == true)
                                m = true
                        })
                    });
                    if (m) {
                        g = "xl/threadedComments/threadedComment" + f + "." + t;
                        Dr(i, g, lh(v, c, r));
                        n.threadedcomments.push(g);
                        ri(h, -1, "../threadedComments/threadedComment" + f + "." + t, qn.TCMNT)
                    }
                    g = "xl/comments" + f + "." + t;
                    Dr(i, g, fh(v, r));
                    n.comments.push(g);
                    ri(h, -1, "../comments" + f + "." + t, qn.CMNT);
                    p = true
                }
                if (u["!legacy"]) {
                    if (p)
                        Dr(i, "xl/drawings/vmlDrawing" + f + ".vml", nh(f, u["!comments"]))
                }
                delete u["!comments"];
                delete u["!legacy"]
            }
            if (h["!id"].rId1)
                Dr(i, Zn(s), ei(h))
        }
        if (r.Strings != null && r.Strings.length > 0) {
            s = "xl/sharedStrings." + t;
            Dr(i, s, Ho(r.Strings, r));
            n.strs.push(s);
            ri(r.wbrels, -1, "sharedStrings." + t, qn.SST)
        }
        s = "xl/workbook." + t;
        Dr(i, s, rg(e, r));
        n.workbooks.push(s);
        ri(r.rels, 1, s, qn.WB);
        s = "xl/theme/theme1.xml";
        Dr(i, s, Ic(e.Themes, r));
        n.themes.push(s);
        ri(r.wbrels, -1, "theme/theme1.xml", qn.THEME);
        s = "xl/styles." + t;
        Dr(i, s, $l(e, r));
        n.styles.push(s);
        ri(r.wbrels, -1, "styles." + t, qn.STY);
        if (e.vbaraw && a) {
            s = "xl/vbaProject.bin";
            Dr(i, s, e.vbaraw);
            n.vba.push(s);
            ri(r.wbrels, -1, "vbaProject.bin", qn.VBA)
        }
        s = "xl/metadata." + t;
        Dr(i, s, Jc());
        n.metadata.push(s);
        ri(r.wbrels, -1, "metadata." + t, qn.XLMETA);
        if (c.length > 1) {
            s = "xl/persons/person.xml";
            Dr(i, s, hh(c, r));
            n.people.push(s);
            ri(r.wbrels, -1, "persons/person.xml", qn.PEOPLE)
        }
        Dr(i, "[Content_Types].xml", Jn(n, r));
        Dr(i, "_rels/.rels", ei(r.rels));
        Dr(i, "xl/_rels/workbook." + t + ".rels", ei(r.wbrels));
        delete r.revssf;
        delete r.ssf;
        return i
    }
    function qb(e, r) {
        var t = "";
        switch ((r || {}).type || "base64") {
        case "buffer":
            return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]];
        case "base64":
            t = k(e.slice(0, 12));
            break;
        case "binary":
            t = e;
            break;
        case "array":
            return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]];
        default:
            throw new Error("Unrecognized type " + (r && r.type || "undefined"));
        }
        return [t.charCodeAt(0), t.charCodeAt(1), t.charCodeAt(2), t.charCodeAt(3), t.charCodeAt(4), t.charCodeAt(5), t.charCodeAt(6), t.charCodeAt(7)]
    }
    function Zb(e, r) {
        if (Ke.find(e, "EncryptedPackage"))
            return $b(e, r);
        return vm(e, r)
    }
    function Qb(e, r) {
        var t, a = e;
        var n = r || {};
        if (!n.type)
            n.type = T && Buffer.isBuffer(e) ? "buffer" : "base64";
        t = Pr(a, n);
        return Xb(t, n)
    }
    function ew(e, r) {
        var t = 0;
        e: while (t < e.length)
            switch (e.charCodeAt(t)) {
            case 10:
                ;
            case 13:
                ;
            case 32:
                ++t;
                break;
            case 60:
                return jg(e.slice(t), r);
            default:
                break e;
            }
        return So.to_workbook(e, r)
    }
    function rw(e, r) {
        var t = ""
          , a = qb(e, r);
        switch (r.type) {
        case "base64":
            t = k(e);
            break;
        case "binary":
            t = e;
            break;
        case "buffer":
            t = e.toString("binary");
            break;
        case "array":
            t = mr(e);
            break;
        default:
            throw new Error("Unrecognized type " + r.type);
        }
        if (a[0] == 239 && a[1] == 187 && a[2] == 191)
            t = lt(t);
        r.type = "binary";
        return ew(t, r)
    }
    function tw(e, r) {
        var t = e;
        if (r.type == "base64")
            t = k(t);
        t = a.utils.decode(1200, t.slice(2), "str");
        r.type = "binary";
        return ew(t, r)
    }
    function aw(e) {
        return !e.match(/[^\x00-\x7F]/) ? e : ct(e)
    }
    function nw(e, r, t, a) {
        if (a) {
            t.type = "string";
            return So.to_workbook(e, t)
        }
        return So.to_workbook(r, t)
    }
    function iw(e, r) {
        l();
        var t = r || {};
        if (typeof ArrayBuffer !== "undefined" && e instanceof ArrayBuffer)
            return iw(new Uint8Array(e), (t = br(t),
            t.type = "array",
            t));
        if (typeof Uint8Array !== "undefined" && e instanceof Uint8Array && !t.type)
            t.type = typeof Deno !== "undefined" ? "buffer" : "array";
        var a = e
          , n = [0, 0, 0, 0]
          , i = false;
        if (t.cellStyles) {
            t.cellNF = true;
            t.sheetStubs = true
        }
        Od = {};
        if (t.dateNF)
            Od.dateNF = t.dateNF;
        if (!t.type)
            t.type = T && Buffer.isBuffer(e) ? "buffer" : "base64";
        if (t.type == "file") {
            t.type = T ? "buffer" : "binary";
            a = er(e);
            if (typeof Uint8Array !== "undefined" && !T)
                t.type = "array"
        }
        if (t.type == "string") {
            i = true;
            t.type = "binary";
            t.codepage = 65001;
            a = aw(e)
        }
        if (t.type == "array" && typeof Uint8Array !== "undefined" && e instanceof Uint8Array && typeof ArrayBuffer !== "undefined") {
            var s = new ArrayBuffer(3)
              , f = new Uint8Array(s);
            f.foo = "bar";
            if (!f.foo) {
                t = br(t);
                t.type = "array";
                return iw(O(a), t)
            }
        }
        switch ((n = qb(a, t))[0]) {
        case 208:
            if (n[1] === 207 && n[2] === 17 && n[3] === 224 && n[4] === 161 && n[5] === 177 && n[6] === 26 && n[7] === 225)
                return Zb(Ke.read(a, t), t);
            break;
        case 9:
            if (n[1] <= 8)
                return vm(a, t);
            break;
        case 60:
            return jg(a, t);
        case 73:
            if (n[1] === 73 && n[2] === 42 && n[3] === 0)
                throw new Error("TIFF Image File is not a spreadsheet");
            if (n[1] === 68)
                return _o(a, t);
            break;
        case 84:
            if (n[1] === 65 && n[2] === 66 && n[3] === 76)
                return Co.to_workbook(a, t);
            break;
        case 80:
            return n[1] === 75 && n[2] < 9 && n[3] < 9 ? Qb(a, t) : nw(e, a, t, i);
        case 239:
            return n[3] === 60 ? jg(a, t) : nw(e, a, t, i);
        case 255:
            if (n[1] === 254) {
                return tw(a, t)
            } else if (n[1] === 0 && n[2] === 2 && n[3] === 0)
                return xo.to_workbook(a, t);
            break;
        case 0:
            if (n[1] === 0) {
                if (n[2] >= 2 && n[3] === 0)
                    return xo.to_workbook(a, t);
                if (n[2] === 0 && (n[3] === 8 || n[3] === 9))
                    return xo.to_workbook(a, t)
            }
            break;
        case 3:
            ;
        case 131:
            ;
        case 139:
            ;
        case 140:
            return Ao.to_workbook(a, t);
        case 123:
            if (n[1] === 92 && n[2] === 114 && n[3] === 116)
                return gl.to_workbook(a, t);
            break;
        case 10:
            ;
        case 13:
            ;
        case 32:
            return rw(a, t);
        case 137:
            if (n[1] === 80 && n[2] === 78 && n[3] === 71)
                throw new Error("PNG Image File is not a spreadsheet");
            break;
        }
        if (To.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31)
            return Ao.to_workbook(a, t);
        return nw(e, a, t, i)
    }
    function sw(e, r) {
        var t = r || {};
        t.type = "file";
        return iw(e, t)
    }
    function fw(e, r) {
        switch (r.type) {
        case "base64":
            ;
        case "binary":
            break;
        case "buffer":
            ;
        case "array":
            r.type = "";
            break;
        case "file":
            return Qe(r.file, Ke.write(e, {
                type: T ? "buffer" : ""
            }));
        case "string":
            throw new Error("'string' output type invalid for '" + r.bookType + "' files");
        default:
            throw new Error("Unrecognized type " + r.type);
        }
        return Ke.write(e, r)
    }
    function ow(e, r) {
        var t = br(r || {});
        var a = Yb(e, t);
        return cw(a, t)
    }
    function lw(e, r) {
        var t = br(r || {});
        var a = Jb(e, t);
        return cw(a, t)
    }
    function cw(e, r) {
        var t = {};
        var a = T ? "nodebuffer" : typeof Uint8Array !== "undefined" ? "array" : "string";
        if (r.compression)
            t.compression = "DEFLATE";
        if (r.password)
            t.type = a;
        else
            switch (r.type) {
            case "base64":
                t.type = "base64";
                break;
            case "binary":
                t.type = "string";
                break;
            case "string":
                throw new Error("'string' output type invalid for '" + r.bookType + "' files");
            case "buffer":
                ;
            case "file":
                t.type = a;
                break;
            default:
                throw new Error("Unrecognized type " + r.type);
            }
        var n = e.FullPaths ? Ke.write(e, {
            fileType: "zip",
            type: {
                nodebuffer: "buffer",
                string: "binary"
            }[t.type] || t.type,
            compression: !!r.compression
        }) : e.generate(t);
        if (typeof Deno !== "undefined") {
            if (typeof n == "string") {
                if (r.type == "binary" || r.type == "base64")
                    return n;
                n = new Uint8Array(S(n))
            }
        }
        if (r.password && typeof encrypt_agile !== "undefined")
            return fw(encrypt_agile(n, r.password), r);
        if (r.type === "file")
            return Qe(r.file, n);
        return r.type == "string" ? lt(n) : n
    }
    function hw(e, r) {
        var t = r || {};
        var a = pm(e, t);
        return fw(a, t)
    }
    function uw(e, r, t) {
        if (!t)
            t = "";
        var a = t + e;
        switch (r.type) {
        case "base64":
            return w(ct(a));
        case "binary":
            return ct(a);
        case "string":
            return e;
        case "file":
            return Qe(r.file, a, "utf8");
        case "buffer":
            {
                if (T)
                    return A(a, "utf8");
                else if (typeof TextEncoder !== "undefined")
                    return (new TextEncoder).encode(a);
                else
                    return uw(a, {
                        type: "binary"
                    }).split("").map(function(e) {
                        return e.charCodeAt(0)
                    })
            }
            ;
        }
        throw new Error("Unrecognized type " + r.type)
    }
    function dw(e, r) {
        switch (r.type) {
        case "base64":
            return w(e);
        case "binary":
            return e;
        case "string":
            return e;
        case "file":
            return Qe(r.file, e, "binary");
        case "buffer":
            {
                if (T)
                    return A(e, "binary");
                else
                    return e.split("").map(function(e) {
                        return e.charCodeAt(0)
                    })
            }
            ;
        }
        throw new Error("Unrecognized type " + r.type)
    }
    function vw(e, r) {
        switch (r.type) {
        case "string":
            ;
        case "base64":
            ;
        case "binary":
            var t = "";
            for (var a = 0; a < e.length; ++a)
                t += String.fromCharCode(e[a]);
            return r.type == "base64" ? w(t) : r.type == "string" ? lt(t) : t;
        case "file":
            return Qe(r.file, e);
        case "buffer":
            return e;
        default:
            throw new Error("Unrecognized type " + r.type);
        }
    }
    function pw(e, r) {
        l();
        Zp(e);
        var t = br(r || {});
        if (t.cellStyles) {
            t.cellNF = true;
            t.sheetStubs = true
        }
        if (t.type == "array") {
            t.type = "binary";
            var a = pw(e, t);
            t.type = "array";
            return S(a)
        }
        return lw(e, t)
    }
    function gw(e, r) {
        l();
        Zp(e);
        var t = br(r || {});
        if (t.cellStyles) {
            t.cellNF = true;
            t.sheetStubs = true
        }
        if (t.type == "array") {
            t.type = "binary";
            var a = gw(e, t);
            t.type = "array";
            return S(a)
        }
        var n = 0;
        if (t.sheet) {
            if (typeof t.sheet == "number")
                n = t.sheet;
            else
                n = e.SheetNames.indexOf(t.sheet);
            if (!e.SheetNames[n])
                throw new Error("Sheet not found: " + t.sheet + " : " + typeof t.sheet)
        }
        switch (t.bookType || "xlsb") {
        case "xml":
            ;
        case "xlml":
            return uw(nm(e, t), t);
        case "slk":
            ;
        case "sylk":
            return uw(Eo.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "htm":
            ;
        case "html":
            return uw(Vm(e.Sheets[e.SheetNames[n]], t), t);
        case "txt":
            return dw(Sw(e.Sheets[e.SheetNames[n]], t), t);
        case "csv":
            return uw(yw(e.Sheets[e.SheetNames[n]], t), t, "\ufeff");
        case "dif":
            return uw(Co.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "dbf":
            return vw(Ao.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "prn":
            return uw(So.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "rtf":
            return uw(gl.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "eth":
            return uw(yo.from_sheet(e.Sheets[e.SheetNames[n]], t), t);
        case "fods":
            return uw(tb(e, t), t);
        case "wk1":
            return vw(xo.sheet_to_wk1(e.Sheets[e.SheetNames[n]], t), t);
        case "wk3":
            return vw(xo.book_to_wk3(e, t), t);
        case "biff2":
            if (!t.biff)
                t.biff = 2;
        case "biff3":
            if (!t.biff)
                t.biff = 3;
        case "biff4":
            if (!t.biff)
                t.biff = 4;
            return vw(Lm(e, t), t);
        case "biff5":
            if (!t.biff)
                t.biff = 5;
        case "biff8":
            ;
        case "xla":
            ;
        case "xls":
            if (!t.biff)
                t.biff = 8;
            return hw(e, t);
        case "xlsx":
            ;
        case "xlsm":
            ;
        case "xlam":
            ;
        case "xlsb":
            ;
        case "numbers":
            ;
        case "ods":
            return ow(e, t);
        default:
            throw new Error("Unrecognized bookType |" + t.bookType + "|");
        }
    }
    function mw(e) {
        if (e.bookType)
            return;
        var r = {
            xls: "biff8",
            htm: "html",
            slk: "sylk",
            socialcalc: "eth",
            Sh33tJS: "WTF"
        };
        var t = e.file.slice(e.file.lastIndexOf(".")).toLowerCase();
        if (t.match(/^\.[a-z]+$/))
            e.bookType = t.slice(1);
        e.bookType = r[e.bookType] || e.bookType
    }
    function bw(e, r, t) {
        var a = t || {};
        a.type = "file";
        a.file = r;
        mw(a);
        return gw(e, a)
    }
    function ww(e, r, t) {
        var a = t || {};
        a.type = "file";
        a.file = r;
        mw(a);
        return pw(e, a)
    }
    function kw(e, r, t, a) {
        var n = t || {};
        n.type = "file";
        n.file = e;
        mw(n);
        n.type = "buffer";
        var i = a;
        if (!(i instanceof Function))
            i = t;
        return Je.writeFile(e, gw(r, n), i)
    }
    function Tw(e, r, t, a, n, i, s, f) {
        var o = Ta(t);
        var l = f.defval
          , c = f.raw || !Object.prototype.hasOwnProperty.call(f, "raw");
        var h = true;
        var u = n === 1 ? [] : {};
        if (n !== 1) {
            if (Object.defineProperty)
                try {
                    Object.defineProperty(u, "__rowNum__", {
                        value: t,
                        enumerable: false
                    })
                } catch (d) {
                    u.__rowNum__ = t
                }
            else
                u.__rowNum__ = t
        }
        if (!s || e[t])
            for (var v = r.s.c; v <= r.e.c; ++v) {
                var p = s ? e[t][v] : e[a[v] + o];
                if (p === undefined || p.t === undefined) {
                    if (l === undefined)
                        continue;
                    if (i[v] != null) {
                        u[i[v]] = l
                    }
                    continue
                }
                var g = p.v;
                switch (p.t) {
                case "z":
                    if (g == null)
                        break;
                    continue;
                case "e":
                    g = g == 0 ? null : void 0;
                    break;
                case "s":
                    ;
                case "d":
                    ;
                case "b":
                    ;
                case "n":
                    break;
                default:
                    throw new Error("unrecognized type " + p.t);
                }
                if (i[v] != null) {
                    if (g == null) {
                        if (p.t == "e" && g === null)
                            u[i[v]] = null;
                        else if (l !== undefined)
                            u[i[v]] = l;
                        else if (c && g === null)
                            u[i[v]] = null;
                        else
                            continue
                    } else {
                        u[i[v]] = c && (p.t !== "n" || p.t === "n" && f.rawNumbers !== false) ? g : Pa(p, g, f)
                    }
                    if (g != null)
                        h = false
                }
            }
        return {
            row: u,
            isempty: h
        }
    }
    function Aw(e, r) {
        if (e == null || e["!ref"] == null)
            return [];
        var t = {
            t: "n",
            v: 0
        }
          , a = 0
          , n = 1
          , i = []
          , s = 0
          , f = "";
        var o = {
            s: {
                r: 0,
                c: 0
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var l = r || {};
        var c = l.range != null ? l.range : e["!ref"];
        if (l.header === 1)
            a = 1;
        else if (l.header === "A")
            a = 2;
        else if (Array.isArray(l.header))
            a = 3;
        else if (l.header == null)
            a = 0;
        switch (typeof c) {
        case "string":
            o = Da(c);
            break;
        case "number":
            o = Da(e["!ref"]);
            o.s.r = c;
            break;
        default:
            o = c;
        }
        if (a > 0)
            n = 0;
        var h = Ta(o.s.r);
        var u = [];
        var d = [];
        var v = 0
          , p = 0;
        var g = Array.isArray(e);
        var m = o.s.r
          , b = 0;
        var w = {};
        if (g && !e[m])
            e[m] = [];
        var k = l.skipHidden && e["!cols"] || [];
        var T = l.skipHidden && e["!rows"] || [];
        for (b = o.s.c; b <= o.e.c; ++b) {
            if ((k[b] || {}).hidden)
                continue;
            u[b] = ya(b);
            t = g ? e[m][b] : e[u[b] + h];
            switch (a) {
            case 1:
                i[b] = b - o.s.c;
                break;
            case 2:
                i[b] = u[b];
                break;
            case 3:
                i[b] = l.header[b - o.s.c];
                break;
            default:
                if (t == null)
                    t = {
                        w: "__EMPTY",
                        t: "s"
                    };
                f = s = Pa(t, null, l);
                p = w[s] || 0;
                if (!p)
                    w[s] = 1;
                else {
                    do {
                        f = s + "_" + p++
                    } while (w[f]);
                    w[s] = p;
                    w[f] = 1
                }
                i[b] = f;
            }
        }
        for (m = o.s.r + n; m <= o.e.r; ++m) {
            if ((T[m] || {}).hidden)
                continue;
            var A = Tw(e, o, m, u, a, i, g, l);
            if (A.isempty === false || (a === 1 ? l.blankrows !== false : !!l.blankrows))
                d[v++] = A.row
        }
        d.length = v;
        return d
    }
    var Ew = /"/g;
    function Cw(e, r, t, a, n, i, s, f) {
        var o = true;
        var l = []
          , c = ""
          , h = Ta(t);
        for (var u = r.s.c; u <= r.e.c; ++u) {
            if (!a[u])
                continue;
            var d = f.dense ? (e[t] || [])[u] : e[a[u] + h];
            if (d == null)
                c = "";
            else if (d.v != null) {
                o = false;
                c = "" + (f.rawNumbers && d.t == "n" ? d.v : Pa(d, null, f));
                for (var v = 0, p = 0; v !== c.length; ++v)
                    if ((p = c.charCodeAt(v)) === n || p === i || p === 34 || f.forceQuotes) {
                        c = '"' + c.replace(Ew, '""') + '"';
                        break
                    }
                if (c == "ID")
                    c = '"ID"'
            } else if (d.f != null && !d.F) {
                o = false;
                c = "=" + d.f;
                if (c.indexOf(",") >= 0)
                    c = '"' + c.replace(Ew, '""') + '"'
            } else
                c = "";
            l.push(c)
        }
        if (f.blankrows === false && o)
            return null;
        return l.join(s)
    }
    function yw(e, r) {
        var t = [];
        var a = r == null ? {} : r;
        if (e == null || e["!ref"] == null)
            return "";
        var n = Da(e["!ref"]);
        var i = a.FS !== undefined ? a.FS : ","
          , s = i.charCodeAt(0);
        var f = a.RS !== undefined ? a.RS : "\n"
          , o = f.charCodeAt(0);
        var l = new RegExp((i == "|" ? "\\|" : i) + "+$");
        var c = ""
          , h = [];
        a.dense = Array.isArray(e);
        var u = a.skipHidden && e["!cols"] || [];
        var d = a.skipHidden && e["!rows"] || [];
        for (var v = n.s.c; v <= n.e.c; ++v)
            if (!(u[v] || {}).hidden)
                h[v] = ya(v);
        var p = 0;
        for (var g = n.s.r; g <= n.e.r; ++g) {
            if ((d[g] || {}).hidden)
                continue;
            c = Cw(e, n, g, h, s, o, i, a);
            if (c == null) {
                continue
            }
            if (a.strip)
                c = c.replace(l, "");
            if (c || a.blankrows !== false)
                t.push((p++ ? f : "") + c)
        }
        delete a.dense;
        return t.join("")
    }
    function Sw(e, r) {
        if (!r)
            r = {};
        r.FS = "\t";
        r.RS = "\n";
        var t = yw(e, r);
        if (typeof a == "undefined" || r.type == "string")
            return t;
        var n = a.utils.encode(1200, t, "str");
        return String.fromCharCode(255) + String.fromCharCode(254) + n
    }
    function _w(e) {
        var r = "", t, a = "";
        if (e == null || e["!ref"] == null)
            return [];
        var n = Da(e["!ref"]), i = "", s = [], f;
        var o = [];
        var l = Array.isArray(e);
        for (f = n.s.c; f <= n.e.c; ++f)
            s[f] = ya(f);
        for (var c = n.s.r; c <= n.e.r; ++c) {
            i = Ta(c);
            for (f = n.s.c; f <= n.e.c; ++f) {
                r = s[f] + i;
                t = l ? (e[c] || [])[f] : e[r];
                a = "";
                if (t === undefined)
                    continue;
                else if (t.F != null) {
                    r = t.F;
                    if (!t.f)
                        continue;
                    a = t.f;
                    if (r.indexOf(":") == -1)
                        r = r + ":" + r
                }
                if (t.f != null)
                    a = t.f;
                else if (t.t == "z")
                    continue;
                else if (t.t == "n" && t.v != null)
                    a = "" + t.v;
                else if (t.t == "b")
                    a = t.v ? "TRUE" : "FALSE";
                else if (t.w !== undefined)
                    a = "'" + t.w;
                else if (t.v === undefined)
                    continue;
                else if (t.t == "s")
                    a = "'" + t.v;
                else
                    a = "" + t.v;
                o[o.length] = r + "=" + a
            }
        }
        return o
    }
    function xw(e, r, t) {
        var a = t || {};
        var n = +!a.skipHeader;
        var i = e || {};
        var s = 0
          , f = 0;
        if (i && a.origin != null) {
            if (typeof a.origin == "number")
                s = a.origin;
            else {
                var o = typeof a.origin == "string" ? Oa(a.origin) : a.origin;
                s = o.r;
                f = o.c
            }
        }
        var l;
        var c = {
            s: {
                c: 0,
                r: 0
            },
            e: {
                c: f,
                r: s + r.length - 1 + n
            }
        };
        if (i["!ref"]) {
            var h = Da(i["!ref"]);
            c.e.c = Math.max(c.e.c, h.e.c);
            c.e.r = Math.max(c.e.r, h.e.r);
            if (s == -1) {
                s = h.e.r + 1;
                c.e.r = s + r.length - 1 + n
            }
        } else {
            if (s == -1) {
                s = 0;
                c.e.r = r.length - 1 + n
            }
        }
        var u = a.header || []
          , d = 0;
        r.forEach(function(e, r) {
            rr(e).forEach(function(t) {
                if ((d = u.indexOf(t)) == -1)
                    u[d = u.length] = t;
                var o = e[t];
                var c = "z";
                var h = "";
                var v = Ra({
                    c: f + d,
                    r: s + r + n
                });
                l = Rw(i, v);
                if (o && typeof o === "object" && !(o instanceof Date)) {
                    i[v] = o
                } else {
                    if (typeof o == "number")
                        c = "n";
                    else if (typeof o == "boolean")
                        c = "b";
                    else if (typeof o == "string")
                        c = "s";
                    else if (o instanceof Date) {
                        c = "d";
                        if (!a.cellDates) {
                            c = "n";
                            o = fr(o)
                        }
                        h = a.dateNF || X[14]
                    } else if (o === null && a.nullError) {
                        c = "e";
                        o = 0
                    }
                    if (!l)
                        i[v] = l = {
                            t: c,
                            v: o
                        };
                    else {
                        l.t = c;
                        l.v = o;
                        delete l.w;
                        delete l.R;
                        if (h)
                            l.z = h
                    }
                    if (h)
                        l.z = h
                }
            })
        });
        c.e.c = Math.max(c.e.c, f + u.length - 1);
        var v = Ta(s);
        if (n)
            for (d = 0; d < u.length; ++d)
                i[ya(d + f) + v] = {
                    t: "s",
                    v: u[d]
                };
        i["!ref"] = Na(c);
        return i
    }
    function Ow(e, r) {
        return xw(null, e, r)
    }
    function Rw(e, r, t) {
        if (typeof r == "string") {
            if (Array.isArray(e)) {
                var a = Oa(r);
                if (!e[a.r])
                    e[a.r] = [];
                return e[a.r][a.c] || (e[a.r][a.c] = {
                    t: "z"
                })
            }
            return e[r] || (e[r] = {
                t: "z"
            })
        }
        if (typeof r != "number")
            return Rw(e, Ra(r));
        return Rw(e, Ra({
            r: r,
            c: t || 0
        }))
    }
    function Iw(e, r) {
        if (typeof r == "number") {
            if (r >= 0 && e.SheetNames.length > r)
                return r;
            throw new Error("Cannot find sheet # " + r)
        } else if (typeof r == "string") {
            var t = e.SheetNames.indexOf(r);
            if (t > -1)
                return t;
            throw new Error("Cannot find sheet name |" + r + "|")
        } else
            throw new Error("Cannot find sheet |" + r + "|")
    }
    function Nw() {
        return {
            SheetNames: [],
            Sheets: {}
        }
    }
    function Dw(e, r, t, a) {
        var n = 1;
        if (!t)
            for (; n <= 65535; ++n,
            t = undefined)
                if (e.SheetNames.indexOf(t = "Sheet" + n) == -1)
                    break;
        if (!t || e.SheetNames.length >= 65535)
            throw new Error("Too many worksheets");
        if (a && e.SheetNames.indexOf(t) >= 0) {
            var i = t.match(/(^.*?)(\d+)$/);
            n = i && +i[2] || 0;
            var s = i && i[1] || t;
            for (++n; n <= 65535; ++n)
                if (e.SheetNames.indexOf(t = s + n) == -1)
                    break
        }
        Jp(t);
        if (e.SheetNames.indexOf(t) >= 0)
            throw new Error("Worksheet with name |" + t + "| already exists!");
        e.SheetNames.push(t);
        e.Sheets[t] = r;
        return t
    }
    function Fw(e, r, t) {
        if (!e.Workbook)
            e.Workbook = {};
        if (!e.Workbook.Sheets)
            e.Workbook.Sheets = [];
        var a = Iw(e, r);
        if (!e.Workbook.Sheets[a])
            e.Workbook.Sheets[a] = {};
        switch (t) {
        case 0:
            ;
        case 1:
            ;
        case 2:
            break;
        default:
            throw new Error("Bad sheet visibility setting " + t);
        }
        e.Workbook.Sheets[a].Hidden = t
    }
    function Pw(e, r) {
        e.z = r;
        return e
    }
    function Lw(e, r, t) {
        if (!r) {
            delete e.l
        } else {
            e.l = {
                Target: r
            };
            if (t)
                e.l.Tooltip = t
        }
        return e
    }
    function Mw(e, r, t) {
        return Lw(e, "#" + r, t)
    }
    function Uw(e, r, t) {
        if (!e.c)
            e.c = [];
        e.c.push({
            t: r,
            a: t || "SheetJS"
        })
    }
    function Bw(e, r, t, a) {
        var n = typeof r != "string" ? r : Da(r);
        var i = typeof r == "string" ? r : Na(r);
        for (var s = n.s.r; s <= n.e.r; ++s)
            for (var f = n.s.c; f <= n.e.c; ++f) {
                var o = Rw(e, s, f);
                o.t = "n";
                o.F = i;
                delete o.v;
                if (s == n.s.r && f == n.s.c) {
                    o.f = t;
                    if (a)
                        o.D = true
                }
            }
        return e
    }
    var Ww = {
        encode_col: ya,
        encode_row: Ta,
        encode_cell: Ra,
        encode_range: Na,
        decode_col: Ca,
        decode_row: ka,
        split_cell: xa,
        decode_cell: Oa,
        decode_range: Ia,
        format_cell: Pa,
        sheet_add_aoa: Ma,
        sheet_add_json: xw,
        sheet_add_dom: Gm,
        aoa_to_sheet: Ua,
        json_to_sheet: Ow,
        table_to_sheet: jm,
        table_to_book: Xm,
        sheet_to_csv: yw,
        sheet_to_txt: Sw,
        sheet_to_json: Aw,
        sheet_to_html: Vm,
        sheet_to_formulae: _w,
        sheet_to_row_object_array: Aw,
        sheet_get_cell: Rw,
        book_new: Nw,
        book_append_sheet: Dw,
        book_set_sheet_visibility: Fw,
        cell_set_number_format: Pw,
        cell_set_hyperlink: Lw,
        cell_set_internal_link: Mw,
        cell_add_comment: Uw,
        sheet_set_array_formula: Bw,
        consts: {
            SHEET_VISIBLE: 0,
            SHEET_HIDDEN: 1,
            SHEET_VERY_HIDDEN: 2
        }
    };
    var Hw;
    function zw(e) {
        Hw = e
    }
    function Vw(e, r) {
        var t = Hw();
        var a = r == null ? {} : r;
        if (e == null || e["!ref"] == null) {
            t.push(null);
            return t
        }
        var n = Da(e["!ref"]);
        var i = a.FS !== undefined ? a.FS : ","
          , s = i.charCodeAt(0);
        var f = a.RS !== undefined ? a.RS : "\n"
          , o = f.charCodeAt(0);
        var l = new RegExp((i == "|" ? "\\|" : i) + "+$");
        var c = ""
          , h = [];
        a.dense = Array.isArray(e);
        var u = a.skipHidden && e["!cols"] || [];
        var d = a.skipHidden && e["!rows"] || [];
        for (var v = n.s.c; v <= n.e.c; ++v)
            if (!(u[v] || {}).hidden)
                h[v] = ya(v);
        var p = n.s.r;
        var g = false
          , m = 0;
        t._read = function() {
            if (!g) {
                g = true;
                return t.push("\ufeff")
            }
            while (p <= n.e.r) {
                ++p;
                if ((d[p - 1] || {}).hidden)
                    continue;
                c = Cw(e, n, p - 1, h, s, o, i, a);
                if (c != null) {
                    if (a.strip)
                        c = c.replace(l, "");
                    if (c || a.blankrows !== false)
                        return t.push((m++ ? f : "") + c)
                }
            }
            return t.push(null)
        }
        ;
        return t
    }
    function Gw(e, r) {
        var t = Hw();
        var a = r || {};
        var n = a.header != null ? a.header : Bm;
        var i = a.footer != null ? a.footer : Wm;
        t.push(n);
        var s = Ia(e["!ref"]);
        a.dense = Array.isArray(e);
        t.push(zm(e, s, a));
        var f = s.s.r;
        var o = false;
        t._read = function() {
            if (f > s.e.r) {
                if (!o) {
                    o = true;
                    t.push("</table>" + i)
                }
                return t.push(null)
            }
            while (f <= s.e.r) {
                t.push(Um(e, s, f, a));
                ++f;
                break
            }
        }
        ;
        return t
    }
    function jw(e, r) {
        var t = Hw({
            objectMode: true
        });
        if (e == null || e["!ref"] == null) {
            t.push(null);
            return t
        }
        var a = {
            t: "n",
            v: 0
        }
          , n = 0
          , i = 1
          , s = []
          , f = 0
          , o = "";
        var l = {
            s: {
                r: 0,
                c: 0
            },
            e: {
                r: 0,
                c: 0
            }
        };
        var c = r || {};
        var h = c.range != null ? c.range : e["!ref"];
        if (c.header === 1)
            n = 1;
        else if (c.header === "A")
            n = 2;
        else if (Array.isArray(c.header))
            n = 3;
        switch (typeof h) {
        case "string":
            l = Da(h);
            break;
        case "number":
            l = Da(e["!ref"]);
            l.s.r = h;
            break;
        default:
            l = h;
        }
        if (n > 0)
            i = 0;
        var u = Ta(l.s.r);
        var d = [];
        var v = 0;
        var p = Array.isArray(e);
        var g = l.s.r
          , m = 0;
        var b = {};
        if (p && !e[g])
            e[g] = [];
        var w = c.skipHidden && e["!cols"] || [];
        var k = c.skipHidden && e["!rows"] || [];
        for (m = l.s.c; m <= l.e.c; ++m) {
            if ((w[m] || {}).hidden)
                continue;
            d[m] = ya(m);
            a = p ? e[g][m] : e[d[m] + u];
            switch (n) {
            case 1:
                s[m] = m - l.s.c;
                break;
            case 2:
                s[m] = d[m];
                break;
            case 3:
                s[m] = c.header[m - l.s.c];
                break;
            default:
                if (a == null)
                    a = {
                        w: "__EMPTY",
                        t: "s"
                    };
                o = f = Pa(a, null, c);
                v = b[f] || 0;
                if (!v)
                    b[f] = 1;
                else {
                    do {
                        o = f + "_" + v++
                    } while (b[o]);
                    b[f] = v;
                    b[o] = 1
                }
                s[m] = o;
            }
        }
        g = l.s.r + i;
        t._read = function() {
            while (g <= l.e.r) {
                if ((k[g - 1] || {}).hidden)
                    continue;
                var r = Tw(e, l, g, d, n, s, p, c);
                ++g;
                if (r.isempty === false || (n === 1 ? c.blankrows !== false : !!c.blankrows)) {
                    t.push(r.row);
                    return
                }
            }
            return t.push(null)
        }
        ;
        return t
    }
    var Xw = {
        to_json: jw,
        to_html: Gw,
        to_csv: Vw,
        set_readable: zw
    };
    if (typeof vm !== "undefined")
        e.parse_xlscfb = vm;
    e.parse_zip = Xb;
    e.read = iw;
    e.readFile = sw;
    e.readFileSync = sw;
    e.write = gw;
    e.writeFile = bw;
    e.writeFileSync = bw;
    e.writeFileAsync = kw;
    e.utils = Ww;
    e.writeXLSX = pw;
    e.writeFileXLSX = ww;
    e.SSF = Ve;
    if (typeof Xw !== "undefined")
        e.stream = Xw;
    if (typeof Ke !== "undefined")
        e.CFB = Ke;
    if (typeof require !== "undefined") {
        var $w = undefined;
        if (($w || {}).Readable)
            zw($w.Readable)
    }
}
if (typeof exports !== "undefined")
    make_xlsx_lib(exports);
else if (typeof module !== "undefined" && module.exports)
    make_xlsx_lib(module.exports);
else if (typeof define === "function" && define.amd)
    define("xlsx", function() {
        if (!XLSX.version)
            make_xlsx_lib(XLSX);
        return XLSX
    });
else
    make_xlsx_lib(XLSX);
if (typeof window !== "undefined" && !window.XLSX)
    try {
        window.XLSX = XLSX
    } catch (e) {}
